Call for Help: making free software builds of the Android SDK

free-software
debian

#1

There is an odd quirk with the Android SDK: while the source code is Apache-2.0 licensed, free software, the binaries that Google ships are not free software and even put substantial restrictions on the apps that are built with the Google binaries. @beuc has been leading the effort to make actual free software binaries of the Android SDK. The Debian Android Tools Team has been working to package the Android SDK Tools as part of Debian.

There has been a great discussion on the FSFE Android mailing list about doing free software rebuilds of all the Android SDK components where we have outlined what is left to be done to actually ship this binaries to app developers who care about free software.

I’m proposing to use the F-Droid resources to both run a builder, which is easy now that we have the gcc cfarm machines. Then I also propose hosting the results in an sdkmanager repo on mirror.f-droid.org as the official source of this repo so that it can be easily mirrored elsewhere.

If we can get those builds to be reproducible, that will make it much easier to manage building the official binaries since we won’t need to have some super locked down builder machine.

This effort definitely needs help, here are some specific things where people can jump in:

  • quite hard to even find the git tags that Google uses to make their builds
  • write the scripts to make the sdkmanager repos from our binaries
  • get sdkmanager packaged in Debian
  • creating an Ansible automation to create the buildserver for these machines
  • building all versions of the NDK based on the existing build scripts
  • create build script for the Android Support libraries
  • setup maven repo for all of the free software libraries
  • scripted setup to automatically publish diffoscope output comparing our builds to Google’s official builds

Reverse engineer library used to receive push notifications through Google servers (GCM/Firebase)
#2

JFYI, ReplicantOS team did SDK builds but gave up for some reason (there’s a relevant bug in their redmine). Yet I’m sure you still can find people with that experience.


#3

5 posts were split to a new topic: Reverse engineer library used to receive push notifications through Google servers (GCM/Firebase)


#4

Replicant shifted focus off SDK/NDK because they thought Debian would do it - but providing several clean Debian package sets of complete SDK platforms turned out quite hard and time consuming, so possibly they could revise their position and help with this project :slight_smile:

On other news while perusing git history I stumbled on the sdk_repo goal modifier in the SDK build system to create separate packages as well as XML package lists.
And also found out how to build system images for alternate architectures e.g. make PRODUCT-sdk_arm64-sdk.
More doc at https://android-rebuilds.beuc.net/SDK/
Two steps closer to drop-in rebuilds :slight_smile:

I put some of the generated files for SDK 8 at:
https://android-rebuilds.beuc.net/testrepo/
Maybe it’s time to start playing around with a free sdkmanager repo? :slight_smile: