d5b4dddff0
Set RWX permissions recursively on $PREFIX before deleting it. This is needed to ensure that all files and directories can be deleted by `rm`. However this may not work if permissions were messed up with root.
51 lines
1.5 KiB
Bash
Executable File
51 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
unset LD_PRELOAD LD_LIBRARY_PATH
|
|
|
|
echo
|
|
echo "You are going to reset your Termux installation."
|
|
echo
|
|
echo "This script will erase everything under \$PREFIX. All files in that directory will be lost, that includes packages, configuration files, databases, etc."
|
|
echo
|
|
echo "Termux home directory as well as data in your shared or external storage will not be removed and left as-is."
|
|
echo
|
|
|
|
read -re -p "Do you want to continue ? (y/n) " CHOICE
|
|
|
|
if ! [[ $CHOICE =~ (Y|y) ]]; then
|
|
echo "Leaving \$PREFIX intact."
|
|
exit 1
|
|
else
|
|
HAS_TERMUX_AM=false
|
|
|
|
if [ -f "@TERMUX_PREFIX@/libexec/termux-am/am.apk" ]; then
|
|
HAS_TERMUX_AM=true
|
|
|
|
echo "Preserving package 'termux-am' for later use..."
|
|
|
|
if [ -d "@TERMUX_CACHE_DIR@" ]; then
|
|
/system/bin/rm -rf "@TERMUX_CACHE_DIR@/termux-am"
|
|
/system/bin/mkdir -p "@TERMUX_CACHE_DIR@/termux-am"
|
|
/system/bin/cp "@TERMUX_PREFIX@/libexec/termux-am/am.apk" "@TERMUX_CACHE_DIR@/termux-am/am.apk"
|
|
|
|
# In case copying am.apk failed.
|
|
if [ ! -e "@TERMUX_CACHE_DIR@/termux-am/am.apk" ]; then
|
|
HAS_TERMUX_AM=false
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
echo "Erasing '@TERMUX_PREFIX@'..."
|
|
/system/bin/chmod -R 700 "@TERMUX_PREFIX@" >/dev/null 2>&1
|
|
/system/bin/rm -rf "@TERMUX_PREFIX@"
|
|
echo "Done. You need to close Termux application now."
|
|
|
|
if ! $HAS_TERMUX_AM; then
|
|
echo "Terminating all sessions..."
|
|
/system/bin/killall -9 "$SHELL"
|
|
else
|
|
export CLASSPATH="@TERMUX_CACHE_DIR@/termux-am/am.apk"
|
|
/system/bin/app_process / com.example.termuxam.Am stopservice com.termux/.app.TermuxService
|
|
fi
|
|
fi
|