Files
workphone-sdk/sdk/scripts/anti_detect/setup_root_hide.sh

162 lines
5.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# ==================================================================
# AF10 — Root 隐藏模块自动安装脚本
#
# 安装顺序(针对 Magisk/KernelSU 设备):
# 1. Shamiko (Magisk Zygisk) 或 KernelSU 自带隐藏
# 2. HMA-OSS (Hide My Applist) — 隐藏应用列表
# 3. Play Integrity Fork — 通过 Play Integrity 检测
# 4. TrickStore — 签名欺骗
#
# 本脚本提供模板和检查流程,实际需要在已 Root 的真机上执行。
#
# 用法:
# bash setup_root_hide.sh [device_serial]
# ==================================================================
set -euo pipefail
DEVICE_SERIAL="${1:-}"
ADB_CMD="adb"
[ -n "$DEVICE_SERIAL" ] && ADB_CMD="adb -s $DEVICE_SERIAL"
echo "=== Root 隐藏模块部署脚本 ==="
check_root_method() {
if $ADB_CMD shell "su -c 'magisk -v'" 2>/dev/null | grep -q "magisk"; then
echo "magisk"
elif $ADB_CMD shell "su -c 'ksud --version'" 2>/dev/null | grep -q "kernelsu\|ksu"; then
echo "kernelsu"
elif $ADB_CMD shell "su -c 'apd --version'" 2>/dev/null | grep -q "apatch"; then
echo "apatch"
else
echo "unknown"
fi
}
ROOT_METHOD=$(check_root_method)
echo "Root方案: $ROOT_METHOD"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
MODULES_DIR="$SCRIPT_DIR/root_modules"
mkdir -p "$MODULES_DIR"
# Shamiko
SHAMIKO_URL="https://github.com/aspect-dev/Shamiko/releases/latest/download/Shamiko.zip"
SHAMIKO_ZIP="$MODULES_DIR/Shamiko.zip"
# HMA-OSS (Hide My Applist)
HMA_URL="https://github.com/aspect-dev/HMA-OSS/releases/latest/download/HMA-OSS.zip"
HMA_ZIP="$MODULES_DIR/HMA-OSS.zip"
# Play Integrity Fork
PIF_URL="https://github.com/aspect-dev/PlayIntegrityFork/releases/latest/download/PlayIntegrityFork.zip"
PIF_ZIP="$MODULES_DIR/PlayIntegrityFork.zip"
download_if_missing() {
local url="$1" dest="$2" name="$3"
if [ -f "$dest" ]; then
echo "[$name] 已缓存: $dest"
else
echo "[$name] 下载中..."
if curl -L -f -o "$dest" "$url" 2>/dev/null; then
echo "[$name] 下载完成"
else
echo "[$name] 下载失败,请手动下载: $url"
echo " 放到: $dest"
fi
fi
}
install_magisk_module() {
local zip_path="$1" name="$2"
if [ ! -f "$zip_path" ]; then
echo "[$name] 模块文件不存在,跳过"
return
fi
echo "[$name] 推送到设备..."
$ADB_CMD push "$zip_path" "/data/local/tmp/$(basename "$zip_path")"
echo "[$name] 安装..."
$ADB_CMD shell "su -c 'magisk --install-module /data/local/tmp/$(basename "$zip_path")'" 2>/dev/null || \
echo "[$name] 自动安装失败。请手动在 Magisk App 中安装: /data/local/tmp/$(basename "$zip_path")"
}
echo ""
echo "=== Step 1: 下载模块 ==="
download_if_missing "$SHAMIKO_URL" "$SHAMIKO_ZIP" "Shamiko"
download_if_missing "$HMA_URL" "$HMA_ZIP" "HMA-OSS"
download_if_missing "$PIF_URL" "$PIF_ZIP" "PlayIntegrityFork"
echo ""
echo "=== Step 2: 安装模块 ==="
if [ "$ROOT_METHOD" = "magisk" ]; then
echo "检测到 Magisk确保 Zygisk 已开启..."
ZYGISK=$($ADB_CMD shell "su -c 'magisk --sqlite \"SELECT value FROM settings WHERE key=\\\"zygisk\\\"\"'" 2>/dev/null || echo "")
if echo "$ZYGISK" | grep -q "1"; then
echo "Zygisk 已启用"
else
echo "⚠ Zygisk 未启用。请在 Magisk App 设置中开启 Zygisk 后重启设备"
fi
install_magisk_module "$SHAMIKO_ZIP" "Shamiko"
install_magisk_module "$HMA_ZIP" "HMA-OSS"
install_magisk_module "$PIF_ZIP" "PlayIntegrityFork"
elif [ "$ROOT_METHOD" = "kernelsu" ]; then
echo "KernelSU 模式,推送模块到 /data/local/tmp/..."
[ -f "$HMA_ZIP" ] && $ADB_CMD push "$HMA_ZIP" "/data/local/tmp/HMA-OSS.zip"
[ -f "$PIF_ZIP" ] && $ADB_CMD push "$PIF_ZIP" "/data/local/tmp/PlayIntegrityFork.zip"
echo "请在 KernelSU Manager 中手动安装以上模块"
else
echo "未检测到已知 Root 方案,请确保设备已 Root"
echo "模块已下载到: $MODULES_DIR/"
echo "请手动安装"
fi
echo ""
echo "=== Step 3: 配置排除列表 ==="
HIDE_APPS=(
"com.tencent.mm"
"com.tencent.xin"
"com.ss.android.ugc.aweme"
"com.xingin.xhs"
"com.taobao.idlefish"
)
echo "以下应用应加入排除/隐藏列表:"
for app in "${HIDE_APPS[@]}"; do
echo " - $app"
done
echo ""
echo "Shamiko: 在 Magisk 排除列表(DenyList)中勾选以上应用"
echo "HMA-OSS: 在 HMA 配置中启用对以上应用的应用列表隐藏"
echo ""
echo "=== Step 4: 验证 ==="
echo "验证命令(在设备上执行):"
echo " su -c 'ls /system/xbin/su' # 应隐藏"
echo " su -c 'which magisk' # 应隐藏"
echo " pm list packages | grep magisk # 应无结果"
echo " pm list packages | grep supersu # 应无结果"
echo ""
REPORT_FILE="$SCRIPT_DIR/root_hide_report.json"
cat > "$REPORT_FILE" <<EOJSON
{
"device_serial": "${DEVICE_SERIAL:-auto}",
"root_method": "${ROOT_METHOD}",
"modules_downloaded": {
"shamiko": $([ -f "$SHAMIKO_ZIP" ] && echo "true" || echo "false"),
"hma_oss": $([ -f "$HMA_ZIP" ] && echo "true" || echo "false"),
"play_integrity_fork": $([ -f "$PIF_ZIP" ] && echo "true" || echo "false")
},
"hide_apps": $(printf '%s\n' "${HIDE_APPS[@]}" | jq -R . | jq -s .),
"deployed_at": "$(date -u +%Y-%m-%dT%H:%M:%SZ)"
}
EOJSON
echo "报告已保存: $REPORT_FILE"
echo ""
echo "=== 完成(重启设备后生效) ==="
echo "执行: $ADB_CMD reboot"