360加固脚本
 · 2 min read
本脚本封装了 360 加固命令行工具,适用于 Mac 和 Linux 系统,可同时用于 apk 和 aab 文件。
info
- 请先下载 360 加固的命令行工具,并解压到当前工程目录下,重命名为 jiagu_cli。
 - 配置 360 加固需要的 licence 字段,位于 jiagu_cli/licence 文件中。
 - 在本脚本里配置好签名keystone相关字段,包括 keystore 路径、密码等。
 
#!/bin/bash
set -e
# 全局keystore配置
KEYSTORE_PATH="android/app/duoke.jks" # keystore路径
KEYSTORE_PASSWORD="your_keystore_password" # keystore密码
ALIAS="your_alias" # 别名
ALIAS_PASSWORD="your_alias_password" # 别名密码
# 假设当前工程目录下存放360的jiagu_cli/startup脚本
case "$(uname -s)" in
    Darwin) STARTUP_COMMAND="./jiagu_cli/startup" ;;
    Linux) STARTUP_COMMAND="./jiagu_cli/startup.sh" ;;
    *) echo "Unsupported OS"; exit 1 ;;
esac
# 根据文件类型初始化全局变量
init_file_variables() {
    FILENAME=$(basename -- "$FILE_PATH")
    DIRECTORY=$(dirname -- "$FILE_PATH")
    EXTENSION="${FILENAME##*.}"
    NEW_FILENAME="${FILENAME%.*}-jiagu.$EXTENSION"
}
# keystore配置
add_signature_config() {
    $STARTUP_COMMAND --config-sign-$EXTENSION add "$KEYSTORE_PATH" "$KEYSTORE_PASSWORD" "$ALIAS" "$ALIAS_PASSWORD"
}
# 加固配置
add_jiagu_config() {
    $STARTUP_COMMAND --config-jiagu-$EXTENSION update --x86 --cert-check --name "my_config" --pn "any"
}
# 加固
jiagu() {
    $STARTUP_COMMAND --jiagu-$EXTENSION "$FILE_PATH" "$DIRECTORY/$NEW_FILENAME" --auto-sign
}
# 主函数
start() {
    init_file_variables
    add_signature_config
    add_jiagu_config
    jiagu
}
echo "This script will help you to sign your Android APK or AAB file using 360 jiagu."
# Check if a file path argument is provided
if [ -z "$1" ]; then
    echo "Usage: $0 <file_path>"
    echo "Error: Please provide a valid apk or aab file path as an argument."
    exit 1
fi
# Check if the provided file is APK or AAB
if [[ "$1" != *.apk ]] && [[ "$1" != *.aab ]]; then
    echo "Error: Unsupported file type. Please provide a valid APK or AAB file."
    exit 1
fi
FILE_PATH=$1
# 将输出重定向到变量
output=$(start 2>&1 | tee /dev/stderr)
# 检查输出中是否包含错误信息
if echo "$output" | grep -q "ERROR"; then
    echo "Failed"
else
    echo "Done! The new file:$DIRECTORY/$NEW_FILENAME"
fi