universal-android-debloater/debloat_script.sh

157 lines
3.9 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-03-31 02:55:40 +13:00
RED='\033[0;31m'
NC='\033[0m' # No Color
bold=$(tput bold)
normal=$(tput sgr0)
function debloat {
name=$1[@]
bloat=("${!name}")
2019-04-01 01:33:44 +13:00
printf "${RED}${bold}=== $brand debloat list ===${normal}${NC}\n"
2019-03-31 02:55:40 +13:00
for i in "${bloat[@]}"; do
2019-04-14 10:00:29 +12:00
printf "${RED}$i${NC} -->"
2019-03-31 07:39:12 +13:00
adb shell "
pm uninstall --user 0 $i
"
2019-03-31 02:55:40 +13:00
done
}
function list {
2019-03-31 08:32:07 +13:00
printf "\n${RED}${bold}Rechercher des paquets : ${normal}${NC}"
2019-03-31 02:55:40 +13:00
read -r package
printf "\n"
adb shell "
pm list packages | grep $package
"
}
function remove {
2019-03-31 08:32:07 +13:00
printf "\n${RED}${bold}Nom du paquet à désinstaller : ${normal}${NC}"
2019-03-31 02:55:40 +13:00
read -r nom_paquet
adb shell "
pm uninstall --user 0 $nom_paquet
"
}
function install {
2019-03-31 08:32:07 +13:00
printf "\n${RED}${bold}Nom du paquet à installer : ${normal}${NC}"
2019-03-31 02:55:40 +13:00
read -r nom_paquet
adb shell "
cmd package install-existing $nom_paquet
"
}
function restore {
2019-04-01 01:33:44 +13:00
printf "${RED}${bold}Restaurer une sauvegarde${normal}${NC}\n"
read -p "Nom ${bold}exact${normal} de la sauvegarde : "
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-04-01 01:33:44 +13:00
printf "${RED}${bold}La sauvegarde générée est intègre${normal}${NC}\n"
else printf "${RED}${bold}La sauvegarde générée est corrompue ! ${normal}${NC}\n"
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-04-20 11:23:48 +12:00
printf " # %14s${RED}${bold}v1.2 (19-04-2019)${normal}${NC}%14s#\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-03-31 07:39:12 +13:00
2019-04-01 01:33:44 +13:00
printf "${RED}${bold}Voulez vous faire une sauvegarde du téléphone [Yes/No] ? (recommandé) ${normal}${NC}"
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-03-31 07:39:12 +13:00
else printf "${RED}${bold}Pas de sauvegarde${normal}${NC}\n"
fi
2019-03-31 02:55:40 +13:00
while true; do
2019-04-01 01:33:44 +13:00
printf "\n${bold}======= MENU PRINCIPAL ======= ${normal}\n\n"
printf "1 - Lister des paquets\n"
printf "2 - Désinstaller un paquet\n"
printf "3 - Réinstaller un paquet\n"
printf "4 - Auto-Debloat\n"
printf "5 - Restaurer une sauvegarde\n"
printf "6 - Debloat Google\n"
printf "7 - Debloat T-Mobile\n"
printf "8 - Debloat Amazon\n"
printf "9 - Debloat Facebook\n"
printf "10 - Debloat Microsoft\n"
printf "11 - Debloat Divers\n"
printf "12 - Debloat Android\n"
2019-03-31 02:55:40 +13:00
printf "exit - Quitter\n\n"
read -p "${bold}Choisissez une action : ${normal}" action
echo
2019-04-01 01:33:44 +13:00
brand=$(brand_detection)
2019-03-31 02:55:40 +13:00
case $action in
2019-03-31 07:39:12 +13:00
1) list ;;
2) remove ;;
3) install ;;
2019-04-01 01:33:44 +13:00
4) debloat $brand ;;
5) restore ;;
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