1、download the android source code
Reference from
http://source.android.com/source/downloading.html
follow the reference:
Create the dir and export the PATH
$ mkdir ~/bin $ PATH=~/bin:$PATH
Download the repo
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo $ chmod 775 ~/bin/repo
Repo init the code version you want
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
finally sync the codes
$ repo sync // better way $ repo sync -j16
if try to stop the repo, just try
Ctrl + z
and continue the repo
$ repo sync // or $ repo sync -j16
after download, must enter "repo sync" to check the code again.
2、download the kernel
Reference from
https://android.googlesource.com/
click the kernel/common, there would be a instruction on the top:
git clone https://android.googlesource.com/kernel/common
the version for emulator
git clone https://android.googlesource.com/kernel/goldfish
3、Compile the source code
1) check the build environment
http://source.android.com/source/initializing.html
2) compile
$ cd ~/Android/source_code/ $ make // or $ make -j4
3) there would be the files in the following dir
$ ls out/host/linux-x86/bin/ | grep emulator emulator emulator64-arm emulator64-mips emulator64-x86 emulator-arm emulator-mips emulator_renderer emulator-ui emulator-x86 $ ls out/target/product/generic/ | grep img ramdisk.img system.img userdata.img
4、 Compile the kernel
$ cd goldfish/ $ ls
but there is no files now.
checkout for the real codes.
$ git checkout android-goldfish-2.6.29 master origin/linux-goldfish-3.0-wip android-goldfish-3.4 origin/android-goldfish-2.6.29 origin/master HEAD origin/android-goldfish-3.4 linux-goldfish-3.0-wip origin/HEAD
choose the version you want
$ git checkout android-goldfish-2.6.29 Checking out files: 100% (26821/26821), done. Branch android-goldfish-2.6.29 set up to track remote branch android-goldfish-2.6.29 from origin. 切换到一个新分支 'android-goldfish-2.6.29'
then
$ ls arch CREDITS drivers include Kbuild MAINTAINERS net samples sound block crypto firmware init kernel Makefile README scripts usr COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
compile the kernel
1) crrect the Mafile
$ vim Makefile //correct the following messenge #ARCH ?= $(SUBARCH) ARCH ?= arm CROSS_COMPILE ?= arm-none-linux-gnueabi-
2) make menuconfig
$ make menuconfig >> Save an Alternate Configuration File
3) make
TIPS : there would be error without libnucurses
$ sudo apt-get install libncurses5 libncurses5-dev // in AMD64 $ sudo apt-get install libncurses5 libncurses5-dev $ sudo apt-get install ia32-libs $ sudo apt-get install lib32ncurses5 lib32ncurses5-dev