Compare commits

...

57 commits

Author SHA1 Message Date
w1nst0n 316b01b5ee
This project is no longer maintained! 2021-10-07 22:09:40 +02:00
w1nst0n 0b98f69fde
Add EOL warning 2021-09-09 18:05:04 +02:00
Ryan Fransen-Pruden 6c6b63e33c Update Carriers.sh (I narrowed down hotspot issue to com.verizon.mips.services) 2021-07-29 20:46:55 +00:00
hakerdefo bfdbf13442 Update AOSP.sh with some information related to "com.android.wallpaper.livepicker". 2021-05-25 17:17:34 +00:00
w1nst0n 480b292bd9
Add "com.google.mainline.telemetry" (address #27) 2021-04-04 23:52:45 +02:00
w1nst0n f4d4744398
New package + description update (adress #71, #64) 2021-04-04 23:45:32 +02:00
w1nst0n 51e22ac254
Support for poco phones (xiaomi sub-brand) 2021-03-30 19:11:57 +02:00
w1nst0n 7ded3301e4 New Version (2.9.1) 2021-03-05 23:49:40 +01:00
w1nst0n 76a3035fa2 UX improvement + bugfixes (includes #78) 2021-03-05 23:49:26 +01:00
w1nst0n f09dfe8fe7 Improve documentation 2021-03-05 23:24:28 +01:00
w1nst0n ff66e774b2 New packages 2021-03-05 22:55:21 +01:00
w1nst0n 6c4e819275 Add zip as a dependency + Bash doesn't need to be the default shell on MacOS 2021-03-03 20:02:22 +01:00
Max Overmeyer ff05dd35b2 Added some more Samsung apps (Galaxy A9 2018, Android 10, Europe, not branded) 2021-02-24 20:12:14 +00:00
Waryle W 6c6798fd04 Update Samsung.sh - fix Easy One Hand mode description 2021-02-23 14:13:28 +00:00
Elges István 8e35a1d104 Updates on some Xiaomi Advanced Debloat options 2021-02-22 21:16:00 +00:00
w1nst0n e410b3d9fe Better bash version check (#60) 2021-02-22 20:57:20 +00:00
Max Overmeyer 39d6ab29d6 Update Samsung.sh, typo in package name 2021-02-22 20:06:47 +00:00
w1nst0n 38d216688f New Version (v2.9) 2021-01-30 01:54:31 +01:00
w1nst0n d0d73a2c2d Systemless debloat support for all android version 2021-01-30 01:54:26 +01:00
w1nst0n 4a6ae80380 Add new packages (cherry pick !10) 2021-01-30 01:54:02 +01:00
w1nst0n 5573f5c701 Adress #49 + #51 2021-01-27 22:55:59 +01:00
w1nst0n 53357d76dc Partial Android 10 support + fix #48 2021-01-27 22:27:43 +01:00
w1nst0n 3d24cc2f49 Fix parsing issue (package / path) 2021-01-19 22:16:48 +01:00
w1nst0n 9e40855840 Hotfix (v2.8.4) 2021-01-17 04:48:30 +01:00
w1nst0n 9b62302d61 Hotfix (v2.8.3) 2021-01-12 23:04:19 +01:00
w1nst0n e8024ffd60 Fix bad variable name (#45) 2021-01-12 23:04:05 +01:00
w1nst0n 8d5ce9f690 Hotfix (v2.8.2) 2021-01-11 18:33:03 +01:00
w1nst0n c7c298db05 Hotfix (v2.8.1) 2021-01-11 01:33:40 +01:00
w1nst0n 28bd19b3bf Rework of the broken flashable zip generation function 2021-01-11 01:33:31 +01:00
w1nst0n 0f4c010d53 Update README for v2.8 + list another workaround for Windows users 2021-01-10 22:31:38 +01:00
w1nst0n e5634dd4e6 META-INF for the flashable zip 2021-01-10 21:13:14 +01:00
w1nst0n 9283b7bbab New Version (v2.8) 2021-01-10 21:06:48 +01:00
w1nst0n 754bd245ae v2.8: ROOT support + new features + better UI/UX + bugfixes 2021-01-10 19:59:33 +01:00
w1nst0n a71dc2104c Better title for DO NOT REMOVE section and safer default selection 2021-01-10 19:55:41 +01:00
w1nst0n 1add3b24c2 Do not remove com.google.android.ext.services on Android 11 devices (#43) 2021-01-10 03:13:41 +01:00
w1nst0n 511b6c41bd Remove a lot of packages (now in official lists) 2021-01-03 23:19:52 +01:00
w1nst0n 6dadaea7da Add new packages (+ new list: mediatek) 2021-01-03 23:17:44 +01:00
w1nst0n 2571cfaf53 New packages, documentation improvements & default selection changes 2021-01-03 23:16:29 +01:00
Marius Spangenberger 7efaad59ae add bloated packages for huawei devices 2020-12-01 13:44:08 +01:00
w1nst0n 3937fe31db Bump script version number to v2.7 2020-10-20 22:00:21 +02:00
w1nst0n 8b93202ba6 New Version (v2.7) 2020-10-04 23:50:57 +02:00
w1nst0n 376924cba9 Fixed #31, #32 and added feature #30 2020-10-04 23:25:48 +02:00
w1nst0n ba0a936362 New Version (v2.6) 2020-09-18 22:50:23 +02:00
w1nst0n af64b952d8 Caught last few bugs from cd386d86 + update script version to 2.6 2020-09-18 22:27:25 +02:00
w1nst0n ed0788f649 Add 2 notes (that users should read) 2020-09-18 22:05:16 +02:00
w1nst0n 61af0111bb Update pending list (including TCL packages addition) 2020-09-18 22:02:51 +02:00
w1nst0n 803feb8b8d Add new Google packages 2020-09-18 22:02:00 +02:00
w1nst0n 92358dda26 Add new Huawei packages 2020-09-18 22:01:49 +02:00
w1nst0n cd29dddb32 Improved Qualcomm documentation + new packages 2020-09-18 22:01:31 +02:00
w1nst0n 83a6aa3c97 One new Samsung package + improve some package's description 2020-09-18 22:01:07 +02:00
w1nst0n 8b99c1421e Add 1 new Sony package 2020-09-18 22:00:23 +02:00
w1nst0n 379fc41c77 Last Xiaomi packages before v2.6 2020-09-18 21:59:36 +02:00
w1nst0n a52db72b33 New AOSP packages + improved documentation 2020-09-18 21:58:55 +02:00
w1nst0n 08ee4be7ee Added new Xiaomi packages 2020-09-16 01:29:05 +02:00
w1nst0n 64ff0626a6 Fixed a bug with the CUSTOM_LIST generation from previous commit 2020-09-12 01:09:13 +02:00
w1nst0n cd386d8629 Improved script logic and exit trap + Added new menu entry to reboot the phone 2020-09-12 00:20:06 +02:00
w1nst0n 9a03489ca0 Add a lot of packages + changes to default selection 2020-09-03 21:34:45 +02:00
17 changed files with 2813 additions and 617 deletions

View file

@ -1,3 +1,166 @@
# New Version (v2.9.1)
## New packages added
- **AOSP** : 1
- **Asus** : 2
- **Google** : 1
- **Carriers** : 3 (AT&T)
- **OnePlus**: 1
- **Pending**: 24
- **Samsung** : 9
- **Xiaomi** : 1
## Bugfixes
- Bash version check not working as expected (#60)
- Debloating/restoring not working if the script was run from the recovery
- Package name typo (!3) (thanks @maximilian.overmeyer!)
- "pm: command not found" when disabling packages (Android 7 [Nougat] and below) (#78)
## Miscellaneous
- Documentation improvement/update for many apps.
- UI/UX improvement for the recovery version of the script
# New Version (v2.9)
**Note:** The `debloat_script.sh` is now in maintenance mode and won't receive any more features. The focus is on the developement of a GUI.
### Magisk module and root support for Android 10+
Root users can now systemlessly debloat their device. The script will create a flashable Magisk zip you'll need to flash from **TWRP** or **Magisk Manager** (recommended). Once installed the module will, on boot, replace the APKs folders with an empty folder (only containing a `.replace` file).
Systemless debloat is the only solution for Android 10+ users because *system* can't be mounted in read-write anymore.
## New packages added
- **Samsung** : 5 (thanks @j0taz)
## Bugfixes
- **Debloated packages (non root) reappear after a reboot (#48)**
- Bad apks names when using root features (parsing issue)
- Connection preferences settings won't open (AOSP list, Pixel 4a / Android 11) (#49)
- Impossible to use a non-root feature after having used a root feature
# Miscellaneous
- App data is now cleared (`pm clear $package`) before root debloat
# Hotfix (v2.8.4)
- Error when remounting `/system` as read-only after a restore/debloat action (#46)
- Package search feature now displays APK path along with the package name
- The APK was not backed-up when you use the manual root debloat feature (`1 - debloat a package`)
- `deleted_apks.txt` not found
- Mounting error on Android 9+ (only fixed for Android 9)
# IMPORTANT NOTE
**Root features do currently not work for Android 10+**. Android 10 has introduced a new dynamic partitioning system
which, in short, prevent to easily mount system filesystem in read-write (use of EXT4 dedup filesystem, which is not writable).
Fortunately, the awesome @topjohnwu (developer of Magisk) found a solution. I'll try to update my script to use the Magisk magic.
# Hotfix (v2.8.3)
- Fix a bug (bad variable name) which basically broke all the non root debloat/restore features.
# Hotfix (v2.8.2)
- Flashable debloat zip not removing anything (oversight on my part after debugging for the first hotfix)
# Hotfix (v2.8.1)
- Flashable zip was broken. I reworked all the generation logic. It is much simpler and correctly works now.
- The script will now force a backup of the apks before generating a flashable zip.
# New Version (v2.8)
Happy new year! :star2:
## Notable changes
- Apps are now removed for all users (not only `user 0`) (see #29)
- `debloated_packages.txt` logfile will no longer have duplicates.
- New list added: `Mediatek` a chipset manufacturer (like Qualcomm) mostly providing chinese phones.
- Documentation improvement/update for many apps.
- General improvement of UI/UX and better error handling.
### Root Support
If your device is rooted you can now use this script to physically remove apks. Ironically this method is actually safer because you can restore the apks from TWRP recovery in case of a bootloop.
- Root debloat: use the lists but remove the apks (`rm -rf`) instead of using the package manager (`pm`). All apks are automatically backed-up in `apks_backup` before being deleted.
- APKs restore: you can use the script, even when in TWRP recovery, to restore your apks
- Flashable zip: Generate a flashable zip
## New packages added
- **AOSP** : 0
- **Google** : 0
- **Huawei** : 25
- **Miscellaneous** : 0
- **OnePlus**: 1
- **Samsung** : 13
- **Xiaomi** : 1
## Pending --> Official lists
- **Tcl** : 2
- **AOSP** : 16
- **Google** : 16
- **Nokia** : 1
- **Samsung** : 25
- **Huawei** : 7
- **Xiaomi** : 49
- **Mediatek** : 13
- **Miscellaneous** : 0
## Bugfixes
- Renamed confusing variable name (OLDER_THAN_ANDROID_7_1) to OLDER_THAN_ANDROID_8.
- Fixed broken bash version check
- Bootloop with Google debloat list on Android 11 (and higher) (#43)
# New Version (v2.7)
Didn't you notice the last release never found packages to debloat/restore? Well... this works now. It seems all my changes wasn't pushed on the repo.
Altough this release contains almost exclusively bugfixes, it's is not a hotfix as there's also a new feature.
NB: I currently don't have a lot free time so the next *real* release will be in quite some time.
## Notable changes
- New menu entry (`7 - External list`) which enables you to use your own debloat list (#30)
## Bugfixes
- Nothing to debloat message when there is stuff to debloat.
- Compatibility issue with BSD version of `sed` MacOS which prevented the script to generate the debloat lists (#32)
- Backup integrity check always failing (#31)
- Script failed when `Packages search` feature didn't find any package
# New Release (v2.6)
:fallen_leaf: :fallen_leaf: :fallen_leaf: :fallen_leaf: :fallen_leaf: :fallen_leaf:
## Notable changes
- Improved script logic. The script now uses a custom list (`CUSTOM_LIST`) for processing which only contains packages preinstalled on your phone.
- Added a new menu entry to quickly reboot the phone.
## New packages added
- **AOSP** : 26
- **Google** : 2
- **Miscellaneous** : 14
- **Samsung** : 1
- **Pending** : 153
- **Xiaomi** : 16
## Pending --> Official lists
- **AOSP** : 3
- **Google** : 2
- **Samsung** : 50
- **Sony** : 2
- **Huawei** : 5
- **Xiaomi** : 13
- **Miscellaneous** : 12
## Bugfixes
- No sound/mic during phonecalls on some Motorola phones (#25)
## Miscellaneous
- Packages list installed on your phone (`remaining_packages.txt`) is now generated as soon as you arrive on the main menu. This list is updated once any action is *completed* (and brings you back to the main menu)
- Adjusted default selection for several lists.
- Improvement and adjustment of many package's description.
- The *[EXIT TRAP]* (used for debug) will no longer be triggered when you `ctrl^C`.
# New Release (v2.5.1)
- Fixed an inconsequential typing error

View file

@ -1,38 +1,46 @@
# This project is no longer maintained!
The whole project has been rewritten in Rust. The Universal Android Debloat is now a real software with a cross-platform GUI. It is still in a early stage of developpement but most features are there. Please do not open new merge requests and issues on this repo.<br>
===> [The new Universal Android Debloat](https://github.com/0x192/universal-android-debloater)
# Universal Android Debloater
**DISCLAIMER**: Use this script at your own risk. I am not responsible for anything that could happen to your phone.
**DISCLAIMER**: Use this script at your own risk. I am not responsible for anything that could happen to your phone.
## Summary
I try to maintain a universal tool which removes bloatwares on any Android phones by using ADB.
The main goal is to improve battery performance and privacy by removing unnecessary and obscure system apps. This can also contribute to improve security by reducing [the attack surface](https://en.wikipedia.org/wiki/Attack_surface). The script has a menu that lets you choose what debloat list you want to use. I strongly encourage you to take a look at the lists because the default selection may not suit you. All packages are as well documented as possible in order to provide a better understanding of what you can delete or not.
This script *should* be safe with the default selection. The worse thing which could happen is preventing an essential system process to be loaded during boot causing then an unfortunate bootloop. After about 5 failed system boots, the phone will automatically reboot in recovery mode and you'll have to perform a FACTORY RESET. So make a backup!
This script *should* be safe with the default selection. The worse thing which could happen is preventing an essential system process to be loaded during boot causing then an unfortunate bootloop. If you used the non-root solution, after about 5 failed system boots, the phone will automatically reboot in recovery mode and you'll have to perform a FACTORY RESET. So make a backup!
If you have a rooted device you can also physically delete the apks. Ironically this solution is safer because the script saves the apks before their removal. In case of bootloop you just need to run the script from a recovery with ADB support (e.g TWRP) and restore them.
In any case, you can NOT brick your device with this script! That's the main thing, right?
## Features
* [X] Quick search among all the packages of your phone
* [X] Quick search among all the packages of an android device
* [X] Uninstallation of system/user packages (manually or with the debloat lists)
* [X] Reinstallation of system packages (manually or with the debloat lists)
* [X] ADB backup (not really reliable, see the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ))
* [X] ADB backup/restore (not really reliable, see the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ))
* [X] Device brand detection and auto-selection of the appropriate manufacturer debloat list
* [X] Logs in `debloated_packages.txt` and `remaining_packages.txt`.
* [X] Logging:`debloated_packages.txt`, `remaining_packages.txt`, `deleted_apks.txt` (for root users)
* [X] Root support
* [ ] Installation of alternative open-source apps replacing stock apps (list in the WIKI section) (WIP)
NB : It is NOT a real uninstallation for system apps (see the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ))
NB : The non-root method is NOT a real uninstallation for system apps (see the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ))
## Universal debloat lists
* [X] GFAM (Google/Facebook/Amazon/Microsoft)
* [X] AOSP
* [X] Manufacturers (OEM)
* [X] Mobile carriers
* [X] Others / Miscellaneous
* [X] Qualcomm / Mediatek / Miscellaneous
## Manufacturers debloat lists
* [ ] Archos
* [X] Asus
* [ ] Blackberry
* [ ] Gionee
* [X] LG
* [X] Google
* [ ] HTC
@ -43,17 +51,18 @@ NB : It is NOT a real uninstallation for system apps (see the [FAQ](https://gitl
* [X] Oppo
* [X] Samsung
* [X] Sony
* [ ] TCL
* [ ] Wiko
* [X] Xiaomi
* [ ] ZTE
## Mobile carriers debloat lists
|France | USA |Germany |
|:---------------:|:--------:|:----------:|
| Orange | T-Mobile | Telekom |
| SFR | Verizon | |
| Free | Sprint | |
| Bouygues / Sosh | AT&T | |
## Mobile carriers debloat lists
| Country | Carriers |
|-----------------|-----------------------------------|
| France | Orange, SFR, Free, Bouyges/Sosh |
| USA | T-Mobile, Verizon, Sprint, AT&T |
| Germany | Telekom |
## How to use it
- **Read the [FAQ](https://gitlab.com/W1nst0n/universal-android-debloater/-/wikis/FAQ)!**
@ -67,17 +76,17 @@ NB : It is NOT a real uninstallation for system apps (see the [FAQ](https://gitl
- Install *Android platform tools* and *qpdf* on your PC :
Debian Base :
Debian Base:
```bash
$ sudo apt install android-sdk-platform-tools qpdf
$ sudo apt install android-sdk-platform-tools qpdf zip
```
Arch-Linux Base :
Arch-Linux Base:
```bash
$ sudo pacman -S android-tools qpdf
$ sudo pacman -S android-tools qpdf zip
```
Fedora :
Red Hat Base:
```bash
$ sudo yum install android-tools qpdf
$ sudo yum install android-tools qpdf zip
```
</details>
</p>
@ -94,18 +103,6 @@ You will also need to upgrade bash because Apple ships a very old bash version (
```bash
$ brew install android-platform-tools qpdf bash
```
You have to make the new bash version your default :
```bash
$ sudo echo "/usr/local/bin/bash" >> /etc/shells
$ chsh -s /usr/local/bin/bash
```
Check if it works :
```bash
$ echo $BASH_VERSION
```
</details>
</p>
@ -113,10 +110,21 @@ $ echo $BASH_VERSION
<details>
<summary>WINDOWS</summary>
Windows can't natively run bash script. Choose a workaround:
## Method 1: Live Linux USB
Create a Linux Live USB. Boot your computer on it and follow the instructions of the `LINUX` section. If you are a new to Linux, this will be a good opportunity to discover this wonderful OS. I recommend Linux Mint: [Instructions](https://itsfoss.com/install-linux-mint/)
**Note:** Just in case, I recall that you don't need to install Linux on your computer. You can do whatever your want direclty on the Live USB.
## Method 2: WSL (W10 only)
This method consists of installing WSL, a compatibility layer for running Linux binary executables natively on Windows 10.
For now, there is no USB support in the WSL. This means you need to install both Windows and Linux platform-tools and force the use of Windows adb server.
- Download [android platform tools](https://dl.google.com/android/repository/platform-tools-latest-windows.zip) and unzip it somewhere. [Add the folder to your PATH](https://www.architectryan.com/2018/03/17/add-to-the-path-on-windows-10/).
- [Install USB drivers of your device](https://developer.android.com/studio/run/oem-usb#Drivers)
- Check your device is detected :
- Check your device is detected:
```batch
> adb devices
```
@ -125,7 +133,7 @@ For now, there is no USB support in the WSL. This means you need to install both
- Install *Android platform tools* and *qpdf* from the Debian/Ubuntu shell
```bash
$ sudo apt update && sudo apt upgrade
$ sudo apt install android-sdk-platform-tools qpdf
$ sudo apt install android-sdk-platform-tools qpdf zip
```
- Check the version of ADB on Linux & Windows
```bash
@ -156,13 +164,17 @@ Note: You can access your Windows files under `/mnt/c/`
</p>
- Download [the lastest release of Android Universal Debloater](https://gitlab.com/W1nst0n/universal-android-debloater/-/releases)
- Check the debloat lists to be sure the default selection suits you.
- Run `debloat_script.sh` from a Unix terminal
- Download [the lastest release of Android Universal Debloater](https://gitlab.com/W1nst0n/universal-android-debloater/-/releases).
- Browse through the debloat lists to be sure the default selection suits you.
- Run `debloat_script.sh` from a Unix terminal.
```bash
$ bash debloat_script.sh
```
**NOTE:** Chinese phones users may need to use the AOSP list for removing some stock apps because those chinese manufacturers (especially Xiaomi and Huawei) have been using the name of AOSP packages for their own (modified & closed-source) apps.
**IMPORTANT NOTE:** You will have to run this script whenever your OEM push an update to your phone as some *uninstalled* system apps could be reinstalled.
## How to contribute
Hey-hey-hey! Don't go away so fast! This is a community project. That means I need you! I'm sure you want to make this project better anyway.

702
debloat_script.sh Executable file → Normal file
View file

@ -1,13 +1,14 @@
#!/usr/bin/env bash
# BASH 4.3 or newer is needed ! (use of local -n)
(( BASH_VERSINFO < 5 )) && echo "Please upgrade to a bash version >= 4.3"
# BASH 4.4 or newer is needed!
if (( "${BASH_VERSINFO[0]}" < 4 || ("${BASH_VERSINFO[0]}" == 4 && "${BASH_VERSINFO[1]}" < 4) )); then
printf "\n%s\n\n" "Please upgrade to a bash version >= 4.4" && exit 1;
fi
if ! $(adb get-state &>/dev/null); then echo "Your phone is not detected by ADB." && exit 1; fi
if ! adb get-state &>/dev/null; then printf "\n%s\n\n" "Your phone is not detected by ADB." && exit 1; fi
set -euo pipefail # Safer bash script
set -Eeuo pipefail # Safer bash script
# Colors used for printing
readonly BRED='\033[1;31m' # Bold + Red
readonly BBLUE='\033[0;34m' # Bold + Blue
readonly BGREEN='\033[1;32m'
@ -17,12 +18,13 @@ readonly Bold=$(tput bold)
readonly nBold=$(tput sgr0)
# Trap error
trap 'catch' EXIT
trap 'catch $LINENO' ERR
catch() {
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 :)"
(( $? == 0 )) && exit 0;
printf "\n\n${BRED}%s\n" "[EXIT TRAP] Hum... something is wrong. Error on line $1"
printf "\n%s\n" "If you think this is a bug. Please report it :)"
printf "%s${NC}\n\n" "==> https://gitlab.com/W1nst0n/universal-android-debloater/-/issues"
}
# Include debloat lists
@ -33,42 +35,50 @@ done
############################################### MAIN SCRIPT ##########################################################
main() {
readonly VERSION="v2.4.2 (July 30th 2020)"
readonly VERSION="v2.9.2 (March 30th 2021)"
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
readonly OLDER_THAN_ANDROID_8=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') < 26 ))
readonly OLDER_THAN_ANDROID_5=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') < 21 ))
readonly NEWER_THAN_ANDROID_9=$(( $(adb shell getprop ro.build.version.sdk | tr -d '\r') >= 29 ))
FORCE_UNINSTALL=0
RESTORE=0
readonly SYSTEM_MOUNT_POINT=$(adb shell getprop ro.build.system_root_image | grep "true" && echo "/system_root" || echo "/system")
declare -a CUSTOM_LIST=() # Trimed APK/package list only containing packages/APK on the device (populated by generate_custom_list())
declare -a EXTERNAL_LIST=() # APK/package list provided by the user (populated by import_external_list())
declare -a USERS=() # User list (populated by debloat_or_restore())
declare -ra LISTS=(us_carriers french_carrier german_carriers "$BRAND" google facebook amazon microsoft \
qualcomm mediatek misc aosp pending EXTERNAL_LIST)
declare -i FORCE_UNINSTALL=0
declare -i RESTORE=0
declare -i ROOT=0
clear
echo " ================================================"
echo " # #"
echo " # UNIVERSAL ANDROID DEBLOAT SCRIPT #"
echo " # #"
printf " %-${PAD}s${BRED}%s${NC}%${PAD}s\n" "#" "${VERSION}" "#"
echo " # #"
echo " ================================================"
echo
adb devices
printf "\n${BORANGE}%s\n" "================================================"
printf "%s\n" "# #"
printf "%-8s${NC}%s${BORANGE}%8s\n" "#" "UNIVERSAL ANDROID DEBLOAT SCRIPT" "#"
printf "%s\n" "# #"
printf "%-${PAD}s${BRED}%s${BORANGE}%${PAD}s\n" "#" "${VERSION}" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "================================================"
printf "${Bold}%s\n\n" "Please carefully read the FAQ before using this script!"
if [[ $(adb get-state) = "recovery" ]]; then uad_recovery_mode || exit; fi
printf "%s${nBold} " "Do you want to do an ADB backup ? [Y/N]"
read -r
if [[ $REPLY =~ [Yy]+[Ee]*[Ss]* ]]; then backup; fi
if (( OLDER_THAN_ANDROID_7_1 )); then
if (( OLDER_THAN_ANDROID_8 )); then
clear
printf "\n${BRED}%s " "WARNING : Your android version is too old (< 8.0)."
printf "%s${NC}\n\n" "Uninstalled packages can't be restored."
printf "%s" "The script will force-disable the apps instead of uninstalling them"
printf "%s" "The script will force-disable the apps instead of uninstalling them "
printf "%s\n\n" "so that you can restore them if needed"
printf "%s " "If you still want to force-uninstall the apps, type '1' ('0' otherwise):"
@ -76,109 +86,512 @@ main() {
fi
while true; do
clear
printf "\n${BORANGE}%s\n" "=================== MAIN MENU ==================="
printf "%s\n" "# #"
printf "%-14s${NC}%s${BORANGE}%18s\n" "#" "0 - List packages" "#"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "1 - Restore a backup" "#"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "2 - Restore packages" "#"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "3 - Debloat packages" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "==================================================="
adb shell 'pm list packages -s' | sed 's/package://g' > remaining_packages.txt &
clear -x
printf "\n${BORANGE}%s\n" "================== MAIN MENU =================="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%16s\n" "#" "0 - Packages search" "#"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "1 - Restore a backup" "#"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "2 - Restore packages" "#"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "3 - Debloat packages" "#"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%12s\n" "#" "4 - Restore APKs (Root)" "#"
printf "%-12s${NC}%s${BORANGE}%12s\n" "#" "5 - Debloat APKs (Root)" "#"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%6s\n" "#" "X - Exit and reboot the phone" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "================================================="
printf "${BRED}%s${NC}\n\n" "DON'T FORGET TO REBOOT YOUR PHONE ONCE THE DEBLOAT IS OVER."
printf "${BRED}%s${NC}\n\n" "DON'T FORGET TO REBOOT YOUR PHONE ONCE THE DEBLOAT IS OVER."
read -r -p "Choose an action : "
if [[ $REPLY = 0 ]]; then list_installed_packages; fi
if [[ $REPLY = 0 ]]; then list_installed_packages;
if [[ $REPLY = 1 ]]; then restore_backup; fi
elif [[ $REPLY = 1 ]]; then restore_backup;
if [[ $REPLY = 2 || $REPLY = 3 ]]; then
clear
elif [[ $REPLY = 2 || $REPLY = 3 || $REPLY = 4 || $REPLY = 5 ]]; then
clear -x
(( !BRAND_SUPPORTED )) && printf "\n${BRED}%s\n" "No $BRAND debloat list found. Feel free to contribute ! :)"
(( !BRAND_SUPPORTED )) && printf "\n${BRED}%s${NC}\n" "No $BRAND debloat list found. Feel free to contribute ! :)"
[[ $REPLY = 2 ]] && { title="RESTORE"; RESTORE=1; } || { title="DEBLOAT"; RESTORE=0; }
case $REPLY in
2) { title="RESTORE"; RESTORE=1; ROOT=0; };;
3) { title="DEBLOAT"; RESTORE=0; ROOT=0; };;
4) { title="RESTORE"; RESTORE=1; ROOT=1; };;
5) { title="DEBLOAT"; RESTORE=0; ROOT=1; };;
esac
printf "\n${BORANGE}%s\n" "==================== $title ===================="
printf "%s\n" "# #"
printf "%-14s${NC}%s${BORANGE}%14s\n" "#" "1 - $title a package" "#" | awk '{print tolower($0)}'
(( BRAND_SUPPORTED )) && printf "#${NC}%12s 2 - ${BRAND} %$((25-${#BRAND}))s ${BORANGE} #\n"
printf "%-14s${NC}%s${BORANGE}%27s\n" "#" "3 - GFAM" "#"
printf "%-14s${NC}%s${BORANGE}%23s\n" "#" "4 - Carriers" "#"
printf "%-14s${NC}%s${BORANGE}%25s\n" "#" "5 - Others" "#"
printf "%-14s${NC}%s${BORANGE}%27s\n" "#" "6 - AOSP" "#"
printf "%s\n" "# #"
printf "%-14s${NC}%s${BORANGE}%15s\n" "#" "0 - Pending list /!\\" "#"
printf "%s\n" "# #"
printf "%s\n${NC}" "==================================================="
if (( ROOT && NEWER_THAN_ANDROID_9 )); then
magisk_module
continue
fi
read -r -p "Your selection (e.g: 2 3 4 5): "
echo
if (( ROOT )); then
printf "\n%s\n" "The script will physically $title the apks from your phone"
printf "%s${BBLUE}%s${NC}%s\n" "Do you prefer to use a " "Magisk " "module for a systemless $title instead? [y/n]"
read -r
if [[ $REPLY =~ [Yy] ]]; then
magisk_module
continue
fi
fi
((!ROOT)) && printf "\n${BORANGE}%s\n" "=================== $title ==================="
(( ROOT )) && printf "\n${BORANGE}%s\n" "================ $title (ROOT) ==============="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%14s\n" "#" "1 - $title a package" "#" | awk '{print tolower($0)}'
(( BRAND_SUPPORTED )) && printf "#${NC}%7s 2 - ${BRAND} %$((25-${#BRAND}))s ${BORANGE} #\n"
printf "%-12s${NC}%s${BORANGE}%27s\n" "#" "3 - GFAM" "#"
printf "%-12s${NC}%s${BORANGE}%23s\n" "#" "4 - Carriers" "#"
printf "%-12s${NC}%s${BORANGE}%25s\n" "#" "5 - Others" "#"
printf "%-12s${NC}%s${BORANGE}%27s\n" "#" "6 - AOSP" "#"
printf "%-12s${NC}%s${BORANGE}%18s\n" "#" "7 - External list" "#"
(( ROOT && !RESTORE )) && printf "#${NC}%7s 8 - Create a flashable zip${BORANGE}%7s #\n"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BORANGE}%15s\n" "#" "0 - Pending list /!\\" "#"
printf "%s\n" "# #"
printf "%s\n${NC}\n" "================================================="
read -r -p "Your selection (e.g: 2 3 4 5): "
if [[ "$REPLY" =~ 7 ]]; then import_external_list && debloat_or_restore EXTERNAL_LIST; fi
if [[ "$REPLY" =~ 4 ]]; then lists_selection us_carriers french_carriers german_carriers; fi
if [[ "$REPLY" =~ 3 ]]; then lists_selection google facebook amazon microsoft; fi
if [[ "$REPLY" =~ 1 ]]; then debloat_or_restore; fi
if [[ "$REPLY" =~ 2 ]]; then debloat_or_restore "$BRAND"; fi
if [[ "$REPLY" =~ 5 ]]; then lists_selection qualcomm misc; fi
if [[ "$REPLY" =~ 5 ]]; then lists_selection qualcomm mediatek misc; fi
if [[ "$REPLY" =~ 6 ]]; then debloat_or_restore aosp; fi
if [[ "$REPLY" =~ 8 ]]; then create_flashable_zip; fi
if [[ "$REPLY" =~ 0 ]]; then debloat_or_restore pending; fi
elif [[ "$REPLY" =~ [Xx] ]]; then adb reboot && exit 0;
fi
adb shell 'pm list packages -s' | sed -r 's/package://g' | sort > remaining_packages.txt &
done
}
############################################ END OF MAIN SCRIPT ######################################################
import_external_list() {
local path=""
while true; do
printf "\n${BRED}%s${NC}" "Path to the list: "
read -r path
if readarray -t EXTERNAL_LIST < "$path"; then break; fi
done
for i in "${EXTERNAL_LIST[@]}"; do
if [[ $ROOT -eq 1 && $RESTORE -eq 0 && $i =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}\n\n" "Please use a package list, not an APK list"
exit 1
elif [[ $ROOT -eq 0 && ! $i =~ ^[a-z][a-zA-Z0-9_]*(\.[a-zA-Z0-9_]+)+[0-9a-zA-Z_]$ ]]; then
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n\n" "$i" " is not a package (format is" " com.android.bips" ")"
exit 1
elif [[ $ROOT -eq 1 && $RESTORE -eq 1 && ! $i =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}\n\n" "Please use an APK list"
exit 1
fi
done
}
associate_path_with_package() {
local -n ASSOCIATE="$1"
declare -a PACKAGES=()
readarray -t PACKAGES < <(adb shell 'pm list packages -s -u -f' | sed -r 's/package://g' | sort -i)
for i in "${PACKAGES[@]}"; do
ASSOCIATE["${i##*=}"]="${i%=*}"
done
}
generate_custom_list() {
clear -x
local -n list="$1"
[[ $# -eq 2 ]] && local user_id="$2"
CUSTOM_LIST=()
if (( ROOT )); then
declare -A PACKAGE_AND_PATH=() # PACKAGE_AND_PATH[package]=path/to/apk
declare -a TEMP=()
associate_path_with_package PACKAGE_AND_PATH
readarray -t TEMP < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(for p in "${!PACKAGE_AND_PATH[@]}"; do echo "$p"; done|sort -i))
[[ RESTORE -ne 1 ]] && printf "\n${BGREEN}%s${NC}\n\n" "Clearing app data..."
for p in "${TEMP[@]}"; do
[[ RESTORE -ne 1 ]] && printf "${BBLUE}%s${NC}" "$p --> " && adb shell "pm clear $p"
CUSTOM_LIST+=("${PACKAGE_AND_PATH[$p]}")
done
if [[ $RESTORE -eq 1 ]]; then
if [[ ${#CUSTOM_LIST[@]} -eq 0 ]]; then
readarray -t CUSTOM_LIST <(sort -i deleted_apks.txt)
else
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${CUSTOM_LIST[@]}"; do echo "${p}"; done|sort -i) \
<(sort -i deleted_apks.txt))
fi
fi
else
if (( RESTORE )); then
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(adb shell "pm list packages -s -u $user_id" | sed 's/package://g' | sort -i))
else
readarray -t CUSTOM_LIST < <(comm -12 <(for p in "${list[@]}"; do echo "${p}"; done|sort -i) \
<(adb shell "pm list packages -s $user_id" | sed 's/package://g' | sort -i))
fi
fi
return 0
}
debloat_or_restore() {
local action="" # restore or debloat
local output=""
local title=$( echo "$title" | tr '[:upper:]' '[:lower:]')
(( RESTORE )) && action="cmd package install-existing \$package" || action="pm uninstall $OPTION_NEEDED \$package"
(( RESTORE )) && action='cmd package install-existing $package' || action='pm uninstall $user $package'
# Android 7.1 and older can't reinstall packages
if (( OLDER_THAN_ANDROID_7_1 )) && (( !FORCE_UNINSTALL )); then
(( RESTORE )) && action="pm enable \$package" || action="am force-stop \$package \&\& pm disable-user \$package \&\& pm clear \$package"
if (( OLDER_THAN_ANDROID_8 )); then
if (( RESTORE )); then
action='pm enable $package'
elif (( !FORCE_UNINSTALL )); then
action='am force-stop $package && pm disable-user $package && pm clear $package'
fi
fi
# parse user list on the phone
readarray -t USERS < <(adb shell pm list users | grep -o "{[0-9]*" | grep -o "[0-9]*")
clear
clear -x
if [[ $# -gt 0 ]]; then
local list="$1"
# list is a nameref. Array is passed by reference.
[[ -v "$1" ]] && local -n list=$1
printf "\n${BORANGE}%s${NC}\n" "==== $list debloat list ===="
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"
if ! [[ "$output" =~ "Failure" ]] && [[ $RESTORE -eq 0 ]]; then echo "$package" >> "debloated_packages.txt"; fi
if (( ROOT )); then
touch -a deleted_apks.txt
generate_custom_list "$list"
if (( RESTORE )); then restore_apks "$list"; else root_debloat "$list"; fi
return
fi
for u_num in "${USERS[@]}"; do
local user=$( ((OLDER_THAN_ANDROID_5)) && echo "" || echo "--user $u_num" )
generate_custom_list "$list" "$user"
if [[ ${#CUSTOM_LIST[@]} -eq 0 ]]; then
printf "${BBLUE}%s${NC}%s" "[user $u_num]" " Nothing to $title :)" && sleep 1 && continue
fi
for package in "${CUSTOM_LIST[@]}"; do
do_package_action_and_log
done
done
sleep 1
else
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")" || true
echo "$output"
if ! [[ "$output" =~ Failure|Error ]] && (( !RESTORE )); then echo "$package" >> "debloated_packages.txt"; fi
sleep 2
if (( ROOT )); then
touch -a deleted_apks.txt
if (( RESTORE )); then restore_apks; else root_debloat; fi
return
fi
printf "\n${BRED}%s${NC}" "Package name to $title: "
read -r package
for u_num in "${USERS[@]}"; do
local user=$( ((OLDER_THAN_ANDROID_5)) && echo "" || echo "--user $u_num" )
do_package_action_and_log
done
sleep 1
fi
}
lists_selection() {
clear
do_package_action_and_log() {
printf "${BBLUE}%s${BRED}%s${NC}%s" "[user $u_num] " "$package --> "
output="$(eval adb shell "\"$action\"")" && echo "$output"
for ((i=1; i<=$#; i++)); do
echo "$i - ${!i}"
if [[ ! "$output" =~ Failure|Error ]]; then
if [[ $RESTORE -eq 0 ]]; then
grep -qxF "$package" debloated_packages.txt || echo "$package" >> "debloated_packages.txt"
else
grep -qFv "$package" debloated_packages.txt > temp.tmp || touch temp.tmp; mv temp.tmp debloated_packages.txt
fi
fi
}
backup_apks() {
printf "\n%s${BRED}%s${NC}%s\n\n" "Your apks are beeing backed-up in" " apks_backup/" " (in case you mess up)"
local -n apks="$1"
mkdir -p apks_backup
for apk in "${apks[@]}"; do
if ! adb pull "$apk" apks_backup/; then
printf "\n${BRED}%s${NC}%s\n" "$apk" " cannot be found on the phone!"
printf "\n${BRED}%s${NC}\n\n" "APKs backup failed" && exit 1
fi
done
printf "\n${BGREEN}%s${NC}\n\n" "Backup done!"
}
create_flashable_zip() {
clear -x
declare -a selection=()
local UPDATE_BINARY="META-INF/com/google/android/update-binary"
echo
for i in "${!LISTS[@]}"; do
printf "%-2s%s\n" "$i" " - ${LISTS[$i]}"
done
printf "${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
printf "\n${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
read -r -a selection
for i in "${selection[@]}"; do
if [[ "${LISTS[$i]}" == EXTERNAL_LIST ]]; then
import_external_list
fi
done
mkdir -p META-INF/com/google/android/
echo "#!/sbin/sh" > "$UPDATE_BINARY"
echo "echo 'ui_print --- Universal Android Debloater ---' > /proc/self/fd/\$2" >> "$UPDATE_BINARY"
echo "mount $SYSTEM_MOUNT_POINT" >> "$UPDATE_BINARY"
declare -i is_empty=1
for list in "${selection[@]}"; do
if (( list > ${#LISTS[@]} )) || (( list < 1 )); then continue; fi
generate_custom_list "${LISTS[$list]}"
backup_apks CUSTOM_LIST
for package in "${CUSTOM_LIST[@]}"; do
echo "rm -rf $package" >> "$UPDATE_BINARY"
done
[[ $is_empty -eq 1 && ${#CUSTOM_LIST[@]} -gt 0 ]] && is_empty=0
done
if [[ $is_empty -eq 1 ]]; then
printf "\n${BRED}%s${NC}\n" "Nothing to debloat!"
rm -rf META-INF/
else
echo "umount $SYSTEM_MOUNT_POINT" >> "$UPDATE_BINARY"
echo "echo 'ui_print ----- ALL DONE -----' > /proc/self/fd/\$2" >> "$UPDATE_BINARY"
zip -rm flashable_zip_UAD_${VERSION%%[[:space:]]*}.zip META-INF/ 1>/dev/null
printf "\n${BGREEN}%s${NC}%s\n" "flashable_zip_UAD_$VERSION.zip" " has been generated."
fi
sleep 2
}
restore_apks() {
declare -a path=()
if [[ $# -eq 1 ]]; then
[[ ${#CUSTOM_LIST[@]} -eq 0 ]] && echo "Nothing to restore" && sleep 1 && return
printf "\n%s${BBLUE}%s${NC}%s${BBLUE}%s${NC}\n\n" "Deleted apks from " "$list" " will be restored from " "apks_backups/"
printf "\n${BRED}%s${NC}\n\n" "Check your phone: Magisk Manager is probably asking you to grand root permissions for ADB"
else
printf "\n%s${BRED}%s${NC}%s" "Android Path of the APK to restore (the APK will be restored from " "apks_backups/" "): "
read -r path
if [[ ! $path =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n" "$path" "doesn't look like a valid APK path"
sleep 2 && return 0
fi
CUSTOM_LIST=("$path")
fi
if [[ $NEWER_THAN_ANDROID_9 -eq 1 ]]; then
magisk_module
return
fi
adb shell "su -c \"mount -o rw,remount $SYSTEM_MOUNT_POINT\""
for p in "${CUSTOM_LIST[@]}"; do # $p = path/to/app.apk
local apk=$(echo "$p" | sed -r 's/.*\///g') # app.apk
local dir=$(dirname "$p") # path/to
if adb push "apks_backup/$apk" /sdcard && adb shell "su -c 'mkdir -p \"$dir\"; mv \"/sdcard/$apk\" \"$dir\"; chmod 644 \"$p\"'"; then
grep -Fqv "$p" deleted_apks.txt > temp.tmp || touch temp.tmp; mv temp.tmp deleted_apks.txt
fi
done
adb shell "su -c \"mount -f -o ro,remount $SYSTEM_MOUNT_POINT\""
printf "\n${BRED}%s${NC}%s\n" "Reboot your phone and Android will reinstall the app(s)"
printf "\n\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
}
root_debloat() {
local method=""
if [[ $# -eq 1 ]]; then
[[ ${#CUSTOM_LIST[@]} -eq 0 ]] && echo "Nothing to debloat :)" && sleep 1 && return 0
else
printf "\n${BRED}%s${NC}" "Android Path of the APK to delete: "
read -r path
if [[ ! $path =~ ^/.*\.apk$ ]]; then
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n" "$path" " doesn't look like a valid APK path"
sleep 2 && return 0
fi
CUSTOM_LIST=("$path")
fi
backup_apks CUSTOM_LIST
read -r -p "Type YES if you want to physically delete the apk(s): "
if [[ $REPLY = "YES" ]]; then
if [[ $NEWER_THAN_ANDROID_9 -eq 1 ]]; then
magisk_module 1
return
fi
local commandes="mount -o rw,remount $SYSTEM_MOUNT_POINT;"
for apk in "${CUSTOM_LIST[@]}"; do
grep -qxF "$apk" deleted_apks.txt || echo "$apk" >> "deleted_apks.txt"
commandes+="echo \"rm -rf $apk\"; rm -rf \"$apk\";"
done
commandes+="mount -f -o ro,remount $SYSTEM_MOUNT_POINT"
printf "\n${BRED}%s${NC}\n\n" "Check your phone: Magisk Manager is probably asking you to grand root permissions for ADB"
adb shell "su -c '$commandes'"
printf "\n${BRED}%s${NC}\n" "DONE"
printf "\n%s${BRED}%s${NC}\n" "A list of deleted apks has been backed-up in " "deleted_apks.txt"
printf "\n\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
fi
}
magisk_module() {
clear -x
declare -a selection=()
declare -i is_empty=1
echo
if (( !RESTORE )); then
for i in "${!LISTS[@]}"; do
printf "%-2s%s\n" "$i" " - ${LISTS[$i]}"
done
printf "\n${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
read -r -a selection
for i in "${selection[@]}"; do
if [[ "${LISTS[$i]}" == EXTERNAL_LIST ]]; then
import_external_list
fi
done
else
printf "%-2s%s\n" "1" " - deleted_apks.txt"
printf "%-2s%s\n" "2" " - EXTERNAL_LIST"
printf "\n${BRED}%s${NC} " "Your choice :"
read -r
selection=(1)
case $REPLY in
1) readarray -t CUSTOM_LIST < deleted_apks.txt ;;
2) { import_external_list && CUSTOM_LIST=("${EXTERNAL_LIST[@]}"); } ;;
*) exit 1 ;;
esac
fi
touch -a deleted_apks.txt
rm -r MAGISK_MODULE || true
mkdir MAGISK_MODULE
cd "$_"
local -r MODULE_DIR=$(pwd)
cat << EOF > module.prop
id=universal-android-debloater
name=Universal Android Debloater Magisk Flashable zip
version=1.0
versionCode=1000
author=w1nst0n
description=custom root debloat script
EOF
mkdir -p META-INF/com/google/android/ && cd "$_"
wget -q https://raw.githubusercontent.com/topjohnwu/Magisk/master/scripts/module_installer.sh
mv module_installer.sh update-binary
echo "#MAGISK" > updater-script
cd "$MODULE_DIR"
[[ RESTORE -eq 0 ]] && echo "REPLACE=\"" > customize.sh
for list in "${selection[@]}"; do
if (( list > ${#LISTS[@]} )) || (( list < 1 )); then continue; fi
cd ..
if (( !RESTORE )); then
generate_custom_list "${LISTS[$list]}"
backup_apks CUSTOM_LIST
fi
cd "$MODULE_DIR"
for apk in "${CUSTOM_LIST[@]}"; do
if (( RESTORE )); then
local dir="$(dirname "${apk:1}")"
mkdir -p "$dir"
cp "../apks_backup/$(echo "$apk" | sed -r 's/.*\///g')" "${apk:1}"
grep -Fqv "$apk" ../deleted_apks.txt > temp.tmp || touch temp.tmp; mv temp.tmp ../deleted_apks.txt
else
grep -qxF "$(dirname "$apk")" customize.sh || dirname "$apk" >> customize.sh
grep -qxF "$apk" ../deleted_apks.txt || echo "$apk" >> ../deleted_apks.txt
fi
done
[[ $is_empty -eq 1 && ${#CUSTOM_LIST[@]} -gt 0 ]] && is_empty=0
done
if [[ RESTORE -eq 0 && $is_empty -eq 1 ]]; then
printf "\n${BRED}%s${NC}\n" "Nothing to debloat!"
cd .. && rm -rf MAGISK_MODULE
return 0
fi
[[ RESTORE -ne 1 ]] && echo "\"" >> customize.sh
zip -FSrm ../uad_magisk_"${VERSION%%[[:space:]]*}_$title".zip ./* 1>/dev/null || true
cd .. && rm -rf MAGISK_MODULE
printf "\n${BGREEN}%s${NC}%s\n" "uad_magisk_${VERSION%%[[:space:]]*}.zip" " has been generated."
printf "\n%s${BBLUE}%s${NC}%s${BBLUE}%s${NC}%s\n" "Flash this file from " "Magisk Manager " "or " "TWRP " "and reboot your phone."
printf "\n%s${BBLUE}%s${NC}%s\n" "Removing the module from " "Magisk Manager " "will restore the apks."
if [[ $BRAND == "samsung" ]]; then
printf "\n${BRED}%s${NC}\n\n" "/!\ TWRP doesn't support Samsung encryption. You won't be able to flash this Magisk module from TWRP /!\\"
fi
printf "\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
}
lists_selection() {
clear -x
declare -a selection=()
for ((i=1; i<=$#; i++)); do
printf "%-2s%s\n" "$i" " - ${!i}"
done
printf "\n${BRED}%s${NC} " "Your choice (e.g 1 2 3) :"
read -r -a selection
for list in "${selection[@]}"; do
if (( list > $# )) || (( list < 1 )); then continue; fi
@ -187,20 +600,27 @@ lists_selection() {
}
list_installed_packages() {
clear
clear -x
declare -a packages=()
printf "\n${BRED}%s${NC}" "Search for packages (regex accepted): "
read -r
echo
adb shell "pm list packages | grep -i $REPLY" | sed -r 's/package://g' | sort
readarray -t packages < <(adb shell "pm list packages -f" | grep -i "$REPLY" | sed 's/package://g' | sort || true)
for i in "${packages[@]}"; do
printf "%s${BBLUE}%s${NC}\n" "${i##*=}" " ${i%=*}"
done
printf "\n\e[5m%s\033[0m" "Press any key to continue"
read -n 1 -r -s
}
restore_backup() {
clear
clear -x
printf "${BRED}%s${NC}" "Enter the path of the backup to restore : "
read -r
@ -211,7 +631,7 @@ restore_backup() {
}
backup() {
clear
clear -x
local backup=$(date +%Y-%m-%d-%H:%M:%S)
adb backup -apk -all -system -f "${PHONE:-phone}-${backup}.adb" # -noshare option is default
@ -219,17 +639,17 @@ backup() {
printf "\n\e[5m%s\033[0m" "Press a key when the backup is done (your phone will tell you) "
read -n 1 -r -s
check_backup_integrity "${PHONE:-phone}-${backup}.adb";
}
}
check_backup_integrity() {
printf "\n\n${BBLUE}%s${NC}" "[($1)] Backup integrity checking : "
! [[ -f $1 ]] && printf "${BRED}%s${NC}\n\n" "Backup not found" && return 1
# first 24 bytes are skipped (adb backup are modified compressed tar files with a 24B custom header)
if ! dd if="$1" bs=1M skip=24 iflag=skip_bytes &>/dev/null | zlib-flate -uncompress | tar tf - &>/dev/null; then
if ! dd if="$1" bs=128k skip=24 iflag=skip_bytes 2>/dev/null | zlib-flate -uncompress | tar tf - &>/dev/null; then
printf "${BRED}%s${NC}\n\n" "FAILED" && return 1
else printf "${BGREEN}%s${NC}\n\n" "OK"
fi
}
@ -238,11 +658,97 @@ get_brand() {
local brand
brand=$(adb shell getprop ro.product.brand | tr -d '\r' | awk '{print tolower($0)}')
# Support for alternative name
# Support for sub-brands
case "$brand" in
"redmi") echo "xiaomi" ;;
"redmi"|"poco") echo "xiaomi" ;;
*) echo "$brand"
esac
}
uad_recovery_mode() {
ROOT=1
while true; do
clear -x
printf "\n${BBLUE}%s\n" "========== MAIN MENU (RECOVERY MODE) =========="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BBLUE}%12s\n" "#" "1 - Restore APKs (Root)" "#"
printf "%-12s${NC}%s${BBLUE}%12s\n" "#" "2 - Debloat APKs (Root)" "#"
printf "%s\n" "# #"
printf "%-12s${NC}%s${BBLUE}%6s\n" "#" "X - Exit and reboot the phone" "#"
printf "%s\n" "# #"
printf "%s${NC}\n\n" "================================================="
read -r -p "Choose an action : "
case $REPLY in
1) { title="RESTORE"; RESTORE=1; };;
2) { title="DEBLOAT"; RESTORE=0; };;
[Xx]) { adb reboot && exit 0; };;
*) exit
esac
clear -x
printf "\n${BBLUE}%s\n" "================ $title (ROOT) ==============="
printf "%s\n" "# #"
printf "%-12s${NC}%s${BBLUE}%17s\n" "#" "1 - $title an APK" "#" | awk '{print tolower($0)}'
printf "%-12s${NC}%s${BBLUE}%18s\n" "#" "2 - External list" "#"
((RESTORE)) && printf "#${NC}%7s 3 - deleted_apks.txt ${BBLUE}%13s#\n"
printf "%s\n" "# #"
printf "%s\n${NC}" "================================================="
read -r -p "Choose an action : "
if [[ $REPLY = 1 ]]; then
while true; do
printf "\n${BRED}%s${NC}" "Android path of the APK to $title: "
read -r path
[[ $path =~ ^/.*\.apk$ ]] && break
printf "\n${BRED}%s${NC}%s${BRED}%s${NC}%s\n" "$path" " doesn't look like a valid APK path"
done
CUSTOM_LIST=("$path")
fi
if [[ $REPLY = 2 ]]; then import_external_list && CUSTOM_LIST=("${EXTERNAL_LIST[@]}"); fi
if [[ $REPLY = 3 && $RESTORE -eq 1 ]]; then readarray -t CUSTOM_LIST < "deleted_apks.txt"; fi
if [[ RESTORE -eq 0 ]]; then
backup_apks CUSTOM_LIST
printf "\n%s${BRED}%s${NC}%s\n\n" "Your apks has been backed-up in" " apks_backup/" " (in case you messed up)"
fi
[[ $NEWER_THAN_ANDROID_9 -eq 1 ]] && magisk_module && continue
printf "\n%s\n" "The script will physically $title the apks from your phone."
printf "%s${BBLUE}%s${NC}%s\n" "Do you prefer to use a " "Magisk " "module for a systemless $title instead? [y/n]"
read -r
if [[ $REPLY =~ [Yy] ]]; then
magisk_module
continue
fi
adb shell mount system || exit 1
for p in "${CUSTOM_LIST[@]}"; do # $p = path/to/app.apk
local apk=$(echo "$p" | sed -r 's/.*\///g') # app.apk
local dir=$(dirname "$p") # path/to
if [[ $RESTORE -eq 0 ]]; then
adb shell "rm -rf $p" && echo "rm -rf $p"
grep -qxF "$p" deleted_apks.txt || echo "$p" >> "deleted_apks.txt"
else
echo "adb push apks_backup/$apk /\"$p\""
if adb shell "mkdir -p $dir" && adb push "apks_backup/$apk" "/$p"; then
grep -qFv "$p" deleted_apks.txt > temp.tmp || touch temp.tmp; mv temp.tmp deleted_apks.txt
fi
fi
done
sleep 2
done
}
main "$@"; exit

View file

@ -1,193 +1,172 @@
#!/usr/bin/env bash
### These packages will be added in the default selection when I will find time to document them.
# It should be safe but you still need to be **VERY** careful.
# Uncommented packages should be safe to remove AT FIRST SIGHT but you still need to be **VERY** careful.
# Commented packages are NOT safe! DO NOT TRY TO REMOVE THESE FROM YOUR PHONE
# REMINDER : "Safe" only means "does not cause bootloop".
# These packages can definitely break features (but you can easily reinstall them with the script)
# These packages will most likely break useful features (but you can easily reinstall them with the script)
declare -a pending=(
############# AOSP #############
#"com.android.keyguard"
"com.android.hwmirror" # Huawei Mirror app.
"com.android.dreams" # AOSP screensaver
#"com.android.camera"
#"com.android.fileexplorer"
#"com.android.incallui"
#"com.android.se"
#"com.android.smspush"
# These packages seems to be disguished Xiaomi apps and not part of AOSP. Can someone confirm/refute this?
#"com.android.systemui.gesture.line.overlay"
#"com.android.systemui.navigation.bar.overlay"
#"com.android.thememanager"
#"com.android.thememanager.module"
#"com.android.updater"
"com.factory.mmigroup"
########## THIRD PARTY ###########
############## AOSP ###############
#"com.android.wifi.resources"
"com.realvnc.android.remote"
"com.hicloud.android.clone"
#"com.hisi.mapcon" # "wi-fi calling" feature
"com.ironsource.appcloud.oobe.huawei"
"com.qti.confuridialer"
"co.sitic.pp"
#"com.qualcomm.cabl"
#"com.qualcomm.svi"
#"com.qualcomm.uimremoteserver"
#"com.qualcomm.wfd.service"
#"com.trustonic.teeservice"
#"com.wssnps"
#"com.gti.qualcomm.datastatusnotification"
############# GOOGLE ##############
############ QUALCOMM #############
"com.qti.qualcomm.deviceinfo"
"com.qualcomm.qti.cne"
#"com.qualcomm.qti.ims"
"com.qualcomm.qti.performancemode"
"com.qualcomm.qti.poweroffalarm"
"com.qualcomm.qti.qdma"
#"com.qualcomm.qti.gpudrivers.kona.api30"
#"com.qualcomm.qti.seccamservice"
#"com.qualcomm.qti.services.secureui"
#"com.qualcomm.qti.services.systemhelper"
#"com.qualcomm.qti.simcontacts"
#"com.qualcomm.qti.uceShimService"
#"com.qualcomm.qti.uimGbaApp"
#"com.qualcomm.qti.workloadclassifier"
"com.qualcomm.uimremoteclient"
#"vendor.qti.hardware.cacert.server"
#"vendor.qti.iwlan"
########## THIRD PARTY ############
"com.verizon.cloudsetupwizard"
"com.jrd.verizonuriintentservice"
"com.tcl.vzwintents"
"com.tct.vzwwifioffload"
"com.vzw.easvalidation"
"com.ts.setupwizard.overlay.overlay"
"com.jrdcom.Elabel.overlay"
"com.hawk.android.browser"
"com.hiya.axolotl.tcl"
"com.jrdcom.Elabel"
"com.jrdcom.Elabel.a_overlay"
"com.jrdcom.filemanager"
"com.jrdcom.filemanager.a_overlay"
"com.vendor.frameworkresoverlay"
############# SAMSUNG #############
"com.samsung.accessory"
"com.samsung.accessory.beansmgr"
"com.samsung.accessory.safiletransfer"
"com.samsung.android.app.accesscontrol"
"com.samsung.android.app.color"
#"com.samsung.android.app.multiwindow"
"com.samsung.android.app.panel.naver.v"
#"com.samsung.android.coreapps"
"com.samsung.android.gearoplugin"
"com.samsung.android.knox.containerdesktop" # KnowContainerDesktop
"com.samsung.android.rubin.app"
"com.samsung.android.sdk.handwriting"
"com.samsung.android.server.iris"
"com.samsung.android.smartfitting" # SmartFittingService
"com.samsung.android.smartswitchassistant" # Samsung SmartSwitch
"com.samsung.android.timezone.data_P" # Samsung Time Zone Data
"com.samsung.android.unifiedprofile"
"com.samsung.android.video"
"com.samsung.android.voc"
"com.samsung.android.wallpaper.res"
"com.samsung.android.widgetapp.yagooedge.sport"
"com.samsung.app.jansky"
"com.samsung.app.newtrim"
"com.samsung.fresco.logging"
"com.samsung.knox.securefolder.setuppage"
"com.samsung.tmowfc.wfccontroller"
"com.samsung.tmowfc.wfcpref"
"com.samsung.visionprovider" # VisionProvider, maybe linked to Bixby?
"com.sec.android.app.bluetoothtest"
"com.sec.android.app.chromecustomizations"
"com.sec.android.app.DataCreate"
"com.sec.android.app.ringtoneBR"
"com.sec.android.app.setupwizardlegalprovider" # SetupWizardLegalProvider
"com.sec.android.app.suwscriptplayer" # SuwScriptPlayer
"com.sec.android.app.sysscope"
"com.sec.android.app.vepreload"
"com.sec.android.app.wlantest"
#"com.sec.android.provider.badge"
#"com.sec.android.providers.security"
"com.sec.android.widgetapp.webmanual"
"com.sec.app.RilErrorNotifier"
"com.sec.downloadablekeystore"
"com.sec.enterprise.knox.cloudmdm.smdms"
"com.sec.hiddenmenu"
#"com.sec.phone"
"com.setk.widget"
#"com.samsung.vvm.se"
#"com.sansumg.SMT"
#"com.sec.android.app.setupwizard"
#"com.sec.android.inputmethod.beta"
#"com.samsung.android.cmfa.framework"
#"com.samsung.android.incall.contentprovider"
"com.samsung.android.service.tagservice"
"com.samsung.android.camerasdkservice"
"com.samsung.android.cameraxservice" # CBattery drain related on S10
"com.samsung.android.coldwalletservice"
"com.samsung.android.digitalkey"
"com.samsung.android.forest"
"com.samsung.android.kgclient" # Samsung Pay One Ui 3.0 ?
"com.samsung.android.providers.carrier"
#"com.samsung.android.wifi.resources"
"com.samsung.android.wifi.softap.resources"
"com.sec.android.Cdfs"
"com.sec.android.smartfpsadjuster"
"com.sec.location.nfwlocationprivacy"
"com.samsung.gamedriver.sm8250"
"com.samsung.gpuwatchapp" # Gpu viewer ?
"com.samsung.huxplatform"
"com.samsung.qosindicator"
"com.samsung.sait.sohservice"
"com.samsung.vklayer.sm8250"
############### SONY ##############
"com.sonymobile.devicesecurity.service"
"com.sonymobile.home.product.res.overlay"
"com.sonymobile.indeviceintelligence"
"com.sonymobile.swiqisystemservice"
"com.sonymobile.themes.xperialoops2"
############# HUAWAI ##############
"com.huawei.android.pushagent"
"com.huawei.android.thememanager"
"com.huawei.android.totemweatherapp"
"com.huawei.android.totemweatherwidget"
"com.huawei.android.wfdft"
"com.huawei.bd"
"com.huawei.contacts.sync"
"com.huawei.KoBackup"
"com.huawei.mirrorlink"
"com.huawei.securitymgr"
############## NOKIA ##############
"com.evenwell.batteryprotect.overlay.d.base.s600e0"
"com.evenwell.factorywizard.overlay.base"
"com.evenwell.phone.overlay.base"
"com.evenwell.powersaving.g3.overlay.d.base.s600e0"
"com.evenwell.settings.data.overlay.base"
"com.evenwell.SetupWizard.overlay.base"
"com.evenwell.SetupWizard.overlay.d.base.s600ww"
# Nokia users: Please give the apk. I can't find them on the web.
"com.evenwell.whitebalance"
"com.evenwell.whitebalance.overlay.base"
"com.hmdglobal.datago"
"com.hmdglobal.datago.overlay.base"
"com.hmdglobal.enterprise.api"
########### XIAOMI ##############
########## XIAOMI ###############
#"android.autoinstalls.config.Xiaomi.cactus"
#"com.mi.android.globalminusscreen"
"com.mi.AutoTest"
#"com.mi.globallayout"
"com.miui.audiomonitor"
"com.miui.backup"
#"com.miui.core"
"com.miui.face"
"com.miui.fmservice"
"com.miui.freeform"
#"com.miui.global.packageinstaller"
"com.miui.guardprovider"
"com.miui.haunji"
#"com.miui.miservice"
#"com.miui.misound"
#"com.miui.notification"
"com.miui.phrase"
#"com.miui.powerkeeper"
#"com.miui.rom"
#"com.miui.securitycore"
"com.miui.smsextra"
"com.miui.sysopt"
#"com.miui.system"
#"com.miui.systemui.carriers.overlay"
#"com.miui.systemui.devices.overlay"
#"com.miui.systemui.overlay.devices.android"
#"com.miui.wmsvc"
#"com.wapi.wapicertmanager"
"com.wingtech.standard"
"com.wt.secret_code_manager"
#"com.xiaomi.bluetooth"
#"com.xiaomi.bluetooth.overlay"
#"com.xiaomi.location.fused"
"com.xiaomi.mi_connect_service"
"com.xiaomi.miplay_client"
#"com.xiaomi.misettings"
#"com.xiaomi.powerchecker"
"com.xiaomi.simactivate.service"
"com.xiaomi.upnp"
"com.xiaomi.xmsf"
"com.xiaomi.xmsfkeeper"
#"org.simalliance.openmobileapi.uicc1terminal"
#"org.simalliance.openmobileapi.uicc2terminal"
"se.dirac.acs"
"com.fido.asm"
#"com.fido.xiaomi.uafclient"
"com.lbe.security.miui"
"com.mediatek"
"com.mediatek.atmwifimeta"
#"com.mediatek.callrecorder"
"com.mediatek.engineermode"
#"com.mediatek.gpslocationupdate"
"com.mediatek.ims"
#"com.mediatek.location.lppe.main"
"com.mediatek.mdmconfig"
"com.mediatek.mtklogger"
#"com.mediatek.nlpservice"
#"com.mediatek.omacp"
"com.mediatek.providers.drm"
"com.mediatek.wfo.impl"
############# TCL ###############
"com.android.gallery3d.refocus"
"android.autoinstalls.config.TCL.PAI"
"com.android.providers.tctdatahubprovider"
#"com.tcl.android.launcher"
#"com.tcl.android.launcher.a_overlay"
#"com.tcl.android.launchertheme.res"
#"com.tcl.android.launchertheme.res.overlay"
#"com.tcl.android.wallpaper.livepicker"
"com.tcl.aota.a_overlay"
#"com.tcl.camera"
#"com.tcl.camera.a_overlay"
"com.tcl.compass"
"com.tcl.compass.a_overlay"
"com.tcl.demopage"
#"com.tcl.entitlement"
#"com.tcl.faceunlock"
"com.tcl.fmradio"
"com.tcl.fmradio.a_overlay"
#"com.tcl.fota.system"
#"com.tcl.fota.system.a_overlay"
"com.tcl.healthy"
"com.tcl.logger.a_overlay"
"com.tcl.mibc.tclplus"
"com.tcl.mibc.tclplus.a_overlay"
"com.tcl.nfc.gsma.usermenu"
"com.tcl.screenrecorder"
"com.tcl.screenrecorder.a_overlay"
"com.tcl.screenshotex"
"com.tcl.sos"
"com.tcl.tclswitch.a_overlay"
"com.tcl.token"
"com.tcl.usercare"
"com.tcl.usercare.a_overlay"
#"com.tclhz.gallery"
#"com.tclhz.gallery.a_overlay"
#"com.tct"
#"com.tct.aio"
#"com.tct.android.secureinput"
"com.tct.applock"
"com.tct.batterywarning"
"com.tct.calculator"
"com.tct.calculator.a_overlay"
"com.tct.cellular.arda"
"com.tct.contacts.transfer"
"com.tct.contacts.transfer.a_overlay"
"com.tct.diagprotector"
#"com.tct.dialer"
#"com.tct.dialer.a_overlay"
#"com.tct.faceunlock"
"com.tct.gamemode"
"com.tct.gdpr"
#"com.tct.iris"
"com.tct.music"
"com.tct.onetouchbooster"
"com.tct.onetouchbooster.a_overlay"
"com.tct.privacymode"
"com.tct.privatespace"
"com.tct.retaildemo"
"com.tct.retaildemo.a_overlay"
"com.tct.setupwizard"
"com.tct.simplelauncher"
"com.tct.simplelauncher.a_overlay"
#"com.tct.simsettings"
"com.tct.smart.account"
"com.tct.smart.aikey"
"com.tct.smart.cloud"
"com.tct.smart.drivemode"
"com.tct.smart.notes"
"com.tct.smart.switchphone"
"com.tct.smart.switchphone.service"
"com.tct.soundrecorder"
#"com.tct.systemservice"
"com.tct.video"
"com.tct.weather"
"com.tct.weather.a_overlay"
#"com.tct.wfcwebiew"
)

View file

@ -1,22 +1,21 @@
#!/usr/bin/env bash
declare -a aosp=(
# VOCABULARY :
# overlay : https://budhdisharma.medium.com/rro-runtime-resource-overlay-in-android-aosp-e094be17f4bc
# https://source.android.com/devices/architecture/rros
"com.android.apps.tag"
# NFC Tagging (5 permissions : Contacts/Phone On by default).
# https://en.wikipedia.org/wiki/TecTile
# It will NOT prevent you to use NFC devices (like speakers)
declare -a aosp=(
"com.android.bips"
# Default print Service.
# Safe to remove if you don't plan to print from your phone.
"com.android.bluetoothmidiservice"
# Provides classes for using the MIDI protocol over Bluetooth. Safe to remove if you don't plan to connect MIDI devices.
# (Seriously, use a PC if you want to do this !)
"com.android.bookmarkprovider"
# Only exist for compatibility reasons to prevent apps querying it from getting null cursors they do not expect and crash.
# Only exists for compatibility reasons to prevent apps querying it from getting null cursors they do not expect and crash.
"com.android.carrierdefaultapp"
# Allows carrier customization. Carrier action upon specific signal.
@ -31,6 +30,9 @@ declare -a aosp=(
"com.android.dreams.phototable"
# Photographic screensavers (Daydream stuff, see above)
"com.android.dreams.phototable.overlay"
# Overlay for com.android.dreams.phototable
"com.android.egg"
# Android build's easter egg feature (when you click 5 times on the android version in the settings)
@ -59,22 +61,27 @@ declare -a aosp=(
"com.android.phasebeam"
# "Phase beam" live wallpaper
"com.android.printservice.recommendation"
# Keep it, if you need to print directly via your phone.
"com.android.printspooler"
# Print spooler. Manage the printing process.
# Safe to remove if you don't plan to print from your phone
"com.android.email.partnerprovider"
"com.android.email.partnerprovider.overlay"
# Lets Google partners (OEM in most of the case) to customize the default email settings.
# The manufacturer often change the default signature displayed the end of each of your mail (e.g "Sent from my Nokia phone")
"com.android.providers.partnerbookmarks"
# Provides bookmarks about partners of Google in Chrome.
"com.android.runintest.ddrtest"
# DDR Test
# RAM Stress tester
# Can be run from the bootloader
# NOTE: I'm not sure it's really from AOSP (seen in TCL Plex phone)
"com.android.simappdialog"
# Sim App Dialog
# Used to install the carrier SIM app when the SIM is inserted.
"com.android.soundrecorder"
# AOSP Sound recorder. OEM often use their own solution
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own browser app.
# There are better apps (on F-droid) anyway
"com.android.stk"
@ -96,9 +103,11 @@ declare -a aosp=(
"com.android.wallpaper.holospiral"
# "Holo spiral" Live wallpaper.
"com.android.wallpaper.livepicker"
# Enable you to pick live wallpaper.
"com.android.wallpaper.livepicker"
"com.android.wallpaper.livepicker.overlay"
# Enables you to pick a live wallpaper.
# Will break some weather applications (especially ones with widgets) and wallpaper applications like Muzei.
"com.android.wallpapercropper"
# Wallpaper cropper.
@ -108,6 +117,23 @@ declare -a aosp=(
##################### UP TO YOU (can be useful features but safe to remove) #####################
"android.auto_generated_vendor_" # [MORE INFO NEEDED]
# Auto generated vendor's stuff for Android Auto (https://www.android.com/intl/en_en/auto/)
# Note: You don't need this if you don't use Android auto
"android.auto_generated_rro__"
# rro = Runtime Resources Overlay.
# Changes values of a package config, based in the overlay definitions (heavily used by OEM for custom themming android)
# Link: https://source.android.com/devices/architecture/rros and https://code.tutsplus.com/tutorials/quick-tip-theme-android-with-the-runtime-resource-overlay-framework--cms-29708
"com.android.apps.tag"
# Support for NFC tags interactions (5 permissions : Contacts/Phone On by default).
# NFC Tags are for instance used in bus to let you validate your transport card with your phone
# Other exemple : https://en.wikipedia.org/wiki/TecTile
# You will still be able to connect to a NFC device (e.g a speaker) if removed.
#"com.google.android.GoogleCamera"
# Google Camera (https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera)
#"com.android.backupconfirm"
# Restore google settings with Google Backup restore function.
# Also display confirmation popup when doing ADB backup. If you remove this package you couldn't do ADB Backup.
@ -119,42 +145,53 @@ declare -a aosp=(
# Bluetooth service
"com.android.browser"
# AOSP Browser. You honeslty shoud use something else. It is no longer maintained and lack a lot of features.
# AOSP Browser. You honeslty shoud use something else. It is no longer maintained and lacks a lot of features.
# If you have this package you most likely have an old android version (< Android KitKat v4.4) so you can't really install
# another browser.
# Your android device is insecure so you really shouldn't use this device to browse the web.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own browser app (e.g Mi browser)
"com.android.browser.provider"
# Strange package. It is old (2014) and there is a hardcoded Picasa URL in the code
# https://android.googlesource.com/platform/packages/apps/Browser/+/refs/heads/master/src/com/android/browser/provider/BrowserProvider.java
# Related to bookmarks but removing it doesn't seems to affect anything visible.
"com.android.calendar"
# Old AOSP Calendar app
#"com.android.calendar"
# AOSP Calendar app
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own calendar app.
#"com.android.calculator2"
# Stock calculator app.
#"com.android.calculator2"
# AOSP calculator app.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own calculator app.
"com.android.calllogbackup"
#"com.android.calllogbackup"
# Call Logs Backup/Restore feature.
# https://android.googlesource.com/platform/packages/providers/CallLogProvider/+/refs/heads/master/src/com/android/calllogbackup
#"com.android.captiveportallogin"
# Take care of redirecting to the web page that the user of a public access network is obliged to view and interect with, before access is granted.
# Support for captive portal : https://en.wikipedia.org/wiki/Captive_portal
# A captive portal login is a web page where the users have to input their login information or accept the displayed terms of use.
# Some networks (typically public wifi network) use the captive portal login to block access until the user inputs
# some necessary information
#"com.android.carrierconfig"
# Gives carriers and OEMs the ability to dynamically provide carrier configuration (APN settings) trough their app.
# NOTE : The probability that your carrier's APN change is very low. If you change your carrier and insert a new SIM card
# This package will be triggered to automatically choose the suitable APN.
# https://source.android.com/devices/tech/config/carrier
# https://android.googlesource.com/platform/packages/apps/CarrierConfig/+/refs/heads/master/src/com/android/carrierconfig/DefaultCarrierConfigService.java
#"com.android.cellbroadcastreceiver"
# == EMERGENCY ALERTS ==
# This service manages enabling and disabling ranges of message identifiers that the radio should listen for.
# It operates independently of the other services and runs at boot time and after exiting airplane mode.
# Cell broadcast has been designed to deliver messages to multiple users in an area.
# This is notably used by ISP to send Emergency/Government alerts. This package handles the situation on occurence of this event.
# Runs at boot time and is also triggered after exiting airplane mode.
# https://en.wikipedia.org/wiki/Cell_Broadcast
# https://www.androidcentral.com/amber-alerts-and-android-what-you-need-know
# https://android.googlesource.com/platform/packages/apps/CellBroadcastReceiver/+/refs/heads/master/src/com/android/cellbroadcastreceiver
#"com.android.contacts"
# AOSP contacts app (it is not Google contacts)
# NOTE: On some phones Huawei & Xiaomi also use this package name for their contacts app.
#"com.android.cts.ctsshim" # [MORE INFO NEEDED]
#"com.android.cts.priv.ctsshim"
@ -163,23 +200,30 @@ declare -a aosp=(
# https://android.googlesource.com/platform/frameworks/base/+/51e458e/packages/CtsShim
#"com.android.deskclock"
# AOSP Clock app
# AOSP Clock app
# NOTE: On some phones Huawei & Xiaomi also use this package name for their own clock app.
"com.android.email"
#"com.android.email"
# AOSP Email app (it is NOT gmail).
# NOTE: On some phones Huawei & Xiaomi also use this package name for their own EMAIL app.
"com.android.emergency"
#"com.android.emergency"
# Emergency informations. Safe to remove if you don't want this feature.
#"com.android.exchange" # [MORE INFO NEEDED]
# The ExchangeService handles all aspects of starting, maintaining, and stopping the various sync adapters for email.
# [WARNING] I need to know if it only concerns stock mail app.
# Handles all aspects of starting, maintaining, and stopping the various sync adapters for the email accounts.
# Is it only needed for the email stock app?
#"com.android.facelock"
# Essential if you wanna use Face Unlock features, removable if you don't want to.
"com.android.gallery3d"
# AOSP Gallery app.
#"com.android.gallery3d"
# Gallery app.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own Gallery app.
#"com.android.hotspot2"
# Provides wifi tethering (lets you share your mobile device's Internet connection with other devices)
# https://en.wikipedia.org/wiki/Tethering)
#"com.android.inputdevices"
# Only contains a receiver named "Android keyboard", possibly for an external keyboard.
@ -197,19 +241,46 @@ declare -a aosp=(
# https://developer.android.com/guide/topics/display-cutout
# https://source.android.com/devices/tech/display/display-cutouts
#"com.android.keychain"
# Enable apps to use system wide credential KeyChain (shared credentials between apps)
# https://security.stackexchange.com/questions/216716/android-keychain-what-is-a-system-wide-credential
#"com.android.internal.systemui.navbar.gestural"
# Gesture navigation
# Lets you use swipes and other actions to control your phone, rather than tapping on buttons.
# Option -> System -> Gestures -> System Navigation
# https://android-developers.googleblog.com/2019/08/gesture-navigation-backstory.html
#"com.android.internal.systemui.navbar.gestural_extra_wide_back"
#"com.android.internal.systemui.navbar.gestural_narrow_back"
#"com.android.internal.systemui.navbar.gestural_wide_back"
# Enables you to turn down the sensitivity to make it easier to perform gestures in apps (i.e. making back harder to trigger)
#"com.android.internal.systemui.navbar.threebutton" # 3-button navigation
#"com.android.internal.systemui.navbar.twobutton" # 2-button navigation
#"com.android.musicfx"
# Audio equalizer. Some 3-party music apps can use it to provide you equalizing features.
#"com.android.mms"
# AOSP SMS app.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own SMS app.
#"com.android.nfc"
# NFC service
#"com.android.ons"
# Opportunistic Network Service
# Opportunistic networks are networks which are formed when devices come into contact opportunistically through
# physical proximity, and communicate wirelessly to share each others content, resources and services.
# This kind of networks leads to a set of challenging issues (congestion, transfer ordering, and resilience)
# Basically, this package implements ions (asynchronous networking) to resolve these issues.
# Run in background after booting the phone.
# https://en.wikipedia.org/wiki/Opportunistic_mobile_social_network
#"com.android.otaprovisioningclient"
# OTA Access Point Configuration
# OTA (Over the air : https://fr.wikipedia.org/wiki/Over-the-air_programming) is the method used by OEM to push updates on
# your phone.
# An OTA access point is used to run system software updates over a special gateway. This package is most likely customized
# by your OEM.
#"com.android.pacprocessor"
# A PAC (Proxy Auto-Config) is a file which defines how an app can automatically define the correct proxy server for fetching an URL.
# Should be safe to remove if you don't use Auto-proxy (with PAC file config)
@ -217,6 +288,16 @@ declare -a aosp=(
#"com.android.phone.recorder"
# AOSP Call recorder function. Most of the time OEM use their own code for this.
# NOTE: On some phones, Huawei & Xiaomi also use this package name for their own closed-source recorder app.
#"com.android.printservice.recommendation"
# Used to discover and interact one or more printers via one or more protocols.
# You can remove it if you don't need to print directly from your phone.
#"com.android.printspooler"
# Print spooler. Manage the printing process.
# Safe to remove if you don't plan to print from your phone
# Note: Break connection preferences from the settings app on some phones (Pixel 4a / Android 11)
#"com.android.providers.blockednumber"
# Handles blocked numbers storage
@ -240,43 +321,89 @@ declare -a aosp=(
"com.android.quicksearchbox"
# Google quick search box.
#"com.android.settings.intelligence" # [MORE INFO NEEDED]
# Settings tips in Settings menu ?
# I don't have this in my phone. It for Android Pie. Can someone check ?
#"com.android.se" # [MORE INFO NEEDED]
# Underlying implementation for Open Mobile API SEService (OMAPI SE)
# Enables apps to use the OMAPI API to access secure elements (SE) to enable smart-card payments and other secure services.
#
# A SE is a special chip (e.g SIM-card) whose the main purpose is to store cryptographic secrets in such a way
# that illicit use is hard or impossible to do.
#
# FYI : The Open Mobile Alliance (OPA) is a standards organization which develops open standards for the mobile phone industry.
#"com.android.settings.intelligence"
# Setting search feature
# Note: Settings app may crash when searching for a setting if you removed this package (it depends on the phone)
# See https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/51
#"com.android.sharedstoragebackup"
# Used during backup. Fetch shared storage (files accessible by every apps with STORAGE permission)
# Things have changed with Android 10. Don't know if this package is still relevant for new phones.
# https://blog.mindorks.com/understanding-the-scoped-storage-in-android.
#"com.android.smspush" # [MORE INFO NEEDED]
# This service is used to push/send specially formatted SMS messages that display an alert message to the user,
# and give the user the option of connecting directly to a particular app.
# For instance, a SMS notifying the user he as a new e-mail, with a URL link to connect directly to the e-mail application
# https://web.archive.org/web/20200915164901/https://www.nowsms.com/doc/submitting-sms-messages/sending-wap-push-messages
#"com.android.systemui.theme.dark"
# Enables you to use Android dark theme.
#"com.android.theme.color.black"
#"com.android.theme.color.cinnamon"
#"com.android.theme.color.green"
#"com.android.theme.color.ocean"
#"com.android.theme.color.orchid"
#"com.android.theme.color.purple"
#"com.android.theme.color.space"
#"com.android.theme.font.notoserifsource"
#"com.android.theme.icon.roundedrect"
#"com.android.theme.icon.squircle"
#"com.android.theme.icon.teardrop"
#"com.android.theme.icon_pack.circular.android"
#"com.android.theme.icon_pack.circular.launcher"
#"com.android.theme.icon_pack.circular.settings"
#"com.android.theme.icon_pack.circular.systemui"
#"com.android.theme.icon_pack.circular.themepicker"
#"com.android.theme.icon_pack.filled.android"
#"com.android.theme.icon_pack.filled.launcher"
#"com.android.theme.icon_pack.filled.settings"
#"com.android.theme.icon_pack.filled.systemui"
#"com.android.theme.icon_pack.filled.themepicker"
#"com.android.theme.icon_pack.rounded.android"
#"com.android.theme.icon_pack.rounded.launcher"
#"com.android.theme.icon_pack.rounded.settings"
#"com.android.theme.icon_pack.rounded.systemui"
# Android themes / icons pack / fonts
#"com.android.timezone.updater"
# Time Zone Updater
# Automatically updates the clock to correspond to your current time zone
# This *may* causes a bootloop if removed. Timezone packages often causes that.
#"com.android.voicedialer"
# AOSP Voice dialer. Let's you call someone or open an app with your voice from the dialer.
# OEM often use their own code (embeded in their voice-controlled digital assistant)
# NOTE: On some phones Huawei & Xiaomi also use this package name for their own voice dialer app.
#"com.android.wallpaperpicker"
# Enables you to pick a wallpaper.
#"com.android.wallpaperbackup"
# Backup your wallapaper and load this backup instead of the original file in case you delete it.
# Safe to remove if you really want to.
#"org.simalliance.openmobileapi.service"
# Smart Card Service by Simalliance
# https://simalliance.org/about-us/mission-objectives/
#
# The SmartCard API is a reference implementation of the SIMalliance Open Mobile API specification that enables Android applications
# to communicate with Secure Elements, (SIM card, embedded Secure Elements, Mobile Security Card or others)
# https://github.com/seek-for-android/pool/wiki/SmartcardAPI
# Safe to remove if you don't think you need this
#"com.android.webview"
# AOSP webview
# It's a system component for the Android operating system (OS) that allows Android apps to display content
# from the web directly inside an application.
# This package is no longer used in recent phones as it was replaced by com.google.android.webview
#
# On open-source privacy oriented Webview is Bromite (https://www.bromite.org/system_web_view)
)
##################### DO NOT REMOVE THIS (will prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.android.certinstaller"
# Certificate installer. Identifies your device and confirms that it should be able to access something.
@ -284,7 +411,7 @@ declare -a aosp=(
#"com.android.companiondevicemanager"
# Companion Device Manager that comes by default in every Oreo+ device.
# This handles connections to other devices, like Bluetooth Headphones, desktop Operative Systems, ecc.
# This handles connections to other devices, like Bluetooth Headphones, desktop Operative Systems, ecc.
#"com.android.defcontainer"
# Package Access Helper
@ -293,9 +420,32 @@ declare -a aosp=(
#"com.android.documentsui" # Files picker
# Interface for apps wishing to access access files outside of their own storage area.
#"com.android.documentsui.a_overlay"
# DocumentsUI Overlay
# The DocumentsUI controls access to specific files for components that handle document permissions
# (such as attaching a file to an email)
# https://source.android.com/devices/architecture/modular-system/documentsui?hl=en
#"com.android.dynsystem"
# Dynamic System Updates
# Treble gived the ability to boot an AOSP Generic System Image (GSI) on any supported device.
# Dynamic System Updates allows to boot into a Generic System Image (GSI) without interfering with the current installation.
# That means the bootloader doesnt need to be unlocked and the user data doesnt need to be wiped.
# https://developer.android.com/topic/dsu
#"com.android.externalstorage"
# Needed by apps to access external storage (SD card)
#"com.android.keychain"
# Enable apps to use system wide credential KeyChain (shared credentials between apps)
# https://security.stackexchange.com/questions/216716/android-keychain-what-is-a-system-wide-credential
#"com.android.localtransport"
# Backup transport for stashing stuff into a known location on disk, and later restoring from there.
# Seems needed for storeing backup data locally on the device.
# This package also provides the backup confirmation UI.
# https://developer.android.com/guide/topics/data/testingbackup
#"com.android.location.fused"
# Manages the underlying location technologies, such as GPS and Wi-Fi.
@ -310,10 +460,11 @@ declare -a aosp=(
# Handles installation, upgrade, and removal of applications.
#"com.android.provision"
# Application that sets the provisioned bit, like SetupWizard does.
# Add a persistent setting to allow other apps to know the device has been provisioned.
# Provisioning is the process of setting up a network connection that will allow new users.
# This service is for exemple needed when the user's phone moves from one cell-tower to another.
#"com.android.phone"
#"com.android.phone.a_overlay"
# AOSP code for dialer app features
# SIM card will also not be detected if deleted.
@ -337,9 +488,10 @@ declare -a aosp=(
# https://android.stackexchange.com/questions/37195/why-are-there-two-settings-apps-settings-and-settings-storage
#"com.android.providers.telephony"
# [AOSP] Telephony provider. Handle access to telephony database.
# Telephony provider. Controls and stores phone-related data such as text messages, APN list, operation, etc.
#"com.android.server.telecom"
#"com.android.server.telecom.a_overlay"
# Management your calls via your network provider or SIM and controls the phone modem.
#"com.android.settings"

View file

@ -6,10 +6,20 @@ declare -a asus=(
# Asus calculator app
# NOTE : Simple calculator is a good alternative : https://f-droid.org/en/packages/com.simplemobiletools.calculator/
"com.asus.easylauncher"
# Asus Easy Mode (https://play.google.com/store/apps/details?id=com.asus.easylauncher)
# Alternative launcher with bigger icons and simpler interface
"com.asus.ia.asusapp"
# My Asus (https://play.google.com/store/apps/details?id=com.asus.ia.asusapp)
# Asus service center (support + store)
"com.asus.soundrecorder"
# Asus Sound recorder (https://play.google.com/store/apps/details?id=com.asus.soundrecorder)
# Asus Sound recorder (https://play.google.com/store/apps/details?id=com.asus.soundrecorder)
"com.asus.userfeedback"
# ZenUI Help (https://play.google.com/store/apps/details?id=com.asus.userfeedback)
# Customer service app that provides FAQs, Mobile care service, user feedback, and public forums.
# Lots of telemetry (insecure on top of that):
# https://beta.pithus.org/report/e80a1fa70adc097fc9817720b5c8c81cfd156a76e6d062759b2bc3d6937a97e7
)

View file

@ -16,6 +16,9 @@ declare -a us_carriers=(
#
# 3) Not a scandal but freaking scary :
# https://www.theverge.com/2019/5/22/18635674/att-location-ad-tracking-data-collection-privacy-nightmare
#
# 4) AT&T is selling your phone calls and text messages to marketers
# https://news.ycombinator.com/item?id=24756042
#
# Wikipedia pages are worth reading :
# https://en.wikipedia.org/wiki/AT%26T#Criticism_and_controversies
@ -26,9 +29,15 @@ declare -a us_carriers=(
# everything they can (big lobbying) to lock the internet and make more money.
# HELP ME : I got mad seeking for the meaning of VPL. A lot of people use it on Reddit (https://www.reddit.com/r/Bestbuy/search/?q=vpl&restrict_sr=1)
# and I'm sure it's the good abbreviation but I don't know what V.P.L means !! It seems to refer to a special job for vendors.
## Vocabulary ##
# VPL
# Stands for 'Vendor Provided Labor' (now 'Certified Advisor').
# They are basically ambassadors for a brand. Theorically the brand gives money to a store to hire an employee dedicated to better selling
# its brand. Some stores just use them as normal sales employees.
# See https://old.reddit.com/r/Bestbuy/comments/keclql/what_is_a_vpl/
# Theses ambassadors most likely have a phone with custom apps for demonstration purposes
# https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/40
# Example of package: "com.asurion.android.mobilerecovery.sprint.vpl
######################## T-Mobile ########################
@ -119,9 +128,10 @@ declare -a us_carriers=(
"com.verizon.messaging.vzmsgs"
# Verizon Messages (https://play.google.com/store/apps/details?id=com.verizon.messaging.vzmsgs)
"com.verizon.mips.services"
# "com.verizon.mips.services"
# My Verizon Services
# Related to My Verizon app.
# Tested to be required for hotspot.
"com.verizon.obdm" # [MORE INFO NEEDED]
"com.verizon.obdm_permissions"
@ -135,7 +145,7 @@ declare -a us_carriers=(
# Custom permissions for some verizon stuff ?
"com.verizon.vzwavs" # [MORE INFO NEEDED]
# ???
# Has a scary list of permissions in any case.
"com.verizontelematics.verizonhum"
# Hum Family Locator (https://play.google.com/store/apps/details?id=com.verizontelematics.verizonhum)
@ -393,6 +403,10 @@ declare -a us_carriers=(
# Spam call blocking app provided by Hiya
# NOTE : You should never trust spam blocking apps (https://itmunch.com/robocall-caught-sending-customers-confidential-data-without-consent/)
"com.att.csoiam.mobilekey"
# AT&T Sign in Helper (https://play.google.com/store/apps/details?id=com.att.csoiam.mobilekey)
# Allows AT&T applications to securely authenticate on Android devices
"com.att.dh"
# Device Help (https://play.google.com/store/apps/details?id=com.att.dh)
# Troubleshooting app.
@ -411,10 +425,6 @@ declare -a us_carriers=(
"com.att.mobiletransfer"
# AT&T Mobile Transfer
# Lets you transfert user data from an older AT&T phone to a new one.
"com.synchronoss.dcs.att.r2g"
# Setup & Transfer
# App for transferring "contacts, photos, videos, music, call logs, and documents" from another device
"com.att.myWireless"
# My AT&T (https://play.google.com/store/apps/details?id=com.att.myWireless)
@ -428,6 +438,12 @@ declare -a us_carriers=(
# AT&T Visual Voicemail (https://play.google.com/store/apps/details?id=com.att.mobile.android.vvm)
# Lets you manage your voicemail directly from the app without the need to dial into your mailbox.
"com.att.personalcloud"
# AT&T Personal Cloud (https://play.google.com/store/apps/details?id=com.att.personalcloud)
# Note: it's a paid extra feature and data are obviously not E2EE (i.e AT&T can access them)
# Don't keep this app. It's a privacy nightmare and was poorly coded:
# https://beta.pithus.org/report/bc54b5e2446ace90d9f992278d0ec320befe4983a76cb4fdcf47e565366e67b6
"com.att.tv"
# AT&T TV (https://play.google.com/store/apps/details?id=com.att.tv)
# Lets you Stream TV live and on demand from your phone.
@ -475,6 +491,14 @@ declare -a us_carriers=(
"com.samsung.attvvm"
# Visual Voicemail
# Simple GUI for voicemail
"com.sec.android.app.ewidgetatt"
# Entertainment Widget
# AT&T Widget for OneUI
"com.synchronoss.dcs.att.r2g"
# Setup & Transfer
# App for transferring "contacts, photos, videos, music, call logs, and documents" from another device
)
declare -a french_carriers=(

View file

@ -143,8 +143,16 @@ declare -a google=(
"com.google.android.apps.podcasts"
# Google Podcasts (https://play.google.com/store/apps/details?id=com.google.android.apps.podcasts)
"com.google.android.apps.restore"
# Restore apps during first boot.
"com.google.android.apps.restore"
# This is the backup restore wizard used for pulling Android system backups from your Google account.
# You only need this if you factory restore the phone, in which case its automatically reinstalled for you.
"com.google.android.apps.recorder"
# Google (audio) recorder (https://play.google.com/store/apps/details?id=com.google.android.apps.recorder)
"com.google.android.apps.setupwizard.searchselector"
# Most likely add a search bar to the setupwizard (com.google.android.setupwizard)
"com.google.android.apps.santatracker"
# Google Santa Tracker WTF ??? (https://play.google.com/store/apps/details?id=com.google.android.apps.santatracker)
@ -238,9 +246,6 @@ declare -a google=(
"com.google.android.onetimeinitializer"
# Provides first time setup, safe to remove.
"com.google.android.partnersetup"
# Software that helps other apps to work with Google products.
"com.google.android.play.games"
# Google Play Games (https://play.google.com/store/apps/details?id=com.google.android.play.games)
@ -252,8 +257,11 @@ declare -a google=(
"com.google.android.projection.gearhead"
# Android auto (https://play.google.com/store/apps/details?id=com.google.android.projection.gearhead)
"com.google.android.setupwizard"
# Removable after the first start of the phone, it's the basic configuration wizard that drives you through first boot.
"com.google.android.setupwizard"
"com.google.android.setupwizard.a_overlay"
"com.google.android.pixel.setupwizard"
# It's the basic configuration setup guides you through the basics of setting up Google features on your device.
# The second package is only present on Pixel phones.
"com.google.android.soundpicker"
# Google Sounds. Removable if you already have another media select service.
@ -351,34 +359,48 @@ declare -a google=(
# Device Health Services (discontinued ?)
# Calculates your remaining battery percentage based on your usage
# Reviews for this app were... funny (https://www.reddit.com/r/google/comments/ajnbmh/the_reviews_for_device_health_services_are_quite/)
# Note: this app needs com.google.android.gms
"com.google.android.apps.work.oobconfig" # [MORE INFO NEEDED]
# Needs internet to fetchs enterprise and carrier lock config via internet.
# Run in background and is triggered when a SIM card is added/removed/replaced.
# It also has Gcm receiver (Google Cloud Messaging receiver)
# Has a lot of permissions (16).
# Talks to websites which provide SSL certificates.
# Talks to websites providing SSL certificates.
# Needs Google Play Services to work.
# https://www.hybrid-analysis.com/sample/71bcaf2e71d78665fc5bc53db39df5309f24dd4ecab6402cf6ca20027dc6ecad?environmentId=200
#"com.google.android.carrierconfig" # [MORE INFO NEEDED]
# Provides network overrides for carrier configuration.
# The configuration available through CarrierConfigManager is a combination of default values, default network overrides,
# and carrier overrides. The default network overrides are provided by this service.
# What's the difference between com.android.carrierconfig and this package?
#"com.google.android.contacts"
# Google Contacts (https://play.google.com/store/apps/details?id=com.google.android.contacts)
#"com.google.android.dialer"
# Google Dialer (https://play.google.com/store/apps/details?id=com.google.android.dialer)
# It's not default but seriously, don't use the Google dialer there are Google Analytics embedded inside
# https://www.virustotal.com/gui/file/a978d90f27d5947dca33ed59b73bd8efbac67253f9ef7a343beb9197c8913d1a/details
"com.google.android.ext.services"
# Android Services Library only contains, for now, an "Android Notification Ranking Service."
# It sorts notifications by "importance" based on things like freshness, app type (IM apps come first), and by contact.
# For now it is safe to remove if you really want.
# The library android.ext.services is open-source but this apk is not. Google probably uses it to update its API without having to rely to the OEM
# https://arstechnica.com/gadgets/2016/11/android-extensions-could-be-googles-plan-to-make-android-updates-suck-less/
#"com.google.android.documentsui"
# Google File manager
"com.google.android.email"
# AOSP Mail client
# Does no longer exist. AOSP Mail is now com.android.email and Gmail is com.google.android.gm
"com.google.android.ext.shared"
## Google shared library (used to share common code between apps)
#"com.google.android.ext.shared"
# Google shared library (used to share common code between apps)
# For now the library (android.ext.shared is empty). So this apk is useless.
# This apk has the same role than the one above.
"com.google.android.tag"
# Support for NFC tags interactions (5 permissions : Contacts/Phone On by default).
# NFC Tags are for instance used in bus to let you validate your transport card with your phone
# Other exemple : https://en.wikipedia.org/wiki/TecTile
# You will still be able to connect to a NFC device (e.g a speaker) if removed.
#"com.google.android.GoogleCamera"
# Google Camera (https://play.google.com/store/apps/details?id=com.google.android.GoogleCamera)
@ -395,9 +417,18 @@ declare -a google=(
# IMPORTANT : You need to uncheck Find My Device from the "Device admin apps" settings panel to be able to uninstall this package
# Search "admin" in the settings search bar.
#"com.google.android.overlay.gmsconfig" # [MORE INFO NEEDED]
#"com.google.android.overlay.gmsgsaconfig"
# Probably RROs (https://source.android.com/devices/architecture/rros?hl=en) tied to "com.google.android.gms" (Google Play Services)
# If you remove com.google.android.gms you can remove those 2 packages as well.
"com.google.android.gms.location.history"
# Google Location history
# https://support.google.com/accounts/answer/3118687?hl=en
"com.google.android.gms.policy_sidecar_aps" # [MORE INFO NEEDED]
# Talks to Gmail.com and Google.com.
# Needs a Google Account and Google Paly Services to work correctly.
# Needs a Google Account and Google Play Services to work correctly.
# I don't know much more but it's sufficient to know you can debloat it.
# Given its name maybe it is related to Android auto?
# https://www.hybrid-analysis.com/sample/c710b66d043026007666966d933e3a1ed29720c5009764c01b5f056232a3518a?environmentId=200
@ -417,7 +448,7 @@ declare -a google=(
# Handles location services on older devices. On newer ones Google location services is part of Google Play Services and
# Android location service is provided by com.android.location.fused or com.android.location.
#"com.google.android.partnersetup"
"com.google.android.partnersetup"
# Enables applications to perform functionality that requires access to your Google account information
# Safe to remove if you don't have a Google account
@ -437,6 +468,12 @@ declare -a google=(
# Carrier Services (for Google phones) (https://play.google.com/store/apps/details?id=com.google.android.ims)
# IMS is an open industry standard for voice and multimedia communications over packet-based IP networks (Volte/VoIP/Wifi calling).
"com.google.audio.hearing.visualization.accessibility.scribe"
# Live Transcribe & Sound Notifications (https://play.google.com/store/apps/details?id=com.google.audio.hearing.visualization.accessibility.scribe)
# Provides push notifications for critical sounds around you. This feature can be helpful for people with hearing loss.
# https://blog.google/products/android/new-sound-notifications-on-android/
# Works offline
#"com.android.vending"
# Google Play Store app.
@ -461,8 +498,54 @@ declare -a google=(
)
##################### DO NOT REMOVE THIS (prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.google.android.captiveportallogin"
# Support for captive portal : https://en.wikipedia.org/wiki/Captive_portal
# A captive portal login is a web page where the users have to input their login information or accept the displayed terms of use.
# Some networks (typically public wifi network) use the captive portal login to block access until the user inputs
# some necessary information
# NOTE : This package is a now a mandatory mainline module (https://www.xda-developers.com/android-project-mainline-modules-explanation/)
#"com.google.android.modulemetadata"
# Module that contains ... metadata about the list of modules on the device. And thats about it.
# I wouldn't advise you to mess with it as it could break the proper working of other important modules (see #37)
# Good explanation of what android modules are : https://www.xda-developers.com/android-project-mainline-modules-explanation/
#"com.google.android.ext.services"
#"com.google.android.overlay.modules.ext.services"
# Android Services Library that contains an "Android Notification Ranking Service."
# It sorts notifications by "importance" based on things like freshness, app type (IM apps come first), and by contact.
# The library android.ext.services is open-source. Google probably uses it to update its API without having to rely to the OEM
# It is a mainline module and is needed to boot since Android 11! NO NOT REMOVE IT!
# https://source.android.com/devices/architecture/modular-system/extservices
# https://arstechnica.com/gadgets/2016/11/android-extensions-could-be-googles-plan-to-make-android-updates-suck-less/
#"com.google.android.networkstack"
# Network Stack Components
# https://source.android.com/devices/architecture/modular-system/networking
# Provides common IP services, network connectivity monitoring, and captive login portal detection.
#"com.google.android.networkstack.permissionconfig"
# Network Stack Permission Configuration
# Defines a permission that enables modules to perform network-related tasks.
# https://source.android.com/devices/architecture/modular-system/networking
#"com.google.android.packageinstaller"
#"com.google.android.packageinstaller.a_overlay"
# Gives ability to install, update or remove applications on the device.
# If you delete this package, your phone will probably bootloop.
# If you delete this package, your phone will probably bootloop.
#"com.google.android.permissioncontroller"
#"com.google.android.overlay.modules.permissioncontroller"
#"com.google.android.overlay.modules.permissioncontroller.forframework"
# The PermissionController module enables updatable privacy policies and UI elements.
# For example, the policies and UI around granting and managing permissions.
# https://source.android.com/devices/architecture/modular-system/permissioncontroller
#"com.google.mainline.telemetry"
# It's a set of metrics-related modules. Google Play uses the version of the Telemetry module to determine
# if updates are available for metrics-related modules and which security patch version to display to the end user.
# This module doesnt contain active code and has no functionality on its own.
# Removing modules-related packages may not be safe since Android 11
# https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/27#note_410012436

View file

@ -1,16 +1,37 @@
#!/usr/bin/env bash
declare -a huawei=(
# I NEVER HAD AN HUAWEI DEVICE ON HAND. THIS LIST WAS MADE POSSIBLE BY @REDSKULL23
# I NEVER HAD AN HUAWEI DEVICE ON HAND. THIS LIST WAS MADE POSSIBLE BY @REDSKULL23
# https://forum.xda-developers.com/honor-6x/how-to/guide-list-bloat-software-emui-safe-to-t3700814
# Yet, his documentation is not enough precise to me.
# I already made more intensive search on the web to complete it but I need Huawei users to really improve it.
# Additional informaton were taken from https://forum.xda-developers.com/huawei-p40-pro/how-to/adb-debloating-t4088633
# Yet, those documentations are not precise enough. If you have additional information, please contribute to this list
# I use [MORE INFO NEEDED] tag as a marker.
# If you have EMUI 10 or older, check the AOSP file, as Huawei uses AOSP package name for their own app.
"com.android.keyguard"
# HUAWEI magazine unlock (The package name is really confusing)
# It's a proprietary app based on the AOSP package called com.android.keyguard. That's not clever at all.
# https://consumer.huawei.com/en/support/content/en-us00206571/
# Lets you customize your lock screen wallpapers
"com.android.hwmirror"
# Mirror
# Lets you use your phone as a mirror...
"com.baidu.input_huawei"
# Woh! 51 permissions!
# Huawei chinese stock input keyboard.
#"com.bjbyhd.screenreader_huawei"
# An accessibility feature for visually impaired people
"com.hicloud.android.clone"
# Huawei Phone Clone (https://play.google.com/store/apps/details?id=com.hicloud.android.clone)
# 171 Permissions (https://reports.exodus-privacy.eu.org/fr/reports/144565/)
# Data migration application between Huawei phones.
# Keep in mind that all your data will be synchronised in the Huawei cloud and collected by the company.
# https://cloud.huawei.com/privacyStatementTransit
"com.huawei.android.chr"
# HwChrService
# Huawei Call History Record.
@ -29,6 +50,9 @@ declare -a huawei=(
# Mobile payment and e-wallet service for Huawei devices that offers the same services as Apple Pay, Samsung Pay etc...
# https://consumer.huawei.com/en/mobileservices/huawei-wallet/
"com.huawei.android.instantonline" # [MORE INFO NEEDED]
# no noticable consequences
"com.huawei.android.instantshare"
# Huawei Share features.
# File transfer tool between Huawei mobiles, using Bluetooth connection and WiFi Direct technology.
@ -40,6 +64,11 @@ declare -a huawei=(
# MirrorShare feature (Miracast rebranded by Huawei)
# Used to mirror screen of you smartphone on a TV.
"com.huawei.android.pushagent" # [MORE INFO NEEDED]
# push notification agent
# Seems to only be used for Huawei apps
# The recompiled java code makes it look like it's once again mainly used for analytics.
"com.huawei.android.remotecontroller"
# Huawei Smart Controller app.
# Lets you you add, customize, and set up remote controls, allowing control of your electronic appliances through your phone.
@ -49,11 +78,14 @@ declare -a huawei=(
# Periodically gives you notifications on how to use certain features on your phone.
"com.huawei.android.totemweather"
# Huawei Weather app.
"com.huawei.android.totemweatherapp"
"com.huawei.android.totemweatherwidget"
# Huawei Weather app (and its widget)
"com.huawei.android.wfdft"
"com.huawei.android.wfdirect"
# Wi-Fi Direct feature.
# Enables Wi-Fi Direct devices to establish a direct Wi-Fi connection over which the two can send and receive files.
# Note: Wifi direct enables devices to establish a direct Wi-Fi connection (without a router) over which the two can send and receive files.
"com.huawei.appmarket"
# Huawei app store (AppGallery)
@ -62,6 +94,12 @@ declare -a huawei=(
"com.huawei.arengine.service"
# Augmented reality service.
"com.huawei.bd"
# HwUE (Huawei UserExperience)
# When a company call a something 'UserExperience' you know you don't need this.
# Analytics service, run at boot. Collect information about packages/apps usages.
# Has a nice custom permission called com.huawei.permission.BIG_DATA
"com.huawei.bluetooth"
# Lets you import your contacts via Bluetooth
# Bluetooth will still work if you remove this package.
@ -69,16 +107,26 @@ declare -a huawei=(
"com.huawei.browser"
# Huawei Browser app.
"com.huawei.browserhomepage"
# Huawei Browser component.
"com.huawei.compass"
# Huawei Compass app.
"com.huawei.contactscamcard"
# CamCard is a business card reader app.
"com.huawei.contacts.sync" # [MORE INFO NEEDED]
# Huawei Contacts sync
# My guess (can't have the apk on hand) is this enables you to synchronise your contacts with your Huawei account.
"com.huawei.desktop.explorer" # [MORE INFO NEEDED]
# From XDA thread : "Service that is been used when you wanna use your phone as an operative system on a PC."
# I don't understand what does it mean.
"com.huawei.email"
# Huawei Email app.
"com.huawei.fido.uafclient"
# UAF client for FIDO.
# Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords.
@ -88,7 +136,10 @@ declare -a huawei=(
# The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device
# to the online service and using a local authentication mechanism such as iris or fingerprint recognition. .
# https://developers.google.com/identity/fido/android/native-apps
# Safe to remove if you don't use password-less authentification to access online servics
# Safe to remove if you don't use password-less authentification to access online servics.
"com.huawei.game.kitserver" # [MORE INFO NEEDED]
# Probably safe to remove if you don't play games
"com.huawei.gameassistant"
# Huawei Game Suite (HiGame).
@ -101,17 +152,39 @@ declare -a huawei=(
# A geofence is a virtual perimeter set on a real geographic area. Combining a user position with a geofence perimeter,
# it is possible to know if the user is inside or outside the geofence or even if he is exiting or entering the area.
"com.huawei.hwsearch"
# Petal Search widget. Used for finding apps/apks on serveral online sources (introduced after Google Mobile Services Ban).
"com.huawei.hwid"
# Huawei Mobile Services (https://play.google.com/store/apps/details?id=com.huawei.hwid)
# Needed to access advanced Huawei features.
# A Huawei ID is required to access services, like Themes, Mobile Cloud, HiCare, Huawei Wear, Huawei Health
"com.huawei.hiaction" # [MORE INFO NEEDED]
# no noticable consequences
"com.huawei.hiai" # [MORE INFO NEEDED]
# no noticable consequences
"com.huawei.hiassistantoversea"
# HiVoice. Huawei's voice assistant to replace "Hey Google"
"com.huawei.hicard" # [MORE INFO NEEDED]
# Huawei Cards, no noticable consequences
"com.huawei.hicloud"
# Huawei cloud features
"com.huawei.hifolder"
# Huawei Online Cloud folder service
# https://consumer.huawei.com/en/mobileservices/mobilecloud/
"com.huawei.himovie.overseas"
# Huawei video (https://play.google.com/store/apps/details?id=com.huawei.himovie.overseas)
#"com.huawei.hiview"
#"com.huawei.hiviewtunnel"
# This displays details/attributes of pictures in the gallery (ISO, exposure time, etc.).
"com.huawei.himovie.overseas"
# Huawei stock video application (https://play.google.com/store/apps/details?id=com.huawei.himovie.overseas). Replace with VLC, which integrates well with the stock gallery.
"com.huawei.hitouch"
# Huawei HiTouch
@ -120,11 +193,14 @@ declare -a huawei=(
"com.huawei.hwasm"
# FIDO UAF Autenthicator-Specific Module.
# See com.huawei.fido.uafclient for FIDO explaination.
# See 'com.huawei.fido.uafclient' for FIDO explaination.
# The UAF Authenticator-Specific Module (ASM) is a software interface on top of UAF authenticators which gives a standardized way for FIDO UAF clients
# to detect and access the functionality of UAF authenticators and hides internal communication complexity from FIDO UAF Client.
# Source : https://fidoalliance.org/specs/fido-uaf-v1.0-ps-20141208/fido-uaf-asm-api-v1.0-ps-20141208.html
"com.huawei.hwblockchain" # [MORE INFO NEEDED]
# probably blockchain related, no noticable consequences
"com.huawei.hwdetectrepair"
# Huawei Smart diagnosis (https://play.google.com/store/apps/details?id=com.huawei.hwdetectrepair)
# Useless features and run in background.
@ -132,6 +208,12 @@ declare -a huawei=(
#"com.huawei.HwMultiScreenShot"
# Scrolling screenshot feature
"com.huawei.hwstartupguide"
# A one-time setup app that is no longer needed
"com.huawei.hwvoipservice"
# MeeTime (https://consumer.huawei.com/en/support/content/en-us00956296/)
"com.huawei.iaware"
# App Prioritizer. Prioritizes apps to avoid slowdown
# Up to you but there is apparently no noticeable difference when deleted.
@ -139,6 +221,9 @@ declare -a huawei=(
"com.huawei.ihealth"
# MotionService package, it's required for actions like shaking the phone to shut off the alarm, ecc.
"com.huawei.intelligent"
# Huawei Assistant. Shopping recommendations
"com.huawei.health"
# Huawei Health (https://play.google.com/store/apps/details?id=com.huawei.health)
# Connect Huawei wearables to your phone and all sorts of stats like all fitness tracking apps.
@ -151,9 +236,19 @@ declare -a huawei=(
"com.huawei.livewallpaper.naturalgarden"
"com.huawei.livewallpaper.ripplestone"
"com.huawei.magazine"
# Magazine unlock. Downloads wallpapers for your lock screen.
"com.huawei.mirror" # [MORE INFO NEEDED]
# Huawei Mirror app.
# Mirror like "Glass" or "screen mirror" ?
# Mirror like "Glass"
"com.huawei.mirrorlink"
# Huawei mirrorlink implementation
# Used to connect your phone to a car (with https://mirrorlink.com/ support) in order to provide audio streaming, GPS navigation...
"com.huawei.music"
# Huawei Music app.
"com.huawei.parentcontrol"
# Parental controls functions.
@ -166,6 +261,9 @@ declare -a huawei=(
"com.huawei.phoneservice"
# HiCare (https://play.google.com/store/apps/details?id=com.huawei.phoneservice)
# Provides you common online services including customer services, issue feedback, user guides, service centers and self-service.
"com.huawei.scanner"
# AI Lens. Shop for objects that you take a picture of. This de-clutters the camera interface by removing the AI Lens button on the top left corner and does not break the AR Measure app.
"com.huawei.stylus.floatmenu"
# Floating menu with M-Pen feature.
@ -175,6 +273,10 @@ declare -a huawei=(
# Seems to be related to B2B (Business To Business) cloud stuff.
# https://www.huawei.com/en/press-events/news/2016/10/Cloud-Network-Synergy-Whitepaper
"com.huawei.tips"
# HUAWEI Feature Advisor
# Periodically gives you notifications on how to use certain features on your phone.
"com.huawei.trustagent" # [MORE INFO NEEDED]
# Smart unlock feature.
# Enables you to unlock your phone with a Bluetooth device, like a smart band.
@ -217,9 +319,24 @@ declare -a huawei=(
############################## ADVANCED DEBLOAT ##############################
#"com.hisi.mapcon"
# Provides wifi calling feature (call or text on Wi-Fi networks using your SIM card)
# NOTE: Instant messaging video/voice call does not use this "wifi calling" feature.
# Btw, you should use a E2EE messaging app like Signal/Session/Element(https://element.io/) instead of the non-secure wifi-calling feature
# provided by your carrier.
#"com.huawei.KoBackup"
# As of writing this, Huawei phones cannot be rooted.
# This Backup application is probably able to backup more than any other 3rd party backup app.
#"com.huawei.android.thememanager" # [MORE INFO NEEDED]
# Huawei Themes (https://play.google.com/store/apps/details?id=com.huawei.android.thememanager)
# Lets you use Huawei themes
# You should still be able to set wallapers without it. Can someone check?
#"com.huawei.aod" [MORE INFO NEEDED]
# Always On Display feature.
# Drain battery for nothing really useful.
# Drain battery (though not much on OLED screens) for nothing really useful.
# RedSkull23 says it's unsafe to remove it. Does it bootloop ?
#"com.huawei.android.internal.app" # [MORE INFO NEEDED]
@ -232,14 +349,27 @@ declare -a huawei=(
# DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER !
# You will maybe need this package for the recent apps feature to work (even if you have another launcher)
#"com.huawei.calculator"
# Huawei Calculator app.
#"com.huawei.calendar"
# Huawei Calendar app.
#"com.huawei.contacts"
# Huawei Contacts app
#"com.huawei.deskclock"
# Huawei Clock App.
#"com.huawei.photos"
# Huawei Gallery app.
# Note: The official camera app refuses to open photos in another gallery (you can't review your picture from the camera app)
#"com.android.mediacenter"
# Huawei music app. (Yeah they messed up with the package name)
#"com.huawei.screenrecorder"
# Huawei Screen recorder feature (with internal mic record toggle)
#"com.hisi.mapcon"
# Involved in Wifi Calling. Safe to remove if you don't use this.
#"com.huawei.hidisk"
# Huawei File Manager app.
@ -248,11 +378,18 @@ declare -a huawei=(
# HiSearch
# Allows you to search through settings, files, contacts and notes while keeping a record of your search history.
# Hi Search is really annonying because it's triggered as soon as you wipe down from the middle part of the home.
#"com.huawei.securitymgr" # [MORE INFO NEEDED]
# PrivateSpace
# Lets you store private information in a hidden space within your device that can only be accessed
# with your fingerprint or password.
# TODO: Data at rest encryption? If not, this is useless
# https://consumer.huawei.com/en/support/content/en-us00754246/
)
##################### DO NOT REMOVE THIS (will prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
# "com.huawei.systemmanager"
# Huawei System Manager app
# Manage apps behavior and authorize them to run (or not) in background.
# Manage apps behavior and authorize them to run (or not) in background.

View file

@ -32,7 +32,7 @@ declare -a lge=(
"com.lge.drmservice"
# DRM Service
# Use to support DRM content playback. It manages the DRM Client, which holds a particular type of information required to get a license key.
# Needed to read DRM content playback. It manages the DRM Client, which holds a particular type of information required to get a license key.
# REMINDER : DRM = all the things that restrict the use of proprietary hardware and copyrighted works.
# ==> https://en.wikipedia.org/wiki/Digital_rights_management
# ==> https://creativecommons.org/2017/07/09/terrible-horrible-no-good-bad-drm/
@ -475,8 +475,3 @@ declare -a lge=(
# Does not remove screen pinning feature.
# I don't know if this removes the floating windows feature that you have to enable with ADB (to make it look more like a desktop)
)
# TODO :
# Find the main Q-voice package.
# Add more packages.

View file

@ -6,7 +6,6 @@
# and I'm sure it's the good abbreviation but I don't know what V.P.L means !! It seems to refer to a special job for vendors.
declare -a amazon=(
"com.amazon.appmanager"
# Mobile Device Information Provider
# Seems related to Kindle
@ -117,7 +116,30 @@ declare -a microsoft=(
)
declare -a qualcomm=(
#################################
# CAF (Code Aurora Forum) is a place where source code is released by Qualcomm.
# These are Qualcomm's reference sources for their platform. This is what they provide to OEMs
# and what nearly all OEMs base their software off of. Usually when Google starts working on an upcoming Android version,
# they'll merge CAF repo.
# Packages below are installed by OEM when they need device-specific patches not merged in AOSP yet.
"com.caf.fmradio"
# https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/fm/tree/fmapp2/src/com/caf/fmradio
"org.codeaurora.gps.gpslogsave"
# Saves GPS logs.
#"org.codeaurora.bluetooth"
# https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/bluetooth
#"org.codeaurora.ims"
# IMS is an open industry standard for voice and multimedia communications over packet-based IP networks (Volte/VoIP/Wifi calling)
# This his package is needed for the Volte/VoIP/Wifi calling provided by your carrier.
# This is not needed by messaging apps (Signal, Telegram, WhatsApp...)
#################################
# QTI = Qualcomm Technologies Inc
# quicinc = Qualcomm Innovation Center, Inc.
# Qualcomm is an American multinational semiconductor and telecommunications equipment company
# that designs and markets wireless telecommunications products and services.
# Qualcomm tracking : https://forum.fairphone.com/t/telemetry-spyware-list-of-privacy-threats-on-fp3-android-9/55179/20
@ -131,6 +153,13 @@ declare -a qualcomm=(
# It most likely does something to colors on your display. Can someone see the difference ? Is it accessbility feature ?
# Needed for Blue screen feature ?
"com.qti.confuridialer"
# Conference URI dialer
# Lets you call someone using SIP-URI/IMS (https://en.wikipedia.org/wiki/SIP_URI_scheme)
# It's Voice over IP but using SIP (https://en.wikipedia.org/wiki/Session_Initiation_Protocol)
# I can assure you that all your messaging apps doesn't use this. It is used by carriers for their wifi-calling stuff.
# This package in particular could be used if you activate the SIP call option from your dialer.
"com.qti.snapdragon.qdcm_ff" # [MORE INFO NEEDED]
# Qualcomm Display Color Management tool
# Works in background and "enhance" the displays appearance through an intelligent color adjustment and gamut-mapping system
@ -144,6 +173,15 @@ declare -a qualcomm=(
# Qualcomm's WiFi display. It allows you to mirror your devices display on a TV
# Seems to be used by Mircast. Need to be confirmed tho.
#"com.qualcomm.cabl"
# Content Adaptative Backlight Settings
# CABL will try to adjust the image being displaye by changing the contrast/quality/image backlight depending on
# the content on the screen.
# Downside to this is loss of dynamic range which results in some colors being washed out/clipped.
# CABL != Auto brightness (which doesn't change the content of the screen, only the brightness)
# NOTE: You may want to remove this. It does not work very well on many phones
# https://mobileinternist.com/disable-adaptive-brightness-android
"com.qualcomm.embms"
# Run in background.
# I guess it add support to LTE Broadcast or eMBMS (evolved Multimedia Broadcast Multicast Service)
@ -161,7 +199,7 @@ declare -a qualcomm=(
"com.qualcomm.location"
# May enable your device to determine its location more quickly and accurately, even when your device is unable to get a strong GPS signal.
# **May** also help your device conserve battery power when you use applications or services requiring location data
# It will eriodically downloads data to your device regarding the locations of nearby cellular towers and WiFi access points
# It will periodically downloads data to your device regarding the locations of nearby cellular towers and WiFi access points
#
# Qualcomm Location periodically sends a unique software ID, the location of your device (longitude, latitude and altitude, and its uncertainty)
# and nearby cellular towers and Wi-Fi hotspots, signal strength, and time (collectively, “Location Data”) to Qualcomm servers.
@ -173,10 +211,26 @@ declare -a qualcomm=(
# FYI : ril = Radio Interface layer. It's the bridge between Android phone framework services and the hardware.
# There is no noticeable immediate consequences after disabling it but it'd better to know more about.
"com.qualcomm.uimremoteclient" # [MORE INFO NEEDED]
# UIM Remote client
# When you see "remote" in a package name you can try to delete it.
# See "com.qualcomm.qti.uim" for more information.
"com.qualcomm.simcontacts" # [MORE INFO NEEDED]
# Sim Contacts
# Safe to remove.
# I don't exactly know what's the purpose of this package. Import/Export tool?
#"com.qualcomm.svi" # [MORE INFO NEEDED]
# SVI Settings
# Sunlight Visibility Improvement
# I'm pretty sure it relies on com.qualcomm.cabl (can someone confirm?) to improve content visibility in sunlight.
# You need to activate the Sunlight Mode in the quick settings menu
#"com.qualcomm.uimremoteserver" # [MORE INFO NEEDED]
# UIM Remote Server
# UIM = User Identiy Module
# Given its name I don't think it is a mandatory and pertinent feature. Can someone test?
#"com.qualcomm.wfd.service" # [MORE INFO NEEDED]
# Wifi Display
# Provides a way to cast your screen to your TV (support for Miracast)
# https://en.wikipedia.org/wiki/Miracast
"com.qualcomm.qti.auth.fidocryptoservice"
# Qualcomm FIDO implementation.
@ -185,18 +239,68 @@ declare -a qualcomm=(
# https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html
# https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html
"com.qualcomm.qti.autoregistration"
# Collect device activation data to remotely activate a phones warranty
# FYI : In 2019 this package was sending private data (IMEI, CELLID , CCID) in CLEAR text to zzhc.vnet.cn (chinese server).
# According to HMD (Nokia) it was a mistake :
# https://www.androidauthority.com/nokia-7-plus-user-info-967901/
#"com.qualcomm.qti.callenhancement"
# Supposed to enhance call quality (I let you test if it really does)
# FYI : This app can record all your phone call
# A vulnerability was found in 2019, allowing unauthorized microphone audio recording by 3rd-party apps.
# https://nvd.nist.gov/vuln/detail/CVE-2019-15472
"com.qualcomm.qti.callfeaturessetting" # [MORE INFO NEEDED]
# Not mandatory (according to XDA users)
# Can someone explain what feature does this package add?
"com.qualcomm.qti.confdialer" # [MORE INFO NEEDED]
# ConfDialer
# LTE Conferencing Service
# How to use this feature? It is nowhere explained.
"com.qti.dpmserviceapp" # [MORE INFO NEEDED]
# Usually, for android DPM = Device Policy Manager
# But I found someone in a russian forum saying it's a service for playing digital rights protected (DRM) Content.
# I decompiled the app but that didn't help me to understand what this package really do. There isn't much code and it often
# logs stuff.
# https://ru.c.mi.com/forum.php?mod=viewthread&tid=1861371
"com.qualcomm.qti.networksetting"
# Network operators (hidden settings menu)
# Lets you select network modes like GSM only, WCDMA only, LTE only etc, toggle VoLTE On/Off...
"com.qualcomm.qti.optinoverlay" # [MORE INFO NEEDED]
# Overlay for something but what...
# (nothing useful in any case)
#"com.qualcomm.qti.qms.service.trustzoneaccess"
# Handles access to the Qualcomm/ARM Trustzone?
# You may not need Qualcomm Trustzone if you don't used OEM trusted apps.
# See com.trustonic.tuiservice
"com.qualcomm.qti.perfdump"
# Performance dump (logging)
# Enable a more accurate overview of the running services (and maybe how much power/RAM they take?)
#"com.qualcomm.qti.qms.service.connectionsecurity" # [MORE INFO NEEDED]
# ?????
"com.qualcomm.qti.qms.service.connectionsecurity" # [MORE INFO NEEDED]
# Telemetry service
# qms = quality management service
# Background-Connection to tls.telemetry.swe.quicinc.com (Host/Domain belongs to Qualcomm)
"com.qualcomm.qti.qms.service.telemetry"
# Telemetry service.
# Yeah obviously it phones to Qualcomm.
"com.qualcomm.qti.qtisystemservice" # [MORE INFO NEEDED]
# Seems to only log stuff related to telephony
# A user removed this without noticing any issues
"com.qualcomm.qti.roamingsettings" # [MORE INFO NEEDED]
# Hidden settings menu
# Lets to tweak roaming settings (How to access this settings?)
"com.qualcomm.qti.rcsbootstraputil"
"com.qualcomm.qti.rcsimsbootstraputil" # [MORE INFO NEEDED]
# RCS Service
@ -228,6 +332,12 @@ declare -a qualcomm=(
# It maybe keeps the real time clock in the Qualcomm processor synchronised with Android time.
# Seems not safe to remove.
"com.qti.xdivert" # [MORE INFO NEEDED]
# Smart-Divert
# If enabled, diverts your calls to another number.
# You can choose to divert all calls, divert on no reply or divert when the line is busy.
# Where can you enable/disable this feature?
"com.quicinc.cne.CNEService"
# Qualcomm service
# Automatically switchs between Wifi/3G/4G depending on network performances.
@ -260,10 +370,9 @@ declare -a qualcomm=(
#"com.qualcomm.qti.simsettings" # [MORE INFO NEEDED]
# Obviously related to SIM settings
"com.qualcomm.qti.telephonyservice" # [MORE INFO NEEDED]
# Sincerely I don't know what it is.
# It runs in background.
# It seems there is no issue with telephony if removed. I need to keep an eye on this.
#"com.qualcomm.qti.telephonyservice"
# Sound processing during phonecalls
# You absolutely need this package.
#"com.qualcomm.qti.telephony.vodafonepack" # [MORE INFO NEEDED]
# Related to Vodafone Prepaid Recharge Plan
@ -274,7 +383,7 @@ declare -a qualcomm=(
"com.qualcomm.qti.uim"
# Related to RUIM I guess. It is a kind of SIM card
# https://en.wikipedia.org/wiki/Removable_User_Identity_Module
# Still used in China it seems.
# Still used in China it seems.
"com.quicinc.fmradio"
# quicinc = Qualcomm Innovation Center
@ -308,7 +417,7 @@ declare -a misc=(
# Kind of GPS that helps you find Point of interest (POI) like hotels, restaurants, and car repair facilities from the AAA databases.
# NOTE : Youll have to sign up for an AAA membership to enjoy all of the features and functionality of the Android app.
# AAA = American Automobile Association
"com.aspiro.tidal.vpl" # for VPL mobiles/employees ?
"com.aspiro.tidal"
# Tidal Music (https://play.google.com/store/apps/details?id=com.aspiro.tidal)
@ -332,12 +441,6 @@ declare -a misc=(
# https://blog.usejournal.com/why-i-would-never-trust-booking-com-again-so-you-should-too-a2ab535ed915?gi=7ebe86eaa880
# https://ro-che.info/articles/2017-09-17-booking-com-manipulation
"com.caf.fmradio"
# caf = CodeAurora Forum, a Linux Foundation Collaborative Project (https://www.codeaurora.org/)
# All their code is open-source.
# Provides tools to access FM radio.
# OpenSource : https://source.codeaurora.org/quic/la/platform/vendor/qcom-opensource/fm/tree/fmapp2/src/com/caf/fmradio
"com.cequint.ecid"
# Caller ID from Cequint (https://www.cequint.com/)
# https://www.fiercewireless.com/wireless/t-mobile-to-launch-caller-id-service-from-cequint
@ -478,6 +581,14 @@ declare -a misc=(
# AppCloud (discontinued) from ironSource, an advertising company.
# Worth reading : https://en.wikipedia.org/wiki/IronSource.
"com.ironsource.appcloud.oobe.huawei"
# Essentials apps
# App who promotes some other apps (and encourages you to install them)
# This is developped by IronSource, a "next-generation advertising company"
# https://aura.ironsrc.com/ (app) | https://company.ironsrc.com/ (company)
# When you try to read their privacy policy you arrive to an outstanding blank PDF file!
# (http://www.ironsrc.com/wp-content/uploads/2019/03/ironSource-Privacy-Policy.pdf)
"com.king.candycrush4"
# Candy Crush Friends Saga (https://play.google.com/store/apps/details?id=com.king.candycrush4)
@ -523,7 +634,13 @@ declare -a misc=(
# Opera Mini web browser (https://play.google.com/store/apps/details?id=com.opera.mini.native)
"com.opera.preinstall"
# It seems to be Opera Max Data saving (discontinued)
# Opera Preinstall Data
# Generate utm tracking stuff
"com.opera.max.oem"
"com.opera.max.preinstall"
# Opera Max (discontinued)
# System-wide data-saving proxy that funnell all app data through Operas servers to compress images and videos
"com.particlenews.newsbreak"
# News Break: Local & Breaking (https://play.google.com/store/apps/details?id=com.particlenews.newsbreak)
@ -571,6 +688,12 @@ declare -a misc=(
# Note : Sprint sold Pinsight to InMobi in 2018.
# https://www.fiercewireless.com/wireless/sprint-sells-mobile-ad-biz-pinsight-media-to-inmobi
"com.realvnc.android.remote"
# Remote controle service by Realvnc (https://en.wikipedia.org/wiki/RealVNC)
# https://www.realvnc.com/en/legal/#privacy
# Not sure having a remote control app installed as a system app is a good idea
# This application is no longer maintained, besides.
"com.remotefairy4"
# AnyMote Universal Remote + Wifi Smart Home Control (https://play.google.com/store/apps/details?id=com.remotefairy4)
# IR Remote control app
@ -602,6 +725,10 @@ declare -a misc=(
# HomeAdvisor collects users data when a request is made and then sells that data to local contractors in exchange for money.
# Worth Reading : https://en.wikipedia.org/wiki/HomeAdvisor#Critism
"com.setk.widget"
# Galaxy Bizz (https://play.google.com/store/apps/details?id=com.setk.widget)
# Useless app that recommands you stuff to do/buy nearby your area
"com.sharecare.askmd"
# AskMD (discontinued) provided by Sharecare
# Symptom checker app. Lets you see what might be causing your symptoms and helps you find a nearby physician
@ -648,15 +775,12 @@ declare -a misc=(
# India News (https://play.google.com/store/apps/details?id=com.til.timesnews)
#"com.touchtype.swiftkey"
#"com.touchtype.swiftkey.res.overlay"
# Swiftkey Keyboard (https://play.google.com/store/apps/details?id=com.touchtype.swiftkey)
# Keyboard app developed by TouchType, a Microsoft subsidiary (https://en.wikipedia.org/wiki/SwiftKey)
# Sends "anonymous" to Microsoft.
# 4 Trackers + 11 Permissions : https://reports.exodus-privacy.eu.org/en/reports/com.touchtype.swiftkey/latest/
# NOTE : default keyboard on some Nokia phones
#"com.touchtype.swiftkey.res.overlay"
# Overlay for Swiftkey keyboard.
# REMINDER : A screen overlay in Android, also referred to as “Draw On Top”, allows an app to display content over another app
# NOTE : default keyboard on some Nokia and Huawei phones
"com.tracker.t"
# WTF is this ?? Given its name I think you can take the risk to delete it.
@ -689,7 +813,6 @@ declare -a misc=(
# UME Web Browser (https://play.google.com/store/apps/details?id=com.ume.browser.northamerica)
# Trackers and a LOT of permissions (https://reports.exodus-privacy.eu.org/en/reports/com.ume.browser.cust/latest/)
"com.vlingo.midas"
# Speech recognition app forthe personal assistant by Vlingo
# Vlingo : https://en.wikipedia.org/wiki/Vlingo
@ -755,14 +878,17 @@ declare -a misc=(
"net.sharewire.parkmobilev2"
# ParkMobile - Find Parking (https://play.google.com/store/apps/details?id=net.sharewire.parkmobilev2)
"org.codeaurora.gps.gpslogsave"
# CodeAurora Forum is a Linux Foundation Collaborative Project (https://www.codeaurora.org/). All their code is open-source.
# According to its name, it only saves GPS logs.
"pl.zdunex25.updater"
# Updater for the zdnex25's theme
# https://www.deviantart.com/zdunex25/gallery/26889741/themes
"org.codeaurora.ims"
# CodeAurora Forum is a Linux Foundation Collaborative Project (https://www.codeaurora.org/). All their code is open-source.
# IMS is an open industry standard for voice and multimedia communications over packet-based IP networks (Volte/VoIP/Wifi calling)
# There is high chances this package is needed for Volte/VoIP/Wifi calling.
#"se.dirac.acs"
# Earphone audio quality improvement from the Swedish company Dirac.
# The technology relies on impulse and magnitude frequency response correction to deliver a more dynamic soundstage,
# even when connected to budget headphones.
# The goal is to improve overall sound clarity and bass fidelity while correcting the frequency response so as to deliver a flat curve.
# Can be disabled in Settings/Additional settings/Headphone and audio effects (to try to hear the difference)
# https://www.androidcentral.com/heres-how-dirac-enabling-xiaomi-create-better-audio-products
"tv.fubo.mobile.vpl"
# fuboTV (https://play.google.com/store/apps/details?id=tv.fubo.mobile)
@ -800,28 +926,41 @@ declare -a misc=(
# ANT Radio Service (https://play.google.com/store/apps/details?id=com.dsi.ant.service.socket)
# it is NOT related to Radio FM !
"co.sitic.pp"
# Designed to remotely lock the phone (by sending a simple SMS) in case you don't pay your bill
# https://www.reddit.com/r/Android/comments/fde3l6/3rd_party_telemetry_found_in_nokia_smartphones/fjh4zbx/?context=3
# This app was preinstalled on phone not served by that carrier (América Móvil) from South America.
# Normally you should not have this app anymore because it was removed by Nokia during an Android 10 update.
##### TEE #####
"com.gd.mobicore.pa"
# TODO: Could removing these packages have an impact on Password/fingerprint/face/iris security?
#"com.gd.mobicore.pa"
# Mobicore is now Trustonic
# Trustonic is a small OS running on the CPU providing a TEE, an isolated environment that runs in parallel
# with the operating system, guaranteeing code and data loaded inside to be protected.
# That's sound great but it's closed source and "normal" devs can't use it for their apps.
# See "com.trustonic.tuiservice"
"com.trustonic.tuiservice"
#"com.trustonic.teeservice"
# TEE = Trusted Execution Environment
# See below
#"com.trustonic.tuiservice"
# The tuiService (Trusted User Interface) is a new security layer implemented by Trustonic.
# Allows a Trusted Application to interact directly with the user via a common display and touch screen, completely isolated from the main device OS.
# Seems like a good idea but it's closed source and "normal" devs can't use it for their apps.
# https://stackoverflow.com/questions/16909576/how-to-make-use-of-arm-trust-zone-in-android-application
# It is basically only used by manufacter sapps like Samsung Pay and for DRM stuff.
# It is basically only used by manufacturer apps like Samsung Pay and for DRM stuff.
# Google implemented their own TUI in Android Pie : https://android-developers.googleblog.com/search/label/Trusted%20User%20Interface
#
# https://www.trustonic.com/news/blog/benefits-trusted-user-interface/
# https://en.wikipedia.org/wiki/Trusted_execution_environment
#
# If you're wondering, deleting this package will not cause security issues and will not break ARM TrustZone. It will break Trustonic TEE for sure
# If you're wondering, deleting theses packages will not cause security issues. It will break Trustonic TEE for sure
# but if you don't use Trusted Apps. You won't need this !
# Deleting this **may** reduce attack surface because yeah, Trustonic TEE isn't foolproof (as it was claimed)
# Deleting this **may** reduce attack surface if your phone still has Trusted apps... because yeah, Trustonic TEE isn't foolproof (as it was claimed)
# https://en.wikipedia.org/wiki/ARM_architecture#Security_extensions
# https://googleprojectzero.blogspot.com/2017/07/trust-issues-exploiting-trustzone-tees.html
# https://www.synacktiv.com/posts/exploit/kinibi-tee-trusted-application-exploitation.html
@ -835,4 +974,118 @@ declare -a misc=(
#
# NOTE : Trustonic TEE (called Kinibi) is used in Samsung, Vivo, Oppo, Xiaomi, Meizu and LG devices.
##### SIMALLIANCE (now Trusted Connectivity Alliance) #####
# Non-profit trade association that aims at creating secure, open and interoperable mobile services.
# https://trustedconnectivityalliance.org/introduction/
#"org.simalliance.openmobileapi.uicc1terminal"
#"org.simalliance.openmobileapi.uicc2terminal"
# Open Mobile API ("interface") to access UICC secure elements
# UICC stands for Universal Integrated Circuit Card.
# It is a the physical and logical platform for the USIM and may contain additional USIMs and other applications.
# (U)SIM is an application on the UICC.
# https://bluesecblog.wordpress.com/2016/11/18/uicc-sim-usim/
# Good read: https://arxiv.org/ftp/arxiv/papers/1601/1601.03027.pdf
# Note2: The term SIM is widely used in the industry and especially with consumers to mean both SIMs and UICCs.
# https://www.justaskgemalto.com/us/what-uicc-and-how-it-different-sim-card/
#"org.simalliance.openmobileapi.service"
# Smart Card Service
#
# The SmartCard API is a reference implementation of the SIMalliance Open Mobile API specification that enables Android applications
# to communicate with Secure Elements, (SIM card, embedded Secure Elements, Mobile Security Card or others)
# https://github.com/seek-for-android/pool/wiki/SmartcardAPI
# Safe to remove if you think you don't need this
)
declare -a mediatek=(
#"com.mediatek" # [MORE INFO NEEDED]
# Mediatek is a Taiwanese chipset manufacturer.
# Can someone share the apk? This package name is really weird.
# It is most likely a set of general APIs for accessing general mediatek functionalities.
# Can someone share the apk?
"com.mediatek.atmwifimeta"
# wifi data logger you don't want.
#"com.mediatek.callrecorder" # [MORE INFO NEEDED]
# This is not the kind of feature expected from a Soc company.
# If you remove this I guess you will not be able to record your calls from the stock dialer
# Can someone share the apk and verify this?
"com.mediatek.engineermode"
# Enigneer mode you can access by dialing a secret code (*#*#3646633#*#* on some Xiaomi phones for instance)
# It enables you to access to debug/logged data and some hidden firmware settings.
#"com.mediatek.gpslocationupdate" # [MORE INFO NEEDED]
# I wonder if it is really only a logging app.
# Can someone try to remove it and use a GPS app to see it still works?
# Can someone share the apk? (from a Xiaomi/Huawei phone)
#"com.mediatek.location.lppe.main"
# LPPE = LTE Positioning Protocol enhancements/extensions (LTE = "4G")
# Positioning and assistance protocol between E-SMLC (mobile location center) and UE (User Equipement = phone)
# https://www.gpsworld.com/wirelessexpert-advice-positioning-protocol-next-gen-cell-phones-11125/
# I don't know the app has the permission to read SMS
#"com.mediatek.ims" # [MORE INFO NEEDED]
# Mediatek's implementation of IMS
# https://www.programmersought.com/article/50164530665/
# Note: IMS is an open industry standard for voice and multimedia communications over packet-based IP networks (Volte/VoIP/Wifi calling).
# Unless you use VolTE (wifi calling) or RCS from Google or your carrier you don't need IMS.
# I'm also not sure to understand the purpose of this package because there already is "com.google.android.ims" on the phone.
# Can someone remove this package and test if IMS still works?
"com.mediatek.mdmconfig" # [MORE INFO NEEDED]
# Mobile Device Management (MDM) allows companys IT department to reach inside your phone in the background, allowing them to ensure
# your device is secure, know where it is, and remotely erase your data if the phone is stolen.
# It's a way to ensure employees stay productive and do not breach corporate policies
# You should NEVER have a MDM tool on your personal phone. Never.
# https://blog.cdemi.io/never-accept-an-mdm-policy-on-your-personal-phone/
# This package probably isn't a MDM tool on its own but you definitively don't need it on your phone.
# Can someone share the apk?
"com.mediatek.mtklogger"
# Logs debug data. Has a lot of permissions and run in background all the time.
# Don't keep useless apps: reduce the attack surface
# Vulnerability found in this app in 2016: https://nvd.nist.gov/vuln/detail/CVE-2016-10135
#"com.mediatek.nlpservice" # [MORE INFO NEEDED]
# Mediatek Network Location Provider
# Provides periodic reports on the geographical location of the device. Each provider has a set of criteria under which it may be used.
# For example, some providers require GPS hardware and visibility to a number of satellites others require the use of
# the cellular radio, or access to a specific carrier's network, or to the internet.
# They may also have different battery consumption characteristics or monetary costs to the user.
#
# I don't really understand why you would need this as there is already one in 'com.google.android.gms'
# I wonder if NLP can be replaced by https://github.com/microg/UnifiedNlp
# I suggest to test if you get a better signal/battery performance with Mediatek NLP, if not you can get rid of it.
#"com.mediatek.omacp"
# omacp = OMA Client Provisioning. It is a protocol specified by the Open Mobile Alliance (OMA).
# Configuration messages parser. Used for provisioning APN settings to devices via SMS
# In my case, it was automatic and I never needed configuration messages.
# Maybe it's useful if carriers change their APN. But you still can change the config manually, it's not difficult.
# Dunno why Mediatek handles this kind of things. Safe to remove. At worst, you'll need to manually config your APN.
# Note: OMACP can be abused. Be careful:
# https://research.checkpoint.com/2019/advanced-sms-phishing-attacks-against-modern-android-based-smartphones/
# https://www.zdnet.com/article/samsung-huawei-lg-and-sony-phones-vulnerable-to-rogue-provisioning-messages/
"com.mediatek.providers.drm"
# DRM provider (actually Beep Science is the MediaTeks default DRM vendor)
# You probably need this if you want to watch Netflix & others stuff in high-res
# REMINDER : DRM = all the things that restrict the use of proprietary hardware and copyrighted works.
# ==> https://en.wikipedia.org/wiki/Digital_rights_management
# ==> https://creativecommons.org/2017/07/09/terrible-horrible-no-good-bad-drm/
# ==> https://fckdrm.com/
# ==> http://www.info-mech.com/drm_flaws.html
"com.mediatek.wfo.impl"
# According to olorin (https://www.olorin.me/2019/09/08/debloating-the-umidigi-f1-play/)
# it's the MediaTeks default fingerprint app (and he removed it)
# Can someone confirm what does this package exactly do?
# Remember that any preinstalled apps you don't actually need just increase the surface attack.
# Vulnerability found in 2019: https://nvd.nist.gov/vuln/detail/CVE-2019-15368
# Any app co-located on the device could modify a system property through an exported interface without proper authorization.
)

View file

@ -317,7 +317,10 @@ declare -a motorola=(
#"com.motorola.VirtualUiccPayment"
# Virtual UICC Payment
# UICC stands for Universal Integrated Circuit Card. It is a new generation SIM (Subscriber Identification Module) which can have multiple applications on it.
# UICC stands for Universal Integrated Circuit Card.
# It is a the physical and logical platform for the USIM and may contain additional USIMs and other applications.
# (U)SIM is an application on the UICC.
# https://bluesecblog.wordpress.com/2016/11/18/uicc-sim-usim/
# I guess this package provides support for NFC payement.
# Note: The term SIM is widely used in the industry and especially with consumers to mean both SIMs and UICCs.
# https://www.justaskgemalto.com/us/what-uicc-and-how-it-different-sim-card/
@ -334,7 +337,7 @@ declare -a motorola=(
)
##################### DO NOT REMOVE THIS (will prevent core stuff to work) #####################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.motorola.android.providers.settings"
# Removal causes bootloop. Which is fairly common with settings providers.

View file

@ -11,13 +11,13 @@ declare -a nokia=(
# ww = Worldwide users / cn = china / tw = Taiwan / id = Indonesia
# I don't understand why there are so much overlay stuff.
# REMINDER : A screen overlay in Android, also referred to as “Draw On Top”, allows an app to display content over another app
# overlay : https://budhdisharma.medium.com/rro-runtime-resource-overlay-in-android-aosp-e094be17f4bc
# https://source.android.com/devices/architecture/rros
# blt = Bell Telephone Laboratories owned by Nokia (https://en.wikipedia.org/wiki/Bell_Labs)
"com.android.partnerbrowsercustomizations.btl.s600ww.overlay"
# Add Nokia pinned bookmarks in your chromium based browser
# btl = Bell Telephone Laboratories
"com.android.providers.calendar.overlay.base.s600ww" # [MORE INFO NEEDED]
# "com.android.providers.calendar" is necessary to sync stock Calendar app and lets it work correctly.
@ -48,23 +48,22 @@ declare -a nokia=(
# Another overlay for APN widget this time. Seems useless to me
# REMINDER : APN means Access Point Name and must be configured with carrier values in order your device could acess carrier network.
##### WHAT IS EVENWELL #####
# Evenwell/FiH is chinese company. Specifically, they are a subsidary of the massive Foxconn group that manufactures consumer electronics for sale
# around the world.
##### WHAT IS EVENWELL? #####
# Evenwell/FiH is chinese company. Specifically, they are a subsidary of the massive Foxconn group that manufactures
# consumer electronics for sale around the world.
# You should read the Foxxconn wikipedia page and especially the Controversies section (https://en.wikipedia.org/wiki/Foxconn#Controversies)
# Evenwell apps was caught to send personnal data to chinese servers
# https://arstechnica.com/gadgets/2019/03/hmd-admits-the-nokia-7-plus-was-sending-personal-data-to-china/
#
#
# Majority of evenwell app are useless background apps.
"com.evenwell.AprUploadService"
"com.evenwell.AprUploadService" # [MORE INFO NEEDED]
"com.evenwell.AprUploadService.data.overlay.base"
"com.evenwell.AprUploadService.data.overlay.base.s600ww"
"com.evenwell.AprUploadService.data.overlay.base.s600id"
# Apr Upload Service ????
"com.evenwell.autoregistration"
"com.evenwell.autoregistration" # [MORE INFO NEEDED]
"com.evenwell.autoregistration.overlay.base"
"com.evenwell.autoregistration.overlay.base.s600id"
"com.evenwell.autoregistration.overlay.base.s600ww"
@ -79,12 +78,12 @@ declare -a nokia=(
"com.evenwell.batteryprotect.overlay.base"
"com.evenwell.batteryprotect.overlay.base.s600id"
"com.evenwell.batteryprotect.overlay.base.s600ww"
"com.evenwell.batteryprotect.overlay.d.base.s600e0"
# Battery protect is advertised to improve battery performance but in practice it drains your battery and kills apps to aggressively.
# https://dontkillmyapp.com/nokia
# Nokia decided to stop using this app-killer in the future
# https://www.androidpolice.com/2019/08/27/nokia-hmd-phones-disable-evenwell-background-process-app-killer/
"com.evenwell.bboxsbox" # [MORE INFO NEEDED]
"com.evenwell.bboxsbox.app"
# ????
@ -101,7 +100,6 @@ declare -a nokia=(
# Surely used to push new carrier internet/MMS settings automatically
# Maybe it's useful if carriers change their APN... but you still can change it manually, it's not difficult.
"com.evenwell.custmanager" # [MORE INFO NEEDED]
"com.evenwell.custmanager.data.overlay.base"
"com.evenwell.custmanager.data.overlay.base.s600id"
@ -123,7 +121,7 @@ declare -a nokia=(
"com.evenwell.DbgCfgTool.overlay.base.s600ww"
# Debug config tool ?
"com.evenwell.defaultappconfigure.overlay.base.s600ww"
"com.evenwell.defaultappconfigure.overlay.base.s600ww" # [MORE INFO NEEDED]
# ????
"com.evenwell.DeviceMonitorControl" # [MORE INFO NEEDED]
@ -136,11 +134,11 @@ declare -a nokia=(
# Overlay for email app
"com.evenwell.factorywizard"
"com.evenwell.factorywizard.overlay.base"
"com.evenwell.factorywizard.overlay.base.s600ww"
# Most likely a configuration setup after a factory reset (and/or after first boot)
# Guides you through the basics of setting up your device.
"com.evenwell.foxlauncher.partner" # [MORE INFO NEEDED]
# Partner Launcher Customization
# Related to the Nokia launcher
@ -185,6 +183,7 @@ declare -a nokia=(
# ????
"com.evenwell.phone.overlay.base.s600ww"
"com.evenwell.phone.overlay.base"
# Overlay for the dialer app
"com.evenwell.PowerMonitor"
@ -196,7 +195,8 @@ declare -a nokia=(
#"com.evenwell.powersaving.g3"
#"com.evenwell.powersaving.g3.overlay.base.s600id"
#"com.evenwell.powersaving.g3.overlay.base.s600ww"
# Does nokia powersaving is effective ?
#"com.evenwell.powersaving.g3.overlay.d.base.s600e0"
# Is nokia powersaving really effective?
"com.evenwell.providers.downloads.overlay.base.s600ww"
"com.evenwell.providers.downloads.ui.overlay.base.s600ww"
@ -212,12 +212,11 @@ declare -a nokia=(
# and provide a way to share data with other apps. They encapsulate the data, and provide mechanisms for defining data security
# Source : https://developer.android.com/guide/topics/providers/content-providers.html
"com.evenwell.pushagent"
"com.evenwell.pushagent.overlay.base"
"com.evenwell.pushagent.overlay.base.s600id"
"com.evenwell.pushagent.overlay.base.s600ww"
# Surely related to push notification for Nokia apps (only ?)
# Surely related to push notifications for Nokia apps (only ?)
"com.evenwell.retaildemoapp"
"com.evenwell.retaildemoapp.overlay.base"
@ -226,11 +225,11 @@ declare -a nokia=(
# Nokia retail demonstration mode
# https://en.wikipedia.org/wiki/Demo_mode
"com.evenwell.screenlock.overlay.base.s600ww" # [MORE INFO NEEDED]
# Overlay for the screenlock
"com.evenwell.settings.data.overlay.base.s600ww" # [MORE INFO NEEDED]
"com.evenwell.settings.data.overlay.base" # [MORE INFO NEEDED]
"com.evenwell.settings.data.overlay.base.s600ww"
# Overlay related to settings
"com.evenwell.SettingsUtils"
@ -240,7 +239,9 @@ declare -a nokia=(
# See https://gitlab.com/W1nst0n/universal-android-debloater/-/issues/9#note_369056538
"com.evenwell.SetupWizard"
"com.evenwell.SetupWizard.overlay.base"
"com.evenwell.setupwizard.btl.s600ww.overlay"
"com.evenwell.SetupWizard.overlay.d.base.s600ww"
"com.evenwell.SetupWizard.overlay.base.s600ww"
# It's the basic configuration wizard that drives you through first boot and guides you through the basics of setting up your device.
@ -277,9 +278,10 @@ declare -a nokia=(
# IFAA = Chinas Internet Finance Authentication Alliance
# Chinese organisation that aim to achieve a more simple way to verify the identity of human (like passwordless authentication)
"com.hmdglobal.datago"
"com.hmdglobal.datago.overlay.base"
"com.hmdglobal.datago.overlay.base.s600ww" # [MORE INFO NEEDED]
# Most likely sends diagnostic data to HMD (Company behin Nokia)
# Just an overlay ? Weird.
# Sends diagnostic data to HMD (Company behin Nokia) ?
"com.hmdglobal.support"
# My Phone (https://play.google.com/store/apps/details?id=com.hmdglobal.support)

View file

@ -118,7 +118,11 @@ declare -a oneplus=(
"net.oneplus.forums"
# OnePlus Community (https://play.google.com/store/apps/details?id=net.oneplus.forums)
# Lets you access to OnePlus forum... wah that great !
# Lets you access to OnePlus forum... wah that great !
"com.oneplus.opsports"
# Cricket Scores (https://play.google.com/store/apps/details?id=com.oneplus.opsports)
# Lets you access and follow cricket teams and tournaments
"net.oneplus.odm"
"net.oneplus.odm.provider"

File diff suppressed because it is too large Load diff

View file

@ -213,6 +213,14 @@ declare -a sony=(
# Smart backlight control
# Keeps the screen on as long as the device is held in your hand. Once you put down the device, the screen turns off according to your sleep setting.
"com.sonymobile.indeviceintelligence"
# Xperia Intelligence Engine
# This app is supposed to understand how you use the phone, the apps you prefer, and will suggest tips
# and options based on app usage, how often you use an app, what time of day...
# For me this just looks like a AI bullshit app who has a huge list of permissions and launch in background at boot
# This app performs geofencing (check if your are located in a certain perimeter, near your home for instance)
# and this doesn't looks great privacy-wise (https://en.wikipedia.org/wiki/Geo-fence)
"com.sonymobile.intelligent.gesture"
# Smart call handling
# Lets you handle incoming calls without touching the screen.
@ -221,6 +229,7 @@ declare -a sony=(
"com.sonymobile.intelligent.iengine" # [MORE INFO NEEDED]
# According to a sony user it is part of Smart Screen rotation (auto screen rotation based on the gyroscope).
# Seems not reliable.
# Does it break the screen-rotation if removed?
"com.sonymobile.intelligent.observer" # [MORE INFO NEEDED]
# IntelligentObserver
@ -303,6 +312,7 @@ declare -a sony=(
"com.sonymobile.themes.sou.cid19.silver"
"com.sonymobile.themes.sou.cid20.blue"
"com.sonymobile.themes.sou.cid21.pink"
"com.sonymobile.themes.xperialoops2"
# Sony themes
"com.sonymobile.xperialounge.services"

View file

@ -3,12 +3,32 @@
declare -a xiaomi=(
"android.autoinstalls.config.Xiaomi.cepheus"
# Used to **auto** install stuff (Cepheus phone model) !
"android.autoinstalls.config.Xiaomi.dipper"
"android.autoinstalls.config.Xiaomi.daisy"
"android.autoinstalls.config.Xiaomi.cactus"
# android.autoinstalls.config.Xiaomi.X where X is the phone's codename
# Used to **auto** install stuff
# IMO it's a similar feature than Play Auto Install (https://forum.xda-developers.com/xperia-z/help/how-stop-google-play-auto-install-t2590253)
"android.autoinstalls.config.Xiaomi.dipper"
# Used to **auto** install stuff (Dipper phone model) !
# See above.
"android.romstats" # [MORE INFO NEEDED]
# Misleading package name. This is a Xiaomi-only package.
# Can someone provide the .apk?
# Telemetry stuff
"cn.wps.xiaomi.abroad.lite"
# Mi Doc viewer
# Documents (*.doc/docx, *.ppt/pptx, *.xls/xlsx, *.pdf, *.wps, and *.txt) viewer powered by WPS Office
# FYI: WPS is a chinese closed-source software. It's as bad as Microsoft office (privacy-wise)
# https://www.wps.com/privacy-policy
"com.android.backup"
# Xiaomi Backup and Restore feature (mislead package name).
# This package was replaced by 'com.miui.backup' on newer models.
"com.android.midrive"
# Mi Drive
# Misleading package name. It is indeed a closed-source Xiaomi application.
# Allow for cloud storage (on Mi Cloud) and syncing across multiple Android devices.
"com.autonavi.minimap"
# 高德地图 (Yeah no english translation) (https://play.google.com/store/apps/details?id=com.autonavi.minimap)
@ -40,15 +60,60 @@ declare -a xiaomi=(
# Peel Mi Remote (https://play.google.com/store/apps/details?id=com.duokan.phone.remotecontroller.peel.plugin)
# Peel Mi Remote is a TV guide extension for Xiaomi Mi Remote by "Peel Smart Remote".
"com.facemoji.lite.xiaomi.gp"
# Facemoji Keyboard Lite for Xiaomi - Emoji & Theme (https://play.google.com/store/apps/details?id=com.facemoji.lite.xiaomi.gp)
# Emoji keyboard
"com.factory.mmigroup"
# Hidden super-menu accessible by dialing *#*#64633#*#*
# This menu lists all the others hidden test/debug apps.
"com.fingerprints.sensortesttool"
# Sensor Test Tool
# Hidden test app used to test working of the fingerprint sensors.
"com.huaqin.diaglogger"
# Secret logging menu only accessible by dialing using a "secret code" (*#*#CODE#*#*)
# You can use any of these code : "995995", "996996", "9434", "334334", "5959", "477477"
# Used to log Bluetooth traffic and send them to com.miui.bugreport
# Write logs to "/sdcard/diag_logs/" | "/sdcard/wlan_logs/" | "/sdcard/MIUI/debug_log/common/"
#
# FYI Huaqin is a Chinese mobile phone research and development company.
"com.huaqin.factory"
# Hidden test app (dial *#*#64663#*#*)
# Used by technician in factory to test the hardware. Not intented to be run by end-users.
# Has a huge amount of permission.
# A vulnerability was found in 2019 (CVE-2019-15340) allowing any app co-located on the device to
# programmatically disable and enable Wi-Fi, Bluetooth, and GPS silently (and without the corresponding access permission)
# https://nvd.nist.gov/vuln/detail/CVE-2019-15340
"com.huaqin.sar" # [MORE INFO NEEDED]
# SetTransmitPower
# I can't access the apk but I'm pretty sure it is another hidden test app not meant to be used by end-user
# Given its name it could be used to adjust the transmit power of the cell phone antennas
# SAR = Specific Absorption Rate (https://en.wikipedia.org/wiki/Specific_absorption_rate)
# XDA users removed this without any issues. To be 100% sure it would be good to test the SAR without this package (just in case)
"com.milink.service"
# UniPlay Service
# I couldn't find info about it but I have the feeling it is related to some wireless/remote control.
# MIUI screen casting service.
# If removed, you'll have to use Android's native casting services which can be accessed through a 3rd party app.
"com.mipay.wallet"
"com.mipay.wallet.id"
# Mi Pay for Indonesia ?
"com.mipay.wallet.in"
# Mi Pay for India ?
# Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet)
# Contactless NFC-based mobile payment system that supports credit, debit and public transportation cards in China.
# https://www.mi-pay.com/
#
# .in = Mi Pay for India
# .id = My Pay for Indonesia
"com.miui.accessibility"
# Mi Ditto
# Accesibility feature. Dictation (TTS) and speech output,
# making mobile devices more convenient for people who have difficulties using conventionally designed smartphones.
"com.miui.audioeffect"
# AudioEffect from Xiaomi (https://developer.android.com/reference/android/media/audiofx/AudioEffect)
@ -63,6 +128,12 @@ declare -a xiaomi=(
# Mi Cloud Service
# NOTE : Settings will crash when pressing on any "Mi Cloud" button if this package is deleted.
"com.miui.huanji"
# Mi Mover (https://play.google.com/store/apps/details?id=com.miui.huanji)
# Lets you transfer your contacts, messages, personal files, all the installed apps (but not their data)
# and all the settings (app + system) from an android phone to a Xiaomi phone.
# The 2 phones will establish a direct wifi connection.
"com.miui.enbbs"
# Xiaomi Forums old package.
# Now com.mi.global.bbs.
@ -74,10 +145,19 @@ declare -a xiaomi=(
# It the app that scan an app before installing it
# NOTE : A vulnerability was found in 2019 : https://research.checkpoint.com/2019/vulnerability-in-xiaomi-pre-installed-security-app/
"com.miui.hybrid"
# Quick Apps
# It's basically an app which shows you ads and tracks you...
# Funny thing, Xiaomi's Quick Apps was reportedly being blocked by Google Play Protect.
# https://www.androidpolice.com/2019/11/19/xiaomi-quick-apps-flagged-blocked-google-play-protect/
#
# Reverse engineering of the app :
# https://medium.com/@gags.gk/reverse-engineering-quick-apps-from-xiaomi-a1c9131ae0b7
# Spoiler : you really should delete this package.
"com.miui.hybrid.accessory"
# Xiaomi Hybrid Accessory
# I don't know what the purpose of this package.
# Safe to remove according to a lot of people.
# Smartphone accessories support for Quick Apps (com.miui.hybrid)
"com.miui.micloudsync"
# Mi Cloud Sync
@ -86,13 +166,18 @@ declare -a xiaomi=(
"com.miui.miwallpaper"
# Mi Wallpaper
"com.miui.nextpay"
"com.miui.nextpay" # [MORE INFO NEEDED]
# Next Pay
# ????
# ???
"com.miui.qr"
# MUI Qr code scanner
"com.miui.smsextra"
# Dependency for MIUI Messaging (MIUI SMS app misleadingly called com.android.mms)
# You can remove it if you don't use the default SMS app (and you should)
# Run in background once the phone is booted, has access to internet and interact with Cloud Manager
"com.miui.touchassistant"
# Quick Ball/Touch Assistant
# Touch assistant with a combination of five unique shortcuts which aimed to give easy and quick access to functions and apps you use frequently.
@ -106,11 +191,6 @@ declare -a xiaomi=(
"com.miui.userguide"
# Xiaomi User guide
"com.mipay.wallet"
# Mi Pay (https://play.google.com/store/apps/details?id=com.mipay.in.wallet)
# Contactless NFC-based mobile payment system that supports credit, debit and public transportation cards in China.
# https://www.mi-pay.com/
"com.miui.analytics"
# Xiaomi Analytics
# This app is shady. According to a guy who try to reverse engineered the app, Xiaomi Analytics can replace any (signed?) package
@ -121,9 +201,18 @@ declare -a xiaomi=(
# Mi Wallpaper Carousel (https://play.google.com/store/apps/details?id=com.miui.android.fashiongallery)
# Display new photos on your lock screen every time you turn ON your screen.
"com.miui.antispam"
"com.miui.antispam" # [MORE INFO NEEDED]
# MIUI Antispam
# I didn't find any info about this package.
# spam phone numbers filter (blacklist).
# Suspicious analytics inside and has access to internet. Cloud backup possible.
# At quick glance it is not a private antispam app.
# Can someone check what data are collected/transfered?
#"com.miui.backup"
# MIUI Backup
# Local Backup/Restore feature (Settings > Additional Settings > Local backups)
# It seems this app can communicate with Mi Drop
# This app has 73 permissions and can obviously do everything it want.
"com.miui.bugreport"
# Mi Feedback
@ -160,24 +249,24 @@ declare -a xiaomi=(
"com.miui.fm"
# MIUI FM Radio app
"com.miui.fmservice"
# FM Radio Service
# Needed by com.miui.fm to work correctly
"com.miui.gallery"
# MIUI Gallery app.
# Simple Gallery is way better, ligther and open-source (https://f-droid.org/en/packages/com.simplemobiletools.gallery.pro/)
"com.miui.hybrid"
# Quick Apps
# It's basically an app which show you ads and tracks you...
# Funny thing, Xiaomi's Quick Apps was reportedly being blocked by Google Play Protect.
# https://www.androidpolice.com/2019/11/19/xiaomi-quick-apps-flagged-blocked-google-play-protect/
#
# Reverse engineering of the app :
# https://medium.com/@gags.gk/reverse-engineering-quick-apps-from-xiaomi-a1c9131ae0b7
# Spoiler : you really should delete this package.
"com.miui.klo.bugreport"
# KLO Bugreport
# This app registers system failures and Android applications errors and sends bugs to Xiaomi servers.
"com.miui.miservice"
# Services & feedback
# Used to send feedbacks (and data) to Xiaomi. Integration in Wechat
# Seems to be able to launch 'Baidu location service'
# Has too much permisions, run in background all the time and can be removed without issue
"com.miui.msa.global"
# Main System Ads
# Analyzation of user behaviors to show you ads. Yeah Xiaomi phones has ads...
@ -190,6 +279,12 @@ declare -a xiaomi=(
# Seems to be App Vault on some phones (https://play.google.com/store/apps/details?id=com.mi.android.globalpersonalassistant)
# https://c.mi.com/thread-1017547-1-0.html
"com.miui.phrase" # [MORE INFO NEEDED]
# Frequent Phrases
# Not sure to understand how exactly it can be used but it is supposed to predict phrases you'll want to write.
# I don't know why it isn't handled in the keyboard app. This seems to be something else.
# In any case it has access to internet, is linked to MiCloud and contains a weird CloudTelephonyManager java class in his code.
"com.miui.player"
# Mi Music (https://play.google.com/store/apps/details?id=com.miui.player)
@ -197,15 +292,26 @@ declare -a xiaomi=(
# Xiaomi provider for MI Weather app (com.miui.weather)
# REMINDER : Content providers helps an application manage access to data stored by itself, stored by other apps,
# and provide a way to share data with other apps. They encapsulate the data, and provide mechanisms for defining data security
# Source : https://developer.android.com/guide/topics/providers/content-providers.html
# Source: https://developer.android.com/guide/topics/providers/content-providers.html
"com.miui.screenrecorder"
# Mi Screen Recorder
"com.miui.spock"
# Analytics app who constantly run in background.
# Sends indentifiable data to Xiaomi servers
# See https://www.virustotal.com/gui/file/70400d0055e1924966fb8367cafddc175dee914bbdc227342c9dd86fb3aa829f/details
# It leaks system version, device model, exact firmware build + some few mysterious IDs
"com.miui.systemAdSolution"
# Analyzation of user behaviors to show you ads. Yeah Xiaomi phones has ads...
# Spyware who analyse user behavior for targeted ads. Yeah Xiaomi phones has ads...
# https://www.theverge.com/2018/9/19/17877970/xiaomi-ads-settings-menu-android-phones
"com.miui.sysopt"
# SysoptApplication
# Strange app with no permission. By looking at the code it seems to be a kind of debug app.
# The app doesn't seem to do intersting stuff.
"com.miui.translation.kingsoft"
# Translation stuff by Kingsoft (https://en.wikipedia.org/wiki/Kingsoft)
@ -230,6 +336,24 @@ declare -a xiaomi=(
"com.miui.vsimcore"
# Virtual Sim core service
"com.miui.miwallpaper.earth"
"com.miui.miwallpaper.mars"
# SuperWallpaperEARTH / SuperWallpaperMARS
# Live/animated Xiaomi wallaper
"com.miui.newmidrive"
# Mi Drive (Chinese version)
# Lets you upload and sync your files on the (Mi) Cloud.
# Always run in background
"com.wapi.wapicertmanager"
# WAPI Certificates Manager
# WAPI = WLAN Authentication Privacy Infrastructure (https://en.wikipedia.org/wiki/WLAN_Authentication_and_Privacy_Infrastructure
# It was designed to replace WEP and become the new Standard but it was't rejected by the ISO (International Organization for Standardization)
# It is currently only used in China
# This app most likely manage certificates (they are used to make sure you're not connecting to a rogue Access Point)
# Note: If you live in China, you most likely want to keep it.
"com.miui.weather2"
# Mi Weather app
@ -243,6 +367,20 @@ declare -a xiaomi=(
"com.mi.android.globalpersonalassistant"
# MI Vault aka the "assistant" you open swiping left from MI Home
"com.mi.android.globalminusscreen"
# App Vault (https://play.google.com/store/apps/details?id=com.mi.android.globalminusscreen)
# Google Feed replica from Xiaomi
# Completely useless app which displays all the trending stories from the web + a bunch of other stupid things.
"com.mi.AutoTest"
# Assemble test
# Hidden app used by the manufacturer to test various hardware components
"com.xiaomi.mi_connect_service"
# MiConnectService
# Handles connection to IoT stuff
# Seems to be linked to Mi Home (com.xiaomi.smarthome)
"com.mi.global.bbs"
# Mi Community (https://play.google.com/store/apps/details?id=com.mi.global.bbs)
# Xiaomi Forum app
@ -255,9 +393,19 @@ declare -a xiaomi=(
# Can't find info about this package
# Probably used for displaying (useless) news
"com.mi.health"
# Mi Health
# Pedometer, menstrual and sleep tracker
# Your data are synchronized in the cloud.
# Do you really want Xiaomi to know you didn't slept much yesterday (your ovulation day btw...)
"com.mi.liveassistant"
# Mi Live Assistant
# I don't really know what it is. Maybe an old name for "com.mi.android.globalpersonalassistant"
# I don't really know what it is. Maybe an old name for "com.mi.android.globalpersonalassistant"
"com.mi.setupwizardoverlay"
# Weird package related to the SetupWizard (the menu which assists you to setup your phone for the first time)
# A user said he needed to remove this package to be able to properly apply a dark theme to the Settings app.
"com.mi.webkit.core"
# MI WebView
@ -275,6 +423,10 @@ declare -a xiaomi=(
"com.sohu.inputmethod.sogou.xiaomi"
# Sogou keyboard for chinese only.
"com.wt.secret_code_manager"
# Hidden app which associates an action (display logging info) to a secret code.
# This secret codes have to be dialed from the Xiaomi dialer.
"com.xiaomi.ab"
# MAB
# Has a LOT of permissions. If you try to desinstall it, Xiaomi will reinstall after reboot.
@ -287,7 +439,7 @@ declare -a xiaomi=(
"com.xiaomi.channel"
# Mi Talk
# Mi instant messaging app that lets you do practically the same thing as Whatsapp.
# NOTE : You should use Signal or Wire instead Whatsapp/Mi Talk for more privacy.
# NOTE: You should use Signal or Wire instead Whatsapp/Mi Talk for more privacy.
"com.xiaomi.gamecenter.sdk.service"
# Game Service
@ -351,6 +503,7 @@ declare -a xiaomi=(
"com.xiaomi.micloud.sdk"
# Mi Cloud sdk
# sdk = Software development kit
# Seems to be a dependency for "com.miui.gallery" (the MIUI may not work if you remove this package)
"com.xiaomi.mirecycle"
# Mi Recycle
@ -368,46 +521,324 @@ declare -a xiaomi=(
# I believe it is a provider for the settings but I can't confirm (I don't have a Xiaomi device)
# A lot of people debloat this but I'd like to know more about this one.
"com.xiaomi.upnp"
# UpnpService
# UPnP = Universal Plug and Play
# Its a protocol that lets UPnP-enabled devices on your network automatically discover and communicate with each other
# For exemple it works with the Xiaomi Network Speaker (and probably a lot more Xiaomi IoT stuff)
# UPnP have a lot of security issue and you proably should disable it on your router.
# https://nakedsecurity.sophos.com/2020/06/10/billions-of-devices-affected-by-upnp-vulnerability/
# This package is the Xiaomi implementation on Android (no AOSP support)
"com.xiaomi.simactivate.service"
# Xiaomi SIM Activation Service
# Only used to activate the Find My Device feature
# For the activation to work you need to send a international SMS to China.
# Your carrier may block this by default and/or you'll probably need to pay extra for this.
"com.xiaomi.smarthome"
# Mi Home (https://play.google.com/store/apps/details?id=com.xiaomi.smarthome)
# IoT. Lets you control with Xiaomi Smart Home Suite devices.
"com.xiaomi.xmsfkeeper"
# Xiaomi Service Framework Keeper
# Logger service for 'com.xiaomi.xmsf'
################################## ADVANCED DEBLOAT ##################################
#"android.ui.overlay.ct" # [MORE INFO NEEDED]
#"android.telephony.overlay.cmcc"
#"com.android.mms.overlay.cmcc"
#"com.android.settings.overlay.cmcc"
#"com.android.systemui.overlay.cmcc"
#"com.android.networksettings.overlay.ct"
#"com.android.systemui.overlay.ct"
# Very likely to be a bunch of overlay theme from the China Mobile Communications Corporation (CMCC) / China Telecom (CT)
# Can someone remove them and see what exactly happens?
#"com.miui.wmsvc" # [MORE INFO NEEDED]
# WMService
# Run at boot, has access to internet + GPS
# I quickly looked at the decompiled code and I saw some unsanitized SQL inputs which is BAD! (vulnerable to SQL injection)
# Try to get your android unique Google advertising ID from Google Play Services.
# Feed and launch the spying/analytics app "com.miui.hybrid"
# This app doesn't seems to do essential things except for tracking.
# WARNING: Some people said removing this app causes bootloop, others said it's not.
# I'd like someone to check this. I think it should be okay if you remove all other linked Xiaomi crapwares (like the script does)
#"com.xiaomi.xmsf" # [MORE INFO NEEDED]
# Xiaomi Service Framework
# Set of API's that Xiaomi apps can used (to put it simply a lot of Xiaomi apps used the same functions which are centralized here)
# I first thought removing this will absolutely break everything but it seems not.
# I don't know the situation now but in 2016 this app constantly tried to do tcp connections in background
# Removing this big boy will definitively break Mi Cloud and Mi account (and all features needing these 2 things) but you should
# be okay if you don't use most of Xiaomi apps (what's probably the case if you use this script)
#
# Can someone try to remove this and give feedback?
# Check if alarms (from Xiaomi Clock & 3-party apps) still work if the phone is in sleep-mode.
"com.wingtech.standard" # [MORE INFO NEEDED]
# WTStandardTest
# Wingtech is a chinese Original Design Manufacturer (ODM) involved in the manufacturing of Xiaomi devices.
# There is very high chances this app is only a hardware conformance test app used during production process
# you don't need as an end-user.
# Can someone share the apk just to be 100% sure?
#"com.xiaomi.location.fused" # [MORE INFO NEEDED]
# FusedLocationProvider
# It uses a combination of a devices GPS, Wi-Fi and internal sensors to improve geolocation performance.
# The thing is there is also a Fused Location Provider embeded in 'com.google.android.gms'
# This Xiaomi location provider obviously has as much tracking as the Google one but if you can remove one tracking source
# it's still better than nothing.
# Can someone try to remove this package and give feedback please?
#"com.android.browser"
# Mi Browser
# You really should use something else.
# FYI https://www.xda-developers.com/xiaomi-mi-web-browser-pro-mint-collecting-browsing-data-incognito-mode/
#"com.android.camera"
#"com.android.camera2"
# Xiaomi Camera (I don't know why they kept this package name. It's really confusing.)
# It's a proprietary app based on the AOSP sources:
# https://android.googlesource.com/platform/packages/apps/Camera2/+/master/src/com/android/camera
#"com.android.contacts"
# MIUI Contacts and dialer
# It's the contacts app but you can access the dialer from this app.
#"com.android.email"
# Xiaomi closed-source email app based on the AOSP version. Really confusing package name.
#"com.android.fileexplorer"
# Xiaomi/Mi File Explorer (Again it's a really poor choice for a package name considering it is not the AOSP File explorer)
# It's a Closed-source app based on the AOSP version.
#"com.android.gallery3d"
# Xiaomi Gallery app (I'll stop repeating this is a really poor choice for the package name...)
#"com.android.globalFileexplorer"
# Misleading package name. It's the Xiaomi Files Manager on older phones
#"com.android.incallui"
# Xiaomi Phone (Here we go again! Another confusing package name)
# Closed-source app built on top of the AOSP package.
# The name is doubly misleading because this package is the whole dialer. It does not only provide the 'in call' screen.
#"com.android.thememanager" # [MORE INFO NEEDED]
# MIUI Themes (manager)
# Xiaomi seems to love confusing package name
# This package lets you select and apply themes provided by Xiaomi.
# There is a strong likelihood that removing this package will disable the ability to change wallpapers.
# Can someone test?
#"com.android.thememanager.module" # [MORE INFO NEEDED]
# I don't have the .apk but it is obviously related to "com.android.thememanager"
# Can someone test with this package too?
#"com.fido.asm"
# FIDO UAF Autenthicator-Specific Module.
# See 'com.huawei.fido.uafclient' for FIDO explaination.
# The UAF Authenticator-Specific Module (ASM) is a software interface on top of UAF authenticators which gives a standardized way for FIDO UAF clients
# to detect and access the functionality of UAF authenticators and hides internal communication complexity from FIDO UAF Client.
# Source: https://fidoalliance.org/specs/fido-uaf-v1.0-ps-20141208/fido-uaf-asm-api-v1.0-ps-20141208.html
#"com.fido.xiaomi.uafclient"
# UAF client for FIDO.
# Fido is a set of open technical specifications for mechanisms of authenticating users to online services that do not depend on passwords.
# https://fidoalliance.org/specs/u2f-specs-1.0-bt-nfc-id-amendment/fido-glossary.html
# https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-overview-v2.0-rd-20170927.html
#
# The UAF protocol is designed to enable online services to offer passwordless and multi-factor security by allowing users to register their device
# to the online service and using a local authentication mechanism such as iris or fingerprint recognition. .
# https://developers.google.com/identity/fido/android/native-apps
# Safe to remove if you don't use password-less authentification to access online servics.
#"com.miui.audiomonitor" # [MORE INFO NEEDED]
# My guess is this is a feature allowing to control the sound of multiples apps.
# It's just a guess based on existing Xiaomi devices features. Can someone check this?
#"com.miui.calculator"
# MIUI Calculator (https://play.google.com/store/apps/details?id=com.miui.calculator)
#"com.miui.face"
# MIUI Biometric
# Face Unlock feature
#"com.miui.freeform"
# Floating window
# I think the name app is pretty straightforward
# You can make apps appear above other applications
# https://forum.xda-developers.com/android/miui/floating-windows-miui-12-t4125661
#"com.miui.home"
# MIUI System Launcher
# It's basically the home screen, the way icons apps are organized and displayed.
# DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER !
#"com.mi.globallayout" # [MORE INFO NEEDED]
# Home Layout
# It most likely handles the main screen layout (grid size, apps placement...)
#
# Some people removed this without issue. Can someone try and give feedback?
#"com.miui.mishare.connectivity"
# Mi Share
# Unified file sharing service between Xiaomi, Oppo, Realme and Vivo devices using Wifi-direct
# Settings -> Connection & sharing -> Mi Share
# FYI : Wifi direct allows 2 devices to establish a direct Wi-Fi connection without requiring a wireless router.
#"com.miui.misound"
# Earphones (it's the name of the app)
# Provides the sound's section in Settings and is needed for the equalizing
# Some people removed this package but I personaly don't think it's worth it. This package isn't really an issue
# (no dangerous permissions and does not run in background all the time)
# You can still remove it. You'll be just fine if you really don't need it.
#"com.miui.notification" # [MORE INFO NEEDED]
# Handles notifications in MIUI (badly according to reviews). Does it only handles notifications for Xiaomi apps?
# Embeds a tracking statistics service
# (usage tracking : `id`,`pkgName`,`latestSentTime`,`sentCount`,`avgSentDaily`,`avgSentWeekly)
# Can someone remove this package just to see if it breaks all notifications for all apps? It doesn't seem so.
# If you try don't forget to check if the settings app still works fine.
#"com.miui.powerkeeper" # [MORE INFO NEEDED]
# Battery and Performance
# (aggressive) MIUI power management (https://dontkillmyapp.com/xiaomi)
# That's a weird app that also contains a DRM Manager and a service related to Cloud Backup
# Has obviously a lot of dangerous permissions.
# I guess removing this package will decrease the battery performance. Is it that noticeable? Can someone try?
#"com.miui.zman" # [MORE INFO NEEDED]
# Mi Secure sharing
# Provides an option in the settings of the Xiaomi Gallery to automatically remove location and metadata from images
# you want to share. This do not remove metadata of the picture in the gallery but only the shared copy.
# There's also a "Secure sharing" watermark that shows up when you share photos on WeChat without metadata.
# The question is does this really remove all EXIF tags? Can someone test?
# This is a useful app anyway but do not forget that all your photos/vidoes taken with the Xiaomi camera are still geo-tagged
# (+ all others exif tags) by default.
# What you can do is at least revoke the GPS permission to the camera.
# FOSS alternative to this app :
# https://f-droid.org/fr/packages/com.jarsilio.android.scrambledeggsif/
# https://f-droid.org/fr/packages/de.kaffeemitkoffein.imagepipe/
#"com.mi.android.globalFileexplorer"
# Xiaomi Files Manager (https://play.google.com/store/apps/details?id=com.mi.android.globalFileexplorer)
#"com.xiaomi.bluetooth"
#"com.xiaomi.bluetooth.overlay"
# MIUI Bluetooth Bluetooth Control.
# You need to keep this if you want the bluetooth to work
#"com.xiaomi.bsp.gps.nps"
# GPS location
# I think bsp = board system package (https://en.wikipedia.org/wiki/Board_support_package)
# Not sure about nps (It might be Non-Permanent GPS station)
# It's a small package which seems to display a notification when an app is using GPS.
# More precisely, there is a receiver (GnssEventReceiver) which listen to com.xiaomi.bsp.gps.nps.GetEvent
# This event most likely happen when an app use the GPS and refers to the state of the communication with the GNSS:
# FIX, LOSE, RECOVER, START, STOP
# It's safe to remove if you really want to.
#"com.miui.core" # [MORE INFO NEEDED]
# MIUI SDK
# It is obiously needed for MIUI to work correctly. FYI, it manages the MIUI Analytics service.
# Will cause bootloop if removed.
# I read you can freeze it without issue. I'm... a bit dubious about this.
# If someone want to try et report the result:
# adb shell am force-stop com.miui.core && adb shell pm disable-user com.miui.core && adb shell pm clear com.miui.core
#"com.miui.guardprovider"
# Guard Provider security app
# The app includes 3 different antivirus brands built in that the user can choose (Avast, AVL and Tencent).
# This app notably perform a virus scan of any apps you want to install.
# A serious vulnerability was found in 2019
# Worth reading : https://research.checkpoint.com/2019/vulnerability-in-xiaomi-pre-installed-security-app/
# You may want to remove this app from a privacy stance.
#"com.miui.systemui.carriers.overlay"
# MIUI User interface for MCC/MNC configuration
#"com.miui.systemui.devices.overlay"
#"com.miui.systemui.overlay.devices.android"
# MIUI User interface for 'device' settings?
#"com.xiaomi.discover"
# System Apps Updater
# WARNING : Disable System app updates (but not firmware updates)
#"com.mi.android.globalFileexplorer"
# Xiaomi Files Manager (https://play.google.com/store/apps/details?id=com.mi.android.globalFileexplorer)
#"com.miui.home"
# MIUI System Launcher
# It's basically the home screen, the way icons apps are organized and displayed.
# DON'T REMOVE THIS IF YOU DIDN'T INSTALL ANOTHER LAUNCHER !
#"com.xiaomi.powerchecker"
# Power Detector
# Security> Battery> Activity Control.
# Detects abnormal power usage by apps (not all. Some Xiaomi apps are whitelisted)
# Needed for 'com.miui.powerkeeper' to work.
#"com.xiaomi.miplay_client" # [MORE INFO NEEDED]
# MiPlay Client
# Provides support for Miracast?
# https://en.wikipedia.org/wiki/Miracast
# My guess is it provides the Wireless Display feature (Settings - Connection & sharing - Cast)
# Can someone confirm?
)
####################### DO NOT REMOVE THIS (will prevent core stuff to work) #######################
##################### YOU SHOULDN'T MESS WITH THEM (core packages and may cause bootloop) #####################
#"com.android.updater"
# Mi Updater
# Provide system updates
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE!
#"com.lbe.security.miui"
# Permission manager
# Lets you monitor apps permission requests.
#"com.xiaomi.finddevice"
# Find My Device feature (in the Settings)
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE !
# Enables you to locate your lost phone and erase your data remotely.
# Your phone needs to be connected to internet (Wifi/mobile data) for this feature to work.
# REMOVING THIS PACKAGE WILL BOOTLOOP YOUR DEVICE!
#
# NOTE : I don't have a Xiaomi phone on hand anymore but maybe only disabling it will work : adb shell 'pm disable-user com.xiaomi.finddevice'
# Can someone try ?
# NOTE : You cannot disable it via adb
# According some sources, disabling MIUI optimizations in the Developer
# settings and removing the apk file in a custom recovery does not cause a
# bootloop, but I didn't test this.
#"com.miui.global.packageinstaller"
# The security check / virus scan which runs after a package installation
# Uninstalling it does not cause a bootloop
# Package installation still works fine
#"com.miui.securitycenter"
# MIUI Security app
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE !
# Provides "protection and optimization tools"
# App lock, Data usage, Security scan, Cleaner, Battery saver, Blocklist and other features.
# This package is mostly the front-end (UI).
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE!
#
# NOTE : I don't have a Xiaomi phone on hand anymore but maybe only disabling it will work : adb shell 'pm disable-user com.miui.securitycenter'
# Can someone try ?
# Can someone try?
#"com.miui.securitycore"
# Core features of the "com.miui.securitycenter"
# Removing com.miui.securitycenter will cause your device to bootlop so I guess you should not remove this package neither.
# (Can someone try just in case?)
#"com.miui.system"
# Called 'MIUI System Launcher' but it's not the launcher itself (com.miui.home is)
# This package is another core MIUI app you can't remove. It centralize a lot of default configuration values
#"com.miui.rom"
# Core package of MIUI
# DO NOT REMOVE THIS
#"com.miui.securityadd"
# Related to the MIUI Security app
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE !
# REMOVING THIS WILL BOOTLOOP YOUR DEVICE!
#
# NOTE : I don't have a Xiaomi phone on hand anymore but maybe only disabling it will work : adb shell 'pm disable-user com.miui.securityadd'
# Can someone try ?
# Can someone try ?
#"com.xiaomi.misettings"
# Xiaomi Settings app