首先需要安装apktool工具,当前使用版本为2.9.3,如下图所示
1.解包
apktool.sh d -r apk文件全路径 -o 包结果的保存路径
通过上面命令可以获取当前apk的smali代码,通过修改smali代码可以满足不同的需求,smali相关教程可参考:https://github.com/JnuSimba/AndroidSecNotes/blob/master/Android%E9%80%86%E5%90%91%E5%9F%BA%E7%A1%80/smali%20%E8%AF%AD%E6%B3%95.md
2.重打包
apktool.sh b smali文件路径 -o apk路径
3.生成keystore文件
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias officeAlias -storepass 123456 -keypass 123456
签名生成keystore文件
mv my-release-key.jks /Users/xjq/Desktop/smaliFile/dist/
移动到指定目录下
4.对齐apk
//首次次需配置环境变量
vim ~/.bash_profile
export PATH=${PATH}:/Users/xjq/Library/Android/sdk/build-tools/34.0.0
source ~/.bash_profile
//对齐 APK
zipalign -p -f -v 4 "步骤二生成的apk全路径" "对齐后apk要存放的路径"
5.进行签名
apksigner sign --ks "步骤三签名文件路径" --ks-key-alias officeAlias --ks-pass pass:123456 --v1-signing-enabled true --v2-signing-enabled true --out "签名后的apk路径" -v "步骤4对齐后的apk路径"
6.安装
adb install 步骤5签名后的apk路径