apk反编译和重新打包

操作系统:Mac OS X
软件:apktool

安装apktool

进入官网https://ibotpeaches.github.io/Apktool/,点击官网首页的install(https://ibotpeaches.github.io/Apktool/install/)进入安装指南,里面有Windows,Linux和Mac的安装方法,不同的操作系统按不同的步骤来就可以了。

apk反编译和重新打包_第1张图片
95264490-A493-4D02-B820-C23AB5140B5D.png

按Mac步骤:
1.打开“wrapper script”,把页面中的内容全部复制,并保存,文件名为“apktool”。
2.点击find newest here进入下载页,下载最新的apktool
3.把下载后的文件从命名为apktool.jar。
4.把apktool.jar和apktool两个文件复制到 /usr/local/bin路径下。
5.设置 /usr/local/bin/路径下的apktool.jar和apktool两个文件的权限。(具体操作在终端中输入 chmod +x apktool.jarchmod +x apktool
这样apktool就安装好了。

反编译apk

在终端输入:apktool d xxx.apk,我在反编译时出现了以下错误:

WARNING: Could not write to (/Users/xxx/Library/apktool/framework), using /var/folders/wr/svbl4qg12kq75hghq7nr4lch0000gn/T/ instead...
S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable

看提示是无法写入到这个目录/Users/xxx/Library/apktool/framework(xxx为电脑用户名),那就在/Users/xxx/Library下新建apktool文件夹,并在apktool文件夹下再新建个framework文件夹,然后为了保险起见设置新建文件夹到权限,在终端输入:chmod -R 777 /Users/xxx/Library/apktool
接着再重新执行反编译命令就可以成功了,在xxx.apk相同目录下会出现反编译后的文件夹。

重新打包

在终端输入编译命令: apktool b xxx (xxx为刚才反编译的文件夹),成功后会在xxx文件夹下的dist文件夹下生成打包好后的apk文件

apk签名

现在打包好后的apk是没有签名的,所以无法安装,现在给apk签名

  1. 在终端输入:
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore /Users/xxx/Desktop/android.keystore

20000为时间,这个设置长点就好了,-keystore后面是签名文件保存路径。输入命令按回车键会让输入密码等信息,按提示输入,不要忘了密码,签名时要用。
2.接着在终端输入:

jarsigner -verbose -keystore /Users/xxx/Desktop/android.keystore -signedjar /Users/guyuechao/Desktop/signed.apk /Users/xxx/Desktop/unsigned.apk android.keystore

-keystore后面的为签名文件的路径,-signedjar后面为签名好后apk的存放路径,在这个后面的一个为需要签名的pak的路径,最后的android.keystore为证书的别名,如果不知道别名,可以在终端输入:keytool -list -v -keystore /Users/xxx/Desktop/android.keystore查看具体信息,里面有别名。
这一步还要注意,签名文件和需要签名的apk要在同一目录下。

你可能感兴趣的:(apk反编译和重新打包)