Android mac端实现加固包的批量签名脚本
先上脚本
由于目前很多三方加固软件加固后的签名或者批量签名属于增值服务,所以单独弄个批量签名脚本很有必要,jarsigner和zipalign代码如下,可以直接复制粘贴到终端中,或者存储为sh文件,给该文件赋予运行权限后,以后直接拖该文件到终端命令中运行即可:
# 设置签名密钥库和密码
KEYSTORE_PATH="密钥路径.jks"
KEYSTORE_PASSWORD="密钥"
KEY_ALIAS="别名"
KEY_PASSWORD="密钥"
# 设置要签名的应用目录
APK_DIR="/Users/pang/Documents/打包签名相关/已加固未签名包"
# 设置要签名包的目标目录
destination_folder="/Users/pang/Documents/打包签名相关/批量签名包"
# 遍历指定目录下的所有 APK 文件
for apk_file in $APK_DIR/*.apk
do
# 生成签名文件名
signed_apk="${apk_file%.*}_signed.apk"
# v2签名应用
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore $KEYSTORE_PATH -storepass $KEYSTORE_PASSWORD -keypass $KEY_PASSWORD -signedjar $signed_apk $apk_file $KEY_ALIAS
# 对签名后的应用进行优化
zipalign -v 4 $signed_apk "${signed_apk}_aligned"
# 删除原始签名后的应用
# rm $signed_apk
# 重命名优化后的应用
mv "${signed_apk}_aligned" $signed_apk
# 将签名后的 APK 移动到指定文件夹
mv "$signed_apk" "$destination_folder"
echo "签名完成: $signed_apk"
done
可能会遇到的问题:
- 找不到
jarsigner
终端命令 - 找不到
zipalign
终端命令 - sh文件无运行权限
1.在Mac上添加jarsigner
终端命令
在Mac上,你可以按照以下步骤添加jarsigner
终端命令:
-
配置环境变量:为了能够在任意目录下使用
jarsigner
命令,你需要将JDK(Java Development Kit)的bin
目录添加到系统的环境变量中。-
首先,使用以下命令编辑
~/.bash_profile
文件(如果该文件不存在,则创建它):nano ~/.bash_profile
-
在打开的编辑器中,添加以下行:
export PATH=/path/to/jdk/bin:$PATH
将
/path/to/jdk
替换为实际的JDK安装路径。 按下
Ctrl + X
保存文件,然后按下Y
确认保存,最后按下Enter
退出编辑器。
-
-
刷新环境变量:在终端中运行以下命令,使刚才对
~/.bash_profile
所做的更改生效:source ~/.bash_profile
-
验证
jarsigner
命令:在终端中运行以下命令,检查jarsigner
是否成功添加:jarsigner -version
2.在Mac上添加zipalign
终端命令
确认Android SDK路径:首先,确认你已经安装了Android SDK,并记下其安装路径。
-
添加
zipalign
命令:在终端中输入以下命令,将zipalign
命令添加到系统的环境变量中:echo 'export PATH="/path/to/android-sdk/build-tools/version/":$PATH' >> ~/.bash_profile
将
/path/to/android-sdk
替换为你的Android SDK安装路径,将version
替换为适当的构建工具版本号。 -
刷新环境变量:在终端中运行以下命令,使刚才对
~/.bash_profile
所做的更改生效:source ~/.bash_profile
-
验证
zipalign
命令:在终端中运行以下命令,检查zipalign
是否成功添加:zipalign -v
3.为sh文件添加权限
在Mac上,你可以使用以下命令为一个shell脚本文件(例如,demo.sh
)添加执行权限,并且拖入到终端命令中即可:
chmod +x demo.sh