├── .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 | [![npm](https://img.shields.io/npm/v/ios-device-list.svg)](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 | --------------------------------------------------------------------------------