android 反编译及二次打包详细步骤

有时候有反编译的需求,借鉴或者修改下APK的代码及资源。

先下载必须软件

ApkTool     https://ibotpeaches.github.io/Apktool/install/

ApkTool用于解压.apk文件及二次打包,直接用解压工具解压出来的文件是无法阅读和修改的;

mac下安装有时会提示权限问题,指令实例:chmod +x d2j_invoke.sh

指令解释:chmod +x 未获取权限的文件名,文件可以是相对或者绝对路径

然后下载

选择一:

dex2jar  https://sourceforge.net/projects/dex2jar/files/

最新版本是2.0,  2015年最后更新,说明有点过时了,作用是将.dex文件反编译为.jar;

jd-gui     http://java-decompiler.github.io/

最新版本是1.6.6,下载mac版本要求电脑安装JDK11,所以直接下载通用的.jar就可以运行了,作用是查看反编译后的.jar,然后修改对应的.samli文件,.samli文件是很难看懂的,不过也是能修改的。

选择一是以前的方式,有点过时了,建议用选择二;

选择二:

jadx-gui      https://github.com/skylot/jadx/releases

这个软件可以直接解压apk文件及反编译,相当方便好用。

有些需要梯子,这里直接提供了目前最新工具套装forMac,因为我现在很少用win哈:

https://download.csdn.net/download/msn465780/83369358

如何使用?

安装好ApkTool后,把.apk文件拷贝到apktoo目录下的bin目录下,和apktool这个可执行文件一级,mac系统在/usr/local/Cellar下;

指令官方文档: https://ibotpeaches.github.io/Apktool/documentation/

有解压和二次打包的各种指令;

终端进入上述bin目录,这里先解压指令例子:apktool d -s zz.apk -o zz

说明:apktool d -s [apk名字] -o [解压后的文件夹名字],d是decode

当然也可以用绝对路径哈;

解压后得到如图:

还有一个指令:apktool d  zz.apk -o zz,这个没有-s, 解压出来的就不是.dex文件,而是.smali

接下来,使用dex2jar,看名字就知道是将dex反编译为jar, 将.dex拷贝到dex2jar根目录下,

终端进入到dex2jar目录下,mac系统指令: sh d2j-dex2jar.sh classes.dex

指令解释:sh d2j-dex2jar.sh [目标dex文件的名字]

然后生成一个classes-dex2jar.jar;

在后, 用下载好的jd-gui打开这个.jar进行查看源码,如图:

 是不是有点麻烦?是的

那么新一代神器就出场了哈,jdx-gui,

用这个软件直接打开目标.apk,如图:

接着,另存为android工程,用androidstudio查阅,就相当方便了哈,如图:

 此过程可能需要几分钟,请耐心等待或者去搞其他的事,好了后用AS打开此项目,当然项目结构语法肯定有错误哈,这个的目的是为了查阅源码和资源的,是不能二次打包的哈;

再接着,找出需要修改的地方,就找到对应的.smail文件修改哈,.jar和.smali文件的名字都是一样的哈,应该找文件问题不大哈。

二次打包,

同样定位到bin下apktool文件那个目录,进入终端,指令:

apktool b zz -o new_zz.apk

指令解释:apktool b [解压后的文件名] -o [二次打包的apk名],b指build

 然后终端进入到SDK自带的platform-tools目录下,用adb指令安装新的apk, 指令示例:

adb install /Users/chenqi/Downloads/new_zz.apk

以为可以开心的玩耍了吗?还差一点点哈,

此时会发现安装不了,提示证书检验失败,简单,再次签名就好了哈,将签名文件拷贝到apktool可执行文件目录下,当然也可以写绝对路径,

指令示例:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Untitled -storepass 123456 new_zz.apk 123456

指令解释:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystore文件路径] -storepass [keystore文件密码] [待签名APK路径] [keystore文件别名]

再次指令安装,好了,这下可以开心的玩耍了

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MTK Android打包解包工具是一种用于处理MTK(联发科技)芯片型号的Android系统的工具。MTK芯片广泛用于各种智能手机和平板电脑中。 打包解包工具可以用来修改和处理Android系统的各个部分,包括系统镜像、程序文件、资源文件等。使用该工具,可以解包系统镜像文件,以获取其中的各个组件,比如boot.img、recovery.img和system.img等。然后可以对这些组件进行修改、替换或添加,最后再重新打包成一个完整的系统镜像文件。 MTK Android打包解包工具的主要功能包括以下几个方面: 1. 解包系统镜像文件:通过该工具,可以将MTK Android系统镜像文件进行解包,获取其中的各个组件,以便进行修改和处理。 2. 修改系统组件:对解包后的各个组件,可以进行修改和处理操作。比如可以修改系统内核、修改系统配置文件、替换应用程序等。 3. 添加第三方组件:除了对原有组件的修改,还可以添加第三方应用程序和库文件等。这样可以增加系统的功能和扩展性。 4. 重新打包系统镜像文件:修改和添加操作完成后,可以使用该工具重新打包成一个完整的系统镜像文件。然后可以将该镜像文件刷入MTK设备,以实现修改后的系统。 总之,MTK Android打包解包工具是一种强大的工具,可以对MTK芯片的Android系统进行深度定制和优化。通过对系统镜像文件的解包和重新打包,可以进行各种修改和添加操作,以满足用户的个性化需求和特殊要求。这对于开发者和定制者来说,是一种非常有用和方便的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值