操作系统:Mac OS X
软件:apktool
安装apktool
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.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要在同一目录下。