universal-android-debloater/debloat_script.sh

159 lines
4.3 KiB
Bash
Raw Normal View History

2019-03-31 02:55:40 +13:00
#!/bin/bash
2019-03-31 04:54:13 +13:00
source debloat_lists.sh
2019-12-16 11:21:39 +13:00
# Colors used for printing
2019-03-31 02:55:40 +13:00
RED='\033[0;31m'
2019-12-16 11:21:39 +13:00
BLUE='\033[0;34m'
BBLUE='\033[1;34m'
GREEN='\033[0;32m'
ORANGE='\033[0;33m'
CYAN='\033[0;36m'
2019-03-31 02:55:40 +13:00
NC='\033[0m' # No Color
2019-12-16 11:21:39 +13:00
Bold=$(tput B)
nBold=$(tput sgr0)
2019-03-31 02:55:40 +13:00
function debloat {
name=$1[@]
2019-12-16 11:21:39 +13:00
#bloat=("${!name}")
printf "${RED}${Bold}=== $brand debloat list ===${nBold}\n"
for i in "${name[@]}"; do
printf "${RED}$i${nBold} -->"
adb shell "pm uninstall --user 0 $i ${NC}"
2019-03-31 02:55:40 +13:00
done
}
function list {
2019-12-16 11:21:39 +13:00
read -r -p "\n${RED}${Bold}Search for packages : ${nBold}${NC} "
2019-03-31 02:55:40 +13:00
printf "\n"
2019-12-16 11:21:39 +13:00
adb shell "pm list packages | grep $REPLY"
2019-03-31 02:55:40 +13:00
}
function remove {
2019-12-16 11:21:39 +13:00
read -r -p "\n${RED}${Bold}package name to remove : ${nBold}${NC} "
adb shell "pm uninstall --user 0 $REPLY"
2019-03-31 02:55:40 +13:00
}
function install {
2019-12-16 11:21:39 +13:00
read -r -p "\n${RED}${Bold}package name to reinstall : ${nBold}${NC} "
adb shell "cmd package install-existing $REPLY"
2019-03-31 02:55:40 +13:00
}
function restore {
2019-12-16 11:21:39 +13:00
printf "${RED}${Bold}Restore a backup\n ${nBold}${NC}"
read -p -r "Nom ${Bold}exact ${nBold} de la sauvegarde : "
2019-04-01 01:33:44 +13:00
adb restore $REPLY
2019-03-31 02:55:40 +13:00
}
2019-04-01 01:33:44 +13:00
function check_backup_integrity {
2019-03-31 07:39:12 +13:00
set -o pipefail
for a in *.adb; do
echo "Vérification de la sauvegarde ($a)";
dd if="$a" bs=24 skip=1 | zlib-flate -uncompress | tar tf - >/dev/null;
if [ $? = 0 ]; then
2019-12-16 11:21:39 +13:00
printf "${RED}${Bold}La sauvegarde générée est intègre${nBold}\n"
else printf "${GREEN}${Bold}La sauvegarde générée est corrompue ! ${nBold}\n"
2019-04-01 01:33:44 +13:00
fi
done
}
2019-04-14 10:00:29 +12:00
2019-04-01 01:33:44 +13:00
function brand_detection {
2019-04-14 10:00:29 +12:00
## brand = $(adb shell getprop ro.product.device) // peut-être plus judicieux d'utiliser ça
2019-04-01 01:33:44 +13:00
for brand in ${brands[@]}; do
check=$(adb shell getprop | grep -c $brand)
if [[ $check>0 ]]; then
case $brand in
2019-04-01 01:57:00 +13:00
"Asus")
2019-04-20 11:23:48 +12:00
echo "asus_bloat"
2019-04-01 01:57:00 +13:00
return ;;
"Huawei")
echo "huawei_bloat"
return ;;
"LG")
2019-04-20 11:23:48 +12:00
echo "lg_bloat"
2019-04-01 01:57:00 +13:00
return ;;
"Nokia")
2019-04-20 11:23:48 +12:00
echo "nokia_bloat"
2019-04-01 01:57:00 +13:00
return ;;
"Samsung")
echo "samsung_bloat"
return ;;
2019-04-20 11:23:48 +12:00
"Sony")
echo "sony_bloat"
return ;;
2019-04-01 01:57:00 +13:00
"Xiaomi")
echo "xiaomi_bloat"
return ;;
2019-04-01 01:33:44 +13:00
esac
2019-03-31 07:39:12 +13:00
fi
done
2019-04-01 01:57:00 +13:00
echo "Marque non supportée"
2019-03-31 07:39:12 +13:00
}
2019-03-31 02:55:40 +13:00
clear
printf "\n ================================================\n"
printf " # #\n"
printf " # SCRIPT ----- DEBLOAT #\n"
printf " # ALL DEVICES COMPATIBLE (WIP) #\n"
printf " # #\n"
2019-12-16 11:21:39 +13:00
printf " # %10s${RED}${Bold}v1.3 (23 September 2019)${nBold}%11s#\n"
2019-03-31 02:55:40 +13:00
printf " # #\n"
printf " ================================================\n"
echo
2019-04-01 01:33:44 +13:00
2019-03-31 02:55:40 +13:00
adb devices
2019-12-16 11:21:39 +13:00
printf "${RED}${Bold}AVERTISSEMENT : Lisez attentivement la FAQ avant de vous servir de ce script\n\n"
printf "Voulez vous faire une sauvegarde de toutes les applications du téléphone [Yes/No] ?\n\n${nBold}"
2019-04-21 12:22:48 +12:00
printf "RAPPEL : Il est probable que toutes les applications ne soient pas sauvegardées (cf. FAQ).\n\n"
2019-04-01 01:33:44 +13:00
read
2019-03-31 08:32:07 +13:00
if [[ $REPLY =~ [Yy]+[Ee]*[Ss]* ]]; then
2019-03-31 07:39:12 +13:00
echo
adb backup -apk -all -system -f "${PHONE:-phone}-`date +%Y%m%d-%H%M%S`.adb" # -noshare option is default
2019-04-20 11:23:48 +12:00
echo "Verification de l'intégrité de la sauvegarde..."
2019-04-01 01:33:44 +13:00
check_backup_integrity;
2019-12-16 11:21:39 +13:00
else printf "${RED}${Bold}Pas de sauvegarde${nBold}\n"
2019-03-31 07:39:12 +13:00
fi
2019-12-16 11:21:39 +13:00
brand=$(brand_detection)
2019-03-31 02:55:40 +13:00
while true; do
2019-12-16 11:21:39 +13:00
printf "\n${Bold}${ORANGE}======= MENU PRINCIPAL ======= ${NC}${nBold}\n\n"
printf " 1 - Lister des paquets\n"
printf " 2 - Désinstaller un paquet\n"
printf " 3 - Réinstaller un paquet\n"
printf " 4 - Restaurer une sauvegarde\n"
printf "\n${Bold}${BBLUE}------- DEBLOAT -------${NC}${nBold}\n"
printf " 5 - ${brand}\n"
printf " 6 - Google\n"
printf " 7 - T-Mobile\n"
printf " 8 - Amazon\n"
printf " 9 - Facebook\n"
printf " 10 - Microsoft\n"
printf " 11 - Divers\n"
printf " 12 - Générique\n"
printf "\n exit - Quitter\n\n"
printf "${Bold}${ORANGE}==============================${NC}${nBold}\n\n"
printf "${RED}${Bold}PENSEZ À REDEMARRER VOTRE TELEPHONE UNE FOIS LE DEBLOAT TERMINE. ${nBold}${NC}\n\n"
read -p "${Bold}Choisissez une action : ${nBold}" action
2019-03-31 02:55:40 +13:00
echo
case $action in
2019-03-31 07:39:12 +13:00
1) list ;;
2) remove ;;
3) install ;;
2019-12-16 11:21:39 +13:00
4) restore ;;
5) debloat $brand ;;
2019-04-01 01:33:44 +13:00
6) debloat google_bloat ;;
7) debloat T_Mobile_bloat ;;
8) debloat amazon_bloat ;;
9) debloat facebook_bloat ;;
10) debloat microsoft_bloat ;;
11) debloat misc_bloat ;;
2019-03-31 07:39:12 +13:00
12) debloat generic_bloat ;;
"exit") break ;;
2019-03-31 02:55:40 +13:00
esac
2019-04-14 10:00:29 +12:00
done