Giter Club home page Giter Club logo

universal-android-debloater-ui's Introduction

Universal Android Debloater UI

This Repository offers a GUI for the awesome UAD-Project

NOTE: the main project was restarted with their own GUI with hints to my layout / design

Features:

  • Linux, Windows and MacOS should be supported (Windows and Linux is tested and works)
    • runs on Python and dearpygui
  • should support all versions of Android
    • but only android 10 is tested right now
  • checks packages on device against packages known to debloater-tool
    • a fresh samsung S10e has ~120 packages that can be disabled without loosing comfort
    • minimizes wakeups that drain battery, ram-usage, security concerns because of questionable manufacturer / carrier apps
  • filter for package-type, keywords, enable-status and remove-recommendation
  • packages can be enabled, disabled, installed and uninstalled
  • manually save current package data as csv locally
    • makes it easy to contribute new packages to the debloat project
  • auto-save meta-data on device (info stays even if adb does not show it anymore)
  • resizing windows adapts the table
  • log of adb operations - timestamp, device, shell-operation and response

Installation & Requirements

  • you need a 64bit System due to the dearpygui-framework
  • make sure python 3.6+ is on your system
  • installation and execution need a terminal for now
  • probably not every step is necessary on your system
  • (optional) copy your adb-key to this folder, otherwise a new one is generated and your phone wants a confirmation on first connect
  • (optional) to not mess with you python-setup, you can setup a virtual-env
  • (optional) if you cloned this repo you can just update by executing git pull inside the project folder

Linux (tested with Mint):

sudo apt install python3-pip  
sudo apt install git

git clone https://github.com/orgua/universal-android-debloater-UI.git
cd universal-android-debloater-UI

pip install -r requirements.txt

py main_gui.py

Windows 10:

  • download and install the newest python with pip
  • download and decompress these project sources into a folder
  • open cmd-terminal (with admin-rights if you don't plan to use virtual-env and your python install is system-wide)
  • run:
pip install --upgrade pip
pip install -r requirements.txt

py main_gui.py

MacOS (with python and git installed):

NOTE: there seems to be a problem with adb-shell[usb] (beta) - tool is probably not working currently

sudo easy_install pip
sudo pip install --upgrade pip

git clone https://github.com/orgua/universal-android-debloater-UI.git
cd universal-android-debloater-UI

pip install -r requirements.txt

py main_gui.py

Usage

  • WARNING AS ALWAYS: always make a full nandroid / twrp backup before changing the system!
  • config your phone to allow adb shell (see debloater project for details)
  • run py main_gui.py -> UI should appear
  • connect your device
  • data is automatically saved and fetched on device on local data-partition as "universal_android_debloater_package_list.csv"
    • this ensures that you see uninstalled packages even if adb does not show them anymore
  • you can filter for keywords above the table or for values on specific columns by clicking the cell in the first row
  • make your selection on packages and choose an action below the table, but consider the following warning notes
    • you should only remove packages that are marked safe
    • even some safe packages can ruin your experience if you got no replacement (launcher, keyboard, ..)
    • watch out for packages that are considered safe but have another device-brand or "pending.sh" as source
    • information about the packages should be shown as you click on the corresponding row
  • try rebooting and test basic functionality
  • phone shows demanding apps in the battery-usage options and ram-horders can be found in the memory-options (hidden dev menu)
  • (optional) deactivate adb after you are finished

screenshot

Todo

  • find a way to make first column wider, not possible atm
  • (tested) support for older android versions
  • connect via TCP
  • cleanup GUI, bring adb-output and debug to separate tabs
  • add some examples from different manufacturers
  • better meta-data support for known packages
  • generate binaries, mostly windows because linux and mac already ship with python
  • meta-data that would be helpful for known packages (use, where it applies)
    • package_name: name that ADB sees
    • program_name: name in UI, can be language dependant, but should default to english
    • keywords: descriptive words that allow grouping, like "samsung, bixby"
    • dependence_for: allows to warn user if this would break something
    • depending_on: (see comment right above)
    • safe_to_remove: bool
    • description: text like in current lists
    • replacement_recommended: some thing open source and light on resources, similar fn
  • better packet info could be stored on a per-file basis or like now in brand specific files, but maybe switch to yaml or similar
  • cleanup source, commiting to gui would save 1/5 LOC, but make future cli harder

universal-android-debloater-ui's People

Contributors

orgua avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

universal-android-debloater-ui's Issues

adb under linux can connect, uad-ui not

I get the following error:

Traceback (most recent call last):
File "/home/theo/universal-android-debloater-UI/framework_dearpygui.py", line 97, in connect_button_callback
adb_fw.connect_device_usb()
File "/home/theo/universal-android-debloater-UI/framework_adb.py", line 58, in connect_device_usb
device.connect(rsa_keys=[signer], auth_timeout_s=30)
File "/home/theo/.local/lib/python3.7/site-packages/adb_shell/adb_device.py", line 242, in connect
self._transport.connect(transport_timeout_s)
File "/home/theo/.local/lib/python3.7/site-packages/adb_shell/transport/usb_transport.py", line 249, in connect
self._transport.claimInterface(self._interface_number)
File "/home/theo/.local/lib/python3.7/site-packages/usb1/init.py", line 1169, in claimInterface
libusb1.libusb_claim_interface(self.__handle, interface),
File "/home/theo/.local/lib/python3.7/site-packages/usb1/init.py", line 127, in mayRaiseUSBError
__raiseUSBError(value)
File "/home/theo/.local/lib/python3.7/site-packages/usb1/init.py", line 119, in raiseUSBError
raise __STATUS_TO_EXCEPTION_DICT.get(value, __USBError)(value)
usb1.USBErrorBusy: LIBUSB_ERROR_BUSY [-6]
Exception: Line: 152 Callable failed

64bit only

Currently, dearpygui is 64bit-only, so I can not use my old pi-driven linux to test the gui - and I am so eager to..
Any plans to or ideas how to make the gui 32bit compatible?

from dearpygui import core, simple error

Hi
First time attempting to use Universal Debloatware package on fedora

I following the instructions here however the final command returns the error that follows the commands.
sudo apt install python3-pip
sudo apt install git

git clone https://github.com/orgua/universal-android-debloater-UI.git
cd universal-android-debloater-UI

pip install -r requirements.txt

py main_gui.py

Traceback (most recent call last):
File "/home/griphen/universal-android-debloater-UI/main_gui.py", line 1, in
from dearpygui import core, simple
ImportError: cannot import name 'core' from 'dearpygui' (/home/griphen/.local/lib/python3.11/site-packages/dearpygui/init.py)

Any help? I really need to debloat my phone ๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.