RKNnoVPN/module/uninstall.sh
2026-05-07 19:28:21 +03:00

68 lines
2.2 KiB
Shell

#!/system/bin/sh
# RKNnoVPN — module removal entrypoint.
# Runtime cleanup is owned by scripts/rescue_reset.sh; this file only
# orchestrates uninstall-specific cleanup.
set +e
RKNNOVPN_DIR="${RKNNOVPN_DIR:-/data/adb/modules/rknnovpn}"
TAG="rknnovpn:uninstall"
if [ -f "${RKNNOVPN_DIR}/scripts/lib/rknnovpn_env.sh" ]; then
. "${RKNNOVPN_DIR}/scripts/lib/rknnovpn_env.sh"
fi
SCRIPTS_DIR="${SCRIPTS_DIR:-${RKNNOVPN_DIR}/scripts}"
RENDERED_CONFIG_DIR="${RENDERED_CONFIG_DIR:-${RKNNOVPN_DIR}/config/rendered}"
log_msg() {
/system/bin/log -t "$TAG" -p i "$1" 2>/dev/null
echo "[rknnovpn] $1"
}
log_err() {
/system/bin/log -t "$TAG" -p e "$1" 2>/dev/null
echo "[rknnovpn] ERROR: $1"
}
run_runtime_cleanup() {
if [ -x "${SCRIPTS_DIR}/rescue_reset.sh" ]; then
log_msg "Running canonical runtime cleanup"
RKNNOVPN_DIR="$RKNNOVPN_DIR" "${SCRIPTS_DIR}/rescue_reset.sh" uninstall-clean
return $?
fi
log_err "rescue_reset.sh missing; runtime cleanup is unavailable"
return 1
}
clean_runtime_files() {
log_msg "Cleaning generated rendered configs"
rm -f "${RENDERED_CONFIG_DIR}/"* 2>/dev/null
}
clean_obsolete_external_cleanup() {
obsolete_roll="roll""back"
obsolete_deferred="uninstall-clean""up"
log_msg "Removing obsolete rollback/deferred cleanup hooks"
rm -f \
"/data/adb/service.d/99-rknnovpn-${obsolete_roll}-guard.sh" \
"/data/adb/service.d/99-rknnovpn-${obsolete_deferred}.sh" 2>/dev/null || true
rm -rf \
"/data/adb/rknnovpn-${obsolete_roll}" \
"/data/adb/rknnovpn-${obsolete_deferred}" 2>/dev/null || true
}
log_msg "========================================="
log_msg "RKNnoVPN module removal starting"
log_msg "========================================="
clean_obsolete_external_cleanup
run_runtime_cleanup || log_err "Runtime cleanup reported leftovers"
clean_runtime_files
log_msg "========================================="
log_msg "RKNnoVPN module removal complete"
log_msg "Runtime data lives under the module directory: ${RKNNOVPN_DIR}/"
log_msg "Root manager removal may delete this directory with the module."
log_msg "========================================="