android 5.0 (lollipop)源码编译环境搭建(Mac OS X)
硬件环境:MacBook Pro Retina, 13-inch, Late 2013
处理器 2.4 GHz Intel Core i5
内存 8 GB 1600 MHz DDR3
硬盘60G以上
软件环境:OS X 10.9.2
GNU Make 3.81
Python 2.7.5
XCode 5.0.2
java version "1.7.0_55"
repo VERSION = (1, 21)
某收费VPN(代理FAN墙是下载不了的,请使用VPN)
(软件版本问题非常可能导致下载或者编译失败!!!高版本请降至这些版本...)
1.创建一个镜像。因为源码只能在大小写敏感的磁盘上编译(红色字体标示可以自行配置的参数,下同)
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 60g ~/android.dmg.sparsefile
这里分了60G硬盘
2.加载分区
hdiutil attach ~/android.dmg.sparsefile -mountpoint /Volumes/android
3.下载相应的工具
主要说一下repo,请开vpn
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
然后将repo的所在路径加到环境变量方便后面使用
java、make等工具请自行google,尽量用和博主相同的软件版本。
4.修改文件描述符限制
在~/.bash_profile中添加以下内容:
# set the number of open files to be 1024
ulimit -S -n 1024
5.进入到加载好的分区下(上面的/Volumes/android)
cd /Volumes/android/
mkdir android-source
cd android-source
6.开始下载
repo init -u https://android.googlesource.com/platform/manifest -b android-5.0.0_r3
如果init正常,执行
repo sync 或 repo sync -j4
(其他设备或其他版本的源码请查阅
https://source.android.com/source/build-numbers.html
https://android.googlesource.com/platform/manifest
)
附图一张
7.开始编译
在android-source目录下执行
make
然后就可以等待编译完成了。
博主编译中 5小时50分钟时 遇到了一个问题
解决方案是将/Volumes/android/external/iptables/include/linux/netfilter_ipv4/ipt_ECN.h中的
#include <linux/netfilter/xt_DSCP.h>
改成
#include <linux/netfilter/xt_dscp.h>
总结一下过程中遇到的几个问题
1.repo版本。非官方的repo工具可能有秘钥问题或者下载失败,请使用官方版本。楼主用旧版的repo下了好久,后来都删了重新下的。。。
2.VPN不稳定。这个问题不多解释了大家都懂,lz也没有买比较贵的专线VPN。解决办法有一个,mac下可以用apple script编写一个VPN自动重连的脚本,存成App即可。方法请自行Google。但是偶尔也会有已经断网但是VPN没有断的情况,就只能手动重连了。
3.下载和编译时间过长。下载没有统计,估计不算repo出问题的那次,也超过24小时了。dalvik完全换成ART后加上增加了5000个API,编译时间明显长了很多,编译总耗时7小时30分钟。源码13.4G,repo文件20G,编译完的源码+build出来的文件共43G。
4.感谢官网文档:http://source.android.com/source/downloading.html
感谢某人的文章:http://blog.csdn.net/bulreed/article/details/22783467
最后上图两张:


android 5.0 (lollipop)源码编译环境搭建(Mac OS X)的更多相关文章
- ffmpeg源码编译环境搭建
ffmpeg是视频开发最常用到的开源软件,FFmpeg功能强大,用途广泛,提供几乎所有你能够想到的与视频开发相关的操作,许多商业软件都以ffmpeg为基础进行开发定制. FFmpeg: FFmpeg ...
- Android 源码编译环境搭建(64位Ubuntu)各种依赖包安装
1.准备: 普通PC(要求能上网), PC的操作系统Ubuntu 10.04 LTS(64位的),已经下载好的Android 1.6_r1的源代码. 2.Linux的依赖package安装: 为了更快 ...
- Hadoop源码编译环境搭建
准备工具: maven 3.0.0版本或者更高版本(配置中心库) protocbuff 2.5.0 http://www.zlib.net/ git bash(Windows环境可以用此工具执行编译命 ...
- Jmeter3.2源码编译环境搭建
1.下载jmeter3.2源码 https://github.com/apache/jmeter/tree/v3_2 https://blog.csdn.net/fly_to_higher/artic ...
- Jmeter3.2源码编译环境搭建(转)
1.下载jmeter3.2源码 https://github.com/apache/jmeter/tree/v3_2 https://blog.csdn.net/fly_to_higher/artic ...
- Hadoop源码阅读环境搭建(IDEA)
拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...
- 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码
http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...
- 【Android开发】构建Android源码编译环境
原文:http://android.eoe.cn/topic/android_sdk 构建Android源码编译环境 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程
Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程 在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...
随机推荐
- POJ3189 Steady Cow Assignment(最大流)
题目大概说,有n头牛和b块草地,每头牛心中分别对每块草地都有排名,草地在牛中排名越高牛安排在那的幸福度就越小(...),每块草地都能容纳一定数量的牛.现在要给这n头牛分配草地,牛中的幸福度最大与幸福度 ...
- python 代码片段6
#coding=utf-8 # python常用的列表list和字符串string # tuple元组,一个身有残疾的只读列表 s='python' print s[0] print s[-1] # ...
- 洛谷 P1008 三连击 Label:水
题目描述 将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数. 输入输出格式 输入格式: 木有输入 输出格式: 若干行,每行3个 ...
- 编程中i++与++i的区别
- Google Code Jam 2010 Round 1A Problem A. Rotate
https://code.google.com/codejam/contest/544101/dashboard#s=p0 Problem In the exciting game of Jo ...
- winform学习-----理解小概念-20160517
1.MouseDown事件 当鼠标指针位于控件上并按下鼠标键时发生. 2.MouseUp事件 当鼠标指针在控件上并释放鼠标按键时发生. 与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才 ...
- jquery限制div字符长度,超出部分已“…”显示
$(".content").each(function(){ if($(this).text().length>100){ $(this).text($(this).text ...
- .NET Framework 4.5 的五大特性
介绍 从.NET4.5发布到现在已经有一年多了.但问题是针对最近微软发布的版本信息中,大部分的.NET开发人员所讨论交流的只是其中的一两个特性.其他的特性仅仅停留在MSDN中或者沦为简介文档.例如:现 ...
- C#常用功能函数小结(.NET 4.5)
今天有空,把C#常用的功能总结一下,希望对您有用.(适用于.NET Framework 4.5) 1. 把类转换为字符串(序列化为XML字符串,支持xml的namespace) using Syste ...
- virtual box ubuntu卡在开机光标
创建虚拟机的时候选择之前保存的虚拟机盘vdi文件,打开的时候卡在光标.原来是因为虚拟机是64位的,但是新建的时候只有32位的ubuntu可以选择就选择的32位. 解决办法: 在bios设置里,打开cp ...