recog 2.3.18 → 2.3.22

Sign up to get free protection for your applications and to get access to all the features.
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>