从android 官方源码网站:www.source.android.com取得关于配置信息如下:
磁盘: 6GB以上剩余空间
linux系统:Ubuntu 8.04以上
git工具: Git 1.54以上
java环境: JDK5.0 update12以上版本
python : python 2.4以上版本
依赖工具: flex ,bison,gperf,libsdl-dev,libsd0-dev,libwxgtk2.6-dev,build-essential,zip,curl
调试工具: valgrind
步骤一:环境配置
(1)安装jdk1.5,在终端执行命令:sudo apt-get install sun-java5-jdk
就会有这个提示:
- root@hens-desktop:~# sudo apt-get install java5-jdk
- Reading package lists... Done
- Building dependency tree
- Reading state information... Done
- E: Couldn't find package java5-jdk
-
根据网上所说尝试了很多方法都没有成功,直到使用如下步骤:
步骤a.
先用java –version检查JDK是否
配置正确,Android 要求的 jdk 1.5,而Ubuntu10.4的源里只有JDK1.6. 如果安装了jdk1.6请先卸载:
$sudo apt-get remove remove openjdk-6-jdk
$sudo apt-get remove remove openjdk-6-jre
$sudo apt-get remove remove openjdk-6-jre-headless
步骤b.安装JDK1.5
1) 根据官方文档里所说,源代码的编译必须使用JDK5才能编译的了,所以这里偶使用jdk5
2) 需要先更新源,在终端里执行 sudo vim /etc/apt/sources.list
3) 在source.list里把以下2行拷贝到文档最后面:
deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
保存退出。
其实对于我们china地区来说,使用如下源(ubuntu 8.04 LTS)会更快[luther.gliethttp]
deb http://ubuntu.cn99.com/ubuntu/ hardy multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ hardy multiverse
deb http://ubuntu.cn99.com/ubuntu/ hardy-updates multiverse
deb-src http://ubuntu.cn99.com/ubuntu/ hardy-updates multiverse
4) 执行 sudo apt-get update 更新源.
5) 配置编译环境并下载JDK5:sudo apt-get install sun-java5-jdk
在安装过程中会出现如下配置界面
进行ok配置
(2)安装其他必备组件
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
(3)在终端中执行:sudo gedit ~/.bashrc
修改.bashrc文件,添加下面语句:
JAVA_HOME="/usr/lib/jvm/java-1.5.0-sun"
JRE_HOME="$JAVA_HOME/jre"
export JAVA_HOME
export JRE_HOME
PATH="$JAVA_HOME/bin:$PATH"
export PATH
CLASSPATH=".:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"
export CLASSPATH
(4)安装
2)建立存放Android的源代码目录source,并初始化版本:
sudo chmod a+x repo
cd ..
cd Android
mkdir source
cd source
../bin/repo init -u https://android.googlesource.com/a/platform/manifest(完全下载)
../bin/repo
init -u https://android.googlesource.com/a/platform/manifest -b android-4.0.1_r1(指定下载某一部分)
如果返回:如果返回"fatal: git 1.7.2 or later required",则执行如下,更新git :
sudo apt-get install python-software-properties
sudo apt-get-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git
3)之后要求输入用户名和邮箱,可随机输入。完成之后如果出现"repo initialized in ......"则表示初始化完毕
4) 在终端输入:../bin/repo sync开始下载。下载完成后就得到了Android源代码,这部分只是Android源代码不包括Android内核部分。
如果不能在主线版本下载,请从:http://d.zhu.im/Android/网站下载
步骤三:获取android内核源码
Android 内核不会随Android下载,如果不需要对Android内核进行修改和移植,可以不需要此部分内容可以从Android模拟器中提取这分部内容的镜像(针对goldfish而言),我们这里需要关注.android的kernel有多个部分,可根据需要运行以下命令下载需要的内容。
首先在上述Android/source目录下面新建kernel目录,然后 在git的console窗口中执行以下命令即可下载内核,下载Android内核会比Android源代码快很多,需要注意的是下载不能被中断。下载完成后存放Android源代码的目录也许看不到任何内容,那是因为下载的文件是隐藏的。需要显示隐藏文件才能看见,下载之后也可以通过du -sk或者du-sm命令检测文件夹的大小:
$ git clone https://android.googlesource.com/kernel/common.git //这个是linux内核,也可以是git clone http://android.git.kernel.org/kernel/common,网上许多地方介绍的命令是git clone git://android.git.kernel.org/kernel/common,但现在似乎是不能用了。
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git clone https://android.googlesource.com/kernel/msm.git
$ git clone https://android.googlesource.com/kernel/omap.git
#git clone https://android.googlesource.com/kernel/samsung.git
$ git clone https://android.googlesource.com/kernel/tegra.git
3、checkout出对应的内核
进入samsung目录
$git branch -a //列出所有可用的内核版本
显示如下:
$git checkout remotes/origin/android-samsung-3.0-ics-mr1 //checkout出想要使用的内核
完成后再回到samsung目录,就看见久违的Linux内核源代码了