#!/bin/sh
set -e

RED_WHITE='\033[41;37m'
RESET='\033[0m'

if [ $(id -u) != 0 ]; then
    echo "\n请使用root权限执行 !"
    exit 1
fi

sleep 0.3
echo -e "\033[33;31m**************************************\033[0m"

PKG="com.tencent.tmgp.pubgmhd"
SO_DIR="arm64-v8a"

echo ""
echo "请选择注入方案："
echo "  1) 方案一: yyzznbs7.so"
echo "  2) 方案二: yygfczznbs7.so.so"
echo "  3) 方案三: yygfczznbs78.so.so"
echo ""

while true; do
    printf "请输入选项 (1 或 2 或 3): "
    read choice
    case "$choice" in
        1)
            SO="yyzznbs7.so"
            break
            ;;
        2)
            SO="yygfczznbs7.so.so"
            break
            ;;
        3)
            SO="yygfczznbs78.so.so"
            break
            ;;
        *)
            echo -e "${RED_WHITE}无效选项，请重新输入${RESET}"
            ;;
    esac
done

echo -e "${RED_WHITE}已选择方案: $SO${RESET}"
echo ""

[ ! -d "/data/data/$PKG" ] && { echo -e "${RED_WHITE}错误：未检测到和平精英正式服${RESET}"; exit 1; }
[ ! -f "$SO_DIR/$SO" ] && { echo -e "${RED_WHITE}错误：缺少 $SO_DIR/$SO${RESET}"; exit 1; }
[ ! -f "inject" ] && { echo -e "${RED_WHITE}错误：缺少 inject${RESET}"; exit 1; }

DIR="/data/data/$PKG"

if [ -f "$DIR/$SO" ]; then
    cp "$DIR/$SO" "$DIR/${SO}.bak" 2>/dev/null
    echo -e "${RED_WHITE}备份原 $SO 为 ${SO}.bak${RESET}"
fi

cp -f "$SO_DIR/$SO" "$DIR/$SO"
cp -f "inject" "$DIR/"
chmod 755 "$DIR/$SO"
chmod 777 "$DIR/inject"

echo -e "${RED_WHITE}文件部署完成${RESET}"

if pgrep -f "$PKG" > /dev/null; then
    echo -e "${RED_WHITE}检测到游戏已在运行，等待2秒后注入...${RESET}"
    sleep 2
else
    echo -e "${RED_WHITE}游戏未运行，正在启动...${RESET}"
    am start -n "$PKG/com.epicgames.ue4.SplashActivity" > /dev/null 2>&1
    for i in $(seq 1 200); do
        if pgrep -f "$PKG" > /dev/null; then
            echo -e "${RED_WHITE}游戏进程已出现${RESET}"
            break
        fi
        usleep 50000
    done
    if ! pgrep -f "$PKG" > /dev/null; then
        echo -e "${RED_WHITE}警告：游戏启动超时，仍尝试注入${RESET}"
    fi
    echo -e "${RED_WHITE}等待7秒后注入...${RESET}"
    sleep 7
fi

if [ $(id -u) != 0 ]; then
    echo "\n请使用root权限执行 !"
    exit 1
fi
sleep 0.3
echo -e "\033[33;31m**************************************\033[0m"

if "$DIR/inject" -n "$PKG" -so "$DIR/$SO"; then
    echo -e "${RED_WHITE}注入成功${RESET}"
else
    echo -e "${RED_WHITE}注入失败${RESET}"
fi
