#!/bin/sh

PREREQ="exectl_relabel"

prereqs()
{
	echo "$PREREQ"
}

case $1 in
	prereqs)
		prereqs
		exit 0
		;;
esac

kysec_tmp=${rootmnt}/etc/kysec/tmp
kysec_set=/usr/sbin/kysec_set

# 定义文件路径
usb_safe_mode_path=/sys/devices/platform/hw_trans_bios_variable/usb_safe_mode
adb_path=${rootmnt}/usr/lib/android-sdk/platform-tools/adb
cmdline_path=${rootmnt}/proc/cmdline

echo "" > $kysec_tmp/adb.log
# 检查文件是否存在
if [ ! -f "$usb_safe_mode_path" ]; then
    echo "File $usb_safe_mode_path not found" >>  $kysec_tmp/adb.log
    exit 1
fi

if [ ! -f "$adb_path" ]; then
    echo "File $adb_path not found" >>  $kysec_tmp/adb.log
    exit 1
fi

is_recovery_mod=false
if grep -q "single" /proc/cmdline;then
    echo "recovery mod" >> $kysec_tmp/adb.log
    is_recovery_mod=true
fi


# 逐行读取文件并检查端口值
control_mod=false
while IFS='=' read -r port value; do
    # 检查值是否为非0
    if [ "$value" -ne 0 ]; then
        echo "Port $port : $value" >> $kysec_tmp/adb.log
        control_mod=true
    fi
done < "$usb_safe_mode_path"

cat /proc/cmdline >> $kysec_tmp/adb.log
echo "/proc/cmdline" >> $kysec_tmp/adb.log
echo ${is_recovery_mod} >> $kysec_tmp/adb.log
echo ${control_mod} >> $kysec_tmp/adb.log

# 恢复模式且管控模式下禁用adb
if [ "$control_mod" = true ] && [ "$is_recovery_mod" = true ]; then
    chmod 000 $adb_path
    ${kysec_set} -n protect -v readonly $adb_path 
    echo "adb disable successfully!" >> $kysec_tmp/adb.log
else
    ${kysec_set} -n protect -x $adb_path
    chmod 775 $adb_path 
    echo "adb enable successfully!" >> $kysec_tmp/adb.log
fi
