编译Android4.4.2系统源码,烧录到nexus5真机上

Ubuntu14.04 x64安装jdk6

(1)下载jdk-6u45-linux-x64.bin
(2)解压bin文件

1
2
$ chmod u+x jdk-6u45-linux-x64.bin
$ ./jdk-6u45-linux-x64.bin

(3)将jdk1.6.0_45文件夹移动到/usr/lib/jvm目录下

1
2
$ sudo mkdir -p /usr/lib/jvm
$ sudo mv jdk1.6.0_45 /usr/lib/jvm/

(4)设置环境变量

1
$ sudo vim ~/.profile

在文件末尾加上

1
2
3
4
export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
export JRE_HOME=/usr/lib/jvm/jdk1.6.0_45/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

(5)验证java安装成功

1
$ java -version

安装所需的库

1
2
3
$ sudo apt-get install git-core bison zlib1g-dev flex libx11-dev gperf gnupg libsdl-dev libesd0-dev libwxgtk2.8-dev build-essential zip curl libncurses5-dev zlib1g-dev

$ sudo apt-get install libc6-dev-i386 lib32z1 lib32stdc++6 libxml2-utils

开始编译

1
2
3
$ source build/envsetup.sh
$ lunch 8 // 我的手机是nexus5 hammerhead所以选这个
$ make -j8

启动模拟器

1
2
3
$ source build/envsetup.sh
$ lunch
$ emulator

烧录到真机

下载nexus5驱动(需要梯子),或者下载我已经下载的nexus5百度网盘版
三个压缩文件,解压出三个sh文件,放到源代码根目录。
执行这三个sh文件,自动提取出驱动到vendor目录中。
再次编译:

1
2
3
$ . build/envsetup.sh
$ lunch 8
$ make -j8

切换到root:

1
2
3
4
$ sudo -s
# export ANDROID_PRODUCT_OUT=/home/fanrong/Computer/Android/android4.4.2/out/target/product/hammerhead
# adb reboot bootloader
# fastboot flashall -w

会出现错误:
command not found

1
2
# ln -s /home/fanrong/Computer/Android/adt-bundle-linux/sdk/platform-tools/fastboot /usr/local/sbin/fastboot
# ln -s /home/fanrong/Computer/Android/adt-bundle-linux/sdk/platform-tools/adb /usr/local/sbin/adb

执行完fastboot手机会自动重新启动,就能用上自己编译的Android系统了。