Skip to content

Instantly share code, notes, and snippets.

@cketti
Created August 7, 2018 16:21
Show Gist options
  • 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.
@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