AOSP Android 10.0单编替换framework.jar刷入手机

查看 720|回复 11
作者:莫问刀   
背景
修改framework的部分代码,做一些特殊的事。基于AOSP 10.0
编译framework代码
当我们修改完成framework模块的代码之后,需要编译模块,我之前不知道可以直接单独编译和刷入手机的,导致浪费了很多时间。
修改完成代码保存之后,进入framework/base目录执行mm
前提是注入了aosp的环境变量。
source build/envsetup.sh
lunch xx
cd framework/base
mm
编译完成之后。

刷入手机验证
编译完成之后的产物目录
android-10.0.0_r41\out\target\product\blueline\system\framework\framework.jar
目录下有一个framework.jar(这个jar就是框架的代码)
里面都是dex,如果想看代码,可以去这个目录下看,就好像平时看第三方jar一样,导入as即可。
android-10.0.0_r41\out\soong.intermediates\frameworks\base\framework\android_common\jarjar\framework.jar
开始刷入。
adb root  //获取root权限
adb disable-verity //关闭检测功能
adb reboot //关闭检测之后需要重启机器
重启机器成功之后:
adb root  //再次获取root权限
adb remount  //重启挂载system分区为可读写分区
推送framework.jar
adb root && adb remount
adb push framework.jar /system/framework
adb reboot

由于我关闭了dex优化,我这里就不需要删除什么odex和arm下面的东西。
如何关闭dex优化,看这个文章https://blog.csdn.net/Otaku_627/article/details/108441530
关闭之后需要全编译,建议在第一次编译系统的时候就关闭,后面更新jar方便多了,不会遇到卡开机问题。
我删除了某某服务中的一个方法,之前写了APP进行调用,现在删除方法之后,替换了framework的jar,再次调用
com.example.myapplication W/System.err: java.lang.NoSuchMethodException:
表示这个方法没有了,也就是成功修改并且替换了。
总结
1、方便后面修改模块和验证,建议从开始就关闭dex优化。
2、修改单个模块之后,去模块的目录下看看是否有mk文件,如果有在目录下mm编译即可。
3、刷入手机可能会失败,先准备好代码分支对应的官方刷机包,随时刷回去官方的,保证我们下次刷入自己编译的顺利。

代码, 模块

莫问刀
OP
  


wg198300 发表于 2022-11-28 18:27
感谢分享 请教一下  想自己封装个rom  去哪里能搞到驱动?  前段时间看网上有卖航天科工手机的 就买了个 结 ...

建议买nexus或者pixel手机,因为AOSP代码下载回来再下载驱动文件放进去一起编译就可以刷到手机中去了,我现在就是这样玩的,nexus5刷aosp6,nexus5x刷aosp7,pixel3刷aosp10都成功了。前提是手机解开bl锁
莫问刀
OP
  


wg198300 发表于 2022-11-28 18:27
感谢分享 请教一下  想自己封装个rom  去哪里能搞到驱动?  前段时间看网上有卖航天科工手机的 就买了个 结 ...

我建议是买google的手机,比如nexus的我的nexus5才100块,可以下载代码,驱动,编译代码刷机。帖子的情况是我pixel3刷aosp10的案例。可以看我的文章:https://mp.weixin.qq.com/mp/appm ... d=1#wechat_redirect
dph5199278   

谢谢分享,虽然我基本没怎么root了,但还是可以尝试替换虚拟机的framework
yimenghan   

感谢楼主无私的奉献
侃遍天下无二人   

能否上传一个framework.jar想看看里面有些啥,随便哪个版本都行(如果是去掉卡米前后的两个framework.jar就更好了)
lhp462   

学到了,最近正好在看AOSP的东西
Miluzhe   

谢谢楼主分享!
v1331v   

吾爱破解论坛有你更精彩
guohuanxian   

学习了,感谢
您需要登录后才可以回帖 登录 | 立即注册

返回顶部