Skip to content

How to contribute

Ricardo Fernández Serrata edited this page Jan 5, 2025 · 12 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: Likely to be removed in a future version, especially when description search is implemented.

Decompile an APK

Extracting packages

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