#!/system/bin/sh

# ============================================
# MXH 工具箱 v9.5.5
# 使用条款与条件声明
# 带记忆功能 - 已同意用户自动跳过确认
# ============================================

# 颜色定义（Android 兼容）
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
NC='\033[0m' # No Color

# 配置文件路径
CONFIG_DIR="/data/local/tmp/mxh_toolkit"
AGREEMENT_FILE="$CONFIG_DIR/agreement_accepted"
CONFIG_FILE="$CONFIG_DIR/config.ini"

# 显示横幅
printf "${BLUE}"
echo "============================================"
echo "          MXH 工具箱 v9.5.5"
echo "============================================"
printf "${NC}"

# 检查用户是否已经同意过条款
check_agreement() {
    if [ -f "$AGREEMENT_FILE" ]; then
        # 读取配置文件中的信息
        if [ -f "$CONFIG_FILE" ]; then
            AGREEMENT_DATE=$(grep 'agreement_date' "$CONFIG_FILE" | cut -d'=' -f2)
            if [ -n "$AGREEMENT_DATE" ]; then
                echo "检测到您已于 $AGREEMENT_DATE 同意过使用条款"
                echo "将自动跳过确认步骤..."
                return 0
            fi
        fi
        echo "检测到您已同意过使用条款"
        echo "将自动跳过确认步骤..."
        return 0
    fi
    return 1
}

# 保存用户同意记录
save_agreement() {
    # 创建配置目录（如果不存在）
    mkdir -p "$CONFIG_DIR" 2>/dev/null
    
    # 创建同意标记文件
    touch "$AGREEMENT_FILE"
    
    # 保存详细配置信息
    echo "# MXH 工具箱配置" > "$CONFIG_FILE"
    echo "agreement_date=$(date '+%Y-%m-%d %H:%M:%S')" >> "$CONFIG_FILE"
    echo "user=$(whoami)" >> "$CONFIG_FILE"
    echo "host=$(uname -n)" >> "$CONFIG_FILE"
    echo "version=9.5.5" >> "$CONFIG_FILE"
    
    # 设置权限
    chmod 600 "$AGREEMENT_FILE" "$CONFIG_FILE" 2>/dev/null
    chmod 700 "$CONFIG_DIR" 2>/dev/null
}

# 显示使用条款
show_agreement() {
    printf "${YELLOW}"
    echo "使用条款与条件"
    echo "========================="
    printf "${NC}"
    echo ""
    echo "1. 授权许可"
    echo "   - 本工具仅供个人学习和研究使用"
    echo "   - 禁止用于商业用途"
    echo "   - 禁止用于任何非法活动"
    echo ""
    echo "2. 使用限制"
    echo "   - 不得对本工具进行逆向工程、反编译或反汇编"
    echo "   - 不得修改、删除或隐藏本工具的版权信息"
    echo "   - 不得将本工具用于破坏计算机系统安全的活动"
    echo ""
    echo "3. 免责声明"
    echo "   - 使用本工具造成的任何直接或间接损失，开发者概不负责"
    echo "   - 使用者需自行承担使用风险"
    echo "   - 本工具按'原样'提供，不提供任何明示或暗示的担保"
    echo ""
    echo "4. 隐私政策"
    echo "   - 本工具不会收集、存储或传输个人敏感信息"
    echo "   - 所有操作日志仅存储在本地"
    echo ""
    echo "5. 适用范围"
    echo "   - 仅限在授权的测试环境中使用"
    echo "   - 仅限用于合法的安全评估和测试"
    echo "   - 使用前必须获得目标系统的明确授权"
    echo ""
}

# 用户确认流程
get_user_agreement() {
    printf "${RED}"
    echo "重要提示："
    printf "${NC}"
    printf "${RED}"
    echo "继续使用表示您已阅读、理解并同意以上所有条款。"
    printf "${NC}"
    echo ""
    printf "是否同意以上条款？(输入 yes 继续，其他任意键退出): "
    read agreement

    if [ "$agreement" != "yes" ]; then
        printf "${RED}已取消操作。${NC}\n"
        exit 1
    fi

    # 再次确认
    echo ""
    printf "您确认只在合法授权的情况下使用本工具吗？(yes/no): "
    read confirm

    if [ "$confirm" != "yes" ]; then
        printf "${RED}已取消操作。${NC}\n"
        exit 1
    fi
    
    # 保存用户同意记录
    save_agreement
    printf "${GREEN}同意记录已保存，下次启动将自动跳过确认。${NC}\n"
    echo ""
}

# 主要执行流程
main() {
    # 检查是否已同意条款
    if check_agreement; then
        # 已同意，直接等待3秒
        printf "${GREEN}检测到您已同意使用条款，正在启动...${NC}\n"
        echo "等待 3 秒..."
        sleep 3
    else
        # 未同意，显示条款并获取确认
        show_agreement
        get_user_agreement
        echo "等待 3 秒后启动..."
        sleep 3
    fi
    
    # 执行工具箱
    execute_toolkit
}

# 执行工具箱
execute_toolkit() {
    # 记录使用日志
    log_file="mxh_toolkit_usage.log"
    echo "================================" >> "$log_file"
    echo "使用时间: $(date)" >> "$log_file"
    echo "用户: $(whoami)" >> "$log_file"
    echo "主机: $(uname -n)" >> "$log_file"
    echo "当前目录: $(pwd)" >> "$log_file"
    echo "================================" >> "$log_file"

    # 执行原始命令
    printf "${GREEN}"
    echo "开始执行 MXH 工具箱..."
    printf "${NC}"
    echo ""

    # 检查脚本是否存在并执行
    if [ -f "MXH工具箱9.5.5.sh" ]; then
        # 检查是否有执行权限
        if [ ! -x "MXH工具箱9.5.5.sh" ]; then
            printf "${YELLOW}添加执行权限...${NC}\n"
            chmod +x "MXH工具箱9.5.5.sh"
        fi
        
        # 执行主脚本 - 使用 sh '文件名' 方式
        printf "${GREEN}找到工具箱文件，正在启动...${NC}\n"
        sh 'MXH工具箱9.5.5.sh'
        
        # 记录执行完成
        echo "$(date): 脚本执行完成" >> "$log_file"
    else
        show_file_error
        exit 1
    fi

    echo ""
    printf "${GREEN}"
    echo "执行完成！"
    printf "${NC}"
    printf "${YELLOW}"
    echo "请注意遵守相关法律法规，合法使用工具。"
    printf "${NC}"

    # 显示日志位置
    echo ""
    printf "${CYAN}"
    echo "使用日志已保存到: $(pwd)/$log_file"
    printf "${NC}"
}

# 显示文件错误信息
show_file_error() {
    printf "${RED}"
    echo "================================================"
    echo "              错误: 找不到工具箱文件           "
    echo "================================================"
    printf "${NC}"
    echo ""
    printf "${YELLOW}"
    echo "可能的原因和解决方案："
    printf "${NC}"
    echo ""
    printf "${CYAN}1. 文件路径问题${NC}\n"
    echo "   - 请检查是否将启动器与工具箱放在同一目录内"
    echo "   - 当前工作目录: $(pwd)"
    echo ""
    printf "${CYAN}2. 文件名不正确${NC}\n"
    echo "   - 请确认工具箱文件名是否为: MXH工具箱9.5.5.sh"
    echo "   - 当前目录下的文件列表:"
    ls -la | grep -E "\.sh$|MXH" || echo "    (未找到相关文件)"
    echo ""
    printf "${CYAN}3. 工具箱文件已损坏或缺失${NC}\n"
    echo "   - 请尝试重新下载工具箱文件"
    echo "   - 请检查工具箱文件是否完整"
    echo ""
    printf "${CYAN}4. 更新问题${NC}\n"
    echo "   - 请尝试更新工具箱或启动器版本"
    echo "   - 当前启动器版本: v9.5.5"
    echo ""
    printf "${CYAN}5. 权限问题${NC}\n"
    echo "   - 请检查文件权限:"
    echo "     ls -la MXH工具箱9.5.5.sh"
    echo ""
    printf "${GREEN}"
    echo "快速解决方案："
    printf "${NC}"
    echo "1. 确保启动器和工具箱文件在同一目录"
    echo "2. 检查文件名是否完全一致"
    echo "3. 运行 'ls -la' 查看当前目录文件"
    echo "4. 重新下载工具箱文件"
    echo ""
    printf "${YELLOW}"
    echo "技术支持："
    printf "${NC}"
    echo "- 请访问官方文档或联系技术支持"
    echo "- 错误代码: MXH_FILE_NOT_FOUND_001"
    
    # 记录详细错误信息
    log_file="mxh_toolkit_usage.log"
    echo "================================" >> "$log_file"
    echo "$(date): 错误 - 找不到工具箱文件" >> "$log_file"
    echo "当前目录: $(pwd)" >> "$log_file"
    echo "目录内容:" >> "$log_file"
    ls -la >> "$log_file" 2>/dev/null || echo "无法列出目录内容" >> "$log_file"
    echo "================================" >> "$log_file"
    
    # 尝试寻找可能的工具箱文件
    echo ""
    printf "${BLUE}"
    echo "正在搜索可能的工具箱文件..."
    printf "${NC}"
    
    # 搜索相关文件
    echo "搜索 *.sh 文件:"
    find . -name "*.sh" -type f 2>/dev/null | head -5
    echo ""
    echo "搜索包含 'MXH' 或 '工具箱' 的文件:"
    find . -name "*MXH*" -o -name "*工具箱*" 2>/dev/null | head -5
    
    # 提供重试选项
    echo ""
    printf "是否要手动指定工具箱文件路径？(yes/no): "
    read retry_option
    
    if [ "$retry_option" = "yes" ]; then
        printf "请输入工具箱文件的完整路径: "
        read custom_path
        if [ -f "$custom_path" ]; then
            printf "${GREEN}找到文件，正在尝试执行...${NC}\n"
            chmod +x "$custom_path" 2>/dev/null
            sh "$custom_path"
        else
            printf "${RED}指定的文件不存在或不可访问。${NC}\n"
        fi
    fi
}

# 管理命令选项
case "$1" in
    "--reset")
        echo "正在重置用户同意记录..."
        rm -rf "$CONFIG_DIR" 2>/dev/null
        if [ $? -eq 0 ]; then
            printf "${GREEN}重置成功！下次启动将重新显示使用条款。${NC}\n"
        else
            printf "${YELLOW}重置失败，可能记录不存在或没有权限。${NC}\n"
        fi
        exit 0
        ;;
    "--status")
        echo "用户同意状态："
        if [ -f "$AGREEMENT_FILE" ]; then
            if [ -f "$CONFIG_FILE" ]; then
                echo "已同意"
                echo "同意时间: $(grep 'agreement_date' "$CONFIG_FILE" | cut -d'=' -f2)"
                echo "用户: $(grep 'user' "$CONFIG_FILE" | cut -d'=' -f2)"
                echo "版本: $(grep 'version' "$CONFIG_FILE" | cut -d'=' -f2)"
            else
                echo "已同意（简单标记）"
            fi
        else
            echo "未同意"
        fi
        exit 0
        ;;
    "--help")
        echo "MXH 工具箱启动器使用帮助："
        echo "  ./启动器.sh           - 正常启动"
        echo "  ./启动器.sh --reset   - 重置用户同意记录"
        echo "  ./启动器.sh --status  - 查看用户同意状态"
        echo "  ./启动器.sh --help    - 显示此帮助信息"
        exit 0
        ;;
esac

# 启动主流程
main