From c4e3c20227913b5e0b2111b5828dbdc5c05e4dcf Mon Sep 17 00:00:00 2001 From: w1nst0n Date: Thu, 16 Jul 2020 19:02:02 +0200 Subject: [PATCH] 2 bugfixes + support for brand alternative names --- debloat_script.sh | 54 ++++++++++++++++++++++++++++++----------------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/debloat_script.sh b/debloat_script.sh index f0fb506..d3b1830 100755 --- a/debloat_script.sh +++ b/debloat_script.sh @@ -18,7 +18,7 @@ readonly nBold=$(tput sgr0) trap 'catch' EXIT catch() { - printf "\n${BRED}%s\n" "[EXIT ERROR TRAP] Hum... something is wrong." + printf "\n\n${BRED}%s\n" "[EXIT ERROR TRAP] Hum... something is wrong." printf "\n%s\n" "Unless you interrupted yourself the script bravo, you found a bug. Please report it :" printf "%s${NC}\n\n" "https://gitlab.com/W1nst0n/universal-android-debloater/-/issues :)" } @@ -28,23 +28,24 @@ for file in ./lists/* ; do if [ -f "$file" ] ; then . "$file"; fi done -### GLOBAL VARIABLES ### -readonly VERSION="v2.3.1 (June 20th 2020)" -readonly PAD=$(((48-${#VERSION})/2)) -readonly BRAND=$(adb shell getprop ro.product.brand | awk '{print tolower($0)}') -readonly BRAND_SUPPORTED=$( declare -p "$BRAND" &>/dev/null && echo "1" || echo "0") # Check if a $BRAND array is set - -# Legacy support -readonly OLDER_THAN_ANDROID_7_1=$(( $(adb shell getprop ro.build.version.sdk | tr '\r' ' ') < 26)) # < Android 7.1 -readonly OLDER_THAN_ANDROID_5=$(( $(adb shell getprop ro.build.version.sdk | tr '\r' ' ') < 21)) # < Android 5.0 -readonly OPTION_NEEDED=$( ((OLDER_THAN_ANDROID_5)) && echo "" || echo "--user 0") # '--user 0' option doesn't work sometimes - -FORCE_UNINSTALL=0 -RESTORE=0 - ############################################### MAIN SCRIPT ########################################################## main() { + + readonly VERSION="v2.4 (July 16th 2020)" + readonly PAD=$(((48-${#VERSION})/2)) + + readonly BRAND="$(get_brand)" + readonly BRAND_SUPPORTED=$( declare -p "$BRAND" &>/dev/null && echo "1" || echo "0") + + # Legacy support + readonly OLDER_THAN_ANDROID_7_1=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') < 26 )) # < Android 7.1 + readonly OLDER_THAN_ANDROID_5=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') < 21 )) # < Android 5.0 + readonly OPTION_NEEDED=$( ((OLDER_THAN_ANDROID_5)) && echo "" || echo "--user 0" ) # '--user 0' option doesn't work sometimes + + FORCE_UNINSTALL=0 + RESTORE=0 + clear echo " ================================================" echo " # #" @@ -134,7 +135,6 @@ main() { debloat_or_restore() { local action="" # restore or debloat local output="" - [[ -v "$1" ]] && local -n list=$1 # list is a nameref. Array is passed by reference. (( RESTORE )) && action="cmd package install-existing \$package" || action="pm uninstall $OPTION_NEEDED \$package" @@ -145,9 +145,12 @@ debloat_or_restore() { clear - if [[ -v "$1" ]]; then - printf "\n${BRED}%s${NC}\n" "==== $1 debloat list ====" + if [[ $# -gt 0 ]]; then + # list is a nameref. Array is passed by reference. + [[ -v "$1" ]] && local -n list=$1 + + printf "\n${BORANGE}%s${NC}\n" "==== $1 debloat list ====" for package in "${list[@]}"; do printf "${BRED}%s${NC} " "$package -->" output=$(eval adb shell "$action") && echo "$output" @@ -158,9 +161,11 @@ debloat_or_restore() { printf "\n${BRED}%s${NC}" "Package name to $title : " | tr '[:upper:]' '[:lower:]' read -r package printf "${BRED}%s${NC}" "$package --> " - output=$(eval adb shell "$action") && echo "$output" + output="$(eval adb shell "$action")" || true + echo "$output" if ! [[ "$output" =~ Failure|Error ]] && (( !RESTORE )); then echo "$package" >> "debloated_packages.txt"; fi sleep 2 + fi } @@ -227,4 +232,15 @@ check_backup_integrity() { fi } +get_brand() { + local brand + brand=$(adb shell getprop ro.product.brand | tr -d '\r' | awk '{print tolower($0)}') + + # Support for alternative name + case "$brand" in + "redmi") echo "xiaomi" ;; + *) echo "$brand" + esac +} + main "$@"; exit \ No newline at end of file