下载准备
硬件要求
至少分割出100G到150G以上的硬盘空间,并设置类型为『区分大小写,可读写』类型
软件要求
1、Xcode 4.5.2版本及其以上,以及对应的Command Line Tools,一定要相互对应,并且最好从官网下载,否则后面编译的时候会出问题。我下载的是7.3.1版本。
2、JDK 1.8_45
3、python 2.7
4、git 1.7
5、更新gnu-make命令到3.8.2版本
6、从https://developers.google.com/android/nexus/blobs-preview处下载创建虚拟机类型对应的二进制文件,例如,我创建的虚拟机是Nexus 6P类型的,我需要下载对应的硬件二进制文件
下载源码
1、在外挂硬盘上创建android分区,目录/Volumes/android
2、下载repo工具
1)mkdir ~/bin
2)PATH=~/bin:$PATH
3)可以通过下载工具下载repo,下载地址:
https://storage.googleapis.com/git-repo-downloads/repo
之后,将下载的repo粘贴到~/bin目录下
4)chmod a+x ~/bin/repo
3、下载最新的初始化包,使用清华大学的镜像资源
可以通过下载工具从地址
https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar下载。并通过解压工具解压即可。
4、检出代码
1)修改repo的配置
编辑~/bin/repo,把REPO_URL一行替换成下面的:
REPO_URL = 'https://gerrit-google.tuna.tsinghua.edu.cn/git-repo'
2)repo sync –f
编译源码
1、跳转到/Volumes/android/aosp目录
2、$ source build/envsetup.sh
3、执行lunch命令,并根据虚拟机的类型来选择lunch的参数,我的虚拟机是X86类型,我选择的是aosp_x86_64-eng
4、make –j4
出现这一行表示编译成功。
编译过程中出现的错误
1、Unsupported curl, please use a curl not based on SecureTransport
安装curl
brew install curl --with-openssl
exportPATH=$(brew --prefixcurl)/bin:$PATH
参考链接:
http://stackoverflow.com/questions/33318756/while-i-make-the-source-of-android-6-0-it-failed
2、Jack“Out of memory error”
1)在当前工作目录下(/Volumes/android/aosp),找到修改Jack的配置文件prebuilts/sdk/tools/jack-admin,在其中找到start-server函数,直接修改其启动参数,添加-Xmx参数
更改为
其中『-Xmx4096m』是添加的部分
2)之后删除$HOME/.jack-server文件夹及其文件夹下的内容,这里是之前启动jack-server是创建的内容
cd $HOME
sudo rm -r -f .jack-server
3)重新开始编译
3、stat: cannot read file system information for ‘%z’: No such file ordirectory
误装了coreutils
卸载:brew uninstall coreutils
参考连接:
http://stackoverflow.com/questions/28784392/building-aosp-on-mac-yosemite-and-xcode
启动模拟器
$emulator
注意,模拟器和编译版本中,选择的lunch选项一定要相互对应,否则模拟器将一直黑屏,无法启动。
最终运行成功结果
参考文档:
1、https://source.android.com/source/requirements.html#software-requirements官方文档
2、https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/清华大学AOSP镜像源
3、https://www.topbug.net/blog/2013/04/14/install-and-use-gnu-command-line-tools-in-mac-os-x/gnu安装教程文档
4、http://www.jianshu.com/p/98e6a6d608e0Mac OX编译aosp参考文档