1. 下载apktool.jar ,下载地址: iBotPeaches / Apktool / Downloads — Bitbucket
2. mac电脑使用 apksigner 方式签名, 需要配置环境.
2.1 命令行输入: open .bash_profile, 在打开的环境配置文件中添加,根据自己SDK目录配置
export APK_SIGNER_HOME=/opt/android-sdk/build-tools/28.0.3
export PATH=$PATH:$APK_SIGNER_HOME
2.2 添加上述环境后关闭文件即可, 然后执行刷新命令: source .bash_profile
3. 把要反编译的apk, apktools.jar和签名文件放到同一文件夹下.
下面开始反编译和二次签名操作:
命令行 cd 到test目录下:
1.反编译 test.apk 包, 成功后会生成一个 反编译后的test文件.
java -jar apktool.jar d test.apk
2. test文件夹就是apk内容, 进行你要修改的操作
3. 把test文件夹下的 META-INF 文件删除.
4. 执行打包命令,执行完之后会生成一个未签名的 ccc.apk 包:
apktool b test -o ccc.apk
test是反编译test.apk后生成的文件夹.
ccc.apk 是你打包的新apk.
5. 对上面生成的test.apk进行签名:
//签名,只有V1签名
jarsigner -verbose -keystore 签名文件 ccc.apk 签名文件的别名
//签名,V1,保留未签名的旧apk
jarsigner -verbose -keystore 签名文件 -signedjar newccc.apk ccc.apk 签名文件的别名
//V1和V2签名
apksigner sign --ks 签名文件 --ks-key-alias 签名文件的别名 ccc.apk
6. 附属命令
//查看签名信息
keytool -printcert -jarfile ccc.apk
//检查 Apk 是否已签名,两个命令都可以
apksigner verify -verbose -print-certs ccc.apk
apksigner verify -v --print-certs ccc.apk