Codenames, Tags, and Build Numbers

In this document

At a high level, Android development happens around families of releases, which use code names ordered alphabetically after tasty treats.

Platform Codenames, Versions, API Levels, and NDK Releases

The code names match the following version numbers, along with API levels and NDK releases provided for convenience:

Code name Version API level
Marshmallow 6.0 API level 23
Lollipop 5.1 API level 22
Lollipop 5.0 API level 21
KitKat 4.4 - 4.4.4 API level 19
Jelly Bean 4.3.x API level 18
Jelly Bean 4.2.x API level 17
Jelly Bean 4.1.x API level 16
Ice Cream Sandwich 4.0.3 - 4.0.4 API level 15, NDK 8
Ice Cream Sandwich 4.0.1 - 4.0.2 API level 14, NDK 7
Honeycomb 3.2.x API level 13
Honeycomb 3.1 API level 12, NDK 6
Honeycomb 3.0 API level 11
Gingerbread 2.3.3 - 2.3.7 API level 10
Gingerbread 2.3 - 2.3.2 API level 9, NDK 5
Froyo 2.2.x API level 8, NDK 4
Eclair 2.1 API level 7, NDK 3
Eclair 2.0.1 API level 6
Eclair 2.0 API level 5
Donut 1.6 API level 4, NDK 2
Cupcake 1.5 API level 3, NDK 1
(no code name) 1.1 API level 2
(no code name) 1.0 API level 1

Starting with Cupcake, individual builds are identified with a short build code, e.g. FRF85B.

The first letter is the code name of the release family, e.g. F is Froyo.

The second letter is a branch code that allows Google to identify the exact code branch that the build was made from, and R is by convention the primary release branch.

The next letter and two digits are a date code. The letter counts quarters, with A being Q1 2009. Therefore, F is Q2 2010. The two digits count days within the quarter, so F85 is June 24 2010.

Finally, the last letter identifies individual versions related to the same date code, sequentially starting with A; A is actually implicit and usually omitted for brevity.

The date code is not guaranteed to be the exact date at which a build was made, and it is common that minor variations added to an existing build re-use the same date code as that existing build.

Source Code Tags and Builds

Starting with Donut, the exact list of tags and builds is in the following table. Factory images and binaries for Nexus devices can be downloaded from:

Build Branch Version Supported devices
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
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
LYZ28N android-5.1.1_r28 Lollipop Nexus 6 (For T-Mobile ONLY)
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 (For Project Fi ONLY)
LYZ28M android-5.1.1_r22 Lollipop Nexus 6 (For T-Mobile ONLY)
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 (For Project Fi ONLY)
LYZ28K android-5.1.1_r17 Lollipop Nexus 6 (For T-Mobile ONLY)
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 (For Project Fi ONLY)
LYZ28J android-5.1.1_r12 Lollipop Nexus 6 (For T-Mobile ONLY)
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 (For Project Fi ONLY)
LMY48G android-5.1.1_r6 Lollipop Nexus 7 (flo)
LYZ28E android-5.1.1_r5 Lollipop Nexus 6 (For T-Mobile ONLY)
LMY47Z android-5.1.1_r4 Lollipop Nexus 6 (All carriers except T-Mobile US)
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 (For T-Mobile ONLY)
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) (For 2Degrees/NZ, Telstra/AUS and India ONLY)
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 earliest Gingerbread version, 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

The branches froyo, gingerbread, ics-mr0, ics-mr1, jb-dev, jb-mr1-dev, jb-mr1.1-dev, jb-mr2-dev, kitkat-dev represent development branches that do not exactly match configurations that were tested by Google. They might contain a variety of changes in addition to the official tagged releases, and those haven't been as thoroughly tested.

To differentiate between releases, you may obtain a list of changes associated with each project by issuing the following command and passing it the two branch tags:

$ repo forall -pc 'git log --no-merges --oneline branch-1..branch-2'

For example:

$ repo forall -pc 'git log --no-merges --oneline'

And to output to a text file:

repo forall -pc 'git log --no-merges --oneline' > /tmp/android-4.4.2_r2-android-4.4.2_r1-diff.txt

Honeycomb GPL Modules

For Honeycomb, the entire platform source code isn't available. However, the parts of Honeycomb licensed under the GPL and LGPL are available under the following tags:

Build Tag Notes
HRI39 android-3.0_r1 earliest Honeycomb version
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 latest Honeycomb version

There is no manifest that contains exactly those. However, there are manifests that allow building those components. The following commands work for 3.0_r1.1, and using other versions can be done by switching the git checkout paramater, and if necessary the -m parameter in repo init. The git checkout command outputs an error for the non-GPL projects, where it can't find the tag in question.

$ repo init -b master -m base-for-3.0-gpl.xml
$ repo sync
$ repo forall -c git checkout android-3.0_r1.1