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

I built the F-Droid system images using the AOSP source code without any modifications.

To include the privileged extension it simply needs to be placed in the AOSP source tree, and then built via PRODUCT_PACKAGES += F-DroidPrivilegedExtension

You should definitely generate the XMLs via the script, that’s what I did for the system images. contains the scripts and files used.

Thanks for the pointers.
@cdesai There doesn’t seem to be any occurrence of PRODUCT in your scripts - did you use some equivalent?

(also the XML bits generated by the rebuilds already use that script:)

/bin/bash -c "development/build/tools/	            out/host/linux-x86/sdk/sdk_x86_64/repository.xml prebuilts/devtools/repository/sdk-repository-10.xsd  build-tools linux out/host/linux-x86/sdk/sdk_x86_64// platform-tools linux out/host/linux-x86/sdk/sdk_x86_64// docs linux out/host/linux-x86/sdk/sdk_x86_64// platforms linux out/host/linux-x86/sdk/sdk_x86_64// samples linux out/host/linux-x86/sdk/sdk_x86_64// sources linux out/host/linux-x86/sdk/sdk_x86_64//"

Starting from a file from Google with a huge proprietary license on top doesn’t sound good.
Before rebuilding the XML this or that way, we need to be able to actually test it though :slight_smile:
I had made a quick skim in sdklibs, it’s a bit hard to figure things out, some of it is depracated, and some of the sdkmanager logic is in another subproject afaics.

@Beuc For the privext, I did this hack temporarily.

Unsure as to what proprietary license you’re referring too, all of the code linked above / used by me is Apache 2.

I was answering to @hans wrt using google’s repository.xml as a starting point, sorry I wasn’t clear.

Congratulations and thank you to the people who worked for those builds to happen. If there are some guides/posts on how to use them that 'd be really helpful (if anyone can post them here or point to where they are).

Thanks for your supporting message!
Right now the easiest is downloading and extracting a bundle from but we’d like to setup the new repository so people could use grab individual components (and pick versions) directly from sdkmanager.
This requires overriding google’s repos in that tool, and setup the new repo accordingly. All help is welcome :slight_smile:

Btw I added a few static index.html so people can browse the files and get a better idea of what we got already.
@hans is the NoIndex web configuration a security measure or just a default that we could change?

I read this and I am not sure: Is a google maven repository clone planned too (with reproducible builds of the libraries if possible)? (this is the repository with the support libraries AND some closed source components which should not be cloned) This would have the benefit that Google can’t break builds by doing something stupid (it once was required to move the google maven repo to the top of the repo list because otherwise projects won’t build anymore). Moreover, it would allow developing Android Apps without interactions with Google servers (at every hit of the run button in android studio, a request is sent to check for library updates, this is not really something I like).

@l-jonas speaking for myself my main focus is the base NDK and SDK, but the project goal is providing Android dev tools without the non-free binary license.
A secondary goal is to provide dev tools to countries blocked by google.
Is the maven repository impacted by these?

Also for the privacy issue, maybe you can mitigate with a local caching proxy :slight_smile:

I set up a proxy (with HTTPS interception). The request at very run seems to be wrong. I was even able to use Android Studio without internet connection (without enabling the offline mode in the settings in Android Studio). Bad brain or this has changed during the last months.

FYI I added API-27 packages.


And @cdesai 's F-Droid-flavored sys-image for emulators :slight_smile:

1 Like

What do you mean by this?

@JosephJones check a few posts above starting at :

Looks like it is quite easy to build the “sources” zipballs, that would be nice to include in this repo:

Thanks for the recipe link!
Is there a difference with the packages that we already provide?

Ah, hehe, perhaps not, except for the file name. What do you think about using the same filenames as upstream?

Like this one?
(I didn’t do it for all the builds for now since this needs to be automated and reformatted.)

Looks great, matches upstream:

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.