├── .eslintrc
├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── airpods.json
├── airtag.json
├── apple_tv.json
├── apple_watch.json
├── build-devices.js
├── devices-min.json
├── devices.json
├── dist
├── ios-device-list.js
└── ios-device-list.min.js
├── homepod.json
├── index.js
├── ipad.json
├── ipad_air.json
├── ipad_mini.json
├── ipad_pro.json
├── iphone.json
├── ipod_touch.json
├── package.json
├── saved
├── ios-models.html
└── save.js
├── siri_remote.json
├── test.js
├── webpack.config.js
└── webpack.prod.config.js
/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "indent": [
4 | 1,
5 | 2
6 | ],
7 | "quotes": [
8 | 1,
9 | "single"
10 | ],
11 | "semi": [
12 | 2,
13 | "always"
14 | ],
15 | "no-console": 0
16 | },
17 | "env": {
18 | "es6": true,
19 | "node": true
20 | },
21 | "extends": "eslint:recommended"
22 | }
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | .DS_Store
3 | npm-debug.log
4 | .vscode
5 | package-lock.json
6 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | saved/
2 | test.js
3 | webpack*
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2016 Peter Bakondy
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # iOS device list
2 |
3 | [](https://www.npmjs.com/package/ios-device-list)
4 |
5 | Searchable collection of Apple devices.
6 |
7 | Parameters per device:
8 | Generation, Model number ("A" Number), Bootrom, Variant, FCC ID, Internal Name, Identifier, Case Material, Color, Storage, Model
9 |
10 | Sources:
11 | - https://en.wikipedia.org/wiki/List_of_iOS_devices
12 | - https://www.theiphonewiki.com/wiki/Models
13 | - https://developer.apple.com/reference/uikit/uidevice
14 | - https://support.apple.com/en-ph/HT201296
15 |
16 | ## Install
17 |
18 | ```
19 | $ npm install ios-device-list
20 | ```
21 |
22 | ## Usage
23 |
24 | In node:
25 |
26 | ```js
27 | var iosDevices = require('ios-device-list');
28 | ```
29 |
30 | In browser:
31 |
32 | ```html
33 |
34 |
37 | ```
38 |
39 | ### `.deviceTypes()` : Array
40 |
41 | Returns the device type list: airpods, apple_tv, apple_watch, homepod, ipad, ipad_air, ipad_pro, ipad_mini, iphone, ipod_touch
42 |
43 | ### `.devices([type])` : Array
44 |
45 | Returns the full device list.
46 |
47 | With optional type parameter returns the device list of the actual type.
48 |
49 | ### `.generations([type])` : Array
50 |
51 | Returns the full Generation list.
52 |
53 | With optional type parameter returns the generation list of the actual type.
54 |
55 | ### `.anumbers([type])` : Array
56 |
57 | Returns the full "A" Number list.
58 |
59 | With optional type parameter returns the "A" Number list of the actual type.
60 |
61 | ### `.fccids([type])` : Array
62 |
63 | Returns the full FCC ID list.
64 |
65 | With optional type parameter returns the FCC ID list of the actual type.
66 |
67 | ### `.internalNames([type])` : Array
68 |
69 | Returns the full Internal Name list.
70 |
71 | With optional type parameter returns the Internal Name list of the actual type.
72 |
73 | ### `.identifiers([type])` : Array
74 |
75 | Returns the full Identifier list.
76 |
77 | With optional type parameter returns the Identifier list of the actual type.
78 |
79 | ### `.colors([type])` : Array
80 |
81 | Returns the full Color list.
82 |
83 | With optional type parameter returns the Color list of the actual type.
84 |
85 | ### `.storages([type])` : Array
86 |
87 | Returns the full Storage list.
88 |
89 | With optional type parameter returns the Storage list of the actual type.
90 |
91 | ### `.models([type])` : Array
92 |
93 | Returns the full Model list.
94 |
95 | With optional type parameter returns the Model list of the actual type.
96 |
97 | ### `.deviceByGeneration(generation, [type], [options])` : Array
98 |
99 | Returns a device list with matching Generation.
100 |
101 | With optional type parameter the result is filtered by the device type.
102 |
103 | `options` is an `Object`.
104 | - `caseInsensitive`: boolean *(default false)* - do not care of case type
105 | - `contains`: boolean *(default false)* - return partial (substring) results too
106 |
107 |
108 | ### `.deviceByANumber(anumber, [type], [options])` : Array
109 |
110 | Returns a device list with matching "A" Number.
111 |
112 | With optional type parameter the result is filtered by the device type.
113 |
114 |
115 | ### `.deviceByFCCID(fccid, [type], [options])` : Array
116 |
117 | Returns a device list with matching FCC ID.
118 |
119 | With optional type parameter the result is filtered by the device type.
120 |
121 |
122 | ### `.deviceByInternalName(name, [type], [options])` : Array
123 |
124 | Returns a device list with matching Internal Name.
125 |
126 | With optional type parameter the result is filtered by the device type.
127 |
128 |
129 | ### `.deviceByIdentifier(id, [type], [options])` : Array
130 |
131 | Returns a device list with matching Identifier.
132 |
133 | With optional type parameter the result is filtered by the device type.
134 |
135 |
136 | ### `.deviceByColor(color, [type], [options])` : Array
137 |
138 | Returns a device list with matching Color.
139 |
140 | With optional type parameter the result is filtered by the device type.
141 |
142 |
143 | ### `.deviceByStorage(storage, [type], [options])` : Array
144 |
145 | Returns a device list with matching Storage.
146 |
147 | With optional type parameter the result is filtered by the device type.
148 |
149 |
150 | ### `.deviceByModel(model, [type], [options])` : Array
151 |
152 | Returns a device list with matching Model.
153 |
154 | With optional type parameter the result is filtered by the device type.
155 |
156 |
157 | ### `.generationByIdentifier(id, [type])` : String
158 |
159 | Returns the generation name with matching Identifier.
160 |
161 | With optional type parameter the result is filtered by the device type.
162 |
163 |
164 | ## Example
165 |
166 | ```js
167 | var iosDevices = require('ios-device-list');
168 |
169 | var deviceTypes = iosDevices.deviceTypes();
170 | var devices = iosDevices.devices();
171 |
172 | console.log(deviceTypes.length);
173 | // 6
174 |
175 | console.log(devices.length);
176 | // 727
177 |
178 | console.log(devices[500]);
179 | // { Type: 'iphone',
180 | // Generation: 'iPhone 5c',
181 | // ANumber: [ 'A1456', 'A1532' ],
182 | // Bootrom: [ 'Bootrom 1145.3' ],
183 | // Variant: 'iPhone5,3',
184 | // FCCID: [ 'BCG‑E2644A' ],
185 | // InternalName: 'N48AP',
186 | // Identifier: 'iPhone5,3',
187 | // Color: 'Yellow',
188 | // Storage: '32 GB',
189 | // Model: 'MF135' }
190 |
191 | var iphone82;
192 |
193 | iphone82 = iosDevices.deviceByIdentifier('iPhone8,2');
194 | console.log(iphone82.length);
195 | // 24
196 |
197 | iphone82 = iosDevices.deviceByIdentifier('iphone8,2', null, { caseInsensitive: true });
198 | console.log(iphone82.length);
199 | // 24
200 |
201 | iphone82 = iosDevices.deviceByIdentifier('iPhone8', null, { contains: true });
202 | console.log(iphone82.length);
203 | // 56
204 |
205 | var gen = iosDevices.generationByIdentifier('iPhone8,2');
206 | console.log(gen);
207 | // 'iPhone 6s Plus'
208 |
209 | ```
210 |
211 |
212 | ## License
213 |
214 | **ios-device-list** is licensed under the MIT Open Source license. For more information, see the LICENSE file in this repository.
215 |
--------------------------------------------------------------------------------
/airpods.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "AirPods (1st generation)",
4 | "ANumber": [ "A1523", "A1722", "A1602" ],
5 | "FCCID": [ "BCG-A1523", "BCG-A1722" ],
6 | "InternalName": "B188AP",
7 | "Identifier": "AirPods1,1",
8 | "Models": [
9 | {
10 | "Model": [ "MMEF2" ]
11 | }
12 | ]
13 | },
14 | {
15 | "Generation": "AirPods (2nd generation)",
16 | "ANumber": [ "A2031", "A2032", "A1938" ],
17 | "FCCID": [ "BCG-A2031", "BCG-A2032" ],
18 | "InternalName": "B288AP",
19 | "Identifier": [ "AirPods2,1", "AirPods2,1" ],
20 | "Models": [
21 | {
22 | "Model": [ "MRXJ2", "MV7N2", "MR8U2" ]
23 | }
24 | ]
25 | },
26 | {
27 | "Generation": "AirPods (3rd generation)",
28 | "ANumber": [ "A2564", "A2565", "A2566" ],
29 | "FCCID": [ "BCG-A2564", "BCG-A2565" ],
30 | "InternalName": "B688AP",
31 | "Identifier": [ "AirPods1,3", "Audio2,1" ],
32 | "Models": []
33 | },
34 | {
35 | "Generation": "AirPods Pro",
36 | "ANumber": [ "A2083", "A2084", "A2190" ],
37 | "FCCID": [ "BCG-A2083", "BCG-A2084" ],
38 | "InternalName": "B298AP",
39 | "Identifier": [ "AirPods2,2", "AirPodsPro1,1", "iProd8,1" ],
40 | "Models": [
41 | {
42 | "Model": [ "MWP22" ]
43 | }
44 | ]
45 | },
46 | {
47 | "Generation": "AirPods Pro (2nd generation)",
48 | "ANumber": [ "A2699", "A2698", "A2700" ],
49 | "FCCID": [ ],
50 | "InternalName": "B698AP",
51 | "Identifier": "AirPodsPro1,2",
52 | "Models": [ ]
53 | },
54 | {
55 | "Generation": "AirPods Max",
56 | "ANumber": [ "A2096" ],
57 | "FCCID": [ "BCG-A2096" ],
58 | "InternalName": "B515AP",
59 | "Identifier": [ "AirPodsMax1,1", "iProd8,6" ],
60 | "Models": [
61 | {
62 | "Model": [ "MGYH3", "MGYJ3", "MGYL3", "MGYM3", "MGYN3" ]
63 | }
64 | ]
65 | }
66 | ]
67 |
--------------------------------------------------------------------------------
/airtag.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "AirTag",
4 | "ANumber": [ "A2187" ],
5 | "FCCID": [ "BCGA2187" ],
6 | "InternalName": "B389AP",
7 | "Identifier": "AirTag1,1",
8 | "Models": [
9 | {
10 | "PackSize": "1 pack",
11 | "Model": [ "MX532" ]
12 | },
13 | {
14 | "PackSize": "4 pack",
15 | "Model": [ "MX542" ]
16 | }
17 | ]
18 | }
19 | ]
20 |
--------------------------------------------------------------------------------
/apple_tv.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "Apple TV (1st generation)",
4 | "ANumber": "A1218",
5 | "Bootrom": "None",
6 | "Identifier": "AppleTV1,1",
7 | "Models": [
8 | {
9 | "Color": "Silver",
10 | "Storage": "40 GB",
11 | "Model": [ "MA711" ]
12 | },
13 | {
14 | "Color": "Silver",
15 | "Storage": "160 GB",
16 | "Model": [ "MB189" ]
17 | }
18 | ]
19 | },
20 | {
21 | "Generation": "Apple TV (2nd generation)",
22 | "ANumber": "A1378",
23 | "Bootrom": "Bootrom 574.4",
24 | "FCCID": "BCGA1378",
25 | "InternalName": "K66AP",
26 | "Identifier": "AppleTV2,1",
27 | "Models": [
28 | {
29 | "Color": "Black",
30 | "Storage": "8 GB",
31 | "Model": [ "MC572" ]
32 | }
33 | ]
34 | },
35 | {
36 | "Generation": "Apple TV (3rd generation)",
37 | "ANumber": "A1427",
38 | "Bootrom": "ROM",
39 | "FCCID": "BCGA1427",
40 | "InternalName": "J33AP",
41 | "Identifier": "AppleTV3,1",
42 | "Models": [
43 | {
44 | "Color": "Black",
45 | "Storage": "8 GB",
46 | "Model": [ "MD199" ]
47 | }
48 | ]
49 | },
50 | {
51 | "Generation": "Apple TV (3rd generation)",
52 | "ANumber": "A1469",
53 | "Bootrom": "Bootrom 1458.2",
54 | "FCCID": "BCGA1469",
55 | "InternalName": "J33IAP",
56 | "Identifier": "AppleTV3,2",
57 | "Models": [
58 | {
59 | "Color": "Black",
60 | "Storage": "8 GB",
61 | "Model": [ "MD199" ]
62 | }
63 | ]
64 | },
65 | {
66 | "Generation": "Apple TV (4th generation)",
67 | "ANumber": "A1625",
68 | "Bootrom": "Bootrom 1992.0.0.1.19",
69 | "FCCID": "BCGA1625",
70 | "InternalName": "J42dAP",
71 | "Identifier": "AppleTV5,3",
72 | "Models": [
73 | {
74 | "Color": "Black",
75 | "Storage": "32 GB",
76 | "Model": [ "MGY52", "ML4W2", "MR912" ]
77 | },
78 | {
79 | "Color": "Black",
80 | "Storage": "64 GB",
81 | "Model": [ "MLNC2" ]
82 | }
83 | ]
84 | },
85 | {
86 | "Generation": "Apple TV 4K",
87 | "ANumber": "A1842",
88 | "Bootrom": "Bootrom 3135.0.0.2.3",
89 | "FCCID": "BCGA1842",
90 | "InternalName": "J105aAP",
91 | "Identifier": "AppleTV6,2",
92 | "Models": [
93 | {
94 | "Color": "Black",
95 | "Storage": "32 GB",
96 | "Model": [ "MQD22" ]
97 | },
98 | {
99 | "Color": "Black",
100 | "Storage": "64 GB",
101 | "Model": [ "MP7P2" ]
102 | }
103 | ]
104 | },
105 | {
106 | "Generation": "Apple TV 4K (2nd generation)",
107 | "ANumber": "A2169",
108 | "Bootrom": "Bootrom 3865.0.0.4.7",
109 | "FCCID": "BCGA2169",
110 | "InternalName": "J305AP",
111 | "Identifier": "AppleTV11,1",
112 | "Models": [
113 | {
114 | "Color": "Black",
115 | "Storage": "32 GB",
116 | "Model": [ "MXGY2" ]
117 | },
118 | {
119 | "Color": "Black",
120 | "Storage": "64 GB",
121 | "Model": [ "MXH02" ]
122 | }
123 | ]
124 | }
125 | ]
126 |
--------------------------------------------------------------------------------
/build-devices.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const fs = require('fs');
4 | const path = require('path');
5 |
6 | const airpods = require('./airpods.json');
7 | const airtag = require('./airtag.json');
8 | const apple_tv = require('./apple_tv.json');
9 | const apple_watch = require('./apple_watch.json');
10 | const homepod = require('./homepod.json');
11 | const ipad = require('./ipad.json');
12 | const ipad_air = require('./ipad_air.json');
13 | const ipad_pro = require('./ipad_pro.json');
14 | const ipad_mini = require('./ipad_mini.json');
15 | const iphone = require('./iphone.json');
16 | const ipod_touch = require('./ipod_touch.json');
17 | const siri_remote = require('./siri_remote.json');
18 |
19 | const DEVICES_OUTPUT_FILE = path.join( __dirname, 'devices.json');
20 | const DEVICES_MIN_OUTPUT_FILE = path.join( __dirname, 'devices-min.json');
21 |
22 |
23 | let devices, devicesMin;
24 |
25 | function addDevice(d) {
26 | if (typeof d.Identifier === 'string') {
27 | devices.push({
28 | name: d.Generation,
29 | model: d.Identifier,
30 | ANumber: d.ANumber,
31 | FCCID: d.FCCID
32 | });
33 | devicesMin.push({
34 | name: d.Generation,
35 | model: d.Identifier
36 | });
37 | }
38 | if (Array.isArray(d.Identifier)) {
39 | d.Identifier.forEach(di => {
40 | devices.push({
41 | name: d.Generation,
42 | model: di,
43 | ANumber: d.ANumber,
44 | FCCID: d.FCCID
45 | });
46 | devicesMin.push({
47 | name: d.Generation,
48 | model: di
49 | });
50 | });
51 | }
52 | }
53 |
54 | function build() {
55 | airpods.forEach(addDevice);
56 | airtag.forEach(addDevice);
57 | apple_tv.forEach(addDevice);
58 | apple_watch.forEach(addDevice);
59 | homepod.forEach(addDevice);
60 | ipad.forEach(addDevice);
61 | ipad_air.forEach(addDevice);
62 | ipad_pro.forEach(addDevice);
63 | ipad_mini.forEach(addDevice);
64 | iphone.forEach(addDevice);
65 | ipod_touch.forEach(addDevice);
66 | siri_remote.forEach(addDevice);
67 | }
68 |
69 | function write() {
70 | fs.writeFile( DEVICES_OUTPUT_FILE, JSON.stringify( devices, null, 2 ), err => {
71 | if ( err ) {
72 | throw err;
73 | }
74 | console.log( 'Devices list saved to ' + DEVICES_OUTPUT_FILE );
75 | console.log( 'Total ' + devices.length + ' records' );
76 |
77 | fs.writeFile( DEVICES_MIN_OUTPUT_FILE, JSON.stringify( devicesMin, null, 2 ), err => {
78 | if ( err ) {
79 | throw err;
80 | }
81 | console.log( 'Devices list saved to ' + DEVICES_MIN_OUTPUT_FILE );
82 | console.log( 'Total ' + devicesMin.length + ' records' );
83 | });
84 | });
85 | }
86 |
87 | devices = [];
88 | devicesMin = [];
89 | build();
90 | write();
91 |
--------------------------------------------------------------------------------
/devices-min.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "AirPods (1st generation)",
4 | "model": "AirPods1,1"
5 | },
6 | {
7 | "name": "AirPods (2nd generation)",
8 | "model": "AirPods2,1"
9 | },
10 | {
11 | "name": "AirPods (2nd generation)",
12 | "model": "AirPods2,1"
13 | },
14 | {
15 | "name": "AirPods (3rd generation)",
16 | "model": "AirPods1,3"
17 | },
18 | {
19 | "name": "AirPods (3rd generation)",
20 | "model": "Audio2,1"
21 | },
22 | {
23 | "name": "AirPods Pro",
24 | "model": "AirPods2,2"
25 | },
26 | {
27 | "name": "AirPods Pro",
28 | "model": "AirPodsPro1,1"
29 | },
30 | {
31 | "name": "AirPods Pro",
32 | "model": "iProd8,1"
33 | },
34 | {
35 | "name": "AirPods Pro (2nd generation)",
36 | "model": "AirPodsPro1,2"
37 | },
38 | {
39 | "name": "AirPods Max",
40 | "model": "AirPodsMax1,1"
41 | },
42 | {
43 | "name": "AirPods Max",
44 | "model": "iProd8,6"
45 | },
46 | {
47 | "name": "AirTag",
48 | "model": "AirTag1,1"
49 | },
50 | {
51 | "name": "Apple TV (1st generation)",
52 | "model": "AppleTV1,1"
53 | },
54 | {
55 | "name": "Apple TV (2nd generation)",
56 | "model": "AppleTV2,1"
57 | },
58 | {
59 | "name": "Apple TV (3rd generation)",
60 | "model": "AppleTV3,1"
61 | },
62 | {
63 | "name": "Apple TV (3rd generation)",
64 | "model": "AppleTV3,2"
65 | },
66 | {
67 | "name": "Apple TV (4th generation)",
68 | "model": "AppleTV5,3"
69 | },
70 | {
71 | "name": "Apple TV 4K",
72 | "model": "AppleTV6,2"
73 | },
74 | {
75 | "name": "Apple TV 4K (2nd generation)",
76 | "model": "AppleTV11,1"
77 | },
78 | {
79 | "name": "Apple Watch (1st generation)",
80 | "model": "Watch1,1"
81 | },
82 | {
83 | "name": "Apple Watch (1st generation)",
84 | "model": "Watch1,2"
85 | },
86 | {
87 | "name": "Apple Watch Series 1",
88 | "model": "Watch2,6"
89 | },
90 | {
91 | "name": "Apple Watch Series 1",
92 | "model": "Watch2,7"
93 | },
94 | {
95 | "name": "Apple Watch Series 2",
96 | "model": "Watch2,3"
97 | },
98 | {
99 | "name": "Apple Watch Series 2",
100 | "model": "Watch2,4"
101 | },
102 | {
103 | "name": "Apple Watch Series 3",
104 | "model": "Watch3,1"
105 | },
106 | {
107 | "name": "Apple Watch Series 3",
108 | "model": "Watch3,2"
109 | },
110 | {
111 | "name": "Apple Watch Series 3",
112 | "model": "Watch3,3"
113 | },
114 | {
115 | "name": "Apple Watch Series 3",
116 | "model": "Watch3,4"
117 | },
118 | {
119 | "name": "Apple Watch Series 4",
120 | "model": "Watch4,1"
121 | },
122 | {
123 | "name": "Apple Watch Series 4",
124 | "model": "Watch4,2"
125 | },
126 | {
127 | "name": "Apple Watch Series 4",
128 | "model": "Watch4,3"
129 | },
130 | {
131 | "name": "Apple Watch Series 4",
132 | "model": "Watch4,4"
133 | },
134 | {
135 | "name": "Apple Watch Series 5",
136 | "model": "Watch5,1"
137 | },
138 | {
139 | "name": "Apple Watch Series 5",
140 | "model": "Watch5,2"
141 | },
142 | {
143 | "name": "Apple Watch Series 5",
144 | "model": "Watch5,3"
145 | },
146 | {
147 | "name": "Apple Watch Series 5",
148 | "model": "Watch5,4"
149 | },
150 | {
151 | "name": "Apple Watch SE",
152 | "model": "Watch5,9"
153 | },
154 | {
155 | "name": "Apple Watch SE",
156 | "model": "Watch5,10"
157 | },
158 | {
159 | "name": "Apple Watch SE",
160 | "model": "Watch5,11"
161 | },
162 | {
163 | "name": "Apple Watch SE",
164 | "model": "Watch5,12"
165 | },
166 | {
167 | "name": "Apple Watch Series 6",
168 | "model": "Watch6,1"
169 | },
170 | {
171 | "name": "Apple Watch Series 6",
172 | "model": "Watch6,2"
173 | },
174 | {
175 | "name": "Apple Watch Series 6",
176 | "model": "Watch6,3"
177 | },
178 | {
179 | "name": "Apple Watch Series 6",
180 | "model": "Watch6,4"
181 | },
182 | {
183 | "name": "Apple Watch Series 7",
184 | "model": "Watch6,6"
185 | },
186 | {
187 | "name": "Apple Watch Series 7",
188 | "model": "Watch6,7"
189 | },
190 | {
191 | "name": "Apple Watch Series 7",
192 | "model": "Watch6,8"
193 | },
194 | {
195 | "name": "Apple Watch Series 7",
196 | "model": "Watch6,9"
197 | },
198 | {
199 | "name": "Apple Watch SE (2nd generation)",
200 | "model": "Watch6,10"
201 | },
202 | {
203 | "name": "Apple Watch SE (2nd generation)",
204 | "model": "Watch6,11"
205 | },
206 | {
207 | "name": "Apple Watch SE (2nd generation)",
208 | "model": "Watch6,12"
209 | },
210 | {
211 | "name": "Apple Watch SE (2nd generation)",
212 | "model": "Watch6,13"
213 | },
214 | {
215 | "name": "Apple Watch Series 8",
216 | "model": "Watch6,14"
217 | },
218 | {
219 | "name": "Apple Watch Series 8",
220 | "model": "Watch6,15"
221 | },
222 | {
223 | "name": "Apple Watch Series 8",
224 | "model": "Watch6,16"
225 | },
226 | {
227 | "name": "Apple Watch Series 8",
228 | "model": "Watch6,17"
229 | },
230 | {
231 | "name": "Apple Watch Ultra",
232 | "model": "Watch6,18"
233 | },
234 | {
235 | "name": "HomePod",
236 | "model": "AudioAccessory1,1"
237 | },
238 | {
239 | "name": "HomePod",
240 | "model": "AudioAccessory1,2"
241 | },
242 | {
243 | "name": "HomePod mini",
244 | "model": "AudioAccessory5,1"
245 | },
246 | {
247 | "name": "iPad",
248 | "model": "iPad1,1"
249 | },
250 | {
251 | "name": "iPad",
252 | "model": "iPad1,1"
253 | },
254 | {
255 | "name": "iPad 2",
256 | "model": "iPad2,1"
257 | },
258 | {
259 | "name": "iPad 2",
260 | "model": "iPad2,2"
261 | },
262 | {
263 | "name": "iPad 2",
264 | "model": "iPad2,3"
265 | },
266 | {
267 | "name": "iPad 2",
268 | "model": "iPad2,4"
269 | },
270 | {
271 | "name": "iPad (3rd generation)",
272 | "model": "iPad3,1"
273 | },
274 | {
275 | "name": "iPad (3rd generation)",
276 | "model": "iPad3,2"
277 | },
278 | {
279 | "name": "iPad (3rd generation)",
280 | "model": "iPad3,3"
281 | },
282 | {
283 | "name": "iPad (4th generation)",
284 | "model": "iPad3,4"
285 | },
286 | {
287 | "name": "iPad (4th generation)",
288 | "model": "iPad3,5"
289 | },
290 | {
291 | "name": "iPad (4th generation)",
292 | "model": "iPad3,6"
293 | },
294 | {
295 | "name": "iPad (5th generation)",
296 | "model": "iPad6,11"
297 | },
298 | {
299 | "name": "iPad (5th generation)",
300 | "model": "iPad6,12"
301 | },
302 | {
303 | "name": "iPad (6th generation)",
304 | "model": "iPad7,5"
305 | },
306 | {
307 | "name": "iPad (6th generation)",
308 | "model": "iPad7,6"
309 | },
310 | {
311 | "name": "iPad (7th generation)",
312 | "model": "iPad7,11"
313 | },
314 | {
315 | "name": "iPad (7th generation)",
316 | "model": "iPad7,12"
317 | },
318 | {
319 | "name": "iPad (8th generation)",
320 | "model": "iPad11,6"
321 | },
322 | {
323 | "name": "iPad (8th generation)",
324 | "model": "iPad11,7"
325 | },
326 | {
327 | "name": "iPad (9th generation)",
328 | "model": "iPad12,1"
329 | },
330 | {
331 | "name": "iPad (9th generation)",
332 | "model": "iPad12,2"
333 | },
334 | {
335 | "name": "iPad Air",
336 | "model": "iPad4,1"
337 | },
338 | {
339 | "name": "iPad Air",
340 | "model": "iPad4,2"
341 | },
342 | {
343 | "name": "iPad Air",
344 | "model": "iPad4,3"
345 | },
346 | {
347 | "name": "iPad Air 2",
348 | "model": "iPad5,3"
349 | },
350 | {
351 | "name": "iPad Air 2",
352 | "model": "iPad5,4"
353 | },
354 | {
355 | "name": "iPad Air (3rd generation)",
356 | "model": "iPad11,3"
357 | },
358 | {
359 | "name": "iPad Air (3rd generation)",
360 | "model": "iPad11,4"
361 | },
362 | {
363 | "name": "iPad Air (4th generation)",
364 | "model": "iPad13,1"
365 | },
366 | {
367 | "name": "iPad Air (4th generation)",
368 | "model": "iPad13,2"
369 | },
370 | {
371 | "name": "iPad Air (5th generation)",
372 | "model": "iPad13,16"
373 | },
374 | {
375 | "name": "iPad Air (5th generation)",
376 | "model": "iPad13,17"
377 | },
378 | {
379 | "name": "iPad Pro (12.9-inch)",
380 | "model": "iPad6,7"
381 | },
382 | {
383 | "name": "iPad Pro (12.9-inch)",
384 | "model": "iPad6,8"
385 | },
386 | {
387 | "name": "iPad Pro (9.7-inch)",
388 | "model": "iPad6,3"
389 | },
390 | {
391 | "name": "iPad Pro (9.7-inch)",
392 | "model": "iPad6,4"
393 | },
394 | {
395 | "name": "iPad Pro (12.9-inch, 2nd generation)",
396 | "model": "iPad7,1"
397 | },
398 | {
399 | "name": "iPad Pro (12.9-inch, 2nd generation)",
400 | "model": "iPad7,2"
401 | },
402 | {
403 | "name": "iPad Pro (10.5-inch)",
404 | "model": "iPad7,3"
405 | },
406 | {
407 | "name": "iPad Pro (10.5-inch)",
408 | "model": "iPad7,4"
409 | },
410 | {
411 | "name": "iPad Pro (11-inch)",
412 | "model": "iPad8,1"
413 | },
414 | {
415 | "name": "iPad Pro (11-inch)",
416 | "model": "iPad8,2"
417 | },
418 | {
419 | "name": "iPad Pro (11-inch)",
420 | "model": "iPad8,3"
421 | },
422 | {
423 | "name": "iPad Pro (11-inch)",
424 | "model": "iPad8,4"
425 | },
426 | {
427 | "name": "iPad Pro (11-inch)",
428 | "model": "iPad8,3"
429 | },
430 | {
431 | "name": "iPad Pro (11-inch)",
432 | "model": "iPad8,4"
433 | },
434 | {
435 | "name": "iPad Pro (11-inch)",
436 | "model": "iPad8,3"
437 | },
438 | {
439 | "name": "iPad Pro (11-inch)",
440 | "model": "iPad8,4"
441 | },
442 | {
443 | "name": "iPad Pro (12.9-inch) (3rd generation)",
444 | "model": "iPad8,5"
445 | },
446 | {
447 | "name": "iPad Pro (12.9-inch) (3rd generation)",
448 | "model": "iPad8,6"
449 | },
450 | {
451 | "name": "iPad Pro (12.9-inch) (3rd generation)",
452 | "model": "iPad8,7"
453 | },
454 | {
455 | "name": "iPad Pro (12.9-inch) (3rd generation)",
456 | "model": "iPad8,8"
457 | },
458 | {
459 | "name": "iPad Pro (12.9-inch) (3rd generation)",
460 | "model": "iPad8,7"
461 | },
462 | {
463 | "name": "iPad Pro (12.9-inch) (3rd generation)",
464 | "model": "iPad8,8"
465 | },
466 | {
467 | "name": "iPad Pro (12.9-inch) (3rd generation)",
468 | "model": "iPad8,7"
469 | },
470 | {
471 | "name": "iPad Pro (12.9-inch) (3rd generation)",
472 | "model": "iPad8,8"
473 | },
474 | {
475 | "name": "iPad Pro (11-inch) (2nd generation)",
476 | "model": "iPad8,9"
477 | },
478 | {
479 | "name": "iPad Pro (11-inch) (2nd generation)",
480 | "model": "iPad8,10"
481 | },
482 | {
483 | "name": "iPad Pro (12.9-inch) (4th generation)",
484 | "model": "iPad8,11"
485 | },
486 | {
487 | "name": "iPad Pro (12.9-inch) (4th generation)",
488 | "model": "iPad8,12"
489 | },
490 | {
491 | "name": "iPad Pro (11-inch) (3rd generation)",
492 | "model": "iPad13,4"
493 | },
494 | {
495 | "name": "iPad Pro (11-inch) (3rd generation)",
496 | "model": "iPad13,5"
497 | },
498 | {
499 | "name": "iPad Pro (11-inch) (3rd generation)",
500 | "model": "iPad13,6"
501 | },
502 | {
503 | "name": "iPad Pro (11-inch) (3rd generation)",
504 | "model": "iPad13,7"
505 | },
506 | {
507 | "name": "iPad Pro (12.9-inch) (5th generation)",
508 | "model": "iPad13,8"
509 | },
510 | {
511 | "name": "iPad Pro (12.9-inch) (5th generation)",
512 | "model": "iPad13,9"
513 | },
514 | {
515 | "name": "iPad Pro (12.9-inch) (5th generation)",
516 | "model": "iPad13,10"
517 | },
518 | {
519 | "name": "iPad Pro (12.9-inch) (5th generation)",
520 | "model": "iPad13,11"
521 | },
522 | {
523 | "name": "iPad mini",
524 | "model": "iPad2,5"
525 | },
526 | {
527 | "name": "iPad mini",
528 | "model": "iPad2,6"
529 | },
530 | {
531 | "name": "iPad mini",
532 | "model": "iPad2,7"
533 | },
534 | {
535 | "name": "iPad mini 2",
536 | "model": "iPad4,4"
537 | },
538 | {
539 | "name": "iPad mini 2",
540 | "model": "iPad4,5"
541 | },
542 | {
543 | "name": "iPad mini 2",
544 | "model": "iPad4,6"
545 | },
546 | {
547 | "name": "iPad mini 3",
548 | "model": "iPad4,7"
549 | },
550 | {
551 | "name": "iPad mini 3",
552 | "model": "iPad4,8"
553 | },
554 | {
555 | "name": "iPad mini 3",
556 | "model": "iPad4,9"
557 | },
558 | {
559 | "name": "iPad mini 4",
560 | "model": "iPad5,1"
561 | },
562 | {
563 | "name": "iPad mini 4",
564 | "model": "iPad5,2"
565 | },
566 | {
567 | "name": "iPad mini (5th generation)",
568 | "model": "iPad11,1"
569 | },
570 | {
571 | "name": "iPad mini (5th generation)",
572 | "model": "iPad11,2"
573 | },
574 | {
575 | "name": "iPad mini (6th generation)",
576 | "model": "iPad14,1"
577 | },
578 | {
579 | "name": "iPad mini (6th generation)",
580 | "model": "iPad14,2"
581 | },
582 | {
583 | "name": "iPhone",
584 | "model": "iPhone1,1"
585 | },
586 | {
587 | "name": "iPhone 3G",
588 | "model": "iPhone1,2"
589 | },
590 | {
591 | "name": "iPhone 3GS",
592 | "model": "iPhone2,1"
593 | },
594 | {
595 | "name": "iPhone 4",
596 | "model": "iPhone3,1"
597 | },
598 | {
599 | "name": "iPhone 4",
600 | "model": "iPhone3,2"
601 | },
602 | {
603 | "name": "iPhone 4",
604 | "model": "iPhone3,3"
605 | },
606 | {
607 | "name": "iPhone 4S",
608 | "model": "iPhone4,1"
609 | },
610 | {
611 | "name": "iPhone 5",
612 | "model": "iPhone5,1"
613 | },
614 | {
615 | "name": "iPhone 5",
616 | "model": "iPhone5,2"
617 | },
618 | {
619 | "name": "iPhone 5c",
620 | "model": "iPhone5,3"
621 | },
622 | {
623 | "name": "iPhone 5c",
624 | "model": "iPhone5,4"
625 | },
626 | {
627 | "name": "iPhone 5s",
628 | "model": "iPhone6,1"
629 | },
630 | {
631 | "name": "iPhone 5s",
632 | "model": "iPhone6,2"
633 | },
634 | {
635 | "name": "iPhone SE (1st generation)",
636 | "model": "iPhone8,4"
637 | },
638 | {
639 | "name": "iPhone 6",
640 | "model": "iPhone7,2"
641 | },
642 | {
643 | "name": "iPhone 6 Plus",
644 | "model": "iPhone7,1"
645 | },
646 | {
647 | "name": "iPhone 6s",
648 | "model": "iPhone8,1"
649 | },
650 | {
651 | "name": "iPhone 6s Plus",
652 | "model": "iPhone8,2"
653 | },
654 | {
655 | "name": "iPhone 7",
656 | "model": "iPhone9,1"
657 | },
658 | {
659 | "name": "iPhone 7",
660 | "model": "iPhone9,3"
661 | },
662 | {
663 | "name": "iPhone 7 Plus",
664 | "model": "iPhone9,2"
665 | },
666 | {
667 | "name": "iPhone 7 Plus",
668 | "model": "iPhone9,4"
669 | },
670 | {
671 | "name": "iPhone 8",
672 | "model": "iPhone10,1"
673 | },
674 | {
675 | "name": "iPhone 8",
676 | "model": "iPhone10,1"
677 | },
678 | {
679 | "name": "iPhone 8",
680 | "model": "iPhone10,4"
681 | },
682 | {
683 | "name": "iPhone 8",
684 | "model": "iPhone10,4"
685 | },
686 | {
687 | "name": "iPhone 8 Plus",
688 | "model": "iPhone10,2"
689 | },
690 | {
691 | "name": "iPhone 8 Plus",
692 | "model": "iPhone10,5"
693 | },
694 | {
695 | "name": "iPhone X",
696 | "model": "iPhone10,3"
697 | },
698 | {
699 | "name": "iPhone X",
700 | "model": "iPhone10,6"
701 | },
702 | {
703 | "name": "iPhone XR",
704 | "model": "iPhone11,8"
705 | },
706 | {
707 | "name": "iPhone XR",
708 | "model": "iPhone11,8"
709 | },
710 | {
711 | "name": "iPhone XR",
712 | "model": "iPhone11,8"
713 | },
714 | {
715 | "name": "iPhone XR",
716 | "model": "iPhone11,8"
717 | },
718 | {
719 | "name": "iPhone XS",
720 | "model": "iPhone11,2"
721 | },
722 | {
723 | "name": "iPhone XS",
724 | "model": "iPhone11,2"
725 | },
726 | {
727 | "name": "iPhone XS",
728 | "model": "iPhone11,2"
729 | },
730 | {
731 | "name": "iPhone XS",
732 | "model": "iPhone11,2"
733 | },
734 | {
735 | "name": "iPhone XS Max",
736 | "model": "iPhone11,6"
737 | },
738 | {
739 | "name": "iPhone XS Max",
740 | "model": "iPhone11,6"
741 | },
742 | {
743 | "name": "iPhone XS Max",
744 | "model": "iPhone11,6"
745 | },
746 | {
747 | "name": "iPhone XS Max",
748 | "model": "iPhone11,6"
749 | },
750 | {
751 | "name": "iPhone XS Max",
752 | "model": "iPhone11,4"
753 | },
754 | {
755 | "name": "iPhone 11",
756 | "model": "iPhone12,1"
757 | },
758 | {
759 | "name": "iPhone 11",
760 | "model": "iPhone12,1"
761 | },
762 | {
763 | "name": "iPhone 11",
764 | "model": "iPhone12,1"
765 | },
766 | {
767 | "name": "iPhone 11 Pro",
768 | "model": "iPhone12,3"
769 | },
770 | {
771 | "name": "iPhone 11 Pro",
772 | "model": "iPhone12,3"
773 | },
774 | {
775 | "name": "iPhone 11 Pro",
776 | "model": "iPhone12,3"
777 | },
778 | {
779 | "name": "iPhone 11 Pro Max",
780 | "model": "iPhone12,5"
781 | },
782 | {
783 | "name": "iPhone 11 Pro Max",
784 | "model": "iPhone12,5"
785 | },
786 | {
787 | "name": "iPhone 11 Pro Max",
788 | "model": "iPhone12,5"
789 | },
790 | {
791 | "name": "iPhone SE (2nd generation)",
792 | "model": "iPhone12,8"
793 | },
794 | {
795 | "name": "iPhone 12 mini",
796 | "model": "iPhone13,1"
797 | },
798 | {
799 | "name": "iPhone 12",
800 | "model": "iPhone13,2"
801 | },
802 | {
803 | "name": "iPhone 12 Pro",
804 | "model": "iPhone13,3"
805 | },
806 | {
807 | "name": "iPhone 12 Pro Max",
808 | "model": "iPhone13,4"
809 | },
810 | {
811 | "name": "iPhone 13 mini",
812 | "model": "iPhone14,4"
813 | },
814 | {
815 | "name": "iPhone 13",
816 | "model": "iPhone14,5"
817 | },
818 | {
819 | "name": "iPhone 13 Pro",
820 | "model": "iPhone14,2"
821 | },
822 | {
823 | "name": "iPhone 13 Pro Max",
824 | "model": "iPhone14,3"
825 | },
826 | {
827 | "name": "iPhone SE (3rd generation)",
828 | "model": "iPhone14,6"
829 | },
830 | {
831 | "name": "iPhone 14",
832 | "model": "iPhone14,7"
833 | },
834 | {
835 | "name": "iPhone 14 Plus",
836 | "model": "iPhone14,8"
837 | },
838 | {
839 | "name": "iPhone 14 Pro",
840 | "model": "iPhone15,2"
841 | },
842 | {
843 | "name": "iPhone 14 Pro Max",
844 | "model": "iPhone15,3"
845 | },
846 | {
847 | "name": "iPod touch",
848 | "model": "iPod1,1"
849 | },
850 | {
851 | "name": "iPod touch (2nd generation)",
852 | "model": "iPod2,1"
853 | },
854 | {
855 | "name": "iPod touch (2nd generation)",
856 | "model": "iPod2,1"
857 | },
858 | {
859 | "name": "iPod touch (3rd generation)",
860 | "model": "iPod3,1"
861 | },
862 | {
863 | "name": "iPod touch (4th generation)",
864 | "model": "iPod4,1"
865 | },
866 | {
867 | "name": "iPod touch (5th generation)",
868 | "model": "iPod5,1"
869 | },
870 | {
871 | "name": "iPod touch (5th generation)",
872 | "model": "iPod5,1"
873 | },
874 | {
875 | "name": "iPod touch (6th generation)",
876 | "model": "iPod7,1"
877 | },
878 | {
879 | "name": "iPod touch (7th generation)",
880 | "model": "iPod9,1"
881 | },
882 | {
883 | "name": "Siri Remote",
884 | "model": ""
885 | },
886 | {
887 | "name": "Siri Remote (Rev A)",
888 | "model": ""
889 | },
890 | {
891 | "name": "Siri Remote (2nd generation)",
892 | "model": ""
893 | }
894 | ]
--------------------------------------------------------------------------------
/devices.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "AirPods (1st generation)",
4 | "model": "AirPods1,1",
5 | "ANumber": [
6 | "A1523",
7 | "A1722",
8 | "A1602"
9 | ],
10 | "FCCID": [
11 | "BCG-A1523",
12 | "BCG-A1722"
13 | ]
14 | },
15 | {
16 | "name": "AirPods (2nd generation)",
17 | "model": "AirPods2,1",
18 | "ANumber": [
19 | "A2031",
20 | "A2032",
21 | "A1938"
22 | ],
23 | "FCCID": [
24 | "BCG-A2031",
25 | "BCG-A2032"
26 | ]
27 | },
28 | {
29 | "name": "AirPods (2nd generation)",
30 | "model": "AirPods2,1",
31 | "ANumber": [
32 | "A2031",
33 | "A2032",
34 | "A1938"
35 | ],
36 | "FCCID": [
37 | "BCG-A2031",
38 | "BCG-A2032"
39 | ]
40 | },
41 | {
42 | "name": "AirPods (3rd generation)",
43 | "model": "AirPods1,3",
44 | "ANumber": [
45 | "A2564",
46 | "A2565",
47 | "A2566"
48 | ],
49 | "FCCID": [
50 | "BCG-A2564",
51 | "BCG-A2565"
52 | ]
53 | },
54 | {
55 | "name": "AirPods (3rd generation)",
56 | "model": "Audio2,1",
57 | "ANumber": [
58 | "A2564",
59 | "A2565",
60 | "A2566"
61 | ],
62 | "FCCID": [
63 | "BCG-A2564",
64 | "BCG-A2565"
65 | ]
66 | },
67 | {
68 | "name": "AirPods Pro",
69 | "model": "AirPods2,2",
70 | "ANumber": [
71 | "A2083",
72 | "A2084",
73 | "A2190"
74 | ],
75 | "FCCID": [
76 | "BCG-A2083",
77 | "BCG-A2084"
78 | ]
79 | },
80 | {
81 | "name": "AirPods Pro",
82 | "model": "AirPodsPro1,1",
83 | "ANumber": [
84 | "A2083",
85 | "A2084",
86 | "A2190"
87 | ],
88 | "FCCID": [
89 | "BCG-A2083",
90 | "BCG-A2084"
91 | ]
92 | },
93 | {
94 | "name": "AirPods Pro",
95 | "model": "iProd8,1",
96 | "ANumber": [
97 | "A2083",
98 | "A2084",
99 | "A2190"
100 | ],
101 | "FCCID": [
102 | "BCG-A2083",
103 | "BCG-A2084"
104 | ]
105 | },
106 | {
107 | "name": "AirPods Pro (2nd generation)",
108 | "model": "AirPodsPro1,2",
109 | "ANumber": [
110 | "A2699",
111 | "A2698",
112 | "A2700"
113 | ],
114 | "FCCID": []
115 | },
116 | {
117 | "name": "AirPods Max",
118 | "model": "AirPodsMax1,1",
119 | "ANumber": [
120 | "A2096"
121 | ],
122 | "FCCID": [
123 | "BCG-A2096"
124 | ]
125 | },
126 | {
127 | "name": "AirPods Max",
128 | "model": "iProd8,6",
129 | "ANumber": [
130 | "A2096"
131 | ],
132 | "FCCID": [
133 | "BCG-A2096"
134 | ]
135 | },
136 | {
137 | "name": "AirTag",
138 | "model": "AirTag1,1",
139 | "ANumber": [
140 | "A2187"
141 | ],
142 | "FCCID": [
143 | "BCGA2187"
144 | ]
145 | },
146 | {
147 | "name": "Apple TV (1st generation)",
148 | "model": "AppleTV1,1",
149 | "ANumber": "A1218"
150 | },
151 | {
152 | "name": "Apple TV (2nd generation)",
153 | "model": "AppleTV2,1",
154 | "ANumber": "A1378",
155 | "FCCID": "BCGA1378"
156 | },
157 | {
158 | "name": "Apple TV (3rd generation)",
159 | "model": "AppleTV3,1",
160 | "ANumber": "A1427",
161 | "FCCID": "BCGA1427"
162 | },
163 | {
164 | "name": "Apple TV (3rd generation)",
165 | "model": "AppleTV3,2",
166 | "ANumber": "A1469",
167 | "FCCID": "BCGA1469"
168 | },
169 | {
170 | "name": "Apple TV (4th generation)",
171 | "model": "AppleTV5,3",
172 | "ANumber": "A1625",
173 | "FCCID": "BCGA1625"
174 | },
175 | {
176 | "name": "Apple TV 4K",
177 | "model": "AppleTV6,2",
178 | "ANumber": "A1842",
179 | "FCCID": "BCGA1842"
180 | },
181 | {
182 | "name": "Apple TV 4K (2nd generation)",
183 | "model": "AppleTV11,1",
184 | "ANumber": "A2169",
185 | "FCCID": "BCGA2169"
186 | },
187 | {
188 | "name": "Apple Watch (1st generation)",
189 | "model": "Watch1,1",
190 | "ANumber": "A1553",
191 | "FCCID": "BCG-E2870"
192 | },
193 | {
194 | "name": "Apple Watch (1st generation)",
195 | "model": "Watch1,2",
196 | "ANumber": [
197 | "A1554",
198 | "A1638"
199 | ],
200 | "FCCID": "BCG-E2871"
201 | },
202 | {
203 | "name": "Apple Watch Series 1",
204 | "model": "Watch2,6",
205 | "ANumber": "A1802",
206 | "FCCID": "BCG‑E3102"
207 | },
208 | {
209 | "name": "Apple Watch Series 1",
210 | "model": "Watch2,7",
211 | "ANumber": "A1803",
212 | "FCCID": "BCG‑E3103"
213 | },
214 | {
215 | "name": "Apple Watch Series 2",
216 | "model": "Watch2,3",
217 | "ANumber": [
218 | "A1757",
219 | "A1816"
220 | ],
221 | "FCCID": "BCG‑E3104"
222 | },
223 | {
224 | "name": "Apple Watch Series 2",
225 | "model": "Watch2,4",
226 | "ANumber": [
227 | "A1758",
228 | "A1817"
229 | ],
230 | "FCCID": "BCG‑E3105"
231 | },
232 | {
233 | "name": "Apple Watch Series 3",
234 | "model": "Watch3,1",
235 | "ANumber": [
236 | "A1860",
237 | "A1889",
238 | "A1890"
239 | ],
240 | "FCCID": [
241 | "BCG-A1860",
242 | "BCG-A1889",
243 | "BCG-A1890"
244 | ]
245 | },
246 | {
247 | "name": "Apple Watch Series 3",
248 | "model": "Watch3,2",
249 | "ANumber": [
250 | "A1861",
251 | "A1891",
252 | "A1892"
253 | ],
254 | "FCCID": [
255 | "BCG-A1861",
256 | "BCG-A1891",
257 | "BCG-A1892"
258 | ]
259 | },
260 | {
261 | "name": "Apple Watch Series 3",
262 | "model": "Watch3,3",
263 | "ANumber": [
264 | "A1858"
265 | ],
266 | "FCCID": [
267 | "BCG-A1858"
268 | ]
269 | },
270 | {
271 | "name": "Apple Watch Series 3",
272 | "model": "Watch3,4",
273 | "ANumber": [
274 | "A1859"
275 | ],
276 | "FCCID": [
277 | "BCG-A1859"
278 | ]
279 | },
280 | {
281 | "name": "Apple Watch Series 4",
282 | "model": "Watch4,1",
283 | "ANumber": [
284 | "A1977"
285 | ],
286 | "FCCID": [
287 | "BCG-A1977"
288 | ]
289 | },
290 | {
291 | "name": "Apple Watch Series 4",
292 | "model": "Watch4,2",
293 | "ANumber": [
294 | "A1978"
295 | ],
296 | "FCCID": [
297 | "BCG-A1978"
298 | ]
299 | },
300 | {
301 | "name": "Apple Watch Series 4",
302 | "model": "Watch4,3",
303 | "ANumber": [
304 | "A1975",
305 | "A2007"
306 | ],
307 | "FCCID": [
308 | "BCG-A1975",
309 | "BCG-A2007"
310 | ]
311 | },
312 | {
313 | "name": "Apple Watch Series 4",
314 | "model": "Watch4,4",
315 | "ANumber": [
316 | "A1976",
317 | "A2008"
318 | ],
319 | "FCCID": [
320 | "BCG‑A1976",
321 | "BCG-A2008"
322 | ]
323 | },
324 | {
325 | "name": "Apple Watch Series 5",
326 | "model": "Watch5,1",
327 | "ANumber": [
328 | "A2092"
329 | ],
330 | "FCCID": [
331 | "BCG-A2092"
332 | ]
333 | },
334 | {
335 | "name": "Apple Watch Series 5",
336 | "model": "Watch5,2",
337 | "ANumber": [
338 | "A2093"
339 | ],
340 | "FCCID": [
341 | "BCG-A2093"
342 | ]
343 | },
344 | {
345 | "name": "Apple Watch Series 5",
346 | "model": "Watch5,3",
347 | "ANumber": [
348 | "A2094",
349 | "A2156"
350 | ],
351 | "FCCID": [
352 | "BCG-A2094",
353 | "BCG-A2156"
354 | ]
355 | },
356 | {
357 | "name": "Apple Watch Series 5",
358 | "model": "Watch5,4",
359 | "ANumber": [
360 | "A2095",
361 | "A2157"
362 | ],
363 | "FCCID": [
364 | "BCG-A2095",
365 | "BCG-A2157"
366 | ]
367 | },
368 | {
369 | "name": "Apple Watch SE",
370 | "model": "Watch5,9",
371 | "ANumber": [
372 | "A2351"
373 | ],
374 | "FCCID": [
375 | "BCG-A2351"
376 | ]
377 | },
378 | {
379 | "name": "Apple Watch SE",
380 | "model": "Watch5,10",
381 | "ANumber": [
382 | "A2352"
383 | ],
384 | "FCCID": [
385 | "BCG-A2352"
386 | ]
387 | },
388 | {
389 | "name": "Apple Watch SE",
390 | "model": "Watch5,11",
391 | "ANumber": [
392 | "A2353",
393 | "A2355"
394 | ],
395 | "FCCID": [
396 | "BCG-A2353",
397 | "BCG-A2355"
398 | ]
399 | },
400 | {
401 | "name": "Apple Watch SE",
402 | "model": "Watch5,12",
403 | "ANumber": [
404 | "A2354",
405 | "A2356"
406 | ],
407 | "FCCID": [
408 | "BCG-A2354",
409 | "BCG-A2355"
410 | ]
411 | },
412 | {
413 | "name": "Apple Watch Series 6",
414 | "model": "Watch6,1",
415 | "ANumber": [
416 | "A2291"
417 | ],
418 | "FCCID": [
419 | "BCG-A2291"
420 | ]
421 | },
422 | {
423 | "name": "Apple Watch Series 6",
424 | "model": "Watch6,2",
425 | "ANumber": [
426 | "A2292"
427 | ],
428 | "FCCID": [
429 | "BCG-A2292"
430 | ]
431 | },
432 | {
433 | "name": "Apple Watch Series 6",
434 | "model": "Watch6,3",
435 | "ANumber": [
436 | "A2293",
437 | "A2375"
438 | ],
439 | "FCCID": [
440 | "BCG-A2293",
441 | "BCG-A2375"
442 | ]
443 | },
444 | {
445 | "name": "Apple Watch Series 6",
446 | "model": "Watch6,4",
447 | "ANumber": [
448 | "A2294",
449 | "A2376"
450 | ],
451 | "FCCID": [
452 | "BCG-A2294",
453 | "BCG-A2376"
454 | ]
455 | },
456 | {
457 | "name": "Apple Watch Series 7",
458 | "model": "Watch6,6",
459 | "ANumber": [
460 | "A2473"
461 | ],
462 | "FCCID": [
463 | "BCG-A2473"
464 | ]
465 | },
466 | {
467 | "name": "Apple Watch Series 7",
468 | "model": "Watch6,7",
469 | "ANumber": [
470 | "A2474"
471 | ],
472 | "FCCID": [
473 | "BCG-A2474"
474 | ]
475 | },
476 | {
477 | "name": "Apple Watch Series 7",
478 | "model": "Watch6,8",
479 | "ANumber": [
480 | "A2475",
481 | "A2476"
482 | ],
483 | "FCCID": [
484 | "BCG-A2475",
485 | "BCG-A2476"
486 | ]
487 | },
488 | {
489 | "name": "Apple Watch Series 7",
490 | "model": "Watch6,9",
491 | "ANumber": [
492 | "A2477",
493 | "A2478"
494 | ],
495 | "FCCID": [
496 | "BCG-A2477",
497 | "BCG-A2478"
498 | ]
499 | },
500 | {
501 | "name": "Apple Watch SE (2nd generation)",
502 | "model": "Watch6,10",
503 | "ANumber": [],
504 | "FCCID": []
505 | },
506 | {
507 | "name": "Apple Watch SE (2nd generation)",
508 | "model": "Watch6,11",
509 | "ANumber": [],
510 | "FCCID": []
511 | },
512 | {
513 | "name": "Apple Watch SE (2nd generation)",
514 | "model": "Watch6,12",
515 | "ANumber": [],
516 | "FCCID": []
517 | },
518 | {
519 | "name": "Apple Watch SE (2nd generation)",
520 | "model": "Watch6,13",
521 | "ANumber": [],
522 | "FCCID": []
523 | },
524 | {
525 | "name": "Apple Watch Series 8",
526 | "model": "Watch6,14",
527 | "ANumber": [],
528 | "FCCID": []
529 | },
530 | {
531 | "name": "Apple Watch Series 8",
532 | "model": "Watch6,15",
533 | "ANumber": [],
534 | "FCCID": []
535 | },
536 | {
537 | "name": "Apple Watch Series 8",
538 | "model": "Watch6,16",
539 | "ANumber": [],
540 | "FCCID": []
541 | },
542 | {
543 | "name": "Apple Watch Series 8",
544 | "model": "Watch6,17",
545 | "ANumber": [],
546 | "FCCID": []
547 | },
548 | {
549 | "name": "Apple Watch Ultra",
550 | "model": "Watch6,18",
551 | "ANumber": [],
552 | "FCCID": []
553 | },
554 | {
555 | "name": "HomePod",
556 | "model": "AudioAccessory1,1",
557 | "ANumber": "A1639",
558 | "FCCID": "BCG-A1639"
559 | },
560 | {
561 | "name": "HomePod",
562 | "model": "AudioAccessory1,2",
563 | "ANumber": "Unknown",
564 | "FCCID": "Unknown"
565 | },
566 | {
567 | "name": "HomePod mini",
568 | "model": "AudioAccessory5,1",
569 | "ANumber": "A2374",
570 | "FCCID": "BCG-A2374"
571 | },
572 | {
573 | "name": "iPad",
574 | "model": "iPad1,1",
575 | "ANumber": "A1219",
576 | "FCCID": "BCG‑E2381A"
577 | },
578 | {
579 | "name": "iPad",
580 | "model": "iPad1,1",
581 | "ANumber": "A1337",
582 | "FCCID": "BCG‑E2328A"
583 | },
584 | {
585 | "name": "iPad 2",
586 | "model": "iPad2,1",
587 | "ANumber": "A1395",
588 | "FCCID": "BCGA1395"
589 | },
590 | {
591 | "name": "iPad 2",
592 | "model": "iPad2,2",
593 | "ANumber": "A1396",
594 | "FCCID": "BCGA1396"
595 | },
596 | {
597 | "name": "iPad 2",
598 | "model": "iPad2,3",
599 | "ANumber": "A1397",
600 | "FCCID": "BCGA1397"
601 | },
602 | {
603 | "name": "iPad 2",
604 | "model": "iPad2,4",
605 | "ANumber": "A1395",
606 | "FCCID": "BCGA1395"
607 | },
608 | {
609 | "name": "iPad (3rd generation)",
610 | "model": "iPad3,1",
611 | "ANumber": "A1416",
612 | "FCCID": "BCGA1416"
613 | },
614 | {
615 | "name": "iPad (3rd generation)",
616 | "model": "iPad3,2",
617 | "ANumber": "A1403",
618 | "FCCID": "BCGA1403"
619 | },
620 | {
621 | "name": "iPad (3rd generation)",
622 | "model": "iPad3,3",
623 | "ANumber": "A1430",
624 | "FCCID": "BCGA1430"
625 | },
626 | {
627 | "name": "iPad (4th generation)",
628 | "model": "iPad3,4",
629 | "ANumber": "A1458",
630 | "FCCID": "BCGA1458"
631 | },
632 | {
633 | "name": "iPad (4th generation)",
634 | "model": "iPad3,5",
635 | "ANumber": "A1459",
636 | "FCCID": "BCGA1459"
637 | },
638 | {
639 | "name": "iPad (4th generation)",
640 | "model": "iPad3,6",
641 | "ANumber": "A1460",
642 | "FCCID": "BCGA1460"
643 | },
644 | {
645 | "name": "iPad (5th generation)",
646 | "model": "iPad6,11",
647 | "ANumber": "A1822",
648 | "FCCID": "BCGA1822"
649 | },
650 | {
651 | "name": "iPad (5th generation)",
652 | "model": "iPad6,12",
653 | "ANumber": "A1823",
654 | "FCCID": "BCGA1823"
655 | },
656 | {
657 | "name": "iPad (6th generation)",
658 | "model": "iPad7,5",
659 | "ANumber": "A1893",
660 | "FCCID": "BCGA1893"
661 | },
662 | {
663 | "name": "iPad (6th generation)",
664 | "model": "iPad7,6",
665 | "ANumber": "A1954",
666 | "FCCID": "BCGA1954"
667 | },
668 | {
669 | "name": "iPad (7th generation)",
670 | "model": "iPad7,11",
671 | "ANumber": "A2197",
672 | "FCCID": "BCGA2197"
673 | },
674 | {
675 | "name": "iPad (7th generation)",
676 | "model": "iPad7,12",
677 | "ANumber": [
678 | "A2198",
679 | "A2200"
680 | ],
681 | "FCCID": [
682 | "BCGA2198",
683 | "BCGA2200"
684 | ]
685 | },
686 | {
687 | "name": "iPad (8th generation)",
688 | "model": "iPad11,6",
689 | "ANumber": "A2270",
690 | "FCCID": "BCGA2270"
691 | },
692 | {
693 | "name": "iPad (8th generation)",
694 | "model": "iPad11,7",
695 | "ANumber": [
696 | "A2428",
697 | "A2429",
698 | "A2430"
699 | ],
700 | "FCCID": [
701 | "BCGA2428",
702 | "BCGA2429"
703 | ]
704 | },
705 | {
706 | "name": "iPad (9th generation)",
707 | "model": "iPad12,1",
708 | "ANumber": [
709 | "A2602"
710 | ],
711 | "FCCID": []
712 | },
713 | {
714 | "name": "iPad (9th generation)",
715 | "model": "iPad12,2",
716 | "ANumber": [
717 | "A2603",
718 | "A2604",
719 | "A2605"
720 | ],
721 | "FCCID": [
722 | "BCGA2603",
723 | "BCGA2604",
724 | "BCGA2605"
725 | ]
726 | },
727 | {
728 | "name": "iPad Air",
729 | "model": "iPad4,1",
730 | "ANumber": "A1474",
731 | "FCCID": "BCGA1474"
732 | },
733 | {
734 | "name": "iPad Air",
735 | "model": "iPad4,2",
736 | "ANumber": "A1475",
737 | "FCCID": "BCGA1475"
738 | },
739 | {
740 | "name": "iPad Air",
741 | "model": "iPad4,3",
742 | "ANumber": "A1476",
743 | "FCCID": "BCGA1476"
744 | },
745 | {
746 | "name": "iPad Air 2",
747 | "model": "iPad5,3",
748 | "ANumber": "A1566",
749 | "FCCID": "BCGA1566"
750 | },
751 | {
752 | "name": "iPad Air 2",
753 | "model": "iPad5,4",
754 | "ANumber": "A1567",
755 | "FCCID": "BCGA1567"
756 | },
757 | {
758 | "name": "iPad Air (3rd generation)",
759 | "model": "iPad11,3",
760 | "ANumber": "A2152",
761 | "FCCID": "BCGA2152"
762 | },
763 | {
764 | "name": "iPad Air (3rd generation)",
765 | "model": "iPad11,4",
766 | "ANumber": [
767 | "A2123",
768 | "A2153",
769 | "A2154"
770 | ],
771 | "FCCID": [
772 | "BCGA2123",
773 | "BCGA2153"
774 | ]
775 | },
776 | {
777 | "name": "iPad Air (4th generation)",
778 | "model": "iPad13,1",
779 | "ANumber": [
780 | "A2316"
781 | ],
782 | "FCCID": [
783 | "BCGA2316"
784 | ]
785 | },
786 | {
787 | "name": "iPad Air (4th generation)",
788 | "model": "iPad13,2",
789 | "ANumber": [
790 | "A2324",
791 | "A2325",
792 | "A2072"
793 | ],
794 | "FCCID": [
795 | "BCGA2324",
796 | "BCGA2072"
797 | ]
798 | },
799 | {
800 | "name": "iPad Air (5th generation)",
801 | "model": "iPad13,16",
802 | "ANumber": [
803 | "A2588"
804 | ],
805 | "FCCID": []
806 | },
807 | {
808 | "name": "iPad Air (5th generation)",
809 | "model": "iPad13,17",
810 | "ANumber": [
811 | "A2589",
812 | "A2591"
813 | ],
814 | "FCCID": []
815 | },
816 | {
817 | "name": "iPad Pro (12.9-inch)",
818 | "model": "iPad6,7",
819 | "ANumber": "A1584",
820 | "FCCID": "BCGA1584"
821 | },
822 | {
823 | "name": "iPad Pro (12.9-inch)",
824 | "model": "iPad6,8",
825 | "ANumber": "A1652",
826 | "FCCID": "BCGA1652"
827 | },
828 | {
829 | "name": "iPad Pro (9.7-inch)",
830 | "model": "iPad6,3",
831 | "ANumber": "A1673",
832 | "FCCID": "BCGA1673"
833 | },
834 | {
835 | "name": "iPad Pro (9.7-inch)",
836 | "model": "iPad6,4",
837 | "ANumber": [
838 | "A1674",
839 | "A1675"
840 | ],
841 | "FCCID": "BCGA1674"
842 | },
843 | {
844 | "name": "iPad Pro (12.9-inch, 2nd generation)",
845 | "model": "iPad7,1",
846 | "ANumber": "A1670",
847 | "FCCID": "BCGA1670"
848 | },
849 | {
850 | "name": "iPad Pro (12.9-inch, 2nd generation)",
851 | "model": "iPad7,2",
852 | "ANumber": [
853 | "A1671",
854 | "A1821"
855 | ],
856 | "FCCID": "BCGA1671"
857 | },
858 | {
859 | "name": "iPad Pro (10.5-inch)",
860 | "model": "iPad7,3",
861 | "ANumber": "A1701",
862 | "FCCID": "BCGA1701"
863 | },
864 | {
865 | "name": "iPad Pro (10.5-inch)",
866 | "model": "iPad7,4",
867 | "ANumber": "A1709",
868 | "FCCID": "BCGA1709"
869 | },
870 | {
871 | "name": "iPad Pro (11-inch)",
872 | "model": "iPad8,1",
873 | "ANumber": "A1980",
874 | "FCCID": "BCGA1980"
875 | },
876 | {
877 | "name": "iPad Pro (11-inch)",
878 | "model": "iPad8,2",
879 | "ANumber": "A1980",
880 | "FCCID": "BCGA1980"
881 | },
882 | {
883 | "name": "iPad Pro (11-inch)",
884 | "model": "iPad8,3",
885 | "ANumber": "A1934",
886 | "FCCID": "BCGA1934"
887 | },
888 | {
889 | "name": "iPad Pro (11-inch)",
890 | "model": "iPad8,4",
891 | "ANumber": "A1934",
892 | "FCCID": "BCGA1934"
893 | },
894 | {
895 | "name": "iPad Pro (11-inch)",
896 | "model": "iPad8,3",
897 | "ANumber": "A1979",
898 | "FCCID": "BCGA1934"
899 | },
900 | {
901 | "name": "iPad Pro (11-inch)",
902 | "model": "iPad8,4",
903 | "ANumber": "A1979",
904 | "FCCID": "BCGA1934"
905 | },
906 | {
907 | "name": "iPad Pro (11-inch)",
908 | "model": "iPad8,3",
909 | "ANumber": "A2013",
910 | "FCCID": "BCGA2013"
911 | },
912 | {
913 | "name": "iPad Pro (11-inch)",
914 | "model": "iPad8,4",
915 | "ANumber": "A2013",
916 | "FCCID": "BCGA2013"
917 | },
918 | {
919 | "name": "iPad Pro (12.9-inch) (3rd generation)",
920 | "model": "iPad8,5",
921 | "ANumber": "A1876",
922 | "FCCID": "BCGA1876"
923 | },
924 | {
925 | "name": "iPad Pro (12.9-inch) (3rd generation)",
926 | "model": "iPad8,6",
927 | "ANumber": "A1876",
928 | "FCCID": "BCGA1876"
929 | },
930 | {
931 | "name": "iPad Pro (12.9-inch) (3rd generation)",
932 | "model": "iPad8,7",
933 | "ANumber": "A1895",
934 | "FCCID": "BCGA1985"
935 | },
936 | {
937 | "name": "iPad Pro (12.9-inch) (3rd generation)",
938 | "model": "iPad8,8",
939 | "ANumber": "A1895",
940 | "FCCID": "BCGA1985"
941 | },
942 | {
943 | "name": "iPad Pro (12.9-inch) (3rd generation)",
944 | "model": "iPad8,7",
945 | "ANumber": "A1983",
946 | "FCCID": "BCGA1985"
947 | },
948 | {
949 | "name": "iPad Pro (12.9-inch) (3rd generation)",
950 | "model": "iPad8,8",
951 | "ANumber": "A1983",
952 | "FCCID": "BCGA1985"
953 | },
954 | {
955 | "name": "iPad Pro (12.9-inch) (3rd generation)",
956 | "model": "iPad8,7",
957 | "ANumber": "A2014",
958 | "FCCID": "BCGA2014"
959 | },
960 | {
961 | "name": "iPad Pro (12.9-inch) (3rd generation)",
962 | "model": "iPad8,8",
963 | "ANumber": "A2014",
964 | "FCCID": "BCGA2014"
965 | },
966 | {
967 | "name": "iPad Pro (11-inch) (2nd generation)",
968 | "model": "iPad8,9",
969 | "ANumber": "A2228",
970 | "FCCID": "BCGA2228"
971 | },
972 | {
973 | "name": "iPad Pro (11-inch) (2nd generation)",
974 | "model": "iPad8,10",
975 | "ANumber": [
976 | "A2068",
977 | "A2230",
978 | "A2231"
979 | ],
980 | "FCCID": [
981 | "BCGA2068",
982 | "BCGA2230"
983 | ]
984 | },
985 | {
986 | "name": "iPad Pro (12.9-inch) (4th generation)",
987 | "model": "iPad8,11",
988 | "ANumber": "A2229",
989 | "FCCID": "BCGA2229"
990 | },
991 | {
992 | "name": "iPad Pro (12.9-inch) (4th generation)",
993 | "model": "iPad8,12",
994 | "ANumber": [
995 | "A2069",
996 | "A2232",
997 | "A2233"
998 | ],
999 | "FCCID": [
1000 | "BCGA2069",
1001 | "BCGA2232"
1002 | ]
1003 | },
1004 | {
1005 | "name": "iPad Pro (11-inch) (3rd generation)",
1006 | "model": "iPad13,4",
1007 | "ANumber": [],
1008 | "FCCID": []
1009 | },
1010 | {
1011 | "name": "iPad Pro (11-inch) (3rd generation)",
1012 | "model": "iPad13,5",
1013 | "ANumber": [],
1014 | "FCCID": []
1015 | },
1016 | {
1017 | "name": "iPad Pro (11-inch) (3rd generation)",
1018 | "model": "iPad13,6",
1019 | "ANumber": [],
1020 | "FCCID": []
1021 | },
1022 | {
1023 | "name": "iPad Pro (11-inch) (3rd generation)",
1024 | "model": "iPad13,7",
1025 | "ANumber": [],
1026 | "FCCID": []
1027 | },
1028 | {
1029 | "name": "iPad Pro (12.9-inch) (5th generation)",
1030 | "model": "iPad13,8",
1031 | "ANumber": [],
1032 | "FCCID": []
1033 | },
1034 | {
1035 | "name": "iPad Pro (12.9-inch) (5th generation)",
1036 | "model": "iPad13,9",
1037 | "ANumber": [],
1038 | "FCCID": []
1039 | },
1040 | {
1041 | "name": "iPad Pro (12.9-inch) (5th generation)",
1042 | "model": "iPad13,10",
1043 | "ANumber": [],
1044 | "FCCID": []
1045 | },
1046 | {
1047 | "name": "iPad Pro (12.9-inch) (5th generation)",
1048 | "model": "iPad13,11",
1049 | "ANumber": [],
1050 | "FCCID": []
1051 | },
1052 | {
1053 | "name": "iPad mini",
1054 | "model": "iPad2,5",
1055 | "ANumber": "A1432",
1056 | "FCCID": "BCGA1432"
1057 | },
1058 | {
1059 | "name": "iPad mini",
1060 | "model": "iPad2,6",
1061 | "ANumber": "A1454",
1062 | "FCCID": "BCGA1454"
1063 | },
1064 | {
1065 | "name": "iPad mini",
1066 | "model": "iPad2,7",
1067 | "ANumber": "A1455",
1068 | "FCCID": "BCGA1455"
1069 | },
1070 | {
1071 | "name": "iPad mini 2",
1072 | "model": "iPad4,4",
1073 | "ANumber": "A1489",
1074 | "FCCID": "BCGA1489"
1075 | },
1076 | {
1077 | "name": "iPad mini 2",
1078 | "model": "iPad4,5",
1079 | "ANumber": "A1490",
1080 | "FCCID": "BCGA1490"
1081 | },
1082 | {
1083 | "name": "iPad mini 2",
1084 | "model": "iPad4,6",
1085 | "ANumber": "A1491",
1086 | "FCCID": "BCGA1491"
1087 | },
1088 | {
1089 | "name": "iPad mini 3",
1090 | "model": "iPad4,7",
1091 | "ANumber": "A1599",
1092 | "FCCID": "BCGA1599"
1093 | },
1094 | {
1095 | "name": "iPad mini 3",
1096 | "model": "iPad4,8",
1097 | "ANumber": "A1600",
1098 | "FCCID": "BCGA1600"
1099 | },
1100 | {
1101 | "name": "iPad mini 3",
1102 | "model": "iPad4,9",
1103 | "ANumber": "A1601",
1104 | "FCCID": "BCGA1601"
1105 | },
1106 | {
1107 | "name": "iPad mini 4",
1108 | "model": "iPad5,1",
1109 | "ANumber": "A1538",
1110 | "FCCID": "BCGA1538"
1111 | },
1112 | {
1113 | "name": "iPad mini 4",
1114 | "model": "iPad5,2",
1115 | "ANumber": "A1550",
1116 | "FCCID": "BCGA1550"
1117 | },
1118 | {
1119 | "name": "iPad mini (5th generation)",
1120 | "model": "iPad11,1",
1121 | "ANumber": "A2133",
1122 | "FCCID": "BCGA2133"
1123 | },
1124 | {
1125 | "name": "iPad mini (5th generation)",
1126 | "model": "iPad11,2",
1127 | "ANumber": [
1128 | "A2124",
1129 | "A2125",
1130 | "A2126"
1131 | ],
1132 | "FCCID": [
1133 | "BCGA2124",
1134 | "BCGA2126"
1135 | ]
1136 | },
1137 | {
1138 | "name": "iPad mini (6th generation)",
1139 | "model": "iPad14,1",
1140 | "ANumber": [
1141 | "A2567"
1142 | ],
1143 | "FCCID": [
1144 | "BCGA2567"
1145 | ]
1146 | },
1147 | {
1148 | "name": "iPad mini (6th generation)",
1149 | "model": "iPad14,2",
1150 | "ANumber": [
1151 | "A2568",
1152 | "A2569"
1153 | ],
1154 | "FCCID": [
1155 | "BCGA2568",
1156 | "BCGA2569"
1157 | ]
1158 | },
1159 | {
1160 | "name": "iPhone",
1161 | "model": "iPhone1,1",
1162 | "ANumber": "A1203",
1163 | "FCCID": "BCGA1203"
1164 | },
1165 | {
1166 | "name": "iPhone 3G",
1167 | "model": "iPhone1,2",
1168 | "ANumber": [
1169 | "A1241",
1170 | "A1324"
1171 | ],
1172 | "FCCID": "BCGA1241"
1173 | },
1174 | {
1175 | "name": "iPhone 3GS",
1176 | "model": "iPhone2,1",
1177 | "ANumber": [
1178 | "A1303",
1179 | "A1325"
1180 | ],
1181 | "FCCID": [
1182 | "BCGA1303A",
1183 | "BCGA1303B"
1184 | ]
1185 | },
1186 | {
1187 | "name": "iPhone 4",
1188 | "model": "iPhone3,1",
1189 | "ANumber": "A1332",
1190 | "FCCID": [
1191 | "BCG‑E2380A",
1192 | "BCG‑E2380B"
1193 | ]
1194 | },
1195 | {
1196 | "name": "iPhone 4",
1197 | "model": "iPhone3,2",
1198 | "ANumber": "A1332",
1199 | "FCCID": [
1200 | "BCG‑E2380A",
1201 | "BCG‑E2380B"
1202 | ]
1203 | },
1204 | {
1205 | "name": "iPhone 4",
1206 | "model": "iPhone3,3",
1207 | "ANumber": "A1349",
1208 | "FCCID": [
1209 | "BCG‑E2422A",
1210 | "BCG‑E2422B"
1211 | ]
1212 | },
1213 | {
1214 | "name": "iPhone 4S",
1215 | "model": "iPhone4,1",
1216 | "ANumber": [
1217 | "A1387",
1218 | "A1431"
1219 | ],
1220 | "FCCID": "BCG‑E2430A"
1221 | },
1222 | {
1223 | "name": "iPhone 5",
1224 | "model": "iPhone5,1",
1225 | "ANumber": "A1428",
1226 | "FCCID": "BCG‑E2599A"
1227 | },
1228 | {
1229 | "name": "iPhone 5",
1230 | "model": "iPhone5,2",
1231 | "ANumber": [
1232 | "A1429",
1233 | "A1442"
1234 | ],
1235 | "FCCID": "BCG‑E2599A"
1236 | },
1237 | {
1238 | "name": "iPhone 5c",
1239 | "model": "iPhone5,3",
1240 | "ANumber": [
1241 | "A1456",
1242 | "A1532"
1243 | ],
1244 | "FCCID": "BCG‑E2644A"
1245 | },
1246 | {
1247 | "name": "iPhone 5c",
1248 | "model": "iPhone5,4",
1249 | "ANumber": [
1250 | "A1507",
1251 | "A1516",
1252 | "A1526",
1253 | "A1529"
1254 | ],
1255 | "FCCID": [
1256 | "BCG‑E2694A",
1257 | "BCG‑E2694B"
1258 | ]
1259 | },
1260 | {
1261 | "name": "iPhone 5s",
1262 | "model": "iPhone6,1",
1263 | "ANumber": [
1264 | "A1453",
1265 | "A1533"
1266 | ],
1267 | "FCCID": "BCG‑E2642A"
1268 | },
1269 | {
1270 | "name": "iPhone 5s",
1271 | "model": "iPhone6,2",
1272 | "ANumber": [
1273 | "A1457",
1274 | "A1518",
1275 | "A1528",
1276 | "A1530"
1277 | ],
1278 | "FCCID": [
1279 | "BCG‑E2643A",
1280 | "BCG‑E2643B"
1281 | ]
1282 | },
1283 | {
1284 | "name": "iPhone SE (1st generation)",
1285 | "model": "iPhone8,4",
1286 | "ANumber": [
1287 | "A1662",
1288 | "A1723",
1289 | "A1724"
1290 | ],
1291 | "FCCID": "BCG‑E2945A"
1292 | },
1293 | {
1294 | "name": "iPhone 6",
1295 | "model": "iPhone7,2",
1296 | "ANumber": [
1297 | "A1549",
1298 | "A1586",
1299 | "A1589"
1300 | ],
1301 | "FCCID": "BCG‑E2816A"
1302 | },
1303 | {
1304 | "name": "iPhone 6 Plus",
1305 | "model": "iPhone7,1",
1306 | "ANumber": [
1307 | "A1522",
1308 | "A1524",
1309 | "A1593"
1310 | ],
1311 | "FCCID": "BCG‑E2817A"
1312 | },
1313 | {
1314 | "name": "iPhone 6s",
1315 | "model": "iPhone8,1",
1316 | "ANumber": [
1317 | "A1633",
1318 | "A1688",
1319 | "A1691",
1320 | "A1700"
1321 | ],
1322 | "FCCID": "BCG-E2946A"
1323 | },
1324 | {
1325 | "name": "iPhone 6s Plus",
1326 | "model": "iPhone8,2",
1327 | "ANumber": [
1328 | "A1634",
1329 | "A1687",
1330 | "A1690",
1331 | "A1699"
1332 | ],
1333 | "FCCID": "BCG-E2944A"
1334 | },
1335 | {
1336 | "name": "iPhone 7",
1337 | "model": "iPhone9,1",
1338 | "ANumber": [
1339 | "A1660",
1340 | "A1779",
1341 | "A1780"
1342 | ],
1343 | "FCCID": [
1344 | "BCG‑E3085A",
1345 | "BCG‑E3086A"
1346 | ]
1347 | },
1348 | {
1349 | "name": "iPhone 7",
1350 | "model": "iPhone9,3",
1351 | "ANumber": "A1778",
1352 | "FCCID": "BCG‑E3091A"
1353 | },
1354 | {
1355 | "name": "iPhone 7 Plus",
1356 | "model": "iPhone9,2",
1357 | "ANumber": [
1358 | "A1661",
1359 | "A1785",
1360 | "A1786"
1361 | ],
1362 | "FCCID": [
1363 | "BCG‑E3087A",
1364 | "BCG‑E3088A"
1365 | ]
1366 | },
1367 | {
1368 | "name": "iPhone 7 Plus",
1369 | "model": "iPhone9,4",
1370 | "ANumber": "A1784",
1371 | "FCCID": "BCG‑E3092A"
1372 | },
1373 | {
1374 | "name": "iPhone 8",
1375 | "model": "iPhone10,1",
1376 | "ANumber": [
1377 | "A1863",
1378 | "A1906",
1379 | "A1907"
1380 | ],
1381 | "FCCID": [
1382 | "BCG-E3159A",
1383 | "BCG-E3171A"
1384 | ]
1385 | },
1386 | {
1387 | "name": "iPhone 8",
1388 | "model": "iPhone10,1",
1389 | "ANumber": [
1390 | "A1863",
1391 | "A1906",
1392 | "A1907"
1393 | ],
1394 | "FCCID": [
1395 | "BCG-E3159A",
1396 | "BCG-E3171A"
1397 | ]
1398 | },
1399 | {
1400 | "name": "iPhone 8",
1401 | "model": "iPhone10,4",
1402 | "ANumber": [
1403 | "A1905"
1404 | ],
1405 | "FCCID": [
1406 | "BCG-E3172A"
1407 | ]
1408 | },
1409 | {
1410 | "name": "iPhone 8",
1411 | "model": "iPhone10,4",
1412 | "ANumber": [
1413 | "A1905"
1414 | ],
1415 | "FCCID": [
1416 | "BCG-E3172A"
1417 | ]
1418 | },
1419 | {
1420 | "name": "iPhone 8 Plus",
1421 | "model": "iPhone10,2",
1422 | "ANumber": [
1423 | "A1864",
1424 | "A1898",
1425 | "A1899"
1426 | ],
1427 | "FCCID": [
1428 | "BCG-E3160A",
1429 | "BCG-E3173A"
1430 | ]
1431 | },
1432 | {
1433 | "name": "iPhone 8 Plus",
1434 | "model": "iPhone10,5",
1435 | "ANumber": [
1436 | "A1897"
1437 | ],
1438 | "FCCID": [
1439 | "BCG-E3174A"
1440 | ]
1441 | },
1442 | {
1443 | "name": "iPhone X",
1444 | "model": "iPhone10,3",
1445 | "ANumber": [
1446 | "A1865",
1447 | "A1902"
1448 | ],
1449 | "FCCID": [
1450 | "BCG-E3161A"
1451 | ]
1452 | },
1453 | {
1454 | "name": "iPhone X",
1455 | "model": "iPhone10,6",
1456 | "ANumber": [
1457 | "A1901"
1458 | ],
1459 | "FCCID": [
1460 | "BCG-E3175A"
1461 | ]
1462 | },
1463 | {
1464 | "name": "iPhone XR",
1465 | "model": "iPhone11,8",
1466 | "ANumber": [
1467 | "A1984"
1468 | ],
1469 | "FCCID": [
1470 | "BCG-E3220A"
1471 | ]
1472 | },
1473 | {
1474 | "name": "iPhone XR",
1475 | "model": "iPhone11,8",
1476 | "ANumber": [
1477 | "A2105"
1478 | ],
1479 | "FCCID": [
1480 | "BCG-E3237A"
1481 | ]
1482 | },
1483 | {
1484 | "name": "iPhone XR",
1485 | "model": "iPhone11,8",
1486 | "ANumber": [
1487 | "A2106"
1488 | ],
1489 | "FCCID": [
1490 | "BCG-E3238A"
1491 | ]
1492 | },
1493 | {
1494 | "name": "iPhone XR",
1495 | "model": "iPhone11,8",
1496 | "ANumber": [
1497 | "A2108"
1498 | ],
1499 | "FCCID": [
1500 | "BCG-E3220A"
1501 | ]
1502 | },
1503 | {
1504 | "name": "iPhone XS",
1505 | "model": "iPhone11,2",
1506 | "ANumber": [
1507 | "A1920"
1508 | ],
1509 | "FCCID": [
1510 | "BCG-E3218A"
1511 | ]
1512 | },
1513 | {
1514 | "name": "iPhone XS",
1515 | "model": "iPhone11,2",
1516 | "ANumber": [
1517 | "A2097"
1518 | ],
1519 | "FCCID": [
1520 | "BCG-E3232A"
1521 | ]
1522 | },
1523 | {
1524 | "name": "iPhone XS",
1525 | "model": "iPhone11,2",
1526 | "ANumber": [
1527 | "A2098"
1528 | ],
1529 | "FCCID": [
1530 | "BCG-E3233A"
1531 | ]
1532 | },
1533 | {
1534 | "name": "iPhone XS",
1535 | "model": "iPhone11,2",
1536 | "ANumber": [
1537 | "A2100"
1538 | ],
1539 | "FCCID": [
1540 | "BCG-E3218A"
1541 | ]
1542 | },
1543 | {
1544 | "name": "iPhone XS Max",
1545 | "model": "iPhone11,6",
1546 | "ANumber": [
1547 | "A1921"
1548 | ],
1549 | "FCCID": [
1550 | "BCG-E3219A"
1551 | ]
1552 | },
1553 | {
1554 | "name": "iPhone XS Max",
1555 | "model": "iPhone11,6",
1556 | "ANumber": [
1557 | "A2101"
1558 | ],
1559 | "FCCID": [
1560 | "BCG-E3234A"
1561 | ]
1562 | },
1563 | {
1564 | "name": "iPhone XS Max",
1565 | "model": "iPhone11,6",
1566 | "ANumber": [
1567 | "A2102"
1568 | ],
1569 | "FCCID": [
1570 | "BCG-E3235A"
1571 | ]
1572 | },
1573 | {
1574 | "name": "iPhone XS Max",
1575 | "model": "iPhone11,6",
1576 | "ANumber": [
1577 | "A2104"
1578 | ],
1579 | "FCCID": [
1580 | "BCG-E3219A"
1581 | ]
1582 | },
1583 | {
1584 | "name": "iPhone XS Max",
1585 | "model": "iPhone11,4",
1586 | "ANumber": [
1587 | "A2103"
1588 | ],
1589 | "FCCID": [
1590 | ""
1591 | ]
1592 | },
1593 | {
1594 | "name": "iPhone 11",
1595 | "model": "iPhone12,1",
1596 | "ANumber": [
1597 | "A2111"
1598 | ],
1599 | "FCCID": [
1600 | "BCG-E3309A"
1601 | ]
1602 | },
1603 | {
1604 | "name": "iPhone 11",
1605 | "model": "iPhone12,1",
1606 | "ANumber": [
1607 | "A2221"
1608 | ],
1609 | "FCCID": [
1610 | "BCG-E3309A"
1611 | ]
1612 | },
1613 | {
1614 | "name": "iPhone 11",
1615 | "model": "iPhone12,1",
1616 | "ANumber": [
1617 | "A2223"
1618 | ],
1619 | "FCCID": [
1620 | "BCG-E3309A"
1621 | ]
1622 | },
1623 | {
1624 | "name": "iPhone 11 Pro",
1625 | "model": "iPhone12,3",
1626 | "ANumber": [
1627 | "A2160"
1628 | ],
1629 | "FCCID": [
1630 | "BCG-E3309A"
1631 | ]
1632 | },
1633 | {
1634 | "name": "iPhone 11 Pro",
1635 | "model": "iPhone12,3",
1636 | "ANumber": [
1637 | "A2215"
1638 | ],
1639 | "FCCID": [
1640 | "BCG-E3309A"
1641 | ]
1642 | },
1643 | {
1644 | "name": "iPhone 11 Pro",
1645 | "model": "iPhone12,3",
1646 | "ANumber": [
1647 | "A2217"
1648 | ],
1649 | "FCCID": [
1650 | "BCG-E3309A"
1651 | ]
1652 | },
1653 | {
1654 | "name": "iPhone 11 Pro Max",
1655 | "model": "iPhone12,5",
1656 | "ANumber": [
1657 | "A2161"
1658 | ],
1659 | "FCCID": [
1660 | "BCG-E3309A"
1661 | ]
1662 | },
1663 | {
1664 | "name": "iPhone 11 Pro Max",
1665 | "model": "iPhone12,5",
1666 | "ANumber": [
1667 | "A2220"
1668 | ],
1669 | "FCCID": [
1670 | "BCG-E3309A"
1671 | ]
1672 | },
1673 | {
1674 | "name": "iPhone 11 Pro Max",
1675 | "model": "iPhone12,5",
1676 | "ANumber": [
1677 | "A2218"
1678 | ],
1679 | "FCCID": [
1680 | "BCG-E3309A"
1681 | ]
1682 | },
1683 | {
1684 | "name": "iPhone SE (2nd generation)",
1685 | "model": "iPhone12,8",
1686 | "ANumber": [
1687 | "A2275",
1688 | "A2296",
1689 | "A2298"
1690 | ],
1691 | "FCCID": [
1692 | "E3500A",
1693 | "E3501A"
1694 | ]
1695 | },
1696 | {
1697 | "name": "iPhone 12 mini",
1698 | "model": "iPhone13,1",
1699 | "ANumber": [
1700 | "A2176",
1701 | "A2398",
1702 | "A2400",
1703 | "A2399"
1704 | ],
1705 | "FCCID": [
1706 | "BCG-E3539A"
1707 | ]
1708 | },
1709 | {
1710 | "name": "iPhone 12",
1711 | "model": "iPhone13,2",
1712 | "ANumber": [
1713 | "A2172",
1714 | "A2402",
1715 | "A2404",
1716 | "A2403"
1717 | ],
1718 | "FCCID": [
1719 | "BCG-E3542A"
1720 | ]
1721 | },
1722 | {
1723 | "name": "iPhone 12 Pro",
1724 | "model": "iPhone13,3",
1725 | "ANumber": [
1726 | "A2341",
1727 | "A2406",
1728 | "A2407",
1729 | "A2408"
1730 | ],
1731 | "FCCID": [
1732 | "BCG-E3545A"
1733 | ]
1734 | },
1735 | {
1736 | "name": "iPhone 12 Pro Max",
1737 | "model": "iPhone13,4",
1738 | "ANumber": [
1739 | "A2342",
1740 | "A2410",
1741 | "A2411",
1742 | "A2412"
1743 | ],
1744 | "FCCID": [
1745 | "BCG-E3548A"
1746 | ]
1747 | },
1748 | {
1749 | "name": "iPhone 13 mini",
1750 | "model": "iPhone14,4",
1751 | "ANumber": [
1752 | "A2481",
1753 | "A2626",
1754 | "A2629",
1755 | "A2630",
1756 | "A2628"
1757 | ],
1758 | "FCCID": []
1759 | },
1760 | {
1761 | "name": "iPhone 13",
1762 | "model": "iPhone14,5",
1763 | "ANumber": [
1764 | "A2482",
1765 | "A2631",
1766 | "A2634",
1767 | "A2635",
1768 | "A2633"
1769 | ],
1770 | "FCCID": []
1771 | },
1772 | {
1773 | "name": "iPhone 13 Pro",
1774 | "model": "iPhone14,2",
1775 | "ANumber": [
1776 | "A2483",
1777 | "A2636",
1778 | "A2639",
1779 | "A2640",
1780 | "A2638"
1781 | ],
1782 | "FCCID": []
1783 | },
1784 | {
1785 | "name": "iPhone 13 Pro Max",
1786 | "model": "iPhone14,3",
1787 | "ANumber": [
1788 | "A2484",
1789 | "A2641",
1790 | "A2644",
1791 | "A2645",
1792 | "A2643"
1793 | ],
1794 | "FCCID": []
1795 | },
1796 | {
1797 | "name": "iPhone SE (3rd generation)",
1798 | "model": "iPhone14,6",
1799 | "ANumber": [
1800 | "A2595",
1801 | "A2782",
1802 | "A2783",
1803 | "A2784",
1804 | "A2785"
1805 | ],
1806 | "FCCID": [
1807 | "BCG-E4082A",
1808 | "BCG-E8064A",
1809 | "BCG-E4083A",
1810 | "BCG-E8076A"
1811 | ]
1812 | },
1813 | {
1814 | "name": "iPhone 14",
1815 | "model": "iPhone14,7",
1816 | "ANumber": [],
1817 | "FCCID": []
1818 | },
1819 | {
1820 | "name": "iPhone 14 Plus",
1821 | "model": "iPhone14,8",
1822 | "ANumber": [],
1823 | "FCCID": []
1824 | },
1825 | {
1826 | "name": "iPhone 14 Pro",
1827 | "model": "iPhone15,2",
1828 | "ANumber": [],
1829 | "FCCID": []
1830 | },
1831 | {
1832 | "name": "iPhone 14 Pro Max",
1833 | "model": "iPhone15,3",
1834 | "ANumber": [],
1835 | "FCCID": []
1836 | },
1837 | {
1838 | "name": "iPod touch",
1839 | "model": "iPod1,1",
1840 | "ANumber": "A1213",
1841 | "FCCID": "BCGA1213"
1842 | },
1843 | {
1844 | "name": "iPod touch (2nd generation)",
1845 | "model": "iPod2,1",
1846 | "ANumber": [
1847 | "A1288",
1848 | "A1319"
1849 | ],
1850 | "FCCID": "BCGA1288"
1851 | },
1852 | {
1853 | "name": "iPod touch (2nd generation)",
1854 | "model": "iPod2,1",
1855 | "ANumber": [
1856 | "A1288",
1857 | "A1319"
1858 | ],
1859 | "FCCID": "BCGA1288"
1860 | },
1861 | {
1862 | "name": "iPod touch (3rd generation)",
1863 | "model": "iPod3,1",
1864 | "ANumber": "A1318",
1865 | "FCCID": "BCG‑2310"
1866 | },
1867 | {
1868 | "name": "iPod touch (4th generation)",
1869 | "model": "iPod4,1",
1870 | "ANumber": "A1367",
1871 | "FCCID": "BCG‑E2407"
1872 | },
1873 | {
1874 | "name": "iPod touch (5th generation)",
1875 | "model": "iPod5,1",
1876 | "ANumber": "A1421",
1877 | "FCCID": "BCG‑A1421"
1878 | },
1879 | {
1880 | "name": "iPod touch (5th generation)",
1881 | "model": "iPod5,1",
1882 | "ANumber": "A1509",
1883 | "FCCID": "BCG‑A1421"
1884 | },
1885 | {
1886 | "name": "iPod touch (6th generation)",
1887 | "model": "iPod7,1",
1888 | "ANumber": "A1574",
1889 | "FCCID": "BCGA1574"
1890 | },
1891 | {
1892 | "name": "iPod touch (7th generation)",
1893 | "model": "iPod9,1",
1894 | "ANumber": "A2178",
1895 | "FCCID": "BCGA2178"
1896 | },
1897 | {
1898 | "name": "Siri Remote",
1899 | "model": "",
1900 | "ANumber": [
1901 | "A1513"
1902 | ],
1903 | "FCCID": [
1904 | "BCGA1513"
1905 | ]
1906 | },
1907 | {
1908 | "name": "Siri Remote (Rev A)",
1909 | "model": "",
1910 | "ANumber": [
1911 | "A1962"
1912 | ],
1913 | "FCCID": [
1914 | "BCGA1962"
1915 | ]
1916 | },
1917 | {
1918 | "name": "Siri Remote (2nd generation)",
1919 | "model": "",
1920 | "ANumber": [
1921 | "A2540"
1922 | ],
1923 | "FCCID": [
1924 | "BCGA2540"
1925 | ]
1926 | }
1927 | ]
--------------------------------------------------------------------------------
/homepod.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "HomePod",
4 | "ANumber": "A1639",
5 | "Bootrom": "Bootrom 1992.0.0.1.19",
6 | "FCCID": "BCG-A1639",
7 | "InternalName": "B238aAP",
8 | "Identifier": "AudioAccessory1,1",
9 | "Models": [
10 | {
11 | "Color": "Space Gray",
12 | "Model": [ "MQHW2" ]
13 | },
14 | {
15 | "Color": "White",
16 | "Model": [ "MQHV2" ]
17 | }
18 | ]
19 | },
20 | {
21 | "Generation": "HomePod",
22 | "ANumber": "Unknown",
23 | "Bootrom": "Bootrom 1992.0.0.1.19",
24 | "FCCID": "Unknown",
25 | "InternalName": "B238AP",
26 | "Identifier": "AudioAccessory1,2",
27 | "Models": [
28 | {
29 | "Color": "Space Gray",
30 | "Model": [ ]
31 | },
32 | {
33 | "Color": "White",
34 | "Model": [ ]
35 | }
36 | ]
37 | },
38 | {
39 | "Generation": "HomePod mini",
40 | "ANumber": "A2374",
41 | "Bootrom": "Bootrom 3988.0.0.2.12",
42 | "FCCID": "BCG-A2374",
43 | "InternalName": "B520AP",
44 | "Identifier": "AudioAccessory5,1",
45 | "Models": [
46 | {
47 | "Color": "Space Gray",
48 | "Model": [ "MY5G2" ]
49 | },
50 | {
51 | "Color": "White",
52 | "Model": [ "MY5H2" ]
53 | }
54 | ]
55 | }
56 | ]
57 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | const uniq = require('lodash.uniq');
4 | const cloneDeep = require('lodash.clonedeep');
5 | const flatten = require('lodash.flatten');
6 |
7 | const airpods = require('./airpods.json');
8 | const apple_tv = require('./apple_tv.json');
9 | const apple_watch = require('./apple_watch.json');
10 | const homepod = require('./homepod.json');
11 | const ipad = require('./ipad.json');
12 | const ipad_air = require('./ipad_air.json');
13 | const ipad_pro = require('./ipad_pro.json');
14 | const ipad_mini = require('./ipad_mini.json');
15 | const iphone = require('./iphone.json');
16 | const ipod_touch = require('./ipod_touch.json');
17 |
18 | const all = (() => {
19 | let l = [];
20 |
21 | let total = [].concat(
22 | airpods.map(v => { v.Type = 'airpods'; return v; }),
23 | apple_tv.map(v => { v.Type = 'apple_tv'; return v; }),
24 | apple_watch.map(v => { v.Type = 'apple_watch'; return v; }),
25 | homepod.map(v => { v.Type = 'homepod'; return v; }),
26 | ipad.map(v => { v.Type = 'ipad'; return v; }),
27 | ipad_air.map(v => { v.Type = 'ipad_air'; return v; }),
28 | ipad_pro.map(v => { v.Type = 'ipad_pro'; return v; }),
29 | ipad_mini.map(v => { v.Type = 'ipad_mini'; return v; }),
30 | iphone.map(v => { v.Type = 'iphone'; return v; }),
31 | ipod_touch.map(v => { v.Type = 'ipod_touch'; return v; })
32 | );
33 | total.forEach(v => {
34 | // Some devices don't have any models information defined, we still want them to be listed
35 | if(!v.Models || v.Models.length === 0) {
36 | let item = createItem(v, null, null);
37 | l.push(item);
38 | } else {
39 | v.Models.forEach(m => {
40 | m.Model.forEach(mid => {
41 | let item = createItem(v,m, mid);
42 | l.push(item);
43 | });
44 | });
45 | }
46 | });
47 |
48 | return l;
49 | })();
50 |
51 | function createItem(device, model, modelID) {
52 | let item = {
53 | Type: device.Type,
54 | Generation: device.Generation,
55 | ANumber: device.ANumber,
56 | Bootrom: device.Bootrom,
57 | Variant: device.Variant,
58 | FCCID: device.FCCID,
59 | InternalName: device.InternalName,
60 | Identifier: device.Identifier,
61 | Color: model ? model.Color : '',
62 | Storage: model ? model.Storage : '',
63 | Model: modelID ? modelID : ''
64 | };
65 | if (model && model.CaseMaterial) {
66 | item.CaseMaterial = model.CaseMaterial;
67 | }
68 | return item;
69 | }
70 |
71 | function deviceTypes() {
72 | return 'airpods,apple_tv,apple_watch,homepod,ipad,ipad_air,ipad_pro,ipad_mini,iphone,ipod_touch'.split(',');
73 | }
74 |
75 | function devices(type) {
76 | if (type) {
77 | if (deviceTypes().indexOf(type) === -1) {
78 | throw new TypeError('Invalid type parameter');
79 | }
80 | return cloneDeep(all.filter(d => d.Type === type));
81 | }
82 | return cloneDeep(all);
83 | }
84 |
85 | function generations(type) {
86 | let list;
87 |
88 | if (type) {
89 | if (deviceTypes().indexOf(type) === -1) {
90 | throw new TypeError('Invalid type parameter');
91 | }
92 | list = all.filter(d => d.Type === type);
93 | } else {
94 | list = all;
95 | }
96 |
97 | return uniq(list.map(v => v.Generation));
98 | }
99 |
100 | function anumbers(type) {
101 | let list;
102 |
103 | if (type) {
104 | if (deviceTypes().indexOf(type) === -1) {
105 | throw new TypeError('Invalid type parameter');
106 | }
107 | list = all.filter(d => d.Type === type);
108 | } else {
109 | list = all;
110 | }
111 |
112 | return uniq(flatten(list.map(v => v.ANumber))).sort();
113 | }
114 |
115 | function fccids(type) {
116 | let list;
117 |
118 | if (type) {
119 | if (deviceTypes().indexOf(type) === -1) {
120 | throw new TypeError('Invalid type parameter');
121 | }
122 | list = all.filter(d => d.Type === type);
123 | } else {
124 | list = all;
125 | }
126 |
127 | return uniq(flatten(list.map(v => v.FCCID))).sort();
128 | }
129 |
130 | function internalNames(type) {
131 | let list;
132 |
133 | if (type) {
134 | if (deviceTypes().indexOf(type) === -1) {
135 | throw new TypeError('Invalid type parameter');
136 | }
137 | list = all.filter(d => d.Type === type);
138 | } else {
139 | list = all;
140 | }
141 |
142 | return uniq(flatten(list.map(v => v.InternalName))).sort();
143 | }
144 |
145 | function identifiers(type) {
146 | let list;
147 |
148 | if (type) {
149 | if (deviceTypes().indexOf(type) === -1) {
150 | throw new TypeError('Invalid type parameter');
151 | }
152 | list = all.filter(d => d.Type === type);
153 | } else {
154 | list = all;
155 | }
156 |
157 | return uniq(list.map(v => v.Identifier)).sort();
158 | }
159 |
160 | function colors(type) {
161 | let list;
162 |
163 | if (type) {
164 | if (deviceTypes().indexOf(type) === -1) {
165 | throw new TypeError('Invalid type parameter');
166 | }
167 | list = all.filter(d => d.Type === type);
168 | } else {
169 | list = all;
170 | }
171 |
172 | return uniq(list.map(v => v.Color)).sort();
173 | }
174 |
175 | function storages(type) {
176 | let list;
177 |
178 | if (type) {
179 | if (deviceTypes().indexOf(type) === -1) {
180 | throw new TypeError('Invalid type parameter');
181 | }
182 | list = all.filter(d => d.Type === type);
183 | } else {
184 | list = all;
185 | }
186 |
187 | return uniq(list.map(v => v.Storage)).sort();
188 | }
189 |
190 | function models(type) {
191 | let list;
192 |
193 | if (type) {
194 | if (deviceTypes().indexOf(type) === -1) {
195 | throw new TypeError('Invalid type parameter');
196 | }
197 | list = all.filter(d => d.Type === type);
198 | } else {
199 | list = all;
200 | }
201 |
202 | return uniq(list.map(v => v.Model)).sort();
203 | }
204 |
205 | function deviceByGeneration(generation, type, options) {
206 | if (typeof generation !== 'string') {
207 | throw new TypeError('`generation` parameter must be a string');
208 | }
209 |
210 | options = options || {};
211 | let caseInsensitive = !!options.caseInsensitive;
212 | let contains = !!options.contains;
213 |
214 | return deviceByFilter(generation, 'Generation', type, caseInsensitive, contains);
215 | }
216 |
217 | function deviceByANumber(anumber, type, options) {
218 | if (typeof anumber !== 'string') {
219 | throw new TypeError('`anumber` parameter must be a string');
220 | }
221 |
222 | options = options || {};
223 | let caseInsensitive = !!options.caseInsensitive;
224 | let contains = !!options.contains;
225 |
226 | return deviceByFilter(anumber, 'ANumber', type, caseInsensitive, contains, true);
227 | }
228 |
229 | function deviceByFCCID(fccid, type, options) {
230 | if (typeof fccid !== 'string') {
231 | throw new TypeError('`fccid` parameter must be a string');
232 | }
233 |
234 | options = options || {};
235 | let caseInsensitive = !!options.caseInsensitive;
236 | let contains = !!options.contains;
237 |
238 | return deviceByFilter(fccid, 'FCCID', type, caseInsensitive, contains, true);
239 | }
240 |
241 | function deviceByInternalName(name, type, options) {
242 | if (typeof name !== 'string') {
243 | throw new TypeError('`name` parameter must be a string');
244 | }
245 |
246 | options = options || {};
247 | let caseInsensitive = !!options.caseInsensitive;
248 | let contains = !!options.contains;
249 |
250 | return deviceByFilter(name, 'InternalName', type, caseInsensitive, contains, true);
251 | }
252 |
253 | function deviceByIdentifier(id, type, options) {
254 | if (typeof id !== 'string') {
255 | throw new TypeError('`id` parameter must be a string');
256 | }
257 |
258 | options = options || {};
259 | let caseInsensitive = !!options.caseInsensitive;
260 | let contains = !!options.contains;
261 |
262 | return deviceByFilter(id, 'Identifier', type, caseInsensitive, contains, true);
263 | }
264 |
265 | function deviceByColor(color, type, options) {
266 | if (typeof color !== 'string') {
267 | throw new TypeError('`color` parameter must be a string');
268 | }
269 |
270 | options = options || {};
271 | let caseInsensitive = !!options.caseInsensitive;
272 | let contains = !!options.contains;
273 |
274 | return deviceByFilter(color, 'Color', type, caseInsensitive, contains);
275 | }
276 |
277 | function deviceByStorage(storage, type, options) {
278 | if (typeof storage !== 'string') {
279 | throw new TypeError('`storage` parameter must be a string');
280 | }
281 |
282 | options = options || {};
283 | let caseInsensitive = !!options.caseInsensitive;
284 | let contains = !!options.contains;
285 |
286 | return deviceByFilter(storage, 'Storage', type, caseInsensitive, contains);
287 | }
288 |
289 | function deviceByModel(model, type, options) {
290 | if (typeof model !== 'string') {
291 | throw new TypeError('`model` parameter must be a string');
292 | }
293 |
294 | options = options || {};
295 | let caseInsensitive = !!options.caseInsensitive;
296 | let contains = !!options.contains;
297 |
298 | return deviceByFilter(model, 'Model', type, caseInsensitive, contains);
299 | }
300 |
301 | function deviceByFilter(find, field, type, caseInsensitive, contains, findInArray) {
302 | let list;
303 |
304 | if (type) {
305 | if (deviceTypes().indexOf(type) === -1) {
306 | throw new TypeError('Invalid type parameter');
307 | }
308 | list = all.filter(d => d.Type === type);
309 | } else {
310 | list = all;
311 | }
312 |
313 | return list.filter(device => {
314 | if (!device[field]) {
315 | return false;
316 | }
317 |
318 | let match = false;
319 |
320 | if (typeof device[field] === 'string') {
321 | match = device[field] === find ||
322 | contains && device[field].indexOf(find) !== -1 ||
323 | caseInsensitive && device[field].toLowerCase() === find.toLowerCase() ||
324 | caseInsensitive && contains && device[field].toLowerCase().indexOf(find.toLowerCase()) !== -1;
325 | }
326 |
327 | if (!findInArray) {
328 | return match;
329 | }
330 |
331 | if (match === true) {
332 | return true;
333 | }
334 |
335 | if (findInArray && !Array.isArray(device[field])) {
336 | return false;
337 | }
338 |
339 | let arrMatch = false;
340 |
341 | device[field].forEach(current => {
342 | arrMatch = arrMatch ||
343 | current === find ||
344 | contains && current.indexOf(find) !== -1 ||
345 | caseInsensitive && current.toLowerCase() === find.toLowerCase() ||
346 | caseInsensitive && contains && current.toLowerCase().indexOf(find.toLowerCase()) !== -1;
347 | });
348 |
349 | return arrMatch;
350 | });
351 |
352 | }
353 |
354 | function generationByIdentifier(id, type) {
355 | if (typeof id !== 'string') {
356 | throw new TypeError('`id` parameter must be a string');
357 | }
358 |
359 | let devices = deviceByFilter(id, 'Identifier', type, false, false, true);
360 |
361 | if (devices.length === 0) {
362 | return;
363 | }
364 |
365 | return devices[0].Generation;
366 | }
367 |
368 |
369 |
370 | module.exports = {
371 | deviceTypes, devices,
372 | generations, anumbers, fccids, internalNames, identifiers, colors, storages, models,
373 | deviceByGeneration, deviceByANumber, deviceByFCCID, deviceByInternalName,
374 | deviceByIdentifier, deviceByColor, deviceByStorage, deviceByModel,
375 | generationByIdentifier
376 | };
377 |
--------------------------------------------------------------------------------
/ipad.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "iPad",
4 | "ANumber": "A1219",
5 | "Bootrom": "Bootrom 574.4",
6 | "FCCID": "BCG‑E2381A",
7 | "InternalName": "K48AP",
8 | "Identifier": "iPad1,1",
9 | "Models": [
10 | {
11 | "Color": "Black",
12 | "Storage": "16 GB",
13 | "Model": [ "MB292" ]
14 | },
15 | {
16 | "Color": "Black",
17 | "Storage": "32 GB",
18 | "Model": [ "MB293" ]
19 | },
20 | {
21 | "Color": "Black",
22 | "Storage": "64 GB",
23 | "Model": [ "MB294" ]
24 | }
25 | ]
26 | },
27 | {
28 | "Generation": "iPad",
29 | "ANumber": "A1337",
30 | "Bootrom": "Bootrom 574.4",
31 | "FCCID": "BCG‑E2328A",
32 | "InternalName": "K48AP",
33 | "Identifier": "iPad1,1",
34 | "Models": [
35 | {
36 | "Color": "Black",
37 | "Storage": "16 GB",
38 | "Model": [ "MC349" ]
39 | },
40 | {
41 | "Color": "Black",
42 | "Storage": "32 GB",
43 | "Model": [ "MC496" ]
44 | },
45 | {
46 | "Color": "Black",
47 | "Storage": "64 GB",
48 | "Model": [ "MC497" ]
49 | }
50 | ]
51 | },
52 | {
53 | "Generation": "iPad 2",
54 | "ANumber": "A1395",
55 | "Bootrom": "Bootrom 838.3",
56 | "FCCID": "BCGA1395",
57 | "InternalName": "K93AP",
58 | "Identifier": "iPad2,1",
59 | "Models": [
60 | {
61 | "Color": "Black",
62 | "Storage": "16 GB",
63 | "Model": [ "MC769" ]
64 | },
65 | {
66 | "Color": "Black",
67 | "Storage": "32 GB",
68 | "Model": [ "MC770" ]
69 | },
70 | {
71 | "Color": "Black",
72 | "Storage": "64 GB",
73 | "Model": [ "MC916" ]
74 | },
75 | {
76 | "Color": "White",
77 | "Storage": "16 GB",
78 | "Model": [ "MC979", "MD002" ]
79 | },
80 | {
81 | "Color": "White",
82 | "Storage": "32 GB",
83 | "Model": [ "MC980" ]
84 | },
85 | {
86 | "Color": "White",
87 | "Storage": "64 GB",
88 | "Model": [ "MC981" ]
89 | }
90 | ]
91 | },
92 | {
93 | "Generation": "iPad 2",
94 | "ANumber": "A1396",
95 | "Bootrom": "Bootrom 838.3",
96 | "FCCID": "BCGA1396",
97 | "InternalName": "K94AP",
98 | "Identifier": "iPad2,2",
99 | "Models": [
100 | {
101 | "Color": "Black",
102 | "Storage": "16 GB",
103 | "Model": [ "MC773", "MC957" ]
104 | },
105 | {
106 | "Color": "Black",
107 | "Storage": "32 GB",
108 | "Model": [ "MC774" ]
109 | },
110 | {
111 | "Color": "Black",
112 | "Storage": "64 GB",
113 | "Model": [ "MC775" ]
114 | },
115 | {
116 | "Color": "White",
117 | "Storage": "16 GB",
118 | "Model": [ "MC982", "MC992" ]
119 | },
120 | {
121 | "Color": "White",
122 | "Storage": "32 GB",
123 | "Model": [ "MC983" ]
124 | },
125 | {
126 | "Color": "White",
127 | "Storage": "64 GB",
128 | "Model": [ "MC984" ]
129 | }
130 | ]
131 | },
132 | {
133 | "Generation": "iPad 2",
134 | "ANumber": "A1397",
135 | "Bootrom": "Bootrom 838.3",
136 | "FCCID": "BCGA1397",
137 | "InternalName": "K95AP",
138 | "Identifier": "iPad2,3",
139 | "Models": [
140 | {
141 | "Color": "Black",
142 | "Storage": "16 GB",
143 | "Model": [ "MC755" ]
144 | },
145 | {
146 | "Color": "Black",
147 | "Storage": "32 GB",
148 | "Model": [ "MC763" ]
149 | },
150 | {
151 | "Color": "Black",
152 | "Storage": "64 GB",
153 | "Model": [ "MC764" ]
154 | },
155 | {
156 | "Color": "White",
157 | "Storage": "16 GB",
158 | "Model": [ "MC985" ]
159 | },
160 | {
161 | "Color": "White",
162 | "Storage": "32 GB",
163 | "Model": [ "MC986" ]
164 | },
165 | {
166 | "Color": "White",
167 | "Storage": "64 GB",
168 | "Model": [ "MC987" ]
169 | }
170 | ]
171 | },
172 | {
173 | "Generation": "iPad 2",
174 | "ANumber": "A1395",
175 | "Bootrom": "ROM",
176 | "FCCID": "BCGA1395",
177 | "InternalName": "K93AAP",
178 | "Identifier": "iPad2,4",
179 | "Models": [
180 | {
181 | "Color": "Black",
182 | "Storage": "16 GB",
183 | "Model": [ "MC954", "MC960", "MC988" ]
184 | },
185 | {
186 | "Color": "White",
187 | "Storage": "16 GB",
188 | "Model": [ "MC989" ]
189 | }
190 | ]
191 | },
192 | {
193 | "Generation": "iPad (3rd generation)",
194 | "ANumber": "A1416",
195 | "Bootrom": "Bootrom 1062.2",
196 | "FCCID": "BCGA1416",
197 | "InternalName": "J1AP",
198 | "Identifier": "iPad3,1",
199 | "Models": [
200 | {
201 | "Color": "Black",
202 | "Storage": "16 GB",
203 | "Model": [ "MC705", "MD333" ]
204 | },
205 | {
206 | "Color": "Black",
207 | "Storage": "32 GB",
208 | "Model": [ "MC706", "MD334" ]
209 | },
210 | {
211 | "Color": "Black",
212 | "Storage": "64 GB",
213 | "Model": [ "MC707", "MD335" ]
214 | },
215 | {
216 | "Color": "White",
217 | "Storage": "16 GB",
218 | "Model": [ "MD328", "MD336" ]
219 | },
220 | {
221 | "Color": "White",
222 | "Storage": "32 GB",
223 | "Model": [ "MD329", "MD337" ]
224 | },
225 | {
226 | "Color": "White",
227 | "Storage": "64 GB",
228 | "Model": [ "MD330", "MD338" ]
229 | }
230 | ]
231 | },
232 | {
233 | "Generation": "iPad (3rd generation)",
234 | "ANumber": "A1403",
235 | "Bootrom": "Bootrom 1062.2",
236 | "FCCID": "BCGA1403",
237 | "InternalName": "J2AP",
238 | "Identifier": "iPad3,2",
239 | "Models": [
240 | {
241 | "Color": "Black",
242 | "Storage": "16 GB",
243 | "Model": [ "MC733" ]
244 | },
245 | {
246 | "Color": "Black",
247 | "Storage": "32 GB",
248 | "Model": [ "MC744" ]
249 | },
250 | {
251 | "Color": "Black",
252 | "Storage": "64 GB",
253 | "Model": [ "MC756" ]
254 | },
255 | {
256 | "Color": "White",
257 | "Storage": "16 GB",
258 | "Model": [ "MD363" ]
259 | },
260 | {
261 | "Color": "White",
262 | "Storage": "32 GB",
263 | "Model": [ "MD364" ]
264 | },
265 | {
266 | "Color": "White",
267 | "Storage": "64 GB",
268 | "Model": [ "MD365" ]
269 | }
270 | ]
271 | },
272 | {
273 | "Generation": "iPad (3rd generation)",
274 | "ANumber": "A1430",
275 | "Bootrom": "Bootrom 1062.2",
276 | "FCCID": "BCGA1430",
277 | "InternalName": "J2AAP",
278 | "Identifier": "iPad3,3",
279 | "Models": [
280 | {
281 | "Color": "Black",
282 | "Storage": "16 GB",
283 | "Model": [ "MD366", "MD404" ]
284 | },
285 | {
286 | "Color": "Black",
287 | "Storage": "32 GB",
288 | "Model": [ "MD367", "MD405" ]
289 | },
290 | {
291 | "Color": "Black",
292 | "Storage": "64 GB",
293 | "Model": [ "MD368", "MD406" ]
294 | },
295 | {
296 | "Color": "White",
297 | "Storage": "16 GB",
298 | "Model": [ "MD369", "MD407" ]
299 | },
300 | {
301 | "Color": "White",
302 | "Storage": "32 GB",
303 | "Model": [ "MD370", "MD408" ]
304 | },
305 | {
306 | "Color": "White",
307 | "Storage": "64 GB",
308 | "Model": [ "MD371", "MD409" ]
309 | }
310 | ]
311 | },
312 | {
313 | "Generation": "iPad (4th generation)",
314 | "ANumber": "A1458",
315 | "Bootrom": "Bootrom 1145.3.3",
316 | "FCCID": "BCGA1458",
317 | "InternalName": "P101AP",
318 | "Identifier": "iPad3,4",
319 | "Models": [
320 | {
321 | "Color": "Black",
322 | "Storage": "16 GB",
323 | "Model": [ "MD510" ]
324 | },
325 | {
326 | "Color": "Black",
327 | "Storage": "32 GB",
328 | "Model": [ "MD511" ]
329 | },
330 | {
331 | "Color": "Black",
332 | "Storage": "64 GB",
333 | "Model": [ "MD512" ]
334 | },
335 | {
336 | "Color": "Black",
337 | "Storage": "128 GB",
338 | "Model": [ "ME392" ]
339 | },
340 | {
341 | "Color": "White",
342 | "Storage": "16 GB",
343 | "Model": [ "MD513" ]
344 | },
345 | {
346 | "Color": "White",
347 | "Storage": "32 GB",
348 | "Model": [ "MD514" ]
349 | },
350 | {
351 | "Color": "White",
352 | "Storage": "64 GB",
353 | "Model": [ "MD515" ]
354 | },
355 | {
356 | "Color": "White",
357 | "Storage": "128 GB",
358 | "Model": [ "ME393" ]
359 | }
360 | ]
361 | },
362 | {
363 | "Generation": "iPad (4th generation)",
364 | "ANumber": "A1459",
365 | "Bootrom": "Bootrom 1145.3.3",
366 | "FCCID": "BCGA1459",
367 | "InternalName": "P102AP",
368 | "Identifier": "iPad3,5",
369 | "Models": [
370 | {
371 | "Color": "Black",
372 | "Storage": "16 GB",
373 | "Model": [ "MD516", "MG932" ]
374 | },
375 | {
376 | "Color": "Black",
377 | "Storage": "32 GB",
378 | "Model": [ "MD517" ]
379 | },
380 | {
381 | "Color": "Black",
382 | "Storage": "64 GB",
383 | "Model": [ "MD518", "MD944" ]
384 | },
385 | {
386 | "Color": "Black",
387 | "Storage": "128 GB",
388 | "Model": [ "ME400" ]
389 | },
390 | {
391 | "Color": "White",
392 | "Storage": "16 GB",
393 | "Model": [ "MD519", "MG942" ]
394 | },
395 | {
396 | "Color": "White",
397 | "Storage": "32 GB",
398 | "Model": [ "MD520" ]
399 | },
400 | {
401 | "Color": "White",
402 | "Storage": "64 GB",
403 | "Model": [ "MD521" ]
404 | },
405 | {
406 | "Color": "White",
407 | "Storage": "128 GB",
408 | "Model": [ "ME401" ]
409 | }
410 | ]
411 | },
412 | {
413 | "Generation": "iPad (4th generation)",
414 | "ANumber": "A1460",
415 | "Bootrom": "Bootrom 1145.3.3",
416 | "FCCID": "BCGA1460",
417 | "InternalName": "P103AP",
418 | "Identifier": "iPad3,6",
419 | "Models": [
420 | {
421 | "Color": "Black",
422 | "Storage": "16 GB",
423 | "Model": [ "MD522", "ME195" ]
424 | },
425 | {
426 | "Color": "Black",
427 | "Storage": "32 GB",
428 | "Model": [ "MD523", "ME196" ]
429 | },
430 | {
431 | "Color": "Black",
432 | "Storage": "64 GB",
433 | "Model": [ "MD524", "ME197" ]
434 | },
435 | {
436 | "Color": "Black",
437 | "Storage": "128 GB",
438 | "Model": [ "ME406", "ME410" ]
439 | },
440 | {
441 | "Color": "White",
442 | "Storage": "16 GB",
443 | "Model": [ "MD525", "ME198" ]
444 | },
445 | {
446 | "Color": "White",
447 | "Storage": "32 GB",
448 | "Model": [ "MD526", "ME199" ]
449 | },
450 | {
451 | "Color": "White",
452 | "Storage": "64 GB",
453 | "Model": [ "MD527", "ME200" ]
454 | },
455 | {
456 | "Color": "White",
457 | "Storage": "128 GB",
458 | "Model": [ "ME407", "ME411" ]
459 | }
460 | ]
461 | },
462 | {
463 | "Generation": "iPad (5th generation)",
464 | "ANumber": "A1822",
465 | "Bootrom": "Bootrom 2234.0.0.3.3",
466 | "FCCID": "BCGA1822",
467 | "InternalName": [ "J71sAP", "J71tAP" ],
468 | "Identifier": "iPad6,11",
469 | "Models": [
470 | {
471 | "Color": "Gold",
472 | "Storage": "32 GB",
473 | "Model": [ "MPGT2" ]
474 | },
475 | {
476 | "Color": "Gold",
477 | "Storage": "128 GB",
478 | "Model": [ "MPGW2" ]
479 | },
480 | {
481 | "Color": "Silver",
482 | "Storage": "32 GB",
483 | "Model": [ "MP2G2" ]
484 | },
485 | {
486 | "Color": "Silver",
487 | "Storage": "128 GB",
488 | "Model": [ "MP2J2" ]
489 | },
490 | {
491 | "Color": "Space Gray",
492 | "Storage": "32 GB",
493 | "Model": [ "MP2F2" ]
494 | },
495 | {
496 | "Color": "Space Gray",
497 | "Storage": "128 GB",
498 | "Model": [ "MP2H2" ]
499 | }
500 | ]
501 | },
502 | {
503 | "Generation": "iPad (5th generation)",
504 | "ANumber": "A1823",
505 | "Bootrom": "Bootrom 2234.0.0.3.3",
506 | "FCCID": "BCGA1823",
507 | "InternalName": [ "J72sAP", "J72tAP" ],
508 | "Identifier": "iPad6,12",
509 | "Models": [
510 | {
511 | "Color": "Gold",
512 | "Storage": "32 GB",
513 | "Model": [ "MPG42", "MPGA2" ]
514 | },
515 | {
516 | "Color": "Gold",
517 | "Storage": "128 GB",
518 | "Model": [ "MPG52", "MPGC2" ]
519 | },
520 | {
521 | "Color": "Silver",
522 | "Storage": "32 GB",
523 | "Model": [ "MP1L2", "MP252" ]
524 | },
525 | {
526 | "Color": "Silver",
527 | "Storage": "128 GB",
528 | "Model": [ "MP272", "MP2E2" ]
529 | },
530 | {
531 | "Color": "Space Gray",
532 | "Storage": "32 GB",
533 | "Model": [ "MP1J2", "MP242" ]
534 | },
535 | {
536 | "Color": "Space Gray",
537 | "Storage": "128 GB",
538 | "Model": [ "MP262", "MP2D2" ]
539 | }
540 | ]
541 | },
542 | {
543 | "Generation": "iPad (6th generation)",
544 | "ANumber": "A1893",
545 | "Bootrom": "Bootrom 2696.0.0.1.33",
546 | "FCCID": "BCGA1893",
547 | "InternalName": "J71bAP",
548 | "Identifier": "iPad7,5",
549 | "Models": [
550 | {
551 | "Color": "Gold",
552 | "Storage": "32 GB",
553 | "Model": [ "MRJN2" ]
554 | },
555 | {
556 | "Color": "Gold",
557 | "Storage": "128 GB",
558 | "Model": [ "MRJP2" ]
559 | },
560 | {
561 | "Color": "Silver",
562 | "Storage": "32 GB",
563 | "Model": [ "MR7G2" ]
564 | },
565 | {
566 | "Color": "Silver",
567 | "Storage": "128 GB",
568 | "Model": [ "MR7K2" ]
569 | },
570 | {
571 | "Color": "Space Gray",
572 | "Storage": "32 GB",
573 | "Model": [ "MR7F2" ]
574 | },
575 | {
576 | "Color": "Space Gray",
577 | "Storage": "128 GB",
578 | "Model": [ "MR7J2" ]
579 | }
580 | ]
581 | },
582 | {
583 | "Generation": "iPad (6th generation)",
584 | "ANumber": "A1954",
585 | "Bootrom": "Bootrom 2696.0.0.1.33",
586 | "FCCID": "BCGA1954",
587 | "InternalName": "J72bAP",
588 | "Identifier": "iPad7,6",
589 | "Models": [
590 | {
591 | "Color": "Gold",
592 | "Storage": "32 GB",
593 | "Model": [ "MRM52" ]
594 | },
595 | {
596 | "Color": "Gold",
597 | "Storage": "128 GB",
598 | "Model": [ "MRM82" ]
599 | },
600 | {
601 | "Color": "Silver",
602 | "Storage": "32 GB",
603 | "Model": [ "MR702" ]
604 | },
605 | {
606 | "Color": "Silver",
607 | "Storage": "128 GB",
608 | "Model": [ "MR7D2" ]
609 | },
610 | {
611 | "Color": "Space Gray",
612 | "Storage": "32 GB",
613 | "Model": [ "MR6Y2" ]
614 | },
615 | {
616 | "Color": "Space Gray",
617 | "Storage": "128 GB",
618 | "Model": [ "MR7C2" ]
619 | }
620 | ]
621 | },
622 | {
623 | "Generation": "iPad (7th generation)",
624 | "ANumber": "A2197",
625 | "Bootrom": "Bootrom 2696.0.0.1.33",
626 | "FCCID": "BCGA2197",
627 | "InternalName": "J171AP",
628 | "Identifier": "iPad7,11",
629 | "Models": [
630 | {
631 | "Color": "Gold",
632 | "Storage": "32 GB",
633 | "Model": [ "MW762" ]
634 | },
635 | {
636 | "Color": "Gold",
637 | "Storage": "128 GB",
638 | "Model": [ "MW792" ]
639 | },
640 | {
641 | "Color": "Silver",
642 | "Storage": "32 GB",
643 | "Model": [ "MW752" ]
644 | },
645 | {
646 | "Color": "Silver",
647 | "Storage": "128 GB",
648 | "Model": [ "MW782" ]
649 | },
650 | {
651 | "Color": "Space Gray",
652 | "Storage": "32 GB",
653 | "Model": [ "MW742" ]
654 | },
655 | {
656 | "Color": "Space Gray",
657 | "Storage": "128 GB",
658 | "Model": [ "MW772" ]
659 | }
660 | ]
661 | },
662 | {
663 | "Generation": "iPad (7th generation)",
664 | "ANumber": [ "A2198", "A2200" ],
665 | "Bootrom": "Bootrom 2696.0.0.1.33",
666 | "FCCID": [ "BCGA2198", "BCGA2200" ],
667 | "InternalName": "J172AP",
668 | "Identifier": "iPad7,12",
669 | "Models": [
670 | {
671 | "Color": "Gold",
672 | "Storage": "32 GB",
673 | "Model": [ "MW6D2", "MW6R2", "MW6Y2" ]
674 | },
675 | {
676 | "Color": "Gold",
677 | "Storage": "128 GB",
678 | "Model": [ "MW6G2", "MW6V2", "MW722" ]
679 | },
680 | {
681 | "Color": "Silver",
682 | "Storage": "32 GB",
683 | "Model": [ "MW6C2", "MW6Q2", "MW6X2" ]
684 | },
685 | {
686 | "Color": "Silver",
687 | "Storage": "128 GB",
688 | "Model": [ "MW6F2", "MW6U2", "MW712" ]
689 | },
690 | {
691 | "Color": "Space Gray",
692 | "Storage": "32 GB",
693 | "Model": [ "MW6A2", "MW6P2", "MW6W2" ]
694 | },
695 | {
696 | "Color": "Space Gray",
697 | "Storage": "128 GB",
698 | "Model": [ "MW6E2", "MW6T2", "MW702" ]
699 | }
700 | ]
701 | },
702 | {
703 | "Generation": "iPad (8th generation)",
704 | "ANumber": "A2270",
705 | "FCCID": "BCGA2270",
706 | "InternalName": "J171aAP",
707 | "Identifier": "iPad11,6",
708 | "Models": [
709 | {
710 | "Color": "Gold",
711 | "Storage": "32 GB",
712 | "Model": [ "MYLC2" ]
713 | },
714 | {
715 | "Color": "Gold",
716 | "Storage": "128 GB",
717 | "Model": [ "MYLF2" ]
718 | },
719 | {
720 | "Color": "Silver",
721 | "Storage": "32 GB",
722 | "Model": [ "MYLA2" ]
723 | },
724 | {
725 | "Color": "Silver",
726 | "Storage": "128 GB",
727 | "Model": [ "MYLE2" ]
728 | },
729 | {
730 | "Color": "Space Gray",
731 | "Storage": "32 GB",
732 | "Model": [ "MYL92" ]
733 | },
734 | {
735 | "Color": "Space Gray",
736 | "Storage": "128 GB",
737 | "Model": [ "MYLD2" ]
738 | }
739 | ]
740 | },
741 | {
742 | "Generation": "iPad (8th generation)",
743 | "ANumber": [ "A2428", "A2429", "A2430" ],
744 | "FCCID": [ "BCGA2428", "BCGA2429" ],
745 | "InternalName": "J172aAP",
746 | "Identifier": "iPad11,7",
747 | "Models": [
748 | {
749 | "Color": "Gold",
750 | "Storage": "32 GB",
751 | "Model": [ "MYMK2", "MYN62" ]
752 | },
753 | {
754 | "Color": "Gold",
755 | "Storage": "128 GB",
756 | "Model": [ "MYMN2", "MYN92" ]
757 | },
758 | {
759 | "Color": "Silver",
760 | "Storage": "32 GB",
761 | "Model": [ "MYMJ2", "MYN52" ]
762 | },
763 | {
764 | "Color": "Silver",
765 | "Storage": "128 GB",
766 | "Model": [ "MYMM2", "MYN82" ]
767 | },
768 | {
769 | "Color": "Space Gray",
770 | "Storage": "32 GB",
771 | "Model": [ "MYMH2", "MYN32" ]
772 | },
773 | {
774 | "Color": "Space Gray",
775 | "Storage": "128 GB",
776 | "Model": [ "MYML2", "MYN72" ]
777 | }
778 | ]
779 | },
780 | {
781 | "Generation": "iPad (9th generation)",
782 | "ANumber": [ "A2602" ],
783 | "FCCID": [ ],
784 | "InternalName": "J181AP",
785 | "Identifier": "iPad12,1",
786 | "Models": [
787 | {
788 | "Color": "Silver",
789 | "Storage": "64 GB",
790 | "Model": [ "MK2L3" ]
791 | },
792 | {
793 | "Color": "Silver",
794 | "Storage": "256 GB",
795 | "Model": [ "MK2P3" ]
796 | },
797 | {
798 | "Color": "Space Gray",
799 | "Storage": "64 GB",
800 | "Model": [ "MK2K3" ]
801 | },
802 | {
803 | "Color": "Space Gray",
804 | "Storage": "256 GB",
805 | "Model": [ "MK2N3" ]
806 | }
807 | ]
808 | },
809 | {
810 | "Generation": "iPad (9th generation)",
811 | "ANumber": [ "A2603", "A2604", "A2605" ],
812 | "FCCID": [ "BCGA2603", "BCGA2604", "BCGA2605" ],
813 | "InternalName": "J182AP",
814 | "Identifier": "iPad12,2",
815 | "Models": [
816 | {
817 | "Color": "Silver",
818 | "Storage": "64 GB",
819 | "Model": [ "MK493", "MK673" ]
820 | },
821 | {
822 | "Color": "Silver",
823 | "Storage": "256 GB",
824 | "Model": [ "MK4H3", "MK6A3" ]
825 | },
826 | {
827 | "Color": "Space Gray",
828 | "Storage": "64 GB",
829 | "Model": [ "MK473", "MK663" ]
830 | },
831 | {
832 | "Color": "Space Gray",
833 | "Storage": "256 GB",
834 | "Model": [ "MK4E3", "MK693" ]
835 | }
836 | ]
837 | }
838 | ]
839 |
--------------------------------------------------------------------------------
/ipad_air.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "iPad Air",
4 | "ANumber": "A1474",
5 | "Bootrom": "Bootrom 1704.10",
6 | "FCCID": "BCGA1474",
7 | "InternalName": "J71AP",
8 | "Identifier": "iPad4,1",
9 | "Models": [
10 | {
11 | "Color": "Silver",
12 | "Storage": "16 GB",
13 | "Model": [ "MD788" ]
14 | },
15 | {
16 | "Color": "Silver",
17 | "Storage": "32 GB",
18 | "Model": [ "MD789" ]
19 | },
20 | {
21 | "Color": "Silver",
22 | "Storage": "64 GB",
23 | "Model": [ "MD790" ]
24 | },
25 | {
26 | "Color": "Silver",
27 | "Storage": "128 GB",
28 | "Model": [ "ME906" ]
29 | },
30 | {
31 | "Color": "Space Gray",
32 | "Storage": "16 GB",
33 | "Model": [ "MD785" ]
34 | },
35 | {
36 | "Color": "Space Gray",
37 | "Storage": "32 GB",
38 | "Model": [ "MD786" ]
39 | },
40 | {
41 | "Color": "Space Gray",
42 | "Storage": "64 GB",
43 | "Model": [ "MD787" ]
44 | },
45 | {
46 | "Color": "Space Gray",
47 | "Storage": "128 GB",
48 | "Model": [ "ME898" ]
49 | }
50 | ]
51 | },
52 | {
53 | "Generation": "iPad Air",
54 | "ANumber": "A1475",
55 | "Bootrom": "Bootrom 1704.10",
56 | "FCCID": "BCGA1475",
57 | "InternalName": "J72AP",
58 | "Identifier": "iPad4,2",
59 | "Models": [
60 | {
61 | "Color": "Silver",
62 | "Storage": "16 GB",
63 | "Model": [ "MD794", "ME997", "ME999", "MF021", "MF502" ]
64 | },
65 | {
66 | "Color": "Silver",
67 | "Storage": "32 GB",
68 | "Model": [ "MD795", "MF025", "MF527", "MF529", "MF532" ]
69 | },
70 | {
71 | "Color": "Silver",
72 | "Storage": "64 GB",
73 | "Model": [ "MD796", "MF012", "MF013", "MF027", "MF539" ]
74 | },
75 | {
76 | "Color": "Silver",
77 | "Storage": "128 GB",
78 | "Model": [ "ME988", "MF018", "MF019", "MF029", "MF563" ]
79 | },
80 | {
81 | "Color": "Space Gray",
82 | "Storage": "16 GB",
83 | "Model": [ "MD791", "ME991", "ME993", "MF020", "MF496" ]
84 | },
85 | {
86 | "Color": "Space Gray",
87 | "Storage": "32 GB",
88 | "Model": [ "MD792", "MF003", "MF004", "MF024", "MF520" ]
89 | },
90 | {
91 | "Color": "Space Gray",
92 | "Storage": "64 GB",
93 | "Model": [ "MD793", "MF009", "MF010", "MF026", "MF534" ]
94 | },
95 | {
96 | "Color": "Space Gray",
97 | "Storage": "128 GB",
98 | "Model": [ "ME987", "MF015", "MF016", "MF028", "MF558" ]
99 | }
100 | ]
101 | },
102 | {
103 | "Generation": "iPad Air",
104 | "ANumber": "A1476",
105 | "Bootrom": "Bootrom 1704.10",
106 | "FCCID": "BCGA1476",
107 | "InternalName": "J73AP",
108 | "Identifier": "iPad4,3",
109 | "Models": [
110 | {
111 | "Color": "Silver",
112 | "Storage": "16 GB",
113 | "Model": [ "MF230" ]
114 | },
115 | {
116 | "Color": "Silver",
117 | "Storage": "32 GB",
118 | "Model": [ "MF233" ]
119 | },
120 | {
121 | "Color": "Silver",
122 | "Storage": "64 GB",
123 | "Model": [ "MF234" ]
124 | },
125 | {
126 | "Color": "Silver",
127 | "Storage": "128 GB",
128 | "Model": [ "MF236" ]
129 | },
130 | {
131 | "Color": "Space Gray",
132 | "Storage": "16 GB",
133 | "Model": [ "MD797" ]
134 | },
135 | {
136 | "Color": "Space Gray",
137 | "Storage": "32 GB",
138 | "Model": [ "MD798" ]
139 | },
140 | {
141 | "Color": "Space Gray",
142 | "Storage": "64 GB",
143 | "Model": [ "MD799" ]
144 | },
145 | {
146 | "Color": "Space Gray",
147 | "Storage": "128 GB",
148 | "Model": [ "MF235" ]
149 | }
150 | ]
151 | },
152 | {
153 | "Generation": "iPad Air 2",
154 | "ANumber": "A1566",
155 | "Bootrom": "Bootrom 1991.0.0.2.16",
156 | "FCCID": "BCGA1566",
157 | "InternalName": "J81AP",
158 | "Identifier": "iPad5,3",
159 | "Models": [
160 | {
161 | "Color": "Gold",
162 | "Storage": "16 GB",
163 | "Model": [ "MH0W2" ]
164 | },
165 | {
166 | "Color": "Gold",
167 | "Storage": "32 GB",
168 | "Model": [ "MNV72" ]
169 | },
170 | {
171 | "Color": "Gold",
172 | "Storage": "64 GB",
173 | "Model": [ "MH182" ]
174 | },
175 | {
176 | "Color": "Gold",
177 | "Storage": "128 GB",
178 | "Model": [ "MH1J2" ]
179 | },
180 | {
181 | "Color": "Silver",
182 | "Storage": "16 GB",
183 | "Model": [ "MGLW2" ]
184 | },
185 | {
186 | "Color": "Silver",
187 | "Storage": "32 GB",
188 | "Model": [ "MNV62" ]
189 | },
190 | {
191 | "Color": "Silver",
192 | "Storage": "64 GB",
193 | "Model": [ "MGKM2" ]
194 | },
195 | {
196 | "Color": "Silver",
197 | "Storage": "128 GB",
198 | "Model": [ "MGTY2" ]
199 | },
200 | {
201 | "Color": "Space Gray",
202 | "Storage": "16 GB",
203 | "Model": [ "MGL12" ]
204 | },
205 | {
206 | "Color": "Space Gray",
207 | "Storage": "32 GB",
208 | "Model": [ "MNV22" ]
209 | },
210 | {
211 | "Color": "Space Gray",
212 | "Storage": "64 GB",
213 | "Model": [ "MGKL2" ]
214 | },
215 | {
216 | "Color": "Space Gray",
217 | "Storage": "128 GB",
218 | "Model": [ "MGTX2" ]
219 | }
220 | ]
221 | },
222 | {
223 | "Generation": "iPad Air 2",
224 | "ANumber": "A1567",
225 | "Bootrom": "Bootrom 1991.0.0.2.16",
226 | "FCCID": "BCGA1567",
227 | "InternalName": "J82AP",
228 | "Identifier": "iPad5,4",
229 | "Models": [
230 | {
231 | "Color": "Gold",
232 | "Storage": "16 GB",
233 | "Model": [ "MH1C2", "MH2W2" ]
234 | },
235 | {
236 | "Color": "Gold",
237 | "Storage": "32 GB",
238 | "Model": [ "MNW32" ]
239 | },
240 | {
241 | "Color": "Gold",
242 | "Storage": "64 GB",
243 | "Model": [ "MH2P2", "MH172", "MHWP2" ]
244 | },
245 | {
246 | "Color": "Gold",
247 | "Storage": "128 GB",
248 | "Model": [ "MH1G2", "MH2D2", "MH332" ]
249 | },
250 | {
251 | "Color": "Silver",
252 | "Storage": "16 GB",
253 | "Model": [ "MGHC2", "MH2V2" ]
254 | },
255 | {
256 | "Color": "Silver",
257 | "Storage": "32 GB",
258 | "Model": [ "MNW22" ]
259 | },
260 | {
261 | "Color": "Silver",
262 | "Storage": "64 GB",
263 | "Model": [ "MGHY2", "MGK02", "MH2N2" ]
264 | },
265 | {
266 | "Color": "Silver",
267 | "Storage": "128 GB",
268 | "Model": [ "MGWM2", "MH322" ]
269 | },
270 | {
271 | "Color": "Space Gray",
272 | "Storage": "16 GB",
273 | "Model": [ "MGGX2", "MGH62", "MH2U2" ]
274 | },
275 | {
276 | "Color": "Space Gray",
277 | "Storage": "32 GB",
278 | "Model": [ "MNW12" ]
279 | },
280 | {
281 | "Color": "Space Gray",
282 | "Storage": "64 GB",
283 | "Model": [ "MGHX2", "MGJY2", "MH2M2" ]
284 | },
285 | {
286 | "Color": "Space Gray",
287 | "Storage": "128 GB",
288 | "Model": [ "MGWL2", "MH312" ]
289 | }
290 | ]
291 | },
292 | {
293 | "Generation": "iPad Air (3rd generation)",
294 | "ANumber": "A2152",
295 | "Bootrom": "Bootrom 3865.0.0.4.7",
296 | "FCCID": "BCGA2152",
297 | "InternalName": "J217AP",
298 | "Identifier": "iPad11,3",
299 | "Models": [
300 | {
301 | "Color": "Gold",
302 | "Storage": "64 GB",
303 | "Model": [ "MUUL2" ]
304 | },
305 | {
306 | "Color": "Gold",
307 | "Storage": "256 GB",
308 | "Model": [ "MUUT2" ]
309 | },
310 | {
311 | "Color": "Silver",
312 | "Storage": "64 GB",
313 | "Model": [ "MUUK2" ]
314 | },
315 | {
316 | "Color": "Silver",
317 | "Storage": "256 GB",
318 | "Model": [ "MUUR2" ]
319 | },
320 | {
321 | "Color": "Space Gray",
322 | "Storage": "64 GB",
323 | "Model": [ "MUUJ2" ]
324 | },
325 | {
326 | "Color": "Space Gray",
327 | "Storage": "256 GB",
328 | "Model": [ "MUUQ2" ]
329 | }
330 | ]
331 | },
332 | {
333 | "Generation": "iPad Air (3rd generation)",
334 | "ANumber": [ "A2123", "A2153", "A2154" ],
335 | "Bootrom": "Bootrom 3865.0.0.4.7",
336 | "FCCID": [ "BCGA2123", "BCGA2153" ],
337 | "InternalName": "J218AP",
338 | "Identifier": "iPad11,4",
339 | "Models": [
340 | {
341 | "Color": "Gold",
342 | "Storage": "64 GB",
343 | "Model": [ "MV172", "MV0F2" ]
344 | },
345 | {
346 | "Color": "Gold",
347 | "Storage": "256 GB",
348 | "Model": [ "MV1G2", "MV0Q2" ]
349 | },
350 | {
351 | "Color": "Silver",
352 | "Storage": "64 GB",
353 | "Model": [ "MV162", "MV0E2" ]
354 | },
355 | {
356 | "Color": "Silver",
357 | "Storage": "256 GB",
358 | "Model": [ "MV1F2", "MV0P2" ]
359 | },
360 | {
361 | "Color": "Space Gray",
362 | "Storage": "64 GB",
363 | "Model": [ "MV152", "MV0D2" ]
364 | },
365 | {
366 | "Color": "Space Gray",
367 | "Storage": "256 GB",
368 | "Model": [ "MV1D2", "MV0N2" ]
369 | }
370 | ]
371 | },
372 | {
373 | "Generation": "iPad Air (4th generation)",
374 | "ANumber": [ "A2316" ],
375 | "Bootrom": "Bootrom 5281.0.0.100.45",
376 | "FCCID": [ "BCGA2316" ],
377 | "InternalName": "J307AP",
378 | "Identifier": "iPad13,1",
379 | "Models": [
380 | {
381 | "Color": "Rose Gold",
382 | "Storage": "64 GB",
383 | "Model": [ "MYFP2" ]
384 | },
385 | {
386 | "Color": "Rose Gold",
387 | "Storage": "256 GB",
388 | "Model": [ "MYFX2" ]
389 | },
390 | {
391 | "Color": "Silver",
392 | "Storage": "64 GB",
393 | "Model": [ "MYFN2" ]
394 | },
395 | {
396 | "Color": "Silver",
397 | "Storage": "256 GB",
398 | "Model": [ "MYFW2" ]
399 | },
400 | {
401 | "Color": "Space Gray",
402 | "Storage": "64 GB",
403 | "Model": [ "MYFM2" ]
404 | },
405 | {
406 | "Color": "Space Gray",
407 | "Storage": "256 GB",
408 | "Model": [ "MYFT2" ]
409 | },
410 | {
411 | "Color": "Green",
412 | "Storage": "64 GB",
413 | "Model": [ "MYFR2" ]
414 | },
415 | {
416 | "Color": "Green",
417 | "Storage": "256 GB",
418 | "Model": [ "MYG02" ]
419 | },
420 | {
421 | "Color": "Sky Blue",
422 | "Storage": "64 GB",
423 | "Model": [ "MYFQ2" ]
424 | },
425 | {
426 | "Color": "Sky Blue",
427 | "Storage": "256 GB",
428 | "Model": [ "MYFY2" ]
429 | }
430 | ]
431 | },
432 | {
433 | "Generation": "iPad Air (4th generation)",
434 | "ANumber": [ "A2324", "A2325", "A2072" ],
435 | "Bootrom": "Bootrom 5281.0.0.100.45",
436 | "FCCID": [ "BCGA2324", "BCGA2072" ],
437 | "InternalName": "J308AP",
438 | "Identifier": "iPad13,2",
439 | "Models": [
440 | {
441 | "Color": "Rose Gold",
442 | "Storage": "64 GB",
443 | "Model": [ "MYGY2", "MYJ02" ]
444 | },
445 | {
446 | "Color": "Rose Gold",
447 | "Storage": "256 GB",
448 | "Model": [ "MYH52", "MYJ52" ]
449 | },
450 | {
451 | "Color": "Silver",
452 | "Storage": "64 GB",
453 | "Model": [ "MYGX2", "MYHY2" ]
454 | },
455 | {
456 | "Color": "Silver",
457 | "Storage": "256 GB",
458 | "Model": [ "MYH42", "MYJ42" ]
459 | },
460 | {
461 | "Color": "Space Gray",
462 | "Storage": "64 GB",
463 | "Model": [ "MYGW2", "MYHX2" ]
464 | },
465 | {
466 | "Color": "Space Gray",
467 | "Storage": "256 GB",
468 | "Model": [ "MYH22", "MYJ32" ]
469 | },
470 | {
471 | "Color": "Green",
472 | "Storage": "64 GB",
473 | "Model": [ "MYH12", "MYJ22" ]
474 | },
475 | {
476 | "Color": "Green",
477 | "Storage": "256 GB",
478 | "Model": [ "MYH72", "MYJ72" ]
479 | },
480 | {
481 | "Color": "Sky Blue",
482 | "Storage": "64 GB",
483 | "Model": [ "MYH02", "MYJ12" ]
484 | },
485 | {
486 | "Color": "Sky Blue",
487 | "Storage": "256 GB",
488 | "Model": [ "MYH62", "MYJ62" ]
489 | }
490 | ]
491 | },
492 | {
493 | "Generation": "iPad Air (5th generation)",
494 | "ANumber": [ "A2588" ],
495 | "Bootrom": "",
496 | "FCCID": [ ],
497 | "InternalName": "J407AP",
498 | "Identifier": "iPad13,16",
499 | "Models": [
500 | {
501 | "Color": "Space Gray",
502 | "Storage": "64 GB",
503 | "Model": [ "MM9C3" ]
504 | },
505 | {
506 | "Color": "Space Gray",
507 | "Storage": "256 GB",
508 | "Model": [ "MM9L3" ]
509 | },
510 | {
511 | "Color": "Pink",
512 | "Storage": "64 GB",
513 | "Model": [ "MM9D3" ]
514 | },
515 | {
516 | "Color": "Pink",
517 | "Storage": "256 GB",
518 | "Model": [ "MM9M3" ]
519 | },
520 | {
521 | "Color": "Purple",
522 | "Storage": "64 GB",
523 | "Model": [ "MME23" ]
524 | },
525 | {
526 | "Color": "Purple",
527 | "Storage": "256 GB",
528 | "Model": [ "MME63" ]
529 | },
530 | {
531 | "Color": "Blue",
532 | "Storage": "64 GB",
533 | "Model": [ "MM9E3" ]
534 | },
535 | {
536 | "Color": "Blue",
537 | "Storage": "256 GB",
538 | "Model": [ "MM9N3" ]
539 | },
540 | {
541 | "Color": "Starlight",
542 | "Storage": "64 GB",
543 | "Model": [ "MM9F3" ]
544 | },
545 | {
546 | "Color": "Starlight",
547 | "Storage": "256 GB",
548 | "Model": [ "MM9P3" ]
549 | }
550 | ]
551 | },
552 | {
553 | "Generation": "iPad Air (5th generation)",
554 | "ANumber": [ "A2589", "A2591" ],
555 | "Bootrom": "",
556 | "FCCID": [ ],
557 | "InternalName": "J408AP",
558 | "Identifier": "iPad13,17",
559 | "Models": [
560 | {
561 | "Color": "Space Gray",
562 | "Storage": "64 GB",
563 | "Model": [ "MM6R3", "MM753" ]
564 | },
565 | {
566 | "Color": "Space Gray",
567 | "Storage": "256 GB",
568 | "Model": [ "MM713", "MM7E3" ]
569 | },
570 | {
571 | "Color": "Pink",
572 | "Storage": "64 GB",
573 | "Model": [ "MM6T3", "MM9M3" ]
574 | },
575 | {
576 | "Color": "Pink",
577 | "Storage": "256 GB",
578 | "Model": [ "MM723", "MM7F3" ]
579 | },
580 | {
581 | "Color": "Purple",
582 | "Storage": "64 GB",
583 | "Model": [ "MME93", "MME23" ]
584 | },
585 | {
586 | "Color": "Purple",
587 | "Storage": "256 GB",
588 | "Model": [ "MMED3", "MME63" ]
589 | },
590 | {
591 | "Color": "Blue",
592 | "Storage": "64 GB",
593 | "Model": [ "MM6U3", "MM773" ]
594 | },
595 | {
596 | "Color": "Blue",
597 | "Storage": "256 GB",
598 | "Model": [ "MM733", "MM7G3" ]
599 | },
600 | {
601 | "Color": "Starlight",
602 | "Storage": "64 GB",
603 | "Model": [ "MM6V3", "MM783" ]
604 | },
605 | {
606 | "Color": "Starlight",
607 | "Storage": "256 GB",
608 | "Model": [ "MM743", "MM7H3" ]
609 | }
610 | ]
611 | }
612 | ]
613 |
--------------------------------------------------------------------------------
/ipad_mini.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "iPad mini",
4 | "ANumber": "A1432",
5 | "Bootrom": "ROM",
6 | "FCCID": "BCGA1432",
7 | "InternalName": "P105AP",
8 | "Identifier": "iPad2,5",
9 | "Models": [
10 | {
11 | "Color": "Black",
12 | "Storage": "16 GB",
13 | "Model": [ "MD528", "MF432" ]
14 | },
15 | {
16 | "Color": "Black",
17 | "Storage": "32 GB",
18 | "Model": [ "MD529" ]
19 | },
20 | {
21 | "Color": "Black",
22 | "Storage": "64 GB",
23 | "Model": [ "MD530" ]
24 | },
25 | {
26 | "Color": "White",
27 | "Storage": "16 GB",
28 | "Model": [ "MD531" ]
29 | },
30 | {
31 | "Color": "White",
32 | "Storage": "32 GB",
33 | "Model": [ "MD532" ]
34 | },
35 | {
36 | "Color": "White",
37 | "Storage": "64 GB",
38 | "Model": [ "MD533" ]
39 | }
40 | ]
41 | },
42 | {
43 | "Generation": "iPad mini",
44 | "ANumber": "A1454",
45 | "Bootrom": "ROM",
46 | "FCCID": "BCGA1454",
47 | "InternalName": "P106AP",
48 | "Identifier": "iPad2,6",
49 | "Models": [
50 | {
51 | "Color": "Black",
52 | "Storage": "16 GB",
53 | "Model": [ "MD534", "ME030", "MF442", "MF743" ]
54 | },
55 | {
56 | "Color": "Black",
57 | "Storage": "32 GB",
58 | "Model": [ "MD535", "ME031" ]
59 | },
60 | {
61 | "Color": "Black",
62 | "Storage": "64 GB",
63 | "Model": [ "MD536", "ME032" ]
64 | },
65 | {
66 | "Color": "White",
67 | "Storage": "16 GB",
68 | "Model": [ "MD537", "ME033", "MF746" ]
69 | },
70 | {
71 | "Color": "White",
72 | "Storage": "32 GB",
73 | "Model": [ "MD538", "ME034" ]
74 | },
75 | {
76 | "Color": "White",
77 | "Storage": "64 GB",
78 | "Model": [ "MD539", "ME035" ]
79 | }
80 | ]
81 | },
82 | {
83 | "Generation": "iPad mini",
84 | "ANumber": "A1455",
85 | "Bootrom": "ROM",
86 | "FCCID": "BCGA1455",
87 | "InternalName": "P107AP",
88 | "Identifier": "iPad2,7",
89 | "Models": [
90 | {
91 | "Color": "Black",
92 | "Storage": "16 GB",
93 | "Model": [ "MD540", "ME215", "MF450", "MF453" ]
94 | },
95 | {
96 | "Color": "Black",
97 | "Storage": "32 GB",
98 | "Model": [ "MD541", "ME216" ]
99 | },
100 | {
101 | "Color": "Black",
102 | "Storage": "64 GB",
103 | "Model": [ "MD542", "ME217" ]
104 | },
105 | {
106 | "Color": "White",
107 | "Storage": "16 GB",
108 | "Model": [ "MD543", "ME218" ]
109 | },
110 | {
111 | "Color": "White",
112 | "Storage": "32 GB",
113 | "Model": [ "MD544", "ME219" ]
114 | },
115 | {
116 | "Color": "White",
117 | "Storage": "64 GB",
118 | "Model": [ "MD545", "ME220" ]
119 | }
120 | ]
121 | },
122 | {
123 | "Generation": "iPad mini 2",
124 | "ANumber": "A1489",
125 | "Bootrom": "Bootrom 1704.10",
126 | "FCCID": "BCGA1489",
127 | "InternalName": "J85AP",
128 | "Identifier": "iPad4,4",
129 | "Models": [
130 | {
131 | "Color": "Silver",
132 | "Storage": "16 GB",
133 | "Model": [ "ME279" ]
134 | },
135 | {
136 | "Color": "Silver",
137 | "Storage": "32 GB",
138 | "Model": [ "ME280" ]
139 | },
140 | {
141 | "Color": "Silver",
142 | "Storage": "64 GB",
143 | "Model": [ "ME281" ]
144 | },
145 | {
146 | "Color": "Silver",
147 | "Storage": "128 GB",
148 | "Model": [ "ME860" ]
149 | },
150 | {
151 | "Color": "Space Gray",
152 | "Storage": "16 GB",
153 | "Model": [ "ME276" ]
154 | },
155 | {
156 | "Color": "Space Gray",
157 | "Storage": "32 GB",
158 | "Model": [ "ME277" ]
159 | },
160 | {
161 | "Color": "Space Gray",
162 | "Storage": "64 GB",
163 | "Model": [ "ME278" ]
164 | },
165 | {
166 | "Color": "Space Gray",
167 | "Storage": "128 GB",
168 | "Model": [ "ME856" ]
169 | }
170 | ]
171 | },
172 | {
173 | "Generation": "iPad mini 2",
174 | "ANumber": "A1490",
175 | "Bootrom": "Bootrom 1704.10",
176 | "FCCID": "BCGA1490",
177 | "InternalName": "J86AP",
178 | "Identifier": "iPad4,5",
179 | "Models": [
180 | {
181 | "Color": "Silver",
182 | "Storage": "16 GB",
183 | "Model": [ "ME814", "ME818", "MF074", "MF075", "MF076", "MF544" ]
184 | },
185 | {
186 | "Color": "Silver",
187 | "Storage": "32 GB",
188 | "Model": [ "ME824", "MF083", "MF084", "MF085", "MF569" ]
189 | },
190 | {
191 | "Color": "Silver",
192 | "Storage": "64 GB",
193 | "Model": [ "ME832", "MF089", "MF090", "MF091", "MF580" ]
194 | },
195 | {
196 | "Color": "Silver",
197 | "Storage": "128 GB",
198 | "Model": [ "ME840", "MF120", "MF121", "MF123", "MF594" ]
199 | },
200 | {
201 | "Color": "Space Gray",
202 | "Storage": "16 GB",
203 | "Model": [ "ME800", "MF066", "MF069", "MF070", "MF078", "MF519" ]
204 | },
205 | {
206 | "Color": "Space Gray",
207 | "Storage": "32 GB",
208 | "Model": [ "ME820", "MF080", "MF081", "MF082", "MF552" ]
209 | },
210 | {
211 | "Color": "Space Gray",
212 | "Storage": "64 GB",
213 | "Model": [ "ME828", "MF086", "MF087", "MF088", "MF575" ]
214 | },
215 | {
216 | "Color": "Space Gray",
217 | "Storage": "128 GB",
218 | "Model": [ "ME836", "MF116", "MF117", "MF118", "MF585" ]
219 | }
220 | ]
221 | },
222 | {
223 | "Generation": "iPad mini 2",
224 | "ANumber": "A1491",
225 | "Bootrom": "Bootrom 1704.10",
226 | "FCCID": "BCGA1491",
227 | "InternalName": "J87AP",
228 | "Identifier": "iPad4,6",
229 | "Models": [
230 | {
231 | "Color": "Silver",
232 | "Storage": "16 GB",
233 | "Model": [ "MF248" ]
234 | },
235 | {
236 | "Color": "Silver",
237 | "Storage": "32 GB",
238 | "Model": [ "MF252" ]
239 | },
240 | {
241 | "Color": "Silver",
242 | "Storage": "64 GB",
243 | "Model": [ "MF246" ]
244 | },
245 | {
246 | "Color": "Silver",
247 | "Storage": "128 GB",
248 | "Model": [ "MF244" ]
249 | },
250 | {
251 | "Color": "Space Gray",
252 | "Storage": "16 GB",
253 | "Model": [ "MF247" ]
254 | },
255 | {
256 | "Color": "Space Gray",
257 | "Storage": "32 GB",
258 | "Model": [ "MF251" ]
259 | },
260 | {
261 | "Color": "Space Gray",
262 | "Storage": "64 GB",
263 | "Model": [ "MF245" ]
264 | },
265 | {
266 | "Color": "Space Gray",
267 | "Storage": "128 GB",
268 | "Model": [ "MF243" ]
269 | }
270 | ]
271 | },
272 | {
273 | "Generation": "iPad mini 3",
274 | "ANumber": "A1599",
275 | "Bootrom": "Bootrom 1704.10",
276 | "FCCID": "BCGA1599",
277 | "InternalName": "J85mAP",
278 | "Identifier": "iPad4,7",
279 | "Models": [
280 | {
281 | "Color": "Gold",
282 | "Storage": "16 GB",
283 | "Model": [ "MGYE2" ]
284 | },
285 | {
286 | "Color": "Gold",
287 | "Storage": "64 GB",
288 | "Model": [ "MGY92" ]
289 | },
290 | {
291 | "Color": "Gold",
292 | "Storage": "128 GB",
293 | "Model": [ "MGYK2" ]
294 | },
295 | {
296 | "Color": "Silver",
297 | "Storage": "16 GB",
298 | "Model": [ "MGNV2" ]
299 | },
300 | {
301 | "Color": "Silver",
302 | "Storage": "64 GB",
303 | "Model": [ "MGGT2" ]
304 | },
305 | {
306 | "Color": "Silver",
307 | "Storage": "128 GB",
308 | "Model": [ "MGP42" ]
309 | },
310 | {
311 | "Color": "Space Gray",
312 | "Storage": "16 GB",
313 | "Model": [ "MGNR2" ]
314 | },
315 | {
316 | "Color": "Space Gray",
317 | "Storage": "64 GB",
318 | "Model": [ "MGGQ2" ]
319 | },
320 | {
321 | "Color": "Space Gray",
322 | "Storage": "128 GB",
323 | "Model": [ "MGP32" ]
324 | }
325 | ]
326 | },
327 | {
328 | "Generation": "iPad mini 3",
329 | "ANumber": "A1600",
330 | "Bootrom": "Bootrom 1991.0.0.2.16",
331 | "FCCID": "BCGA1600",
332 | "InternalName": "J86mAP",
333 | "Identifier": "iPad4,8",
334 | "Models": [
335 | {
336 | "Color": "Gold",
337 | "Storage": "16 GB",
338 | "Model": [ "MH0F2", "MH3G2" ]
339 | },
340 | {
341 | "Color": "Gold",
342 | "Storage": "64 GB",
343 | "Model": [ "MH392" ]
344 | },
345 | {
346 | "Color": "Gold",
347 | "Storage": "128 GB",
348 | "Model": [ "MH3N2" ]
349 | },
350 | {
351 | "Color": "Silver",
352 | "Storage": "16 GB",
353 | "Model": [ "MH3F2" ]
354 | },
355 | {
356 | "Color": "Silver",
357 | "Storage": "64 GB",
358 | "Model": [ "MH382" ]
359 | },
360 | {
361 | "Color": "Silver",
362 | "Storage": "128 GB",
363 | "Model": [ "MH3M2" ]
364 | },
365 | {
366 | "Color": "Space Gray",
367 | "Storage": "16 GB",
368 | "Model": [ "MH3E2" ]
369 | },
370 | {
371 | "Color": "Space Gray",
372 | "Storage": "64 GB",
373 | "Model": [ "MH372" ]
374 | },
375 | {
376 | "Color": "Space Gray",
377 | "Storage": "128 GB",
378 | "Model": [ "MH3L2" ]
379 | }
380 | ]
381 | },
382 | {
383 | "Generation": "iPad mini 3",
384 | "ANumber": "A1601",
385 | "Bootrom": "Bootrom 1991.0.0.2.16",
386 | "FCCID": "BCGA1601",
387 | "InternalName": "J87mAP",
388 | "Identifier": "iPad4,9",
389 | "Models": [
390 | {
391 | "Color": "Gold",
392 | "Storage": "16 GB",
393 | "Model": [ "MGYR2", "MGYY2" ]
394 | },
395 | {
396 | "Color": "Gold",
397 | "Storage": "64 GB",
398 | "Model": [ "MGYN2", "MGYW2" ]
399 | },
400 | {
401 | "Color": "Gold",
402 | "Storage": "128 GB",
403 | "Model": [ "MGYU2", "MH012" ]
404 | },
405 | {
406 | "Color": "Silver",
407 | "Storage": "16 GB",
408 | "Model": [ "MGHW2", "MGPW2" ]
409 | },
410 | {
411 | "Color": "Silver",
412 | "Storage": "64 GB",
413 | "Model": [ "MGJ12", "MGQ12" ]
414 | },
415 | {
416 | "Color": "Silver",
417 | "Storage": "128 GB",
418 | "Model": [ "MGJ32", "MGQ32" ]
419 | },
420 | {
421 | "Color": "Space Gray",
422 | "Storage": "16 GB",
423 | "Model": [ "MGHV2", "MGPV2" ]
424 | },
425 | {
426 | "Color": "Space Gray",
427 | "Storage": "64 GB",
428 | "Model": [ "MGJ02", "MGQ02" ]
429 | },
430 | {
431 | "Color": "Space Gray",
432 | "Storage": "128 GB",
433 | "Model": [ "MGJ22", "MGQ22" ]
434 | }
435 | ]
436 | },
437 | {
438 | "Generation": "iPad mini 4",
439 | "ANumber": "A1538",
440 | "Bootrom": "Bootrom 1992.0.0.1.19",
441 | "FCCID": "BCGA1538",
442 | "InternalName": "J96AP",
443 | "Identifier": "iPad5,1",
444 | "Models": [
445 | {
446 | "Color": "Gold",
447 | "Storage": "16 GB",
448 | "Model": [ "MK6L2" ]
449 | },
450 | {
451 | "Color": "Gold",
452 | "Storage": "32 GB",
453 | "Model": [ "MNY32" ]
454 | },
455 | {
456 | "Color": "Gold",
457 | "Storage": "64 GB",
458 | "Model": [ "MK9J2" ]
459 | },
460 | {
461 | "Color": "Gold",
462 | "Storage": "128 GB",
463 | "Model": [ "MK9Q2" ]
464 | },
465 | {
466 | "Color": "Silver",
467 | "Storage": "16 GB",
468 | "Model": [ "MK6K2" ]
469 | },
470 | {
471 | "Color": "Silver",
472 | "Storage": "32 GB",
473 | "Model": [ "MNY22" ]
474 | },
475 | {
476 | "Color": "Silver",
477 | "Storage": "64 GB",
478 | "Model": [ "MK9H2" ]
479 | },
480 | {
481 | "Color": "Silver",
482 | "Storage": "128 GB",
483 | "Model": [ "MK9P2" ]
484 | },
485 | {
486 | "Color": "Space Gray",
487 | "Storage": "16 GB",
488 | "Model": [ "MK6J2" ]
489 | },
490 | {
491 | "Color": "Space Gray",
492 | "Storage": "32 GB",
493 | "Model": [ "MNY12" ]
494 | },
495 | {
496 | "Color": "Space Gray",
497 | "Storage": "64 GB",
498 | "Model": [ "MK9G2" ]
499 | },
500 | {
501 | "Color": "Space Gray",
502 | "Storage": "128 GB",
503 | "Model": [ "MK9N2" ]
504 | }
505 | ]
506 | },
507 | {
508 | "Generation": "iPad mini 4",
509 | "ANumber": "A1550",
510 | "Bootrom": "Bootrom 1992.0.0.1.19",
511 | "FCCID": "BCGA1550",
512 | "InternalName": "J97AP",
513 | "Identifier": "iPad5,2",
514 | "Models": [
515 | {
516 | "Color": "Gold",
517 | "Storage": "16 GB",
518 | "Model": [ "MK712", "MK882" ]
519 | },
520 | {
521 | "Color": "Gold",
522 | "Storage": "32 GB",
523 | "Model": [ "MNWG2", "MNWR2" ]
524 | },
525 | {
526 | "Color": "Gold",
527 | "Storage": "64 GB",
528 | "Model": [ "MK752", "MK8C2" ]
529 | },
530 | {
531 | "Color": "Gold",
532 | "Storage": "128 GB",
533 | "Model": [ "MK782", "MK8F2" ]
534 | },
535 | {
536 | "Color": "Silver",
537 | "Storage": "16 GB",
538 | "Model": [ "MK702", "MK7X2", "MK872" ]
539 | },
540 | {
541 | "Color": "Silver",
542 | "Storage": "32 GB",
543 | "Model": [ "MNWF2", "MNWQ2" ]
544 | },
545 | {
546 | "Color": "Silver",
547 | "Storage": "64 GB",
548 | "Model": [ "MK732", "MK8A2" ]
549 | },
550 | {
551 | "Color": "Silver",
552 | "Storage": "128 GB",
553 | "Model": [ "MK772", "MK8E2" ]
554 | },
555 | {
556 | "Color": "Space Gray",
557 | "Storage": "16 GB",
558 | "Model": [ "MK7L2", "MK862" ]
559 | },
560 | {
561 | "Color": "Space Gray",
562 | "Storage": "32 GB",
563 | "Model": [ "MNWP2" ]
564 | },
565 | {
566 | "Color": "Space Gray",
567 | "Storage": "64 GB",
568 | "Model": [ "MK722", "MK892" ]
569 | },
570 | {
571 | "Color": "Space Gray",
572 | "Storage": "128 GB",
573 | "Model": [ "MK762", "MK8D2" ]
574 | }
575 | ]
576 | },
577 | {
578 | "Generation": "iPad mini (5th generation)",
579 | "ANumber": "A2133",
580 | "Bootrom": "Bootrom 3865.0.0.4.7",
581 | "FCCID": "BCGA2133",
582 | "InternalName": "J210AP",
583 | "Identifier": "iPad11,1",
584 | "Models": [
585 | {
586 | "Color": "Gold",
587 | "Storage": "64 GB",
588 | "Model": [ "MUQY2" ]
589 | },
590 | {
591 | "Color": "Gold",
592 | "Storage": "256 GB",
593 | "Model": [ "MUU62" ]
594 | },
595 | {
596 | "Color": "Silver",
597 | "Storage": "64 GB",
598 | "Model": [ "MUQX2" ]
599 | },
600 | {
601 | "Color": "Silver",
602 | "Storage": "256 GB",
603 | "Model": [ "MUU52" ]
604 | },
605 | {
606 | "Color": "Space Gray",
607 | "Storage": "64 GB",
608 | "Model": [ "MUQW2" ]
609 | },
610 | {
611 | "Color": "Space Gray",
612 | "Storage": "256 GB",
613 | "Model": [ "MUU32" ]
614 | }
615 | ]
616 | },
617 | {
618 | "Generation": "iPad mini (5th generation)",
619 | "ANumber": [ "A2124", "A2125", "A2126" ],
620 | "Bootrom": "Bootrom 3865.0.0.4.7",
621 | "FCCID": [ "BCGA2124", "BCGA2126" ],
622 | "InternalName": "J211AP",
623 | "Identifier": "iPad11,2",
624 | "Models": [
625 | {
626 | "Color": "Gold",
627 | "Storage": "64 GB",
628 | "Model": [ "MUXH2", "MUX72" ]
629 | },
630 | {
631 | "Color": "Gold",
632 | "Storage": "256 GB",
633 | "Model": [ "MUXP2", "MUXE2" ]
634 | },
635 | {
636 | "Color": "Silver",
637 | "Storage": "64 GB",
638 | "Model": [ "MUXG2", "MUX62" ]
639 | },
640 | {
641 | "Color": "Silver",
642 | "Storage": "256 GB",
643 | "Model": [ "MUXN2", "MUXD2" ]
644 | },
645 | {
646 | "Color": "Space Gray",
647 | "Storage": "64 GB",
648 | "Model": [ "MUXF2", "MUX52" ]
649 | },
650 | {
651 | "Color": "Space Gray",
652 | "Storage": "256 GB",
653 | "Model": [ "MUXM2", "MUXC2" ]
654 | }
655 | ]
656 | },
657 | {
658 | "Generation": "iPad mini (6th generation)",
659 | "ANumber": [ "A2567" ],
660 | "Bootrom": "",
661 | "FCCID": [ "BCGA2567" ],
662 | "InternalName": "J310AP",
663 | "Identifier": "iPad14,1",
664 | "Models": [
665 | {
666 | "Color": "Space Gray",
667 | "Storage": "64 GB",
668 | "Model": [ "MK7M3" ]
669 | },
670 | {
671 | "Color": "Space Gray",
672 | "Storage": "256 GB",
673 | "Model": [ "MK7T3" ]
674 | },
675 | {
676 | "Color": "Pink",
677 | "Storage": "64 GB",
678 | "Model": [ "MLWL3" ]
679 | },
680 | {
681 | "Color": "Pink",
682 | "Storage": "256 GB",
683 | "Model": [ "MLWR3" ]
684 | },
685 | {
686 | "Color": "Purple",
687 | "Storage": "64 GB",
688 | "Model": [ "MK7R3" ]
689 | },
690 | {
691 | "Color": "Purple",
692 | "Storage": "256 GB",
693 | "Model": [ "MK7X3" ]
694 | },
695 | {
696 | "Color": "Starlight",
697 | "Storage": "64 GB",
698 | "Model": [ "MK7P3" ]
699 | },
700 | {
701 | "Color": "Starlight",
702 | "Storage": "256 GB",
703 | "Model": [ "MK7V3" ]
704 | }
705 | ]
706 | },
707 | {
708 | "Generation": "iPad mini (6th generation)",
709 | "ANumber": [ "A2568", "A2569" ],
710 | "Bootrom": "",
711 | "FCCID": [ "BCGA2568", "BCGA2569" ],
712 | "InternalName": "J311AP",
713 | "Identifier": "iPad14,2",
714 | "Models": [
715 | {
716 | "Color": "Space Gray",
717 | "Storage": "64 GB",
718 | "Model": [ "MK893" ]
719 | },
720 | {
721 | "Color": "Space Gray",
722 | "Storage": "256 GB",
723 | "Model": [ "MK8F3" ]
724 | },
725 | {
726 | "Color": "Pink",
727 | "Storage": "64 GB",
728 | "Model": [ "MLX43" ]
729 | },
730 | {
731 | "Color": "Pink",
732 | "Storage": "256 GB",
733 | "Model": [ "MLX93" ]
734 | },
735 | {
736 | "Color": "Purple",
737 | "Storage": "64 GB",
738 | "Model": [ "MK8E3" ]
739 | },
740 | {
741 | "Color": "Purple",
742 | "Storage": "256 GB",
743 | "Model": [ "MK8K3" ]
744 | },
745 | {
746 | "Color": "Starlight",
747 | "Storage": "64 GB",
748 | "Model": [ "MK8C3" ]
749 | },
750 | {
751 | "Color": "Starlight",
752 | "Storage": "256 GB",
753 | "Model": [ "MK8H3" ]
754 | }
755 | ]
756 | }
757 | ]
758 |
--------------------------------------------------------------------------------
/ipad_pro.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "iPad Pro (12.9-inch)",
4 | "ANumber": "A1584",
5 | "Bootrom": "Bootrom 2481.0.0.2.1",
6 | "FCCID": "BCGA1584",
7 | "InternalName": "J98aAP",
8 | "Identifier": "iPad6,7",
9 | "Models": [
10 | {
11 | "Color": "Gold",
12 | "Storage": "32 GB",
13 | "Model": [ "ML0H2" ]
14 | },
15 | {
16 | "Color": "Gold",
17 | "Storage": "128 GB",
18 | "Model": [ "ML0R2" ]
19 | },
20 | {
21 | "Color": "Gold",
22 | "Storage": "256 GB",
23 | "Model": [ "ML0V2" ]
24 | },
25 | {
26 | "Color": "Silver",
27 | "Storage": "32 GB",
28 | "Model": [ "ML0G2" ]
29 | },
30 | {
31 | "Color": "Silver",
32 | "Storage": "128 GB",
33 | "Model": [ "ML0Q2" ]
34 | },
35 | {
36 | "Color": "Silver",
37 | "Storage": "256 GB",
38 | "Model": [ "ML0U2" ]
39 | },
40 | {
41 | "Color": "Space Gray",
42 | "Storage": "32 GB",
43 | "Model": [ "ML0F2" ]
44 | },
45 | {
46 | "Color": "Space Gray",
47 | "Storage": "128 GB",
48 | "Model": [ "ML0N2" ]
49 | },
50 | {
51 | "Color": "Space Gray",
52 | "Storage": "256 GB",
53 | "Model": [ "ML0T2" ]
54 | }
55 | ]
56 | },
57 | {
58 | "Generation": "iPad Pro (12.9-inch)",
59 | "ANumber": "A1652",
60 | "Bootrom": "Bootrom 2481.0.0.2.1",
61 | "FCCID": "BCGA1652",
62 | "InternalName": "J99aAP",
63 | "Identifier": "iPad6,8",
64 | "Models": [
65 | {
66 | "Color": "Gold",
67 | "Storage": "128 GB",
68 | "Model": [ "ML2K2", "ML3P2", "ML3Q2" ]
69 | },
70 | {
71 | "Color": "Gold",
72 | "Storage": "256 GB",
73 | "Model": [ "ML2N2", "ML3Z2", "ML412" ]
74 | },
75 | {
76 | "Color": "Silver",
77 | "Storage": "128 GB",
78 | "Model": [ "ML2J2", "ML3O2", "ML3N2" ]
79 | },
80 | {
81 | "Color": "Silver",
82 | "Storage": "256 GB",
83 | "Model": [ "ML2M2", "ML3W2" ]
84 | },
85 | {
86 | "Color": "Space Gray",
87 | "Storage": "128 GB",
88 | "Model": [ "ML2I2", "ML3K2" ]
89 | },
90 | {
91 | "Color": "Space Gray",
92 | "Storage": "256 GB",
93 | "Model": [ "ML2L2", "ML3T2" ]
94 | }
95 | ]
96 | },
97 | {
98 | "Generation": "iPad Pro (9.7-inch)",
99 | "ANumber": "A1673",
100 | "Bootrom": "Bootrom 2481.0.0.2.1",
101 | "FCCID": "BCGA1673",
102 | "InternalName": "J127AP",
103 | "Identifier": "iPad6,3",
104 | "Models": [
105 | {
106 | "Color": "Gold",
107 | "Storage": "32 GB",
108 | "Model": [ "MLMQ2" ]
109 | },
110 | {
111 | "Color": "Gold",
112 | "Storage": "128 GB",
113 | "Model": [ "MLMX2" ]
114 | },
115 | {
116 | "Color": "Gold",
117 | "Storage": "256 GB",
118 | "Model": [ "MLN12" ]
119 | },
120 | {
121 | "Color": "Rose Gold",
122 | "Storage": "32 GB",
123 | "Model": [ "MM172" ]
124 | },
125 | {
126 | "Color": "Rose Gold",
127 | "Storage": "128 GB",
128 | "Model": [ "MM172" ]
129 | },
130 | {
131 | "Color": "Rose Gold",
132 | "Storage": "256 GB",
133 | "Model": [ "MM1A2" ]
134 | },
135 | {
136 | "Color": "Silver",
137 | "Storage": "32 GB",
138 | "Model": [ "MLMP2" ]
139 | },
140 | {
141 | "Color": "Silver",
142 | "Storage": "128 GB",
143 | "Model": [ "MLMW2" ]
144 | },
145 | {
146 | "Color": "Silver",
147 | "Storage": "256 GB",
148 | "Model": [ "MLN02" ]
149 | },
150 | {
151 | "Color": "Space Gray",
152 | "Storage": "32 GB",
153 | "Model": [ "MLMN2" ]
154 | },
155 | {
156 | "Color": "Space Gray",
157 | "Storage": "128 GB",
158 | "Model": [ "MLMV2" ]
159 | },
160 | {
161 | "Color": "Space Gray",
162 | "Storage": "256 GB",
163 | "Model": [ "MLMY2" ]
164 | }
165 | ]
166 | },
167 | {
168 | "Generation": "iPad Pro (9.7-inch)",
169 | "ANumber": [ "A1674", "A1675" ],
170 | "Bootrom": "Bootrom 2481.0.0.2.1",
171 | "FCCID": "BCGA1674",
172 | "InternalName": "J128AP",
173 | "Identifier": "iPad6,4",
174 | "Models": [
175 | {
176 | "Color": "Gold",
177 | "Storage": "32 GB",
178 | "Model": [ "MLPY2" ]
179 | },
180 | {
181 | "Color": "Gold",
182 | "Storage": "128 GB",
183 | "Model": [ "MLQ52" ]
184 | },
185 | {
186 | "Color": "Gold",
187 | "Storage": "256 GB",
188 | "Model": [ "MLQ82" ]
189 | },
190 | {
191 | "Color": "Rose Gold",
192 | "Storage": "32 GB",
193 | "Model": [ "MLYJ2" ]
194 | },
195 | {
196 | "Color": "Rose Gold",
197 | "Storage": "128 GB",
198 | "Model": [ "MLYL2" ]
199 | },
200 | {
201 | "Color": "Rose Gold",
202 | "Storage": "256 GB",
203 | "Model": [ "MLYM2" ]
204 | },
205 | {
206 | "Color": "Silver",
207 | "Storage": "32 GB",
208 | "Model": [ "MLPX2" ]
209 | },
210 | {
211 | "Color": "Silver",
212 | "Storage": "128 GB",
213 | "Model": [ "MLQ42" ]
214 | },
215 | {
216 | "Color": "Silver",
217 | "Storage": "256 GB",
218 | "Model": [ "MLQ72" ]
219 | },
220 | {
221 | "Color": "Space Gray",
222 | "Storage": "32 GB",
223 | "Model": [ "MLPW2" ]
224 | },
225 | {
226 | "Color": "Space Gray",
227 | "Storage": "128 GB",
228 | "Model": [ "MLQ32" ]
229 | },
230 | {
231 | "Color": "Space Gray",
232 | "Storage": "256 GB",
233 | "Model": [ "MLQ62" ]
234 | }
235 | ]
236 | },
237 | {
238 | "Generation": "iPad Pro (12.9-inch, 2nd generation)",
239 | "ANumber": "A1670",
240 | "Bootrom": "Bootrom 3135.0.0.2.3",
241 | "FCCID": "BCGA1670",
242 | "InternalName": "J120AP",
243 | "Identifier": "iPad7,1",
244 | "Models": [
245 | {
246 | "Color": "Gold",
247 | "Storage": "64 GB",
248 | "Model": [ "MQDD2" ]
249 | },
250 | {
251 | "Color": "Gold",
252 | "Storage": "256 GB",
253 | "Model": [ "MP6J2" ]
254 | },
255 | {
256 | "Color": "Gold",
257 | "Storage": "512 GB",
258 | "Model": [ "MPL12" ]
259 | },
260 | {
261 | "Color": "Silver",
262 | "Storage": "64 GB",
263 | "Model": [ "MQDC2" ]
264 | },
265 | {
266 | "Color": "Silver",
267 | "Storage": "256 GB",
268 | "Model": [ "MP6H2" ]
269 | },
270 | {
271 | "Color": "Silver",
272 | "Storage": "512 GB",
273 | "Model": [ "MPL02" ]
274 | },
275 | {
276 | "Color": "Space Gray",
277 | "Storage": "64 GB",
278 | "Model": [ "MQDA2" ]
279 | },
280 | {
281 | "Color": "Space Gray",
282 | "Storage": "256 GB",
283 | "Model": [ "MP6G2" ]
284 | },
285 | {
286 | "Color": "Space Gray",
287 | "Storage": "512 GB",
288 | "Model": [ "MPKY2" ]
289 | }
290 | ]
291 | },
292 | {
293 | "Generation": "iPad Pro (12.9-inch, 2nd generation)",
294 | "ANumber": [ "A1671", "A1821" ],
295 | "Bootrom": "Bootrom 3135.0.0.2.3",
296 | "FCCID": "BCGA1671",
297 | "InternalName": "J121AP",
298 | "Identifier": "iPad7,2",
299 | "Models": [
300 | {
301 | "Color": "Gold",
302 | "Storage": "64 GB",
303 | "Model": [ "MQEF2" ]
304 | },
305 | {
306 | "Color": "Gold",
307 | "Storage": "256 GB",
308 | "Model": [ "MPA62" ]
309 | },
310 | {
311 | "Color": "Gold",
312 | "Storage": "512 GB",
313 | "Model": [ "MPLL2" ]
314 | },
315 | {
316 | "Color": "Silver",
317 | "Storage": "64 GB",
318 | "Model": [ "MQEE2" ]
319 | },
320 | {
321 | "Color": "Silver",
322 | "Storage": "256 GB",
323 | "Model": [ "MPA52" ]
324 | },
325 | {
326 | "Color": "Silver",
327 | "Storage": "512 GB",
328 | "Model": [ "MPLK2" ]
329 | },
330 | {
331 | "Color": "Space Gray",
332 | "Storage": "64 GB",
333 | "Model": [ "MQED2" ]
334 | },
335 | {
336 | "Color": "Space Gray",
337 | "Storage": "256 GB",
338 | "Model": [ "MPA42" ]
339 | },
340 | {
341 | "Color": "Space Gray",
342 | "Storage": "512 GB",
343 | "Model": [ "MPLJ2" ]
344 | }
345 | ]
346 | },
347 | {
348 | "Generation": "iPad Pro (10.5-inch)",
349 | "ANumber": "A1701",
350 | "Bootrom": "Bootrom 3135.0.0.2.3",
351 | "FCCID": "BCGA1701",
352 | "InternalName": "J207AP",
353 | "Identifier": "iPad7,3",
354 | "Models": [
355 | {
356 | "Color": "Gold",
357 | "Storage": "64 GB",
358 | "Model": [ "MQDX2" ]
359 | },
360 | {
361 | "Color": "Gold",
362 | "Storage": "256 GB",
363 | "Model": [ "MPF12" ]
364 | },
365 | {
366 | "Color": "Gold",
367 | "Storage": "512 GB",
368 | "Model": [ "MPGK2" ]
369 | },
370 | {
371 | "Color": "Rose Gold",
372 | "Storage": "64 GB",
373 | "Model": [ "MQDY2" ]
374 | },
375 | {
376 | "Color": "Rose Gold",
377 | "Storage": "256 GB",
378 | "Model": [ "MPF22" ]
379 | },
380 | {
381 | "Color": "Rose Gold",
382 | "Storage": "512 GB",
383 | "Model": [ "MPGL2" ]
384 | },
385 | {
386 | "Color": "Silver",
387 | "Storage": "64 GB",
388 | "Model": [ "MQDW2" ]
389 | },
390 | {
391 | "Color": "Silver",
392 | "Storage": "256 GB",
393 | "Model": [ "MPF02" ]
394 | },
395 | {
396 | "Color": "Silver",
397 | "Storage": "512 GB",
398 | "Model": [ "MPGJ2" ]
399 | },
400 | {
401 | "Color": "Space Gray",
402 | "Storage": "64 GB",
403 | "Model": [ "MQDT2" ]
404 | },
405 | {
406 | "Color": "Space Gray",
407 | "Storage": "256 GB",
408 | "Model": [ "MPDY2" ]
409 | },
410 | {
411 | "Color": "Space Gray",
412 | "Storage": "512 GB",
413 | "Model": [ "MPGH2" ]
414 | }
415 | ]
416 | },
417 | {
418 | "Generation": "iPad Pro (10.5-inch)",
419 | "ANumber": "A1709",
420 | "Bootrom": "Bootrom 3135.0.0.2.3",
421 | "FCCID": "BCGA1709",
422 | "InternalName": "J208AP",
423 | "Identifier": "iPad7,4",
424 | "Models": [
425 | {
426 | "Color": "Gold",
427 | "Storage": "64 GB",
428 | "Model": [ "MQF12" ]
429 | },
430 | {
431 | "Color": "Gold",
432 | "Storage": "256 GB",
433 | "Model": [ "MPHJ2" ]
434 | },
435 | {
436 | "Color": "Gold",
437 | "Storage": "512 GB",
438 | "Model": [ "MPMG2" ]
439 | },
440 | {
441 | "Color": "Rose Gold",
442 | "Storage": "64 GB",
443 | "Model": [ "MQF22" ]
444 | },
445 | {
446 | "Color": "Rose Gold",
447 | "Storage": "256 GB",
448 | "Model": [ "MPHK2" ]
449 | },
450 | {
451 | "Color": "Rose Gold",
452 | "Storage": "512 GB",
453 | "Model": [ "MPMH2" ]
454 | },
455 | {
456 | "Color": "Silver",
457 | "Storage": "64 GB",
458 | "Model": [ "MQF02" ]
459 | },
460 | {
461 | "Color": "Silver",
462 | "Storage": "256 GB",
463 | "Model": [ "MPHH2" ]
464 | },
465 | {
466 | "Color": "Silver",
467 | "Storage": "512 GB",
468 | "Model": [ "MPMF2" ]
469 | },
470 | {
471 | "Color": "Space Gray",
472 | "Storage": "64 GB",
473 | "Model": [ "MQEY2" ]
474 | },
475 | {
476 | "Color": "Space Gray",
477 | "Storage": "256 GB",
478 | "Model": [ "MPHG2" ]
479 | },
480 | {
481 | "Color": "Space Gray",
482 | "Storage": "512 GB",
483 | "Model": [ "MPME2" ]
484 | }
485 | ]
486 | },
487 | {
488 | "Generation": "iPad Pro (11-inch)",
489 | "ANumber": "A1980",
490 | "FCCID": "BCGA1980",
491 | "Bootrom": "Bootrom 4172.0.0.100.14",
492 | "InternalName": "J317AP",
493 | "Identifier": "iPad8,1",
494 | "Models": [
495 | {
496 | "Color": "Silver",
497 | "Storage": "64 GB",
498 | "Model": [ "MTXP2" ]
499 | },
500 | {
501 | "Color": "Silver",
502 | "Storage": "256 GB",
503 | "Model": [ "MTXR2" ]
504 | },
505 | {
506 | "Color": "Silver",
507 | "Storage": "512 GB",
508 | "Model": [ "MTXU2" ]
509 | },
510 | {
511 | "Color": "Space Gray",
512 | "Storage": "64 GB",
513 | "Model": [ "MTXN2" ]
514 | },
515 | {
516 | "Color": "Space Gray",
517 | "Storage": "256 GB",
518 | "Model": [ "MTXQ2" ]
519 | },
520 | {
521 | "Color": "Space Gray",
522 | "Storage": "512 GB",
523 | "Model": [ "MTXT2" ]
524 | }
525 | ]
526 | },
527 | {
528 | "Generation": "iPad Pro (11-inch)",
529 | "ANumber": "A1980",
530 | "Bootrom": "Bootrom 4172.0.0.100.14",
531 | "FCCID": "BCGA1980",
532 | "InternalName": "J317xAP",
533 | "Identifier": "iPad8,2",
534 | "Models": [
535 | {
536 | "Color": "Silver",
537 | "Storage": "1 TB",
538 | "Model": [ "MTXW2" ]
539 | },
540 | {
541 | "Color": "Space Gray",
542 | "Storage": "1 TB",
543 | "Model": [ "MTXV2" ]
544 | }
545 | ]
546 | },
547 | {
548 | "Generation": "iPad Pro (11-inch)",
549 | "ANumber": "A1934",
550 | "Bootrom": "Bootrom 4172.0.0.100.14",
551 | "FCCID": "BCGA1934",
552 | "InternalName": "J318AP",
553 | "Identifier": "iPad8,3",
554 | "Models": [
555 | {
556 | "Color": "Silver",
557 | "Storage": "64 GB",
558 | "Model": [ "MU0U2" ]
559 | },
560 | {
561 | "Color": "Silver",
562 | "Storage": "256 GB",
563 | "Model": [ "MU172" ]
564 | },
565 | {
566 | "Color": "Silver",
567 | "Storage": "512 GB",
568 | "Model": [ "MU1M2" ]
569 | },
570 | {
571 | "Color": "Space Gray",
572 | "Storage": "64 GB",
573 | "Model": [ "MU0M2" ]
574 | },
575 | {
576 | "Color": "Space Gray",
577 | "Storage": "256 GB",
578 | "Model": [ "MU102" ]
579 | },
580 | {
581 | "Color": "Space Gray",
582 | "Storage": "512 GB",
583 | "Model": [ "MU1F2" ]
584 | }
585 | ]
586 | },
587 | {
588 | "Generation": "iPad Pro (11-inch)",
589 | "ANumber": "A1934",
590 | "Bootrom": "Bootrom 4172.0.0.100.14",
591 | "FCCID": "BCGA1934",
592 | "InternalName": "J318xAP",
593 | "Identifier": "iPad8,4",
594 | "Models": [
595 | {
596 | "Color": "Silver",
597 | "Storage": "1 TB",
598 | "Model": [ "MU222" ]
599 | },
600 | {
601 | "Color": "Space Gray",
602 | "Storage": "1 TB",
603 | "Model": [ "MU1V2" ]
604 | }
605 | ]
606 | },
607 | {
608 | "Generation": "iPad Pro (11-inch)",
609 | "ANumber": "A1979",
610 | "Bootrom": "Bootrom 4172.0.0.100.14",
611 | "FCCID": "BCGA1934",
612 | "InternalName": "J318AP",
613 | "Identifier": "iPad8,3",
614 | "Models": [
615 | {
616 | "Color": "Silver",
617 | "Storage": "64 GB",
618 | "Model": [ "MU0X2" ]
619 | },
620 | {
621 | "Color": "Silver",
622 | "Storage": "256 GB",
623 | "Model": [ "MU1C2" ]
624 | },
625 | {
626 | "Color": "Silver",
627 | "Storage": "512 GB",
628 | "Model": [ "MU1T2" ]
629 | },
630 | {
631 | "Color": "Space Gray",
632 | "Storage": "64 GB",
633 | "Model": [ "MU0Q2" ]
634 | },
635 | {
636 | "Color": "Space Gray",
637 | "Storage": "256 GB",
638 | "Model": [ "MU152" ]
639 | },
640 | {
641 | "Color": "Space Gray",
642 | "Storage": "512 GB",
643 | "Model": [ "MU1J2" ]
644 | }
645 | ]
646 | },
647 | {
648 | "Generation": "iPad Pro (11-inch)",
649 | "ANumber": "A1979",
650 | "Bootrom": "Bootrom 4172.0.0.100.14",
651 | "FCCID": "BCGA1934",
652 | "InternalName": "J318xAP",
653 | "Identifier": "iPad8,4",
654 | "Models": [
655 | {
656 | "Color": "Silver",
657 | "Storage": "1 TB",
658 | "Model": [ "MU272" ]
659 | },
660 | {
661 | "Color": "Space Gray",
662 | "Storage": "1 TB",
663 | "Model": [ "MU1Y2" ]
664 | }
665 | ]
666 | },
667 | {
668 | "Generation": "iPad Pro (11-inch)",
669 | "ANumber": "A2013",
670 | "Bootrom": "Bootrom 4172.0.0.100.14",
671 | "FCCID": "BCGA2013",
672 | "InternalName": "J318AP",
673 | "Identifier": "iPad8,3",
674 | "Models": [
675 | {
676 | "Color": "Silver",
677 | "Storage": "64 GB",
678 | "Model": [ "MU0Y2" ]
679 | },
680 | {
681 | "Color": "Silver",
682 | "Storage": "256 GB",
683 | "Model": [ "MU1D2" ]
684 | },
685 | {
686 | "Color": "Silver",
687 | "Storage": "512 GB",
688 | "Model": [ "MU1U2" ]
689 | },
690 | {
691 | "Color": "Space Gray",
692 | "Storage": "64 GB",
693 | "Model": [ "MU0T2" ]
694 | },
695 | {
696 | "Color": "Space Gray",
697 | "Storage": "256 GB",
698 | "Model": [ "MU162" ]
699 | },
700 | {
701 | "Color": "Space Gray",
702 | "Storage": "512 GB",
703 | "Model": [ "MU1K2" ]
704 | }
705 | ]
706 | },
707 | {
708 | "Generation": "iPad Pro (11-inch)",
709 | "ANumber": "A2013",
710 | "Bootrom": "Bootrom 4172.0.0.100.14",
711 | "FCCID": "BCGA2013",
712 | "InternalName": "J318xAP",
713 | "Identifier": "iPad8,4",
714 | "Models": [
715 | {
716 | "Color": "Silver",
717 | "Storage": "1 TB",
718 | "Model": [ "MU282" ]
719 | },
720 | {
721 | "Color": "Space Gray",
722 | "Storage": "1 TB",
723 | "Model": [ "MU202" ]
724 | }
725 | ]
726 | },
727 | {
728 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
729 | "ANumber": "A1876",
730 | "Bootrom": "Bootrom 4172.0.0.100.14",
731 | "FCCID": "BCGA1876",
732 | "InternalName": "J320AP",
733 | "Identifier": "iPad8,5",
734 | "Models": [
735 | {
736 | "Color": "Silver",
737 | "Storage": "64 GB",
738 | "Model": [ "MTEM2" ]
739 | },
740 | {
741 | "Color": "Silver",
742 | "Storage": "256 GB",
743 | "Model": [ "MTFN2" ]
744 | },
745 | {
746 | "Color": "Silver",
747 | "Storage": "512 GB",
748 | "Model": [ "MTFQ2" ]
749 | },
750 | {
751 | "Color": "Space Gray",
752 | "Storage": "64 GB",
753 | "Model": [ "MTEL2" ]
754 | },
755 | {
756 | "Color": "Space Gray",
757 | "Storage": "256 GB",
758 | "Model": [ "MTFL2" ]
759 | },
760 | {
761 | "Color": "Space Gray",
762 | "Storage": "512 GB",
763 | "Model": [ "MTFP2" ]
764 | }
765 | ]
766 | },
767 | {
768 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
769 | "ANumber": "A1876",
770 | "Bootrom": "Bootrom 4172.0.0.100.14",
771 | "FCCID": "BCGA1876",
772 | "InternalName": "J320xAP",
773 | "Identifier": "iPad8,6",
774 | "Models": [
775 | {
776 | "Color": "Silver",
777 | "Storage": "1 TB",
778 | "Model": [ "MTFT2" ]
779 | },
780 | {
781 | "Color": "Space Gray",
782 | "Storage": "1 TB",
783 | "Model": [ "MTFR2" ]
784 | }
785 | ]
786 | },
787 | {
788 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
789 | "ANumber": "A1895",
790 | "Bootrom": "Bootrom 4172.0.0.100.14",
791 | "FCCID": "BCGA1985",
792 | "InternalName": "J321AP",
793 | "Identifier": "iPad8,7",
794 | "Models": [
795 | {
796 | "Color": "Silver",
797 | "Storage": "64 GB",
798 | "Model": [ "MTHP2" ]
799 | },
800 | {
801 | "Color": "Silver",
802 | "Storage": "256 GB",
803 | "Model": [ "MTJ62" ]
804 | },
805 | {
806 | "Color": "Silver",
807 | "Storage": "512 GB",
808 | "Model": [ "MTJJ2" ]
809 | },
810 | {
811 | "Color": "Space Gray",
812 | "Storage": "64 GB",
813 | "Model": [ "MTHJ2" ]
814 | },
815 | {
816 | "Color": "Space Gray",
817 | "Storage": "256 GB",
818 | "Model": [ "MTHV2" ]
819 | },
820 | {
821 | "Color": "Space Gray",
822 | "Storage": "512 GB",
823 | "Model": [ "MTJD2" ]
824 | }
825 | ]
826 | },
827 | {
828 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
829 | "ANumber": "A1895",
830 | "Bootrom": "Bootrom 4172.0.0.100.14",
831 | "FCCID": "BCGA1985",
832 | "InternalName": "J321xAP",
833 | "Identifier": "iPad8,8",
834 | "Models": [
835 | {
836 | "Color": "Silver",
837 | "Storage": "1 TB",
838 | "Model": [ "MTJV2" ]
839 | },
840 | {
841 | "Color": "Space Gray",
842 | "Storage": "1 TB",
843 | "Model": [ "MTJP2" ]
844 | }
845 | ]
846 | },
847 | {
848 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
849 | "ANumber": "A1983",
850 | "Bootrom": "Bootrom 4172.0.0.100.14",
851 | "FCCID": "BCGA1985",
852 | "InternalName": "J321AP",
853 | "Identifier": "iPad8,7",
854 | "Models": [
855 | {
856 | "Color": "Silver",
857 | "Storage": "64 GB",
858 | "Model": [ "MTHT2" ]
859 | },
860 | {
861 | "Color": "Silver",
862 | "Storage": "256 GB",
863 | "Model": [ "MTJ92" ]
864 | },
865 | {
866 | "Color": "Silver",
867 | "Storage": "512 GB",
868 | "Model": [ "MTJM2" ]
869 | },
870 | {
871 | "Color": "Space Gray",
872 | "Storage": "64 GB",
873 | "Model": [ "MTHM2" ]
874 | },
875 | {
876 | "Color": "Space Gray",
877 | "Storage": "256 GB",
878 | "Model": [ "MTHY2" ]
879 | },
880 | {
881 | "Color": "Space Gray",
882 | "Storage": "512 GB",
883 | "Model": [ "MTJG2" ]
884 | }
885 | ]
886 | },
887 | {
888 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
889 | "ANumber": "A1983",
890 | "Bootrom": "Bootrom 4172.0.0.100.14",
891 | "FCCID": "BCGA1985",
892 | "InternalName": "J321xAP",
893 | "Identifier": "iPad8,8",
894 | "Models": [
895 | {
896 | "Color": "Silver",
897 | "Storage": "1 TB",
898 | "Model": [ "MTJY2" ]
899 | },
900 | {
901 | "Color": "Space Gray",
902 | "Storage": "1 TB",
903 | "Model": [ "MTJT2" ]
904 | }
905 | ]
906 | },
907 | {
908 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
909 | "ANumber": "A2014",
910 | "Bootrom": "Bootrom 4172.0.0.100.14",
911 | "FCCID": "BCGA2014",
912 | "InternalName": "J321AP",
913 | "Identifier": "iPad8,7",
914 | "Models": [
915 | {
916 | "Color": "Silver",
917 | "Storage": "64 GB",
918 | "Model": [ "MTHU2" ]
919 | },
920 | {
921 | "Color": "Silver",
922 | "Storage": "256 GB",
923 | "Model": [ "MTJA2" ]
924 | },
925 | {
926 | "Color": "Silver",
927 | "Storage": "512 GB",
928 | "Model": [ "MTJN2" ]
929 | },
930 | {
931 | "Color": "Space Gray",
932 | "Storage": "64 GB",
933 | "Model": [ "MTHN2" ]
934 | },
935 | {
936 | "Color": "Space Gray",
937 | "Storage": "256 GB",
938 | "Model": [ "MTJ02" ]
939 | },
940 | {
941 | "Color": "Space Gray",
942 | "Storage": "512 GB",
943 | "Model": [ "MTJH2" ]
944 | }
945 | ]
946 | },
947 | {
948 | "Generation": "iPad Pro (12.9-inch) (3rd generation)",
949 | "ANumber": "A2014",
950 | "Bootrom": "Bootrom 4172.0.0.100.14",
951 | "FCCID": "BCGA2014",
952 | "InternalName": "J321xAP",
953 | "Identifier": "iPad8,8",
954 | "Models": [
955 | {
956 | "Color": "Silver",
957 | "Storage": "1 TB",
958 | "Model": [ "MTL02" ]
959 | },
960 | {
961 | "Color": "Space Gray",
962 | "Storage": "1 TB",
963 | "Model": [ "MTJU2" ]
964 | }
965 | ]
966 | },
967 | {
968 | "Generation": "iPad Pro (11-inch) (2nd generation)",
969 | "ANumber": "A2228",
970 | "Bootrom": "Bootrom 4172.0.0.100.14",
971 | "FCCID": "BCGA2228",
972 | "InternalName": "J417AP",
973 | "Identifier": "iPad8,9",
974 | "Models": [
975 | {
976 | "Color": "Silver",
977 | "Storage": "128 GB",
978 | "Model": [ "MY252" ]
979 | },
980 | {
981 | "Color": "Silver",
982 | "Storage": "256 GB",
983 | "Model": [ "MXDD2" ]
984 | },
985 | {
986 | "Color": "Silver",
987 | "Storage": "512 GB",
988 | "Model": [ "MXDF2" ]
989 | },
990 | {
991 | "Color": "Silver",
992 | "Storage": "1 T",
993 | "Model": [ "MXDH2" ]
994 | },
995 | {
996 | "Color": "Space Gray",
997 | "Storage": "128 GB",
998 | "Model": [ "MY232" ]
999 | },
1000 | {
1001 | "Color": "Space Gray",
1002 | "Storage": "256 GB",
1003 | "Model": [ "MXDC2" ]
1004 | },
1005 | {
1006 | "Color": "Space Gray",
1007 | "Storage": "512 GB",
1008 | "Model": [ "MXDE2" ]
1009 | },
1010 | {
1011 | "Color": "Space Gray",
1012 | "Storage": "1 TB",
1013 | "Model": [ "MXDG2" ]
1014 | }
1015 | ]
1016 | },
1017 | {
1018 | "Generation": "iPad Pro (11-inch) (2nd generation)",
1019 | "ANumber": [ "A2068", "A2230", "A2231" ],
1020 | "Bootrom": "Bootrom 4172.0.0.100.14",
1021 | "FCCID": [ "BCGA2068", "BCGA2230" ],
1022 | "InternalName": "J418AP",
1023 | "Identifier": "iPad8,10",
1024 | "Models": [
1025 | {
1026 | "Color": "Silver",
1027 | "Storage": "128 GB",
1028 | "Model": [ "MY2W2", "MY342" ]
1029 | },
1030 | {
1031 | "Color": "Silver",
1032 | "Storage": "256 GB",
1033 | "Model": [ "MXE52", "MXEX2" ]
1034 | },
1035 | {
1036 | "Color": "Silver",
1037 | "Storage": "512 GB",
1038 | "Model": [ "MXE72", "MXF02" ]
1039 | },
1040 | {
1041 | "Color": "Silver",
1042 | "Storage": "1 T",
1043 | "Model": [ "MXE92", "MXF22" ]
1044 | },
1045 | {
1046 | "Color": "Space Gray",
1047 | "Storage": "128 GB",
1048 | "Model": [ "MY2V2", "MY332" ]
1049 | },
1050 | {
1051 | "Color": "Space Gray",
1052 | "Storage": "256 GB",
1053 | "Model": [ "MXE42", "MXEW2" ]
1054 | },
1055 | {
1056 | "Color": "Space Gray",
1057 | "Storage": "512 GB",
1058 | "Model": [ "MXE62", "MXEY2" ]
1059 | },
1060 | {
1061 | "Color": "Space Gray",
1062 | "Storage": "1 TB",
1063 | "Model": [ "MXE82", "MXF12" ]
1064 | }
1065 | ]
1066 | },
1067 | {
1068 | "Generation": "iPad Pro (12.9-inch) (4th generation)",
1069 | "ANumber": "A2229",
1070 | "Bootrom": "Bootrom 4172.0.0.100.14",
1071 | "FCCID": "BCGA2229",
1072 | "InternalName": "J420AP",
1073 | "Identifier": "iPad8,11",
1074 | "Models": [
1075 | {
1076 | "Color": "Silver",
1077 | "Storage": "128 GB",
1078 | "Model": [ "MY2J2" ]
1079 | },
1080 | {
1081 | "Color": "Silver",
1082 | "Storage": "256 GB",
1083 | "Model": [ "MXAU2" ]
1084 | },
1085 | {
1086 | "Color": "Silver",
1087 | "Storage": "512 GB",
1088 | "Model": [ "MXAW2" ]
1089 | },
1090 | {
1091 | "Color": "Silver",
1092 | "Storage": "1 T",
1093 | "Model": [ "MXAY2" ]
1094 | },
1095 | {
1096 | "Color": "Space Gray",
1097 | "Storage": "128 GB",
1098 | "Model": [ "MY2H2" ]
1099 | },
1100 | {
1101 | "Color": "Space Gray",
1102 | "Storage": "256 GB",
1103 | "Model": [ "MXAT2" ]
1104 | },
1105 | {
1106 | "Color": "Space Gray",
1107 | "Storage": "512 GB",
1108 | "Model": [ "MXAV2" ]
1109 | },
1110 | {
1111 | "Color": "Space Gray",
1112 | "Storage": "1 TB",
1113 | "Model": [ "MXAX2" ]
1114 | }
1115 | ]
1116 | },
1117 | {
1118 | "Generation": "iPad Pro (12.9-inch) (4th generation)",
1119 | "ANumber": [ "A2069", "A2232", "A2233" ],
1120 | "Bootrom": "Bootrom 4172.0.0.100.14",
1121 | "FCCID": [ "BCGA2069", "BCGA2232" ],
1122 | "InternalName": "J421AP",
1123 | "Identifier": "iPad8,12",
1124 | "Models": [
1125 | {
1126 | "Color": "Silver",
1127 | "Storage": "128 GB",
1128 | "Model": [ "MY3D2", "MY3K2" ]
1129 | },
1130 | {
1131 | "Color": "Silver",
1132 | "Storage": "256 GB",
1133 | "Model": [ "MXF62", "MXFY2" ]
1134 | },
1135 | {
1136 | "Color": "Silver",
1137 | "Storage": "512 GB",
1138 | "Model": [ "MXF82", "MXG12" ]
1139 | },
1140 | {
1141 | "Color": "Silver",
1142 | "Storage": "1 T",
1143 | "Model": [ "MXFA2", "MXG32" ]
1144 | },
1145 | {
1146 | "Color": "Space Gray",
1147 | "Storage": "128 GB",
1148 | "Model": [ "MY3C2", "MY3J2" ]
1149 | },
1150 | {
1151 | "Color": "Space Gray",
1152 | "Storage": "256 GB",
1153 | "Model": [ "MXF52", "MXFX2" ]
1154 | },
1155 | {
1156 | "Color": "Space Gray",
1157 | "Storage": "512 GB",
1158 | "Model": [ "MXF72", "MXG02" ]
1159 | },
1160 | {
1161 | "Color": "Space Gray",
1162 | "Storage": "1 TB",
1163 | "Model": [ "MXF92", "MXG22" ]
1164 | }
1165 | ]
1166 | },
1167 | {
1168 | "Generation": "iPad Pro (11-inch) (3rd generation)",
1169 | "ANumber": [ ],
1170 | "Bootrom": "",
1171 | "FCCID": [ ],
1172 | "InternalName": "J517AP",
1173 | "Identifier": "iPad13,4",
1174 | "Models": [ ]
1175 | },
1176 | {
1177 | "Generation": "iPad Pro (11-inch) (3rd generation)",
1178 | "ANumber": [ ],
1179 | "Bootrom": "",
1180 | "FCCID": [ ],
1181 | "InternalName": "J517xAP",
1182 | "Identifier": "iPad13,5",
1183 | "Models": [ ]
1184 | },
1185 | {
1186 | "Generation": "iPad Pro (11-inch) (3rd generation)",
1187 | "ANumber": [ ],
1188 | "Bootrom": "",
1189 | "FCCID": [ ],
1190 | "InternalName": "J518AP",
1191 | "Identifier": "iPad13,6",
1192 | "Models": [ ]
1193 | },
1194 | {
1195 | "Generation": "iPad Pro (11-inch) (3rd generation)",
1196 | "ANumber": [ ],
1197 | "Bootrom": "",
1198 | "FCCID": [ ],
1199 | "InternalName": "J518xAP",
1200 | "Identifier": "iPad13,7",
1201 | "Models": [ ]
1202 | },
1203 | {
1204 | "Generation": "iPad Pro (12.9-inch) (5th generation)",
1205 | "ANumber": [ ],
1206 | "Bootrom": "",
1207 | "FCCID": [ ],
1208 | "InternalName": "J522AP",
1209 | "Identifier": "iPad13,8",
1210 | "Models": [ ]
1211 | },
1212 | {
1213 | "Generation": "iPad Pro (12.9-inch) (5th generation)",
1214 | "ANumber": [ ],
1215 | "Bootrom": "",
1216 | "FCCID": [ ],
1217 | "InternalName": "J522xAP",
1218 | "Identifier": "iPad13,9",
1219 | "Models": [ ]
1220 | },
1221 | {
1222 | "Generation": "iPad Pro (12.9-inch) (5th generation)",
1223 | "ANumber": [ ],
1224 | "Bootrom": "",
1225 | "FCCID": [ ],
1226 | "InternalName": "J523AP",
1227 | "Identifier": "iPad13,10",
1228 | "Models": [ ]
1229 | },
1230 | {
1231 | "Generation": "iPad Pro (12.9-inch) (5th generation)",
1232 | "ANumber": [ ],
1233 | "Bootrom": "",
1234 | "FCCID": [ ],
1235 | "InternalName": "J523xAP",
1236 | "Identifier": "iPad13,11",
1237 | "Models": [ ]
1238 | }
1239 | ]
1240 |
--------------------------------------------------------------------------------
/ipod_touch.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "iPod touch",
4 | "ANumber": "A1213",
5 | "Bootrom": "Bootrom Rev.2",
6 | "FCCID": "BCGA1213",
7 | "InternalName": "N45AP",
8 | "Identifier": "iPod1,1",
9 | "Models": [
10 | {
11 | "Color": "Black",
12 | "Storage": "8 GB",
13 | "Model": [ "MA623", "MA624", "MA839" ]
14 | },
15 | {
16 | "Color": "Black",
17 | "Storage": "16 GB",
18 | "Model": [ "MA627", "MA628" ]
19 | },
20 | {
21 | "Color": "Black",
22 | "Storage": "32 GB",
23 | "Model": [ "MB376" ]
24 | }
25 | ]
26 | },
27 | {
28 | "Generation": "iPod touch (2nd generation)",
29 | "ANumber": [ "A1288", "A1319" ],
30 | "Bootrom": "Bootrom 240.4",
31 | "FCCID": "BCGA1288",
32 | "InternalName": "N72AP",
33 | "Identifier": "iPod2,1",
34 | "Models": [
35 | {
36 | "Color": "Black",
37 | "Storage": "8 GB",
38 | "Model": [ "MB525", "MB528", "MB529" ]
39 | },
40 | {
41 | "Color": "Black",
42 | "Storage": "16 GB",
43 | "Model": [ "MB531", "MB532" ]
44 | },
45 | {
46 | "Color": "Black",
47 | "Storage": "32 GB",
48 | "Model": [ "MB533", "MB534" ]
49 | }
50 | ]
51 | },
52 | {
53 | "Generation": "iPod touch (2nd generation)",
54 | "ANumber": [ "A1288", "A1319" ],
55 | "Bootrom": "Bootrom 240.5.1",
56 | "FCCID": "BCGA1288",
57 | "InternalName": "N72AP",
58 | "Identifier": "iPod2,1",
59 | "Models": [
60 | {
61 | "Color": "Black",
62 | "Storage": "8 GB",
63 | "Model": [ "MC086" ]
64 | }
65 | ]
66 | },
67 | {
68 | "Generation": "iPod touch (3rd generation)",
69 | "ANumber": "A1318",
70 | "Bootrom": "Bootrom 359.5",
71 | "FCCID": "BCG‑2310",
72 | "InternalName": "N18AP",
73 | "Identifier": "iPod3,1",
74 | "Models": [
75 | {
76 | "Color": "Black",
77 | "Storage": "32 GB",
78 | "Model": [ "MC008" ]
79 | },
80 | {
81 | "Color": "Black",
82 | "Storage": "64 GB",
83 | "Model": [ "MC011" ]
84 | }
85 | ]
86 | },
87 | {
88 | "Generation": "iPod touch (4th generation)",
89 | "ANumber": "A1367",
90 | "Bootrom": "Bootrom 574.4",
91 | "FCCID": "BCG‑E2407",
92 | "InternalName": "N81AP",
93 | "Identifier": "iPod4,1",
94 | "Models": [
95 | {
96 | "Color": "Black",
97 | "Storage": "8 GB",
98 | "Model": [ "MC540" ]
99 | },
100 | {
101 | "Color": "Black",
102 | "Storage": "16 GB",
103 | "Model": [ "ME178" ]
104 | },
105 | {
106 | "Color": "Black",
107 | "Storage": "32 GB",
108 | "Model": [ "MC544" ]
109 | },
110 | {
111 | "Color": "Black",
112 | "Storage": "64 GB",
113 | "Model": [ "MC547" ]
114 | },
115 | {
116 | "Color": "White",
117 | "Storage": "8 GB",
118 | "Model": [ "MD057" ]
119 | },
120 | {
121 | "Color": "White",
122 | "Storage": "16 GB",
123 | "Model": [ "ME179" ]
124 | },
125 | {
126 | "Color": "White",
127 | "Storage": "32 GB",
128 | "Model": [ "MD058" ]
129 | },
130 | {
131 | "Color": "White",
132 | "Storage": "64 GB",
133 | "Model": [ "MD059" ]
134 | }
135 | ]
136 | },
137 | {
138 | "Generation": "iPod touch (5th generation)",
139 | "ANumber": "A1421",
140 | "Bootrom": "ROM",
141 | "FCCID": "BCG‑A1421",
142 | "InternalName": "N78AP",
143 | "Identifier": "iPod5,1",
144 | "Models": [
145 | {
146 | "Color": "Black",
147 | "Storage": "32 GB",
148 | "Model": [ "MD723" ]
149 | },
150 | {
151 | "Color": "Black",
152 | "Storage": "64 GB",
153 | "Model": [ "MD724" ]
154 | },
155 | {
156 | "Color": "Blue",
157 | "Storage": "16 GB",
158 | "Model": [ "MGG32" ]
159 | },
160 | {
161 | "Color": "Blue",
162 | "Storage": "32 GB",
163 | "Model": [ "MD717" ]
164 | },
165 | {
166 | "Color": "Blue",
167 | "Storage": "64 GB",
168 | "Model": [ "MD718" ]
169 | },
170 | {
171 | "Color": "Pink",
172 | "Storage": "16 GB",
173 | "Model": [ "MGFY2" ]
174 | },
175 | {
176 | "Color": "Pink",
177 | "Storage": "32 GB",
178 | "Model": [ "MC903" ]
179 | },
180 | {
181 | "Color": "Pink",
182 | "Storage": "64 GB",
183 | "Model": [ "MC904" ]
184 | },
185 | {
186 | "Color": "Red",
187 | "Storage": "16 GB",
188 | "Model": [ "MGG72" ]
189 | },
190 | {
191 | "Color": "Red",
192 | "Storage": "32 GB",
193 | "Model": [ "MD749" ]
194 | },
195 | {
196 | "Color": "Red",
197 | "Storage": "64 GB",
198 | "Model": [ "MD750" ]
199 | },
200 | {
201 | "Color": "Silver",
202 | "Storage": "16 GB",
203 | "Model": [ "MGG52" ]
204 | },
205 | {
206 | "Color": "Silver",
207 | "Storage": "32 GB",
208 | "Model": [ "MD720", "ME108" ]
209 | },
210 | {
211 | "Color": "Silver",
212 | "Storage": "64 GB",
213 | "Model": [ "MD721" ]
214 | },
215 | {
216 | "Color": "Space Gray",
217 | "Storage": "16 GB",
218 | "Model": [ "MGG82" ]
219 | },
220 | {
221 | "Color": "Space Gray",
222 | "Storage": "32 GB",
223 | "Model": [ "ME978" ]
224 | },
225 | {
226 | "Color": "Space Gray",
227 | "Storage": "64 GB",
228 | "Model": [ "ME979" ]
229 | },
230 | {
231 | "Color": "Yellow",
232 | "Storage": "16 GB",
233 | "Model": [ "MGG12" ]
234 | },
235 | {
236 | "Color": "Yellow",
237 | "Storage": "32 GB",
238 | "Model": [ "MD714" ]
239 | },
240 | {
241 | "Color": "Yellow",
242 | "Storage": "64 GB",
243 | "Model": [ "MD715" ]
244 | }
245 | ]
246 | },
247 | {
248 | "Generation": "iPod touch (5th generation)",
249 | "ANumber": "A1509",
250 | "Bootrom": "ROM",
251 | "FCCID": "BCG‑A1421",
252 | "InternalName": "N78aAP",
253 | "Identifier": "iPod5,1",
254 | "Models": [
255 | {
256 | "Color": "Black & Silver",
257 | "Storage": "16 GB",
258 | "Model": [ "ME643" ]
259 | }
260 | ]
261 | },
262 | {
263 | "Generation": "iPod touch (6th generation)",
264 | "ANumber": "A1574",
265 | "Bootrom": "Bootrom 1992.0.0.1.19",
266 | "FCCID": "BCGA1574",
267 | "InternalName": "N102AP",
268 | "Identifier": "iPod7,1",
269 | "Models": [
270 | {
271 | "Color": "Blue",
272 | "Storage": "16 GB",
273 | "Model": [ "MKH22" ]
274 | },
275 | {
276 | "Color": "Blue",
277 | "Storage": "32 GB",
278 | "Model": [ "MKHV2" ]
279 | },
280 | {
281 | "Color": "Blue",
282 | "Storage": "64 GB",
283 | "Model": [ "MKHE2" ]
284 | },
285 | {
286 | "Color": "Blue",
287 | "Storage": "128 GB",
288 | "Model": [ "MKWP2" ]
289 | },
290 | {
291 | "Color": "Gold",
292 | "Storage": "16 GB",
293 | "Model": [ "MKH02" ]
294 | },
295 | {
296 | "Color": "Gold",
297 | "Storage": "32 GB",
298 | "Model": [ "MKHT2" ]
299 | },
300 | {
301 | "Color": "Gold",
302 | "Storage": "64 GB",
303 | "Model": [ "MKHC2" ]
304 | },
305 | {
306 | "Color": "Gold",
307 | "Storage": "128 GB",
308 | "Model": [ "MKWM2" ]
309 | },
310 | {
311 | "Color": "Pink",
312 | "Storage": "16 GB",
313 | "Model": [ "MKGX2" ]
314 | },
315 | {
316 | "Color": "Pink",
317 | "Storage": "32 GB",
318 | "Model": [ "MKHQ2" ]
319 | },
320 | {
321 | "Color": "Pink",
322 | "Storage": "64 GB",
323 | "Model": [ "MKGW2" ]
324 | },
325 | {
326 | "Color": "Pink",
327 | "Storage": "128 GB",
328 | "Model": [ "MKWK2" ]
329 | },
330 | {
331 | "Color": "Red",
332 | "Storage": "16 GB",
333 | "Model": [ "MKH82" ]
334 | },
335 | {
336 | "Color": "Red",
337 | "Storage": "32 GB",
338 | "Model": [ "MKJ22" ]
339 | },
340 | {
341 | "Color": "Red",
342 | "Storage": "64 GB",
343 | "Model": [ "MKHN2" ]
344 | },
345 | {
346 | "Color": "Red",
347 | "Storage": "128 GB",
348 | "Model": [ "MKWW2" ]
349 | },
350 | {
351 | "Color": "Silver",
352 | "Storage": "16 GB",
353 | "Model": [ "MKH42" ]
354 | },
355 | {
356 | "Color": "Silver",
357 | "Storage": "32 GB",
358 | "Model": [ "MKHX2" ]
359 | },
360 | {
361 | "Color": "Silver",
362 | "Storage": "64 GB",
363 | "Model": [ "MKHJ2" ]
364 | },
365 | {
366 | "Color": "Silver",
367 | "Storage": "128 GB",
368 | "Model": [ "MKWR2" ]
369 | },
370 | {
371 | "Color": "Space Gray",
372 | "Storage": "16 GB",
373 | "Model": [ "MKH62" ]
374 | },
375 | {
376 | "Color": "Space Gray",
377 | "Storage": "32 GB",
378 | "Model": [ "MKJ02" ]
379 | },
380 | {
381 | "Color": "Space Gray",
382 | "Storage": "64 GB",
383 | "Model": [ "MKHL2" ]
384 | },
385 | {
386 | "Color": "Space Gray",
387 | "Storage": "128 GB",
388 | "Model": [ "MKWU2" ]
389 | }
390 | ]
391 | },
392 | {
393 | "Generation": "iPod touch (7th generation)",
394 | "ANumber": "A2178",
395 | "Bootrom": "Bootrom 2696.0.0.1.33",
396 | "FCCID": "BCGA2178",
397 | "InternalName": "N112AP",
398 | "Identifier": "iPod9,1",
399 | "Models": [
400 | {
401 | "Color": "Blue",
402 | "Storage": "32 GB",
403 | "Model": [ "MVHU2" ]
404 | },
405 | {
406 | "Color": "Blue",
407 | "Storage": "128 GB",
408 | "Model": [ "MVJ32" ]
409 | },
410 | {
411 | "Color": "Blue",
412 | "Storage": "256 GB",
413 | "Model": [ "MVJC2" ]
414 | },
415 | {
416 | "Color": "Gold",
417 | "Storage": "32 GB",
418 | "Model": [ "MVHT2" ]
419 | },
420 | {
421 | "Color": "Gold",
422 | "Storage": "128 GB",
423 | "Model": [ "MVJ22" ]
424 | },
425 | {
426 | "Color": "Gold",
427 | "Storage": "256 GB",
428 | "Model": [ "MVJ92" ]
429 | },
430 | {
431 | "Color": "Pink",
432 | "Storage": "32 GB",
433 | "Model": [ "MVHR2" ]
434 | },
435 | {
436 | "Color": "Pink",
437 | "Storage": "128 GB",
438 | "Model": [ "MVHY2" ]
439 | },
440 | {
441 | "Color": "Pink",
442 | "Storage": "256 GB",
443 | "Model": [ "MVJ82" ]
444 | },
445 | {
446 | "Color": "Red",
447 | "Storage": "32 GB",
448 | "Model": [ "MVHX2" ]
449 | },
450 | {
451 | "Color": "Red",
452 | "Storage": "128 GB",
453 | "Model": [ "MVJ72" ]
454 | },
455 | {
456 | "Color": "Red",
457 | "Storage": "256 GB",
458 | "Model": [ "MVJF2" ]
459 | },
460 | {
461 | "Color": "Silver",
462 | "Storage": "32 GB",
463 | "Model": [ "MVHV2" ]
464 | },
465 | {
466 | "Color": "Silver",
467 | "Storage": "128 GB",
468 | "Model": [ "MVJ52" ]
469 | },
470 | {
471 | "Color": "Silver",
472 | "Storage": "256 GB",
473 | "Model": [ "MVJD2" ]
474 | },
475 | {
476 | "Color": "Space Gray",
477 | "Storage": "32 GB",
478 | "Model": [ "MVHW2" ]
479 | },
480 | {
481 | "Color": "Space Gray",
482 | "Storage": "128 GB",
483 | "Model": [ "MVJ62" ]
484 | },
485 | {
486 | "Color": "Space Gray",
487 | "Storage": "256 GB",
488 | "Model": [ "MVJE2" ]
489 | }
490 | ]
491 | }
492 | ]
493 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ios-device-list",
3 | "version": "1.1.37",
4 | "description": "Searchable collection of Apple devices",
5 | "main": "index.js",
6 | "browser": "dist/ios-device-list.min.js",
7 | "engines": {
8 | "node": ">=4"
9 | },
10 | "scripts": {
11 | "test": "ava && npm run lint",
12 | "lint": "eslint index.js build-devices.js saved/save.js",
13 | "save": "node saved/save.js",
14 | "devices": "node build-devices.js",
15 | "webpack-dev": "npx webpack build",
16 | "webpack-prod": "npx webpack build --config webpack.prod.config.js",
17 | "dist": "npm run devices && npm run webpack-dev && npm run webpack-prod"
18 | },
19 | "author": "Peter Bakondy ",
20 | "license": "MIT",
21 | "keywords": [
22 | "ios",
23 | "iphone",
24 | "ipad",
25 | "ipod",
26 | "watch",
27 | "device",
28 | "devices",
29 | "model",
30 | "fccid",
31 | "list"
32 | ],
33 | "devDependencies": {
34 | "@babel/core": "^7.19.1",
35 | "@babel/preset-env": "^7.19.1",
36 | "ava": "^4.3.3",
37 | "babel-loader": "^8.2.5",
38 | "eslint": "^8.23.1",
39 | "jsdom": "^20.0.0",
40 | "uglify-js": "^3.17.0",
41 | "webpack": "^5.74.0",
42 | "webpack-cli": "^4.10.0"
43 | },
44 | "dependencies": {
45 | "lodash.clonedeep": "^4.5.0",
46 | "lodash.flatten": "^4.4.0",
47 | "lodash.uniq": "^4.5.0"
48 | },
49 | "repository": {
50 | "type": "git",
51 | "url": "https://github.com/pbakondy/ios-device-list.git"
52 | },
53 | "bugs": {
54 | "url": "https://github.com/pbakondy/ios-device-list/issues"
55 | },
56 | "homepage": "https://github.com/pbakondy/ios-device-list#readme"
57 | }
58 |
--------------------------------------------------------------------------------
/siri_remote.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "Generation": "Siri Remote",
4 | "ANumber": [ "A1513" ],
5 | "FCCID": [ "BCGA1513" ],
6 | "InternalName": "B239AP",
7 | "Identifier": "",
8 | "Models": [
9 | {
10 | "Model": [ "MLLC2" ]
11 | }
12 | ]
13 | },
14 | {
15 | "Generation": "Siri Remote (Rev A)",
16 | "ANumber": [ "A1962" ],
17 | "FCCID": [ "BCGA1962" ],
18 | "InternalName": "B439AP",
19 | "Identifier": "",
20 | "Models": [
21 | {
22 | "Model": [ "MQGD2" ]
23 | }
24 | ]
25 | },
26 | {
27 | "Generation": "Siri Remote (2nd generation)",
28 | "ANumber": [ "A2540" ],
29 | "FCCID": [ "BCGA2540" ],
30 | "InternalName": "",
31 | "Identifier": "",
32 | "Models": [
33 | {
34 | "Model": [ "MJFM3" ]
35 | }
36 | ]
37 | }
38 | ]
39 |
--------------------------------------------------------------------------------
/test.js:
--------------------------------------------------------------------------------
1 | /* eslint sourceType: module */
2 |
3 | const test = require('ava');
4 | const devices = require('./index');
5 |
6 | test('deviceTypes()', t => {
7 | t.is(typeof devices.deviceTypes, 'function');
8 | t.truthy(Array.isArray(devices.deviceTypes()));
9 | t.is(devices.deviceTypes().length, 10);
10 | });
11 |
12 | test('devices()', t => {
13 | t.is(typeof devices.devices, 'function');
14 | t.truthy(Array.isArray(devices.devices()));
15 | });
16 |
17 | test('devices() device', t => {
18 | let d1 = devices.deviceByModel('MD523')[0]; // 100th MD523
19 | let d2 = devices.deviceByModel('MF135')[0]; // 500th MF135
20 |
21 | t.is(typeof d1.Type, 'string');
22 | t.is(typeof d1.Generation, 'string');
23 | t.is(typeof d1.ANumber, 'string');
24 | t.is(typeof d1.Bootrom, 'string');
25 | t.is(typeof d1.FCCID, 'string');
26 | t.is(typeof d1.InternalName, 'string');
27 | t.is(typeof d1.Identifier, 'string');
28 | t.is(typeof d1.Color, 'string');
29 | t.is(typeof d1.Storage, 'string');
30 | t.is(typeof d1.Model, 'string');
31 |
32 | t.is(typeof d2.Type, 'string');
33 | t.is(typeof d2.Generation, 'string');
34 | t.is(Array.isArray(d2.ANumber), true);
35 | t.is(Array.isArray(d2.Bootrom), true);
36 | t.is(Array.isArray(d2.FCCID) || typeof d2.FCCID === 'string', true);
37 | t.is(typeof d2.InternalName, 'string');
38 | t.is(typeof d2.Identifier, 'string');
39 | t.is(typeof d2.Color, 'string');
40 | t.is(typeof d2.Storage, 'string');
41 | t.is(typeof d2.Model, 'string');
42 | });
43 |
44 | test('generations()', t => {
45 | t.is(typeof devices.generations, 'function');
46 | t.truthy(Array.isArray(devices.generations()));
47 | t.is(devices.generations().length, 99);
48 | t.is(devices.generations('iphone').length, 38);
49 | t.throws(function() { devices.generations('invalidType'); });
50 | });
51 |
52 | test('anumbers()', t => {
53 | t.is(typeof devices.anumbers, 'function');
54 | t.truthy(Array.isArray(devices.anumbers()));
55 | t.is(devices.anumbers().length, 293);
56 | t.is(devices.anumbers('iphone').length, 126);
57 | t.throws(function() { devices.anumbers('invalidType'); });
58 | });
59 |
60 | test('fccids()', t => {
61 | t.is(typeof devices.fccids, 'function');
62 | t.truthy(Array.isArray(devices.fccids()));
63 | t.is(devices.fccids().length, 196);
64 | t.is(devices.fccids('iphone').length, 56);
65 | t.throws(function() { devices.fccids('invalidType'); });
66 | });
67 |
68 | test('internalNames()', t => {
69 | t.is(typeof devices.internalNames, 'function');
70 | t.truthy(Array.isArray(devices.internalNames()));
71 | t.is(devices.internalNames().length, 185);
72 | t.is(devices.internalNames('iphone').length, 54);
73 | t.throws(function() { devices.internalNames('invalidType'); });
74 | });
75 |
76 | test('identifiers()', t => {
77 | t.is(typeof devices.identifiers, 'function');
78 | t.truthy(Array.isArray(devices.identifiers()));
79 | t.is(devices.identifiers().length, 177);
80 | t.is(devices.identifiers('iphone').length, 49);
81 | t.throws(function() { devices.identifiers('invalidType'); });
82 | });
83 |
84 | test('colors()', t => {
85 | t.is(typeof devices.colors, 'function');
86 | t.truthy(Array.isArray(devices.colors()));
87 | t.is(devices.colors().length, 31);
88 | t.is(devices.colors('iphone').length, 23);
89 | t.throws(function() { devices.colors('invalidType'); });
90 | });
91 |
92 | test('storages()', t => {
93 | t.is(typeof devices.storages, 'function');
94 | t.truthy(Array.isArray(devices.storages()));
95 | t.is(devices.storages().length, 14);
96 | t.is(devices.storages('iphone').length, 9);
97 | t.throws(function() { devices.storages('invalidType'); });
98 | });
99 |
100 | test('models()', t => {
101 | t.is(typeof devices.models, 'function');
102 | t.truthy(Array.isArray(devices.models()));
103 | t.is(devices.models().length, 4150);
104 | t.is(devices.models('iphone').length, 2652);
105 | t.throws(function() { devices.models('invalidType'); });
106 | });
107 |
108 | test('deviceByGeneration()', t => {
109 | let find = 'iPhone 6s Plus';
110 |
111 | t.is(typeof devices.deviceByGeneration, 'function');
112 | t.throws(function() { devices.deviceByGeneration(); });
113 | t.is(typeof devices.deviceByGeneration(find), 'object');
114 | t.is(devices.deviceByGeneration(find).length > 0, true);
115 | t.is(devices.deviceByGeneration(find, 'iphone').length > 0, true);
116 | t.is(devices.deviceByGeneration(find, 'ipad').length, 0);
117 | t.throws(function() { devices.deviceByGeneration(find, 'invalidType'); });
118 |
119 | t.is(devices.deviceByGeneration(find.substring(0, 11)).length, 0);
120 | t.is(devices.deviceByGeneration(find.substring(0, 11), null, { contains: true }).length > 0, true);
121 | t.is(devices.deviceByGeneration(find.toLowerCase()).length, 0);
122 | t.is(devices.deviceByGeneration(find.toLowerCase(), null, { caseInsensitive: true }).length > 0, true);
123 | t.is(devices.deviceByGeneration(find.toLowerCase()).length, 0);
124 | t.is(devices.deviceByGeneration(find.substring(0, 11).toLowerCase()).length, 0);
125 | t.is(devices.deviceByGeneration(find.substring(0, 11).toLowerCase(), null, { contains: true }).length, 0);
126 | t.is(devices.deviceByGeneration(find.substring(0, 11).toLowerCase(), null, { caseInsensitive: true }).length, 0);
127 | t.is(devices.deviceByGeneration(find.substring(0, 11).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
128 | });
129 |
130 | test('deviceByANumber()', t => {
131 | let find = 'A1634';
132 |
133 | t.is(typeof devices.deviceByANumber, 'function');
134 | t.throws(function() { devices.deviceByANumber(); });
135 | t.is(typeof devices.deviceByANumber(find), 'object');
136 | t.is(devices.deviceByANumber(find).length > 0, true);
137 | t.is(devices.deviceByANumber(find, 'iphone').length > 0, true);
138 | t.is(devices.deviceByANumber(find, 'ipad').length, 0);
139 | t.throws(function() { devices.deviceByANumber(find, 'invalidType'); });
140 |
141 | t.is(devices.deviceByANumber(find.substring(0, 4)).length, 0);
142 | t.is(devices.deviceByANumber(find.substring(0, 4), null, { contains: true }).length > 0, true);
143 | t.is(devices.deviceByANumber(find.toLowerCase()).length, 0);
144 | t.is(devices.deviceByANumber(find.toLowerCase(), null, { caseInsensitive: true }).length > 0, true);
145 | t.is(devices.deviceByANumber(find.toLowerCase()).length, 0);
146 | t.is(devices.deviceByANumber(find.substring(0, 4).toLowerCase()).length, 0);
147 | t.is(devices.deviceByANumber(find.substring(0, 4).toLowerCase(), null, { contains: true }).length, 0);
148 | t.is(devices.deviceByANumber(find.substring(0, 4).toLowerCase(), null, { caseInsensitive: true }).length, 0);
149 | t.is(devices.deviceByANumber(find.substring(0, 4).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
150 | });
151 |
152 | test('deviceByFCCID()', t => {
153 | let find = 'BCG-E2944A';
154 |
155 | t.is(typeof devices.deviceByFCCID, 'function');
156 | t.throws(function() { devices.deviceByFCCID(); });
157 | t.is(typeof devices.deviceByFCCID(find), 'object');
158 | t.is(devices.deviceByFCCID(find).length > 0, true);
159 | t.is(devices.deviceByFCCID(find, 'iphone').length > 0, true);
160 | t.is(devices.deviceByFCCID(find, 'ipad').length, 0);
161 | t.throws(function() { devices.deviceByFCCID(find, 'invalidType'); });
162 |
163 | t.is(devices.deviceByFCCID(find.substring(0, 8)).length, 0);
164 | // t.is(devices.deviceByFCCID(find.substring(0, 8), null, { contains: true }).length, 48);
165 | t.is(devices.deviceByFCCID(find.substring(0, 8), null, { contains: true }).length > 0, true);
166 | t.is(devices.deviceByFCCID(find.toLowerCase()).length, 0);
167 | t.is(devices.deviceByFCCID(find.toLowerCase(), null, { caseInsensitive: true }).length > 0, true);
168 | t.is(devices.deviceByFCCID(find.toLowerCase()).length, 0);
169 | t.is(devices.deviceByFCCID(find.substring(0, 8).toLowerCase()).length, 0);
170 | t.is(devices.deviceByFCCID(find.substring(0, 8).toLowerCase(), null, { contains: true }).length, 0);
171 | t.is(devices.deviceByFCCID(find.substring(0, 8).toLowerCase(), null, { caseInsensitive: true }).length, 0);
172 | // t.is(devices.deviceByFCCID(find.substring(0, 8).toLowerCase(), null, { contains: true, caseInsensitive: true }).length, 48);
173 | t.is(devices.deviceByFCCID(find.substring(0, 8).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
174 | });
175 |
176 | test('deviceByInternalName()', t => {
177 | let find = 'N66AP';
178 |
179 | t.is(typeof devices.deviceByInternalName, 'function');
180 | t.throws(function() { devices.deviceByInternalName(); });
181 | t.is(typeof devices.deviceByInternalName(find), 'object');
182 | t.is(devices.deviceByInternalName(find).length > 0, true);
183 | t.is(devices.deviceByInternalName(find, 'iphone').length > 0, true);
184 | t.is(devices.deviceByInternalName(find, 'ipad').length, 0);
185 | t.throws(function() { devices.deviceByInternalName(find, 'invalidType'); });
186 |
187 | t.is(devices.deviceByInternalName(find.substring(0, 4)).length, 0);
188 | t.is(devices.deviceByInternalName(find.substring(0, 4), null, { contains: true }).length > 0, true);
189 | t.is(devices.deviceByInternalName(find.toLowerCase()).length, 0);
190 | t.is(devices.deviceByInternalName(find.toLowerCase(), null, { caseInsensitive: true }).length > 0, true);
191 | t.is(devices.deviceByInternalName(find.toLowerCase()).length, 0);
192 | t.is(devices.deviceByInternalName(find.substring(0, 4).toLowerCase()).length, 0);
193 | t.is(devices.deviceByInternalName(find.substring(0, 4).toLowerCase(), null, { contains: true }).length, 0);
194 | t.is(devices.deviceByInternalName(find.substring(0, 4).toLowerCase(), null, { caseInsensitive: true }).length, 0);
195 | t.is(devices.deviceByInternalName(find.substring(0, 4).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
196 | });
197 |
198 | test('deviceByIdentifier()', t => {
199 | let find = 'iPhone8,2';
200 |
201 | t.is(typeof devices.deviceByIdentifier, 'function');
202 | t.throws(function() { devices.deviceByIdentifier(); });
203 | t.is(typeof devices.deviceByIdentifier(find), 'object');
204 | t.is(devices.deviceByIdentifier(find).length > 0, true);
205 | t.is(devices.deviceByIdentifier(find, 'iphone').length > 0, true);
206 | t.is(devices.deviceByIdentifier(find, 'ipad').length, 0);
207 | t.throws(function() { devices.deviceByIdentifier(find, 'invalidType'); });
208 |
209 | t.is(devices.deviceByIdentifier(find.substring(0, 8)).length, 0);
210 | // t.is(devices.deviceByIdentifier(find.substring(0, 8), null, { contains: true }).length, 56);
211 | t.is(devices.deviceByIdentifier(find.substring(0, 8), null, { contains: true }).length > 0, true);
212 | t.is(devices.deviceByIdentifier(find.toLowerCase()).length, 0);
213 | t.is(devices.deviceByIdentifier(find.toLowerCase(), null, { caseInsensitive: true }).length > 0, true);
214 | t.is(devices.deviceByIdentifier(find.toLowerCase()).length, 0);
215 | t.is(devices.deviceByIdentifier(find.substring(0, 8).toLowerCase()).length, 0);
216 | t.is(devices.deviceByIdentifier(find.substring(0, 8).toLowerCase(), null, { contains: true }).length, 0);
217 | t.is(devices.deviceByIdentifier(find.substring(0, 8).toLowerCase(), null, { caseInsensitive: true }).length, 0);
218 | // t.is(devices.deviceByIdentifier(find.substring(0, 8).toLowerCase(), null, { contains: true, caseInsensitive: true }).length, 56);
219 | t.is(devices.deviceByIdentifier(find.substring(0, 8).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
220 | });
221 |
222 | test('deviceByColor()', t => {
223 | let find = 'Rose Gold';
224 |
225 | t.is(typeof devices.deviceByColor, 'function');
226 | t.throws(function() { devices.deviceByColor(); });
227 | t.is(typeof devices.deviceByColor(find), 'object');
228 | t.is(devices.deviceByColor(find).length > 0, true);
229 | t.is(devices.deviceByColor(find, 'iphone').length > 0, true);
230 | t.is(devices.deviceByColor(find, 'ipad').length > 0, false);
231 | t.throws(function() { devices.deviceByColor(find, 'invalidType'); });
232 |
233 | t.is(devices.deviceByColor(find.substring(0, 8)).length, 0);
234 | t.is(devices.deviceByColor(find.substring(0, 8), null, { contains: true }).length > 0, true);
235 | t.is(devices.deviceByColor(find.toLowerCase()).length, 0);
236 | t.is(devices.deviceByColor(find.toLowerCase(), null, { caseInsensitive: true }).length > 0, true);
237 | t.is(devices.deviceByColor(find.toLowerCase()).length, 0);
238 | t.is(devices.deviceByColor(find.substring(0, 8).toLowerCase()).length, 0);
239 | t.is(devices.deviceByColor(find.substring(0, 8).toLowerCase(), null, { contains: true }).length, 0);
240 | t.is(devices.deviceByColor(find.substring(0, 8).toLowerCase(), null, { caseInsensitive: true }).length, 0);
241 | t.is(devices.deviceByColor(find.substring(0, 8).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
242 | });
243 |
244 | test('deviceByStorage()', t => {
245 | let find = '128 GB';
246 |
247 | t.is(typeof devices.deviceByStorage, 'function');
248 | t.throws(function() { devices.deviceByStorage(); });
249 | t.is(typeof devices.deviceByStorage(find), 'object');
250 | t.is(devices.deviceByStorage(find).length > 0, true);
251 | t.is(devices.deviceByStorage(find, 'iphone').length > 0, true);
252 | t.is(devices.deviceByStorage(find, 'ipad').length > 0, true);
253 | t.throws(function() { devices.deviceByStorage(find, 'invalidType'); });
254 |
255 | t.is(devices.deviceByStorage(find.substring(0, 4)).length, 0);
256 | t.is(devices.deviceByStorage(find.substring(0, 4), null, { contains: true }).length > 0, true);
257 | t.is(devices.deviceByStorage(find.toLowerCase()).length, 0);
258 | t.is(devices.deviceByStorage(find.toLowerCase(), null, { caseInsensitive: true }).length > 0, true);
259 | t.is(devices.deviceByStorage(find.toLowerCase()).length, 0);
260 | t.is(devices.deviceByStorage(find.substring(0, 4).toLowerCase()).length, 0);
261 | t.is(devices.deviceByStorage(find.substring(0, 4).toLowerCase(), null, { contains: true }).length > 0, true);
262 | t.is(devices.deviceByStorage(find.substring(0, 4).toLowerCase(), null, { caseInsensitive: true }).length, 0);
263 | t.is(devices.deviceByStorage(find.substring(0, 4).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
264 | });
265 |
266 | test('deviceByModel()', t => {
267 | let find = 'MKU52';
268 |
269 | t.is(typeof devices.deviceByModel, 'function');
270 | t.throws(function() { devices.deviceByModel(); });
271 | t.is(typeof devices.deviceByModel(find), 'object');
272 | t.is(devices.deviceByModel(find).length, 1);
273 | t.is(devices.deviceByModel(find, 'iphone').length, 1);
274 | t.is(devices.deviceByModel(find, 'ipad').length, 0);
275 | t.throws(function() { devices.deviceByModel(find, 'invalidType'); });
276 |
277 | t.is(devices.deviceByModel(find.substring(0, 3)).length, 0);
278 | t.is(devices.deviceByModel(find.substring(0, 3), null, { contains: true }).length > 0, true);
279 | t.is(devices.deviceByModel(find.toLowerCase()).length, 0);
280 | t.is(devices.deviceByModel(find.toLowerCase(), null, { caseInsensitive: true }).length, 1);
281 | t.is(devices.deviceByModel(find.toLowerCase()).length, 0);
282 | t.is(devices.deviceByModel(find.substring(0, 3).toLowerCase()).length, 0);
283 | t.is(devices.deviceByModel(find.substring(0, 3).toLowerCase(), null, { contains: true }).length, 0);
284 | t.is(devices.deviceByModel(find.substring(0, 3).toLowerCase(), null, { caseInsensitive: true }).length, 0);
285 | t.is(devices.deviceByModel(find.substring(0, 3).toLowerCase(), null, { contains: true, caseInsensitive: true }).length > 0, true);
286 | });
287 |
288 | test('generationByIdentifier()', t => {
289 | let find = 'iPhone8,2';
290 |
291 | t.is(typeof devices.generationByIdentifier, 'function');
292 | t.throws(function() { devices.generationByIdentifier(); });
293 | t.is(typeof devices.generationByIdentifier(find), 'string');
294 | t.is(devices.generationByIdentifier(find), 'iPhone 6s Plus');
295 | t.is(devices.generationByIdentifier(find, 'iphone'), 'iPhone 6s Plus');
296 | t.is(devices.generationByIdentifier(find, 'ipad'), undefined);
297 | t.throws(function() { devices.generationByIdentifier(find, 'invalidType'); });
298 | });
299 |
300 | test('Issue 23: iPad Pro (12.9-inch) (5th generation) which does not have any Model', t => {
301 | let find = 'iPad13,8';
302 | const ipadPros = devices.devices('ipad_pro');
303 | t.is(typeof ipadPros, 'object');
304 | t.is(ipadPros.filter(t => t.Identifier === find).length, 1);
305 | t.is(ipadPros.filter(t => t.Identifier === find)[0].Generation, 'iPad Pro (12.9-inch) (5th generation)');
306 | });
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | entry: "./index.js",
5 | output: {
6 | path: path.resolve(__dirname, 'dist'),
7 | filename: "ios-device-list.js",
8 | library: "iosDeviceList",
9 | libraryTarget: "umd"
10 | },
11 | mode: 'development',
12 | module: {
13 | rules: [
14 | {
15 | test: /\.js$/,
16 | use: {
17 | loader: 'babel-loader',
18 | options: {
19 | presets: ['@babel/preset-env']
20 | }
21 | }
22 | }
23 | ]
24 | }
25 | };
26 |
--------------------------------------------------------------------------------
/webpack.prod.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | entry: "./index.js",
5 | output: {
6 | path: path.resolve(__dirname, 'dist'),
7 | filename: "ios-device-list.min.js",
8 | library: "iosDeviceList",
9 | libraryTarget: "umd"
10 | },
11 | mode: 'production',
12 | module: {
13 | rules: [
14 | {
15 | test: /\.js$/,
16 | use: {
17 | loader: 'babel-loader',
18 | options: {
19 | presets: ['@babel/preset-env']
20 | }
21 | }
22 | }
23 | ]
24 | }
25 | };
26 |
--------------------------------------------------------------------------------