#!/system/bin/sh
# ============================================================
# update-binary — 自包含安装脚本
# 兼容：Magisk / KernelSU / APatch / AxManager
# 不依赖任何外部 functions.sh 或 util_functions.sh
# ============================================================

umask 022
OUTFD=$2
ZIPFILE=$3

# ============================================================
# 基础 ui_print：兼容所有框架的输出方式
# ============================================================
ui_print() {
    if [ -n "$OUTFD" ]; then
        echo -e "ui_print $1\nui_print" >> /proc/$$/fd/$OUTFD 2>/dev/null \
        || echo "$1"
    else
        echo "$1"
    fi
}

abort() {
    ui_print "$1"
    exit 1
}

# ============================================================
# 框架检测
# ============================================================
if [ -d /data/adb/ksu ]; then
    FRAMEWORK="KernelSU"
    MODPATH=/data/adb/modules
elif [ -d /data/adb/ap ]; then
    FRAMEWORK="APatch"
    MODPATH=/data/adb/modules
elif [ -d /data/adb/magisk ]; then
    FRAMEWORK="Magisk"
    MODPATH=/data/adb/modules
elif [ -d /data/data/com.android.shell/AxManager ]; then
    FRAMEWORK="AxManager"
    MODPATH=/data/data/com.android.shell/AxManager/plugins
else
    FRAMEWORK="Unknown"
    MODPATH=/data/adb/modules
fi

ui_print "- 框架: $FRAMEWORK"
ui_print "- 安装路径: $MODPATH"

# ============================================================
# 读取模块 ID
# ============================================================
mkdir -p /tmp/clean_netopt_install
unzip -o "$ZIPFILE" module.prop -d /tmp/clean_netopt_install 2>/dev/null
MODID=$(grep "^id=" /tmp/clean_netopt_install/module.prop | cut -d= -f2)
[ -z "$MODID" ] && MODID="clean_netopt"

ui_print "- 模块 ID: $MODID"

# ============================================================
# 安装目标目录
# ============================================================
INSTALL_PATH="$MODPATH/$MODID"
rm -rf "$INSTALL_PATH"
mkdir -p "$INSTALL_PATH"

# ============================================================
# 解压模块文件
# ============================================================
ui_print "- 正在解压模块文件..."
unzip -o "$ZIPFILE" \
    module.prop action.sh banner.png customize.sh \
    post-fs-data.sh service.sh system.prop uninstall.sh \
    -d "$INSTALL_PATH" 2>/dev/null

# system 目录
unzip -o "$ZIPFILE" "system/*" -d "$INSTALL_PATH" 2>/dev/null

# ============================================================
# 设置权限
# ============================================================
chmod 755 "$INSTALL_PATH/post-fs-data.sh" 2>/dev/null
chmod 755 "$INSTALL_PATH/service.sh"      2>/dev/null
chmod 755 "$INSTALL_PATH/action.sh"       2>/dev/null
chmod 755 "$INSTALL_PATH/uninstall.sh"    2>/dev/null
chmod 644 "$INSTALL_PATH/module.prop"     2>/dev/null
chmod 644 "$INSTALL_PATH/system.prop"     2>/dev/null

# ============================================================
# 执行 customize.sh（安装界面输出）
# ============================================================
if [ -f "$INSTALL_PATH/customize.sh" ]; then
    chmod 755 "$INSTALL_PATH/customize.sh"
    . "$INSTALL_PATH/customize.sh" 2>/dev/null || true
fi

# ============================================================
# 清理临时目录
# ============================================================
rm -rf /tmp/clean_netopt_install

ui_print "- ✅ 安装完成，重启后生效"
exit 0
