#!/bin/sh cd /tmp LOG="/opt/var/log/HydraRoute.log" printf "\n%s Удаление\n" "$(date "+%Y-%m-%d %H:%M:%S")" > "$LOG" 2>&1 animation() { local pid="$1" local message="$2" local spin='-\|/' local i=0 printf "%s... " "$message" while kill -0 "$pid" 2>/dev/null; do i=$((i % 4)) printf "\b%s" "$(echo "$spin" | cut -c$((i + 1)))" i=$((i + 1)) usleep 100000 done printf "\b✔ Готово!\n" } opkg_uninstall() { echo "Stop and delete opkg" >>"$LOG" [ -f /opt/etc/init.d/S99adguardhome ] && /opt/etc/init.d/S99adguardhome stop [ -f /opt/etc/init.d/S99hpanel ] && /opt/etc/init.d/S99hpanel stop [ -f /opt/etc/init.d/S99hrpanel ] && /opt/etc/init.d/S99hrpanel stop [ -f /opt/etc/init.d/S99hrneo ] && /opt/etc/init.d/S99hrneo stop [ -f /opt/etc/init.d/S99hrweb ] && /opt/etc/init.d/S99hrweb stop opkg remove hrweb || true opkg remove hrneo || true opkg remove xray || true opkg remove xray-core || true opkg remove ipset || true opkg remove iptables || true opkg remove jq || true opkg remove hydraroute || true opkg remove adguardhome-go || true opkg remove node-npm || true opkg remove node || true } files_uninstall() { echo "Delete files and path" >>"$LOG" rm -f /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh rm -f /opt/etc/ndm/ifstatechanged.d/011-bypass6-table.sh rm -f /opt/etc/ndm/netfilter.d/010-bypass.sh rm -f /opt/etc/ndm/netfilter.d/011-bypass6.sh rm -f /opt/etc/ndm/netfilter.d/010-hydra.sh rm -f /opt/etc/ndm/netfilter.d/015-hrneo.sh rm -f /opt/etc/ndm/netfilter.d/016-hrweb.sh rm -f /opt/etc/init.d/S52ipset rm -f /opt/etc/init.d/S52hydra rm -f /opt/etc/init.d/S99hpanel rm -f /opt/etc/init.d/S99hrpanel rm -f /opt/etc/init.d/S99hrneo rm -f /opt/etc/init.d/S99hrweb rm -f /opt/etc/init.d/S98hr rm -f /opt/etc/opkg/customfeeds.conf rm -f /opt/var/log/AdGuardHome.log rm -f /opt/bin/agh rm -f /opt/bin/hr rm -f /opt/bin/hrpanel rm -f /opt/bin/neo if [ -d "/opt/etc/HydraRoute" ] && [ "/opt/etc/HydraRoute" != "/" ]; then rm -rf /opt/etc/HydraRoute fi if [ -d "/opt/etc/AdGuardHome" ] && [ "/opt/etc/AdGuardHome" != "/" ]; then rm -rf /opt/etc/AdGuardHome fi } policy_uninstall() { echo "Policy uninstall" >>"$LOG" for suffix in 1st 2nd 3rd; do ndmc -c "no ip policy HydraRoute$suffix" || true done for suffix in 1 2 3; do ndmc -c "no ip policy HR$suffix" || true done ndmc -c 'no ip policy HydraRoute' || true ndmc -c 'system configuration save' sleep 2 } dns_on() { echo "Delete hr.net host" >>"$LOG" ndmc -c "no ip host hr.net" echo "System DNS on" >>"$LOG" ndmc -c 'no opkg dns-override' ndmc -c 'system configuration save' sleep 2 } opkg_uninstall >>"$LOG" 2>&1 & animation $! "Удаление opkg пакетов" policy_uninstall >>"$LOG" 2>&1 & animation $! "Удаление политик HydraRoute" files_uninstall >>"$LOG" 2>&1 & animation $! "Удаление файлов, созданных HydraRoute" dns_on >>"$LOG" 2>&1 & animation $! "Включение системного DNS сервера" echo "Удаление завершено (╥_╥)" echo "Перезагрузка через 5 секунд..." SCRIPT_PATH="$(readlink -f "$0" 2>/dev/null)" if [ -n "$SCRIPT_PATH" ] && [ -f "$SCRIPT_PATH" ]; then (sleep 3 && rm -f "$SCRIPT_PATH" && reboot) & else (sleep 3 && reboot) & fi exit 0