Android open source AOSP size has grown to be very huge now, often pushing over 100GB in disk size. In this post, we look at 3 different ways to check out AOSP and compare their sizes.
1. Full clone – regular checkout with complete history, branch, tags and all files
repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r4
repo sync -j$(nproc)
2. Partial clone – only clone needed files with smaller-sized files initially, where the left-out files can be fetched later over the network when needed.
repo init -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r4 --partial-clone --clone-filter=blob:limit=10M
repo sync -j$(nproc)
3. Shallow clone – don’t clone history or previous revisions or other branches/tags
repo init --depth=1 -u https://android.googlesource.com/platform/manifest -b android-11.0.0_r4
repo sync -f --force-sync --no-clone-bundle --no-tags -j$(nproc)
Below is the list of disk spaces consumed by each method. Clearly the winner size-wise is shallow clone. The disadvantage is that you don’t have any revision/branch/tag information. If that is OK with you, it is the way to go. Partial clone might work for you if you have fast network, but it does not seem to save much space.
Method | Size |
---|---|
Full clone | 105GB |
Partial clone | 98GB |
Shallow clone | 77GB |
(Added later on 2/10, 2021) Additionally one may wish to set up a local AOSP mirror to reduce check out time. The total size of a full AOSP mirror is around 540GB.
mkdir aosp-mirror
cd aosp-mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync