TOOLS_TITLE="Tools & Optimization" TOOLS_SSH_DISABLE="Disable" TOOLS_SSH_ENABLE="Enable" TOOLS_ERR_PORT="Invalid input! Please enter a valid number (1000-65535)!" TOOLS_ERR_PORT_OCCUPIED="This port is occupied by another process, please try another one!" TOOLS_SSH_SET_OK="Set successfully, please re-enable WAN SSH access!" TOOLS_SSH_ENABLED="WAN SSH access enabled!" TOOLS_SSH_DISABLED="WAN SSH access disabled!" TOOLS_DISABLE="Disable" TOOLS_ENABLE="Enable" TOOLS_CONFIGURED="Configured" TOOLS_SSH_ONLY_OPENWRT="This feature only works on OpenWrt devices and does not depend on services" TOOLS_SSH_UNSUPPORTED_SYSTEM="This feature does not support mirrored systems like Redmi AX6S. Do not try it!" TOOLS_SSH_PORT_ITEM="1) \033[32mChange\033[0m WAN SSH port: \033[36m$ssh_port\033[0m" TOOLS_SSH_PASS_ITEM="2) \033[32mChange\033[0m SSH password (enter twice, then press Enter)" TOOLS_SSH_TOGGLE_ITEM="3) \033[33m$ssh_ol\033[0m WAN SSH access" TOOLS_PROMPT_PORT="Please enter a port number (1000-65535)> " TOOLS_WARN_COMPAT="This page may not be compatible with all Linux devices. Use at your own discretion!" TOOLS_DISK_USAGE="Disk usage / current directory:" TOOLS_MENU_TEST_ITEM="1) ShellCrash \033[33mTest Menu\033[0m" TOOLS_MENU_GUIDE_ITEM="2) ShellCrash \033[32mGetting Started\033[0m" TOOLS_MENU_LOG_ITEM="3) \033[36mLogs and Push Tools\033[0m" TOOLS_MENU_SSH_ITEM="4) \033[32mConfigure\033[0m WAN SSH access" TOOLS_MENU_MI_UPDATE_ITEM="5) \033[33m$mi_update\033[0m Xiaomi system auto-update" TOOLS_MENU_MI_AUTO_SSH_ITEM="6) Xiaomi device SSH hardening —— \033[$mi_mi_autoSSH_type \033[0m" TOOLS_MENU_MI_TUN_FIX_ITEM="8) Xiaomi device Tun module repair —— \033[$mi_tunfix \033[0m" TOOLS_MI_UPDATE_MSG="Xiaomi router auto-update has been \033[33m$mi_update\033[0m. If it does not take effect, sync the setting in the official app!" TOOLS_UNSUPPORTED_DEVICE="Unsupported device!" TOOLS_FETCHING_SCRIPT="Fetching online script..." TOOLS_DOWNLOAD_FAIL="File download failed!" TOOLS_DISABLE_FIX_CONFIRM="Disable this feature and remove related patches?" TOOLS_YES="1) Yes" TOOLS_NO_BACK="0) No, return to previous menu" TOOLS_NO="0) No" TOOLS_SELECT_PROMPT="Please enter the number> " TOOLS_PATCH_REMOVED="Patch file removed. Reboot the device immediately to avoid errors!" TOOLS_TUN_WARN1="This feature needs to modify system files and does not guarantee zero risk!" TOOLS_TUN_WARN2="The collected Tun module may not suit your device!" TOOLS_ACCEPT_RISK="1) I understand and will take responsibility if anything goes wrong!" TOOLS_TUN_CONNECTING="Connecting to the server to fetch the Tun patch..." TOOLS_TUN_OK="Set successfully! Please restart the service!" TOOLS_TUN_FAIL="File download failed, please retry!" TOOLS_DEVICE_NOT_NEED="This device does not need this setting. Do not try it!" TOOLS_AUTO_SSH_WARN1="This feature hardens SSH using software commands and is not guaranteed to succeed 100%!" TOOLS_AUTO_SSH_WARN2="If you have issues, please report in the group:" TOOLS_AUTO_SSH_PWD_HINT1="Please enter the SSH password to restore (current password will not be affected)" TOOLS_AUTO_SSH_PWD_HINT2="(Press Enter to skip)" TOOLS_AUTO_SSH_INPUT="Please enter> " TOOLS_LOG_TG="1) Telegram push\t——\033[$stat_TG\033[0m" TOOLS_LOG_DEER="2) PushDeer push\t——\033[$stat_Deer\033[0m" TOOLS_LOG_BARK="3) Bark push-IOS\t——\033[$stat_bark\033[0m" TOOLS_LOG_PO="4) Passover push\t——\033[$stat_Po\033[0m" TOOLS_LOG_PP="5) PushPlus push\t——\033[$stat_PP\033[0m" TOOLS_LOG_SYNO="6) SynoChat push\t——\033[$stat_SynoChat\033[0m" TOOLS_LOG_GOTIFY="7) Gotify push\t ——\033[$stat_Gotify\033[0m" TOOLS_LOG_VIEW="a) View \033[36mruntime logs\033[0m" TOOLS_LOG_TASK="b) Push task logs\t——\033[$stat_task\033[0m" TOOLS_LOG_DEVICE="c) Set device name\t——\033[$device_s\033[0m" TOOLS_LOG_CLEAR="d) Clear log files" TOOLS_CONFIRM_CLOSE_TG="Are you sure you want to disable TG log push?" TOOLS_CONFIRM_CLOSE_DEER="Are you sure you want to disable PushDeer log push?" TOOLS_CONFIRM_CLOSE_BARK="Are you sure you want to disable Bark log push?" TOOLS_CONFIRM_CLOSE_PO="Are you sure you want to disable Pushover log push?" TOOLS_CONFIRM_CLOSE_PP="Are you sure you want to disable PushPlus log push?" TOOLS_CONFIRM_CLOSE_SYNO="Are you sure you want to disable SynoChat log push?" TOOLS_CONFIRM_CLOSE_GOTIFY="Are you sure you want to disable Gotify log push?" TOOLS_BOT_PUBLIC="1) Use public bot\t——No kernel service required" TOOLS_BOT_PRIVATE="2) Use private bot\t——Requires extra application" TOOLS_PUSHDEER_SELECT_SERVER="Please choose the PushDeer server type:" TOOLS_PUSHDEER_OFFICIAL="1) Official server (api2.pushdeer.com)" TOOLS_PUSHDEER_CUSTOM="2) Self-hosted server" TOOLS_PUSHDEER_CUSTOM_URL_HINT="Please enter the self-hosted PushDeer server address (without /message/push)" TOOLS_PUSHDEER_CUSTOM_URL_EXAMPLE="Example: \033[36mhttps://push.example.com\033[0m" TOOLS_PUSHDEER_CUSTOM_URL_INPUT="Please enter the server address directly" TOOLS_OR_BACK="Or enter 0 to return to the previous menu" TOOLS_PUSHDEER_INSTALL1="1. First go to \033[32;4mhttp://www.pushdeer.com/official.html\033[0m to scan and install the quick app or download the app" TOOLS_PUSHDEER_INSTALL2="2. Open the quick app/app and finish logging in" TOOLS_PUSHDEER_INSTALL3="3. Switch to the \"Device\" tab, tap the plus in the top-right corner, and register this device" TOOLS_PUSHDEER_INSTALL4="4. Switch to the \"Secret\" tab, tap the plus in the top-right corner, create a secret, and copy it" TOOLS_PUSHDEER_SECRET_HINT="Please enter the secret you copied" TOOLS_PUSHDEER_OK="PushDeer log push setup completed!" TOOLS_BARK_WARN="Bark push only supports iOS. Use another push method on other platforms!" TOOLS_BARK_INSTALL="Please install the Bark iOS client and find the dedicated push link in the app" TOOLS_BARK_URL_HINT="Please enter your Bark push link directly" TOOLS_BARK_OK="Bark log push setup completed!" TOOLS_PUSHOVER_REG="Please register at \033[32;4mhttps://pushover.net/\033[0m and get the \033[36mUser Key\033[0m" TOOLS_PUSHOVER_USERKEY_HINT="Please enter your User Key directly" TOOLS_PUSHOVER_VERIFY="Please check your registration email and complete account verification" TOOLS_PUSHOVER_VERIFIED="I have completed verification" TOOLS_PUSHOVER_VERIFY_PROMPT="I have completed verification (1/0)> " TOOLS_PUSHOVER_TOKEN_BUILD="Generate an \033[36mAPI Token\033[0m at \033[32;4mhttps://pushover.net/apps/build\033[0m" TOOLS_PUSHOVER_TOKEN_HINT="Please enter your API Token" TOOLS_PUSHOVER_OK="Passover log push setup completed!" TOOLS_PUSHPLUS_REG="Please register at \033[32;4mhttps://www.pushplus.plus/push1.html\033[0m and get the \033[36mtoken\033[0m" TOOLS_PUSHPLUS_TOKEN_HINT="Please enter your token directly" TOOLS_PUSHPLUS_OK="PushPlus log push setup completed!" TOOLS_SYNOCHAT_URL_HINT="Please enter your Synology DSM home address" TOOLS_SYNOCHAT_TOKEN_HINT="Please enter your Synology Chat token" TOOLS_SYNOCHAT_USERID_HINT="Get the user_id via \"your NAS address/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2&token=YOUR_TOKEN\"" TOOLS_SYNOCHAT_USERID_INPUT="Please enter your user_id> " TOOLS_SYNOCHAT_OK="SynoChat log push setup completed!" TOOLS_GOTIFY_REG="Please obtain the push URL from your Gotify server" TOOLS_GOTIFY_FORMAT="Format example: https://gotify.example.com/message?token=your_app_token" TOOLS_GOTIFY_URL_HINT="Please enter your Gotify push URL directly" TOOLS_LOG_NOT_FOUND="No related log found!" TOOLS_DEVICE_NAME_HINT="Please enter a custom push name for this device" TOOLS_DEVICE_NAME_BACK="Or press Enter directly to return to the previous menu" TOOLS_LOG_CLEARED="Runtime logs and task logs have been cleared!" TOOLS_TEST_MENU_TITLE="This is the test command menu" TOOLS_TEST_MENU_HINT="If you encounter issues, run the relevant command and submit a screenshot to the issue or TG group" TOOLS_TEST_ITEM_1="1) Run the kernel in Debug mode" TOOLS_TEST_ITEM_2="2) Check system DNS port (:53) usage " TOOLS_TEST_ITEM_3="3) Test SSL encryption (aes-128-gcm) benchmark" TOOLS_TEST_ITEM_4="4) View ShellCrash routing rules" TOOLS_TEST_ITEM_5="5) View the first 40 lines of the kernel config file" TOOLS_TEST_ITEM_6="6) Test proxy server connectivity (google.tw)" TOOLS_NETSTAT_HINT="You can use \033[44m netstat -ntulp |grep xxx \033[0m to query any (xxx) port" TOOLS_FW_TITLE="----------------Local Firewall---------------------" TOOLS_PROXY_NOTE="Note: depends on curl (wget is not supported), and the test result is not guaranteed to be accurate!" TOOLS_PROXY_OK="Connection successful! Response time: " TOOLS_PROXY_TIMEOUT="Connection timed out! Please retry or check the node configuration!" TOOLS_DEBUG_WARN1="Note: Debug mode will stop the original kernel service" TOOLS_DEBUG_WARN2="Background log path: \033[32m$TMPDIR/debug.log\033[0m" TOOLS_DEBUG_WARN3="For long-running background monitoring, error is recommended as the log level to avoid oversized files!" TOOLS_DEBUG_WARN4="You can also use: \033[33mcrash -s debug 'warning'\033[0m to select another log level" TOOLS_DEBUG_ITEM_1="1) Only test the availability of the \033[32m$config_tmp\033[0m config file" TOOLS_DEBUG_ITEM_2="2) Run the \033[32m$config_tmp\033[0m config file in foreground without firewall hijacking (\033[33muse Ctrl+C to stop manually\033[0m)" TOOLS_DEBUG_ITEM_3="3) Run the full startup flow in background with firewall hijacking, log level: \033[31merror\033[0m" TOOLS_DEBUG_ITEM_4="4) Run the full startup flow in background with firewall hijacking, log level: \033[32minfo\033[0m" TOOLS_DEBUG_ITEM_5="5) Run the full startup flow in background with firewall hijacking, log level: \033[33mdebug\033[0m" TOOLS_DEBUG_ITEM_6="6) Run the full startup flow in background with firewall hijacking and print error logs to flash: \033[32m$CRASHDIR/debug.log\033[0m" TOOLS_DEBUG_ITEM_8="8) Run the full startup flow in background, print execution errors and inspect context, then close the process" TOOLS_DEBUG_ITEM_9="9) Merge the json files under \033[32m$config_tmp\033[0m into $TMPDIR/debug.json" TOOLS_FLASH_WARN="Frequent flash writes will shorten flash lifespan. Unless you are dealing with a bug that would otherwise crash or reboot the device, do not use this feature!" TOOLS_FLASH_CONFIRM="Confirm enabling this feature?" TOOLS_MERGE_OK="Merged successfully!"