[Android] vaibhavpandeyvpz:
I have seen a lot of people like me living in low bandwidth regions unable to successfully download complete android (or derivatives) source code in most cases to build their own ROM. SO I just tried & came up with an idea to successfully compress up latest sources from these 4 flavor & share it with everyone in need.

AOKP:

kitkat.tar.xz - 2.24 GB - DropBox, Mega, AndroidFileHost (KitKat)

kitkat.excluded.tar.xz - 973.9 MB - DropBox, Mega, FileFactory, AndroidFileHost (KitKat - not including prebuilt/* & external/*)

kitkat.repo.tar.xz - 7.46 GB - DropBox, Mega (KitKat - .repo/* folder)

AOSP:

android-4.4.4_r2.tar.xz - 2.38 GB - DropBox, Mega, AndroidFileHost (4.4.4_r2)

android-4.4.4_r2.excluded.tar.xz - 1.07 GB - DropBox, Mega, FileFactory, AndroidFileHost (4.4.4_r2 - not including prebuilt/* & external/*)

android-4.4.4_r2.repo.tar.xz - 24.3 GB - Uploading (4.4.4_r2 - .repo/* folder)

CyanogenMod:

cm-11.0.tar.xz - 2.43 GB - DropBox, Mega, AndroidFileHost (11.0)

cm-11.0.excluded.tar.xz - 1.05 GB - DropBox, Mega, FileFactory, AndroidFileHost (11.0 - not including prebuilt/* & external/*)

cm-11.0.repo.tar.xz - 10.28 GB - DropBox, Mega (11.0 - .repo/* folder)

MIUI (Patchrom):

kitkat.tar.xz - 568.2 MB - DropBox, Mega, FileFactory, AndroidFileHost (KitKat)

kitkat.repo.tar.xz - 9.72 GB - DropBox, Mega (KitKat - .repo/* folder)

sync.sh:

# Declare all variables to be used within
BASE_PATH=`pwd`
BASE_PATH_SOURCE="$BASE_PATH/src"

# Add repo script location to current path
if [[ ":$PATH:" != *":$BASE_PATH/bin:"* ]]
then
PATH="${PATH:+"$PATH:"}$BASE_PATH/bin"
fi

# Export repo options based on requested revision
case "$1" in
("aokp")
BASE_BRANCH="$2"
BASE_URL="git://github.com/AOKP/platform_manifest.git"
;;
("aosp")
BASE_BRANCH="android-$2"
BASE_URL="https://android.googlesource.com/platform/manifest"
;;
("aospa")
BASE_BRANCH="$2"
BASE_URL="git://github.com/AOSPA/manifest.git"
;;
("aospa-legacy")
BASE_BRANCH="$2"
BASE_URL="git://github.com/AOSPA-legacy/manifest.git"
;;
("gummy")
BASE_BRANCH="$2"
BASE_URL="git://github.com/TEAM-Gummy/platform_manifest.git"
;;
("ia")
BASE_BRANCH="$2"
BASE_URL="git://github.com/android-ia/platform_manifest.git"
;;
("cm")
BASE_BRANCH="cm-$2"
BASE_URL="https://github.com/CyanogenMod/android.git"
;;
("mahdi")
BASE_BRANCH="$2"
BASE_URL="git://github.com/Mahdi-Rom/platform_manifest.git"
;;
("miui")
BASE_BRANCH="$2"
BASE_URL="git://github.com/MiCode/patchrom.git"
;;
("omni")
BASE_BRANCH="$2"
BASE_URL="git://github.com/omnirom/android.git"
;;
("ubuntu")
BASE_BRANCH="phablet-$2"
BASE_URL="https://code-review.phablet.ubuntu.com/p/aosp/platform/manifest.git"
;;
*)
exit 1
esac

# Create missing directories (if any)
if [ ! -d "$BASE_PATH_SOURCE" ]
then
mkdir "$BASE_PATH_SOURCE"
fi

if [ ! -d "$BASE_PATH_SOURCE/$1" ]
then
mkdir "$BASE_PATH_SOURCE/$1"
fi

if [ ! -d "$BASE_PATH_SOURCE/$1/$BASE_BRANCH" ]
then
mkdir "$BASE_PATH_SOURCE/$1/$BASE_BRANCH"
fi

# Change to source folder for initializing repo
cd "$BASE_PATH_SOURCE/$1/$BASE_BRANCH"

# Initalize & fetch repo manifest from Google servers
repo init \
-u "$BASE_URL" \
-b "$BASE_BRANCH"

# Start downloading & syncing repositories with remote
repo sync -q

pack.sh:

# Declare all variables to be used within
BASE_PATH=`pwd`
BASE_PATH_PACK="$BASE_PATH/pack"
BASE_PATH_SOURCE="$BASE_PATH/src"

# Add repo script location to current path
if [[ ":$PATH:" != *":$BASE_PATH/bin:"* ]]
then
PATH="${PATH:+"$PATH:"}$BASE_PATH/bin"
fi

# Export repo options based on requested revision
if [[ $1 == "aokp" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "aosp" ]]
then
BASE_BRANCH="android-$2"
elif [[ $1 == "aospa" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "aospa-legacy" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "aospa" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "cm" ]]
then
BASE_BRANCH="cm-$2"
elif [[ $1 == "ia" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "gummy" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "mahdi" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "miui" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "omni" ]]
then
BASE_BRANCH="$2"
elif [[ $1 == "ubuntu" ]]
then
BASE_BRANCH="phablet-$2"
else
exit 1
fi

# Create missing directories (if any)
if [ ! -d "$BASE_PATH_PACK" ]
then
mkdir "$BASE_PATH_PACK"
fi

if [ ! -d "$BASE_PATH_PACK/$1" ]
then
mkdir "$BASE_PATH_PACK/$1"
fi

# Check for options to exclude extras or compress only repo
TAR_OPTIONS="--exclude=\"$BASE_PATH_SOURCE/$1/$BASE_BRANCH/.repo/*\""
TAR_PATH="$BASE_PATH_SOURCE/$1/$BASE_BRANCH"
TAR_POSTFIX=""

if [[ -n $3 ]]
then
if [[ $3 == "--exclude" ]]
then
TAR_OPTIONS="$TAR_OPTIONS --exclude=\"$BASE_PATH_SOURCE/$1/$BASE_BRANCH/external/*\" --exclude=\"$BASE_PATH_SOURCE/$1/$BASE_BRANCH/prebuilts/*\""
TAR_POSTFIX=".excluded"
elif [[ $3 == "--repo" ]]
then
TAR_OPTIONS=""
TAR_PATH="$TAR_PATH/.repo"
TAR_POSTFIX=".repo"
fi
fi

# Compress it to maximum-possible *.tar.xz format
echo "Creating tarball archive @ $BASE_PATH_PACK/$1/$BASE_BRANCH$TAR_POSTFIX.tar.xz"
tar $TAR_OPTIONS -cf - \"$TAR_PATH\" | xz -9 -zf - > "$BASE_PATH_PACK/$1/$BASE_BRANCH$TAR_POSTFIX.tar.xz"
XZ_SIZE=`du -h "$BASE_PATH_PACK/$1/$BASE_BRANCH$TAR_POSTFIX.tar.xz"`
echo "Compressed: $XZ_SIZE"

Run the above script with flavor + branch arguments as a nohup process so that the process doesn't get killed on tty session logout.

nohup bash /path/to/sync.sh aosp 4.4.4_r2 &

EDIT

:

My Google Compute Engine credit is over (they even charged a few on my credit card), so unable to upload more sources. But uploading my scripts I used, so that anyone who got a VPS, can fetch sources & archive them for upload if he/she gets time to.

EDIT

:

AOKP & AOSP files are fine. re-uploading cm-11.0.tar.xz.

EDIT

:

Added a couple more archives to AndroidFileHost.

EDIT

:

Seems like AndroidFileHost does not even allow files larger than 2GBs. I strongly doubt the files which weigh over 2 GB are complete so you better avoid downloading them from AndroidFileHost. Looking for another mirror.

EDIT

:

depositfiles sucks, after uploading 7+ GBs, it only shows ~835 MBs each for files over 2 GBs. AndroidFileHost is added as alternative.

EDIT

:

FTPing most archives to depositfiles. 120KBps Xfer speed makes me lol xD, FileFactory was 5.1 MBps.

EDIT

:

Added FileFactory as a mirror for files smaller than 2 GBs.

EDIT

:

Added Mega as a mirror (+10 GB monthly bandwidth, not too much). Working on MediaFire. I request downloaders to create a free Mega account, then click on the grey button that says Import to your Mega drive instead of the Red download button & then download it from your drive. It might help save the bandwidth & keep the file available to other seekers.

EDIT

:

Just received an email stating Dropbox has suspended my public links (10 GB daily bandwidth). Will try to upload all of 'em to Mega tonight. So you can just wait 10-12 hours from this edit.

Thanks to: Google Compute Engine, Mega, Dropbox, HTC, Samsung