#!/system/bin/sh
#==============================================================
#  小轩和平清理 · 完整修复版 (智能接口检测 + MAC 伪装)
#==============================================================
PATH=/sbin:/system/sbin:/system/bin:/system/xbin:/su/bin:/magisk/.core/bin:/data/adb/magisk:$PATH
export PATH

R='\033[0;31m'; G='\033[0;32m'; Y='\033[1;33m'; B='\033[0;36m'; P='\033[0;35m'; W='\033[1;37m'; N='\033[0m'

clear
echo -e "${P}==============================================${N}"
echo -e "${W}           ██╗  ██╗██╗   ██╗ █████╗ ███╗   ██╗${N}"
echo -e "${W}           ╚██╗██╔╝██║   ██║██╔══██╗████╗  ██║${N}"
echo -e "${W}            ╚███╔╝ ██║   ██║███████║██╔██╗ ██║${N}"
echo -e "${W}            ██╔██╗ ██║   ██║██╔══██║██║╚██╗██║${N}"
echo -e "${W}           ██╔╝ ██╗╚██████╔╝██║  ██║██║ ╚████║${N}"
echo -e "${W}           ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝${N}"
echo -e "${P}==============================================${N}"
echo -e "${W}           小 轩 和 平 清 理  V1.1${N}"
echo -e "${P}==============================================${N}"
echo ""

echo -e "${Y}【重要公告】${N}"
echo -e "${W}本脚本将执行以下操作："
echo -e "  1. 完全卸载和平精英并清除其全部残留数据"
echo -e "  2. 更换手机可能作为设备标识的全部数据"
echo -e "     (MAC / 主机名 / DHCP / Android ID / TCP/IP 指纹等)"
echo -e ""
echo -e "${W}声明：本脚本仅用于清理个人设备、保护隐私，"
echo -e "      不存在任何违法行为，也不得用于任何违法行为。"
echo -e "      请确认您已知晓上述内容并同意继续。${N}"
echo ""

echo -ne "${G}是否同意并继续？(y/n) : ${N}"
read -r consent
if [ "$consent" != "y" ] && [ "$consent" != "Y" ]; then
    echo -e "${R}[×] 您已取消操作，脚本退出。${N}"
    exit 0
fi
echo ""

if [ "$(id -u)" != "0" ]; then
    echo -e "${R}[×] 未获取 Root 权限。${N}"
    exit 1
fi
setenforce 0 2>/dev/null
echo -e "${G}[√] Root 权限已获取${N}"

# ---------- 智能获取无线接口 ----------
WLAN=""
for iface in $(ip link show 2>/dev/null | grep -oP '(?<=\d: )\S+' | grep -vE '^lo$|^dummy|^rmnet|^usb'); do
    if [ -d "/sys/class/net/$iface/wireless" ] || echo "$iface" | grep -qE 'wlan|wlp'; then
        WLAN="$iface"
        break
    fi
done
if [ -z "$WLAN" ]; then
    WLAN=$(ls /sys/class/net/ 2>/dev/null | grep -E 'wlan|wlp' | head -n 1)
fi
if [ -z "$WLAN" ]; then
    echo -e "${R}[×] 未检测到无线接口，请确认 Wi‑Fi 已打开。${N}"
    exit 1
fi
echo -e "${G}[√] 检测到无线接口：$WLAN${N}"

# ---------- 随机数函数 ----------
randbyte() {
    local b=$(dd if=/dev/urandom bs=1 count=1 2>/dev/null | od -A n -t u1 | tr -d ' ')
    [ -z "$b" ] && b=0
    echo $b
}
randhex() {
    local len=$1 result=""
    if command -v busybox >/dev/null 2>&1 && busybox xxd -p -l "$len" /dev/urandom 2>/dev/null; then return; fi
    if command -v od >/dev/null 2>&1; then
        result=$(od -A n -t x1 -N "$len" /dev/urandom 2>/dev/null | tr -d ' \n')
        [ -n "$result" ] && echo "$result" && return
    fi
    for i in $(seq 1 "$len"); do result="${result}$(printf '%02x' $(randbyte))"; done
    echo "$result"
}
randmac() {
    printf '%02x:%02x:%02x:%02x:%02x:%02x' $(( $(randbyte) & 0xFE )) $(randbyte) $(randbyte) $(randbyte) $(randbyte) $(randbyte)
}
randstr() {
    local len=$1 result="" chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" idx
    for i in $(seq 1 "$len"); do
        idx=$(( $(randbyte) % 62 + 1 ))
        result="$result$(echo "$chars" | cut -c $idx)"
    done
    echo "$result"
}

#====================================
#  第一部分：卸载和平精英
#====================================
PKG="com.tencent.tmgp.pubgmhd"
echo -e "${B}[1/4] 卸载和平精英...${N}"
pm uninstall $PKG >/dev/null 2>&1 && echo -e "${G}    [√] 已卸载${N}" || pm clear $PKG >/dev/null 2>&1 && echo -e "${G}    [√] 数据已清除${N}" || echo -e "${R}    [!] 可能未安装${N}"

echo -e "${B}[2/4] 删除残留目录...${N}"
for dir in /data/data/$PKG /data/user/0/$PKG /data/media/0/Android/data/$PKG /sdcard/Android/data/$PKG; do
    [ -d "$dir" ] && rm -rf "$dir" 2>/dev/null && echo -e "${G}    已删除: $dir${N}"
done

echo -e "${B}[3/4] 清理腾讯系残留缓存...${N}"
rm -rf /sdcard/tencent /sdcard/Android/data/com.tencent.tmgp.* /data/system/package_cache 2>/dev/null
echo -e "${G}    [√] 缓存清理完成${N}"

echo -e "${B}[4/4] 验证清理结果...${N}"
if [ -d "/data/data/$PKG" ] || [ -d "/sdcard/Android/data/$PKG" ]; then
    echo -e "${R}    [×] 仍有残留，请手动检查${N}"
else
    echo -e "${G}    [√] 和平精英已彻底清除${N}"
fi

#====================================
#  第二部分：设备标识随机化
#====================================
echo ""
echo -e "${B}========================================${N}"
echo -e "${W}  开始更换设备标识${N}"
echo -e "${B}========================================${N}"

# 备份
OLD_MAC=$(cat /sys/class/net/$WLAN/address)
OLD_HOST=$(getprop net.hostname)
OLD_ANDROIDID=$(settings get secure android_id 2>/dev/null)
echo "$OLD_MAC" > /sdcard/original_mac.txt
echo "$OLD_HOST" > /sdcard/original_hostname.txt
echo "$OLD_ANDROIDID" > /sdcard/original_android_id.txt

# 生成新标识
NEW_MAC=$(randmac)
NEW_HOST="$(randstr 8)-$(randstr 4)"
DHCP_CLIENTID="$(randhex 4)"
DHCP_VENDOR="$(randstr 6)-$(randstr 4)"
NEW_ANDROIDID="$(randhex 16)"
NEW_TTL=$(( $(randbyte) % 190 + 64 ))
NEW_MSS=$(( $(randbyte) % 500 + 1000 ))
TCP_RMEM=$(( $(randbyte) % 8192 + 4096 ))
TCP_WMEM=$(( $(randbyte) % 8192 + 4096 ))
TCP_RMEM_MAX=$(( TCP_RMEM * 1024 ))
TCP_WMEM_MAX=$(( TCP_WMEM * 1024 ))
CONG=$(cat /proc/sys/net/ipv4/tcp_available_congestion_control 2>/dev/null | awk '{print $1}')
[ -z "$CONG" ] && CONG="cubic"
BT_NEW=$(randmac)

# 断开
echo -e "${Y}[1] 断开 Wi‑Fi...${N}"
cmd wifi disconnect 2>/dev/null
svc wifi disable 2>/dev/null
sleep 2

# MAC 修改（物理 + 伪装）
echo -e "${Y}[2] 修改 MAC 地址...${N}"
MAC_CHANGED=0
ip link set $WLAN down; sleep 2
ip link set $WLAN address $NEW_MAC 2>/dev/null && MAC_CHANGED=1
[ $MAC_CHANGED -eq 0 ] && busybox ifconfig $WLAN hw ether $NEW_MAC 2>/dev/null && MAC_CHANGED=1
[ $MAC_CHANGED -eq 0 ] && echo "$NEW_MAC" > /sys/class/net/$WLAN/address 2>/dev/null && MAC_CHANGED=1
ip link set $WLAN up
ACTUAL_MAC=$(cat /sys/class/net/$WLAN/address)
if [ "$ACTUAL_MAC" = "$NEW_MAC" ]; then
    echo -e "${G}    [√] 物理 MAC 已更改${N}"
else
    echo -e "${Y}    [!] 物理 MAC 修改失败，尝试 iptables 伪装...${N}"
    modprobe ipt_mac 2>/dev/null
    iptables -t mangle -A OUTPUT -o $WLAN -j MAC --mac-source $NEW_MAC 2>/dev/null
    if [ $? -eq 0 ]; then
        echo -e "${G}    [√] iptables MAC 伪装已激活（出站包为 $NEW_MAC）${N}"
    else
        echo -e "${R}    [×] iptables 伪装也失败，MAC 仍为 $ACTUAL_MAC${N}"
    fi
fi

echo -e "${Y}[3] 主机名 & DHCP 指纹...${N}"
setprop net.hostname "$NEW_HOST"
echo "$NEW_HOST" > /proc/sys/kernel/hostname 2>/dev/null
for prop in dhcp.${WLAN}.hostname dhcp.wlan0.hostname; do setprop "$prop" "$NEW_HOST" 2>/dev/null; done
setprop dhcp.${WLAN}.clientid "$DHCP_CLIENTID" 2>/dev/null
setprop dhcp.${WLAN}.vendorclass "$DHCP_VENDOR" 2>/dev/null
rm -f /data/misc/dhcp/dhcpcd-${WLAN}.lease* /data/vendor/dhcpcd/dhcpcd-${WLAN}.lease*
echo -e "${G}    [√] 完成${N}"

echo -e "${Y}[4] Android ID...${N}"
settings put secure android_id "$NEW_ANDROIDID" 2>/dev/null
if command -v sqlite3 >/dev/null 2>&1 && [ -d /data/data/com.google.android.gsf/databases ]; then
    sqlite3 /data/data/com.google.android.gsf/databases/gservices.db \
        "UPDATE main SET value = '$(randhex 16)' WHERE name = 'android_id';" 2>/dev/null
fi
echo -e "${G}    [√] 完成${N}"

echo -e "${Y}[5] TCP/IP 指纹...${N}"
echo $NEW_TTL > /proc/sys/net/ipv4/ip_default_ttl 2>/dev/null
echo $NEW_TTL > /proc/sys/net/ipv6/conf/all/hop_limit 2>/dev/null
echo 0 > /proc/sys/net/ipv4/tcp_timestamps 2>/dev/null
echo "$TCP_RMEM $TCP_RMEM $TCP_RMEM_MAX" > /proc/sys/net/ipv4/tcp_rmem 2>/dev/null
echo "$TCP_WMEM $TCP_WMEM $TCP_WMEM_MAX" > /proc/sys/net/ipv4/tcp_wmem 2>/dev/null
echo "$TCP_RMEM" > /proc/sys/net/core/rmem_default 2>/dev/null
echo "$TCP_WMEM" > /proc/sys/net/core/wmem_default 2>/dev/null
echo "$CONG" > /proc/sys/net/ipv4/tcp_congestion_control 2>/dev/null
echo -e "${G}    [√] 完成${N}"

echo -e "${Y}[6] iptables TTL/MSS...${N}"
if command -v iptables >/dev/null 2>&1; then
    iptables -t mangle -F 2>/dev/null
    iptables -t mangle -I OUTPUT -o $WLAN -j TTL --ttl-set $NEW_TTL 2>/dev/null
    iptables -t mangle -I OUTPUT -o $WLAN -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss $NEW_MSS 2>/dev/null
    echo -e "${G}    [√] 规则已添加${N}"
else
    echo -e "${Y}    [!] iptables 不可用${N}"
fi

echo -e "${Y}[7] IPv6 隐私...${N}"
ip -6 addr flush dev $WLAN scope global 2>/dev/null
echo 2 > /proc/sys/net/ipv6/conf/$WLAN/use_tempaddr 2>/dev/null
echo 1 > /proc/sys/net/ipv6/conf/$WLAN/addr_gen_mode 2>/dev/null
echo 0 > /proc/sys/net/ipv6/conf/$WLAN/autoconf 2>/dev/null
echo 0 > /proc/sys/net/ipv6/conf/$WLAN/accept_ra 2>/dev/null
echo -e "${G}    [√] 完成${N}"

echo -e "${Y}[8] 蓝牙 MAC...${N}"
BT_IFACE=$(ls /sys/class/bluetooth/ 2>/dev/null | head -n 1)
[ -z "$BT_IFACE" ] && BT_IFACE="hci0"
if [ -e /sys/class/bluetooth/$BT_IFACE/address ] && command -v hciconfig >/dev/null 2>&1; then
    hciconfig $BT_IFACE down 2>/dev/null
    hciconfig $BT_IFACE addr $BT_NEW 2>/dev/null
    hciconfig $BT_IFACE up 2>/dev/null
    echo -e "${G}    [√] 完成${N}"
else
    echo -e "${Y}    [!] 无蓝牙或缺少 hciconfig${N}"
fi

echo -e "${Y}[9] 设备型号属性...${N}"
for prop in ro.product.model ro.product.brand ro.product.device ro.product.manufacturer; do
    cur=$(getprop $prop 2>/dev/null)
    [ -n "$cur" ] && setprop $prop "$(randstr 8)" 2>/dev/null && echo -e "     $prop -> $(getprop $prop)"
done
echo -e "${G}    [√] 完成${N}"

echo -e "${Y}[10] 清理网络统计...${N}"
rm -f /data/system/netstats* 2>/dev/null
pm clear com.google.android.gms 2>/dev/null >/dev/null
echo -e "${G}    [√] 完成${N}"

echo -e "${Y}[11] 重连 Wi‑Fi...${N}"
svc wifi enable 2>/dev/null; sleep 3
cmd wifi reconnect 2>/dev/null; sleep 5
IP=$(ip -o addr show $WLAN 2>/dev/null | grep -oE 'inet [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n1 | awk '{print $2}')
echo -e "${G}    [√] 当前 IP: ${IP:-未获取}${N}"

# 最终报告
echo ""
echo -e "${P}========================================${N}"
echo -e "${W}        小轩和平清理 - 执行完毕${N}"
echo -e "${P}========================================${N}"
echo -e "${G}游戏卸载：已完成${N}"
echo -e "${W}新设备标识：${N}"
echo -e "  MAC        : ${G}$(cat /sys/class/net/$WLAN/address)${N}"
[ -n "$(iptables -t mangle -L 2>/dev/null | grep 'MAC set')" ] && echo -e "  (iptables 伪装 MAC: ${G}$NEW_MAC${N})"
echo -e "  主机名     : ${G}$(getprop net.hostname)${N}"
echo -e "  Android ID : ${G}$(settings get secure android_id 2>/dev/null)${N}"
echo -e "  设备型号   : ${G}$(getprop ro.product.model)${N}"
echo ""
echo -e "${Y}※ 重启后大部分标识会恢复，MAC iptables 规则也会消失。${N}"
echo -e "${P}========================================${N}"
echo -e "${W}              小轩出品${N}"
echo -e "${P}========================================${N}"

setenforce 1 2>/dev/null