[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[GSoC] Introduction and Project Discussion

Hello everyone,

I am a first year student doing computer engineering at the Silver Oak
College of Engineering and Technology, Ahmedabad.
I am interested in working on the project "Android SDK Tools in Debian".

I have worked with Android in the past (and still do), in fact android
is what got me into development and OSS. I am a CyanogenMod device
maintainer, and I currently maintain most of the supported Sony
devices. I have been involved with that project since 2012. As a
result, I'm somewhat familiar with the android source code and build
system, and while I have not worked too much with the SDK, I believe
my past experience will help a lot in learning that.

Below lines copy-pasted from [1] for inline comments.

> finish packaging all of the core development tools (lint, gradle-plugin, SDK Manager, etc.)
After reading the AndoidTools wiki page [2], it looks like there has
been work to fork the relevant android projects into debian for
getting the SDK part build, I can continue with that.

> update android-tools and relevant pkg-java packages to the latest upstream version
The source already seems to be close to the latest, if not the latest
(6.0.1r16, there is a r22 now which does have significant changes from

> update androidsdk-tools to the Android Tools Team style, and update to latest upstream version
The current version is r22, which would correspond to Android 5.1
Lollipop (API 22)
The latest is r23, which corresponds to Android 6.0 Marshmallow (API 23)
As for the Android Tools Team style, I take it to mean

> package new parts of the Android upstream source, including the NDK, target platforms, emulators, Android Studio, etc.
This would involve more repositories being pulled under android-tools/
It would be made easier by the fact that the NDK is less coupled with
the build system than other tools, and there is also a repo manifest
to build only the NDK - which doesn't fetch too many repos, especially
if you don't count the prebuilt toolchains [3]

> make all Android Tools packages build reproducibly
I would look at the debian-reproducible project first, and see what
they have done to make the building of any similar packages
Apart from that, I also saw some patches Google did to make the
android build reproducible, and I believe we could use at least parts
of that. [4], [5] are a few, and I remember seeing more / followup
patches too. The point being that given Google is working on this too,
we can expect to benefit from that work by taking what's committed in
master, and more might also probably be available in future releases
(N, after that..)

> improve package build systems to be more tightly integrated with upstream build systems
One thing to consider with this is that the upstream in this case
(android) is undergoing an effort to change build systems, moving from
plain makefiles to ninja generated makefiles (soong), with a stop-gap
system (kati) in between. See [6]

> add Continuous Integration tests
This could involve the android emulator in some way, try to build a
few sample apps with the SDK and see if they work.
Could also use some tests from the android CTS[7] for this.

> package and improve related tools, like apktool, androguard, fdroidserver, drozer, etc.
Doable, probably much easier as they would likely be independent tools
then be something so tightly coupled as android.

Overall, I view this as a good challenge for me, given this is a part
of android I haven't worked too much with before. And that too for
debian, which is something I've only used.
It would be a great experience for me to be able to work with the
debian project, and contribute with the help of the android knowledge
I've gained over the years.

I'll upload a draft proposal to Google's site if the above looks okay
to you guys.

Thanks and Regards,
Chirayu Desai

[1]: https://wiki.debian.org/SummerOfCode2016/Projects
[2]: https://wiki.debian.org/AndroidTools
[3]: https://android.googlesource.com/platform/manifest/+/master-ndk/default.xml
[4]: https://android.googlesource.com/platform/build/+/6a66a887baadc9eb3d0d60e26f748b8453e27a02
[5]: https://android.googlesource.com/platform/build/+/d75d893da8f97a5c7781142aaa7a16cf1dbb669c
[6]: https://groups.google.com/d/topic/android-platform/Hhl_4hfOONg/discussion
[7]: http://source.android.com/compatibility/cts/index.html

Reply to: