Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame^] | 1 | # Codenames, Tags, and Build Numbers # |
| 2 | |
| 3 | At a high level, Android development happens around families of |
| 4 | releases, which use code names ordered alphabetically after tasty |
| 5 | treats. |
| 6 | |
| 7 | The code names match the following version numbers, along with |
| 8 | API levels and NDK releases provided for convenience: |
| 9 | |
| 10 | Code name | Version | API level |
| 11 | ---------------|---------|------------ |
| 12 | (no code name) | 1.0 | API level 1 |
| 13 | (no code name) | 1.1 | API level 2 |
| 14 | Cupcake | 1.5 | API level 3, NDK 1 |
| 15 | Donut | 1.6 | API level 4, NDK 2 |
| 16 | Eclair | 2.0 | API level 5 |
| 17 | Eclair | 2.0.1 | API level 6 |
| 18 | Eclair | 2.1 | API level 7, NDK 3 |
| 19 | Froyo | 2.2.x | API level 8, NDK 4 |
| 20 | Gingerbread | 2.3.x | API level 9, NDK 5 |
| 21 | |
| 22 | Starting with Cupcake, individual builds are identified with a short |
| 23 | build code, e.g. FRF85B. The first letter is the code name of the |
| 24 | release family, e.g. F is Froyo. The second letter is a branch code |
| 25 | that allows Google to identify the exact code branch that the build |
| 26 | was made from, and R is by convention the primary release branch. |
| 27 | The next letter and two digits are a date code. The letter counts |
| 28 | quarters, with A being Q1 2009. Therefore, F is Q2 2010. The two |
| 29 | digits count days within the quarter, so F85 is June 24 2010. |
| 30 | Finally, the last letter identifies individual versions related to |
| 31 | the same date code, sequentially starting with A; A is actually |
| 32 | implicit and usually omitted for brevity. The date code is not |
| 33 | guaranteed to be the exact date at which a build was made, and it is |
| 34 | common that minor variations added to an existing build re-use the |
| 35 | same date code as that existing build. |
| 36 | |
| 37 | Starting with Donut, the exact list of tags and builds is in the |
| 38 | following table: |
| 39 | |
| 40 | Build | Tag | Notes |
| 41 | -------|--------------------|----------------------------------- |
| 42 | DRC83 | android-1.6_r1.1 earliest Donut version, ADP1, ADP2 |
| 43 | DRC92 | android-1.6_r1.2 |
| 44 | DRD08 | android-1.6_r1.3 |
| 45 | DRD20 | android-1.6_r1.4 |
| 46 | DMD64 | android-1.6_r1.5 | latest Donut version |
| 47 | ESD20 | android-2.0_r1 | earliest Eclair version |
| 48 | ESD56 | android-2.0.1_r1 |
| 49 | ERD79 | android-2.1_r1 | Nexus One |
| 50 | ERE27 | android-2.1_r2 | Nexus One |
| 51 | EPE54B | android-2.1_r2.1p | Nexus One |
| 52 | ESE81 | android-2.1_r2.1s |
| 53 | EPF21B | android-2.1_r2.1p2 | latest Eclair version |
| 54 | FRF85B | android-2.2_r1 | earliest Froyo version, Nexus One |
| 55 | FRF91 | android-2.2_r1.1 | Nexus One |
| 56 | FRG01B | android-2.2_r1.2 |
| 57 | FRG22D | android-2.2_r1.3 |
| 58 | FRG83 | android-2.2.1_r1 | Nexus One |
| 59 | FRG83D | android-2.2.1_r2 | Nexus One |
| 60 | FRG83G | android-2.2.2_r1 | latest Froyo version, Nexus One |
| 61 | GRH55 | android-2.3_r1 | earliest Gingerbread version, Nexus S |
| 62 | GRH78 | android-2.3.1_r1 | Nexus S |
| 63 | GRH78C | android-2.3.2_r1 | latest Gingerbread version, Nexus S |
| 64 | |
| 65 | The branches donut, eclair, froyo, gingerbread represent development |
| 66 | branches that do not exactly match configurations that were tested |
| 67 | by Google. They might contain a variety of changes in addition to |
| 68 | the official tagged releases, and those haven't been as thoroughly |
| 69 | tested. |
| 70 | |