recog 2.3.5 → 2.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -5
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +7 -4
  6. data/CONTRIBUTING.md +136 -37
  7. data/Gemfile +2 -5
  8. data/README.md +34 -29
  9. data/bin/recog_cleanup +16 -0
  10. data/bin/recog_standardize +142 -0
  11. data/cpe-remap.yaml +21 -0
  12. data/features/data/successful_tests.xml +1 -1
  13. data/features/data/tests_with_warnings.xml +1 -1
  14. data/features/match.feature +4 -0
  15. data/features/support/aruba.rb +3 -0
  16. data/features/verify.feature +8 -4
  17. data/identifiers/README.md +56 -0
  18. data/identifiers/hw_device.txt +77 -0
  19. data/identifiers/hw_family.txt +96 -0
  20. data/identifiers/hw_product.txt +328 -0
  21. data/identifiers/os_architecture.txt +20 -0
  22. data/identifiers/os_device.txt +94 -0
  23. data/identifiers/os_family.txt +325 -0
  24. data/identifiers/os_product.txt +420 -0
  25. data/identifiers/service_family.txt +272 -0
  26. data/identifiers/service_product.txt +556 -0
  27. data/identifiers/software_class.txt +26 -0
  28. data/identifiers/software_family.txt +91 -0
  29. data/identifiers/software_product.txt +333 -0
  30. data/identifiers/vendor.txt +890 -0
  31. data/lib/recog/fingerprint.rb +46 -0
  32. data/lib/recog/version.rb +1 -1
  33. data/requirements.txt +1 -1
  34. data/spec/data/verification_fingerprints.xml +86 -0
  35. data/spec/lib/fingerprint_self_test_spec.rb +1 -1
  36. data/spec/lib/recog/fingerprint/regexp_factory_spec.rb +1 -1
  37. data/spec/lib/recog/fingerprint_spec.rb +89 -0
  38. data/update_cpes.py +1 -1
  39. data/xml/apache_modules.xml +292 -5
  40. data/xml/apache_os.xml +50 -2
  41. data/xml/architecture.xml +19 -7
  42. data/xml/dns_versionbind.xml +113 -11
  43. data/xml/favicons.xml +1700 -0
  44. data/xml/ftp_banners.xml +287 -15
  45. data/xml/h323_callresp.xml +112 -12
  46. data/xml/hp_pjl_id.xml +47 -5
  47. data/xml/html_title.xml +2371 -17
  48. data/xml/http_cookies.xml +82 -7
  49. data/xml/http_servers.xml +839 -41
  50. data/xml/http_wwwauth.xml +154 -27
  51. data/xml/imap_banners.xml +19 -13
  52. data/xml/ldap_searchresult.xml +81 -9
  53. data/xml/mdns_device-info_txt.xml +194 -17
  54. data/xml/mdns_workstation_txt.xml +4 -2
  55. data/xml/mysql_banners.xml +554 -45
  56. data/xml/mysql_error.xml +113 -6
  57. data/xml/nntp_banners.xml +10 -2
  58. data/xml/ntp_banners.xml +95 -11
  59. data/xml/operating_system.xml +90 -3
  60. data/xml/pop_banners.xml +30 -31
  61. data/xml/rsh_resp.xml +11 -2
  62. data/xml/rtsp_servers.xml +96 -0
  63. data/xml/sip_banners.xml +192 -17
  64. data/xml/sip_user_agents.xml +69 -3
  65. data/xml/smb_native_lm.xml +10 -2
  66. data/xml/smb_native_os.xml +80 -2
  67. data/xml/smtp_banners.xml +166 -9
  68. data/xml/smtp_debug.xml +6 -4
  69. data/xml/smtp_ehlo.xml +7 -5
  70. data/xml/smtp_expn.xml +13 -4
  71. data/xml/smtp_help.xml +23 -4
  72. data/xml/smtp_mailfrom.xml +5 -2
  73. data/xml/smtp_noop.xml +6 -5
  74. data/xml/smtp_quit.xml +5 -4
  75. data/xml/smtp_rcptto.xml +5 -2
  76. data/xml/smtp_rset.xml +4 -4
  77. data/xml/smtp_turn.xml +4 -4
  78. data/xml/smtp_vrfy.xml +14 -4
  79. data/xml/snmp_sysdescr.xml +862 -122
  80. data/xml/snmp_sysobjid.xml +47 -2
  81. data/xml/ssh_banners.xml +1153 -192
  82. data/xml/telnet_banners.xml +419 -14
  83. data/xml/x11_banners.xml +27 -4
  84. data/xml/x509_issuers.xml +39 -15
  85. data/xml/x509_subjects.xml +545 -64
  86. metadata +32 -6
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
2
  <fingerprints matches="mdns.device-info.txt" protocol="mdns" database_type="util.os">
3
3
  <!--
4
4
  Fingerprint definitions that are matched against the string values in the
@@ -7,11 +7,13 @@
7
7
  to the domain name for a server to respond with the record:
8
8
  e.g. 'host-name._device-info._tcp.local'.
9
9
  -->
10
+
10
11
  <!--
11
12
  OS X versions:
12
13
  The number specified after osxvers= is equivalent to the major
13
14
  version of OS X plus 4. E.g. osxvers=13 means OS X 10.9
14
15
  -->
16
+
15
17
  <fingerprint pattern="^osxvers=19">
16
18
  <description>OS X 10.15 (Catalina)</description>
17
19
  <example>osxvers=19</example>
@@ -21,6 +23,7 @@
21
23
  <param pos="0" name="os.version" value="10.15"/>
22
24
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.15"/>
23
25
  </fingerprint>
26
+
24
27
  <fingerprint pattern="^osxvers=18">
25
28
  <description>OS X 10.14 (Mojave)</description>
26
29
  <example>osxvers=18</example>
@@ -30,6 +33,7 @@
30
33
  <param pos="0" name="os.version" value="10.14"/>
31
34
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.14"/>
32
35
  </fingerprint>
36
+
33
37
  <fingerprint pattern="^osxvers=17">
34
38
  <description>OS X 10.13 (High Sierra)</description>
35
39
  <example>osxvers=17</example>
@@ -39,6 +43,7 @@
39
43
  <param pos="0" name="os.version" value="10.13"/>
40
44
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.13"/>
41
45
  </fingerprint>
46
+
42
47
  <fingerprint pattern="^osxvers=16">
43
48
  <description>OS X 10.12 (Sierra)</description>
44
49
  <example>osxvers=16</example>
@@ -48,6 +53,7 @@
48
53
  <param pos="0" name="os.version" value="10.12"/>
49
54
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.12"/>
50
55
  </fingerprint>
56
+
51
57
  <fingerprint pattern="^osxvers=15">
52
58
  <description>OS X 10.11 (El Capitan)</description>
53
59
  <example>osxvers=15</example>
@@ -57,6 +63,7 @@
57
63
  <param pos="0" name="os.version" value="10.11"/>
58
64
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.11"/>
59
65
  </fingerprint>
66
+
60
67
  <fingerprint pattern="^osxvers=14">
61
68
  <description>OS X 10.10 (Yosemite)</description>
62
69
  <example>osxvers=14</example>
@@ -66,6 +73,7 @@
66
73
  <param pos="0" name="os.version" value="10.10"/>
67
74
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.10"/>
68
75
  </fingerprint>
76
+
69
77
  <fingerprint pattern="^osxvers=13">
70
78
  <description>OS X 10.9 (Mavericks)</description>
71
79
  <example>osxvers=13</example>
@@ -75,6 +83,7 @@
75
83
  <param pos="0" name="os.version" value="10.9"/>
76
84
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.9"/>
77
85
  </fingerprint>
86
+
78
87
  <fingerprint pattern="^osxvers=12">
79
88
  <description>OS X 10.8 (Mountain Lion)</description>
80
89
  <example>osxvers=12</example>
@@ -84,6 +93,7 @@
84
93
  <param pos="0" name="os.version" value="10.8"/>
85
94
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.8"/>
86
95
  </fingerprint>
96
+
87
97
  <fingerprint pattern="^osxvers=11">
88
98
  <description>Mac OS X 10.7 (Lion)</description>
89
99
  <example>osxvers=11</example>
@@ -93,6 +103,7 @@
93
103
  <param pos="0" name="os.version" value="10.7"/>
94
104
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.7"/>
95
105
  </fingerprint>
106
+
96
107
  <fingerprint pattern="^osxvers=10">
97
108
  <description>Mac OS X 10.6 (Snow Leopard)</description>
98
109
  <example>osxvers=10</example>
@@ -102,6 +113,7 @@
102
113
  <param pos="0" name="os.version" value="10.6"/>
103
114
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.6"/>
104
115
  </fingerprint>
116
+
105
117
  <fingerprint pattern="^osxvers=9">
106
118
  <description>Mac OS X 10.5 (Leopard)</description>
107
119
  <example>osxvers=9</example>
@@ -111,6 +123,7 @@
111
123
  <param pos="0" name="os.version" value="10.5"/>
112
124
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.5"/>
113
125
  </fingerprint>
126
+
114
127
  <fingerprint pattern="^osxvers=8">
115
128
  <description>Mac OS X 10.4 (Tiger)</description>
116
129
  <example>osxvers=8</example>
@@ -120,6 +133,7 @@
120
133
  <param pos="0" name="os.version" value="10.4"/>
121
134
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.4"/>
122
135
  </fingerprint>
136
+
123
137
  <fingerprint pattern="^osxvers=7">
124
138
  <description>Mac OS X 10.3 (Panther)</description>
125
139
  <example>osxvers=7</example>
@@ -129,6 +143,7 @@
129
143
  <param pos="0" name="os.version" value="10.3"/>
130
144
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.3"/>
131
145
  </fingerprint>
146
+
132
147
  <fingerprint pattern="^osxvers=6">
133
148
  <description>Mac OS X 10.2 (Jaguar)</description>
134
149
  <example>osxvers=6</example>
@@ -138,6 +153,7 @@
138
153
  <param pos="0" name="os.version" value="10.2"/>
139
154
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.2"/>
140
155
  </fingerprint>
156
+
141
157
  <fingerprint pattern="^osxvers=5">
142
158
  <description>Mac OS X 10.1 (Puma)</description>
143
159
  <example>osxvers=5</example>
@@ -147,6 +163,7 @@
147
163
  <param pos="0" name="os.version" value="10.1"/>
148
164
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.1"/>
149
165
  </fingerprint>
166
+
150
167
  <fingerprint pattern="^osxvers=4">
151
168
  <description>Mac OS X 10.0 (Cheetah)</description>
152
169
  <example>osxvers=4</example>
@@ -156,8 +173,11 @@
156
173
  <param pos="0" name="os.version" value="10.0"/>
157
174
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:10.0"/>
158
175
  </fingerprint>
176
+
159
177
  <!-- AirPort Express -->
178
+
160
179
  <!-- TODO: Break this down into specific models and generations -->
180
+
161
181
  <fingerprint pattern="^model=AirPort4(?:,\d+)?$">
162
182
  <description>AirPort Express</description>
163
183
  <example>model=AirPort4</example>
@@ -171,9 +191,13 @@
171
191
  <param pos="0" name="hw.family" value="AirPort"/>
172
192
  <param pos="0" name="hw.product" value="AirPort Express"/>
173
193
  <param pos="0" name="hw.device" value="WAP"/>
194
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:airport_express:-"/>
174
195
  </fingerprint>
196
+
175
197
  <!-- AirPort Extreme -->
198
+
176
199
  <!-- TODO: Break this down into specific models and generations -->
200
+
177
201
  <fingerprint pattern="^model=AirPort5?(?:,\d+)?$">
178
202
  <description>AirPort Extreme</description>
179
203
  <example>model=AirPort</example>
@@ -188,10 +212,14 @@
188
212
  <param pos="0" name="hw.family" value="AirPort"/>
189
213
  <param pos="0" name="hw.product" value="AirPort Extreme"/>
190
214
  <param pos="0" name="hw.device" value="WAP"/>
215
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:airport_extreme:-"/>
191
216
  </fingerprint>
217
+
192
218
  <!-- TimeCapsule aka AirPort 6 -->
219
+
193
220
  <!-- TODO: Break this down into specific models and generations -->
194
- <fingerprint pattern="^model=(?:AirPort6|TimeCapsule).*$">
221
+
222
+ <fingerprint pattern="^model=(?:AirPort6|TimeCapsule).*$">
195
223
  <description>Time Capsule</description>
196
224
  <example>model=AirPort6</example>
197
225
  <example>model=AirPort6,106</example>
@@ -202,13 +230,14 @@
202
230
  <param pos="0" name="os.vendor" value="Apple"/>
203
231
  <param pos="0" name="os.family" value="Time Capsule"/>
204
232
  <param pos="0" name="os.product" value="Time Capsule Firmware"/>
205
- <param pos="0" name="os.cpe23" value="cpe:/o:apple:time_capsule_firmware:-"/>
206
233
  <param pos="0" name="hw.vendor" value="Apple"/>
207
234
  <param pos="0" name="hw.family" value="Time Capsule"/>
208
235
  <param pos="0" name="hw.product" value="Time Capsule"/>
209
236
  <param pos="0" name="hw.device" value="WAP"/>
210
237
  </fingerprint>
238
+
211
239
  <!-- MacBookPro - Reference for the following: https://support.apple.com/en-us/HT201300 -->
240
+
212
241
  <fingerprint pattern="^model=MacBookPro15,4$">
213
242
  <description>MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)</description>
214
243
  <example>model=MacBookPro15,4</example>
@@ -221,6 +250,7 @@
221
250
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)"/>
222
251
  <param pos="0" name="hw.device" value="Laptop"/>
223
252
  </fingerprint>
253
+
224
254
  <fingerprint pattern="^model=MacBookPro15,3$">
225
255
  <description>MacBook Pro (15-inch, 2019)</description>
226
256
  <example>model=MacBookPro15,3</example>
@@ -232,7 +262,8 @@
232
262
  <param pos="0" name="hw.family" value="MacBook Pro"/>
233
263
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, 2019)"/>
234
264
  <param pos="0" name="hw.device" value="Laptop"/>
235
- </fingerprint>
265
+ </fingerprint>
266
+
236
267
  <fingerprint pattern="^model=MacBookPro15,2$">
237
268
  <description>MacBook Pro (13-inch, 2018, Four Thunderbolt 3 ports)</description>
238
269
  <example>model=MacBookPro15,2</example>
@@ -245,6 +276,7 @@
245
276
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2018, Four Thunderbolt 3 ports)"/>
246
277
  <param pos="0" name="hw.device" value="Laptop"/>
247
278
  </fingerprint>
279
+
248
280
  <fingerprint pattern="^model=MacBookPro15,1$">
249
281
  <description>MacBook Pro (15-inch, 2018)</description>
250
282
  <example>model=MacBookPro15,1</example>
@@ -257,6 +289,7 @@
257
289
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, 2018)"/>
258
290
  <param pos="0" name="hw.device" value="Laptop"/>
259
291
  </fingerprint>
292
+
260
293
  <fingerprint pattern="^model=MacBookPro14,3$">
261
294
  <description>MacBook Pro (15-inch, 2017)</description>
262
295
  <example>model=MacBookPro14,3</example>
@@ -269,6 +302,7 @@
269
302
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, 2017)"/>
270
303
  <param pos="0" name="hw.device" value="Laptop"/>
271
304
  </fingerprint>
305
+
272
306
  <fingerprint pattern="^model=MacBookPro14,2$">
273
307
  <description>MacBook Pro (13-inch, 2017, Four Thunderbolt 3 ports)</description>
274
308
  <example>model=MacBookPro14,2</example>
@@ -281,6 +315,7 @@
281
315
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2017, Four Thunderbolt 3 ports)"/>
282
316
  <param pos="0" name="hw.device" value="Laptop"/>
283
317
  </fingerprint>
318
+
284
319
  <fingerprint pattern="^model=MacBookPro14,1$">
285
320
  <description>MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)</description>
286
321
  <example>model=MacBookPro14,1</example>
@@ -293,6 +328,7 @@
293
328
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)"/>
294
329
  <param pos="0" name="hw.device" value="Laptop"/>
295
330
  </fingerprint>
331
+
296
332
  <fingerprint pattern="^model=MacBookPro13,3$">
297
333
  <description>MacBook Pro (15-inch, 2016)</description>
298
334
  <example>model=MacBookPro13,3</example>
@@ -305,6 +341,7 @@
305
341
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, 2016)"/>
306
342
  <param pos="0" name="hw.device" value="Laptop"/>
307
343
  </fingerprint>
344
+
308
345
  <fingerprint pattern="^model=MacBookPro13,2$">
309
346
  <description>MacBook Pro (13-inch, 2016, Four Thunderbolt 3 ports)</description>
310
347
  <example>model=MacBookPro13,2</example>
@@ -317,6 +354,7 @@
317
354
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2016, Four Thunderbolt 3 ports)"/>
318
355
  <param pos="0" name="hw.device" value="Laptop"/>
319
356
  </fingerprint>
357
+
320
358
  <fingerprint pattern="^model=MacBookPro13,1$">
321
359
  <description>MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)</description>
322
360
  <example>model=MacBookPro13,1</example>
@@ -329,6 +367,7 @@
329
367
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)"/>
330
368
  <param pos="0" name="hw.device" value="Laptop"/>
331
369
  </fingerprint>
370
+
332
371
  <fingerprint pattern="^model=MacBookPro12,1$">
333
372
  <description>MacBook Pro (Retina, 13-inch, Early 2015)</description>
334
373
  <example>model=MacBookPro12,1</example>
@@ -341,6 +380,7 @@
341
380
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 13-inch, Early 2015)"/>
342
381
  <param pos="0" name="hw.device" value="Laptop"/>
343
382
  </fingerprint>
383
+
344
384
  <fingerprint pattern="^model=MacBookPro11,4$">
345
385
  <description>MacBook Pro (Retina, 15-inch, Mid 2015)</description>
346
386
  <example>model=MacBookPro11,4</example>
@@ -353,6 +393,7 @@
353
393
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 15-inch, Mid 2015)"/>
354
394
  <param pos="0" name="hw.device" value="Laptop"/>
355
395
  </fingerprint>
396
+
356
397
  <fingerprint pattern="^model=MacBookPro11,3$">
357
398
  <description>MacBook Pro (Retina, 15-inch, Late 2013) - rev 2</description>
358
399
  <example>model=MacBookPro11,3</example>
@@ -365,6 +406,7 @@
365
406
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 15-inch, Late 2013)"/>
366
407
  <param pos="0" name="hw.device" value="Laptop"/>
367
408
  </fingerprint>
409
+
368
410
  <fingerprint pattern="^model=MacBookPro11,2$">
369
411
  <description>MacBook Pro (Retina, 15-inch, Late 2013)</description>
370
412
  <example>model=MacBookPro11,2</example>
@@ -377,6 +419,7 @@
377
419
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 15-inch, Late 2013)"/>
378
420
  <param pos="0" name="hw.device" value="Laptop"/>
379
421
  </fingerprint>
422
+
380
423
  <fingerprint pattern="^model=MacBookPro11,1$">
381
424
  <description>MacBook Pro (Retina, 13-inch, Late 2013)</description>
382
425
  <example>model=MacBookPro11,1</example>
@@ -389,6 +432,7 @@
389
432
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 13-inch, Late 2013)"/>
390
433
  <param pos="0" name="hw.device" value="Laptop"/>
391
434
  </fingerprint>
435
+
392
436
  <fingerprint pattern="^model=MacBookPro10,2$">
393
437
  <description>MacBook Pro (Retina, 13-inch, Early 2013)</description>
394
438
  <example>model=MacBookPro10,2</example>
@@ -401,6 +445,7 @@
401
445
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 13-inch, Early 2013)"/>
402
446
  <param pos="0" name="hw.device" value="Laptop"/>
403
447
  </fingerprint>
448
+
404
449
  <fingerprint pattern="^model=MacBookPro10,1$">
405
450
  <description>MacBook Pro (Retina, 15-inch, Early 2013)</description>
406
451
  <example>model=MacBookPro10,1</example>
@@ -413,6 +458,7 @@
413
458
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 15-inch, Early 2013)"/>
414
459
  <param pos="0" name="hw.device" value="Laptop"/>
415
460
  </fingerprint>
461
+
416
462
  <fingerprint pattern="^model=MacBookPro9,2$">
417
463
  <description>MacBook Pro (13-inch, Mid 2012)</description>
418
464
  <example>model=MacBookPro9,2</example>
@@ -425,7 +471,8 @@
425
471
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, Mid 2012)"/>
426
472
  <param pos="0" name="hw.device" value="Laptop"/>
427
473
  </fingerprint>
428
- <fingerprint pattern="^model=MacBookPro8,3$">
474
+
475
+ <fingerprint pattern="^model=MacBookPro8,3$">
429
476
  <description>MacBook Pro (17-inch, Late 2011)</description>
430
477
  <example>model=MacBookPro8,3</example>
431
478
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -437,6 +484,7 @@
437
484
  <param pos="0" name="hw.product" value="MacBook Pro (17-inch, Late 2011)"/>
438
485
  <param pos="0" name="hw.device" value="Laptop"/>
439
486
  </fingerprint>
487
+
440
488
  <fingerprint pattern="^model=MacBookPro8,2$">
441
489
  <description>MacBook Pro (15-inch, Late 2011)</description>
442
490
  <example>model=MacBookPro8,2</example>
@@ -449,6 +497,7 @@
449
497
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, Late 2011)"/>
450
498
  <param pos="0" name="hw.device" value="Laptop"/>
451
499
  </fingerprint>
500
+
452
501
  <fingerprint pattern="^model=MacBookPro8,1$">
453
502
  <description>MacBook Pro (13-inch, Late 2011)</description>
454
503
  <example>model=MacBookPro8,1</example>
@@ -461,6 +510,7 @@
461
510
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, Late 2011)"/>
462
511
  <param pos="0" name="hw.device" value="Laptop"/>
463
512
  </fingerprint>
513
+
464
514
  <fingerprint pattern="^model=MacBookPro7,1$">
465
515
  <description>MacBook Pro (13-inch, Mid 2010)</description>
466
516
  <example>model=MacBookPro7,1</example>
@@ -473,7 +523,8 @@
473
523
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, Mid 2010)"/>
474
524
  <param pos="0" name="hw.device" value="Laptop"/>
475
525
  </fingerprint>
476
- <fingerprint pattern="^model=MacBookPro6,2$">
526
+
527
+ <fingerprint pattern="^model=MacBookPro6,2$">
477
528
  <description>MacBook Pro (15-inch, Mid 2010)</description>
478
529
  <example>model=MacBookPro6,2</example>
479
530
  <param pos="0" name="os.vendor" value="Apple"/>
@@ -485,6 +536,7 @@
485
536
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, Mid 2010)"/>
486
537
  <param pos="0" name="hw.device" value="Laptop"/>
487
538
  </fingerprint>
539
+
488
540
  <fingerprint pattern="^model=MacBookPro6,1$">
489
541
  <description>MacBook Pro (17-inch, Mid 2010)</description>
490
542
  <example>model=MacBookPro6,1</example>
@@ -510,6 +562,7 @@
510
562
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, Mid 2009)"/>
511
563
  <param pos="0" name="hw.device" value="Laptop"/>
512
564
  </fingerprint>
565
+
513
566
  <fingerprint pattern="^model=MacBookPro5,3$">
514
567
  <description>MacBook Pro (15-inch, Mid 2009)</description>
515
568
  <example>model=MacBookPro5,3</example>
@@ -522,6 +575,7 @@
522
575
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, Mid 2009)"/>
523
576
  <param pos="0" name="hw.device" value="Laptop"/>
524
577
  </fingerprint>
578
+
525
579
  <fingerprint pattern="^model=MacBookPro5,2$">
526
580
  <description>MacBook Pro (17-inch, Mid 2009)</description>
527
581
  <example>model=MacBookPro5,2</example>
@@ -534,6 +588,7 @@
534
588
  <param pos="0" name="hw.product" value="MacBook Pro (17-inch, Mid 2009)"/>
535
589
  <param pos="0" name="hw.device" value="Laptop"/>
536
590
  </fingerprint>
591
+
537
592
  <fingerprint pattern="^model=MacBookPro5,1$">
538
593
  <description>MacBook Pro (15-inch, Late 2008)</description>
539
594
  <example>model=MacBookPro5,1</example>
@@ -546,6 +601,7 @@
546
601
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, Late 2008)"/>
547
602
  <param pos="0" name="hw.device" value="Laptop"/>
548
603
  </fingerprint>
604
+
549
605
  <fingerprint pattern="^model=MacBookPro4,1$">
550
606
  <description>MacBook Pro (17-inch, Early 2008)</description>
551
607
  <example>model=MacBookPro4,1</example>
@@ -558,7 +614,9 @@
558
614
  <param pos="0" name="hw.product" value="MacBook Pro (17-inch, Early 2008)"/>
559
615
  <param pos="0" name="hw.device" value="Laptop"/>
560
616
  </fingerprint>
617
+
561
618
  <!-- MacBook - Reference for the following: https://support.apple.com/en-us/HT201608 -->
619
+
562
620
  <fingerprint pattern="^model=MacBook10,1$">
563
621
  <description>MacBook (Retina, 12-inch, 2017)</description>
564
622
  <example>model=MacBook10,1</example>
@@ -571,6 +629,7 @@
571
629
  <param pos="0" name="hw.product" value="MacBook (Retina, 12-inch, 2017)"/>
572
630
  <param pos="0" name="hw.device" value="Laptop"/>
573
631
  </fingerprint>
632
+
574
633
  <fingerprint pattern="^model=MacBook9,1$">
575
634
  <description>MacBook (Retina, 12-inch, Early 2016)</description>
576
635
  <example>model=MacBook9,1</example>
@@ -583,6 +642,7 @@
583
642
  <param pos="0" name="hw.product" value="MacBook (Retina, 12-inch, Early 2016)"/>
584
643
  <param pos="0" name="hw.device" value="Laptop"/>
585
644
  </fingerprint>
645
+
586
646
  <fingerprint pattern="^model=MacBook8,1$">
587
647
  <description>MacBook (Retina, 12-inch, Early 2015)</description>
588
648
  <example>model=MacBook8,1</example>
@@ -595,6 +655,7 @@
595
655
  <param pos="0" name="hw.product" value="MacBook (Retina, 12-inch, Early 2015)"/>
596
656
  <param pos="0" name="hw.device" value="Laptop"/>
597
657
  </fingerprint>
658
+
598
659
  <fingerprint pattern="^model=MacBook7,1$">
599
660
  <description>MacBook (13-inch, Mid 2010)</description>
600
661
  <example>model=MacBook7,1</example>
@@ -607,7 +668,9 @@
607
668
  <param pos="0" name="hw.product" value="MacBook (13-inch, Mid 2010)"/>
608
669
  <param pos="0" name="hw.device" value="Laptop"/>
609
670
  </fingerprint>
610
- <!-- MacBookAir - Reference for the following: https://support.apple.com/en-us/HT201862 -->
671
+
672
+ <!-- MacBookAir - Reference for the following: https://support.apple.com/en-us/HT201862 -->
673
+
611
674
  <fingerprint pattern="^model=MacBookAir8,2$">
612
675
  <description>MacBook Air (Retina, 13-inch, 2019)</description>
613
676
  <example>model=MacBookAir8,2</example>
@@ -620,6 +683,7 @@
620
683
  <param pos="0" name="hw.product" value="MacBook Air (Retina, 13-inch, 2019)"/>
621
684
  <param pos="0" name="hw.device" value="Laptop"/>
622
685
  </fingerprint>
686
+
623
687
  <fingerprint pattern="^model=MacBookAir8,1$">
624
688
  <description>MacBook Air (Retina, 13-inch, 2018)</description>
625
689
  <example>model=MacBookAir8,1</example>
@@ -632,6 +696,7 @@
632
696
  <param pos="0" name="hw.product" value="MacBook Air (Retina, 13-inch, 2018)"/>
633
697
  <param pos="0" name="hw.device" value="Laptop"/>
634
698
  </fingerprint>
699
+
635
700
  <fingerprint pattern="^model=MacBookAir7,2$">
636
701
  <description>MacBook Air (13-inch, 2017)</description>
637
702
  <example>model=MacBookAir7,2</example>
@@ -644,6 +709,7 @@
644
709
  <param pos="0" name="hw.product" value="MacBook Air (13-inch, 2017)"/>
645
710
  <param pos="0" name="hw.device" value="Laptop"/>
646
711
  </fingerprint>
712
+
647
713
  <fingerprint pattern="^model=MacBookAir7,1$">
648
714
  <description>MacBook Air (11-inch, Early 2015)</description>
649
715
  <example>model=MacBookAir7,1</example>
@@ -656,6 +722,7 @@
656
722
  <param pos="0" name="hw.product" value="MacBook Air (11-inch, Early 2015)"/>
657
723
  <param pos="0" name="hw.device" value="Laptop"/>
658
724
  </fingerprint>
725
+
659
726
  <fingerprint pattern="^model=MacBookAir6,2$">
660
727
  <description>MacBook Air (13-inch, Early 2014)</description>
661
728
  <example>model=MacBookAir6,2</example>
@@ -668,6 +735,7 @@
668
735
  <param pos="0" name="hw.product" value="MacBook Air (13-inch, Early 2014)"/>
669
736
  <param pos="0" name="hw.device" value="Laptop"/>
670
737
  </fingerprint>
738
+
671
739
  <fingerprint pattern="^model=MacBookAir6,1$">
672
740
  <description>MacBook Air (11-inch, Early 2014)</description>
673
741
  <example>model=MacBookAir6,1</example>
@@ -680,6 +748,7 @@
680
748
  <param pos="0" name="hw.product" value="MacBook Air (11-inch, Early 2014)"/>
681
749
  <param pos="0" name="hw.device" value="Laptop"/>
682
750
  </fingerprint>
751
+
683
752
  <fingerprint pattern="^model=MacBookAir5,2$">
684
753
  <description>MacBook Air (13-inch, Mid 2012)</description>
685
754
  <example>model=MacBookAir5,2</example>
@@ -692,6 +761,7 @@
692
761
  <param pos="0" name="hw.product" value="MacBook Air (13-inch, Mid 2012)"/>
693
762
  <param pos="0" name="hw.device" value="Laptop"/>
694
763
  </fingerprint>
764
+
695
765
  <fingerprint pattern="^model=MacBookAir5,1$">
696
766
  <description>MacBook Air (11-inch, Mid 2012)</description>
697
767
  <example>model=MacBookAir5,1</example>
@@ -704,6 +774,7 @@
704
774
  <param pos="0" name="hw.product" value="MacBook Air (11-inch, Mid 2012)"/>
705
775
  <param pos="0" name="hw.device" value="Laptop"/>
706
776
  </fingerprint>
777
+
707
778
  <fingerprint pattern="^model=MacBookAir4,2$">
708
779
  <description>MacBook Air (13-inch, Mid 2011)</description>
709
780
  <example>model=MacBookAir4,2</example>
@@ -716,6 +787,7 @@
716
787
  <param pos="0" name="hw.product" value="MacBook Air (13-inch, Mid 2011)"/>
717
788
  <param pos="0" name="hw.device" value="Laptop"/>
718
789
  </fingerprint>
790
+
719
791
  <fingerprint pattern="^model=MacBookAir4,1$">
720
792
  <description>MacBook Air (11-inch, Mid 2011)</description>
721
793
  <example>model=MacBookAir4,1</example>
@@ -728,6 +800,7 @@
728
800
  <param pos="0" name="hw.product" value="MacBook Air (11-inch, Mid 2011)"/>
729
801
  <param pos="0" name="hw.device" value="Laptop"/>
730
802
  </fingerprint>
803
+
731
804
  <fingerprint pattern="^model=MacBookAir3,2$">
732
805
  <description>MacBook Air (13-inch, Late 2010)</description>
733
806
  <example>model=MacBookAir3,2</example>
@@ -740,6 +813,7 @@
740
813
  <param pos="0" name="hw.product" value="MacBook Air (13-inch, Late 2010)"/>
741
814
  <param pos="0" name="hw.device" value="Laptop"/>
742
815
  </fingerprint>
816
+
743
817
  <fingerprint pattern="^model=MacBookAir3,1$">
744
818
  <description>MacBook Air (11-inch, Late 2010)</description>
745
819
  <example>model=MacBookAir3,1</example>
@@ -752,6 +826,7 @@
752
826
  <param pos="0" name="hw.product" value="MacBook Air (11-inch, Late 2010)"/>
753
827
  <param pos="0" name="hw.device" value="Laptop"/>
754
828
  </fingerprint>
829
+
755
830
  <fingerprint pattern="^model=MacBookAir2,1$">
756
831
  <description>MacBook Air (Mid 2009)</description>
757
832
  <example>model=MacBookAir2,1</example>
@@ -764,7 +839,9 @@
764
839
  <param pos="0" name="hw.product" value="MacBook Air (Mid 2009)"/>
765
840
  <param pos="0" name="hw.device" value="Laptop"/>
766
841
  </fingerprint>
842
+
767
843
  <!-- MacMini - Reference for the following: https://support.apple.com/en-us/HT201894 -->
844
+
768
845
  <fingerprint pattern="^model=Macmini8,1$">
769
846
  <description>Mac mini (Late 2018)</description>
770
847
  <example>model=Macmini8,1</example>
@@ -776,7 +853,8 @@
776
853
  <param pos="0" name="hw.family" value="Mac mini"/>
777
854
  <param pos="0" name="hw.product" value="Mac mini (Late 2018)"/>
778
855
  <param pos="0" name="hw.device" value="Desktop"/>
779
- </fingerprint>
856
+ </fingerprint>
857
+
780
858
  <fingerprint pattern="^model=Macmini7,1$">
781
859
  <description>Mac mini (Late 2014)</description>
782
860
  <example>model=Macmini7,1</example>
@@ -789,6 +867,7 @@
789
867
  <param pos="0" name="hw.product" value="Mac mini (Late 2014)"/>
790
868
  <param pos="0" name="hw.device" value="Desktop"/>
791
869
  </fingerprint>
870
+
792
871
  <fingerprint pattern="^model=Macmini6,2$">
793
872
  <description>Mac mini (Late 2012) - rev 2</description>
794
873
  <example>model=Macmini6,2</example>
@@ -801,6 +880,7 @@
801
880
  <param pos="0" name="hw.product" value="Mac mini (Late 2012)"/>
802
881
  <param pos="0" name="hw.device" value="Desktop"/>
803
882
  </fingerprint>
883
+
804
884
  <fingerprint pattern="^model=Macmini6,1$">
805
885
  <description>Mac mini (Late 2012)</description>
806
886
  <example>model=Macmini6,1</example>
@@ -813,6 +893,7 @@
813
893
  <param pos="0" name="hw.product" value="Mac mini (Late 2012)"/>
814
894
  <param pos="0" name="hw.device" value="Desktop"/>
815
895
  </fingerprint>
896
+
816
897
  <fingerprint pattern="^model=Macmini5,[12]$">
817
898
  <description>Mac mini (Mid 2011)</description>
818
899
  <example>model=Macmini5,1</example>
@@ -825,6 +906,7 @@
825
906
  <param pos="0" name="hw.product" value="Mac mini (Mid 2011)"/>
826
907
  <param pos="0" name="hw.device" value="Desktop"/>
827
908
  </fingerprint>
909
+
828
910
  <fingerprint pattern="^model=Macmini4,1$">
829
911
  <description>Mac mini (Mid 2010)</description>
830
912
  <example>model=Macmini4,1</example>
@@ -837,6 +919,7 @@
837
919
  <param pos="0" name="hw.product" value="Mac mini (Mid 2010)"/>
838
920
  <param pos="0" name="hw.device" value="Desktop"/>
839
921
  </fingerprint>
922
+
840
923
  <fingerprint pattern="^model=Macmini3,1$">
841
924
  <description>Mac mini (Late 2009)</description>
842
925
  <example>model=Macmini3,1</example>
@@ -849,7 +932,9 @@
849
932
  <param pos="0" name="hw.product" value="Mac mini (Late 2009)"/>
850
933
  <param pos="0" name="hw.device" value="Desktop"/>
851
934
  </fingerprint>
935
+
852
936
  <!-- Listed at https://en.wikipedia.org/wiki/Mac_Mini#2nd_generation_(Intel-based,_2006-2009) -->
937
+
853
938
  <fingerprint pattern="^model=Macmini2,1$">
854
939
  <description>Mac mini (Mid 2007)</description>
855
940
  <example>model=Macmini2,1</example>
@@ -862,7 +947,9 @@
862
947
  <param pos="0" name="hw.product" value="Mac mini (Mid 2007)"/>
863
948
  <param pos="0" name="hw.device" value="Desktop"/>
864
949
  </fingerprint>
950
+
865
951
  <!-- MacPro - Reference for the following: https://support.apple.com/en-us/HT202888 -->
952
+
866
953
  <fingerprint pattern="^model=MacPro7,1$">
867
954
  <description>Mac Pro (Late 2019)</description>
868
955
  <example>model=MacPro7,1</example>
@@ -875,6 +962,7 @@
875
962
  <param pos="0" name="hw.product" value="Mac Pro (Late 2019)"/>
876
963
  <param pos="0" name="hw.device" value="Desktop"/>
877
964
  </fingerprint>
965
+
878
966
  <fingerprint pattern="^model=MacPro6,1$">
879
967
  <description>Mac Pro (Late 2013)</description>
880
968
  <example>model=MacPro6,1</example>
@@ -887,6 +975,7 @@
887
975
  <param pos="0" name="hw.product" value="Mac Pro (Late 2013)"/>
888
976
  <param pos="0" name="hw.device" value="Desktop"/>
889
977
  </fingerprint>
978
+
890
979
  <fingerprint pattern="^model=MacPro5,1$">
891
980
  <description>Mac Pro (Mid 2012)</description>
892
981
  <example>model=MacPro5,1</example>
@@ -899,6 +988,7 @@
899
988
  <param pos="0" name="hw.product" value="Mac Pro (Mid 2012)"/>
900
989
  <param pos="0" name="hw.device" value="Desktop"/>
901
990
  </fingerprint>
991
+
902
992
  <fingerprint pattern="^model=MacPro4,1$">
903
993
  <description>Mac Pro (Early 2009)</description>
904
994
  <example>model=MacPro4,1</example>
@@ -911,7 +1001,9 @@
911
1001
  <param pos="0" name="hw.product" value="Mac Pro (Early 2009)"/>
912
1002
  <param pos="0" name="hw.device" value="Desktop"/>
913
1003
  </fingerprint>
1004
+
914
1005
  <!-- MacPro older models listed at https://en.wikipedia.org/wiki/Mac_Pro -->
1006
+
915
1007
  <fingerprint pattern="^model=MacPro3,1$">
916
1008
  <description>Mac Pro (Early 2008)</description>
917
1009
  <example>model=MacPro3,1</example>
@@ -924,6 +1016,7 @@
924
1016
  <param pos="0" name="hw.product" value="Mac Pro (Early 2008)"/>
925
1017
  <param pos="0" name="hw.device" value="Desktop"/>
926
1018
  </fingerprint>
1019
+
927
1020
  <fingerprint pattern="^model=MacPro2,1$">
928
1021
  <description>Mac Pro (Mid 2007)</description>
929
1022
  <example>model=MacPro2,1</example>
@@ -936,7 +1029,9 @@
936
1029
  <param pos="0" name="hw.product" value="Mac Pro (Mid 2007)"/>
937
1030
  <param pos="0" name="hw.device" value="Desktop"/>
938
1031
  </fingerprint>
1032
+
939
1033
  <!-- MacPro with no model assumed to early 1,1 -->
1034
+
940
1035
  <fingerprint pattern="^model=MacPro(?:1,1)?$">
941
1036
  <description>Mac Pro (Mid 2006)</description>
942
1037
  <example>model=MacPro1,1</example>
@@ -950,7 +1045,9 @@
950
1045
  <param pos="0" name="hw.product" value="Mac Pro (Mid 2006)"/>
951
1046
  <param pos="0" name="hw.device" value="Desktop"/>
952
1047
  </fingerprint>
1048
+
953
1049
  <!-- XServe - Reference for the following: https://en.wikipedia.org/wiki/Xserve -->
1050
+
954
1051
  <fingerprint pattern="^model=Xserve3,1$">
955
1052
  <description>Xserve (Early 2009)</description>
956
1053
  <example>model=Xserve3,1</example>
@@ -962,6 +1059,7 @@
962
1059
  <param pos="0" name="hw.family" value="Xserve"/>
963
1060
  <param pos="0" name="hw.product" value="Xserve (Early 2009)"/>
964
1061
  </fingerprint>
1062
+
965
1063
  <fingerprint pattern="^model=Xserve2,1$">
966
1064
  <description>Xserve (Early 2008)</description>
967
1065
  <example>model=Xserve2,1</example>
@@ -973,6 +1071,7 @@
973
1071
  <param pos="0" name="hw.family" value="Xserve"/>
974
1072
  <param pos="0" name="hw.product" value="Xserve (Early 2008)"/>
975
1073
  </fingerprint>
1074
+
976
1075
  <fingerprint pattern="^model=Xserve1,1$">
977
1076
  <description>Xserve (Late 2006)</description>
978
1077
  <example>model=Xserve1,1</example>
@@ -984,6 +1083,7 @@
984
1083
  <param pos="0" name="hw.family" value="Xserve"/>
985
1084
  <param pos="0" name="hw.product" value="Xserve (Late 2006)"/>
986
1085
  </fingerprint>
1086
+
987
1087
  <fingerprint pattern="^model=RackMac3,1$">
988
1088
  <description>Xserve G5</description>
989
1089
  <example>model=RackMac3,1</example>
@@ -995,6 +1095,7 @@
995
1095
  <param pos="0" name="hw.family" value="Xserve"/>
996
1096
  <param pos="0" name="hw.product" value="Xserve G5"/>
997
1097
  </fingerprint>
1098
+
998
1099
  <fingerprint pattern="^model=RackMac1,2$">
999
1100
  <description>Xserve G4 (Slot Load)</description>
1000
1101
  <example>model=RackMac1,2</example>
@@ -1006,6 +1107,7 @@
1006
1107
  <param pos="0" name="hw.family" value="Xserve"/>
1007
1108
  <param pos="0" name="hw.product" value="Xserve G4 (Slot Load)"/>
1008
1109
  </fingerprint>
1110
+
1009
1111
  <fingerprint pattern="^model=RackMac1,1$">
1010
1112
  <description>Xserve G4</description>
1011
1113
  <example>model=RackMac1,1</example>
@@ -1017,7 +1119,9 @@
1017
1119
  <param pos="0" name="hw.family" value="Xserve"/>
1018
1120
  <param pos="0" name="hw.product" value="Xserve G4"/>
1019
1121
  </fingerprint>
1122
+
1020
1123
  <!-- iMAC - Reference for the following: https://support.apple.com/en-us/HT201634 -->
1124
+
1021
1125
  <fingerprint pattern="^model=iMac19,1$">
1022
1126
  <description>iMac (Retina 5K, 27-inch, 2019)</description>
1023
1127
  <example>model=iMac19,1</example>
@@ -1030,6 +1134,7 @@
1030
1134
  <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, 2019)"/>
1031
1135
  <param pos="0" name="hw.device" value="Desktop"/>
1032
1136
  </fingerprint>
1137
+
1033
1138
  <fingerprint pattern="^model=iMac19,2$">
1034
1139
  <description>iMac (Retina 4K, 21.5-inch, 2019)</description>
1035
1140
  <example>model=iMac19,2</example>
@@ -1042,6 +1147,7 @@
1042
1147
  <param pos="0" name="hw.product" value="iMac (Retina 4K, 21.5-inch, 2019)"/>
1043
1148
  <param pos="0" name="hw.device" value="Desktop"/>
1044
1149
  </fingerprint>
1150
+
1045
1151
  <fingerprint pattern="^model=iMacPro1,1$">
1046
1152
  <description>iMac Pro (Retina 5K, Late 2017)</description>
1047
1153
  <example>model=iMacPro1,1</example>
@@ -1054,6 +1160,7 @@
1054
1160
  <param pos="0" name="hw.product" value="iMac Pro (Retina 5K, Late 2017)"/>
1055
1161
  <param pos="0" name="hw.device" value="Desktop"/>
1056
1162
  </fingerprint>
1163
+
1057
1164
  <fingerprint pattern="^model=iMac18,3$">
1058
1165
  <description>iMac (Retina 5K, 27-inch, 2017)</description>
1059
1166
  <example>model=iMac18,3</example>
@@ -1066,6 +1173,7 @@
1066
1173
  <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, 2017)"/>
1067
1174
  <param pos="0" name="hw.device" value="Desktop"/>
1068
1175
  </fingerprint>
1176
+
1069
1177
  <fingerprint pattern="^model=iMac18,2$">
1070
1178
  <description>iMac (Retina 4K, 21.5-inch, 2017)</description>
1071
1179
  <example>model=iMac18,2</example>
@@ -1078,6 +1186,7 @@
1078
1186
  <param pos="0" name="hw.product" value="iMac (Retina 4K, 21.5-inch, 2017)"/>
1079
1187
  <param pos="0" name="hw.device" value="Desktop"/>
1080
1188
  </fingerprint>
1189
+
1081
1190
  <fingerprint pattern="^model=iMac18,1$">
1082
1191
  <description>iMac (21.5-inch, 2017)</description>
1083
1192
  <example>model=iMac18,1</example>
@@ -1090,6 +1199,7 @@
1090
1199
  <param pos="0" name="hw.product" value="iMac (21.5-inch, 2017)"/>
1091
1200
  <param pos="0" name="hw.device" value="Desktop"/>
1092
1201
  </fingerprint>
1202
+
1093
1203
  <fingerprint pattern="^model=iMac17,1$">
1094
1204
  <description>iMac (Retina 5K, 27-inch, Late 2015)</description>
1095
1205
  <example>model=iMac17,1</example>
@@ -1102,6 +1212,7 @@
1102
1212
  <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, Late 2015)"/>
1103
1213
  <param pos="0" name="hw.device" value="Desktop"/>
1104
1214
  </fingerprint>
1215
+
1105
1216
  <fingerprint pattern="^model=iMac16,2$">
1106
1217
  <description>iMac (Retina 4K, 21.5-inch, Late 2015)</description>
1107
1218
  <example>model=iMac16,2</example>
@@ -1114,6 +1225,7 @@
1114
1225
  <param pos="0" name="hw.product" value="iMac (Retina 4K, 21.5-inch, Late 2015)"/>
1115
1226
  <param pos="0" name="hw.device" value="Desktop"/>
1116
1227
  </fingerprint>
1228
+
1117
1229
  <fingerprint pattern="^model=iMac16,1$">
1118
1230
  <description>iMac (21.5-inch, Late 2015)</description>
1119
1231
  <example>model=iMac16,1</example>
@@ -1126,6 +1238,7 @@
1126
1238
  <param pos="0" name="hw.product" value="iMac (21.5-inch, Late 2015)"/>
1127
1239
  <param pos="0" name="hw.device" value="Desktop"/>
1128
1240
  </fingerprint>
1241
+
1129
1242
  <fingerprint pattern="^model=iMac15,1$">
1130
1243
  <description>iMac (Retina 5K, 27-inch, Mid 2015)</description>
1131
1244
  <example>model=iMac15,1</example>
@@ -1138,6 +1251,7 @@
1138
1251
  <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, Mid 2015)"/>
1139
1252
  <param pos="0" name="hw.device" value="Desktop"/>
1140
1253
  </fingerprint>
1254
+
1141
1255
  <fingerprint pattern="^model=iMac14,4$">
1142
1256
  <description>iMac (21.5-inch, Mid 2014)</description>
1143
1257
  <example>model=iMac14,4</example>
@@ -1150,6 +1264,7 @@
1150
1264
  <param pos="0" name="hw.product" value="iMac (21.5-inch, Mid 2014)"/>
1151
1265
  <param pos="0" name="hw.device" value="Desktop"/>
1152
1266
  </fingerprint>
1267
+
1153
1268
  <fingerprint pattern="^model=iMac14,2$">
1154
1269
  <description>iMac (27-inch, Late 2013)</description>
1155
1270
  <example>model=iMac14,2</example>
@@ -1162,6 +1277,7 @@
1162
1277
  <param pos="0" name="hw.product" value="iMac (27-inch, Late 2013)"/>
1163
1278
  <param pos="0" name="hw.device" value="Desktop"/>
1164
1279
  </fingerprint>
1280
+
1165
1281
  <fingerprint pattern="^model=iMac14,1$">
1166
1282
  <description>iMac (21.5-inch, Late 2013)</description>
1167
1283
  <example>model=iMac14,1</example>
@@ -1174,6 +1290,7 @@
1174
1290
  <param pos="0" name="hw.product" value="iMac (21.5-inch, Late 2013)"/>
1175
1291
  <param pos="0" name="hw.device" value="Desktop"/>
1176
1292
  </fingerprint>
1293
+
1177
1294
  <fingerprint pattern="^model=iMac13,2$">
1178
1295
  <description>iMac (27-inch, Late 2012)</description>
1179
1296
  <example>model=iMac13,2</example>
@@ -1186,6 +1303,7 @@
1186
1303
  <param pos="0" name="hw.product" value="iMac (27-inch, Late 2012)"/>
1187
1304
  <param pos="0" name="hw.device" value="Desktop"/>
1188
1305
  </fingerprint>
1306
+
1189
1307
  <fingerprint pattern="^model=iMac13,1$">
1190
1308
  <description>iMac (21.5-inch, Late 2012)</description>
1191
1309
  <example>model=iMac13,1</example>
@@ -1198,6 +1316,7 @@
1198
1316
  <param pos="0" name="hw.product" value="iMac (21.5-inch, Late 2012)"/>
1199
1317
  <param pos="0" name="hw.device" value="Desktop"/>
1200
1318
  </fingerprint>
1319
+
1201
1320
  <fingerprint pattern="^model=iMac12,2$">
1202
1321
  <description>iMac (27-inch, Mid 2011)</description>
1203
1322
  <example>model=iMac12,2</example>
@@ -1210,6 +1329,7 @@
1210
1329
  <param pos="0" name="hw.product" value="iMac (27-inch, Mid 2011)"/>
1211
1330
  <param pos="0" name="hw.device" value="Desktop"/>
1212
1331
  </fingerprint>
1332
+
1213
1333
  <fingerprint pattern="^model=iMac12,1$">
1214
1334
  <description>iMac (21.5-inch, Mid 2011)</description>
1215
1335
  <example>model=iMac12,1</example>
@@ -1222,6 +1342,7 @@
1222
1342
  <param pos="0" name="hw.product" value="iMac (21.5-inch, Mid 2011)"/>
1223
1343
  <param pos="0" name="hw.device" value="Desktop"/>
1224
1344
  </fingerprint>
1345
+
1225
1346
  <fingerprint pattern="^model=iMac11,3$">
1226
1347
  <description>iMac (27-inch, Mid 2010)</description>
1227
1348
  <example>model=iMac11,3</example>
@@ -1234,6 +1355,7 @@
1234
1355
  <param pos="0" name="hw.product" value="iMac (27-inch, Mid 2010)"/>
1235
1356
  <param pos="0" name="hw.device" value="Desktop"/>
1236
1357
  </fingerprint>
1358
+
1237
1359
  <fingerprint pattern="^model=iMac11,2$">
1238
1360
  <description>iMac (21.5-inch, Mid 2010)</description>
1239
1361
  <example>model=iMac11,2</example>
@@ -1246,6 +1368,7 @@
1246
1368
  <param pos="0" name="hw.product" value="iMac (21.5-inch, Mid 2010)"/>
1247
1369
  <param pos="0" name="hw.device" value="Desktop"/>
1248
1370
  </fingerprint>
1371
+
1249
1372
  <fingerprint pattern="^model=iMac10,1$">
1250
1373
  <description>iMac (27-inch, Late 2009)</description>
1251
1374
  <example>model=iMac10,1</example>
@@ -1258,6 +1381,7 @@
1258
1381
  <param pos="0" name="hw.product" value="iMac (27-inch, Late 2009)"/>
1259
1382
  <param pos="0" name="hw.device" value="Desktop"/>
1260
1383
  </fingerprint>
1384
+
1261
1385
  <fingerprint pattern="^model=iMac9,1$">
1262
1386
  <description>iMac (24-inch, Early 2009)</description>
1263
1387
  <example>model=iMac9,1</example>
@@ -1270,7 +1394,9 @@
1270
1394
  <param pos="0" name="hw.product" value="iMac (24-inch, Early 2009)"/>
1271
1395
  <param pos="0" name="hw.device" value="Desktop"/>
1272
1396
  </fingerprint>
1397
+
1273
1398
  <!-- iPad Pro - Reference for the following: https://www.theiphonewiki.com/ -->
1399
+
1274
1400
  <fingerprint pattern="^model=J32[01]x?AP$">
1275
1401
  <description>iPad Pro (12.9-inch)</description>
1276
1402
  <example>model=J320AP</example>
@@ -1284,6 +1410,7 @@
1284
1410
  <param pos="0" name="hw.product" value="iPad Pro (12.9-inch)"/>
1285
1411
  <param pos="0" name="hw.device" value="Tablet"/>
1286
1412
  </fingerprint>
1413
+
1287
1414
  <fingerprint pattern="^model=J31[78]x?AP$">
1288
1415
  <description>iPad Pro (11-inch)</description>
1289
1416
  <example>model=J317AP</example>
@@ -1297,6 +1424,7 @@
1297
1424
  <param pos="0" name="hw.product" value="iPad Pro (11-inch)"/>
1298
1425
  <param pos="0" name="hw.device" value="Tablet"/>
1299
1426
  </fingerprint>
1427
+
1300
1428
  <fingerprint pattern="^model=J20[78]AP$">
1301
1429
  <description>iPad Pro (10.5-inch)</description>
1302
1430
  <example>model=J207AP</example>
@@ -1309,6 +1437,7 @@
1309
1437
  <param pos="0" name="hw.product" value="iPad Pro (10.5-inch)"/>
1310
1438
  <param pos="0" name="hw.device" value="Tablet"/>
1311
1439
  </fingerprint>
1440
+
1312
1441
  <fingerprint pattern="^model=J12[78]AP$">
1313
1442
  <description>iPad Pro (9.7-inch)</description>
1314
1443
  <example>model=J127AP</example>
@@ -1321,7 +1450,9 @@
1321
1450
  <param pos="0" name="hw.product" value="iPad Pro (9.7-inch)"/>
1322
1451
  <param pos="0" name="hw.device" value="Tablet"/>
1323
1452
  </fingerprint>
1453
+
1324
1454
  <!-- iPad -->
1455
+
1325
1456
  <fingerprint pattern="^model=J7[12]bAP$">
1326
1457
  <description>iPad 6th generation)</description>
1327
1458
  <example>model=J72bAP</example>
@@ -1335,6 +1466,7 @@
1335
1466
  <param pos="0" name="hw.product" value="iPad (6th generation)"/>
1336
1467
  <param pos="0" name="hw.device" value="Tablet"/>
1337
1468
  </fingerprint>
1469
+
1338
1470
  <fingerprint pattern="^model=J71[ts]AP$">
1339
1471
  <description>iPad (5th generation)</description>
1340
1472
  <example>model=J71tAP</example>
@@ -1347,6 +1479,7 @@
1347
1479
  <param pos="0" name="hw.product" value="iPad (5th generation)"/>
1348
1480
  <param pos="0" name="hw.device" value="Tablet"/>
1349
1481
  </fingerprint>
1482
+
1350
1483
  <fingerprint pattern="^model=P10[123]AP$">
1351
1484
  <description>iPad (4th generation)</description>
1352
1485
  <example>model=P103AP</example>
@@ -1358,8 +1491,10 @@
1358
1491
  <param pos="0" name="hw.family" value="iPad"/>
1359
1492
  <param pos="0" name="hw.product" value="iPad (4th generation)"/>
1360
1493
  <param pos="0" name="hw.device" value="Tablet"/>
1361
- </fingerprint>
1494
+ </fingerprint>
1495
+
1362
1496
  <!-- iPad Air -->
1497
+
1363
1498
  <fingerprint pattern="^model=J21[78]AP$">
1364
1499
  <description>iPad Air (3rd generation)</description>
1365
1500
  <example>model=J218AP</example>
@@ -1372,6 +1507,7 @@
1372
1507
  <param pos="0" name="hw.product" value="iPad Air (3rd generation)"/>
1373
1508
  <param pos="0" name="hw.device" value="Tablet"/>
1374
1509
  </fingerprint>
1510
+
1375
1511
  <fingerprint pattern="^model=J8[12]AP$">
1376
1512
  <description>iPad Air 2</description>
1377
1513
  <example>model=J81AP</example>
@@ -1383,7 +1519,8 @@
1383
1519
  <param pos="0" name="hw.family" value="iPad Air"/>
1384
1520
  <param pos="0" name="hw.product" value="iPad Air 2"/>
1385
1521
  <param pos="0" name="hw.device" value="Tablet"/>
1386
- </fingerprint>
1522
+ </fingerprint>
1523
+
1387
1524
  <fingerprint pattern="^model=J7[123]AP$">
1388
1525
  <description>iPad Air</description>
1389
1526
  <example>model=J72AP</example>
@@ -1396,7 +1533,9 @@
1396
1533
  <param pos="0" name="hw.product" value="iPad Air"/>
1397
1534
  <param pos="0" name="hw.device" value="Tablet"/>
1398
1535
  </fingerprint>
1536
+
1399
1537
  <!-- iPad mini -->
1538
+
1400
1539
  <fingerprint pattern="^model=J21[01]AP$">
1401
1540
  <description>iPad mini (5th generation)</description>
1402
1541
  <example>model=J210AP</example>
@@ -1409,6 +1548,7 @@
1409
1548
  <param pos="0" name="hw.product" value="iPad mini (5th generation)"/>
1410
1549
  <param pos="0" name="hw.device" value="Tablet"/>
1411
1550
  </fingerprint>
1551
+
1412
1552
  <fingerprint pattern="^model=J9[67]AP$">
1413
1553
  <description>iPad mini 4</description>
1414
1554
  <example>model=J97AP</example>
@@ -1421,6 +1561,7 @@
1421
1561
  <param pos="0" name="hw.product" value="iPad mini 4"/>
1422
1562
  <param pos="0" name="hw.device" value="Tablet"/>
1423
1563
  </fingerprint>
1564
+
1424
1565
  <fingerprint pattern="^model=J8[567]mAP$">
1425
1566
  <description>iPad mini 3</description>
1426
1567
  <example>model=J87mAP</example>
@@ -1433,6 +1574,7 @@
1433
1574
  <param pos="0" name="hw.product" value="iPad mini 3"/>
1434
1575
  <param pos="0" name="hw.device" value="Tablet"/>
1435
1576
  </fingerprint>
1577
+
1436
1578
  <fingerprint pattern="^model=J8[567]AP$">
1437
1579
  <description>iPad mini 2</description>
1438
1580
  <example>model=J85AP</example>
@@ -1445,6 +1587,7 @@
1445
1587
  <param pos="0" name="hw.product" value="iPad mini 2"/>
1446
1588
  <param pos="0" name="hw.device" value="Tablet"/>
1447
1589
  </fingerprint>
1590
+
1448
1591
  <fingerprint pattern="^model=P10[567]AP$">
1449
1592
  <description>iPad mini</description>
1450
1593
  <example>model=P105AP</example>
@@ -1456,8 +1599,11 @@
1456
1599
  <param pos="0" name="hw.family" value="iPad mini"/>
1457
1600
  <param pos="0" name="hw.product" value="iPad mini"/>
1458
1601
  <param pos="0" name="hw.device" value="Tablet"/>
1602
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:ipad_mini:-"/>
1459
1603
  </fingerprint>
1604
+
1460
1605
  <!-- HomePod -->
1606
+
1461
1607
  <fingerprint pattern="^model=B238a?AP$">
1462
1608
  <description>HomePod</description>
1463
1609
  <example>model=B238aAP</example>
@@ -1465,64 +1611,70 @@
1465
1611
  <param pos="0" name="os.vendor" value="Apple"/>
1466
1612
  <param pos="0" name="os.family" value="audioOS"/>
1467
1613
  <param pos="0" name="os.product" value="audioOS"/>
1468
- <param pos="0" name="os.cpe23" value="cpe:/o:apple:audio_os:-"/>
1469
1614
  <param pos="0" name="hw.vendor" value="Apple"/>
1470
1615
  <param pos="0" name="hw.family" value="HomePod"/>
1471
1616
  <param pos="0" name="hw.product" value="HomePod"/>
1472
1617
  <param pos="0" name="hw.device" value="Media Server"/>
1473
1618
  </fingerprint>
1619
+
1474
1620
  <!-- Apple TV -->
1621
+
1475
1622
  <fingerprint pattern="^model=J105aAP$">
1476
1623
  <description>Apple TV 4K</description>
1477
1624
  <example>model=J105aAP</example>
1478
1625
  <param pos="0" name="os.vendor" value="Apple"/>
1479
1626
  <param pos="0" name="os.family" value="tvOS"/>
1480
1627
  <param pos="0" name="os.product" value="tvOS"/>
1481
- <param pos="0" name="os.cpe23" value="cpe:/o:apple:tv_os:-"/>
1628
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1482
1629
  <param pos="0" name="hw.vendor" value="Apple"/>
1483
1630
  <param pos="0" name="hw.family" value="Apple TV"/>
1484
1631
  <param pos="0" name="hw.product" value="Apple TV 4K"/>
1485
1632
  <param pos="0" name="hw.device" value="Media Server"/>
1486
1633
  </fingerprint>
1634
+
1487
1635
  <fingerprint pattern="^model=J42dAP$">
1488
1636
  <description>Apple TV (4th generation)</description>
1489
1637
  <example>model=J42dAP</example>
1490
1638
  <param pos="0" name="os.vendor" value="Apple"/>
1491
1639
  <param pos="0" name="os.family" value="tvOS"/>
1492
1640
  <param pos="0" name="os.product" value="tvOS"/>
1493
- <param pos="0" name="os.cpe23" value="cpe:/o:apple:tv_os:-"/>
1641
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1494
1642
  <param pos="0" name="hw.vendor" value="Apple"/>
1495
1643
  <param pos="0" name="hw.family" value="Apple TV"/>
1496
1644
  <param pos="0" name="hw.product" value="Apple TV (4th generation)"/>
1497
1645
  <param pos="0" name="hw.device" value="Media Server"/>
1498
1646
  </fingerprint>
1647
+
1499
1648
  <fingerprint pattern="^model=J33[Ii]?AP$">
1500
1649
  <description>Apple TV (3rd generation)</description>
1501
1650
  <example>model=J33IAP</example>
1502
1651
  <example>model=J33iAP</example>
1503
- <example>model=J33AP</example>
1652
+ <example>model=J33AP</example>
1504
1653
  <param pos="0" name="os.vendor" value="Apple"/>
1505
1654
  <param pos="0" name="os.family" value="tvOS"/>
1506
1655
  <param pos="0" name="os.product" value="tvOS"/>
1507
- <param pos="0" name="os.cpe23" value="cpe:/o:apple:tv_os:-"/>
1656
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1508
1657
  <param pos="0" name="hw.vendor" value="Apple"/>
1509
1658
  <param pos="0" name="hw.family" value="Apple TV"/>
1510
1659
  <param pos="0" name="hw.product" value="Apple TV (3rd generation)"/>
1511
1660
  <param pos="0" name="hw.device" value="Media Server"/>
1512
1661
  </fingerprint>
1662
+
1513
1663
  <fingerprint pattern="^model=K66AP$">
1514
1664
  <description>Apple TV (2nd generation)</description>
1515
1665
  <example>model=K66AP</example>
1516
1666
  <param pos="0" name="os.vendor" value="Apple"/>
1517
1667
  <param pos="0" name="os.family" value="tvOS"/>
1518
1668
  <param pos="0" name="os.product" value="tvOS"/>
1519
- <param pos="0" name="os.cpe23" value="cpe:/o:apple:tv_os:-"/>
1669
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1520
1670
  <param pos="0" name="hw.vendor" value="Apple"/>
1521
1671
  <param pos="0" name="hw.family" value="Apple TV"/>
1522
1672
  <param pos="0" name="hw.product" value="Apple TV (2nd generation)"/>
1523
1673
  <param pos="0" name="hw.device" value="Media Server"/>
1524
1674
  </fingerprint>
1675
+
1525
1676
  <!-- iPad Pro - Reference for the following: https://www.theiphonewiki.com/ -->
1677
+
1526
1678
  <fingerprint pattern="^model=D331p?AP$">
1527
1679
  <description>iPhone XS Max</description>
1528
1680
  <example>model=D331pAP</example>
@@ -1536,6 +1688,7 @@
1536
1688
  <param pos="0" name="hw.product" value="iPhone XS Max"/>
1537
1689
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1538
1690
  </fingerprint>
1691
+
1539
1692
  <fingerprint pattern="^model=D321AP$">
1540
1693
  <description>iPhone XS</description>
1541
1694
  <example>model=D321AP</example>
@@ -1548,6 +1701,7 @@
1548
1701
  <param pos="0" name="hw.product" value="iPhone XS"/>
1549
1702
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1550
1703
  </fingerprint>
1704
+
1551
1705
  <fingerprint pattern="^model=N841AP$">
1552
1706
  <description>iPhone XR</description>
1553
1707
  <example>model=N841AP</example>
@@ -1560,6 +1714,7 @@
1560
1714
  <param pos="0" name="hw.product" value="iPhone XR"/>
1561
1715
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1562
1716
  </fingerprint>
1717
+
1563
1718
  <fingerprint pattern="^model=D221?AP$">
1564
1719
  <description>iPhone X</description>
1565
1720
  <example>model=D221AP</example>
@@ -1573,6 +1728,7 @@
1573
1728
  <param pos="0" name="hw.product" value="iPhone X"/>
1574
1729
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1575
1730
  </fingerprint>
1731
+
1576
1732
  <fingerprint pattern="^model=D211?A?AP$">
1577
1733
  <description>iPhone 8 Plus</description>
1578
1734
  <example>model=D21AP</example>
@@ -1588,6 +1744,7 @@
1588
1744
  <param pos="0" name="hw.product" value="iPhone 8 Plus"/>
1589
1745
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1590
1746
  </fingerprint>
1747
+
1591
1748
  <fingerprint pattern="^model=D201?A?AP$">
1592
1749
  <description>iPhone 8</description>
1593
1750
  <example>model=D20AP</example>
@@ -1603,6 +1760,7 @@
1603
1760
  <param pos="0" name="hw.product" value="iPhone 8"/>
1604
1761
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1605
1762
  </fingerprint>
1763
+
1606
1764
  <fingerprint pattern="^model=D111?AP$">
1607
1765
  <description>iPhone 7 Plus</description>
1608
1766
  <example>model=D11AP</example>
@@ -1616,6 +1774,7 @@
1616
1774
  <param pos="0" name="hw.product" value="iPhone 7 Plus"/>
1617
1775
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1618
1776
  </fingerprint>
1777
+
1619
1778
  <fingerprint pattern="^model=D101?AP$">
1620
1779
  <description>iPhone 7</description>
1621
1780
  <example>model=D10AP</example>
@@ -1629,6 +1788,7 @@
1629
1788
  <param pos="0" name="hw.product" value="iPhone 7"/>
1630
1789
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1631
1790
  </fingerprint>
1791
+
1632
1792
  <fingerprint pattern="^model=N69u?AP$">
1633
1793
  <description>iPhone SE</description>
1634
1794
  <example>model=N69AP</example>
@@ -1642,6 +1802,7 @@
1642
1802
  <param pos="0" name="hw.product" value="iPhone SE"/>
1643
1803
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1644
1804
  </fingerprint>
1805
+
1645
1806
  <fingerprint pattern="^model=N66m?AP$">
1646
1807
  <description>iPhone 6s Plus</description>
1647
1808
  <example>model=N66mAP</example>
@@ -1655,6 +1816,7 @@
1655
1816
  <param pos="0" name="hw.product" value="iPhone 6s Plus"/>
1656
1817
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1657
1818
  </fingerprint>
1819
+
1658
1820
  <fingerprint pattern="^model=N71m?AP$">
1659
1821
  <description>iPhone 6s</description>
1660
1822
  <example>model=N71mAP</example>
@@ -1668,6 +1830,7 @@
1668
1830
  <param pos="0" name="hw.product" value="iPhone 6s"/>
1669
1831
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1670
1832
  </fingerprint>
1833
+
1671
1834
  <fingerprint pattern="^model=N56AP$">
1672
1835
  <description>iPhone 6 Plus</description>
1673
1836
  <example>model=N56AP</example>
@@ -1680,6 +1843,7 @@
1680
1843
  <param pos="0" name="hw.product" value="iPhone 6 Plus"/>
1681
1844
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1682
1845
  </fingerprint>
1846
+
1683
1847
  <fingerprint pattern="^model=N61AP$">
1684
1848
  <description>iPhone 6</description>
1685
1849
  <example>model=N61AP</example>
@@ -1692,6 +1856,7 @@
1692
1856
  <param pos="0" name="hw.product" value="iPhone 6"/>
1693
1857
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1694
1858
  </fingerprint>
1859
+
1695
1860
  <fingerprint pattern="^model=N5[13]AP$">
1696
1861
  <description>iPhone 5s</description>
1697
1862
  <example>model=N51AP</example>
@@ -1705,6 +1870,7 @@
1705
1870
  <param pos="0" name="hw.product" value="iPhone 5s"/>
1706
1871
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1707
1872
  </fingerprint>
1873
+
1708
1874
  <fingerprint pattern="^model=N4[89]AP$">
1709
1875
  <description>iPhone 5c</description>
1710
1876
  <example>model=N48AP</example>
@@ -1718,6 +1884,7 @@
1718
1884
  <param pos="0" name="hw.product" value="iPhone 5c"/>
1719
1885
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1720
1886
  </fingerprint>
1887
+
1721
1888
  <fingerprint pattern="^model=N4[12]AP$">
1722
1889
  <description>iPhone 5</description>
1723
1890
  <example>model=N41AP</example>
@@ -1730,7 +1897,9 @@
1730
1897
  <param pos="0" name="hw.family" value="iPhone"/>
1731
1898
  <param pos="0" name="hw.product" value="iPhone 5"/>
1732
1899
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1900
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_5:-"/>
1733
1901
  </fingerprint>
1902
+
1734
1903
  <fingerprint pattern="^model=N94AP$">
1735
1904
  <description>iPhone 4s</description>
1736
1905
  <example>model=N94AP</example>
@@ -1742,7 +1911,9 @@
1742
1911
  <param pos="0" name="hw.family" value="iPhone"/>
1743
1912
  <param pos="0" name="hw.product" value="iPhone 4s"/>
1744
1913
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1914
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_4s:-"/>
1745
1915
  </fingerprint>
1916
+
1746
1917
  <fingerprint pattern="^model=N9[02]B?AP$">
1747
1918
  <description>iPhone 4</description>
1748
1919
  <example>model=N90AP</example>
@@ -1757,6 +1928,7 @@
1757
1928
  <param pos="0" name="hw.product" value="iPhone 4"/>
1758
1929
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1759
1930
  </fingerprint>
1931
+
1760
1932
  <fingerprint pattern="^model=N88AP$">
1761
1933
  <description>iPhone 3GS</description>
1762
1934
  <example>model=N88AP</example>
@@ -1768,7 +1940,9 @@
1768
1940
  <param pos="0" name="hw.family" value="iPhone"/>
1769
1941
  <param pos="0" name="hw.product" value="iPhone 3GS"/>
1770
1942
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1943
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone_3gs:-"/>
1771
1944
  </fingerprint>
1945
+
1772
1946
  <fingerprint pattern="^model=N82AP$">
1773
1947
  <description>iPhone 3G</description>
1774
1948
  <example>model=N82AP</example>
@@ -1781,6 +1955,7 @@
1781
1955
  <param pos="0" name="hw.product" value="iPhone 3G"/>
1782
1956
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1783
1957
  </fingerprint>
1958
+
1784
1959
  <fingerprint pattern="^model=M68AP$">
1785
1960
  <description>iPhone</description>
1786
1961
  <example>model=M68AP</example>
@@ -1792,5 +1967,7 @@
1792
1967
  <param pos="0" name="hw.family" value="iPhone"/>
1793
1968
  <param pos="0" name="hw.product" value="iPhone"/>
1794
1969
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1970
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone:-"/>
1795
1971
  </fingerprint>
1796
- </fingerprints>
1972
+
1973
+ </fingerprints>