recog 2.3.18 → 2.3.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +8 -0
  3. data/.github/workflows/ci.yml +26 -0
  4. data/.github/workflows/verify.yml +89 -0
  5. data/CONTRIBUTING.md +6 -0
  6. data/README.md +17 -0
  7. data/bin/recog_standardize +33 -12
  8. data/bin/recog_verify +1 -2
  9. data/cpe-remap.yaml +355 -200
  10. data/features/verify.feature +14 -14
  11. data/identifiers/README.md +24 -10
  12. data/identifiers/fields.txt +105 -0
  13. data/identifiers/hw_device.txt +8 -0
  14. data/identifiers/hw_family.txt +19 -0
  15. data/identifiers/hw_product.txt +122 -0
  16. data/identifiers/os_device.txt +2 -1
  17. data/identifiers/os_family.txt +3 -0
  18. data/identifiers/os_product.txt +46 -8
  19. data/identifiers/service_family.txt +10 -1
  20. data/identifiers/service_product.txt +90 -2
  21. data/identifiers/vendor.txt +104 -0
  22. data/lib/recog/db.rb +2 -1
  23. data/lib/recog/fingerprint.rb +18 -5
  24. data/lib/recog/nizer.rb +1 -82
  25. data/lib/recog/verifier.rb +5 -5
  26. data/lib/recog/verifier_factory.rb +3 -3
  27. data/lib/recog/verify_reporter.rb +14 -4
  28. data/lib/recog/version.rb +1 -1
  29. data/requirements.txt +1 -1
  30. data/spec/lib/fingerprint_self_test_spec.rb +1 -0
  31. data/spec/lib/recog/verify_reporter_spec.rb +69 -0
  32. data/tools/dev/hooks/pre-commit +21 -0
  33. data/update_cpes.py +19 -6
  34. data/xml/apache_modules.xml +60 -0
  35. data/xml/apache_os.xml +38 -38
  36. data/xml/dhcp_vendor_class.xml +206 -0
  37. data/xml/dns_versionbind.xml +11 -1
  38. data/xml/favicons.xml +270 -45
  39. data/xml/ftp_banners.xml +89 -64
  40. data/xml/h323_callresp.xml +99 -99
  41. data/xml/hp_pjl_id.xml +3 -3
  42. data/xml/html_title.xml +1051 -62
  43. data/xml/http_cookies.xml +294 -85
  44. data/xml/http_servers.xml +551 -122
  45. data/xml/http_wwwauth.xml +139 -43
  46. data/xml/imap_banners.xml +8 -8
  47. data/xml/ldap_searchresult.xml +1 -0
  48. data/xml/mdns_device-info_txt.xml +720 -27
  49. data/xml/mysql_banners.xml +3 -2
  50. data/xml/nntp_banners.xml +4 -4
  51. data/xml/ntp_banners.xml +79 -65
  52. data/xml/operating_system.xml +6 -6
  53. data/xml/pop_banners.xml +11 -11
  54. data/xml/rsh_resp.xml +3 -3
  55. data/xml/rtsp_servers.xml +7 -0
  56. data/xml/sip_banners.xml +374 -9
  57. data/xml/sip_user_agents.xml +377 -5
  58. data/xml/smb_native_lm.xml +32 -1
  59. data/xml/smb_native_os.xml +160 -33
  60. data/xml/smtp_banners.xml +168 -129
  61. data/xml/smtp_ehlo.xml +1 -1
  62. data/xml/smtp_expn.xml +1 -0
  63. data/xml/smtp_help.xml +10 -10
  64. data/xml/smtp_noop.xml +2 -2
  65. data/xml/smtp_vrfy.xml +1 -0
  66. data/xml/snmp_sysdescr.xml +508 -214
  67. data/xml/snmp_sysobjid.xml +25 -25
  68. data/xml/ssh_banners.xml +145 -29
  69. data/xml/telnet_banners.xml +240 -61
  70. data/xml/tls_jarm.xml +162 -0
  71. data/xml/x509_issuers.xml +237 -2
  72. data/xml/x509_subjects.xml +369 -49
  73. metadata +10 -3
@@ -14,6 +14,26 @@
14
14
  version of OS X plus 4. E.g. osxvers=13 means OS X 10.9
15
15
  -->
16
16
 
17
+ <fingerprint pattern="^osxvers=21">
18
+ <description>OS X 12.0 (Monterey)</description>
19
+ <example>osxvers=21</example>
20
+ <param pos="0" name="os.vendor" value="Apple"/>
21
+ <param pos="0" name="os.family" value="Mac OS X"/>
22
+ <param pos="0" name="os.product" value="Mac OS X"/>
23
+ <param pos="0" name="os.version" value="12.0"/>
24
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:12.0"/>
25
+ </fingerprint>
26
+
27
+ <fingerprint pattern="^osxvers=20">
28
+ <description>OS X 11.0 (Big Sur)</description>
29
+ <example>osxvers=20</example>
30
+ <param pos="0" name="os.vendor" value="Apple"/>
31
+ <param pos="0" name="os.family" value="Mac OS X"/>
32
+ <param pos="0" name="os.product" value="Mac OS X"/>
33
+ <param pos="0" name="os.version" value="11.0"/>
34
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:11.0"/>
35
+ </fingerprint>
36
+
17
37
  <fingerprint pattern="^osxvers=19">
18
38
  <description>OS X 10.15 (Catalina)</description>
19
39
  <example>osxvers=19</example>
@@ -219,7 +239,7 @@
219
239
 
220
240
  <!-- TODO: Break this down into specific models and generations -->
221
241
 
222
- <fingerprint pattern="^model=(?:AirPort6|TimeCapsule).*$">
242
+ <fingerprint pattern="^model=(?:AirPort6|TimeCapsule)">
223
243
  <description>Time Capsule</description>
224
244
  <example>model=AirPort6</example>
225
245
  <example>model=AirPort6,106</example>
@@ -238,6 +258,49 @@
238
258
 
239
259
  <!-- MacBookPro - Reference for the following: https://support.apple.com/en-us/HT201300 -->
240
260
 
261
+ <fingerprint pattern="^model=MacBookPro17,1$">
262
+ <description>MacBook Pro (13-inch, M1, 2020)</description>
263
+ <example>model=MacBookPro17,1</example>
264
+ <param pos="0" name="os.vendor" value="Apple"/>
265
+ <param pos="0" name="os.family" value="Mac OS X"/>
266
+ <param pos="0" name="os.product" value="Mac OS X"/>
267
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
268
+ <param pos="0" name="hw.vendor" value="Apple"/>
269
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
270
+ <param pos="0" name="hw.product" value="MacBook Pro (13-inch, M1, 2020)"/>
271
+ <param pos="0" name="hw.device" value="Laptop"/>
272
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
273
+ </fingerprint>
274
+
275
+ <fingerprint pattern="^model=MacBookPro16,1$">
276
+ <description>MacBook Pro (16-inch, 2019)</description>
277
+ <example>model=MacBookPro16,1</example>
278
+ <param pos="0" name="os.vendor" value="Apple"/>
279
+ <param pos="0" name="os.family" value="Mac OS X"/>
280
+ <param pos="0" name="os.product" value="Mac OS X"/>
281
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
282
+ <param pos="0" name="hw.vendor" value="Apple"/>
283
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
284
+ <param pos="0" name="hw.product" value="MacBook Pro (16-inch, 2019)"/>
285
+ <param pos="0" name="hw.device" value="Laptop"/>
286
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
287
+ </fingerprint>
288
+
289
+ <fingerprint pattern="^model=MacBookPro16,[23]$">
290
+ <description>MacBook Pro (13-inch, 2020)</description>
291
+ <example>model=MacBookPro16,2</example>
292
+ <example>model=MacBookPro16,3</example>
293
+ <param pos="0" name="os.vendor" value="Apple"/>
294
+ <param pos="0" name="os.family" value="Mac OS X"/>
295
+ <param pos="0" name="os.product" value="Mac OS X"/>
296
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
297
+ <param pos="0" name="hw.vendor" value="Apple"/>
298
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
299
+ <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2020)"/>
300
+ <param pos="0" name="hw.device" value="Laptop"/>
301
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
302
+ </fingerprint>
303
+
241
304
  <fingerprint pattern="^model=MacBookPro15,4$">
242
305
  <description>MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)</description>
243
306
  <example>model=MacBookPro15,4</example>
@@ -249,6 +312,7 @@
249
312
  <param pos="0" name="hw.family" value="MacBook Pro"/>
250
313
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)"/>
251
314
  <param pos="0" name="hw.device" value="Laptop"/>
315
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
252
316
  </fingerprint>
253
317
 
254
318
  <fingerprint pattern="^model=MacBookPro15,3$">
@@ -262,6 +326,7 @@
262
326
  <param pos="0" name="hw.family" value="MacBook Pro"/>
263
327
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, 2019)"/>
264
328
  <param pos="0" name="hw.device" value="Laptop"/>
329
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
265
330
  </fingerprint>
266
331
 
267
332
  <fingerprint pattern="^model=MacBookPro15,2$">
@@ -275,6 +340,7 @@
275
340
  <param pos="0" name="hw.family" value="MacBook Pro"/>
276
341
  <param pos="0" name="hw.product" value="MacBook Pro (13-inch, 2018, Four Thunderbolt 3 ports)"/>
277
342
  <param pos="0" name="hw.device" value="Laptop"/>
343
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
278
344
  </fingerprint>
279
345
 
280
346
  <fingerprint pattern="^model=MacBookPro15,1$">
@@ -288,6 +354,7 @@
288
354
  <param pos="0" name="hw.family" value="MacBook Pro"/>
289
355
  <param pos="0" name="hw.product" value="MacBook Pro (15-inch, 2018)"/>
290
356
  <param pos="0" name="hw.device" value="Laptop"/>
357
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
291
358
  </fingerprint>
292
359
 
293
360
  <fingerprint pattern="^model=MacBookPro14,3$">
@@ -379,11 +446,13 @@
379
446
  <param pos="0" name="hw.family" value="MacBook Pro"/>
380
447
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 13-inch, Early 2015)"/>
381
448
  <param pos="0" name="hw.device" value="Laptop"/>
449
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
382
450
  </fingerprint>
383
451
 
384
- <fingerprint pattern="^model=MacBookPro11,4$">
452
+ <fingerprint pattern="^model=MacBookPro11,[45]$">
385
453
  <description>MacBook Pro (Retina, 15-inch, Mid 2015)</description>
386
454
  <example>model=MacBookPro11,4</example>
455
+ <example>model=MacBookPro11,5</example>
387
456
  <param pos="0" name="os.vendor" value="Apple"/>
388
457
  <param pos="0" name="os.family" value="Mac OS X"/>
389
458
  <param pos="0" name="os.product" value="Mac OS X"/>
@@ -392,6 +461,7 @@
392
461
  <param pos="0" name="hw.family" value="MacBook Pro"/>
393
462
  <param pos="0" name="hw.product" value="MacBook Pro (Retina, 15-inch, Mid 2015)"/>
394
463
  <param pos="0" name="hw.device" value="Laptop"/>
464
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_pro:-"/>
395
465
  </fingerprint>
396
466
 
397
467
  <fingerprint pattern="^model=MacBookPro11,3$">
@@ -472,6 +542,19 @@
472
542
  <param pos="0" name="hw.device" value="Laptop"/>
473
543
  </fingerprint>
474
544
 
545
+ <fingerprint pattern="^model=MacBookPro9,1$">
546
+ <description>MacBook Pro (15-inch, Mid 2012)</description>
547
+ <example>model=MacBookPro9,1</example>
548
+ <param pos="0" name="os.vendor" value="Apple"/>
549
+ <param pos="0" name="os.family" value="Mac OS X"/>
550
+ <param pos="0" name="os.product" value="Mac OS X"/>
551
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
552
+ <param pos="0" name="hw.vendor" value="Apple"/>
553
+ <param pos="0" name="hw.family" value="MacBook Pro"/>
554
+ <param pos="0" name="hw.product" value="MacBook Pro (15-inch, Mid 2012)"/>
555
+ <param pos="0" name="hw.device" value="Laptop"/>
556
+ </fingerprint>
557
+
475
558
  <fingerprint pattern="^model=MacBookPro8,3$">
476
559
  <description>MacBook Pro (17-inch, Late 2011)</description>
477
560
  <example>model=MacBookPro8,3</example>
@@ -671,6 +754,34 @@
671
754
 
672
755
  <!-- MacBookAir - Reference for the following: https://support.apple.com/en-us/HT201862 -->
673
756
 
757
+ <fingerprint pattern="^model=MacBookAir10,1$">
758
+ <description>MacBook Air (M1, 2020)</description>
759
+ <example>model=MacBookAir10,1</example>
760
+ <param pos="0" name="os.vendor" value="Apple"/>
761
+ <param pos="0" name="os.family" value="Mac OS X"/>
762
+ <param pos="0" name="os.product" value="Mac OS X"/>
763
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
764
+ <param pos="0" name="hw.vendor" value="Apple"/>
765
+ <param pos="0" name="hw.family" value="MacBook"/>
766
+ <param pos="0" name="hw.product" value="MacBook Air (M1, 2020)"/>
767
+ <param pos="0" name="hw.device" value="Laptop"/>
768
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_air:-"/>
769
+ </fingerprint>
770
+
771
+ <fingerprint pattern="^model=MacBookAir9,1$">
772
+ <description>MacBook Air (Retina, 13-inch, 2020)</description>
773
+ <example>model=MacBookAir9,1</example>
774
+ <param pos="0" name="os.vendor" value="Apple"/>
775
+ <param pos="0" name="os.family" value="Mac OS X"/>
776
+ <param pos="0" name="os.product" value="Mac OS X"/>
777
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
778
+ <param pos="0" name="hw.vendor" value="Apple"/>
779
+ <param pos="0" name="hw.family" value="MacBook"/>
780
+ <param pos="0" name="hw.product" value="MacBook Air (Retina, 13-inch, 2020)"/>
781
+ <param pos="0" name="hw.device" value="Laptop"/>
782
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_air:-"/>
783
+ </fingerprint>
784
+
674
785
  <fingerprint pattern="^model=MacBookAir8,2$">
675
786
  <description>MacBook Air (Retina, 13-inch, 2019)</description>
676
787
  <example>model=MacBookAir8,2</example>
@@ -682,6 +793,7 @@
682
793
  <param pos="0" name="hw.family" value="MacBook"/>
683
794
  <param pos="0" name="hw.product" value="MacBook Air (Retina, 13-inch, 2019)"/>
684
795
  <param pos="0" name="hw.device" value="Laptop"/>
796
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_air:-"/>
685
797
  </fingerprint>
686
798
 
687
799
  <fingerprint pattern="^model=MacBookAir8,1$">
@@ -695,6 +807,7 @@
695
807
  <param pos="0" name="hw.family" value="MacBook"/>
696
808
  <param pos="0" name="hw.product" value="MacBook Air (Retina, 13-inch, 2018)"/>
697
809
  <param pos="0" name="hw.device" value="Laptop"/>
810
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_air:-"/>
698
811
  </fingerprint>
699
812
 
700
813
  <fingerprint pattern="^model=MacBookAir7,2$">
@@ -708,6 +821,7 @@
708
821
  <param pos="0" name="hw.family" value="MacBook"/>
709
822
  <param pos="0" name="hw.product" value="MacBook Air (13-inch, 2017)"/>
710
823
  <param pos="0" name="hw.device" value="Laptop"/>
824
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:macbook_air:-"/>
711
825
  </fingerprint>
712
826
 
713
827
  <fingerprint pattern="^model=MacBookAir7,1$">
@@ -842,6 +956,19 @@
842
956
 
843
957
  <!-- MacMini - Reference for the following: https://support.apple.com/en-us/HT201894 -->
844
958
 
959
+ <fingerprint pattern="^model=Macmini9,1$">
960
+ <description>Mac mini (M1, 2020)</description>
961
+ <example>model=Macmini9,1</example>
962
+ <param pos="0" name="os.vendor" value="Apple"/>
963
+ <param pos="0" name="os.family" value="Mac OS X"/>
964
+ <param pos="0" name="os.product" value="Mac OS X"/>
965
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
966
+ <param pos="0" name="hw.vendor" value="Apple"/>
967
+ <param pos="0" name="hw.family" value="Mac mini"/>
968
+ <param pos="0" name="hw.product" value="Mac mini (M1, 2020)"/>
969
+ <param pos="0" name="hw.device" value="Desktop"/>
970
+ </fingerprint>
971
+
845
972
  <fingerprint pattern="^model=Macmini8,1$">
846
973
  <description>Mac mini (Late 2018)</description>
847
974
  <example>model=Macmini8,1</example>
@@ -1122,6 +1249,48 @@
1122
1249
 
1123
1250
  <!-- iMAC - Reference for the following: https://support.apple.com/en-us/HT201634 -->
1124
1251
 
1252
+ <fingerprint pattern="^model=(?:J457AP|iMac21,2)$">
1253
+ <description>iMac (24-inch, M1, 2021) with Two Thunderbolt / USB 4 port</description>
1254
+ <example>model=iMac21,2</example>
1255
+ <example>model=J457AP</example>
1256
+ <param pos="0" name="os.vendor" value="Apple"/>
1257
+ <param pos="0" name="os.family" value="Mac OS X"/>
1258
+ <param pos="0" name="os.product" value="Mac OS X"/>
1259
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1260
+ <param pos="0" name="hw.vendor" value="Apple"/>
1261
+ <param pos="0" name="hw.family" value="iMac"/>
1262
+ <param pos="0" name="hw.product" value="iMac (24-inch, M1, 2021)"/>
1263
+ <param pos="0" name="hw.device" value="Desktop"/>
1264
+ </fingerprint>
1265
+
1266
+ <fingerprint pattern="^model=(?:J456AP|iMac21,1)$">
1267
+ <description>iMac (24-inch, M1, 2021) with Two Thunderbolt / USB 4 ports and Two USB 3 ports</description>
1268
+ <example>model=iMac21,1</example>
1269
+ <example>model=J456AP</example>
1270
+ <param pos="0" name="os.vendor" value="Apple"/>
1271
+ <param pos="0" name="os.family" value="Mac OS X"/>
1272
+ <param pos="0" name="os.product" value="Mac OS X"/>
1273
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1274
+ <param pos="0" name="hw.vendor" value="Apple"/>
1275
+ <param pos="0" name="hw.family" value="iMac"/>
1276
+ <param pos="0" name="hw.product" value="iMac (24-inch, M1, 2021)"/>
1277
+ <param pos="0" name="hw.device" value="Desktop"/>
1278
+ </fingerprint>
1279
+
1280
+ <fingerprint pattern="^model=iMac20,1$">
1281
+ <description>iMac (Retina 5K, 27-inch, 2020)</description>
1282
+ <example>model=iMac20,1</example>
1283
+ <param pos="0" name="os.vendor" value="Apple"/>
1284
+ <param pos="0" name="os.family" value="Mac OS X"/>
1285
+ <param pos="0" name="os.product" value="Mac OS X"/>
1286
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1287
+ <param pos="0" name="hw.vendor" value="Apple"/>
1288
+ <param pos="0" name="hw.family" value="iMac"/>
1289
+ <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, 2020)"/>
1290
+ <param pos="0" name="hw.device" value="Desktop"/>
1291
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:imac:-"/>
1292
+ </fingerprint>
1293
+
1125
1294
  <fingerprint pattern="^model=iMac19,1$">
1126
1295
  <description>iMac (Retina 5K, 27-inch, 2019)</description>
1127
1296
  <example>model=iMac19,1</example>
@@ -1133,6 +1302,7 @@
1133
1302
  <param pos="0" name="hw.family" value="iMac"/>
1134
1303
  <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, 2019)"/>
1135
1304
  <param pos="0" name="hw.device" value="Desktop"/>
1305
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:imac:-"/>
1136
1306
  </fingerprint>
1137
1307
 
1138
1308
  <fingerprint pattern="^model=iMac19,2$">
@@ -1146,6 +1316,7 @@
1146
1316
  <param pos="0" name="hw.family" value="iMac"/>
1147
1317
  <param pos="0" name="hw.product" value="iMac (Retina 4K, 21.5-inch, 2019)"/>
1148
1318
  <param pos="0" name="hw.device" value="Desktop"/>
1319
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:imac:-"/>
1149
1320
  </fingerprint>
1150
1321
 
1151
1322
  <fingerprint pattern="^model=iMacPro1,1$">
@@ -1172,6 +1343,7 @@
1172
1343
  <param pos="0" name="hw.family" value="iMac"/>
1173
1344
  <param pos="0" name="hw.product" value="iMac (Retina 5K, 27-inch, 2017)"/>
1174
1345
  <param pos="0" name="hw.device" value="Desktop"/>
1346
+ <param pos="0" name="hw.cpe23" value="cpe:/h:apple:imac:-"/>
1175
1347
  </fingerprint>
1176
1348
 
1177
1349
  <fingerprint pattern="^model=iMac18,2$">
@@ -1369,8 +1541,21 @@
1369
1541
  <param pos="0" name="hw.device" value="Desktop"/>
1370
1542
  </fingerprint>
1371
1543
 
1544
+ <fingerprint pattern="^model=iMac11,1$">
1545
+ <description>iMac 10 (27-inch, Late 2009)</description>
1546
+ <example>model=iMac11,1</example>
1547
+ <param pos="0" name="os.vendor" value="Apple"/>
1548
+ <param pos="0" name="os.family" value="Mac OS X"/>
1549
+ <param pos="0" name="os.product" value="Mac OS X"/>
1550
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1551
+ <param pos="0" name="hw.vendor" value="Apple"/>
1552
+ <param pos="0" name="hw.family" value="iMac"/>
1553
+ <param pos="0" name="hw.product" value="iMac (27-inch, Late 2009)"/>
1554
+ <param pos="0" name="hw.device" value="Desktop"/>
1555
+ </fingerprint>
1556
+
1372
1557
  <fingerprint pattern="^model=iMac10,1$">
1373
- <description>iMac (27-inch, Late 2009)</description>
1558
+ <description>iMac 11 (27-inch, Late 2009)</description>
1374
1559
  <example>model=iMac10,1</example>
1375
1560
  <param pos="0" name="os.vendor" value="Apple"/>
1376
1561
  <param pos="0" name="os.family" value="Mac OS X"/>
@@ -1395,26 +1580,90 @@
1395
1580
  <param pos="0" name="hw.device" value="Desktop"/>
1396
1581
  </fingerprint>
1397
1582
 
1583
+ <fingerprint pattern="^model=iMac8,1$">
1584
+ <description>iMac (20/24-inch, Early 2008)</description>
1585
+ <example>model=iMac8,1</example>
1586
+ <param pos="0" name="os.vendor" value="Apple"/>
1587
+ <param pos="0" name="os.family" value="Mac OS X"/>
1588
+ <param pos="0" name="os.product" value="Mac OS X"/>
1589
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:mac_os_x:-"/>
1590
+ <param pos="0" name="hw.vendor" value="Apple"/>
1591
+ <param pos="0" name="hw.family" value="iMac"/>
1592
+ <param pos="0" name="hw.product" value="iMac (20/24-inch, Early 2008)"/>
1593
+ <param pos="0" name="hw.device" value="Desktop"/>
1594
+ </fingerprint>
1595
+
1398
1596
  <!-- iPad Pro - Reference for the following: https://www.theiphonewiki.com/ -->
1399
1597
 
1400
- <fingerprint pattern="^model=J32[01]x?AP$">
1401
- <description>iPad Pro (12.9-inch)</description>
1598
+ <fingerprint pattern="^model=(?:J42[01]AP|iPad8,11)$">
1599
+ <description>iPad Pro (12.9-inch, 4th generation)</description>
1600
+ <example>model=J420AP</example>
1601
+ <example>model=J421AP</example>
1602
+ <example>model=iPad8,11</example>
1603
+ <param pos="0" name="os.vendor" value="Apple"/>
1604
+ <param pos="0" name="os.family" value="iOS"/>
1605
+ <param pos="0" name="os.product" value="iOS"/>
1606
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1607
+ <param pos="0" name="hw.vendor" value="Apple"/>
1608
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1609
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch, 4th generation)"/>
1610
+ <param pos="0" name="hw.device" value="Tablet"/>
1611
+ </fingerprint>
1612
+
1613
+ <fingerprint pattern="^model=(?:J41[78]AP|iPad8,10)$">
1614
+ <description>iPad Pro (11-inch, 2nd generation)</description>
1615
+ <example>model=J417AP</example>
1616
+ <example>model=iPad8,10</example>
1617
+ <param pos="0" name="os.vendor" value="Apple"/>
1618
+ <param pos="0" name="os.family" value="iOS"/>
1619
+ <param pos="0" name="os.product" value="iOS"/>
1620
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1621
+ <param pos="0" name="hw.vendor" value="Apple"/>
1622
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1623
+ <param pos="0" name="hw.product" value="iPad Pro (11-inch, 2nd generation)"/>
1624
+ <param pos="0" name="hw.device" value="Tablet"/>
1625
+ </fingerprint>
1626
+
1627
+ <fingerprint pattern="^model=(?:J51[78]x?AP|iPad13,[4567])$">
1628
+ <description>iPad Pro (11-inch, 3rd generation)</description>
1629
+ <example>model=J517AP</example>
1630
+ <example>model=J517xAP</example>
1631
+ <example>model=J518AP</example>
1632
+ <example>model=J518xAP</example>
1633
+ <example>model=iPad13,4</example>
1634
+ <example>model=iPad13,5</example>
1635
+ <example>model=iPad13,6</example>
1636
+ <example>model=iPad13,7</example>
1637
+ <param pos="0" name="os.vendor" value="Apple"/>
1638
+ <param pos="0" name="os.family" value="iOS"/>
1639
+ <param pos="0" name="os.product" value="iOS"/>
1640
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1641
+ <param pos="0" name="hw.vendor" value="Apple"/>
1642
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1643
+ <param pos="0" name="hw.product" value="iPad Pro (11-inch, 3rd generation)"/>
1644
+ <param pos="0" name="hw.device" value="Tablet"/>
1645
+ </fingerprint>
1646
+
1647
+ <fingerprint pattern="^model=(?:J32[01]x?AP|iPad8,5)$">
1648
+ <description>iPad Pro (12.9-inch, 3rd generation)</description>
1402
1649
  <example>model=J320AP</example>
1403
1650
  <example>model=J321xAP</example>
1651
+ <example>model=iPad8,5</example>
1404
1652
  <param pos="0" name="os.vendor" value="Apple"/>
1405
1653
  <param pos="0" name="os.family" value="iOS"/>
1406
1654
  <param pos="0" name="os.product" value="iOS"/>
1407
1655
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1408
1656
  <param pos="0" name="hw.vendor" value="Apple"/>
1409
1657
  <param pos="0" name="hw.family" value="iPad Pro"/>
1410
- <param pos="0" name="hw.product" value="iPad Pro (12.9-inch)"/>
1658
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch, 3rd generation)"/>
1411
1659
  <param pos="0" name="hw.device" value="Tablet"/>
1412
1660
  </fingerprint>
1413
1661
 
1414
- <fingerprint pattern="^model=J31[78]x?AP$">
1662
+ <fingerprint pattern="^model=(?:J31[78]x?AP|iPad8,1)$">
1415
1663
  <description>iPad Pro (11-inch)</description>
1416
1664
  <example>model=J317AP</example>
1417
1665
  <example>model=J318xAP</example>
1666
+ <example>model=iPad8,1</example>
1418
1667
  <param pos="0" name="os.vendor" value="Apple"/>
1419
1668
  <param pos="0" name="os.family" value="iOS"/>
1420
1669
  <param pos="0" name="os.product" value="iOS"/>
@@ -1428,6 +1677,7 @@
1428
1677
  <fingerprint pattern="^model=J20[78]AP$">
1429
1678
  <description>iPad Pro (10.5-inch)</description>
1430
1679
  <example>model=J207AP</example>
1680
+ <example>model=J208AP</example>
1431
1681
  <param pos="0" name="os.vendor" value="Apple"/>
1432
1682
  <param pos="0" name="os.family" value="iOS"/>
1433
1683
  <param pos="0" name="os.product" value="iOS"/>
@@ -1451,12 +1701,89 @@
1451
1701
  <param pos="0" name="hw.device" value="Tablet"/>
1452
1702
  </fingerprint>
1453
1703
 
1704
+ <fingerprint pattern="^model=J12[01]AP$">
1705
+ <description>iPad Pro (12.9-inch, 2nd generation)</description>
1706
+ <example>model=J120AP</example>
1707
+ <example>model=J121AP</example>
1708
+ <param pos="0" name="os.vendor" value="Apple"/>
1709
+ <param pos="0" name="os.family" value="iOS"/>
1710
+ <param pos="0" name="os.product" value="iOS"/>
1711
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1712
+ <param pos="0" name="hw.vendor" value="Apple"/>
1713
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1714
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch, 2nd generation)"/>
1715
+ <param pos="0" name="hw.device" value="Tablet"/>
1716
+ </fingerprint>
1717
+
1718
+ <fingerprint pattern="^model=J9[89]aAP$">
1719
+ <description>iPad Pro (12.9-inch)</description>
1720
+ <example>model=J98aAP</example>
1721
+ <example>model=J99aAP</example>
1722
+ <param pos="0" name="os.vendor" value="Apple"/>
1723
+ <param pos="0" name="os.family" value="iOS"/>
1724
+ <param pos="0" name="os.product" value="iOS"/>
1725
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1726
+ <param pos="0" name="hw.vendor" value="Apple"/>
1727
+ <param pos="0" name="hw.family" value="iPad Pro"/>
1728
+ <param pos="0" name="hw.product" value="iPad Pro (12.9-inch)"/>
1729
+ <param pos="0" name="hw.device" value="Tablet"/>
1730
+ </fingerprint>
1731
+
1454
1732
  <!-- iPad -->
1455
1733
 
1456
- <fingerprint pattern="^model=J7[12]bAP$">
1457
- <description>iPad 6th generation)</description>
1734
+ <fingerprint pattern="^model=(?:J18[12]AP|iPad12,[12])$">
1735
+ <description>iPad (9th generation)</description>
1736
+ <example>model=J181AP</example>
1737
+ <example>model=J182AP</example>
1738
+ <example>model=iPad12,1</example>
1739
+ <example>model=iPad12,2</example>
1740
+ <param pos="0" name="os.vendor" value="Apple"/>
1741
+ <param pos="0" name="os.family" value="iOS"/>
1742
+ <param pos="0" name="os.product" value="iOS"/>
1743
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1744
+ <param pos="0" name="hw.vendor" value="Apple"/>
1745
+ <param pos="0" name="hw.family" value="iPad"/>
1746
+ <param pos="0" name="hw.product" value="iPad (9th generation)"/>
1747
+ <param pos="0" name="hw.device" value="Tablet"/>
1748
+ </fingerprint>
1749
+
1750
+ <fingerprint pattern="^model=(?:J17[12]aAP|iPad11,[67])$">
1751
+ <description>iPad (8th generation)</description>
1752
+ <example>model=J172aAP</example>
1753
+ <example>model=J171aAP</example>
1754
+ <example>model=iPad11,6</example>
1755
+ <example>model=iPad11,7</example>
1756
+ <param pos="0" name="os.vendor" value="Apple"/>
1757
+ <param pos="0" name="os.family" value="iOS"/>
1758
+ <param pos="0" name="os.product" value="iOS"/>
1759
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1760
+ <param pos="0" name="hw.vendor" value="Apple"/>
1761
+ <param pos="0" name="hw.family" value="iPad"/>
1762
+ <param pos="0" name="hw.product" value="iPad (8th generation)"/>
1763
+ <param pos="0" name="hw.device" value="Tablet"/>
1764
+ </fingerprint>
1765
+
1766
+ <fingerprint pattern="^model=(?:J17[12]AP|iPad7,1[12])$">
1767
+ <description>iPad (7th generation)</description>
1768
+ <example>model=J171AP</example>
1769
+ <example>model=J172AP</example>
1770
+ <example>model=iPad7,11</example>
1771
+ <example>model=iPad7,12</example>
1772
+ <param pos="0" name="os.vendor" value="Apple"/>
1773
+ <param pos="0" name="os.family" value="iOS"/>
1774
+ <param pos="0" name="os.product" value="iOS"/>
1775
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1776
+ <param pos="0" name="hw.vendor" value="Apple"/>
1777
+ <param pos="0" name="hw.family" value="iPad"/>
1778
+ <param pos="0" name="hw.product" value="iPad (7th generation)"/>
1779
+ <param pos="0" name="hw.device" value="Tablet"/>
1780
+ </fingerprint>
1781
+
1782
+ <fingerprint pattern="^model=(?:J7[12]bAP|iPad7,5)$">
1783
+ <description>iPad (6th generation)</description>
1458
1784
  <example>model=J72bAP</example>
1459
1785
  <example>model=J71bAP</example>
1786
+ <example>model=iPad7,5</example>
1460
1787
  <param pos="0" name="os.vendor" value="Apple"/>
1461
1788
  <param pos="0" name="os.family" value="iOS"/>
1462
1789
  <param pos="0" name="os.product" value="iOS"/>
@@ -1467,9 +1794,11 @@
1467
1794
  <param pos="0" name="hw.device" value="Tablet"/>
1468
1795
  </fingerprint>
1469
1796
 
1470
- <fingerprint pattern="^model=J71[ts]AP$">
1797
+ <fingerprint pattern="^model=(?:J71[ts]AP|iPad6,11)$">
1471
1798
  <description>iPad (5th generation)</description>
1472
1799
  <example>model=J71tAP</example>
1800
+ <example>model=J71sAP</example>
1801
+ <example>model=iPad6,11</example>
1473
1802
  <param pos="0" name="os.vendor" value="Apple"/>
1474
1803
  <param pos="0" name="os.family" value="iOS"/>
1475
1804
  <param pos="0" name="os.product" value="iOS"/>
@@ -1495,6 +1824,22 @@
1495
1824
 
1496
1825
  <!-- iPad Air -->
1497
1826
 
1827
+ <fingerprint pattern="^model=(?:J30[78]AP|iPad13,[12])$">
1828
+ <description>iPad Air (4th generation)</description>
1829
+ <example>model=J307AP</example>
1830
+ <example>model=J308AP</example>
1831
+ <example>model=iPad13,1</example>
1832
+ <example>model=iPad13,2</example>
1833
+ <param pos="0" name="os.vendor" value="Apple"/>
1834
+ <param pos="0" name="os.family" value="iOS"/>
1835
+ <param pos="0" name="os.product" value="iOS"/>
1836
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1837
+ <param pos="0" name="hw.vendor" value="Apple"/>
1838
+ <param pos="0" name="hw.family" value="iPad Air"/>
1839
+ <param pos="0" name="hw.product" value="iPad Air (4th generation)"/>
1840
+ <param pos="0" name="hw.device" value="Tablet"/>
1841
+ </fingerprint>
1842
+
1498
1843
  <fingerprint pattern="^model=J21[78]AP$">
1499
1844
  <description>iPad Air (3rd generation)</description>
1500
1845
  <example>model=J218AP</example>
@@ -1508,9 +1853,10 @@
1508
1853
  <param pos="0" name="hw.device" value="Tablet"/>
1509
1854
  </fingerprint>
1510
1855
 
1511
- <fingerprint pattern="^model=J8[12]AP$">
1856
+ <fingerprint pattern="^model=(?:J8[12]AP|iPad5,3)$">
1512
1857
  <description>iPad Air 2</description>
1513
1858
  <example>model=J81AP</example>
1859
+ <example>model=iPad5,3</example>
1514
1860
  <param pos="0" name="os.vendor" value="Apple"/>
1515
1861
  <param pos="0" name="os.family" value="iOS"/>
1516
1862
  <param pos="0" name="os.product" value="iOS"/>
@@ -1536,6 +1882,22 @@
1536
1882
 
1537
1883
  <!-- iPad mini -->
1538
1884
 
1885
+ <fingerprint pattern="^model=(?:J31[01]AP|iPad14,[12])$">
1886
+ <description>iPad mini (6th generation)</description>
1887
+ <example>model=J310AP</example>
1888
+ <example>model=J311AP</example>
1889
+ <example>model=iPad14,1</example>
1890
+ <example>model=iPad14,2</example>
1891
+ <param pos="0" name="os.vendor" value="Apple"/>
1892
+ <param pos="0" name="os.family" value="iOS"/>
1893
+ <param pos="0" name="os.product" value="iOS"/>
1894
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
1895
+ <param pos="0" name="hw.vendor" value="Apple"/>
1896
+ <param pos="0" name="hw.family" value="iPad mini"/>
1897
+ <param pos="0" name="hw.product" value="iPad mini (6th generation)"/>
1898
+ <param pos="0" name="hw.device" value="Tablet"/>
1899
+ </fingerprint>
1900
+
1539
1901
  <fingerprint pattern="^model=J21[01]AP$">
1540
1902
  <description>iPad mini (5th generation)</description>
1541
1903
  <example>model=J210AP</example>
@@ -1549,9 +1911,10 @@
1549
1911
  <param pos="0" name="hw.device" value="Tablet"/>
1550
1912
  </fingerprint>
1551
1913
 
1552
- <fingerprint pattern="^model=J9[67]AP$">
1914
+ <fingerprint pattern="^model=(?:J9[67]AP|iPad5,2)$">
1553
1915
  <description>iPad mini 4</description>
1554
1916
  <example>model=J97AP</example>
1917
+ <example>model=iPad5,2</example>
1555
1918
  <param pos="0" name="os.vendor" value="Apple"/>
1556
1919
  <param pos="0" name="os.family" value="iOS"/>
1557
1920
  <param pos="0" name="os.product" value="iOS"/>
@@ -1562,9 +1925,10 @@
1562
1925
  <param pos="0" name="hw.device" value="Tablet"/>
1563
1926
  </fingerprint>
1564
1927
 
1565
- <fingerprint pattern="^model=J8[567]mAP$">
1928
+ <fingerprint pattern="^model=(?:J8[567]mAP|iPad4,9)$">
1566
1929
  <description>iPad mini 3</description>
1567
1930
  <example>model=J87mAP</example>
1931
+ <example>model=iPad4,9</example>
1568
1932
  <param pos="0" name="os.vendor" value="Apple"/>
1569
1933
  <param pos="0" name="os.family" value="iOS"/>
1570
1934
  <param pos="0" name="os.product" value="iOS"/>
@@ -1604,10 +1968,25 @@
1604
1968
 
1605
1969
  <!-- HomePod -->
1606
1970
 
1607
- <fingerprint pattern="^model=B238a?AP$">
1971
+ <fingerprint pattern="^model=(?:B520AP|AudioAccessory5,1)$">
1972
+ <description>HomePod mini</description>
1973
+ <example>model=B520AP</example>
1974
+ <example>model=AudioAccessory5,1</example>
1975
+ <param pos="0" name="os.vendor" value="Apple"/>
1976
+ <param pos="0" name="os.family" value="audioOS"/>
1977
+ <param pos="0" name="os.product" value="audioOS"/>
1978
+ <param pos="0" name="hw.vendor" value="Apple"/>
1979
+ <param pos="0" name="hw.family" value="HomePod"/>
1980
+ <param pos="0" name="hw.product" value="HomePod mini"/>
1981
+ <param pos="0" name="hw.device" value="Media Server"/>
1982
+ </fingerprint>
1983
+
1984
+ <fingerprint pattern="^model=(?:B238a?AP|AudioAccessory1,[12])$">
1608
1985
  <description>HomePod</description>
1609
1986
  <example>model=B238aAP</example>
1610
1987
  <example>model=B238AP</example>
1988
+ <example>model=AudioAccessory1,1</example>
1989
+ <example>model=AudioAccessory1,2</example>
1611
1990
  <param pos="0" name="os.vendor" value="Apple"/>
1612
1991
  <param pos="0" name="os.family" value="audioOS"/>
1613
1992
  <param pos="0" name="os.product" value="audioOS"/>
@@ -1619,66 +1998,269 @@
1619
1998
 
1620
1999
  <!-- Apple TV -->
1621
2000
 
1622
- <fingerprint pattern="^model=J105aAP$">
2001
+ <fingerprint pattern="^model=(?:J305AP|AppleTV11,1)$">
2002
+ <description>Apple TV 4K (2nd generation)</description>
2003
+ <example>model=J305AP</example>
2004
+ <example>model=AppleTV11,1</example>
2005
+ <param pos="0" name="os.vendor" value="Apple"/>
2006
+ <param pos="0" name="os.family" value="tvOS"/>
2007
+ <param pos="0" name="os.product" value="tvOS"/>
2008
+ <param pos="0" name="os.certainty" value="0.10"/>
2009
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
2010
+ <param pos="0" name="hw.vendor" value="Apple"/>
2011
+ <param pos="0" name="hw.family" value="Apple TV"/>
2012
+ <param pos="0" name="hw.product" value="Apple TV 4K (2nd generation)"/>
2013
+ <param pos="0" name="hw.device" value="Media Server"/>
2014
+ <param pos="0" name="hw.certainty" value="0.10"/>
2015
+ </fingerprint>
2016
+
2017
+ <fingerprint pattern="^model=(?:J105aAP|AppleTV6,2)$">
1623
2018
  <description>Apple TV 4K</description>
1624
2019
  <example>model=J105aAP</example>
2020
+ <example>model=AppleTV6,2</example>
1625
2021
  <param pos="0" name="os.vendor" value="Apple"/>
1626
2022
  <param pos="0" name="os.family" value="tvOS"/>
1627
2023
  <param pos="0" name="os.product" value="tvOS"/>
2024
+ <param pos="0" name="os.certainty" value="0.10"/>
1628
2025
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1629
2026
  <param pos="0" name="hw.vendor" value="Apple"/>
1630
2027
  <param pos="0" name="hw.family" value="Apple TV"/>
1631
2028
  <param pos="0" name="hw.product" value="Apple TV 4K"/>
1632
2029
  <param pos="0" name="hw.device" value="Media Server"/>
2030
+ <param pos="0" name="hw.certainty" value="0.10"/>
1633
2031
  </fingerprint>
1634
2032
 
1635
- <fingerprint pattern="^model=J42dAP$">
2033
+ <fingerprint pattern="^model=(?:J42dAP|AppleTV5,3)$">
1636
2034
  <description>Apple TV (4th generation)</description>
1637
2035
  <example>model=J42dAP</example>
2036
+ <example>model=AppleTV5,3</example>
1638
2037
  <param pos="0" name="os.vendor" value="Apple"/>
1639
2038
  <param pos="0" name="os.family" value="tvOS"/>
1640
2039
  <param pos="0" name="os.product" value="tvOS"/>
2040
+ <param pos="0" name="os.certainty" value="0.10"/>
1641
2041
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1642
2042
  <param pos="0" name="hw.vendor" value="Apple"/>
1643
2043
  <param pos="0" name="hw.family" value="Apple TV"/>
1644
2044
  <param pos="0" name="hw.product" value="Apple TV (4th generation)"/>
1645
2045
  <param pos="0" name="hw.device" value="Media Server"/>
2046
+ <param pos="0" name="hw.certainty" value="0.10"/>
1646
2047
  </fingerprint>
1647
2048
 
1648
- <fingerprint pattern="^model=J33[Ii]?AP$">
2049
+ <fingerprint pattern="^model=(?:J33[Ii]?AP|AppleTV3,[21])$">
1649
2050
  <description>Apple TV (3rd generation)</description>
1650
2051
  <example>model=J33IAP</example>
1651
2052
  <example>model=J33iAP</example>
1652
2053
  <example>model=J33AP</example>
2054
+ <example>model=AppleTV3,2</example>
2055
+ <example>model=AppleTV3,1</example>
1653
2056
  <param pos="0" name="os.vendor" value="Apple"/>
1654
2057
  <param pos="0" name="os.family" value="tvOS"/>
1655
2058
  <param pos="0" name="os.product" value="tvOS"/>
2059
+ <param pos="0" name="os.certainty" value="0.10"/>
1656
2060
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1657
2061
  <param pos="0" name="hw.vendor" value="Apple"/>
1658
2062
  <param pos="0" name="hw.family" value="Apple TV"/>
1659
2063
  <param pos="0" name="hw.product" value="Apple TV (3rd generation)"/>
1660
2064
  <param pos="0" name="hw.device" value="Media Server"/>
2065
+ <param pos="0" name="hw.certainty" value="0.10"/>
1661
2066
  </fingerprint>
1662
2067
 
1663
- <fingerprint pattern="^model=K66AP$">
2068
+ <fingerprint pattern="^model=(?:K66AP|AppleTV2,1)$">
1664
2069
  <description>Apple TV (2nd generation)</description>
1665
2070
  <example>model=K66AP</example>
2071
+ <example>model=AppleTV2,1</example>
1666
2072
  <param pos="0" name="os.vendor" value="Apple"/>
1667
2073
  <param pos="0" name="os.family" value="tvOS"/>
1668
2074
  <param pos="0" name="os.product" value="tvOS"/>
2075
+ <param pos="0" name="os.certainty" value="0.10"/>
1669
2076
  <param pos="0" name="os.cpe23" value="cpe:/o:apple:tvos:-"/>
1670
2077
  <param pos="0" name="hw.vendor" value="Apple"/>
1671
2078
  <param pos="0" name="hw.family" value="Apple TV"/>
1672
2079
  <param pos="0" name="hw.product" value="Apple TV (2nd generation)"/>
1673
2080
  <param pos="0" name="hw.device" value="Media Server"/>
2081
+ <param pos="0" name="hw.certainty" value="0.10"/>
1674
2082
  </fingerprint>
1675
2083
 
1676
- <!-- iPad Pro - Reference for the following: https://www.theiphonewiki.com/ -->
2084
+ <!-- iPhones - Reference for the following: https://www.theiphonewiki.com/wiki/Category:Devices
2085
+ and http://phonedb.net/ -->
2086
+
2087
+ <fingerprint pattern="^model=(?:D64AP|iPhone14,3)$">
2088
+ <description>iPhone 13 Pro Max</description>
2089
+ <example>model=D64AP</example>
2090
+ <example>model=iPhone14,3</example>
2091
+ <param pos="0" name="os.vendor" value="Apple"/>
2092
+ <param pos="0" name="os.family" value="iOS"/>
2093
+ <param pos="0" name="os.product" value="iOS"/>
2094
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2095
+ <param pos="0" name="hw.vendor" value="Apple"/>
2096
+ <param pos="0" name="hw.family" value="iPhone"/>
2097
+ <param pos="0" name="hw.product" value="iPhone 13 Pro Max"/>
2098
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2099
+ </fingerprint>
2100
+
2101
+ <fingerprint pattern="^model=(?:D63AP|iPhone14,2)$">
2102
+ <description>iPhone 13 Pro</description>
2103
+ <example>model=D63AP</example>
2104
+ <example>model=iPhone14,2</example>
2105
+ <param pos="0" name="os.vendor" value="Apple"/>
2106
+ <param pos="0" name="os.family" value="iOS"/>
2107
+ <param pos="0" name="os.product" value="iOS"/>
2108
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2109
+ <param pos="0" name="hw.vendor" value="Apple"/>
2110
+ <param pos="0" name="hw.family" value="iPhone"/>
2111
+ <param pos="0" name="hw.product" value="iPhone 13 Pro"/>
2112
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2113
+ </fingerprint>
2114
+
2115
+ <fingerprint pattern="^model=(?:D16AP|iPhone14,4)$">
2116
+ <description>iPhone 13 mini</description>
2117
+ <example>model=D16AP</example>
2118
+ <example>model=iPhone14,4</example>
2119
+ <param pos="0" name="os.vendor" value="Apple"/>
2120
+ <param pos="0" name="os.family" value="iOS"/>
2121
+ <param pos="0" name="os.product" value="iOS"/>
2122
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2123
+ <param pos="0" name="hw.vendor" value="Apple"/>
2124
+ <param pos="0" name="hw.family" value="iPhone"/>
2125
+ <param pos="0" name="hw.product" value="iPhone 13 mini"/>
2126
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2127
+ </fingerprint>
2128
+
2129
+ <fingerprint pattern="^model=(?:D17AP|iPhone14,5)$">
2130
+ <description>iPhone 13)</description>
2131
+ <example>model=D17AP</example>
2132
+ <example>model=iPhone14,5</example>
2133
+ <param pos="0" name="os.vendor" value="Apple"/>
2134
+ <param pos="0" name="os.family" value="iOS"/>
2135
+ <param pos="0" name="os.product" value="iOS"/>
2136
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2137
+ <param pos="0" name="hw.vendor" value="Apple"/>
2138
+ <param pos="0" name="hw.family" value="iPhone"/>
2139
+ <param pos="0" name="hw.product" value="iPhone 13"/>
2140
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2141
+ </fingerprint>
2142
+
2143
+ <fingerprint pattern="^model=(?:D79AP|iPhone12,8)$">
2144
+ <description>iPhone SE (2020)</description>
2145
+ <example>model=D79AP</example>
2146
+ <example>model=iPhone12,8</example>
2147
+ <param pos="0" name="os.vendor" value="Apple"/>
2148
+ <param pos="0" name="os.family" value="iOS"/>
2149
+ <param pos="0" name="os.product" value="iOS"/>
2150
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2151
+ <param pos="0" name="hw.vendor" value="Apple"/>
2152
+ <param pos="0" name="hw.family" value="iPhone"/>
2153
+ <param pos="0" name="hw.product" value="iPhone SE (2020)"/>
2154
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2155
+ </fingerprint>
2156
+
2157
+ <fingerprint pattern="^model=(?:D54pAP|iPhone13,4)$">
2158
+ <description>iPhone 12 Pro Max 5G</description>
2159
+ <example>model=D54pAP</example>
2160
+ <example>model=iPhone13,4</example>
2161
+ <param pos="0" name="os.vendor" value="Apple"/>
2162
+ <param pos="0" name="os.family" value="iOS"/>
2163
+ <param pos="0" name="os.product" value="iOS"/>
2164
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2165
+ <param pos="0" name="hw.vendor" value="Apple"/>
2166
+ <param pos="0" name="hw.family" value="iPhone"/>
2167
+ <param pos="0" name="hw.product" value="iPhone 12 Pro Max 5G"/>
2168
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2169
+ </fingerprint>
2170
+
2171
+ <fingerprint pattern="^model=(?:D53pAP|iPhone13,3)$">
2172
+ <description>iPhone 12 Pro 5G</description>
2173
+ <example>model=D53pAP</example>
2174
+ <example>model=iPhone13,3</example>
2175
+ <param pos="0" name="os.vendor" value="Apple"/>
2176
+ <param pos="0" name="os.family" value="iOS"/>
2177
+ <param pos="0" name="os.product" value="iOS"/>
2178
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2179
+ <param pos="0" name="hw.vendor" value="Apple"/>
2180
+ <param pos="0" name="hw.family" value="iPhone"/>
2181
+ <param pos="0" name="hw.product" value="iPhone 12 Pro 5G"/>
2182
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2183
+ </fingerprint>
1677
2184
 
1678
- <fingerprint pattern="^model=D331p?AP$">
2185
+ <fingerprint pattern="^model=(?:D53gAP|iPhone13,2)$">
2186
+ <description>iPhone 12 5G</description>
2187
+ <example>model=D53gAP</example>
2188
+ <example>model=iPhone13,2</example>
2189
+ <param pos="0" name="os.vendor" value="Apple"/>
2190
+ <param pos="0" name="os.family" value="iOS"/>
2191
+ <param pos="0" name="os.product" value="iOS"/>
2192
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2193
+ <param pos="0" name="hw.vendor" value="Apple"/>
2194
+ <param pos="0" name="hw.family" value="iPhone"/>
2195
+ <param pos="0" name="hw.product" value="iPhone 12 5G"/>
2196
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2197
+ </fingerprint>
2198
+
2199
+ <fingerprint pattern="^model=(?:D52g?AP|Phone13,1)$">
2200
+ <description>iPhone 12 Mini 5G</description>
2201
+ <example>model=D52gAP</example>
2202
+ <example>model=D52AP</example>
2203
+ <example>model=Phone13,1</example>
2204
+ <param pos="0" name="os.vendor" value="Apple"/>
2205
+ <param pos="0" name="os.family" value="iOS"/>
2206
+ <param pos="0" name="os.product" value="iOS"/>
2207
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2208
+ <param pos="0" name="hw.vendor" value="Apple"/>
2209
+ <param pos="0" name="hw.family" value="iPhone"/>
2210
+ <param pos="0" name="hw.product" value="iPhone 12 Mini 5G"/>
2211
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2212
+ </fingerprint>
2213
+
2214
+ <fingerprint pattern="^model=(?:D431p?AP|iPhone12,5)$">
2215
+ <description>iPhone 11 Pro Max</description>
2216
+ <example>model=D431pAP</example>
2217
+ <example>model=D431AP</example>
2218
+ <example>model=iPhone12,5</example>
2219
+ <param pos="0" name="os.vendor" value="Apple"/>
2220
+ <param pos="0" name="os.family" value="iOS"/>
2221
+ <param pos="0" name="os.product" value="iOS"/>
2222
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2223
+ <param pos="0" name="hw.vendor" value="Apple"/>
2224
+ <param pos="0" name="hw.family" value="iPhone"/>
2225
+ <param pos="0" name="hw.product" value="iPhone 11 Pro Max"/>
2226
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2227
+ </fingerprint>
2228
+
2229
+ <fingerprint pattern="^model=(?:D421p?AP|iPhone12,3)$">
2230
+ <description>iPhone 11 Pro</description>
2231
+ <example>model=D421pAP</example>
2232
+ <example>model=D421AP</example>
2233
+ <example>model=iPhone12,3</example>
2234
+ <param pos="0" name="os.vendor" value="Apple"/>
2235
+ <param pos="0" name="os.family" value="iOS"/>
2236
+ <param pos="0" name="os.product" value="iOS"/>
2237
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2238
+ <param pos="0" name="hw.vendor" value="Apple"/>
2239
+ <param pos="0" name="hw.family" value="iPhone"/>
2240
+ <param pos="0" name="hw.product" value="iPhone 11 Pro"/>
2241
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2242
+ </fingerprint>
2243
+
2244
+ <fingerprint pattern="^model=(?:N104AP|iPhone12,1)$">
2245
+ <description>iPhone 11</description>
2246
+ <example>model=N104AP</example>
2247
+ <example>model=iPhone12,1</example>
2248
+ <param pos="0" name="os.vendor" value="Apple"/>
2249
+ <param pos="0" name="os.family" value="iOS"/>
2250
+ <param pos="0" name="os.product" value="iOS"/>
2251
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2252
+ <param pos="0" name="hw.vendor" value="Apple"/>
2253
+ <param pos="0" name="hw.family" value="iPhone"/>
2254
+ <param pos="0" name="hw.product" value="iPhone 11"/>
2255
+ <param pos="0" name="hw.device" value="Mobile Phone"/>
2256
+ </fingerprint>
2257
+
2258
+ <fingerprint pattern="^model=(?:D331p?AP|iPhone11,[46])$">
1679
2259
  <description>iPhone XS Max</description>
1680
2260
  <example>model=D331pAP</example>
1681
2261
  <example>model=D331AP</example>
2262
+ <example>model=iPhone11,6</example>
2263
+ <example>model=iPhone11,4</example>
1682
2264
  <param pos="0" name="os.vendor" value="Apple"/>
1683
2265
  <param pos="0" name="os.family" value="iOS"/>
1684
2266
  <param pos="0" name="os.product" value="iOS"/>
@@ -1689,9 +2271,10 @@
1689
2271
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1690
2272
  </fingerprint>
1691
2273
 
1692
- <fingerprint pattern="^model=D321AP$">
2274
+ <fingerprint pattern="^model=(?:D321AP|iPhone11,2)$">
1693
2275
  <description>iPhone XS</description>
1694
2276
  <example>model=D321AP</example>
2277
+ <example>model=iPhone11,2</example>
1695
2278
  <param pos="0" name="os.vendor" value="Apple"/>
1696
2279
  <param pos="0" name="os.family" value="iOS"/>
1697
2280
  <param pos="0" name="os.product" value="iOS"/>
@@ -1702,9 +2285,10 @@
1702
2285
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1703
2286
  </fingerprint>
1704
2287
 
1705
- <fingerprint pattern="^model=N841AP$">
2288
+ <fingerprint pattern="^model=(?:N841AP|iPhone11,8)$">
1706
2289
  <description>iPhone XR</description>
1707
2290
  <example>model=N841AP</example>
2291
+ <example>model=iPhone11,8</example>
1708
2292
  <param pos="0" name="os.vendor" value="Apple"/>
1709
2293
  <param pos="0" name="os.family" value="iOS"/>
1710
2294
  <param pos="0" name="os.product" value="iOS"/>
@@ -1715,10 +2299,12 @@
1715
2299
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1716
2300
  </fingerprint>
1717
2301
 
1718
- <fingerprint pattern="^model=D221?AP$">
2302
+ <fingerprint pattern="^model=(?:D221?AP|iPhone10,[36])$">
1719
2303
  <description>iPhone X</description>
1720
2304
  <example>model=D221AP</example>
1721
2305
  <example>model=D22AP</example>
2306
+ <example>model=iPhone10,6</example>
2307
+ <example>model=iPhone10,3</example>
1722
2308
  <param pos="0" name="os.vendor" value="Apple"/>
1723
2309
  <param pos="0" name="os.family" value="iOS"/>
1724
2310
  <param pos="0" name="os.product" value="iOS"/>
@@ -1729,12 +2315,14 @@
1729
2315
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1730
2316
  </fingerprint>
1731
2317
 
1732
- <fingerprint pattern="^model=D211?A?AP$">
2318
+ <fingerprint pattern="^model=(?:D211?A?AP|iPhone10,[25])$">
1733
2319
  <description>iPhone 8 Plus</description>
1734
2320
  <example>model=D21AP</example>
1735
2321
  <example>model=D21AAP</example>
1736
2322
  <example>model=D211AP</example>
1737
2323
  <example>model=D211AAP</example>
2324
+ <example>model=iPhone10,2</example>
2325
+ <example>model=iPhone10,5</example>
1738
2326
  <param pos="0" name="os.vendor" value="Apple"/>
1739
2327
  <param pos="0" name="os.family" value="iOS"/>
1740
2328
  <param pos="0" name="os.product" value="iOS"/>
@@ -1745,12 +2333,14 @@
1745
2333
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1746
2334
  </fingerprint>
1747
2335
 
1748
- <fingerprint pattern="^model=D201?A?AP$">
2336
+ <fingerprint pattern="^model=(?:D201?A?AP|iPhone10,[14])$">
1749
2337
  <description>iPhone 8</description>
1750
2338
  <example>model=D20AP</example>
1751
2339
  <example>model=D20AAP</example>
1752
2340
  <example>model=D201AP</example>
1753
2341
  <example>model=D201AAP</example>
2342
+ <example>model=iPhone10,1</example>
2343
+ <example>model=iPhone10,4</example>
1754
2344
  <param pos="0" name="os.vendor" value="Apple"/>
1755
2345
  <param pos="0" name="os.family" value="iOS"/>
1756
2346
  <param pos="0" name="os.product" value="iOS"/>
@@ -1761,10 +2351,12 @@
1761
2351
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1762
2352
  </fingerprint>
1763
2353
 
1764
- <fingerprint pattern="^model=D111?AP$">
2354
+ <fingerprint pattern="^model=(?:D111?AP|iPhone9,[24])$">
1765
2355
  <description>iPhone 7 Plus</description>
1766
2356
  <example>model=D11AP</example>
1767
2357
  <example>model=D111AP</example>
2358
+ <example>model=iPhone9,2</example>
2359
+ <example>model=iPhone9,4</example>
1768
2360
  <param pos="0" name="os.vendor" value="Apple"/>
1769
2361
  <param pos="0" name="os.family" value="iOS"/>
1770
2362
  <param pos="0" name="os.product" value="iOS"/>
@@ -1775,10 +2367,11 @@
1775
2367
  <param pos="0" name="hw.device" value="Mobile Phone"/>
1776
2368
  </fingerprint>
1777
2369
 
1778
- <fingerprint pattern="^model=D101?AP$">
2370
+ <fingerprint pattern="^model=(?:D101?AP$|iPhone9,3)">
1779
2371
  <description>iPhone 7</description>
1780
2372
  <example>model=D10AP</example>
1781
2373
  <example>model=D101AP</example>
2374
+ <example>model=iPhone9,3</example>
1782
2375
  <param pos="0" name="os.vendor" value="Apple"/>
1783
2376
  <param pos="0" name="os.family" value="iOS"/>
1784
2377
  <param pos="0" name="os.product" value="iOS"/>
@@ -1970,4 +2563,104 @@
1970
2563
  <param pos="0" name="hw.cpe23" value="cpe:/h:apple:iphone:-"/>
1971
2564
  </fingerprint>
1972
2565
 
2566
+ <!-- iPod -->
2567
+
2568
+ <fingerprint pattern="^model=(?:N112AP|iPod9,1)$">
2569
+ <description>iPod Touch (7th generation)</description>
2570
+ <example>model=N112AP</example>
2571
+ <example>model=iPod9,1</example>
2572
+ <param pos="0" name="os.vendor" value="Apple"/>
2573
+ <param pos="0" name="os.family" value="iOS"/>
2574
+ <param pos="0" name="os.product" value="iOS"/>
2575
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2576
+ <param pos="0" name="hw.vendor" value="Apple"/>
2577
+ <param pos="0" name="hw.family" value="iPod"/>
2578
+ <param pos="0" name="hw.product" value="iPod Touch (7th generation)"/>
2579
+ <param pos="0" name="hw.device" value="Media Player"/>
2580
+ </fingerprint>
2581
+
2582
+ <fingerprint pattern="^model=N102AP$">
2583
+ <description>iPod Touch (6th generation)</description>
2584
+ <example>model=N102AP</example>
2585
+ <param pos="0" name="os.vendor" value="Apple"/>
2586
+ <param pos="0" name="os.family" value="iOS"/>
2587
+ <param pos="0" name="os.product" value="iOS"/>
2588
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2589
+ <param pos="0" name="hw.vendor" value="Apple"/>
2590
+ <param pos="0" name="hw.family" value="iPod"/>
2591
+ <param pos="0" name="hw.product" value="iPod Touch (6th generation)"/>
2592
+ <param pos="0" name="hw.device" value="Media Player"/>
2593
+ </fingerprint>
2594
+
2595
+ <fingerprint pattern="^model=(?:N78a?AP|iPod5,1)$">
2596
+ <description>iPod Touch (5th generation)</description>
2597
+ <example>model=N78AP</example>
2598
+ <example>model=N78aAP</example>
2599
+ <example>model=iPod5,1</example>
2600
+ <param pos="0" name="os.vendor" value="Apple"/>
2601
+ <param pos="0" name="os.family" value="iOS"/>
2602
+ <param pos="0" name="os.product" value="iOS"/>
2603
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2604
+ <param pos="0" name="hw.vendor" value="Apple"/>
2605
+ <param pos="0" name="hw.family" value="iPod"/>
2606
+ <param pos="0" name="hw.product" value="iPod Touch (5th generation)"/>
2607
+ <param pos="0" name="hw.device" value="Media Player"/>
2608
+ </fingerprint>
2609
+
2610
+ <fingerprint pattern="^model=(?:N81AP|iPod4,1)$">
2611
+ <description>iPod Touch (4th generation)</description>
2612
+ <example>model=N81AP</example>
2613
+ <example>model=iPod4,1</example>
2614
+ <param pos="0" name="os.vendor" value="Apple"/>
2615
+ <param pos="0" name="os.family" value="iOS"/>
2616
+ <param pos="0" name="os.product" value="iOS"/>
2617
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2618
+ <param pos="0" name="hw.vendor" value="Apple"/>
2619
+ <param pos="0" name="hw.family" value="iPod"/>
2620
+ <param pos="0" name="hw.product" value="iPod Touch (4th generation)"/>
2621
+ <param pos="0" name="hw.device" value="Media Player"/>
2622
+ </fingerprint>
2623
+
2624
+ <fingerprint pattern="^model=(?:N18AP|iPod3,1)$">
2625
+ <description>iPod Touch (3rd generation)</description>
2626
+ <example>model=N18AP</example>
2627
+ <example>model=iPod3,1</example>
2628
+ <param pos="0" name="os.vendor" value="Apple"/>
2629
+ <param pos="0" name="os.family" value="iOS"/>
2630
+ <param pos="0" name="os.product" value="iOS"/>
2631
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2632
+ <param pos="0" name="hw.vendor" value="Apple"/>
2633
+ <param pos="0" name="hw.family" value="iPod"/>
2634
+ <param pos="0" name="hw.product" value="iPod Touch (3rd generation)"/>
2635
+ <param pos="0" name="hw.device" value="Media Player"/>
2636
+ </fingerprint>
2637
+
2638
+ <fingerprint pattern="^model=(?:N72AP|iPod2,1)$">
2639
+ <description>iPod Touch (2nd generation)</description>
2640
+ <example>model=N72AP</example>
2641
+ <example>model=iPod2,1</example>
2642
+ <param pos="0" name="os.vendor" value="Apple"/>
2643
+ <param pos="0" name="os.family" value="iOS"/>
2644
+ <param pos="0" name="os.product" value="iOS"/>
2645
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2646
+ <param pos="0" name="hw.vendor" value="Apple"/>
2647
+ <param pos="0" name="hw.family" value="iPod"/>
2648
+ <param pos="0" name="hw.product" value="iPod Touch (2nd generation)"/>
2649
+ <param pos="0" name="hw.device" value="Media Player"/>
2650
+ </fingerprint>
2651
+
2652
+ <fingerprint pattern="^model=(?:N45AP|iPod1,1)$">
2653
+ <description>iPod Touch (1st generation)</description>
2654
+ <example>model=N45AP</example>
2655
+ <example>model=iPod1,1</example>
2656
+ <param pos="0" name="os.vendor" value="Apple"/>
2657
+ <param pos="0" name="os.family" value="iOS"/>
2658
+ <param pos="0" name="os.product" value="iOS"/>
2659
+ <param pos="0" name="os.cpe23" value="cpe:/o:apple:iphone_os:-"/>
2660
+ <param pos="0" name="hw.vendor" value="Apple"/>
2661
+ <param pos="0" name="hw.family" value="iPod"/>
2662
+ <param pos="0" name="hw.product" value="iPod Touch (1st generation)"/>
2663
+ <param pos="0" name="hw.device" value="Media Player"/>
2664
+ </fingerprint>
2665
+
1973
2666
  </fingerprints>