郑重感谢以下博主的分享的方法
https://iamasoldier6.com/2016/06/12/%E5%A4%8D%E7%9B%98Mac-OS-X-%E4%B8%8BAndroid-6-0-%E6%BA%90%E7%A0%81%E7%9A%84%E4%B8%8B%E8%BD%BD%E4%B8%8E%E7%BC%96%E8%AF%91/编译源码这种东西因为各人的环境不同会出现不同的问题google永远是你最好的导师,还好就是要注意搜索答案的时候要看时间,很多解决方案是有时效性的。复制代码
第一部分:下载源码
1.创建大小写敏感的分区
因为是使用的外接硬盘,所以直接 用磁盘工具进行格式化就可以了如果是用的内置硬盘的话可以使用如下方法(下面方法未验证,也不想去验证,本人可怜的硬盘才250G 根本没空间去分割出来)复制代码
2.安装repo
Repo 是一个辅助于 Git 管理 Android 版本及分支的工具 创建安装的目录 mkdir ~/bin 添加目录到path(相当于环境变量)--注意这个设置是一次性的,下次打开命令行就需要重新设置 PATH=~/bin:$PATH 下载repo到我们创建的目录(这边我们使用清华的源不需要翻墙) curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo 给下载的文件添加权限 chmod a+x ~/bin/repo复制代码
3.下载源码(源码的下载直接使用清华开源库,以我家的渣网络一觉睡醒竟然下载好了,意外的惊喜)
创建要放置源码的目录 mkdir WORKING_DIRECTORY进入到目录 cd WORKING_DIRECTORY初始化仓库 repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest--注意 这时候可能会报错 如下解决 repo的运行过程中会尝试访问官方的git源更新自己,如果想使用tuna的镜像源进行更新,可以将如下内容复制到你的~/.bashrc里 export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/' 并重启终端模拟器指定某个分支的版本 repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-4.0.1_r1 下面是分支列表 https://source.android.com/source/build-numbers#source-code-tags-and-builds下载 repo sync复制代码
第二部分:编译环境设置
1.设置文件描述符限制
Mac 系统下默认只能同时打开 1024 个文件,而在进行 Android 源码编译时有可能会超出这个限制,因此需要解除这个限制。在 ~/.bash_profile 中添加以下内容:(这个网上也有说不设置也行,我是有设置) # set the number of open files to be 1024 ulimit -S -n 1024复制代码
2.安装git make gpg(这个我们一般通过macports安装)
安装 MacPorts,地址:https://www.macports.org/install.php。然后根据自己的情况选择性的安装需要的 POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg复制代码
3.安装编译需要的jdk环境
这个就很简单了 不需要再解释了,主要需要安装1.7版本的,在编译前在命令行里查看下 当前版本是不是1.7的,不是的话需要切换复制代码
4.python2.7
这个安装也很简单,不懂的可以百度下复制代码
5.在mac上编译需要macOSX.sdk支持
经过尝试 编译6.0的系统最高可以使用的版本是10.11,可以查看自己安装的版本路径如下: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/下载的话可以去如下地址 https://github.com/phracker/MacOSX-SDKs修改默认的支持编译版本路径如下(源码根目录下) ~/build/core/combo/mac_version.mk复制代码
第三部分 编译
以下操作均在源码根目录下操作。我在编译的时候比较顺利只出现了一次 macosx.sdk不支持的问题,上面第五步解决,编译过程中如果有问题直接百度或者重新编译下就可以了(每个人因为环境不同可能遇到的问题都不相同)吐槽下编译时间真的好长,大概编译了2小时多。source build/envsetup.sh//这步是选择编译出来的版本lunch aosp_arm-eng//-j8比较开启8线程编译 你机子牛B可以-j32 相信我不会炸的make -j8复制代码