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.
(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