Skip to content

How to contribute

Ricardo Fernández Serrata edited this page Jan 12, 2025 · 16 revisions

There is a lot of packages descriptions to improve. Some can be slightly incorrect and some are nearly nonexistent. You know what you have to do! :)

You can also add new packages :

  1. All non documented packages can be displayed by selecting the unlisted filter.

  2. Try to document each new package and create a pull request (please read this first) or create an issue.

The UAD-ng list is a JSON (we're reconsidering that) that can be found here (for now) and here (future).

A package is defined like this:

"com.google.mainline.telemetry": {
    "list": "Google",
    "description": "First line of the a description\nThis is a new line",
    "dependencies": null,
    "neededBy": null,
    "labels": null,
    "removal": "Unsafe"
},
  • list: can be Google, Misc (miscellaneous), Oem (manufacturer), Aosp, Pending, Carrier (isp).
  • removal: can be Recommended, Advanced, Expert, Unsafe (more info)
  • dependencies & neededBy ("reverse-deps", might be removed because it's redundant): Define relationships between packs. They're not intended to be an exhaustive set. Only the absolutely-required deps are listed. Unlike a "typical" package-manager, UAD-ng doesn't auto-remove dependent packs when their deps are removed (this might change in the future).
  • labels: Will be removed in a future version, especially when description search is implemented.

Decompile an APK

Extracting packages

You can run this script on Termux, to copy APKs without ADB. You can also use it via ADB, but you have to adb push it, then run it on the Android using adb shell (this is not the full command, it won't work).

Connecting your device (using a cable)

  1. Download ADB from here, unzip it then open a terminal in the ADB folder. Alternatively, you could install it using your OS package-manager (apt, winget, brew, etc...) which has the benefit of being in your PATH.
  2. Enable USB debugging and connect your device to the PC (order-insensitive).
  3. In the terminal you previously opened, enter adb devices (This ensures the ADB server is running. If you know it is, no need for that)
  4. Now accept the pop-up on your device. If your device is old, there's no confirmation prompt, as security standards were bad in "the old days".

Connecting your device (using Wireless ADB)

Listing packages (using a cable)

  1. To list all the packages on the phone type adb shell pm list packages
  2. Let's say there's a package you need to extract, type adb shell pm path com.test
  3. You'll get something like package:/odm/overlay/test.apk
  4. You delete the package: part and copy the rest, so for example /odm/overlay/test.apk
  5. Now you take the APK from the device by adb pull /odm/overlay/test.apk
  6. Finally, you have the APK file on your PC (in the folder where you opened your terminal)

Listing packages (using Wireless ADB)

Note: if you only connected to one device there's no need to keep using -s [IP address]

  1. To list all the packages on the phone type adb -s 192.168.1.10 shell pm list packages
  2. Let's say there's a package you need to extract, type adb -s 192.168.1.10 shell pm path com.test
  3. You'll get something like package:/odm/overlay/test.apk
  4. You delete the package: part and copy the rest, so for example /odm/overlay/test.apk
  5. Now you take the APK from the device by adb -s 192.168.1.10 pull /odm/overlay/test.apk
  6. Finally, you have the APK file on your PC (in the folder where you opened your terminal)

Useful apps

Useful online services