You've successfully subscribed to Nicholas Workshop
Great! Next, complete checkout for full access to Nicholas Workshop
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.
Success! Your billing info is updated.
Billing info update failed.

AOSP Building Guide on CentOS7 And RHEL7

Nicholas Wong
Nicholas Wong

Install libraries

# fetch source
sudo yum install git
sudo yum install wget
# to compile
sudo yum install java-1.7.0-openjdk
sudo yum install java-1.7.0-openjdk-devel
sudo yum install glibc.i686
sudo yum install libstdc++.i686
sudo yum install bison
sudo yum install zip
sudo yum install unzip

Install repo

mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

Fetch source

pick the branch you want

mkdir ~/aosp
cd ~/aosp
repo init -u https://android.googlesource.com/platform/manifest -b android-6.0.0_r1
repo sync

Fetch and extract binaries for hammerhead

https://developers.google.com/android/nexus/drivers#hammerheadmra58k

cd ~/aosp
wget https://dl.google.com/dl/android/hammerhead/qcom-hammerhead-mra58k-ff98ab07.tgz
wget https://dl.google.com/dl/android/hammerhead/lge-hammerhead-mra58k-25d00e3d.tgz
wget https://dl.google.com/dl/android/hammerhead/broadcom-hammerhead-mra58k-bed5b700.tgz
ls *.tgz |xargs -n1 tar -zxvf
for i in extract*; do sed -n '/tail/p' $i | sed "s/\$0/$i/" | sh; done

Fetch and extract binaries for fugu

https://developers.google.com/android/nexus/drivers#fugumra58k

cd ~/aosp
wget https://dl.google.com/dl/android/aosp/asus-fugu-mra58k-d95031a4.tgz
wget https://dl.google.com/dl/android/aosp/broadcom-fugu-mra58k-47a937a0.tgz
wget https://dl.google.com/dl/android/aosp/google-fugu-mra58k-97e3d519.tgz
wget https://dl.google.com/dl/android/aosp/intel-fugu-mra58k-3a7b47c4.tgz
wget https://dl.google.com/dl/android/aosp/widevine-fugu-mra58k-34f49f9a.tgz
ls *.tgz |xargs -n1 tar -zxvf 
rm *.tgz
for i in extract*.sh; do sed -n '/tail/p' $i | sed "s/\$0/$i/" | sh; done
rm extract*.sh

Setup envornment for hammerhead

cd ~/aosp
. build/envsetup.sh
lunch 17

Setup envornment for fugu

cd ~/aosp
. build/envsetup.sh
lunch 10

Run

cd ~/aosp
export USE_CCACHE=1
export CCACHE_DIR=~/.ccache
prebuilts/misc/linux-x86/ccache/ccache -M 50G
make -j16

Download images for hammerhead

REMOTE_PATH="<ip-address>:~/aosp/out/target/product/hammerhead/"
scp ${REMOTE_PATH}\{android-info.txt,boot.img,recovery.img,cache.img,userdata.img,system.img\} .

Download images for fugu

REMOTE_PATH="<ip-address>:~/aosp/out/target/product/fugu/"
scp ${REMOTE_PATH}\{android-info.txt,boot.img,recovery.img,cache.img,userdata.img,system.img\} .

Flash images

fastboot flash boot boot.img 
fastboot flash cache cache.img 
fastboot flash recovery recovery.img 
fastboot flash system system.img 
fastboot flash userdata userdata.img 
fastboot reboot
CentOS 7 AOSP Building Guide
CentOS 7 AOSP Building Guide. GitHub Gist: instantly share code, notes, and snippets.
Android Dev

Nicholas Wong

Fullstack software engineer with strong background in computer science and extensive experience in software engineering and architecture. Studied in NYU, worked in Yahoo, Rakuten and Manulife.