首页 > 代码库 > Android 在ubuntu上下载和编译系统源码
Android 在ubuntu上下载和编译系统源码
网上也有很多这样的教程,这里只是把它记录下来,方便日后查看。
官网教程:http://source.android.com/source/building.html
下载源码
分为以下几个步骤:
1、配置安装下载环境
配置 JDK环境
安装curl、git-core软件
sudo apt-get install curl
sudo apt-get install git-core
2、创建一个~/bin目录,并添加到环境变量中
mkdir ~/binPATH=~/bin:$PATH
3、下载repo脚本并修改权限为可执行
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo (这个有可能会下载超时)
curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo"> ~/bin/repo (上面下载失败可以下载这个)
chmod a+x~/bin/repo
4、创建一个保存android源码的目录,修改为最大权限,并进入到该目录下
mkdir /opt/android_source
sudo chmod –R 777 /opt/android_source
cd /opt/android_source
5、初始化repo,并选择要下载的分支(版本)
repo init -u https://android.googlesource.com/platform/manifest (这个是最新源码)
repo init -u https://android.googlesource.com/platform/manifest -b android-4.2_r1 (这个是Android4.2系统源码,其它版本只要更换分支号就可以)
6、提示输入你的姓名、邮箱。
7、开始下载源码
repo sync
常遇到的错误情况:
情况1:
error:Failed onnect o android.googlesource.com:443;
Connection efused while accessing
https://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed
error: Cannot fetch platform/tools/motodev
error: Cannot fetch platform/frameworks/base
error: Cannot fetch platform/prebuilts/sdk
error: Exited sync due to fetch errors
解决:
编辑/etc/hosts文件
vim /etc/hosts
增加下面内容,保存
74.125.31.82 www.googlesource.com
74.125.31.82 android.googlesource.com
203.208.46.172 cache.pack.google.com
59.24.3.173 cache.pack.google.com
编译源码
1、 下载所需软件
sudo apt-get install git gnupg flex bison gperf build-essential
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386
libgl1-mesa-dev g++-multilib mingw32 tofrodos
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
3、配置gcc
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
4、编译源码
cd /opt/android_source
source build/envsetup.sh 或 .build/envsetup.sh
lunch full-eng
make -j4
emulator