Skip to content

Instantly share code, notes, and snippets.

@cketti
Created August 7, 2018 16:21
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save cketti/71475220a08c9ee43fd48ecaaf7046a5 to your computer and use it in GitHub Desktop.
Save cketti/71475220a08c9ee43fd48ecaaf7046a5 to your computer and use it in GitHub Desktop.
Build your own android-28 sources

Build "Sources for Android 28" so you can comfortably browse the Android API source in Android Studio.

  1. Collect source files
mkdir android-sdk-source-build
cd android-sdk-source-build

mkdir -p frameworks/base

# Fetch repositories that contain the sources we're interested in
git clone --depth 1 https://android.googlesource.com/platform/frameworks/base -b android-9.0.0_r3 frameworks/base
git clone --depth 1 https://android.googlesource.com/platform/libcore -b android-9.0.0_r3
git clone --depth 1 https://android.googlesource.com/platform/development -b android-9.0.0_r3

# Create a basic source.properties file
echo -e "Pkg.UserSrc=false\nPkg.Revision=1\nAndroidVersion.ApiLevel=28" > source.properties

# Modify the script to create a sources ZIP to use "android-28" as top-level directory
cat development/build/tools/mk_sources_zip.py | sed -e 's/TOP_FOLDER = .*/TOP_FOLDER = "android-28"/' > my_mk_sources_zip.py

# Run the script to create android-28-sources.zip
python my_mk_sources_zip.py -z source.properties android-28-sources.zip .
  1. Extract into Android SDK source directory
unzip android-28-sources.zip -d ${ANDROID_HOME}/sources
  1. Restart Android Studio and SDK sources should show up.
@cketti
Copy link
Author

cketti commented Aug 7, 2018

Or just download the ZIP: https://hugo.cketti.eu/android-28-sources.zip (32 MB)

@rock3r
Copy link

rock3r commented Aug 7, 2018

I like the lazy approach 👍 thanks @cketti!

@MIkeeJY
Copy link

MIkeeJY commented Aug 24, 2019

Anyone got android sdk 29 source code?

@consp1racy
Copy link

consp1racy commented Sep 3, 2019

@MIkeeJY

Replace android-9.0.0_r3 branches with android10-release branches.

# Create a basic source.properties file
echo -e "Pkg.UserSrc=false\nPkg.Revision=0\nAndroidVersion.ApiLevel=29" > source.properties

I used Pkg.Revision=0 so SDK manager can update to official revision 1 when it comes out.

Replace android-28 in the last two commands with android-29.

python my_mk_sources_zip.py source.properties android-29-sources.zip .

I dropped the -z option because I run in Windows and there's no "zip system exec". You'll need Python 2.7 to run the script.

The rest is the same.

@ni554n
Copy link

ni554n commented Oct 28, 2021

I have automated this script using Github Workflow here: https://github.com/ni554n/sources-for-android-sdk

You can download the package and watch for Releases to get notified of the upcoming API source builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment