解包打包android内核system.img文件所需工具

上传者: asmcvc | 上传时间: 2021-11-11 10:29:58 | 文件大小: 6.02MB | 文件类型: -
使用方法:http://blog.csdn.net/asmcvc/article/details/11770851


工具:

unyaffs,mkyaffs2image

其中unyaffs有windows版本和linux版本,mkyaffs2image只有linux版本。

windows版本的unyaffs用法:

把system.img复制到unyaffs的相同目录下,cmd命令下cd到unyaffs的目录下,然后执行命令:unyaffs system.img

unyaffs会把system.img解压到其目录下。

linux版本的unyaffs用法:

把unyaffs复制到/usr/bin目录下,并修改权限为可执行。

然后cd到system.img目录下(假定目录为system目录),执行命令:unyaffs system.img

然后对system目录下的文件进行修改。

注意:修改完后的文件要修改一下权限,尽量和其他文件的权限保持一致。例如:chmod 644 framework-res.apk


mkyaffs2image用法:
复制到/usr/bin目录下,并修改权限为可执行。


这里以打包system目录为system.img为例,执行命令:

mkyaffs2image system system.img

然后把新生成的system.img复制替换掉原:adt-bundle-windows-x86\sdk\system-images\android-17\armeabi-v7a\system.img


执行bat批处理命令启动模拟器:

D:\adt-bundle-windows-x86\sdk\tools\emulator-arm.exe -avd AndroidVM -partition-size 128

这里以修改android系统启动画面为例:

打开解包目录下的\framework\framework-res.apk

替换图片:framework-res.apk\assets\images\android-logo-mask.png为下图:


然后对\framework\framework-res.apk文件重新签名,复制到linux下后修改文件权限和原来一致。

然后mkyaffs2image system system.img打包生成新的system.img,替换原来的system.img,并启动模拟器,效果图如下:



修改代码:

工具:odextools(参考:《一键odex批量合并工具odextools的重新整理与使用》)、dexopt-wrapper

其中odextools.bat的代码:

批处理有一处bug:每打包一次会把odex文件删除掉,导致在后面的打包过程中会出现找不到:system/framework/core.odex类似的错误,因此只需要在打包完后不删除odex文件即可,找到del /f !apkx!.odex 1>nul 2>nul改为:::del /f !apkx!.odex 1>nul 2>nul,也就是注释掉这一行代码。


具体使用方法(操作在windows下):

在odextools\romdir目录下创建文件夹:system

利用unyaffs解包system.img后,把所有文件复制到system目录下。

然后运行odextools.bat,如图:


选择一个需要整合odex的目录选项即可。odextools.bat会自动设置环境变量,使用baksmali.jar来反编译odex为smali,然后再调用smali.jar打包为classes.dex,

然后再打包到相应的apk包(framework目录下对应的是jar后缀的,实际上也是个apk包),最后再重新签名。


如果要修改代码,则需要把上面重新打包生成的apk文件,利用常规方法反编译后修改smali代码,例如插桩输入log信息。然后再回编译并重新签名。

最后一步:因为system.img中的apk是优化过的,apk主目录下是没有classes.dex文件的,而是一个被优化过的odex文件,用于优化启动速度。

因此需要将修改后的apk包再用dexopt-wrapper优化apk包后生成出odex文件,然后删除apk包里的classes.dex,并在相同目录下放置与apk包同名的odex文件。

按照原system目录的文件结构组织好后,目录复制到linux环境下使用mkyaffs2i

文件下载

评论信息

  • xp0808 :
    android 4.4 unyaffs 直接已停止工作
    2018-07-14
  • liujinxin33 :
    unyaffs 直接已停止工作
    2016-10-14
  • setsail_wu :
    谢谢分享~可以用
    2016-08-25
  • u010860397 :
    Android5.0 系统的System.img 打包后进不去系统
    2016-05-23
  • wangweitingaabbcc :
    还行 用来打包Android5.0 系统的System.img 打包后进不去系统
    2015-11-26

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明