编译Android 4.4源代码并烧录到Nexus4

环境准备:

基本环境:ubuntu-12.04-desktop-64bit(裸机或者Windows下虚拟机安装均可,14.04也可以)

其他要求:空闲磁盘空间100G以上,代码部分接近10G,内存越大越好。

==========================================

第一部分:环境初始化

==========================================

1. 安装Oracle JDK

注意:如果编译Android4.4不能用OpenJDK,必须用Oracle JDK1.6,1.7目前是不支持的。

2. 安装必备工具软件

$sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev

$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so  

3. 配置ccache

安装ccache并将export USE_CCACHE=1加入到~/.bashrc中。

 

==========================================

第二部分:源代码下载

========================================== 

利用已经下载好的源代码进行编译,省去了源代码的下载的繁复过程

下载地址:115网盘 http://115.com/lb/5lbcb7joklq

 

==========================================

第三部分:源代码编译 

==========================================

1. 设置环境变量

   export ANDROID_HOME=~/android4.4
   export PATH=$PATH:${ANDROID_HOME}/out/host/linux-x86/bin
   export ANDROID_PRODUCT_OUT=${ANDROID_HOME}/out/target/product/mako

 

2.下载必须的源码刷手机的驱动文件并配置

  1. 进 https://developers.google.com/android/nexus/drivers 根据手机型号选对应的驱动包

  2. 下载三个驱动包: broadcom-mako-krt16s-f54c9ff9.tgz, lge-mako-krt16s-23ef7d53.tgz, qcom-mako-krt16s-cc4bd932.tgz 

  3. 解压到源码根目录(也就是~/android4.4)

  4. 运行三个解压后的sh文件, 在根目录下会多出vendor目录, 这就是硬件驱动目录

3. 开始编译

  1. 导入编译android环境变量: source build/envsetup.sh

  2. 设置编译缓存大小: prebuilts/misc/linux-x86/ccache/ccache -M 50G

  3. 选择编译终端类型: lunch full_mako-userdebug

  4. 编译源码: make -j4

==========================================

第四部分:编译好的系统刷入手机

==========================================

1. 查看out目录

查看是否生成 system.img boot.img recovery.img userdata.img等需要的文件

 

2.刷入手机

进入 system.img所在目录

1) 进入刷机模式: adb reboot bootloader

fastboot format cache

fastboot format userdata

2) 刷p_w_picpath进手机:sudo fastboot -w flashall  

或者分别刷入 fastboot flash recovery recovery.img

          fastboot flash  boot boot.img

       fastboot flash system system.img

       fastboot flash userdata userdata.img 进入手机