Mac 反编译及重新打包

1.apktool官网按照步骤一步一步操作

官网地址:https://ibotpeaches.github.io/Apktool/install/

Mac 反编译及重新打包

这里解读一下:

(1)点击链接进入界面右键保存文件名为apktool(或者可以通过复制网页内容到SublimeText中进行保存)。

(2)点击链接下载最新版本的apktool_X.X.X.jar。

(3)将(2)中下载的jar重命名为apktool.jar。

(4)将下载好的apktool和apktool.jar文件复制到/usr/local/bin文件目录下,直接文件夹不好找的话可以通过命令行打开

命令:open /usr/local/bin

(5)执行命令 chomod +x apktool , chomod +x apktool.jar(需要先进入bin目录下执行这两条命令,进入bin目录的命令:cd /usr/local/bin)

注:这里执行第一条命令可能会提示 -bash:apktool: command not found,这种情况下可以执行命令ll查看该目录下的所有文件名,如果发现apktool文件有后缀.sh的话需要再执行一条命令 mv apktool.sh apktool,然后再执行命令ll查看发现.sh后缀已经被移除了。

(6)执行命令 apktool,如果出现下图结果即说明apktool安装好了。

Mac 反编译及重新打包

2.进入要反编译的apk所在的目录下,执行命令apktool d 要反编译的apk名字.apk。出现如下结果即反编译成功了。Mac 反编译及重新打包

此时会发现在该文件目录下会多出一个与apk名字一样的文件夹,该文件夹内包含:AndroidManifest.xml,res文件夹,smali文件夹。其中smali文件夹内就是每个java类所对应的smali文件,本次反编译只涉及修改logo和layout布局文件,暂时没有用到修改java类文件,故此处暂不作smali文件修改说明。

3.(1)要修改logo,可在mainfest文件中查看icon对应的图片位置及图片名称。

在res文件夹下找到对应的图片,将新图片命名为要替换的图片名称,copy到同个目录下直接替换就可以了。

(2)要修改布局文件,可以在手机上打开未被编译的apk,查看哪个界面哪里的文字或者控件需要隐藏或修改,在layout布局中进行修改即可。确定要修改的布局文件的名称可以通过文件命名推测,如果布局文件较少不嫌麻烦也可以一个一个打开查看修改。

4.重新打包apk。

执行命令apktool b 反编译的文件名,如下所示,即重新打包成功。此时会在反编译得到的文件夹内多出dist文件夹,重新打包的apk即在该文件夹内。

Mac 反编译及重新打包

此时的apk如果直接安装手机上会报错,其实就是签名不对,我们接下来重新对包进行签名。

5.重新生成签名文件。

执行命令:keytool -genkey -keystore cloudbeacon.keystore -keyalg RSA -validity 10000 -alias cloudbeacon

该命令会重新生成签名文件,默认保存在与原apk同级的文件夹下。

6.apk重新签名。

执行命令:jarsigner -digestalg SHA1 -sigalg MD5withRSA -tsa -verbose -keystore cloudbeacon.keystore -signedjar cloudbeacon-signed.apk cloudbeacon.apk cloudbeacon

正常应该是可以打包成功了,但我这里不知道为什么报错了,暂时没有找到解决办法。报错如下:Mac 反编译及重新打包

 

我后边打包是通过360加固宝对apk进行重新签名的。这里简单提一下:360加固宝-辅助工具-签名apk。

这次得到的apk再在手机上安装就可以正常运行了,并且可以看到自己修改的内容。