操作系统:Mac OS X
软件:apktool
安装apktool
进入官网https://ibotpeaches.github.io/Apktool/,点击官网首页的install(https://ibotpeaches.github.io/Apktool/install/)进入安装指南,里面有Windows,Linux和Mac的安装方法,不同的操作系统按不同的步骤来就可以了。
按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.jar
和chmod +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签名
- 在终端输入:
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要在同一目录下。