关闭

Android内核开发:理解和掌握repo工具

220人阅读 评论(0) 收藏 举报
分类:
Android内核开发:理解和掌握repo工具
2015-05-20 19:52:13
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://ticktick.blog.51cto.com/823160/1653304

由于Android源码是用repo工具来管理的,因此,搞Android内核开发,首先要搞清楚repo是什么东西,它该怎么使用?作为《Android内核开发》系列文章的第二篇,我们首先谈谈对repo工具的理解和使用。


1. repo是什么?


repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库。


2. 为什么要用repo?


因为Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。


repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库。


3. 怎么安装repo?


官方的repo脚本下载方法:


1
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo >  ./repo


由于官网被墙,目前可以使用的repo脚本下载方法如下(两者选一):


1
2
3
4
$ git clone git://git.omapzoom.org/git-repo.git
$ git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/  
 
cp git-repo/repo  ./repo


或者修改手头已有的被墙的repo文件:


1
2
3
4
REPO_URL = 'git://git.omapzoom.org/git-repo.git'
REPO_URL = 'git://aosp.tuna.tsinghua.edu.cn/android/git-repo' 
 
REPO_REV = 'stable'


当然,你也可以去我的GitHub下载这个repo文件,地址:


https://github.com/Jhuster/AOSP/blob/master/repo


4. 怎么下载源码?


上面说过,Android源码分支其实由一个叫manifest仓库来管理起来的,因此,下载源码首先要clone这个manifest仓库。这个仓库里面有一个XML文件,其实就是一个文件清单,列出了本代码仓库依赖哪些代码,该去哪下载,分支是什么。


一般用repo init命令来clone这个manifest仓库,例如,如果要下载Android源码,则方法如下:


1
$ repo init -u https://android.googlesource.com/platform/manifest


当然,上面的官网被墙了,因此,推荐如下镜像(两者选一):


1
2
$ repo init -u git://git.omapzoom.org/platform/manifest.git
$ repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest