[Nkwuda Sunday Cletus] GSOC'22 Final Report: Android SDK Tool in Debian
My project is about debianizing some packages of the Android SDK tools.This involves downloading Android SDK sources from Google Android repositories, building them into Debian packages, and submitting them for upload into Debian packages archive. My project also involves writing scripts to automate some repetitive tasks in Debian Android Tools packaging.
Summary of work done
An existing Debian package updated to the latest upstream release version.
Apksig is a project which aims to simplify APK signing and checking whether APK signatures are expected to verify on Android. apksig supports JAR signing (used by Android since day one) and APK Signature Scheme v2 (supported since Android Nougat, API Level 24). apksig is meant to be used outside of Android devices.
A new package debianized from Google Android sources. Zipflinger is a library dedicated to ZIP files manipulation. It can create an archive from scratch but also add/remove entries without decompressing/compressing the whole archive.
A new package debianized from Google Android sources. Bundletool is a tool to manipulate Android App Bundles. Bundletool does the following:
- Build an Android App Bundle from pre-compiled modules of a project.
- Generate an APK Set archive containing APKs for all possible devices.
- Extract APK(s) from the APK Set compatible with a given device.
- Install APK(s) from the APK Set compatible with a connected device.
- Extract device spec from a device as a JSON file.
- Add code transparency to an Android App Bundle. Code transparency is an
optional code signing mechanism.
- Verify code transparency inside an Android App Bundle, APK files or an
application installed on a connected device.
A helper script for building a .jar file from each tag in Android Apksigner repository, and diffing the resultant .jar agaist the official binary.
An existing Debian package updated to the latest upstream release version. Apktool is a tool for reverse engineering 3rd party, closed, binary Android apps. It can decode resources to nearly original form and rebuild them after making some modifications; it makes possible to debug smali code step by step.
Addendum: This project is a continuous process that will be ongoing even after GSOC. I will keep updating this page as more packages are built.