这段时间想给自己做一个ROM包,于是找了很多资料,开始了学习,目前与合并官方的apk和odex的方法卡住了一段时间,于是我前段时间在百度知道提问了许久,只是还是没人回答,有的也只是一些复制过来的答案,而且不怎么全面,现在写下一篇经过实践整理而来的合并官方apk和odex的教程。
由于不会解包酷派的cpb格式的文件,所以可以自己对手机里的文件进行提取,
用数据线连接手机,安装驱动,及用DOS进入adb(前提手机应有root,adb百度搜素一堆)
进入adb界面后用adb shell加载手机驱动,使用su命令获取权限,如成功$会变为#
手机上边用re管理器查看/dev/block/platfrom/msm_sdcc.1/by name中可以推出system,boot,recovery的分区
由我的机型可知system于12分区中
现用adb输入dd if=/dev/block/mmcblk0p12 of=/sdcard/system.img(输出systemimg的时间可能会有点长),之后用ROM助手解压img文件就行了。
首先,保证自己的JAVA环境搭建成功
解压下载APKTOOL工具(最好放在C||D盘的根目录)
把手机中的system\framework\下,所有文件复制到apktool工具的根目录下。
进入DOS,cd命令apktool-install-windows-r04-brut1
通过apktool if framework-res.apk装载资源框架
然后,我们把要合并的DOEX和APK文件复制到根目录下,下载baksmali-1.3.2.jar和smali-1.3.2.jar
以systemui.apk和systemui.odex为例
DOS命令框输入命令:java -jar baksmali-1.3.2.jar -x systemui.odex
成功后,我们会看到APKTOOL根目录下,自动生成一个OUT的文件夹,之后
我们继续在DOS窗口输入命令:java -Xmx512M -jar smali-1.3.2.jar out -o classes.dex
命令成功后会在apktool根目录中看见classes.dex就是我们要的目标文件
后边就是用winrar打开systemui.apk拉进去刚得到的classes.dex。后边我是把他放到手机里用mt管理器进行签名的。
这就是合并apk和odex的全过程了。
这是我第一次开始写博客,而这冲动就是在微信公众号看见了几句喜欢的话,原文是这么说的:
与其别人对自己狠点,不如自己折磨自己,对自己严格要求到变态的晨读,我坚信我的毅力能办到。
还有一句俞敏洪老师的那句话“当时机不成熟的时候,把自己的厚度积累起来,当有一天时机来临的时候,你就能奔腾如海,成就自己的生命!”