Contribute to upstream projects

Android makes use of a number of other open source projects as described in Release lifecycle. Most of these projects reside within WORKING_DIRECTORYexternal/, and you can follow these steps to make the changes to those projects:

  1. Navigate to WORKING_DIRECTORY/external/upstream-project.
  2. View the METADATA file. This file usually has an entry for a URL where you can find information on contributing to the project.
  3. After your changes have been made to the upstream project, inform the Android maintainers of the new upstream release that contains your changes.

The remainder of this page provides additional information on contributing to specific upstream projects.


Most of the code for Bionic is from BSD, so unless the change is to code that's new to Bionic, make an upstream fix and then a pull of a whole new file from the appropriate BSD.

Android kernel

Make all changes upstream. For general guidance, follow How do I submit patches to Android Common Kernels and Develop Kernel Code for GKI.


Make all changes to the ICU project at external/icu (icu4c/ and icu4j/ folders) on ICU-TC. See Submitting ICU Bugs and Feature Requests for more.

Add the label "android" to all upstream Jira requests.


Most linguistic data in ICU comes from the Unicode CLDR project. Submit all requests upstream according to Contributing to CLDR and add the label "android."


Make all changes to LLVM-related projects upstream. For more information about how Google builds our toolchains from upstream source, see


Make all changes to the MirBSD Korn Shell project at external/mksh either by sending an email to miros-mksh on the domain (no subscription required to submit there) or at Launchpad.