有时,我们需要在不同的AOSP的分支之前切换。在Android官网上Google并没有关于不同分支之前如何切换的说明,那么最笨的方法是使用另外一台虚拟机(我习惯使用虚拟机)再同步一遍代码,但是这样耗时耗力。
经过前边 从代码了解AOSP 的学习,我们知道整个AOSP的代码的分支(revision)与远程地址信息都在.repo/manifests/default.xml
文件中指定,所以初步的想法是可以将这个文件替换为指定revision的文件,然后执行repo sync
。
分支切换
上边的手动替换还是比较麻烦,又看到别人说直接使用repo
的初始化命令来切换版本就可以了。
比如,我原来的分支为android-5.1.1_r15
,我要切换为android-5.1.1_r26
(仍然使用中科大的镜像源):
$ repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-5.1.1_r26
$ repo sync
repo常见的3个参数
-u 整个AOSP的manifest的git的地址
-b 同步完成后要切换到的分支
-g 同步指定的分组(group)因为同步的时候,
repo
是把所有的子项目的git仓库都同步下来了,所以才可以这样切换分支。
分支对照表
这部分内容取自 Source Code Tags and Builds,因为来回切换网络比较麻烦,所以就复制了一份在这里。
Build | Branch | Version | Supported devices |
---|---|---|---|
NBD90Z | android-7.0.0_r14 | Nougat | Nexus 6 |
NBD90X | android-7.0.0_r13 | Nougat | Nexus 6P |
NBD90W | android-7.0.0_r12 | Nougat | Nexus 5X |
NRD91D | android-7.0.0_r7 | Nougat | Pixel C, Nexus Player, Nexus 9 (Wi-Fi) |
NRD90U | android-7.0.0_r6 | Nougat | Nexus 6P |
NRD90T | android-7.0.0_r5 | Nougat | Nexus 6P |
NRD90S | android-7.0.0_r4 | Nougat | Nexus 5X |
NRD90R | android-7.0.0_r3 | Nougat | Nexus 5X, Nexus 9 (volantis), Nexus Player, Pixel C |
NRD90M | android-7.0.0_r1 | Nougat | Nexus 5X, Nexus 9 (volantis), Nexus Player, Pixel C |
MXC89L | android-6.0.1_r63 | Marshmallow | Pixel C |
MTC20F | android-6.0.1_r62 | Marshmallow | Nexus 5X, Nexus 6P |
MOB30Y | android-6.0.1_r60 | Marshmallow | Nexus 5 |
MOB30X | android-6.0.1_r59 | Marshmallow | Nexus 7 (flo/deb) |
MOB30W | android-6.0.1_r58 |