AOSP:Android Open Source Project
使用Linux 或 Mac OS,Windows下暂不支持。
选择分支
选择要编译的分支版本。
创建Mac OS构建环境
默认安装下,Mac OS运行在大小写保留但大小写不敏感的文件系统上。
创建一个大小写敏感的磁盘映象
方法1:使用Mac OS下的“磁盘工具”
在Mac OS下,可以使用磁盘映象创建大小写敏感的文件系统。启动磁盘工具并选择“新建映象”创建映象。完成编译需要至少25GB。确保选择“区分大小写,日志式”作为卷格式。
方法2:使用shell命令
使用下面命令创建
# hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg
上面的命令会生成一个.dmg(或.dmg.sparseimage文件),挂载该文件,就可以作为android源码编译环境。
使用下面命令扩容
# hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
android.dmg
存储在home下,可以在~/.bash_profile
中添加以下帮助函数。
执行mountAndroid
挂载映象:
# mount the android file image
function mountAndroid { hdiutil attach ~/android.dmg -mountpoint /Volumes/android; }
执行umountAndroid
卸载映象:
# unmount the android file image
function umountAndroid() { hdiutil detach /Volumes/android; }
安装JDK
Android不同版本对JDK的要求,参见Requirements
安装需求包
安装xcode
$ xcode-select --install
从macports.org安装MacPorts
确保在你的路径中,/opt/local/bin
出现在/usr/bin
前。否则,在~/.bash_profile
中添加如下内容:
export PATH=/opt/local/bin:$PATH
从MacPorts获取make, git, 和 GPG 包
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg
如果是Mac OS X v10.4,安装bison:
$ POSIXLY_CORRECT=1 sudo port install bison
从make 3.82恢复
Android 4.0.x或更早的版本,在gmake 3.82中有一个bug阻止android构建。根据下面步骤使用MacPorts安装3.81:
编辑/opt/local/etc/macports/sources.conf
,增加下面这行内容:
file:///Users/Shared/dports
然后创建这个目录:
$ mkdir /Users/Shared/dports
在dports
目录下,运行:
$ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
为该新的本地库创建一个port index
$ portindex /Users/Shared/dports
安装老版本gmake
$ sudo port install gmake @3.81
设置文件描述符限制
为了提高上限,在~/.bash_profile
中添加以下内容:
# set the number of open files to be 1024
ulimit -S -n 1024
下载源码
安装Repo
Repo是一个使Git在Android上下文环境中更容易工作的工具。Repo更多信息,参见Developing。
确保在home下有bin/
目录,并包含在你的路径中:
$ mkdir ~/bin
$ PATH=~/bin:$PATH
下载Repo工具并确保其可执行:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
对于版本1.21,repo的SHA-1校验和:b8bd1804f432ecf1bab730949c82b93b0fc5fede
对于版本1.22,repo的SHA-1校验和:da0514e484f74648a890c0467d61ca415379f791
对于版本1.23,repo的SHA-1校验和:ac9d646f6d699f6822a6bc787d3e7338ae7ab6ed
初始化Repo客户端
安装Repo后,设置你的client访问Android源码repository。
创建一个空目录保存工作文件
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
配置git。为了使用Gerrit代码review工具,需要一个注册Google账户的邮件地址。
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
运行repo init
获取Repo的最新版本。必须指定manifest的特定URL。
$ repo init -u https://android.googlesource.com/platform/manifest
为了检出branch而不是"master",指定-b
。分支列表。
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
初始化成功,你的client目录会包含.repo
目录。
下载Android源码树
从远程仓库拉取Android源码树到工作目录。
$ repo sync
For more about repo sync and other Repo commands, see the Developing section.
更多关于repo sync
或其他Repo命令信息,参见Developing。
用户认证
默认情况,访问Android源码是匿名的。为了防止对服务器的过度使用,每个IP地址一个限额。
当共享IP地址时,限额会触发一定的使用规则(如限制一定时间内的访问等)。
这种情况下,可以使用认证访问,其对每个用户使用独立的限额,而不顾IP地址。
第一步使用密钥生成器创建密钥并跟随其页面指示操作。
第二步强制认证访问,使用manifest URI:https://android.googlesource.com/a/platform/manifest。
/a/
路径前缀触发强制认证。下面的命令,转换已存在的client为使用强制认证:
$ repo init -u https://android.googlesource.com/a/platform/manifest
准备编译
如果你要编译Android6.0或更新版本,查看Compiling with Jack获取更多信息。
获取专用二进制文件
AOSP不能仅从纯代码中使用,也需要运行附加的硬件依赖库,例如硬件图形加速。有关其他资源的下载链接和设备二进制文件要求,请参阅以下部分。
下载专用二进制文件
你可以从Google's Nexus驱动程序界面 下载支持设备运行带AOSP版本分支标签的代码的官方二进制文件。这些二进制文件通过非开放源代码添加对附加硬件功能的访问。要改为构建AOSP主分支,请使用Nexus设备的二进制预览。在为设备构建主分支时,请使用最新编号版本或最近日期的二进制文件。
额外的专用库
每个二进制文件集合都作为在压缩归档中一个自解压脚本。解压缩每个归档,从源树根目录运行包含的自解压缩脚本,然后确认您同意所附许可协议的条款。二进制文件及其匹配的makefile将安装在源代码树的vendor/
层级中。
清理
为了保证最新安装的二进制文件在解压后被正确应用,使用下面命令删除之前构建的输出:
$ make clobber