Jelly Bean 编译

由于需要移植RT3070的驱动到Nexus 7,因此Android的源码是必须要有的。为了保证源码的正确性,就先把Android编译出来练练手吧。主要过程看[这里]

我是在LiveUSB模式的Backtrack 5 r3 (ubuntu 10.0.4) 下面进行的代码下载和编译,代码都放在了mount过来的Windows分区(NTFS)下面。

整体思路和参考链接相同,但由于是在mount过来的分区上搞,所以PATH环境变量的设置要有所区别。

再来就是需要sun-java6-jdk安装到位,具体方法:

###############

gedit /ect/apt/sources.list 

添加一行: deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse

apt-get update

apt-get install sun-java6-jdk 

############### 

另一点就是repo工具的下载,在不同城市测试了一下,原文链接已经被墙了。如果是教育网用ipv6就能绕过这个微墙。否则就在windows下先用代理下载好。repo实际上就是一段python代码。

使用repo下载全部JellyBean过程特别慢,花了有两三天吧,经常有错误产生,可能是dns导致的。如果你也遇到可以考虑修改host文件:

#########

gedit /etc/hosts

然后把 android.googlesource.com 和 googlesource.com 先用 nslookup 查好ip地址添加进来。

#########

这样可以减少代码下载中的DNS请求数量

至于编译的话只要按照参考链接的步骤来就没什么问题。虽然在这个过程中遇到了很多错误,但后来发现归根结底都是系统配置不够导致的。下面几点是容易被忽略的, 但却是编译过程所必须的~

需要64位的主机配64位的操作系统来进行编译

增加swap分区,Backtrack 默认不带,增加方法:

mount 一个windows分区过来,最好和代码存放的分区不同,然后增加一个swap文件就可以了比如windows分区mount到了/media/D

##########

dd if=/dev/zero of=/media/D/swapfile bs=1024 count=4096k   #这样就增加了一个4G的swap文件

mkswap /media/D/swapfile #格式化这个文件

swapon /media/D/swapfile #开启swap

swapon -S #用于查看swap是否已经被正确开启

##########

我的电脑是intel i7 8核的,内存4G 但为了保证编译过程中不至于卡死,使用了 make -j4 命令进行编译 (只用4个核免得系统太忙碌),如此这般,system.img就会被编译出来了