#!/system/bin/sh # Do NOT assume where your module will be located. # ALWAYS use $MODDIR if you need to know where this script and module is placed. # This will make sure your module will still work if Magisk changes its mount point in the future MODDIR=${0%/*} export LOG_FILE="${MODDIR}/magisk-fstab.log" LOG_MAX_LINES=1000 BOOTWAIT_MAX_COUNT=20 BOOTWAIT_COUNT_INTERVAL=15 CONF_MAIN="${MODDIR}/config/main.conf" CONF_FSTAB="${MODDIR}/config/fstab.conf" # Check if configs are readable if [ ! -r "$CONF_MAIN" ]; then echo "File '$CONF_MAIN' not readable." >>"${LOG_FILE}" 2>&1 exit 2 fi if [ ! -r "$CONF_FSTAB" ]; then echo "File '$CONF_FSTAB' not readable." >>"${LOG_FILE}" 2>&1 exit 2 fi # Read main config . "${CONF_MAIN}" >>"${LOG_FILE}" 2>&1 # wait for system boot to complete bootwait_count=0 while [ "$(getprop sys.boot_completed)" != "1" ] && [ ${bootwait_count} -lt ${BOOTWAIT_MAX_COUNT} ]; do sleep ${BOOTWAIT_COUNT_INTERVAL} bootwait_count=$((bootwait_count + 1)) done if [ ${bootwait_count} -ge ${BOOTWAIT_MAX_COUNT} ]; then echo "Boot wait timeout" >>"${LOG_FILE}" 2>&1 exit 1 fi # prevent log file from growing too large tail -n "${LOG_MAX_LINES}" "${LOG_FILE}" >"${LOG_FILE}.tmp" mv "${LOG_FILE}.tmp" "${LOG_FILE}" echo "=== $(date) ===" >>"${LOG_FILE}" 2>&1 if [ -f "${CONF_FSTAB}" ]; then /system/bin/sh "${MODDIR}/fstab.sh" --su-options "${su_options}" --log-file "${LOG_FILE}" "${CONF_FSTAB}" & else echo "${CONF_FSTAB} not found." >>"${LOG_FILE}" 2>&1 fi wait