Android 4.2源代码编译教程

2015/10/21 Android

背景

Android源代码作为公开源码,不读一下,总感觉Android学的不够(其实本来就不够),心里不踏实.这里就Nexus 7为基础,对Android 4.2源代码进行了编译,希望自己能够装X成功!

编译环境搭建

基础环境

编译所需工具链

在Ubuntu 联网的情况下,通过下面命令安装所需的包:

sudo apt-get install gcc-multilib bison g++-multilib git gperf libxml2-utils make libncurses5-dev lib32ncurses5-dev libswitch-perl libgl1-mesa-glx:i386 libglapi-mesa:i386 libgl1-mesa-dev:i386 python-networkx zlib1g-dev:i386 zip schedtool xsltproc flex

因为Android SDK没有64位版本,64位的操作系统需安装如下支持包:

sudo apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1

通过/tool/android 启动sdk-tool,后借助翻墙软件,可下载相应的工具,如adb,fastboot等.

下载完,需要将JDK,SDK等软件添加到/etc/profile 中,以便添加到环境变量中.

源码下载

System层代码

Android 源代码除了谷歌官方提供的之外,还有一个重要的组织:CM,常年提供各种适配机型的源代码.这里就是使用CM的源代码.通过如下命令: //这里假设准备把源代码下载到:/home/xbb/android/

mkdir -p <源代码目录>
curl http://git-repo.googlecode.com/files/repo-1.12 > <源代码目录>/bin/repo
export PATH=${PATH}:<源代码目录>/bin/repo
repo -init -u git://github.com/CyanogenMod/android.git -b cm-10.1
repo sync

同步完成,即完成了system层代码的下载.

HAL层源代码

命令:

<源代码目录>/ventor/cm/get-prebuilts
source <源代码目录>/build/envsetup/.sh
breakfast crepo

Linux内核源代码

上述同步即会下载内核代码,不过速度较慢,如果/device/中的内容下载玩,可以停止同步,手动下载相应的内核代码. 内核代码可以在CM官网,wiki中选择自己的Devices 来选择内核下载 Nexus 7 的内核下载地址为:下载

下载完成后,解压到:

<源代码目录>/kernel/asus/grouper/ 

如果不想解压,也可自己到相应的目录,使用git对相应的代码进行clone.

下载完代码,发现<源代码目录>/.repo中有大量缓冲文件,文件可删除,但是后续就不方便切换分支了. 代码总大小:约27G。

源码编译

你好

编译准备

编译前需要从目标设备上下载相应的配置文件.需要adb支持和硬件支持.命令:

<源代码目录>/device/asus/grouper/extract-files.sh

下载完即可编译:

export USE_CCACHE=1
croot
brunch grouper

编译成功后,可得到:

<源代码目录>/out/target/product/XXXX.zip //烧录文件
<源代码目录>/out/target/product/recovery.img //recovery 文件

其他

编译时长:约10小时 编译后总大小:45G

系统烧录

解锁

Nexus 7默认的bootloader是锁定的,需要解锁后才能进行正常的烧录,在正常开机状态下通过命令:

adb reboot bootloder //系统进入bootloader模式

也可在关机状态下,同时按下”开机键、音量+、音量-“,开机后即进入bootloader模式. 通过命令:

fastboot oem unlock //解锁硬件

期间可能会弹出删除数据的提示,点”是”继续.当显示 lock status=unlock 即为解锁成功!

刷入recovery

通过命令输入recovery:

fastboot flash recovery recovery.img //刷入recovery

刷入过程很快,刷完即可进入recovery模式.

刷入系统

开机重启,进入系统,因为unlock删除了数据,所以进入系统后,会有系统欢迎页面.完成后将编译好的XXXX.zip复制到手机里面.关机,开机时,同时按下”开机键、音量+、音量-“,进入recovery模式. 在recovery菜单中依次选择:

wipe data/factory reset -> YES
wipe cache partition -> YES
install zip -> choose zip from sdcard -> XXXX.zip路径

刷入系统完成即可重启,体验自己亲手制作的智能操作系统~

Search

    Post Directory