首先配置JDK,进入官网下载安装Java JDK
下载安装apktool, 官网详细步骤Apktool
注意:保存的apktool为apktool.sh文件
安装成功后,执行以下命令:
cd /usr/local/bin
在bin文件下执行: (/Users/avia/Desktop/test/test.apk 为apk文件的绝对路径)
java -jar apktool.jar d /Users/avia/Desktop/test/test.apk
输出结果:
I: Using Apktool 2.3.4 on test.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
...........
解压出来的test文件就是反编译后的文件。
可以再res文件里修改图片。
重新打包apk
bin文件下执行命令:(test 即为反编译出来的文件)
java -jar apktool.jar b test
成功后,会在test文件下生成如上图的dist文件,里面的test.apk即为新打包的apk
签名
生成签名
如果没有或需要重新生成签名,使用JDK自带的keytool工具来完生成keystore。
执行命令:
keytool -genkey -v -alias android -keyalg RSA -validity 20000 -keystore ~/Desktop/test/android.keystore
参数解释如下:
-genkey 产生证书文件
-alias 产生别名
-keyalg 指定**的算法,这里指定为RSA(非对称**算法)
-validity 为证书有效天数,这里写的是20000天
-keystore 指定**库的android.keystore文件,可在文件名前面添加路径
输出:
输入**库口令:
再次输入新口令:
您的名字与姓氏是什么?
[Unknown]: test
您的组织单位名称是什么?
[Unknown]: test
您的组织名称是什么?
[Unknown]: test
您所在的城市或区域名称是什么?
[Unknown]: test
您所在的省/市/自治区名称是什么?
[Unknown]: test
该单位的双字母国家/地区代码是什么?
[Unknown]: test
CN=test, OU=test, O=test, L=test, ST=test, C=test是否正确?
[否]:
您的名字与姓氏是什么?
[test]: test
您的组织单位名称是什么?
[test]: test
您的组织名称是什么?
[test]: test
您所在的城市或区域名称是什么?
[test]: test
您所在的省/市/自治区名称是什么?
[test]: test
该单位的双字母国家/地区代码是什么?
[test]: test
CN=test, OU=test, O=test, L=test, ST=test, C=test是否正确?
[否]: Y
正在为以下对象生成 2,048 位RSA**对和自签名证书 (SHA256withRSA) (有效期为 20,000 天):
CN=test, OU=test, O=test, L=test, ST=test, C=test
输入 <android> 的**口令
(如果和**库口令相同, 按回车):
再次输入新口令:
[正在存储~/Desktop/test/android.keystore]
即可在~/Desktop/test/ 中找到android.keystore文件
设置签名
使用JDK自带的jarsigner工具来完成签名。
jarsigner的命令格式
jarsigner -verbose -keystore [签名文件存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [签名的别名]
如:
jarsigner -verbose -keystore ~/Desktop/result/android.keystore -signedjar ~/Desktop/result/result.apk ~/Desktop/result/test.apk android
jarsigner的参数说明
签名文件存放路径:
签名文件的绝对路径,例如:~\android.keystore
签名后文件存放路径:
指定要签名apk文件的绝对路径例如 c:\result.apk
未签名的文件路径 :
指定要签名apk文件的绝对路径,一般是应用市场会给你一个为签名的的包,就是那个,例如 c:\test.apk
签名的别名:
是指您创建签名文件的时候,你设置的别名 (android)
操作步骤
1.进入命令窗口 ,输入上述命令, enter 键继续
2.提示输入签名密码,输入,enter 键继续
3.打包成功,去指定的路径查看签名后的 apk 文件
大功告成!