I worked on Packaging Android SDK Tools this summer as a part of GSoC.
Link to GSoC Project Page: https://summerofcode.withgoogle.com/projects/#6072759591895040
Link to DebianWiki Page of Project: https://wiki.debian.org/AndroidTools
It is time to write my final report for Google Summer Of Code 2018 as it is coming to an end. This was an awesome experience. Not only did I learn so much on the technical side but I also learnt how to operate in open source communities and contribute in an orderd way. I had pleasure to know some cool and knowledgeable people in the role of my mentors who were always available to help me.
Way back in March month of this year, I was just a regular user of Debian Linux but now I know how Debian Packaging, Bug Tracking and Debian community in general works, making Debian an incredible project it is.
My project was to package and update existing Android SDK packages to latest upstream versions. I have worked on several repositories in GSoC period. Below is the commits I have made in different repos.
- Update debian/changelog
- New upstream version 8.1.0+r23
- Add description for patch : 20150704-CVE-2015-3239_dwarf_i.h
- Add myself to Uploaders
- Remove non-existing entries from copyright
- Update Standards-Version
- Update Vcs links
- Fix FTCBFS (Closes: #897062)
- Update debian/changelog to list latest changes
- Include libsepol headers
- Build libsepol required by fastboot
- Update debian/changelog
- Update libselinux.mk
- Update debian/rules and debian/control to incorporate libsepol
- New patch: Fix header path
- Fixes to remove lintian warnings
- Fix install files
- Add myself to uploaders
- Fix duplicate description
- Use debian/clean to simplify build scripts
- Update debian/changelog to list latest changes
- Update debian/changelog
- New upstream version 8.1.0+r23
- Update libcutils patch
- Update cutils_atomic patch
- Remove patch : fs_prepare_path_impl_open_mode_missing
- Remove patch: fix-CVE-2017-0647.patch
- Remove patches: adb_libssl_11.diff & adb_libssl_bc.diff
- Update patch: move-log-file-to-proper-dir
- New patch: added missing headers
- Update liblog.mk
- Update libcutils.mk
- Update liblog.mk for cpp file compile rules
- Update libcutils.mk
- New patch : Direct include fs_config header
- Sync libadb.mk with upstream Android.mk
- Update libadb.mk
- Update build dependencies
- Update patch: Added missing headers & update adb.mk
- Update patch : direct include header
- New patch : fix-header-path for libusb.h
- Update libadb.mk for libusb linker
- Build libcrypto_utils.so
- Update libadb.mk and adb.mk
- Update makefiles
- New patch added & deleted obsolete patch
- Update ziparchive-dev install file
- Add install file for libcrypto_utils
- Update libcrypto_utils.mk
- Changes to install libcrypto_utils library
- Added myself to uploaders
- Update build dependencies
- Update debian/rules
- Build libdiagnoseusb library required by adb and fastboot
- Update rules and control files to include libdiagnoseusb
- link libdiagnoseusb in adb.mk
- Update debian/rules
- Fix typo in libutils.mk
- Update libbase.mk sources
- Update makefiles
- Add libdemangle sources in libbacktrace
- Update header paths in install files
- Remove obsolete patchs
- Update gitlab-ci.yml to include boringssl
- Update makefiles
- Add clean file
- New patch to fix proto import errors
- New patch: escape-apostrophe
- Switch to aapt2 for framework-res.apk generation
- Update header path in libandroidfw install
- Add newline at the end in debian/patches/series to remove lintian warning
- Update debian/changelog
- Add gitlab-ci.yml
- Update debian/rules
- Fix typo in changelog
- Update makefiles
- Update debian/rules
- Update install file
- Add debian/clean file
- Update debian/changelog
- Add gitlab-ci file
Out of the packages I have worked on, following packages have been uploaded to Debian testing repos and binaries generated by these packages can be installed using apt package manager:
- android-platform-external-libselinux
- android-platform-external-libunwind
Some packages on which I have worked are not yet uploaded because they depend on a new package named 'android-platform-external-boringssl' which is still in Debian NewQueue and will take some time to come in repos. Once it is available in repos,other packages can also be uploaded and make available to install for end users.
At the time of writing this report, I am currently working on packaging android.jar. Android.jar file contains the public API of the android framework and it is used to compile android apps. It depends on more than 50 source repos of AOSP source so I haven't been able to package it till now. I have written a python script which downloads source archives of all the 50+ source repos and repack them to create one big source archive to make packaging easier. I will be working towards packaging this even after GSoC is over.
As I said above, I will complete my work on packaging android.jar. Even after it is done, I will continue working on this project for as long as I can. We have discussed with our mentors and they have shown great interest in guiding us even after GSoC is over.
In addition to packaging, I am planning to update wiki page of AndroidTools on Debian wiki to reflect changes we have made and state of the project.
This is overall a good one!
I have a small editing suggestion: Make a dedicated section for "deliverables" showing the packages that are uploaded to the archive. This is a very important section and should be in its own and stand out.