smaller aosp downloads- JBQ
groups for linaro source
current groups for aosp source
a miscellaneous reference
Would anyone have thoughts to add addtional group tags to the default manifest?
The default.xml could be organized and commented to break up
core (bare metal aosp)
omni (omnirom specific)
build (toolchain and things for compiling)
developer tools (I personally think things like eclipse and adt are fluff even for downloading since I'm probably downloading these types of things independently)
chipset (arm, x86, mips)
device (grouper, mako, etc)
host (ex: windows, mac, linux)
I could then repo init with
repo init -u https://github.com/omnirom/android.git
-b android-4.3 -g core,omni,build,arm,linux,mako
and pull down 4 GB instead of 10 GB
original announcement from JBQ
AOSP is big, and downloading and storing all of it consumes a fair
amount of bandwidth and space.
We've been investigating ways to make it smaller. One visible part of
that work is that the master tree is "only" 6.5GB, while Jelly Bean is
We're aiming to go further. Today, I'm deploying an experiment that
can help shrink things.
Repo recently added a feature called "manifest groups" that allows to
restrict the list of projects being downloaded.
I've set up the manifest for the AOSP master branch to include a few
groups. Here are the groups I added:
"device": files that are specific to flagship devices but aren't
necessary to build a generic platform.
"darwin": files that are only necessary when building on a darwin host
"linux": files that are only necessary when building on a linux host.
"arm": files that are only necessary when building for ARM targets.
"mips": files that are only necessary when building for MIPS targets.
"x86": files that are only necessary when building for IA targets.
Here's an example, which allows to build the ARM emulator on a linux
host. In this case, the download is 3.6GB, which is a significant
improvement over a full tree:
repo init -u [URI] -g default,-darwin,-device,-x86,-mips
The syntax is hopefully self-explanatory. Note that this is only
currently supported in the master branch.
I'm looking at the possible evolutions:
-marking the projects for individual device families (i.e. crespo,
tuna, stingray, panda), so that it's possible to download the files
for one specific device without getting them all.
-marking the projects that are necessary to work on the developer tools.
-marking the projects that are necessary to work on CTS.
There's also a possibility that repo will eventually know to
automatically ignore host-specific projects.
Longer-term, we're investigating the possibility of not downloading
the entire source history for projects where it's both large and
I'm open to feedback and suggestions. Please let me know whether
that's useful, whether that works, which of the future directions
would be useful... and which future features I've forgotten that'd
make life easier.
Jean-Baptiste M. "JBQ" Queru
Technical Lead, Android Open Source Project, Google.