第一步:将apk解压
第二步:找到META-INF 下的.RSA文件
第三步:在控制台上输入命令:
keytool -printcert -file xxx.RSA回车,即可查看签名文件.将.RSA文件拖入到-file后面,即可查看
zipalign和apksigner全部放在了Android/sdk/build-tools/24.0.3以上里面了。我用的29.0.3
cd /Users/bjh/Library/Android/sdk/build-tools/29.0.3
1.对齐检查
例句:
zipalign -c -v 4 apk路径
实际:
./zipalign -c -v 4 /Users/bjh/Documents/jiagu.apk
出现 “Verification FAILED” 则需要对齐
2.执行对齐 必须
例句 :
zipalign -v 4 「需要对齐操作的apk地址」 「对齐之后生成的地址」
实际
./zipalign -v 4 /Users/bjh/Documents/bjh-b/jiagu.apk /Users/bjh/Documents/bjh-b/zipalign.apk
结果:
出现 “Verification succesful” 说明对齐成功
3.检查签名
例句 :
例句:
apksigner verify -v 检查的apk路径
实际:
./apksigner verify -v /Users/bjh/Documents/bjh-b/zipalign.apk
结果:
出现 “DOES NOT VERIFY ERROR: Missing META-INF/MANIFEST.MF” 说明未签名
4.重签名 必须
例句 :
apksigner sign -verbose --ks 「jks文件路径」 --v1-signing-enabled (「true/false」v1打包开启/关闭) --v2-signing-enabled (「true/false」v2打包开启/关闭) -ks-key-alias (jks别名 key-alias) --ks-pass pass: (jks密码,key store password) --key-pass pass:(key 密码,key password) --out 「生成的apk路径,重签名后的」 「对齐之后的apk路径」
实际:
./apksigner sign -verbose --ks /Users/bjh/Documents/bjh-b/bajiaohuabussiness.keystore --v1-signing-enabled true --v2-signing-enabled true --ks-key-alias bajiaohua --ks-pass pass:bajiaohua --key-pass pass:bajiaohua --out /Users/bjh/Documents/bjh-b/signed.apk /Users/bjh/Documents/bjh-b/zipalign.apk
结果
Signed
说明成功签名了
5.再次检查
实际:
./apksigner verify -v /Users/bjh/Documents/bjh-b/signed.apk
结果:
using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): true
Number of signers: 1