Skyler Kaufman | 4443691 | 2011-04-07 15:11:52 -0700 | [diff] [blame] | 1 | <!-- |
| 2 | Copyright 2010 The Android Open Source Project |
| 3 | |
| 4 | Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | you may not use this file except in compliance with the License. |
| 6 | You may obtain a copy of the License at |
| 7 | |
| 8 | http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | |
| 10 | Unless required by applicable law or agreed to in writing, software |
| 11 | distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | See the License for the specific language governing permissions and |
| 14 | limitations under the License. |
| 15 | --> |
| 16 | |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 17 | # Codenames, Tags, and Build Numbers # |
| 18 | |
| 19 | At a high level, Android development happens around families of |
| 20 | releases, which use code names ordered alphabetically after tasty |
| 21 | treats. |
| 22 | |
Jean-Baptiste Queru | b4d39b4 | 2011-04-11 13:53:58 -0700 | [diff] [blame] | 23 | ## Platform code names, versions, API levels, and NDK releases ## |
| 24 | |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 25 | The code names match the following version numbers, along with |
| 26 | API levels and NDK releases provided for convenience: |
| 27 | |
Jean-Baptiste Queru | b4d39b4 | 2011-04-11 13:53:58 -0700 | [diff] [blame] | 28 | Code name | Version | API level |
| 29 | ---------------|--------------|------------ |
| 30 | (no code name) | 1.0 | API level 1 |
| 31 | (no code name) | 1.1 | API level 2 |
| 32 | Cupcake | 1.5 | API level 3, NDK 1 |
| 33 | Donut | 1.6 | API level 4, NDK 2 |
| 34 | Eclair | 2.0 | API level 5 |
| 35 | Eclair | 2.0.1 | API level 6 |
Jean-Baptiste Queru | 3a49c68 | 2011-05-09 09:29:18 -0700 | [diff] [blame] | 36 | Eclair | 2.1 (incl. 2.1-update 1) | API level 7, NDK 3 |
Jean-Baptiste Queru | b4d39b4 | 2011-04-11 13:53:58 -0700 | [diff] [blame] | 37 | Froyo | 2.2.x | API level 8, NDK 4 |
| 38 | Gingerbread | 2.3 - 2.3.2 | API level 9, NDK 5 |
Jean-Baptiste Queru | cac01c1 | 2011-09-28 17:26:00 -0700 | [diff] [blame] | 39 | Gingerbread | 2.3.3 - 2.3.7 | API level 10 |
Jean-Baptiste Queru | 3a49c68 | 2011-05-09 09:29:18 -0700 | [diff] [blame] | 40 | Honeycomb | 3.0 | API level 11 |
Jean-Baptiste Queru | 3e466b0 | 2011-10-06 14:34:00 -0700 | [diff] [blame] | 41 | Honeycomb | 3.1 | API level 12, NDK 6 |
Jean-Baptiste Queru | 80f89c3 | 2011-10-05 14:37:21 -0700 | [diff] [blame] | 42 | Honeycomb | 3.2 - 3.2.2 | API level 13 |
Jean-Baptiste Queru | 35f5101 | 2011-12-14 09:32:22 -0800 | [diff] [blame] | 43 | IceCreamSandwich | 4.0.1 - 4.0.2 | API level 14, NDK 7 |
| 44 | IceCreamSandwich | 4.0.3 | API level 15 |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 45 | |
| 46 | Starting with Cupcake, individual builds are identified with a short |
Jean-Baptiste Queru | e3dc1ac | 2011-06-23 13:29:03 -0700 | [diff] [blame] | 47 | build code, e.g. FRF85B. |
| 48 | |
| 49 | The first letter is the code name of the release family, e.g. F is |
| 50 | Froyo. |
| 51 | |
| 52 | The second letter is a branch code that allows Google to identify |
| 53 | the exact code branch that the build was made from, and R is by |
| 54 | convention the primary release branch. |
| 55 | |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 56 | The next letter and two digits are a date code. The letter counts |
| 57 | quarters, with A being Q1 2009. Therefore, F is Q2 2010. The two |
| 58 | digits count days within the quarter, so F85 is June 24 2010. |
Jean-Baptiste Queru | e3dc1ac | 2011-06-23 13:29:03 -0700 | [diff] [blame] | 59 | |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 60 | Finally, the last letter identifies individual versions related to |
| 61 | the same date code, sequentially starting with A; A is actually |
Jean-Baptiste Queru | e3dc1ac | 2011-06-23 13:29:03 -0700 | [diff] [blame] | 62 | implicit and usually omitted for brevity. |
| 63 | |
| 64 | The date code is not guaranteed to be the exact date at which a build |
| 65 | was made, and it is common that minor variations added to an existing |
| 66 | build re-use the same date code as that existing build. |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 67 | |
Jean-Baptiste Queru | b4d39b4 | 2011-04-11 13:53:58 -0700 | [diff] [blame] | 68 | ## Source code tags and builds ## |
| 69 | |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 70 | Starting with Donut, the exact list of tags and builds is in the |
| 71 | following table: |
| 72 | |
| 73 | Build | Tag | Notes |
| 74 | -------|--------------------|----------------------------------- |
Jean-Baptiste Queru | b4d39b4 | 2011-04-11 13:53:58 -0700 | [diff] [blame] | 75 | DRC83 | android-1.6_r1.1 | earliest Donut version, ADP1, ADP2 |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 76 | DRC92 | android-1.6_r1.2 |
| 77 | DRD08 | android-1.6_r1.3 |
| 78 | DRD20 | android-1.6_r1.4 |
| 79 | DMD64 | android-1.6_r1.5 | latest Donut version |
| 80 | ESD20 | android-2.0_r1 | earliest Eclair version |
| 81 | ESD56 | android-2.0.1_r1 |
| 82 | ERD79 | android-2.1_r1 | Nexus One |
| 83 | ERE27 | android-2.1_r2 | Nexus One |
| 84 | EPE54B | android-2.1_r2.1p | Nexus One |
| 85 | ESE81 | android-2.1_r2.1s |
| 86 | EPF21B | android-2.1_r2.1p2 | latest Eclair version |
| 87 | FRF85B | android-2.2_r1 | earliest Froyo version, Nexus One |
| 88 | FRF91 | android-2.2_r1.1 | Nexus One |
| 89 | FRG01B | android-2.2_r1.2 |
| 90 | FRG22D | android-2.2_r1.3 |
| 91 | FRG83 | android-2.2.1_r1 | Nexus One |
| 92 | FRG83D | android-2.2.1_r2 | Nexus One |
Jean-Baptiste Queru | aeac48d | 2011-10-06 14:16:39 -0700 | [diff] [blame] | 93 | FRG83G | android-2.2.2_r1 | Nexus One |
| 94 | FRK76 | android-2.2.3_r1 |
| 95 | FRK76C | android-2.2.3_r2 | latest Froyo version |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 96 | GRH55 | android-2.3_r1 | earliest Gingerbread version, Nexus S |
| 97 | GRH78 | android-2.3.1_r1 | Nexus S |
Jean-Baptiste Queru | b4d39b4 | 2011-04-11 13:53:58 -0700 | [diff] [blame] | 98 | GRH78C | android-2.3.2_r1 | Nexus S |
Jean-Baptiste Queru | 3a49c68 | 2011-05-09 09:29:18 -0700 | [diff] [blame] | 99 | GRI40 | android-2.3.3_r1 | Nexus One, Nexus S |
Jean-Baptiste Queru | 1a6c0f0 | 2011-05-11 08:51:17 -0700 | [diff] [blame] | 100 | GRI54 | android-2.3.3_r1.1 | Nexus S |
| 101 | GRJ06D | android-2.3.4_r0.9 | Nexus S 4G |
Jean-Baptiste Queru | 24d2130 | 2011-07-26 10:52:50 -0700 | [diff] [blame] | 102 | GRJ22 | android-2.3.4_r1 | Nexus One, Nexus S, Nexus S 4G |
Jean-Baptiste Queru | cac01c1 | 2011-09-28 17:26:00 -0700 | [diff] [blame] | 103 | GRJ90 | android-2.3.5_r1 | Nexus S 4G |
Jean-Baptiste Queru | be48f61 | 2011-10-06 14:20:51 -0700 | [diff] [blame] | 104 | GRK39C | android-2.3.6_r0.9 | Nexus S |
| 105 | GRK39F | android-2.3.6_r1 | Nexus One, Nexus S |
| 106 | GWK74 | android-2.3.7_r1 | latest Gingerbread version, Nexus S 4G |
Jean-Baptiste Queru | 80fe839 | 2011-12-02 15:21:31 -0800 | [diff] [blame] | 107 | ITL41D | android-4.0.1_r1 | earliest IceCreamSandwich version, Galaxy Nexus |
Jean-Baptiste Queru | 61142cb | 2011-12-20 09:05:45 -0800 | [diff] [blame^] | 108 | ITL41D | android-4.0.1_r1.1 | Galaxy Nexus |
Jean-Baptiste Queru | 35f5101 | 2011-12-14 09:32:22 -0800 | [diff] [blame] | 109 | ITL41F | android-4.0.1_r1.2 | Galaxy Nexus |
Jean-Baptiste Queru | 61142cb | 2011-12-20 09:05:45 -0800 | [diff] [blame^] | 110 | ICL53F | android-4.0.2_r1 | Galaxy Nexus |
Jean-Baptiste Queru | c95d7e6 | 2011-12-16 09:57:16 -0800 | [diff] [blame] | 111 | IML74K | android-4.0.3_r1 | latest IceCreamSandwich version, Nexus S |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 112 | |
Jean-Baptiste Queru | 35f5101 | 2011-12-14 09:32:22 -0800 | [diff] [blame] | 113 | The branches froyo, gingerbread, ics-mr0, ics-mr1, represent development |
Skyler Kaufman | 991ae4d | 2011-04-07 12:30:41 -0700 | [diff] [blame] | 114 | branches that do not exactly match configurations that were tested |
| 115 | by Google. They might contain a variety of changes in addition to |
| 116 | the official tagged releases, and those haven't been as thoroughly |
| 117 | tested. |
| 118 | |
Jean-Baptiste Queru | b4d39b4 | 2011-04-11 13:53:58 -0700 | [diff] [blame] | 119 | ## Honeycomb GPL modules ## |
| 120 | |
| 121 | For Honeycomb, the entire platform source code isn't available. |
| 122 | However, the parts of Honeycomb licensed under the GPL and LGPL |
| 123 | are available under the following tags: |
| 124 | |
| 125 | Build | Tag | Notes |
| 126 | -------|--------------------|----------------------------------- |
Jean-Baptiste Queru | 3a49c68 | 2011-05-09 09:29:18 -0700 | [diff] [blame] | 127 | HRI39 | android-3.0_r1 | earliest Honeycomb version |
| 128 | HRI66 | android-3.0_r1.1 |
| 129 | HWI69 | android-3.0_r1.2 |
| 130 | HRI93 | android-3.0_r1.3 |
Jean-Baptiste Queru | c1f9266 | 2011-07-20 12:37:14 -0700 | [diff] [blame] | 131 | HMJ37 | android-3.1_r1 |
Jean-Baptiste Queru | cac01c1 | 2011-09-28 17:26:00 -0700 | [diff] [blame] | 132 | HTJ85B | android-3.2_r1 |
Jean-Baptiste Queru | be48f61 | 2011-10-06 14:20:51 -0700 | [diff] [blame] | 133 | HTK55D | android-3.2.1_r1 |
| 134 | HTK75D | android-3.2.1_r2 |
| 135 | HLK75C | android-3.2.2_r1 |
Jean-Baptiste Queru | 80fe839 | 2011-12-02 15:21:31 -0800 | [diff] [blame] | 136 | HLK75D | android-3.2.2_r2 |
| 137 | HLK75F | android-3.2.4_r1 | latest Honeycomb version |
Jean-Baptiste Queru | 3b70aac | 2011-06-23 13:29:24 -0700 | [diff] [blame] | 138 | |
| 139 | There is no manifest that contains exactly those. However, there |
| 140 | are manifests that allow building those components. The following |
| 141 | commands work for 3.0_r1.1, and using other versions can be done by |
Jean-Baptiste Queru | be48f61 | 2011-10-06 14:20:51 -0700 | [diff] [blame] | 142 | switching the git checkout paramater, and if necessary the -m parameter in |
| 143 | repo init. The git checkout command outputs an error for the non-GPL |
| 144 | projects, where it can't find the tag in question. |
Jean-Baptiste Queru | 3b70aac | 2011-06-23 13:29:24 -0700 | [diff] [blame] | 145 | |
Jean-Baptiste Queru | be48f61 | 2011-10-06 14:20:51 -0700 | [diff] [blame] | 146 | $ repo init -b master -m base-for-3.0-gpl.xml |
Jean-Baptiste Queru | 3b70aac | 2011-06-23 13:29:24 -0700 | [diff] [blame] | 147 | $ repo sync |
| 148 | $ repo forall -c git checkout android-3.0_r1.1 |