Android4.4真机移植过程笔记(三)
如果文章字体看得不是很清楚,大家可以下载pdf文档查看,文档已上传~oo~
7、安装加密APK
需要修改文件如下:

相对Android4.2改动还是蛮大的,有些文件连路径都变了:
//Android4.2
1、frameworks/native/libs/utils/ZipFileRO.cpp
2、dalvik/libdex/ZipArchive.cpp
3、libcore/luni/src/main/java/java/util/zip/ZipFile.java
4、libcore/luni/src/main/java/java/util/zip/ZipEntry.java
5、libcore/luni/src/main/java/java/util/zip/ZipInputStream.java
//Android4.4
1、frameworks/base/libs/androidfw/ZipFileRO.cpp
2、dalvik/libdex/ZipArchive.cpp
3、libcore/luni/src/main/java/java/util/zip/ZipFile.java
4、libcore/luni/src/main/java/java/util/zip/ZipEntry.java
5、libcore/luni/src/main/java/java/util/zip/ZipInputStream.java
5、libcore/luni/src/main/java/java/util/zip/ZipInputStream.java
修改完后安装加密的APK,运行异常如下:

经过打印调试发现ZipFile.java文件没有完全改对
再次运行如下异常:

把安装签名校验去掉就OK了,因为我们的加密APK是不要校验的,这里改为所有APK都不要签名校验了,后面再优化下,只把自己的APK去掉校验,而第三方的还是要签名校验的!

再次运行:

打开运行,不容易啊!

8、APK加密
1、加密工具代码在Android源码目录的external/apkencryptor下:

2、修改相关的makefile,把apkencryptor加入到PRODUCT_PACKAGES中,如修改build/target/product/base.mk(H10,OK1000没有修改也是没有问题的),
make之后会在out/host/linux-x86/bin/目录下生成apkencryptor可执行程序:

3、在打包system.img时先调用一下这个可执行程序对各目录下的apk进行加密,如修改build/core/Makefile:

4、ENCRYPTAPK_TOOL定义在build\core\config.mk中:
ENCRYPTAPK_TOOL := $(HOST_OUT_EXECUTABLES)/apkencryptor

5、TARGET_OUT_APPS和TARGET_OUT_PREINSTALL_DEL都定义在build\core\envsetup.mk中:
TARGET_OUT_PREINSTALL := $(TARGET_OUT)/preinstall
TARGET_OUT_PREINSTALL_DEL := $(TARGET_OUT)/preinstall_del

6、编译搞定…
9、新增路径接口
运行测试程序出现异常:

同步4.2源码:
rk3188_android4.4.1/frameworks/base/core/java/android/os/Environment.java
编译:make -j32
编译出现异常:

还能找到这样一些提示,很人性化啊!

由于我们提供的API是给开发者使用,要对我开放,所以我们用第二种方式:
make update-api
再次编译通过,烧录img,再次运行测试程序:

顺利完成!!!
10、屏蔽HOME键
把之前OK1000移植过来就OK了,涉及到这三个文件:
frameworks/base/services/java/com/android/server/wm/WindowManagerService.java
frameworks/base/core/java/android/view/WindowManager.java
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
不过先对于Android4.2变化还是蛮大的:
WindowManager.java真加了很多标志位,之前变量名没有提供出来,所以现在的值固定了,和原生的有冲突了!后面看看怎么改。
PhoneWindowManager.java 函数的逻辑有了改变,目前的逻辑更好,更清晰。
具体改动参考:
Android中间件轨迹_1.
觉得本文对你有用,麻烦点赞或关注或收藏,你的肯定是我创作的无限动力,谢谢!!!
相关文章:
Android4.4真机移植过程笔记(三)
如果文章字体看得不是很清楚,大家可以下载pdf文档查看,文档已上传~oo~ 7、安装加密APK 需要修改文件如下: 相对Android4.2改动还是蛮大的,有些文件连路径都变了: //Android4.2 1、frameworks/native/libs…...
PostgreSQL备份恢复与复制
前言 随着国家战略层面对信息安全关注度越来越高,数据库是基础软件国产化自主可控的重要方面之一。PG是世界上最流行的开源关系型数据库之一,并且他是类BSD开源许可,开源协议非常友好,可以随意分发、闭源和开源,可以用…...
spring高级篇(八)
本篇对Spring MVC 的执行流程做一个简单总结 MVC执行流程总结 当浏览器发送一个请求,例如http://localhost:8080/hello,请求到达服务器后,一般会进行如下操作: 1、首先会经过DispatcherServlet,默认映射路径为 /&…...
UP互助 帮助UP起号做视频 支持B站和抖音
【软件名字】:UP互助 【软件版本】:1.0 【软件大小】:17.5MB 【软件平台】:安卓 【测试机型】:小米9 1.随便登个邮箱,添加自己平台的频道,然后就可以帮助别人,添加频道后在添加…...
*求问?:为何会超时(TLE)?
D - Grid and Magnet (atcoder.jp) 错误代码: //2024年5月5日14:53:43 #include <bits/stdc.h> #define move mmove //防止与头文件中重复 using namespace std; int h,w; string s[1000]; const int move[4][2]{{1,0},{-1,0},{0,1},{0,-1}}; bool used[100…...
cocosstudio工程文件(.ccs)维护问题
创建cocos工程.bat在多人合作的cocos项目中,大家公用一个ccs文件,存在的问题是如果大家都提交ccs文件比较容易出现冲突,解决冲突麻烦要耗费时间,不提交的话就拉不到其他人更新的csd文件。 方案一 解决冲突,更新提交c…...
Blender动画与云渲染:创造高质量作品的未来路径
Blender作为开源的3D图形软件,在多个领域广受欢迎。但随着项目复杂度提升,传统渲染方式受限。云渲染技术的兴起突破了这些限制,为创作者提供了更自由、高效的创作环境。 一、Blender动画项目的挑战 传统上,Blender动画渲染需要依…...
【MySQL】3.MySQL核心概念解析:数据完整性、事务处理、索引及聚簇索引与非聚簇索引
探索MySQL的内部机制,理解数据完整性、事务处理、索引策略以及聚簇索引与非聚簇索引的区别是至关重要的。这些概念构成了数据库设计和优化的基础,对于确保数据的准确性、提高查询效率、维护数据的一致性和实现复杂的数据库操作至关重要。本文将逐一剖析这…...
【netty系列-03】深入理解NIO的基本原理和底层实现(详解)
Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…...
大数据Scala教程从入门到精通第二篇:Scala入门
一:Scala入门 1:为什么学习Scala Spark新一代内存级大数据计算框架,是大数据的重要内容 Spark就是使用Scala编写的。因此为了更好的学习Spark,需要掌握Scala这门语言 Spark的兴起,带动Scala语言的发展! 2:Scala的发展…...
Spring Data JPA数据批量插入、批量更新真的用对了吗
Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 前言 在前两篇文章已经…...
数据结构-线性表-应用题-2.2-12
1)算法的基本设计思想:依次扫描数组的每一个元素,将第一个遇到的整数num保存到c中,count记为1,若遇到的下一个整数还是等于num,count,否则count--,当计数减到0时,将遇到的下一个整数保存到c中,计…...
目录页码右对齐快速解决
选择目录–段落–制表符,按图中设置即可...
分红76.39亿,分红率再创新高,成长活力无限的伊利带来丰厚回报
伊利47万股东,又等来了一个好消息。 4月29日,伊利股份发布2023年报,实现营业总收入1261.79亿元,归母净利润104.29亿元,双创历史新高,实现连续31年稳健增长。 在递交亮眼成绩单的同时,乳业巨头伊…...
关于行进线路。
https://map.tianditu.gov.cn/ 作者:Chockhugh 链接:https://www.zhihu.com/question/20545559/answer/494685117 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 以50km,几乎全是…...
Unity 编辑器工具 - 资源引用查找器
目录 1.功能概述 2.完整代码 3. 实现原理 4. 使用预览 5.新增优化版本 在Unity项目开发过程中,管理和维护资源之间的引用关系是至关重要的。当然我们项目也是需要这个功能 毕竟项目大了之后查找资源引用还是交给 资源引用查找器 比较好。 1.功能概述 资源引用…...
MySQL中的批量更新实战
MySQL中的批量更新实战 表结构 mysql> desc dept; --------------------------------------------------------- | Field | Type | Null | Key | Default | Extra | --------------------------------------------------------- | deptno | int(11) …...
为软件教学文档增加实践能力
为了更方便软件教学,我们在凌鲨(OpenLinkSaas)上增加了公共资源引用的功能。 目前可以被引用的公共资源: 微应用常用软件公共知识库Docker模板 引用公共资源 引用微应用 目前微应用包含了主流数据库,终端等工具,可以方便的进行各种相关实…...
39-2 Web应用防火墙 - WAF数据库层绕过
如果你本地没有安装mysql就先安装一下:4-2 MySQL 的下载与安装_mysql5.7.9.1下载-CSDN博客 一、数据库层绕过简介 绕过数据库层通常用于规避Web应用防火墙(WAF)的SQL注入防护规则。攻击者需要利用数据库特性,寻找规避常规安全策略的方法。这里涉及到不同数据库的特性、SQ…...
薪酬激励策略:留住企业核心人才的关键
在竞争激烈的商业环境中,企业为了保持竞争力和市场地位,必须高度重视人才的管理和发展。企业的核心人才是推动企业发展的关键因素,因此,如何有效地激励和留住这些核心人才,成为企业持续发展的关键之一。薪酬激励策略作…...
告别HEIC预览盲区:让Windows用户轻松驾驭苹果图像格式
告别HEIC预览盲区:让Windows用户轻松驾驭苹果图像格式 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 问题场景࿱…...
埃拉托斯特尼筛法(埃氏筛)完整解析
一、算法用途 快速找出 2 ~ n 之间的所有素数。 暴力判断每个数:O(nn) 埃氏筛:O(nloglogn),接近线性,极快。 二、核心思想 先假设所有数都是素数。 从最小素数 2 开始,把它的所有倍数标记为合数。 取下一个没被标记的数(一定是素数),继续标记它的倍数。 最后没被标记…...
PingFangSC字体:跨平台专业中文排版的终极开源解决方案
PingFangSC字体:跨平台专业中文排版的终极开源解决方案 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 在当今数字化时代,跨平台字…...
洛雪音乐音源项目终极指南:如何免费获取全网高品质音乐资源
洛雪音乐音源项目终极指南:如何免费获取全网高品质音乐资源 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否曾为寻找免费的高品质音乐资源而烦恼?或者厌倦了在多个音…...
SAP增强开发实战:如何用STARTING NEW TASK避免BAPI_TRANSACTION_COMMIT的坑?
SAP增强开发实战:如何用STARTING NEW TASK避免BAPI_TRANSACTION_COMMIT的坑? 在SAP标准增强开发中,当我们需要在出口函数里调用BAPI修改或创建业务单据时,总会遇到一个经典难题:如何在增强点安全地提交事务?…...
从温控器到无人机:PID参数整定的‘手感’秘籍,附C语言代码避坑指南
从温控器到无人机:PID参数整定的‘手感’秘籍与实战避坑指南 在工业自动化和智能硬件开发中,PID控制算法就像一位隐形的调音师,默默调节着系统的每一个细微变化。无论是缓慢升温的工业烘箱,还是高速响应的四旋翼无人机,…...
VideoAgentTrek-ScreenFilter视觉盛宴:处理4K超高清屏幕录像的效果与性能挑战
VideoAgentTrek-ScreenFilter视觉盛宴:处理4K超高清屏幕录像的效果与性能挑战 最近在折腾一些屏幕录像的后期处理,特别是那些4K分辨率、高帧率的超高清素材。说实话,直接处理这种级别的视频,对硬件和软件都是不小的考验。我试用了…...
ROS2实战:用hdl_localization+Velodyne激光雷达实现室内机器人实时3D定位(环境配置与调参心得)
ROS2实战:hdl_localization与Velodyne激光雷达的室内3D定位调优指南 在机器人自主导航领域,实时精准定位始终是核心挑战之一。当你的移动机器人搭载着Velodyne激光雷达在复杂室内环境中穿行时,hdl_localization提供的3D点云匹配方案能带来令…...
思考时爱用手托腮?警惕单侧发力拖垮颈肩平衡
很多人在工作、学习或思考时,习惯用手托腮,这个看似不经意的动作,会给颈肩带来持续负担,引发肌肉失衡劳损。用手托腮时,头部会向一侧倾斜,颈椎处于侧屈状态,颈部一侧肌肉持续紧张、牵拉…...
AI与数据库融合:从经典论文到前沿实践
1. AI与数据库融合的起源与演进 数据库和人工智能这两个看似独立的领域,其实早在计算机科学发展的初期就已经产生了交集。上世纪70年代,当关系型数据库理论刚刚确立时,研究者们就开始探索如何让数据库系统具备一定的"智能"。当时的…...
