Android源码分析--Ubuntu14.04安装配置

本文参考http://source.android.com/官方文档和http://blog.csdn.net/gobitan/article/details/24367439,仅供个人记录和菜鸟参考~~~

Ubuntu安装的过程就不再详细说明了,很简单,根据自己的情况进行配置即可。下面会详细说一下下载Android源码需要进行的配置。

1、安装OracleJDK,详细过程请参照“Ubuntu Linux下安装Oracle JDK

注意:根据官网的说明,编译2.3以上的版本需要使用JDK6(64-bit系统),而编译2.3以下的版本需要使用JDK5.

2、需要安装的工具

Python 2.6 -- 2.7  python.org

GNU Make 3.81 -- 3.82  gnu.org

Git 1.7 or newer  git-scm.com

注意:这里与官方的有个包不同,官方的包会报错.(暂时不知道是哪里的问题)

$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-dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

3.配置USB访问权限

将如下内容加入到/etc/udev/rules.d/51-android.rules文件中

# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"


4、 配置ccache

安装ccache并将export USE_CCACHE=1加入到~/.bashrc中。

$sudo apt-get install ccache
$source ~/.bashrc


5、安装配置repo

创建目录

$ mkdir ~/bin
$ PATH=~/bin:$PATH

下载repo

官方提供方法

$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

替换地址为

http://git-repo.googlecode.com/files/repo-1.12

初始化repo客户端

创建工作目录

$ mkdir WORKING_DIRECTORY//根据个人喜好确定目录
$ cd WORKING_DIRECTORY

初始化repo

因为网络问题,需要将下列内容添加到/etc/hosts文件中,如果依旧不能访问请自行更换ip(最好使用GoAgent代理,相对来说比较稳定)。

74.125.71.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

执行repo init

$ repo init -u https://android.googlesource.com/platform/manifest //默认访问master分支,下载指定branch,需要添加参数“-b”和分支名称(例如:android-4.4.2_r2)

通过git ls-remote命令查看远程服务器的分支情况

$ git ls-remote -tags https://android.googlesource.com/platform/manifest

下载android-4.4.2_r2

$repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r2 
注意:如果是在虚拟机中执行,需要采用email验证的方式.
设置git的用户名和邮件地址,将您的真实email地址和name替换了:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

修改aosp/.resp/manifest.xml,将fetch=".."改为:

fetch="https://android.googlesource.com/"

可以提高访问速度。

6、下载源码

$repo sync

使用repo sync命令时,可以添加参数“-j5”开启并行下载(5为并行数量,可自定),也可以在repo目录下的manifest.xml文件中修改

repo sync支持断点续传,中断后下次再执行repo sync即可

剩下的就是等待。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值