0x192 / 0x192/universal-android-debloater

How to make a great Universal android de-bloater. idea's

Đang mở
#82 5 bình luận 6 reaction 0 người được giao Xem trên GitHub
enhancement
Ngôn ngữ chính
Rust
Star
19.9k
Fork
1.1k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

# Preface
What the goal of Uad? certainly not to do some thing that can't be accomplished by other means, it's to make it intuitive, accessible, organized, repeatable AND universal. the amount of useful information that can be displayed & acted upon could take hours to learn & execute manually though ADB commands (trust me, i did that). with those goals in mind i have suggestions.

TAB idea's
Help / FAQ
things to know when De-boating

## General improvements

1. Make "Select all" a toggle to un-selcet all and visa-vera. closes https://github.com/0x192/universal-android-debloater/issues/68
2. Clearly Highlight the last selected menu list item, it's way too easy to forget where your at when scrolling
4. set colors for Recommended(Green), Advanced(teal), Expert(Yellow), Unsafe(red) Unlisted(white?)
to have left of the check box a vertical line of that color.
5. Case sensitive search warning; don't leave it up to me to guess
6. make all non clickable text highlight copy'able or copy on right click; who wants to type when you have to cross reference?
7. add "-s: Filter to only show system packages." & "-3: Filter to only show third party packages." to the second drop down list
i know user installed packages are always filtered, but in general more filter are better.
8. Get APP icon & put it before the Package name: gives clues about all kinds of thing
9. Allow opening a custom de-bloat list & filter to have just those.

### Far out/maybe idea's
1. add an exclude box, too allow exuding arbitrary things from the list
2. allow freeze & disable,like: [Freeze](blue ice colored) [Disable](Grey colored) [Uninstall](orange)
or maybe on holding Alt switch to it to allow advanced per adjustment. the reason i think [Uninstall] should be Orange is
because you can always re-install & red should be reserved for APPs that can Brick devices.

- Parse APP names, & put them to the left of the package name, and also make them search able. closes https://github.com/0x192/universal-android-debloater/issues/59

Related Links
https://stackoverflow.com/questions/16650765/get-application-name-label-via-adb-shell-or-terminal
https://android.stackexchange.com/questions/90141/obtain-package-name-and-common-name-of-apps-via-adb
https://gokulnc.github.io/blog/find-app-name-adb/
https://developer.android.com/studio/command-line/aapt2

### Device Specific storage
When a new device is found make a Folder for it(like "Unihertz Jelly2_EEA"), and store all related things there(de-bloat list, logs ect)
- dump relevant info about the phone to both the log & the Uninstalled app list
`'getprop' | grep -e 'ro.product.name' -e 'ro.product.brand' -e 'ro.build.version.release]'`

Uad uninstall log example

>############## Uad 0.3.0 | Date:2021-12-02
>##### PHONE: Unihertz Jelly2_EEA
>##### Android version.release]: [11]
>##### ANDROID_SDK: 30
>com.google.android.apps.youtube.music

- Make it so Uad can adb pull apk's to that path,
maybe on holding of ALT or CTRL one of the option will toggle to Dump APK
or on the top right on the Description box a button
- Auto make an device specific uninstall list that appends over secession's: so all uninstalled apps from that devices are in that list
The point of making a per device list of what you uninstalled is so that you can share/contribute Your de-bloat list, and user can use it with a custom list option. see using the current "export selection" is per session & over writes the existing listings. maybe sense "UAD already has a filter to see all uninstalled apps." you could just dump that. some much to learn.

### About the Description box

1. Make description box's text select'able: make these results darkened & below the normal package matches so as to not clutter up the results
2. Include the interesting parts of the path where to app is located in: /system, /vendor, /data, /product, ect. have this on the bottom & maybe make each have a color and a FAQ about the meaning of each path in terms of Disabling/uninstalling
3. Allow creation/editing of descriptions directly in the UadGui box, if this can't be done then just open a text editor with a Template, closes https://github.com/0x192/universal-android-debloater/issues/28


rough template idea

>{
"id": "PAKAGE_NAME",
"list": "Oem",
"description": "NAME OF APP\n, what does it do?\nlink to something useful\nwhat else should we know?\n",
"dependencies": null,
"neededBy": null,
"labels": null,
"removal": "Recommended"
},

things i think should be added
if "list": "Oem" is true then i think uad should record what Phone it was found on(append to the list)
"list": "Oem", Google: Pixel 5, Nexus, Samsung: Galaxy tab a, S7,
consequence of removal: Brick, lost of normal functionality(and what is lost), maybe this is already covered by "removal"?


what i want is a better template to give users a guide how how to write a good description, and a better idea of what each line means & how to choose

### More about root
With Root can remove apps from `/system` (System apps), but as the User's can't write to `/system` there is little advantage compared to simply uninstalling for all users
I think Uad should not try to support Root removal as not all cases will have Root & there are already utilities for that
[Magisk-Modules-Repo/Debloater (Terminal based)](https://github.com/Magisk-Modules-Repo/terminal_debloater)
[De-Bloater APP](https://github.com/sunilpaulmathew/De-Bloater)



Details & Related Links

APP `com.oem.bloat` stored in `/system`

```
adb shell
su
pm uninstall com.oem.bloat // Failure [DELETE_FAILED_INTERNAL_ERROR]
pm uninstall --user 0 com.oem.bloat // Success
```
// about uninstalling apps from /system
https://www.reddit.com/r/AndroidQuestions/comments/b5jqzs/adb_to_debloatsome_tricks_to_make_it_easier/
https://askmeaboutlinux.com/2021/10/03/how-to-restore-or-reinstall-package-uninstalled-on-android-using-adb/
https://stackoverflow.com/questions/37145145/app-hidden-by-device-owner-is-not-listed-as-installed
https://gist.github.com/davidnunez/1404789
https://android.stackexchange.com/questions/226964/how-to-list-system-packages-uninstalled-for-a-user-via-adb
https://ihax.io/freeze-and-uninstall-system-apps-on-android-without-root/
https://www.reddit.com/r/AndroidQuestions/comments/f598zq/how_to_remove_left_over_orphaned_files_after_pm/

# wrap up



Similar utilities(ADB App Removal GUIs)

- https://github.com/Szaki/XiaomiADBFastbootTools // uses a [predifined list](https://github.com/Szaki/XiaomiADBFastbootTools/blob/1f173ddd78f0668d39e36e50a1048854964d511e/src/main/resources/apps.yml) of APPs remove
- [[TOOL] ADB AppControl 1.7.1 🚀 Ultimate App Manager & Debloat Tool + Tweaks](https://forum.xda-developers.com/t/tool-adb-appcontrol-1-7-1-ultimate-app-manager-debloat-tool-tweaks.4147837/)
things i like; the package names are listed next to the app name, it's icon, & it's size, very nice! you can dump APKs neatly
https://github.com/patrickfav/uber-adb-tools // CMD | adb installing and uninstalling apps like wildcards




getting a list of uninstalled APPS
getting a list of uninstalled APPS from the device might be tricky, but it appears the Uad already does this some how

https://gist.github.com/davidnunez/1404789
https://android.stackexchange.com/questions/230254/generate-a-root-debloat-script-from-a-package-list-after-a-successful-non-root-d
https://android.stackexchange.com/questions/83030/history-of-installed-uninstalled-apps
https://www.reddit.com/r/AndroidQuestions/comments/lr88w6/uninstall_bloatware_with_adb_list_of_uninstalled/
https://www.reddit.com/r/linux4noobs/comments/b5pvdn/adb_shell_scripting_for_debloating_android_phones/
pm list packages -u | awk -F: '{print $NF}

More about adb "Freeze" apps (stop apps from running in background)

https://developer.android.com/topic/performance/background-optimization#kotlin
https://forum.xda-developers.com/t/how-to-get-notification-without-freezing-gsf.4213065/
https://stackoverflow.com/questions/66947747/how-to-use-adb-to-stop-app-from-running-in-background
https://www.droidviews.com/freeze-background-apps-on-android-nougat-and-above-without-root/
https://www.xda-developers.com/freeze-app-background-processes-without-root-android-nougat/
https://github.com/PeterCxy/Shelter // has a freeze option
https://technastic.com/freeze-uninstall-system-apps-android/ // has general info about


Contributing should be easier, find a new app, make a description, uninstall it, test your system, edit description & open pull request/issue with the results

I have more idea's but i'm out of time, and not sure if the Dev team has time/motivation & likes my idea's, not all are well thought through, look at this as inspiration

[Pulled APKs.zip](https://github.com/0x192/universal-android-debloater/files/7687718/Pulled.APKs.zip) contains CallRecorderService.apk & MDMConfig.apk , some one wanted the APK's(in the package description), not sure how to get it to them.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

The issue describes many UI/UX improvements for the Universal Android Debloater GUI. Start by exploring the Rust codebase for the GUI components, likely in src/gui/. Look at how packages are listed, selected, and filtered. The changes involve toggling selections, color-coding, adding icons, and improving the description box. Check existing ADB command integration to understand how package data is fetched. 'Done' means implementing one or more of the suggested features and ensuring they work across platforms.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
android, rust
Lĩnh vực
cli, desktop, tooling
Loại issue
Tính năng
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
40/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.