=====iDste:创建android本地版本库======
android系统的源代码是通过git和repo来进行组织和管理的,官方提供通过从官网上获取源码的repo工具。
由于国内网路环境的原因,从国内获取android源码库变得较为困难。为了方便后续使用和开发,需要在本地建立一个官网的版本镜像,本文主要是介绍在本地建立android的版本库镜像和从本地版本库获取源代码的方法。
=====建立本地版本镜像=====
====1. 在ubuntu系统上安装git-core====
apt-get install git-core\\
apt-get install git-daemon-run\\
====2. 创建本地源码库的存放路径====
mkdir -p /pub/gittree
====3. 修改配置:====
$sudo gedit /etc/sv/git-daemon/run\\
将该文件中的\\
/usr/lib/git-core/git-daemon –verbose –base-path=/var/cache /var/cache/git\\
改为\\
/usr/lib/git-core/git-daemon –verbose --export-all --base-path=/pub/gittree /pub/gittree
====4. 重启git服务 ====
sv stop git-daemon\\
sv stop git-daemon
====5. 确认服务已经正确运行====
ps -ef | grep git\\
输出\\
|root|3378 3333 0 10:29 ?|00:00:00 runsv git-daemon|\\
|gitlog|3379 3378 0 10:29 ?|00:00:00 svlogd -tt /var/log/git-daemon|\\
|107|3391 3378 0 10:36 ?|00:00:00 /usr/lib/git-core/git-daemon --verbose --reuseaddr --export-all --base-path=/pub/gittree /pub/gittree|\\
====6. 将源码库从官网上同步到本地====
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo\\
注:\\
由于防火墙的作用, 国内无法直接访问这个地址, 这里必须要通过国外的代理服务器来完成\\。
我们是在国外购买了一个云主机,然后自行安装代理服务器完成的。
====7. 初始化和同步源码库====
cd /pub/gittree\\
~/bin/repo init -u https://android.googlesource.com/platform/manifest -mirror\\
~/bin/repo sync\\
一共近30G的内容, 时间较长,请耐心等待。
====8. 添加4.4.1的分支的工程同步完成后, 默认是将最新版本库同步到了本地。在做imx上的android系统开发时, 系统源码需要 android-4.4.2_r1分支。 在这个分支上,有一些老版本的工程, 默认在做镜像时不会被同步到本地, 因此需要手动添加:====
在/pub/gittree.repo/manifest.xml中添加如下内容:\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
\\
再次执行:\\
~/bin/repo sync
===== 从本地库中checkout源码=====
====1. 创建本地的开发目录====
$mkdir ~/android_branck
====2. 获取repo工具====
git clone [[git://192.168.1.125/git-repo.git]]\\
注:\\
192.168.1.125 为本地源码镜像库的ip地址\\
====3. 修改repo的源地址====
vi git-repo/repo\\
将
REPO_URL = [[https://gerrit.googlesource.com/git-repo]]\\
修改为
REPO_URL = [[git://192.168.1.125/git-repo]]\\
====4. 配置git的用户信息====
git config --global user.email "zhanhl@idste.cn"\\
git config --global user.name "zhanhl"\\
====5. 初始化和checkout源代码====
./git-repo/repo init -u git://192.168.1.125/platform/manifest -b android-4.4.2_r1\\
./git-repo/repo sync\\