-
-
[求助]在Android6.0的系统重新编译framework替换不生效
-
发表于:
2020-11-30 18:54
3609
-
[求助]在Android6.0的系统重新编译framework替换不生效
尝试一:
1.export export WITH_DEXPREOPT=false
2.修改framework后,使用mm在"framework/base"下编译该模块
3.在out/target/product/xxx/system/framework/下生成了framework.jar
4.adb remount
5.adb push framework.jar /system/framework
6.adb shell stop;start
第一种尝试发现自己在framework中添加的代码并未生效,后来发现在android6.0以上真正生效的时framework/arm/*下的.oat .art 文件,于是尝试第二种方案
尝试二:
1.export export WITH_DEXPREOPT=true
2.修改framework后,使用mm在"framework/base"下编译该模块
3.在out/target/product/xxx/system/framework/arm<arm64>/下都生成了boot.oat和boot.art
4.adb remount
5.将生成的文件替换系统中的文件adb push framework /system/framework/arm<arm64>
6.adb shell stop;start
第二种尝试下手机卡在Android界面,当时以为代码写的有问题,于是使用干净的源码编译了与原始系统的boot.oat boot.art文件相同,然后push后还是卡在android启动时的界面,将备份的原生系统的boot.oat,boot.art push 进去则正常启动。
想问一下Android在启动加载framework时有类似验证文件完整性的机制吗?
替换framework一定要重新编译system.img吗?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-12-1 13:39
被Craft_A编辑
,原因: