Android源码下载编译刷机指南
2014-07-25 16:43
447 查看
1. 环境配置
本节介绍如何设置你的本地工作环境来构建Android的源文件。你将需要使用Linux OS,目前不支持Windows下的建筑。该源码下载约8.5GB大小。您将需要超过30GB可用来完成一个单一的构建,以及高达100GB(或以上)的全套版本。
本文档完全参考android官方网站:http://source.android.com/source/initializing.html
Linux编译环境搭建
Android的构建经常在Ubuntu LTS(12.04)版本做编译,而且操作系统版本为64-bit。安装JDK
库依赖安装
$ 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-glx:i386
\
libgl1-mesa-dev g++-multilib mingw32tofrodos
\
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1
/usr/lib/i386-linux-gnu/libGL.so
2. 源码下载
Android的源代码树位于由谷歌托管的一个Git仓库。本节介绍如何下载源代码树中特定Android版本源代码。安装repo
repo是一种工具,可以更容易地使用Git在了Android的环境中工作,它是下载源码的主要工具。1. 在主目录下创建bin文件夹,并添加进入环境变量
$ mkdir ~/bin
$ PATH=~/bin:$PATH
2. 下载repo工具,并且赋予可执行权限
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
初始化repo客户端
安装完repo后,设置下载android源码的路径,开始下载源码1. 创建一个源码存放路径,然后进入该路径
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
2. 运行 repo init 来初始化你想要下载的源码,使用-b选择源码版本
$ repo init -u https://android.googlesource.com/platform/manifest-b android-4.4.4_r1
注:源码版本需要根据安卓机器型号和版本参照,详细参照下面链接
http://source.android.com/source/build-numbers.html
下载源码
$ repo sync
3. 编译源码
下载专有驱动文件
Android的开源项目,不能只从纯粹的源代码给不同手机终端使用,需要额外的不同机器硬件相关的专利库运行,专为硬件图形加速,这种库称为专有驱动。这些专有驱动是不开源的,需要去相关网站下载。https://developers.google.com/android/nexus/drivers
如下所示,以nexus5为例,
Nexus 5 (GSM/LTE) binaries for Android4.4.4 (KTU84P)
Hardware Component | Company | Download | MD5 Checksum | SHA-1 Checksum |
NFC, Bluetooth, Wi-Fi | Broadcom | Link | 3b0c5fc786daf79f016493c05bf5f0f2 | 5ddada9ea77f750d3a032e62f1ef9d324b4fa152 |
Camera, Sensors, Audio | LG | Link | a4c4935fcb438ea72782d7179596ea13 | a691be8188d179a3951b8af4551b2595d81156bd |
Graphics, GSM, Camera, GPS, Sensors, Media, DSP, USB | Qualcomm | Link | f1cb5b7c87cddb6cc0493eb9e53c6ee4 | 88178b6deb2ffc8481588004ac9061398ed43f0d |
% wgethttps://dl.google.com/dl/android/aosp/lge-mako-jwr66y-a85ca75e.tgz
% tar -zxvf lge-mako-jwr66y-a85ca75e.tgz
% ./extract-lge-mako.sh # (view the license and then type"I ACCEPT")
...
% wgethttps://dl.google.com/dl/android/aosp/qcom-mako-jwr66y-a5becaf1.tgz
% tar -zxvf qcom-mako-jwr66y-a5becaf1.tgz
% ./extract-qcom-mako.sh # (view the license and thentype "I ACCEPT")
...
% wgethttps://dl.google.com/dl/android/aosp/broadcom-mako-jwr66y-137ef66d.tgz
% tar -zxvf broadcom-mako-jwr66y-137ef66d.tgz
% ./extract-broadcom-mako.sh # (view the license and thentype "I ACCEPT")
解压专有文件后,通过脚本释放文件到源码中,准备编译工作。
初始化编译
$ . build/envsetup.sh
选择编译目标
通过lunch命令选择相应的目标,它由BUILD-BUILDTYPE形式组成,build是各个手机版本代号,buildtype为编译的类型。$ lunch aosp_hammerhead-userdebug
Build表
Device | Code name | Build configuration |
Nexus 5 (GSM/LTE) | hammerhead | aosp_hammerhead-userdebug |
Nexus 7 (Wi-Fi) | razor (flo) | aosp_flo-userdebug |
Nexus 7 (Mobile) | razorg (deb) | aosp_deb-userdebug |
Nexus 10 | mantaray (manta) | full_manta-userdebug |
Nexus 4 | occam (mako) | full_mako-userdebug |
Nexus 7 (Wi-Fi) | nakasi (grouper) | full_grouper-userdebug |
Nexus 7 (Mobile) | nakasig (tilapia) | full_tilapia-userdebug |
Galaxy Nexus (GSM/HSPA+) | yakju (maguro) | full_maguro-userdebug |
Galaxy Nexus (Verizon) | mysid (toro) | aosp_toro-userdebug |
Galaxy Nexus (Experimental) | mysidspr (toroplus) | aosp_toroplus-userdebug |
PandaBoard (Archived) | panda | aosp_panda-userdebug |
Motorola Xoom (U.S. Wi-Fi) | wingray | full_wingray-userdebug |
Nexus S | soju (crespo) | full_crespo-userdebug |
Nexus S 4G | sojus (crespo4g) | full_crespo4g-userdebug |
Buildtype | Use |
user | 开放功能最少,适合编译发行版rom |
userdebug | 跟user版本很类似,但是开放调试功能 |
eng | 配置了额外的编译选项 |
开始编译
使用GNU make编译,并行任务-JN,n表示的硬件CPU的能力。例如2个CPU,每个核心最多建立四个线程,最快建立J8。$ make –j8
4. 刷机
解锁bootloader
bootloader默认情况下是锁定的。在设备处于FASTBOOT模式,引导程序执行以下命令被解锁。fastboot oem unlock
烧录镜像
在编译完后,输出目录会生成相应的rom镜像文件,使手机进入fastboot模式,输入以下命令,即可完成刷机。% cd out/target/product/<device> # (replace <device> with correct value for your device)
% fastboot flash boot boot.img
% fastboot flash system system.img
% fastboot flash userdata userdata.img
相关文章推荐
- Android系统源码下载与编译、刷机--Nexus6实测
- Android 第三方ROM CyanogenMod 源码下载,编译,刷机
- Android 第三方ROM CyanogenMod 源码下载,编译,刷机
- AOSP ON MAKO(在NEXUS 4上刷ANDROID 4.4 源码包-下载/配置/编译/刷机)
- Android下载、编译系统源码和刷机(非常详细)
- Android系统源码与内核下载编译及刷机讲解
- 【Android 5.1.1_r1+Nexus4】Android源码的下载、编译到刷机
- Android 第三方ROM CyanogenMod 源码下载,编译,刷机
- Android系统源码下载与编译、刷机--Nexus6实测
- Chameleon(变色龙)源码下载编译指南
- android系统源码的下载及编译
- ubuntu下安装eclipse以及下载编译android源码!
- Android平台源码下载以及编译--ubuntu 11.04
- Android 源码的下载及编译
- Android源码下载和编译Tips
- Ubuntu环境Android平台源码下载及编译
- Ubuntu 10.04(64位)下载并编译 Android 2.2 源码[只有11条命令]
- ubuntu下载编译android源码(二)
- 32 位ubunt u下载编译android2.2源码的问题之一