尝试一:
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/下都生成了boot.oat和boot.art
4.adb remount
5.将生成的文件替换系统中的文件adb push framework /system/framework/arm
6.adb shell stop;start
第二种尝试下手机卡在Android界面,当时以为代码写的有问题,于是使用干净的源码编译了与原始系统的boot.oat boot.art文件相同,然后push后还是卡在android启动时的界面,将备份的原生系统的boot.oat,boot.art push 进去则正常启动。
想问一下Android在启动加载framework时有类似验证文件完整性的机制吗?
替换framework一定要重新编译system.img吗?
最后于 2020-12-1 13:39
被Craft_A编辑
,原因: