#!/sbin/sh
#
# ZenCore Universal update-binary
#
# Compatibility:
#   Magisk 19+
#   Modern Magisk
#   KernelSU
#   APatch
#

# 净化执行环境
unalias -a 2>/dev/null


# 接收安装器参数
OUTFD="$2"
ZIPFILE="$3"


# 兼容 recovery / installer 环境
if ! type ui_print >/dev/null 2>&1; then
    ui_print() {
        echo "$1"
    }
fi


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


ui_print "================================"
ui_print "   ZenCore Installer"
ui_print "================================"


# 查找兼容核心函数库
UTIL=""


# Magisk 19 legacy
if [ -f /sbin/.magisk/util_functions.sh ]; then

    UTIL="/sbin/.magisk/util_functions.sh"


# Modern Magisk
elif [ -f /data/adb/magisk/util_functions.sh ]; then

    UTIL="/data/adb/magisk/util_functions.sh"


# KernelSU
elif [ -f /data/adb/ksu/util_functions.sh ]; then

    UTIL="/data/adb/ksu/util_functions.sh"


# APatch
elif [ -f /data/adb/apatch/util_functions.sh ]; then

    UTIL="/data/adb/apatch/util_functions.sh"

fi


if [ -z "$UTIL" ]; then
    abort "Cannot find util_functions.sh"
fi


ui_print "- Loading $UTIL"

. "$UTIL"


# 安装环境完整性检查
if ! type install_module >/dev/null 2>&1; then
    abort "install_module unavailable"
fi


if ! type set_perm >/dev/null 2>&1; then
    abort "Incomplete installer environment"
fi


# 执行标准模块安装流程
ui_print "- Starting standard module installer"

install_module


ui_print "================================"
ui_print " ZenCore installation finished"
ui_print "================================"


exit 0
