修改Android framework源码后将framework.jar给push进机子后为什么不起作用?

NodeLance 2016-06-06 09:07:03
我在android5.1源码frameworks/base/core/java/android/app目录下添加自己的类后,在frameworks/base下mm,编译完后把framework.jar给push进实机的/system/framework目录中,修改机子的/system/etc/preload-classes文件,添加自己的类,重启机器,为什么ZygoteInit执行时,提示找不到那些类?用dexdump查看framework.jar里dex文件的信息,可以找到自己加进去的类的。是系统的什么地方有旧framework dex文件的缓存吗,还是哪个步骤错了?(我也修改了ZygoteInit,在里面打印了几条log信息,开机时也没有打印出来,感觉修改的确是没起作用)
...全文
4557 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
behind8 2019-11-28
  • 打赏
  • 举报
回复
感觉就像有什么验证机制导致了不给你正常引导oat和art
咸鱼少女 2018-07-03
  • 打赏
  • 举报
回复
我也是,卡在开机logo,启动不了了。。。
明月照松雪 2017-11-21
  • 打赏
  • 举报
回复
我也是替换boot.oat,boot.art后启动不了
A_阳光宅男 2017-10-16
  • 打赏
  • 举报
回复
我试过了删除boot,之后毫无疑问,系统起不来了,我现在严重怀疑楼主的诚信
DaSunWarman 2017-09-02
  • 打赏
  • 举报
回复
我也是替换boot.oat,boot.art后启动不了
杨宇新2023 2016-10-13
  • 打赏
  • 举报
回复
引用 3 楼 MarsGuarder 的回复:
不知道你是怎么替换到系统中的,我遇到的问题是因为文件写入后没有强制sync就马上重启,结果文件没有替换成功。 建议你将文件从Android系统中弄出来再对比一下,首先确认文件是确实被替换了。
替换了boot.oat,boot.art等4个文件后重启,手机就起不来了。
u012282088 2016-10-10
  • 打赏
  • 举报
回复
楼主,我在out目录下没有找到这两个文件,同时手机里面也没有这两个文件,可是framework.jar还是无效。。。
KeZhuang_ 2016-08-31
  • 打赏
  • 举报
回复
楼主还在么。我编译出来的framework.jar 怎么就309kb。。。里边都没有dex文件啊。编译过程是定位在framework/base然后用的mm命令单独编译的
seebigsea 2016-08-20
  • 打赏
  • 举报
回复
遇到类似的问题,用楼主的办法搞定了,赞!
NodeLance 2016-06-12
  • 打赏
  • 举报
回复
终于解决了,要把源码编译结果中framework/arm目录和framework/arm64目录(如果有的话)中的boot.art和boot.oat两个文件替换掉系统相应的/system/framework/arm目录和/system/framework/arm64目录中的同名文件,也可以把framework.jar给push进/system/framework/中,然后把/system/framework/arm目录和/system/framework/arm64目录中的boot.art和boot.oat删除掉,之后重启机器。貌似Android 5.0之后android默认使用art,而art会加载boot.art和boot.oat两个文件。
MarsGuarder 2016-06-08
  • 打赏
  • 举报
回复
不知道你是怎么替换到系统中的,我遇到的问题是因为文件写入后没有强制sync就马上重启,结果文件没有替换成功。 建议你将文件从Android系统中弄出来再对比一下,首先确认文件是确实被替换了。
NodeLance 2016-06-08
  • 打赏
  • 举报
回复
引用 3 楼 MarsGuarder 的回复:
不知道你是怎么替换到系统中的,我遇到的问题是因为文件写入后没有强制sync就马上重启,结果文件没有替换成功。 建议你将文件从Android系统中弄出来再对比一下,首先确认文件是确实被替换了。
我是用adb push替换系统的,我也试过把系统里的framework.jar给pull出来,然后用dexdump查看里面dex文件的类信息,是可以找到我自己定义的类的
NodeLance 2016-06-06
  • 打赏
  • 举报
回复
引用 1 楼 jeky198306 的回复:
添加模块配置编译了么?或者清下缓存试下
添加模块配置编译是怎么做? 我试过清/data/dalvik-cache目录,但是不起作用,还有别的什么缓存目录吗?
jeky_zhang2013 2016-06-06
  • 打赏
  • 举报
回复
添加模块配置编译了么?或者清下缓存试下

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧