#!/system/bin/sh

RESET='\033[0m'
BOLD='\033[1m'
DIM='\033[2m'
BLACK='\033[0;30m'
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
MAGENTA='\033[0;35m'
CYAN='\033[0;36m'
WHITE='\033[0;37m'
BRIGHT_RED='\033[1;31m'
BRIGHT_GREEN='\033[1;32m'
BRIGHT_YELLOW='\033[1;33m'
BRIGHT_BLUE='\033[1;34m'
BRIGHT_MAGENTA='\033[1;35m'
BRIGHT_CYAN='\033[1;36m'
BRIGHT_WHITE='\033[1;37m'
DARK_GREEN='\033[0;32m'
DEEP_GREEN='\033[0;38;5;22m'

clear_screen() {
    printf '\033[2J\033[H'
}

draw_header() {
    echo -e "${BRIGHT_MAGENTA}╔══════════════════════════════════════════════════════════╗${RESET}"
    echo -e "${BRIGHT_MAGENTA}║${RESET} ${BOLD}${BRIGHT_CYAN}      🌅 张豪工具 v5.0.0  🌅      ${RESET}${BRIGHT_MAGENTA}║${RESET}"
    echo -e "${BRIGHT_MAGENTA}╚══════════════════════════════════════════════════════════╝${RESET}"
    echo
}

draw_footer() {
    echo
    echo -e "${DIM}${BRIGHT_BLUE}════════════════════════════════════════════════════════════${RESET}"
    echo -e "${DIM}   ${BRIGHT_YELLOW}✦ 本工具仅供学习交流，使用者与作者无关 ✦${RESET}"
    echo -e "${DIM}   ${BRIGHT_RED}⚠ 请在下载后24小时内删除本程序 ⚠${RESET}"
    echo -e "${DIM}${BRIGHT_BLUE}════════════════════════════════════════════════════════════${RESET}"
}

draw_progress() {
    local percent=$1
    local extra_info=$2
    local width=54
    local filled=$(( percent * width / 100 ))
    local empty=$(( width - filled ))
    local color
    if [ $percent -lt 30 ]; then
        color=$BRIGHT_RED
    elif [ $percent -lt 70 ]; then
        color=$BRIGHT_YELLOW
    else
        color=$BRIGHT_GREEN
    fi
    local bar=""
    i=0
    while [ $i -lt $filled ]; do
        bar="${bar}█"
        i=$((i + 1))
    done
    i=0
    while [ $i -lt $empty ]; do
        bar="${bar}░"
        i=$((i + 1))
    done
    printf "\r${color}▓▒░ %-54s ${RESET}${BRIGHT_WHITE}%3d%%${RESET}" "$bar" "$percent"
    if [ -n "$extra_info" ]; then
        echo -e "  ${DIM}${BRIGHT_CYAN}${extra_info}${RESET}"
    else
        echo
    fi
}

simulate_task() {
    local duration=$1
    local task_name=$2
    local extra_callback=$3
    echo -e "${BRIGHT_YELLOW}▶ ${task_name}${RESET}"
    local progress=0
    local elapsed=0
    local increment
    while [ $progress -lt 100 ]; do
        increment=$(( RANDOM % 6 + 3 ))
        if [ $((progress + increment)) -gt 100 ]; then
            increment=$((100 - progress))
        fi
        progress=$((progress + increment))
        elapsed=$(( elapsed + (duration * increment / 100) ))
        if [ $elapsed -gt $duration ]; then
            elapsed=$duration
        fi
        local extra=""
        if [ -n "$extra_callback" ]; then
            extra=$(eval "$extra_callback")
        fi
        draw_progress $progress "$extra"
        sleep 0.2
    done
    draw_progress 100 "✓ 完成"
    echo
}

loading_chaos() {
    echo -e "${DEEP_GREEN}${DARK_GREEN}"
    for i in 1 2 3 4 5 6 7 8 9 10; do
        printf "\r"
        for j in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do
            rand=$((RANDOM % 10))
            case $rand in
                0) printf "${DEEP_GREEN}0101${RESET}${DARK_GREEN} " ;;
                1) printf "${DARK_GREEN}1010${RESET}${DEEP_GREEN} " ;;
                2) printf "${GREEN}0110${RESET}${DARK_GREEN} " ;;
                3) printf "${DEEP_GREEN}1001${RESET}${GREEN} " ;;
                4) printf "${DARK_GREEN}1100${RESET}${DEEP_GREEN} " ;;
                5) printf "${GREEN}0011${RESET}${DARK_GREEN} " ;;
                6) printf "${DEEP_GREEN}1110${RESET}${GREEN} " ;;
                7) printf "${DARK_GREEN}0111${RESET}${DEEP_GREEN} " ;;
                8) printf "${GREEN}1011${RESET}${DARK_GREEN} " ;;
                9) printf "${DEEP_GREEN}1101${RESET}${GREEN} " ;;
            esac
        done
        printf "${RESET}\n"
        sleep 0.03
    done
    echo
    echo -e "${BRIGHT_GREEN}✅ Root 刷入成功！${RESET}"
    sleep 1
}

show_disclaimer() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_RED}${BOLD}    ⚠️  严正声明  ⚠️${RESET}"
    echo
    echo -e "${BRIGHT_WHITE}  本程序仅供学习交流使用${RESET}"
    echo -e "${BRIGHT_WHITE}  使用者的一切行为与作者无关${RESET}"
    echo -e "${BRIGHT_RED}  ${BOLD}请在下载后24小时内删除本程序${RESET}"
    echo
    echo -e "${DIM}${BRIGHT_BLUE}  按任意键继续...${RESET}"
    read -n 1 -s
}

check_root() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_CYAN}🔍 检测到手机未获取 Root 权限${RESET}"
    echo
    echo -e "${BRIGHT_YELLOW}是否刷入 Root ？${RESET}"
    echo -e "  ${BRIGHT_GREEN}[1] 刷入 Root${RESET}"
    echo -e "  ${BRIGHT_RED}[0] 退出进程${RESET}"
    echo
    echo -n -e "${BRIGHT_WHITE}请选择 (0/1): ${RESET}"
    read -n 1 choice
    echo
    if [ "$choice" = "0" ]; then
        echo -e "${BRIGHT_RED}进程结束。${RESET}"
        exit 0
    elif [ "$choice" = "1" ]; then
        echo -e "${BRIGHT_GREEN}开始刷入流程...${RESET}"
        sleep 1
    else
        echo -e "${BRIGHT_RED}无效选择，退出。${RESET}"
        exit 1
    fi
}

connect_server() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_YELLOW}🌐 正在连接服务器...${RESET}"
    sleep 3
    echo -e "${BRIGHT_GREEN}✅ 连接成功！${RESET}"
    sleep 1
}

download_root_patch() {
    clear_screen
    draw_header
    local total_time=$(( RANDOM % 6 + 5 ))
    echo -e "${BRIGHT_YELLOW}📦 正在下载 Root 补丁包...${RESET}"
    simulate_task $total_time "下载中" "echo \"速度: $(( RANDOM % 50 + 10 ))MB/s  已下载: ${progress}%\""
    echo -e "${BRIGHT_GREEN}✅ 下载完成！${RESET}"
    sleep 1
}

auto_flash_root() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_YELLOW}已下载完是否全自动刷入 Root ？${RESET}"
    echo -e "  ${BRIGHT_GREEN}[1] 是，全自动刷入${RESET}"
    echo -e "  ${BRIGHT_RED}[0] 否，结束进程${RESET}"
    echo
    echo -n -e "${BRIGHT_WHITE}请选择 (0/1): ${RESET}"
    read -n 1 choice
    echo
    if [ "$choice" = "0" ]; then
        echo -e "${BRIGHT_RED}进程结束。${RESET}"
        exit 0
    elif [ "$choice" = "1" ]; then
        echo -e "${BRIGHT_YELLOW}🔓 正在解除 BL 锁...${RESET}"
        sleep 3
        echo -e "${BRIGHT_GREEN}✅ 解锁成功！${RESET}"
        sleep 1
        echo -e "${BRIGHT_YELLOW}⚡ 正在刷入 Root ...${RESET}"
        loading_chaos
        sleep 1
    else
        echo -e "${BRIGHT_RED}无效选择，退出。${RESET}"
        exit 1
    fi
}

select_magisk() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_CYAN}请选择面具：${RESET}"
    echo -e "  ${BRIGHT_GREEN}[1] 阿尔法${RESET}"
    echo -e "  ${BRIGHT_YELLOW}[2] 杂鱼${RESET}"
    echo -e "  ${BRIGHT_BLUE}[3] KSU${RESET}"
    echo -e "  ${BRIGHT_MAGENTA}[4] AP${RESET}"
    echo
    echo -n -e "${BRIGHT_WHITE}请选择 (1-4): ${RESET}"
    read -n 1 choice
    echo
    case $choice in
        1)
            echo -e "${BRIGHT_GREEN}已选择: 阿尔法${RESET}"
            ;;
        2)
            echo -e "${BRIGHT_YELLOW}已选择: 杂鱼${RESET}"
            ;;
        3)
            echo -e "${BRIGHT_BLUE}已选择: KSU${RESET}"
            ;;
        4)
            echo -e "${BRIGHT_MAGENTA}已选择: AP${RESET}"
            ;;
        *)
            echo -e "${BRIGHT_RED}无效选择，退出。${RESET}"
            exit 1
            ;;
    esac
    sleep 1
    echo -e "${BRIGHT_YELLOW}📦 正在下载面具组件...${RESET}"
    simulate_task $(( RANDOM % 5 + 4 )) "下载中" "echo \"速度: $(( RANDOM % 30 + 5 ))MB/s  已下载: ${progress}%\""
    echo -e "${BRIGHT_GREEN}✅ 面具组件下载完成${RESET}"
    sleep 1
}

hide_environment() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_YELLOW}🕵️ 正在为你隐藏环境...${RESET}"
    local progress=0
    local modules=0
    while [ $progress -lt 100 ]; do
        increment=$(( RANDOM % 6 + 3 ))
        if [ $((progress + increment)) -gt 100 ]; then
            increment=$((100 - progress))
        fi
        progress=$((progress + increment))
        modules=$((progress / 10))
        if [ $modules -gt 10 ]; then
            modules=10
        fi
        draw_progress $progress "已下载: ${modules} 个模块"
        sleep 0.2
    done
    draw_progress 100 "已下载: 10 个模块"
    echo
    echo -e "${BRIGHT_GREEN}✅ 环境隐藏完成${RESET}"
    sleep 1
}

download_other_apps() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_YELLOW}📱 正在下载其他应用...${RESET}"
    simulate_task $(( RANDOM % 5 + 4 )) "下载中" "echo \"速度: $(( RANDOM % 40 + 8 ))MB/s  已下载: ${progress}%\""
    echo -e "${BRIGHT_GREEN}✅ 其他应用下载完成${RESET}"
    sleep 1
}

final_message() {
    clear_screen
    draw_header
    echo -e "${BRIGHT_GREEN}${BOLD}   🎉 所有操作已完成！🎉${RESET}"
    echo
    echo -e "${BRIGHT_CYAN}  已自动为你打开无后台模式${RESET}"
    echo -e "${BRIGHT_YELLOW}  ✨ 请重启手机... ✨${RESET}"
    echo
    echo -e "${DIM}${BRIGHT_MAGENTA}  感谢使用张豪工具！${RESET}"
    draw_footer
    echo
    echo -e "${DIM}按任意键退出...${RESET}"
    read -n 1 -s
}

main() {
    show_disclaimer
    check_root
    connect_server
    download_root_patch
    auto_flash_root
    select_magisk
    hide_environment
    download_other_apps
    final_message
}

main