第一步:对环境的准备:
1. 在windows下安装virtualbox,virtual下载地址:http://www.virtualbox.org/wiki/Downloads,下载最新版本,我的是4.0.2 r69518
2. 下载Ubuntu 64bits ISO image, 我是下载的这里:http://mirror01.th.ifl.net/releases/10.04.1/ubuntu-10.04.1-desktop-i386.iso
3. 在virtualbox上,安装ubuntu,我选择的都是缺省设置和安装;
第二步:下载source code,我主要参考了 http://source.android.com/source/downloading.html,
1. download http://android.git.kernel.org/repo, 把文件 repo 放到你的linux命令执行路径;
2. 因为公司只能用http代理上网,所以无法直接使用git协议连接到git server,倒是http协议可以,所以更改repo文件的这一行内容:
REPO_URL=’git://Android.git.kernel.org/tools/repo.git’
为:
REPO_URL=’http://android.git.kernel.org/tools/repo.git’
3. 在命令行内,执行全局代理服务器设置:
export http_proxy=http://proxyIP:proxyPort
export HTTP_PROXY=http://proxyIP:proxyPort
我也不知道大写的还是小写的要用到,反正都设上吧!
4. In your working directory, repo init -u http://android.git.kernel.org/platform/manifest.git
5. 执行完成后,你会在工作目录下获得这个文件:working_dir/.repo/manifest.xml
把它的git://android.git.kernel.org/ 改为:http://android.git.kernel.org/
6. 在工作目录下执行:repo syn
7. 休息,等待漫长的时间完成上一步;大约要下载两G多的内容
8. 运行,gpg –import,然后输入key的内容,key的内容可以在http://source.android.com/source/downloading.htm找到;
第三步:准备编译环境,请参考http://source.android.com/source/initializing.html:
1. 设置好deb的software repo source, 增加这两个:
sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
sudo add-apt-repository “deb-src http://archive.canonical.com/ubuntu lucid partner”
2. 执行更新sudo apt-get update
3. 安装sun-java6-sdk: sudo apt-get install sun-java6-jdk
据说要编译Froyo和老的版本要java5,我没有试
4.参考网页上说要在ubuntu系统中安装如下软件包:
git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
我在执行过程中发现两个问题:
a. lib32z-dev在我的系统中不存在,我系统中只有:lib32z1-dev,所以装这个;
b. 除了上面的软件包要安装外还要安装g++-multilib,否则会发生找不到合适的stdc++库的错误,google官方参考网页说,只有在编译Froyo以前的版本才需要,这种说法在我的环境下是错误的。
5. 据说还要设置usb设备的访问,我这次没有作,以后做了再记录下来;
第四步:编译全系统
1. source ./build/envsetup.sh
2.lunch full-eng
3. make -j4
如果你没有给你的虚拟机分4个cpu,就不要加-j4了,会更慢
我花了两个多小时完成的make -j4,
还没有测试编好的emulator(虚拟机上的虚拟机:emulator on virtualbox)。等测试完成,再写步骤。