=====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\\