Android参考之代号、标签和版本号
代码流水线、分支和版本
Android 开源项目 (AOSP) 维护着一个全面的软件堆栈,OEM 和其他设备实现者可移植并在自己的硬件上运行该堆栈。为了维持 Android 项目的质量,Google 分派了全职工程师、产品经理、界面设计师、质量保证测试人员以及更多相关人员(将新型设备推向市场所需的所有其他角色)来负责相关工作。
相应地,我们还维护着多个代码流水线,以便明确区分当前稳定版 Android 与不稳定的实验性版本。我们将 Android 代码流水线的开放源代码管理和维护工作纳入到了更大的产品开发周期中。
AOSP 代码管理
下图描述了 AOSP 代码管理和版本背后的概念。
图 1 AOSP 代码和版本
- 在任何特定时刻,Android 平台都有一个当前最新版本。该版本通常作为树中的一个分支。
- 设备制造商和贡献者会以当前最新版本为基础来修复错误、发布新设备、试验新功能等。
- 与此同时,Google 会根据产品的需求和目标,在内部开发下一版 Android 平台和框架。开发下一版 Android 时,我们会与设备合作伙伴协作,在旗舰设备上推出新版 Android,旗舰设备的规格经过深思熟虑,旨在推动 Android 朝着我们希望的方向发展。
- 当第 n+1 版准备就绪时,它就会发布到公开源代码树,成为新的最新版本。
注意:我们使用“代码流水线”而不是“分支”,只是因为在任何特定时刻,特定“代码流水线”可能有多个分支。例如,当某个版本定型时,它可能会(也可能不会)根据当前需要变为新的分支。
术语和注意事项
- 一个版本对应一个正式版 Android 平台,如 1.5、2.1 等等。一个平台版本对应于
AndroidManifest.xml
文件的SdkVersion
字段中的版本(如源代码树的frameworks/base/api
中所定义)。 - 上游项目是指 Android 堆栈从中提取代码的开源项目。除了 Linux 内核和 WebKit 等项目以外,我们会继续引入一些半自主性 Android 项目(如 ART、Android SDK 工具、Bionic 等)作为上游项目进行开发。一般情况下,这些项目完全是在公开树中开发的。对于某些上游项目,开发是通过直接为上游项目本身做贡献来完成的。有关详情,请参阅上游项目。在这两种情况下,快照会定期纳入版本中。
- 在任何时候,版本代码流水线(实际上可能由 Git 中的多个真实存在的分支组成)都被视为给定 Android 平台版本的唯一规范源代码。OEM 和开发设备的其他组织应该仅从版本分支中提取源代码。
- 实验性代码流水线是为了收集社区带来的更改,从而在保持稳定性的基础上反复进行改进。
- 被认定为稳定的更改最终会提取到版本分支中。这仅适用于错误修复、应用改进和不影响平台 API 的其他更改。
- 在必要时,更改将从上游项目(包括 Android 上游项目)提取到版本分支中。
- 第 n+1 版(即框架和平台 API 的下一个重大版本)由 Google 在内部开发而成。有关详情,请参阅不公开代码流水线。
- 在必要时,更改将从上游、版本和实验性分支提取到 Google 的不公开分支。
- 当下一版本的平台 API 已经稳定并经过全面测试后,Google 会针对下一版平台定型一个版本(特别是新的
SdkVersion
)。这个版本将对应于作为公开版本分支的内部代码流水线和新的当前平台代码流水线。 - 当某个新的平台版本定型时,Google 会同时创建相应的实验性代码流水线。
不公开代码流水线
上述源代码管理策略谈到了 Google 会维护一个不公开的代码流水线,以将注意力集中在 Android 的当前公开版本上。
OEM 和其他设备制造商自然希望发布搭载最新版 Android 的设备。同样,如非必要,应用开发者也不希望处理更多个平台版本。与此同时,Google 要负责把握 Android 作为平台和产品的战略方向。我们的做法侧重于在少量旗舰设备上推进功能的演化,同时确保与 Android 相关的知识产权得到妥善保护。
如此一来,Google 经常掌握来自第三方的机密信息;在确保采取适当的保护措施之前,我们必须避免泄露敏感功能。此外,同时存在太多平台版本会给平台带来真正的风险。考虑到这些因素,我们构建了开源项目(包含第三方贡献的内容),以专注于目前公开的稳定版 Android。下一版平台的深度开发将会私下进行,直到一切就绪,最终成为正式版本。
我们意识到,许多贡献者不同意这种做法,我们也尊重他们的不同观点。不过,这是我们认为的最佳方式,我们也选择以这种方式实现 Android。
https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds
代号、标签和版本号
Android 的开发是围绕着版本系列进行的,这些版本使用美味的点心名称(按字母顺序)作为代号。
平台代号、版本、API 级别和 NDK 版本
为方便起见,代号与以下版本号、API 级别和 NDK 版本相对应:
代号 | 版本 | API 级别 |
---|---|---|
Oreo | 8.1.0 | API 级别 27 |
Oreo | 8.0.0 | API 级别 26 |
Nougat | 7.1 | API 级别 25 |
Nougat | 7.0 | API 级别 24 |
Marshmallow | 6.0 | API 级别 23 |
Lollipop | 5.1 | API 级别 22 |
Lollipop | 5.0 | API 级别 21 |
KitKat | 4.4-4.4.4 | API 级别 19 |
Jelly Bean | 4.3.x | API 级别 18 |
Jelly Bean | 4.2.x | API 级别 17 |
Jelly Bean | 4.1.x | API 级别 16 |
Ice Cream Sandwich | 4.0.3-4.0.4 | API 级别 15,NDK 8 |
Ice Cream Sandwich | 4.0.1-4.0.2 | API 级别 14,NDK 7 |
Honeycomb | 3.2.x | API 级别 13 |
Honeycomb | 3.1 | API 级别 12,NDK 6 |
Honeycomb | 3.0 | API 级别 11 |
Gingerbread | 2.3.3-2.3.7 | API 级别 10 |
Gingerbread | 2.3-2.3.2 | API 级别 9,NDK 5 |
Froyo | 2.2.x | API 级别 8,NDK 4 |
Eclair | 2.1 | API 级别 7,NDK 3 |
Eclair | 2.0.1 | API 级别 6 |
Eclair | 2.0 | API 级别 5 |
Donut | 1.6 | API 级别 4,NDK 2 |
Cupcake | 1.5 | API 级别 3,NDK 1 |
(无代号) | 1.1 | API 级别 2 |
(无代号) | 1.0 | API 级别 1 |
在 Android 8.0 (Oreo) 及更高版本中,每个细分版本均采用细分版本号格式 PVBB.YYMMDD.bbb[.Cn],其中:
- P 表示平台版本代号的第一个字母,例如 O 表示 Oreo。
- V 表示支持的行业。按照惯例,P 表示主要平台分支。
- BB 表示由字母和数字组成的代码,Google 可通过该代码识别相应细分版本所属的确切代码分支。
- YYMMDD 表示相应版本从开发分支细分出来或与开发分支同步的日期。它并不一定是细分版本的确切构建日起,因为 Google 常常会在现有细分版本中增加细微的更改,并在新细分版本中重复使用与现有细分版本相同的日期代码。
- bbb 表示具有相同日期代码的不同版本,从 001 开始。
- Cn 是可选的字母数字,表示在现有 PVBB.YYMMDD.bbb 细分版本之上编译的修补程序,从 A1 开始。
旧版 Android 系统使用的是另一种更简短的细分版本 ID 代码(如 FRF85B),其中:
- 第一个字母代表相应版本系列的代号,例如 F 表示 Froyo。
- 第二个字母是分支代码,Google 用它来表示细分版本所属的确切代号分支。按照惯例,R 表示主要版本分支。
- 第三个字母和后面的两个数字是日期代码。字母表示季度(A = 2009 年第 1 季度,F = 2010 年第 2 季度,以此类推)。两个数字表示相应季度内的第某天(F85 表示 2010 年 6 月 24 日)。它并不一定是细分版本的确切构建日起,因为 Google 常常会在现有细分版本中增加细微的更改,并在新细分版本中重复使用与现有细分版本相同的日期代码。
- 末尾字母表示具有相同日期代码的不同版本,从 A 开始(A 并不会显示,通常会为了简洁而省略)。
源代码标记和细分版本
下表完整列出了从 Donut 开始的标记和细分版本。
注意:要下载 Nexus 和 Pixel 设备的出厂映像、驱动程序以及完整的 OTA 映像,请参阅 Android 开发者网站。
细分版本 | 分支 | 版本 | 支持的设备 |
---|---|---|---|
OPM6.171019.030.E1 | android-8.1.0_r41 | Oreo | Nexus 5X 和 Nexus 6P |
OPM4.171019.021.R1 | android-8.1.0_r40 | Oreo | Pixel 2 XL |
OPM4.171019.021.第一季 | android-8.1.0_r39 | Oreo | Pixel 2 |
OPM4.171019.021.P1 | android-8.1.0_r38 | Oreo | Pixel、Pixel XL |
OPM4.171019.021.N1 | android-8.1.0_r37 | Oreo | Pixel C |
OPM2.171026.006.H1 | android-8.1.0_r36 | Oreo | Pixel 2 XL |
OPM2.171026.006.Google One | android-8.1.0_r35 | Oreo | Pixel 2 |
OPM6.171019.030.B1 | android-8.1.0_r33 | Oreo | Nexus 6P、Nexus 5X |
OPM4.171019.021.E1 | android-8.1.0_r32 | Oreo | Pixel 2 XL、Pixel 2 |
OPM4.171019.021.D1 | android-8.1.0_r31 | Oreo | Pixel XL、Pixel |
OPM2.171026.006.C1 | android-8.1.0_r30 | Oreo | Pixel 2 XL、Pixel 2 |
OPM4.171019.016.C1 | android-8.1.0_r29 | Oreo | Pixel C |
OPM4.171019.016.B1 | android-8.1.0_r28 | Oreo | Pixel XL、Pixel、Pixel 2 XL、Pixel 2 |
OPM4.171019.016.A1 | android-8.1.0_r27 | Oreo | Nexus 5X |
OPM2.171019.029.B1 | android-8.1.0_r26 | Oreo | Pixel 2 XL、Pixel 2 |
OPM2.171019.029.A1 | android-8.1.0_r25 | Oreo | Nexus 6P |
OPM4.171019.015.A1 | android-8.1.0_r23 | Oreo | Pixel 2 XL、Pixel 2 |
OPM5.171019.019 | android-8.1.0_r22 | Oreo | Nexus 6P |
OPM3.171019.019 | android-8.1.0_r21 | Oreo | Nexus 6P |
OPM2.171019.029 | android-8.1.0_r20 | Oreo | Pixel 2 XL、Pixel 2、Pixel XL、Pixel、Nexus 5X |
OPM1.171019.026 | android-8.1.0_r19 | Oreo | Pixel C |
OPM5.171019.017 | android-8.1.0_r18 | Oreo | Nexus 5X、Nexus 6P |
OPM3.171019.016 | android-8.1.0_r17 | Oreo | Nexus 5X、Nexus 6P |
OPM1.171019.022.A1 | android-8.1.0_r16 | Oreo | Pixel C |
OPM1.171019.021 | android-8.1.0_r15 | Oreo | Pixel 2 XL、Pixel 2、Pixel XL、Pixel |
OPM5.171019.015 | android-8.1.0_r14 | Oreo | Nexus 5X、Nexus 6P |
OPM3.171019.014 | android-8.1.0_r13 | Oreo | Nexus 5X、Nexus 6P |
OPM1.171019.019 | android-8.1.0_r12 | Oreo | Pixel 2 |
OPM1.171019.018 | android-8.1.0_r11 | Oreo | Pixel 2 XL |
OPM1.171019.016 | android-8.1.0_r10 | Oreo | Pixel、Pixel XL、Pixel C |
OPM5.171019.014 | android-8.1.0_r9 | Oreo | Nexus 5X、Nexus 6P |
OPM2.171019.016 | android-8.1.0_r8 | Oreo | Pixel 2 |
OPM3.171019.013 | android-8.1.0_r7 | Oreo | Nexus 5X、Nexus 6P |
OPM1.171019.015 | android-8.1.0_r6 | Oreo | Pixel C |
OPM1.171019.014 | android-8.1.0_r5 | Oreo | Pixel 2 XL、Pixel 2、Pixel XL、Pixel |
OPM1.171019.013 | android-8.1.0_r4 | Oreo | Pixel 2 XL、Pixel 2 |
OPM1.171019.012 | android-8.1.0_r3 | Oreo | Pixel XL、Pixel |
OPM2.171019.012 | android-8.1.0_r2 | Oreo | Pixel 2 XL、Pixel 2 |
OPM1.171019.011 | android-8.1.0_r1 | Oreo | Pixel 2 XL、Pixel 2、Pixel XL、Pixel、Pixel C、Nexus 6P、Nexus 5X |
OPR5.170623.014 | android-8.0.0_r36 | Oreo | Nexus 6P |
OPR4.170623.020 | android-8.0.0_r35 | Oreo | Nexus 5X |
OPD3.170816.023 | android-8.0.0_r34 | Oreo | Pixel 2 XL、Pixel 2 |
OPD1.170816.025 | android-8.0.0_r33 | Oreo | Pixel 2 XL、Pixel 2 |
OPR6.170623.023 | android-8.0.0_r32 | Oreo | Nexus 5X |
OPR5.170623.011 | android-8.0.0_r31 | Oreo | Nexus 6P |
OPR3.170623.013 | android-8.0.0_r30 | Oreo | Pixel XL、Pixel |
OPR2.170623.027 | android-8.0.0_r29 | Oreo | Nexus Player |
OPR1.170623.032 | android-8.0.0_r28 | Oreo | Pixel XL、Pixel、Pixel C |
OPD3.170816.016 | android-8.0.0_r27 | Oreo | Pixel 2 |
OPD2.170816.015 | android-8.0.0_r26 | Oreo | Pixel 2 |
OPD1.170816.018 | android-8.0.0_r25 | Oreo | Pixel 2 |
OPD3.170816.012 | android-8.0.0_r24 | Oreo | Pixel 2 XL、Pixel 2 |
OPD1.170816.012 | android-8.0.0_r23 | Oreo | Pixel 2 XL、Pixel 2 |
OPD1.170816.011 | android-8.0.0_r22 | Oreo | Pixel 2 XL、Pixel 2 |
OPD1.170816.010 | android-8.0.0_r21 | Oreo | Pixel 2 XL、Pixel 2 |
OPR5.170623.007 | android-8.0.0_r17 | Oreo | Nexus 6P |
OPR4.170623.009 | android-8.0.0_r16 | Oreo | Nexus 5X |
OPR3.170623.008 | android-8.0.0_r15 | Oreo | Pixel XL、Pixel |
OPR1.170623.027 | android-8.0.0_r13 | Oreo | Pixel XL、Pixel、Pixel C |
OPR6.170623.021 | android-8.0.0_r12 | Oreo | Nexus Player |
OPR6.170623.019 | android-8.0.0_r11 | Oreo | Nexus 6P |
OPR4.170623.006 | android-8.0.0_r10 | Oreo | Nexus 5X |
OPR3.170623.007 | android-8.0.0_r9 | Oreo | Pixel XL、Pixel |
OPR1.170623.026 | android-8.0.0_r7 | Oreo | Pixel XL、Pixel、Pixel C |
OPR6.170623.013 | android-8.0.0_r4 | Oreo | Nexus 5X、Nexus 6P |
OPR6.170623.012 | android-8.0.0_r3 | Oreo | Pixel XL、Pixel |
OPR6.170623.011 | android-8.0.0_r2 | Oreo | Pixel XL、Pixel |
OPR6.170623.010 | android-8.0.0_r1 | Oreo | Pixel C |
N2G48H | android-7.1.2_r36 | Nougat | |
NZH54D | android-7.1.2_r33 | Nougat | Pixel XL、Pixel |
NKG47S | android-7.1.2_r32 | Nougat | Pixel XL、Pixel |
NHG47Q | android-7.1.2_r30 | Nougat | Pixel XL、Pixel |
NJH47F | android-7.1.2_r29 | Nougat | Pixel XL、Pixel |
N2G48C | android-7.1.2_r28 | Nougat | Nexus 5X、Nexus 6P、Nexus Player、Pixel C |
NZH54B | android-7.1.2_r27 | Nougat | Pixel XL、Pixel |
NKG47M | android-7.1.2_r25 | Nougat | Pixel XL、Pixel |
NJH47D | android-7.1.2_r24 | Nougat | Pixel XL、Pixel |
NHG47O | android-7.1.2_r23 | Nougat | Pixel XL、Pixel |
N2G48B | android-7.1.2_r19 | Nougat | Nexus 6P、Nexus Player、Pixel C |
N2G47Z | android-7.1.2_r18 | Nougat | Nexus 5X |
NJH47B | android-7.1.2_r17 | Nougat | Pixel XL、Pixel |
NJH34C | android-7.1.2_r16 | Nougat | Pixel XL、Pixel |
NKG47L | android-7.1.2_r15 | Nougat | Pixel XL、Pixel |
NHG47N | android-7.1.2_r14 | Nougat | Pixel XL、Pixel |
N2G47X | android-7.1.2_r13 | Nougat | Nexus Player |
N2G47W | android-7.1.2_r12 | Nougat | Nexus 5X、Nexus 6P、Pixel C |
NHG47L | android-7.1.2_r11 | Nougat | Pixel XL、Pixel |
N2G47T | android-7.1.2_r10 | Nougat | Pixel XL、Pixel |
N2G47R | android-7.1.2_r9 | Nougat | Nexus Player |
N2G47O | android-7.1.2_r8 | Nougat | Nexus 5X、Nexus 6P、Pixel XL、Pixel、Pixel C |
NHG47K | android-7.1.2_r6 | Nougat | Pixel XL、Pixel |
N2G47J | android-7.1.2_r5 | Nougat | Pixel XL、Pixel |
N2G47H | android-7.1.2_r4 | Nougat | Nexus 6P、Nexus Player |
N2G47F | android-7.1.2_r3 | Nougat | Nexus 5X |
N2G47E | android-7.1.2_r2 | Nougat | Pixel XL、Pixel |
N2G47D | android-7.1.2_r1 | Nougat | Pixel C |
N9F27M | android-7.1.1_r58 | Nougat | Nexus 9 (volantis) |
NGI77B | android-7.1.1_r57 | Nougat | Nexus 6 |
N8I11F | android-7.1.1_r56 | Nougat | Nexus 6 |
N6F27M | android-7.1.1_r55 | Nougat | Nexus 6 |
N4F27P | android-7.1.1_r54 | Nougat | Nexus 9 (volantisg) |
N9F27L | android-7.1.1_r53 | Nougat | Nexus 9 |
NGI55D | android-7.1.1_r52 | Nougat | Nexus 6 |
N4F27O | android-7.1.1_r51 | Nougat | Nexus 9 (volantisg) |
N8I11B | android-7.1.1_r50 | Nougat | Nexus 6 |
N9F27H | android-7.1.1_r49 | Nougat | Nexus 9 (volantis) |
N6F27I | android-7.1.1_r48 | Nougat | Nexus 6 |
N4F27K | android-7.1.1_r47 | Nougat | Nexus 9 (volantisg) |
N9F27F | android-7.1.1_r46 | Nougat | Nexus 9 (volantis) |
N6F27H | android-7.1.1_r45 | Nougat | Nexus 6 |
N4F27I | android-7.1.1_r44 | Nougat | Nexus 9 (volantisg) |
N9F27C | android-7.1.1_r43 | Nougat | Nexus 9 (volantis) |
N6F27E | android-7.1.1_r42 | Nougat | Nexus 6 |
N4F27E | android-7.1.1_r41 | Nougat | Nexus 9 (volantisg) |
N6F27C | android-7.1.1_r40 | Nougat | Nexus 6 |
N4F27B | android-7.1.1_r39 | Nougat | Nexus 9 (volantis/volantisg) |
N6F26Y | android-7.1.1_r38 | Nougat | Nexus 6 |
NOF27D | android-7.1.1_r35 | Nougat | Pixel XL、Pixel |
N4F26X | android-7.1.1_r33 | Nougat | Nexus 9 (volantis/volantisg) |
N4F26U | android-7.1.1_r31 | Nougat | Nexus 5X、Nexus 6P |
N6F26U | android-7.1.1_r28 | Nougat | Nexus 6 |
NUF26N | android-7.1.1_r27 | Nougat | Nexus 6P |
NOF27C | android-7.1.1_r26 | Nougat | Pixel XL、Pixel |
NOF27B | android-7.1.1_r25 | Nougat | Pixel XL、Pixel |
N4F26T | android-7.1.1_r24 | Nougat | Nexus 5X、Nexus 6P、Nexus 9 (volantis/volantisg)、Pixel C |
NMF27D | android-7.1.1_r23 | Nougat | Nexus Player |
NMF26X | android-7.1.1_r22 | Nougat | Nexus Player |
NOF26W | android-7.1.1_r21 | Nougat | Pixel XL、Pixel |
NOF26V | android-7.1.1_r20 | Nougat | Pixel XL、Pixel |
N6F26R | android-7.1.1_r17 | Nougat | Nexus 6 |
NUF26K | android-7.1.1_r16 | Nougat | Nexus 6P |
N4F26Q | android-7.1.1_r15 | Nougat | Nexus 9 (volantis/volantisg) |
N4F26O | android-7.1.1_r14 | Nougat | Nexus 5X、Nexus 6P、Pixel C |
N6F26Q | android-7.1.1_r13 | Nougat | Nexus 6 |
N4F26M | android-7.1.1_r12 | Nougat | Nexus 9 (volantis) |
N4F26J | android-7.1.1_r11 | Nougat | Nexus 5X、Nexus 6P |
N4F26I | android-7.1.1_r10 | Nougat | Nexus 5X、Nexus 6P、Pixel C |
NMF26V | android-7.1.1_r9 | Nougat | Pixel XL、Pixel |
NMF26U | android-7.1.1_r8 | Nougat | Pixel XL、Pixel |
NMF26R | android-7.1.1_r7 | Nougat | Nexus Player |
NMF26Q | android-7.1.1_r6 | Nougat | Pixel XL、Pixel |
NMF26O | android-7.1.1_r4 | Nougat | Pixel XL、Pixel |
NMF26J | android-7.1.1_r3 | Nougat | Nexus Player |
NMF26H | android-7.1.1_r2 | Nougat | Pixel C |
NMF26F | android-7.1.1_r1 | Nougat | Nexus 5X、Nexus 6P、Nexus 9 (volantis/volantisg) |
NDE63X | android-7.1.0_r7 | Nougat | Pixel XL、Pixel |
NDE63V | android-7.1.0_r6 | Nougat | Pixel XL、Pixel |
NDE63U | android-7.1.0_r5 | Nougat | Pixel XL、Pixel |
NDE63P | android-7.1.0_r4 | Nougat | Pixel XL、Pixel |
NDE63L | android-7.1.0_r2 | Nougat | Pixel XL、Pixel |
NDE63H | android-7.1.0_r1 | Nougat | Pixel XL、Pixel |
NBD92Q | android-7.0.0_r35 | Nougat | |
NBD92N | android-7.0.0_r34 | Nougat | |
NBD92G | android-7.0.0_r33 | Nougat | Nexus 6 |
NBD92F | android-7.0.0_r32 | Nougat | Nexus 6 |
NBD92E | android-7.0.0_r31 | Nougat | Nexus 6 |
NBD92D | android-7.0.0_r30 | Nougat | Nexus 6 |
NBD91Z | android-7.0.0_r29 | Nougat | Nexus 6 |
NBD91Y | android-7.0.0_r28 | Nougat | Nexus 6 |
NBD91X | android-7.0.0_r27 | Nougat | Nexus 6 |
NBD91U | android-7.0.0_r24 | Nougat | Nexus 6 |
N5D91L | android-7.0.0_r21 | Nougat | Nexus 5X |
NBD91P | android-7.0.0_r19 | Nougat | Nexus 6 |
NRD91K | android-7.0.0_r17 | Nougat | Nexus 6P |
NRD91N | android-7.0.0_r15 | Nougat | Nexus 5X、Pixel C、Nexus Player、Nexus 9 (volantis/volantisg) |
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 (WLAN) |
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 |
MOI10E | android-6.0.1_r81 | Marshmallow | |
MOB31Z | android-6.0.1_r80 | Marshmallow | |
MOB31T | android-6.0.1_r79 | Marshmallow | Nexus 6 |
MOB31S | android-6.0.1_r78 | Marshmallow | Nexus 6 |
M4B30Z | android-6.0.1_r77 | Marshmallow | Nexus 5 |
MOB31K | android-6.0.1_r74 | Marshmallow | Nexus 6 |
MMB31C | android-6.0.1_r73 | Marshmallow | Nexus 6 |
M4B30X | android-6.0.1_r72 | Marshmallow | Nexus 5 |
MOB31H | android-6.0.1_r70 | Marshmallow | Nexus 6 |
MMB30Y | android-6.0.1_r69 | Marshmallow | Nexus 6 |
MTC20K | android-6.0.1_r67 | Marshmallow | Nexus 5X |
MOB31E | android-6.0.1_r66 | Marshmallow | Nexus 5、Nexus 6、Nexus 9 (volantis) |
MMB30W | android-6.0.1_r65 | Marshmallow | Nexus 6 |
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 | Marshmallow | Nexus 6、Nexus 9 (volantis/volantisg)、Nexus Player |
MMB30S | android-6.0.1_r57 | Marshmallow | Nexus 7 (deb) |
MMB30R | android-6.0.1_r56 | Marshmallow | Nexus 6 |
MXC89K | android-6.0.1_r55 | Marshmallow | Pixel C |
MTC19Z | android-6.0.1_r54 | Marshmallow | Nexus 5X |
MTC19X | android-6.0.1_r53 | Marshmallow | Nexus 6P |
MOB30P | android-6.0.1_r50 | Marshmallow | Nexus 5、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg)、Nexus Player |
MOB30O | android-6.0.1_r49 | Marshmallow | Nexus 6 |
MMB30M | android-6.0.1_r48 | Marshmallow | Nexus 7 (deb) |
MMB30K | android-6.0.1_r47 | Marshmallow | Nexus 6 |
MOB30M | android-6.0.1_r46 | Marshmallow | Nexus 5、Nexus 6、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg)、Nexus Player |
MTC19V | android-6.0.1_r45 | Marshmallow | Nexus 5X、Nexus 6P |
MOB30J | android-6.0.1_r43 | Marshmallow | Nexus 7 (flo/deb) |
MOB30I | android-6.0.1_r42 | Marshmallow | Nexus 6 |
MOB30H | android-6.0.1_r41 | Marshmallow | Nexus 5 |
MOB30G | android-6.0.1_r40 | Marshmallow | Nexus 9 (volantis/volantisg)、Nexus Player |
MXC89H | android-6.0.1_r33 | Marshmallow | Pixel C |
MXC89F | android-6.0.1_r32 | Marshmallow | Pixel C |
MMB30J | android-6.0.1_r28 | Marshmallow | Nexus 6、Nexus 7 (deb) |
MTC19T | android-6.0.1_r25 | Marshmallow | Nexus 5X、Nexus 6P |
M5C14J | android-6.0.1_r31 | Marshmallow | Pixel C |
MOB30D | android-6.0.1_r30 | Marshmallow | Nexus 5、Nexus 6、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg)、Nexus Player |
MHC19Q | android-6.0.1_r24 | Marshmallow | Nexus 5X、Nexus 6P |
MHC19J | android-6.0.1_r22 | Marshmallow | Nexus 5X |
MHC19I | android-6.0.1_r21 | Marshmallow | Nexus 6P |
MMB29X | android-6.0.1_r20 | Marshmallow | Nexus 5、Nexus 6、Nexus 7 (deb)、Nexus 9 (volantisg) |
MXC14G | android-6.0.1_r18 | Marshmallow | Pixel C |
MMB29V | android-6.0.1_r17 | Marshmallow | Nexus 5、Nexus 5X、Nexus 6、Nexus 6P、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg) |
MXB48T | android-6.0.1_r16 | Marshmallow | Pixel C |
MMB29U | android-6.0.1_r13 | Marshmallow | Nexus Player |
MMB29R | android-6.0.1_r12 | Marshmallow | Nexus 9 (volantis/volantisg) |
MMB29Q | android-6.0.1_r11 | Marshmallow | Nexus 5、Nexus 5X、Nexus 6、Nexus 6P、Nexus 7 (flo/deb) |
MMB29T | android-6.0.1_r10 | Marshmallow | Nexus Player |
MMB29S | android-6.0.1_r9 | Marshmallow | Nexus 5、Nexus 6、Nexus 9 (volantis/volantisg) |
MMB29P | android-6.0.1_r8 | Marshmallow | Nexus 5X、Nexus 6P |
MMB29O | android-6.0.1_r7 | Marshmallow | Nexus 7 (flo/deb) |
MXB48K | android-6.0.1_r5 | Marshmallow | Pixel C |
MXB48J | android-6.0.1_r4 | Marshmallow | Pixel C |
MMB29M | android-6.0.1_r3 | Marshmallow | Nexus 6P、Nexus Player |
MMB29K | android-6.0.1_r1 | Marshmallow | Nexus 5、Nexus 5X、Nexus 6、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg) |
MMB29N | android-6.0.0_r41 | Marshmallow | Nexus 6P |
MDB08M | android-6.0.0_r26 | Marshmallow | Nexus 5X、Nexus 6P |
MDB08L | android-6.0.0_r25 | Marshmallow | Nexus 5X、Nexus 6P |
MDB08K | android-6.0.0_r24 | Marshmallow | Nexus 6P |
MDB08I | android-6.0.0_r23 | Marshmallow | Nexus 5X |
MDA89E | android-6.0.0_r12 | Marshmallow | Nexus 5X |
MDA89D | android-6.0.0_r11 | Marshmallow | Nexus 6P |
MRA59B | android-6.0.0_r7 | Marshmallow | Nexus 7 (deb) |
MRA58X | android-6.0.0_r6 | Marshmallow | Nexus 6 |
MRA58V | android-6.0.0_r5 | Marshmallow | Nexus 7 (flo/deb) |
MRA58U | android-6.0.0_r4 | Marshmallow | Nexus 7 (flo) |
MRA58N | android-6.0.0_r2 | Marshmallow | Nexus 5、Nexus 6、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg)、Nexus Player |
MRA58K | android-6.0.0_r1 | Marshmallow | Nexus 5、Nexus 6、Nexus 7 (flo/deb)、Nexus 9 (volantis/volantisg)、Nexus Player |
LMY49M | android-5.1.1_r38 | Lollipop | Nexus 10 |
LMY49J | android-5.1.1_r37 | Lollipop | Nexus 10 |
LMY49I | android-5.1.1_r36 | Lollipop | Nexus 10 |
LMY49H | android-5.1.1_r35 | Lollipop | Nexus 10 |
LMY49G | android-5.1.1_r34 | Lollipop | Nexus 10 |
LMY49F | android-5.1.1_r33 | Lollipop | Nexus 9 (volantisg)、Nexus 10 |
LMY48Z | android-5.1.1_r30 | Lollipop | Nexus 6、Nexus 7 (deb)、Nexus 9 (volantisg)、Nexus 10 |
LYZ28N | android-5.1.1_r28 | Lollipop | Nexus 6(仅面向 T-Mobile) |
LMY48Y | android-5.1.1_r26 | Lollipop | Nexus 6 |
LMY48X | android-5.1.1_r25 | Lollipop | Nexus 6、Nexus 7 (deb)、Nexus 9 (volantisg)、Nexus 10 |
LMY48W | android-5.1.1_r24 | Lollipop | Nexus 6 |
LVY48H | android-5.1.1_r23 | Lollipop | Nexus 6(仅面向 Project Fi) |
LYZ28M | android-5.1.1_r22 | Lollipop | Nexus 6(仅面向 T-Mobile) |
LMY48U | android-5.1.1_r20 | Lollipop | Nexus 7 (deb) |
LMY48T | android-5.1.1_r19 | Lollipop | Nexus 4、Nexus 6、Nexus 9 (volantis/volantisg)、Nexus 10 |
LVY48F | android-5.1.1_r18 | Lollipop | Nexus 6(仅面向 Project Fi) |
LYZ28K | android-5.1.1_r17 | Lollipop | Nexus 6(仅面向 T-Mobile) |
LMY48P | android-5.1.1_r16 | Lollipop | Nexus 7 (deb) |
LMY48N | android-5.1.1_r15 | Lollipop | Nexus Player |
LMY48M | android-5.1.1_r14 | Lollipop | Nexus 4、Nexus 5、Nexus 6、Nexus 7 (flo)、Nexus 9 (volantis/volantisg)、Nexus 10 |
LVY48E | android-5.1.1_r13 | Lollipop | Nexus 6(仅面向 Project Fi) |
LYZ28J | android-5.1.1_r12 | Lollipop | Nexus 6(仅面向 T-Mobile) |
LMY48J | android-5.1.1_r10 | Lollipop | Nexus Player |
LMY48I | android-5.1.1_r9 | Lollipop | Nexus 4、Nexus 5、Nexus 6、Nexus 7 (flo)、Nexus 9 (volantis/volantisg)、Nexus 10 |
LVY48C | android-5.1.1_r8 | Lollipop | Nexus 6(仅面向 Project Fi) |
LMY48G | android-5.1.1_r6 | Lollipop | Nexus 7 (flo) |
LYZ28E | android-5.1.1_r5 | Lollipop | Nexus 6(仅面向 T-Mobile) |
LMY47Z | android-5.1.1_r4 | Lollipop | Nexus 6(面向除 T-Mobile(美国)之外的所有运营商) |
LMY48B | android-5.1.1_r3 | Lollipop | Nexus 5 |
LMY47X | android-5.1.1_r2 | Lollipop | Nexus 9 (volantis) |
LMY47V | android-5.1.1_r1 | Lollipop | Nexus 7 (flo/grouper)、Nexus 10、Nexus Player |
LMY47O | android-5.1.0_r5 | Lollipop | Nexus 4、Nexus 7 (flo/deb) |
LMY47M | android-5.1.0_r4 | Lollipop | Nexus 6(仅面向 T-Mobile) |
LMY47I | android-5.1.0_r3 | Lollipop | Nexus 5、Nexus 6 |
LMY47E | android-5.1.0_r2 | Lollipop | Nexus 6 |
LMY47D | android-5.1.0_r1 | Lollipop | Nexus 5、Nexus 6、Nexus 7 (grouper/tilapia)、Nexus 10、Nexus Player |
LRX22L | android-5.0.2_r3 | Lollipop | Nexus 9 (volantis/volantisg) |
LRX22G | android-5.0.2_r1 | Lollipop | Nexus 7 (flo/deb/grouper/tilapia)、Nexus 10 |
LRX22C | android-5.0.1_r1 | Lollipop | Nexus 4、Nexus 5、Nexus 6 (shamu)、Nexus 7 (flo)、Nexus 9 (volantis/volantisg)、Nexus 10 |
LRX21V | android-5.0.0_r7.0.1 | Lollipop | Nexus Player (fugu) |
LRX21T | android-5.0.0_r6.0.1 | Lollipop | Nexus 4 |
LRX21R | android-5.0.0_r5.1.0.1 | Lollipop | Nexus 9 (volantis) |
LRX21Q | android-5.0.0_r5.0.1 | Lollipop | Nexus 9 (volantis) |
LRX21P | android-5.0.0_r4.0.1 | Lollipop | Nexus 7 (flo/grouper)、Nexus 10 |
LRX21O | android-5.0.0_r3.0.1 | Lollipop | Nexus 5 (hammerhead)、Nexus 6 (shamu) |
LRX21M | android-5.0.0_r2.0.1 | Lollipop | Nexus Player (fugu) |
LRX21L | android-5.0.0_r1.0.1 | Lollipop | Nexus 9 (volantis) |
KTU84Q | android-4.4.4_r2 | KitKat | Nexus 5 (hammerhead)(仅面向新西兰的 2Degrees、澳大利亚的 Telstra 和印度) |
KTU84P | android-4.4.4_r1 | KitKat | Nexus 5、Nexus 7 (flo/deb/grouper/tilapia)、Nexus 4、Nexus 10 |
KTU84M | android-4.4.3_r1.1 | KitKat | Nexus 5 (hammerhead) |
KTU84L | android-4.4.3_r1 | KitKat | Nexus 7 (flo/deb/grouper/tilapia)、Nexus 4、Nexus 10 |
KVT49L | android-4.4.2_r2 | KitKat | Nexus 7 (deb Verizon) |
KOT49H | android-4.4.2_r1 | KitKat | Nexus 5、Nexus 7 (flo/deb/grouper/tilapia)、Nexus 4、Nexus 10 |
KOT49E | android-4.4.1_r1 | KitKat | Nexus 5、Nexus 7 (flo/deb/grouper/tilapia)、Nexus 4、Nexus 10 |
KRT16S | android-4.4_r1.2 | KitKat | Nexus 7 (flo/deb/grouper/tilapia)、Nexus 4、Nexus 10 |
KRT16M | android-4.4_r1 | KitKat | Nexus 5 (hammerhead) |
JLS36I | android-4.3.1_r1 | Jelly Bean | Nexus 7 (deb) |
JLS36C | android-4.3_r3 | Jelly Bean | Nexus 7 (deb) |
JSS15R | android-4.3_r2.3 | Jelly Bean | Nexus 7 (flo) |
JSS15Q | android-4.3_r2.2 | Jelly Bean | Nexus 7 (flo) |
JSS15J | android-4.3_r2.1 | Jelly Bean | Nexus 7 (flo/deb) |
JSR78D | android-4.3_r2 | Jelly Bean | Nexus 7 (deb) |
JWR66Y | android-4.3_r1.1 | Jelly Bean | Galaxy Nexus、Nexus 7 (grouper/tilapia)、Nexus 4、Nexus 10 |
JWR66V | android-4.3_r1 | Jelly Bean | Galaxy Nexus、Nexus 7 (grouper/tilapia)、Nexus 4、Nexus 10 |
JWR66N | android-4.3_r0.9.1 | Jelly Bean | Galaxy Nexus、Nexus 7 (grouper/tilapia/flo)、Nexus 4、Nexus 10 |
JWR66L | android-4.3_r0.9 | Jelly Bean | Nexus 7 |
JDQ39E | android-4.2.2_r1.2 | Jelly Bean | Nexus 4 |
JDQ39B | android-4.2.2_r1.1 | Jelly Bean | Nexus 7 |
JDQ39 | android-4.2.2_r1 | Jelly Bean | Galaxy Nexus、Nexus 7、Nexus 4、Nexus 10 |
JOP40G | android-4.2.1_r1.2 | Jelly Bean | Nexus 4 |
JOP40F | android-4.2.1_r1.1 | Jelly Bean | Nexus 10 |
JOP40D | android-4.2.1_r1 | Jelly Bean | Galaxy Nexus、Nexus 7、Nexus 4、Nexus 10 |
JOP40C | android-4.2_r1 | Jelly Bean | Galaxy Nexus、Nexus 7、Nexus 4、Nexus 10 |
JZO54M | android-4.1.2_r2.1 | Jelly Bean | |
JZO54L | android-4.1.2_r2 | Jelly Bean | |
JZO54K | android-4.1.2_r1 | Jelly Bean | Nexus S、Galaxy Nexus、Nexus 7 |
JRO03S | android-4.1.1_r6.1 | Jelly Bean | Nexus 7 |
JRO03R | android-4.1.1_r6 | Jelly Bean | Nexus S 4G |
JRO03O | android-4.1.1_r5 | Jelly Bean | Galaxy Nexus |
JRO03L | android-4.1.1_r4 | Jelly Bean | Nexus S |
JRO03H | android-4.1.1_r3 | Jelly Bean | |
JRO03E | android-4.1.1_r2 | Jelly Bean | Nexus S |
JRO03D | android-4.1.1_r1.1 | Jelly Bean | Nexus 7 |
JRO03C | android-4.1.1_r1 | Jelly Bean | Galaxy Nexus |
IMM76L | android-4.0.4_r2.1 | Ice Cream Sandwich | |
IMM76K | android-4.0.4_r2 | Ice Cream Sandwich | Galaxy Nexus |
IMM76I | android-4.0.4_r1.2 | Ice Cream Sandwich | Galaxy Nexus |
IMM76D | android-4.0.4_r1.1 | Ice Cream Sandwich | Nexus S、Nexus S 4G、Galaxy Nexus |
IMM76 | android-4.0.4_r1 | Ice Cream Sandwich | |
IML77 | android-4.0.3_r1.1 | Ice Cream Sandwich | |
IML74K | android-4.0.3_r1 | Ice Cream Sandwich | Nexus S |
ICL53F | android-4.0.2_r1 | Ice Cream Sandwich | Galaxy Nexus |
ITL41F | android-4.0.1_r1.2 | Ice Cream Sandwich | Galaxy Nexus |
ITL41D | android-4.0.1_r1.1 | Ice Cream Sandwich | Galaxy Nexus |
ITL41D | android-4.0.1_r1 | Ice Cream Sandwich | Galaxy Nexus |
GWK74 | android-2.3.7_r1 | Gingerbread | Nexus S 4G |
GRK39F | android-2.3.6_r1 | Gingerbread | Nexus One、Nexus S |
GRK39C | android-2.3.6_r0.9 | Gingerbread | Nexus S |
GRJ90 | android-2.3.5_r1 | Gingerbread | Nexus S 4G |
GRJ22 | android-2.3.4_r1 | Gingerbread | Nexus One、Nexus S、Nexus S 4G |
GRJ06D | android-2.3.4_r0.9 | Gingerbread | Nexus S 4G |
GRI54 | android-2.3.3_r1.1 | Gingerbread | Nexus S |
GRI40 | android-2.3.3_r1 | Gingerbread | Nexus One、Nexus S |
GRH78C | android-2.3.2_r1 | Gingerbread | Nexus S |
GRH78 | android-2.3.1_r1 | Gingerbread | Nexus S |
GRH55 | android-2.3_r1 | Gingerbread | 使用 Gingerbread 最早期版本的设备、Nexus S |
FRK76C | android-2.2.3_r2 | Froyo | |
FRK76 | android-2.2.3_r1 | Froyo | |
FRG83G | android-2.2.2_r1 | Froyo | Nexus One |
FRG83D | android-2.2.1_r2 | Froyo | Nexus One |
FRG83 | android-2.2.1_r1 | Froyo | Nexus One |
FRG22D | android-2.2_r1.3 | Froyo | |
FRG01B | android-2.2_r1.2 | Froyo | |
FRF91 | android-2.2_r1.1 | Froyo | Nexus One |
FRF85B | android-2.2_r1 | Froyo | Nexus One |
EPF21B | android-2.1_r2.1p2 | Eclair | |
ESE81 | android-2.1_r2.1s | Eclair | |
EPE54B | android-2.1_r2.1p | Eclair | Nexus One |
ERE27 | android-2.1_r2 | Eclair | Nexus One |
ERD79 | android-2.1_r1 | Eclair | Nexus One |
ESD56 | android-2.0.1_r1 | Eclair | |
ESD20 | android-2.0_r1 | Eclair | |
DMD64 | android-1.6_r1.5 | Donut | |
DRD20 | android-1.6_r1.4 | ||
DRD08 | android-1.6_r1.3 | ||
DRC92 | android-1.6_r1.2 |
froyo、gingerbread、ics-mr0、ics-mr1、jb-dev、jb-mr1-dev、jb-mr1.1-dev、jb-mr2-dev 和 kitkat-dev 等分支代表与经过 Google 测试的配置不完全一致的开发分支。因此,除官方命名的版本之外,这些分支可能还包含尚未经过全面测试的各种更改。
要区分各个版本,您可以运行以下命令并指定两个分支标记,以获取与每个项目相关联的更改列表:
repo forall -pc 'git log --no-merges --oneline branch-1..branch-2'
例如:
repo forall -pc 'git log --no-merges --oneline android-4.4.2_r2..android-4.4.2_r1'
要将输出发送到文本文件,请运行以下命令:
repo forall -pc 'git log --no-merges --oneline android-4.4.2_r2..android-4.4.2_r1' > /tmp/android-4.4.2_r2-android-4.4.2_r1-diff.txt
Honeycomb GPL 模块
Honeycomb 的整个平台源代码未对外公开。不过,遵循 GPL 和 LGPL 许可的某些 Honeycomb 模块已对外公开,对应于如下的标记:
细分版本 | 标记 | 备注 |
---|---|---|
HRI39 | android-3.0_r1 | Honeycomb 最早期版本 |
HRI66 | android-3.0_r1.1 | |
HWI69 | android-3.0_r1.2 | |
HRI83 | android-3.0_r1.3 | |
HMJ37 | android-3.1_r1 | |
HTJ85B | android-3.2_r1 | |
HTK55D | android-3.2.1_r1 | |
HTK75D | android-3.2.1_r2 | |
HLK75C | android-3.2.2_r1 | |
HLK75D | android-3.2.2_r2 | |
HLK75F | android-3.2.4_r1 | |
HLK75H | android-3.2.6_r1 | Honeycomb 的最新版本 |
我们未提供刚好包含以上模块的清单。不过,有些清单允许构建这些组件。以下命令适用于 3.0_r1.1:
repo init -b master -m base-for-3.0-gpl.xml
repo sync
repo forall -c git checkout android-3.0_r1.1
要使用其他版本,请切换 git checkout
参数,还可以在必要时切换 repo init
中的 -m
参数。对于非 GPL 项目,git checkout
命令会返回错误,因为它找不到相应的标记。