ชุดทดสอบสาธารณะ
การอ้างสิทธิ์ด้านความเข้ากันได้กับเครื่องสแกนของเรามีคุณภาพเท่ากับหลักฐานที่รองรับเท่านั้น หน้านี้คือคลัง, ข้อมูลนำเข้าที่เราใช้ทดสอบ regression กับกลุ่ม encoder ของเรา บวกกับพฤติกรรมกล้องโทรศัพท์ที่คุณตรวจสอบเองได้โดยไม่ต้องเชื่อคำพูดของเรา
ดาวน์โหลด corpus.zip ชุด fixtures JSON + CSV + ระเบียบวิธี + README ~4 KB
กำลังโหลดเวอร์ชัน…
วิธีใช้คลัง
เวกเตอร์ทดสอบทุกตัวอยู่ใน /test-vectors/fixtures.json หนึ่งออบเจ็กต์ JSON ต่อประเภท พร้อมฟิลด์อินพุตและ substring ที่คาดว่าจะถอดรหัสได้ ดึงข้อมูลสดจากเว็บไซต์นี้ ไม่มีสำเนาที่ล้าสมัย
นำแผนที่ fields ของ fixture ใดก็ได้ ใส่ค่าลงใน เครื่องสร้าง สำหรับประเภทนั้น แล้วกดสร้าง QR ที่ได้จะเหมือนกันทุกบิตกับที่ CI ของเราทดสอบในรอบวงจร
ชี้ iPhone Camera, Android Camera, Google Lens, เครื่องสแกนอุตสาหกรรม (Zebra, Honeywell, Datalogic) หรือเครื่องอ่านเฉพาะแอป (แอปธนาคาร, แอปยืนยันตัวตน) ไปที่ QR ที่สร้างขึ้น ยืนยันว่าข้อความที่ถอดรหัสได้ประกอบด้วย substring expect ทุกตัวสำหรับ fixture นั้น
หากเครื่องสแกนในกองยานของคุณส่งคืนการถอดรหัสที่ไม่ตรงกับ fixture ให้รายงานปัญหา เราจะสืบสวน เพิ่มเครื่องสแกนของคุณลงในเมทริกซ์ความเข้ากันได้สาธารณะ และ (หากเป็นบั๊กของ encoder) จัดส่งการแก้ไข
ผลลัพธ์การสแกนที่คาดหวัง
เรนเดอร์จากชุดข้อมูลเดียวกับตารางความเข้ากันได้และบรรทัด "สแกนได้บน" ของทุกหน้าประเภท ทั้งสามจึงไม่มีทางขัดแย้งกัน ไฟล์ fixture ฉบับเต็มที่ /test-vectors/ มี 33 รายการ หนึ่งรายการต่อกลุ่ม encoder ที่เราทดสอบ regression ไม่ใช่หนึ่งแถวต่อหนึ่งประเภทผลิตภัณฑ์ และเราไม่ได้อ้างว่าเป็นเช่นนั้น
| ประเภท | อินพุตทดสอบ | iPhone Camera | Android Camera | เครื่องสแกนระดับมือโปร |
|---|---|---|---|---|
| URL | https://example.com/test | เปิดลิงก์A1 | เปิดลิงก์A5 | ถอดรหัสได้A8 |
| WiFi | WIFI:S:MyNet;T:WPA;P:...;; | เชื่อมต่อเครือข่ายA1 | เชื่อมต่อเครือข่ายA5 | ถอดรหัส payloadA8 |
| WiFi Enterprise (EAP) | WPA2-EAP PEAP identity=alice@corp | iOS 17+ มีรายงานว่าใช้ได้U | ถอดรหัสได้ การเชื่อมต่อขึ้นอยู่กับผู้ผลิตเครื่องU | ถอดรหัส payloadQ |
| vCard | FN=Alice ORG=Acme ... | เพิ่มในรายชื่อผู้ติดต่อA1 | เพิ่มในรายชื่อผู้ติดต่อA5 | ถอดรหัส payloadA8 |
| TOTP | otpauth://totp/...?secret=JBSW... | แอปยืนยันตัวตนอ่านได้A9, A10 | แอปยืนยันตัวตนอ่านได้A9, A10 | ถอดรหัส URIA8 |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ จัดเตรียมได้A4 | Android 13+ จัดเตรียมได้U | ถอดรหัส URIQ |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | แอปกระเป๋าเงินเปิดQ | แอปกระเป๋าเงินเปิดQ | ถอดรหัส URIQ |
| SEPA (EPC) | BCD header + name + IBAN + amount | เฉพาะสตริงดิบQ | เฉพาะสตริงดิบQ | ถอดรหัสสตริงดิบQ |
| Swiss QR-bill | SPC header + IBAN + address + amount | เฉพาะสตริงดิบQ | เฉพาะสตริงดิบQ | ถอดรหัสสตริงดิบQ |
| Micro QR | Compact payload | ถอดรหัสไม่ได้V, U | ถอดรหัสไม่ได้G | เครื่องอ่านอุตสาหกรรมZ |
| rMQR | Rectangular payload | ถอดรหัสไม่ได้U | ถอดรหัสไม่ได้G | เฟิร์มแวร์ Zebra, Scandit และ Cognex รุ่นใหม่Z |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | เปิด URLQ | เปิด URLQ | เฟิร์มแวร์ POS แปลง AIQ |
| Aztec | Arbitrary payload | ถอดรหัสไม่ได้A2 | Google Lens บางรุ่นA7 | เนทีฟA8 |
| Data Matrix | Arbitrary payload | ถอดรหัสไม่ได้A2 | Google LensA6 | เนทีฟA8 |
| PDF417 | AAMVA or arbitrary | ถอดรหัสไม่ได้A2 | Google Lens ไม่แน่นอนA7 | เนทีฟA8 |
| AAMVA driver license | @\n\x1e\rANSI 636014100002DL... | ขั้นตอนที่รู้จักใบขับขี่บน iOS 17+A3 | เฉพาะแอปที่รู้จักใบขับขี่U | เนทีฟA8 |
| EAN-13 / UPC-A | 0012345678905 | ถอดรหัสไม่ได้Ap | Google LensG | POS ค้าปลีกทุกเครื่องA8 |
| Code 128 | ABC-123 | ถอดรหัสไม่ได้Ap | Google LensG | เนทีฟA8 |
วิธีอ่านเครื่องหมาย
- ✓: อ่านได้จากแอปกล้องมาตรฐาน ไม่ต้องใช้แอปเพิ่มเติม
- ~: อ่านได้ภายใต้เงื่อนไขที่ระบุในเซลล์ (แอปเฉพาะ, เวอร์ชัน OS หรือโหมดใดโหมดหนึ่ง)
- ✗: ถอดรหัสไม่ได้ ต้องใช้แอปสแกนเนอร์หรือฮาร์ดแวร์เฉพาะ
หลักฐาน
- A: our own device test; the number is the row in the attestation log
- Ap: Apple's support page describes the Camera app and Code Scanner as reading QR codes and lists no other symbology
- G: Google Lens decodes the ML Kit barcode formats: Codabar, Code 39, Code 93, Code 128, EAN-8, EAN-13, ITF, UPC-A, UPC-E, Aztec, Data Matrix, PDF417 and QR Code; Micro QR and rMQR are not on the list
- Z: Zebra lists Micro QR and rectangular Micro QR among the DS8100 series' 2D symbologies
- V: Apple's Vision framework decodes Micro QR for third-party apps since iOS 15; that is a developer API, not the Camera app
- Q: a standard QR symbol, so decoding is the attested QR result; the question is what the phone does with the payload
- U: not in our attestation log yet; from vendor documentation or field reports, treat as provisional
ความหมายของ "ผลลัพธ์การสแกนที่คาดหวัง"
- ถอดรหัสได้, เครื่องอ่านกล้องเนทีฟของโทรศัพท์ส่งคืน payload โดยไม่ต้องใช้แอปแยกต่างหาก
- บางส่วน, การถอดรหัสขึ้นอยู่กับแอปเฉพาะ (แอปยืนยันตัวตน, กระเป๋าเงิน, ธนาคาร) หรือเวอร์ชัน OS เฉพาะ
- ถอดรหัสไม่ได้, กล้องเนทีฟไม่ส่งคืนสิ่งใด ต้องใช้เครื่องสแกนหรือเครื่องอ่านเฉพาะทาง
- ตัวอักษรเล็ก หลังผลลัพธ์แต่ละรายการระบุหลักฐาน: A บวกตัวเลขคือแถวหนึ่งในบันทึกการรับรองด้านล่าง ส่วนตัวอักษรอื่นคือเอกสารของผู้จำหน่าย ซึ่งระบุไว้ใต้แต่ละตาราง ส่วน U หมายความว่าเรายังไม่ได้ทดสอบเซลล์นั้นด้วยอุปกรณ์ของเราเอง
หมายเหตุด้านระเบียบวิธี
- ทุก fixture ผ่านรอบวงจรครบถ้วน CI ของเราสร้างโค้ดแต่ละตัวใน Chromium แบบไม่มีส่วนหัว ถอดรหัสกลับผ่าน API
BarcodeDetectorของเบราว์เซอร์ และยืนยันการจับคู่ substring CI สีเขียวหมายความว่าคลังมีความสอดคล้องภายใน - ผลลัพธ์ของเครื่องสแกนในตารางนี้มาจากการทดสอบด้วยตนเองบนอุปกรณ์จริง ไม่ได้สังเคราะห์ขึ้น iPhone 15 Pro บน iOS 18.3, Pixel 8 บน Android 14, Zebra DS8100 imager บนเฟิร์มแวร์ CAAACS00-002-R06
- เราเผยแพร่ผลลัพธ์เชิงลบ หาก iPhone Camera ปฏิเสธที่จะถอดรหัสสัญลักษณ์วิทยา (Data Matrix, Aztec, PDF417) นั่นคือ "ถอดรหัสไม่ได้" ในตาราง ไม่ใช่การตั้งชื่อใหม่ว่า "เครื่องอ่านเนทีฟ"
- คลังมีการกำหนดเวอร์ชัน เมื่อเราเพิ่มประเภทหรือแก้ไขบั๊กของ encoder รายการ fixture ที่สอดคล้องจะถูกส่งออกในคอมมิตเดียวกัน บันทึกการเปลี่ยนแปลงบันทึกการเปลี่ยนแปลง fixture แต่ละครั้ง และ corpus.VERSION.txt เก็บแฮชของไฟล์ fixture ที่ ZIP ปัจจุบันถูกสร้างขึ้นมาจาก
บันทึกการรับรองกองยานเครื่องสแกน
การทดสอบด้วยอุปกรณ์จริงทุกครั้งลงวันที่ไว้ แถวใหม่จะถูกเพิ่มเมื่อเราได้อุปกรณ์เพิ่มหรือมีผู้ใช้รายงานความคลาดเคลื่อน ผลลัพธ์จะไม่ถูกเปลี่ยนแบบเงียบๆ แต่จะได้แถวใหม่แทน
| # | Device | OS / app | Corpus slice | Result | Date | Notes |
|---|---|---|---|---|---|---|
| A1 | iPhone 15 Pro | iOS 18.3, native Camera | All QR fixtures | pass | 2026-04-10 | |
| A2 | iPhone 15 Pro | iOS 18.3, native Camera | Aztec, PDF417, Data Matrix | fail | 2026-04-10 | ไม่มีตัวใดถอดรหัสได้แบบเนทีฟ (เป็นไปตามคาด ดู /standards/non-qr-2d/) |
| A3 | iPhone 15 Pro | iOS 18.3, native Camera | AAMVA PDF417 | partial | 2026-04-10 | ขั้นตอนที่รู้จักใบขับขี่บน iOS 17+ เสนอ Add to Wallet; ไม่คืนค่า PDF417 ดิบ |
| A4 | iPhone 15 Pro | iOS 18.3, Wallet | eSIM LPA | pass | 2026-04-12 | ขั้นตอน Add-eSIM ทำงานถูกต้อง |
| A5 | Pixel 8 | Android 14, native Camera | All QR fixtures | pass | 2026-04-10 | |
| A6 | Pixel 8 | Android 14, Google Lens | Data Matrix | pass | 2026-04-10 | |
| A7 | Pixel 8 | Android 14, Google Lens | Aztec, PDF417 | partial | 2026-04-10 | บางรุ่นถอดรหัสได้ การรองรับไม่แน่นอน |
| A8 | Zebra DS8100 | firmware CAAACS00-002-R06 | All 2D + 1D fixtures | pass | 2026-04-11 | เครื่องสแกนภาพระดับอุตสาหกรรม การอ้างอิงมาตรฐาน |
| A9 | Google Authenticator | v7.0+ (iOS/Android) | TOTP, HOTP | pass | 2026-04-12 | SHA-1 เท่านั้น, 6 หลัก (ไม่สนใจพารามิเตอร์ algorithm/digits ตามข้อกำหนดโดยพฤตินัยของ Google) |
| A10 | 1Password | v8 (iOS/Android/macOS) | TOTP, HOTP | pass | 2026-04-12 | รองรับ RFC เต็มรูปแบบ รวม SHA-256, SHA-512, 8 หลัก |
สิ่งที่กำลังจะมา
- อาร์ติแฟกต์ที่เรนเดอร์ล่วงหน้า ZIP ปัจจุบันรวม fixtures + ระเบียบวิธี + CSV การแก้ไขในอนาคตจะเพิ่ม SVG + PNG ที่เรนเดอร์ล่วงหน้าของแต่ละ fixture เพื่อให้คุณวางลงในระบบทดสอบกองยานเครื่องสแกนได้โดยตรง รอขั้นตอนเบราว์เซอร์แบบไม่มีส่วนหัวในช่วงเวลาสร้าง
- การรับรองกองยานเครื่องสแกน บันทึกอุปกรณ์ลงวันที่เผยแพร่ไว้บนหน้านี้และเพิ่มขึ้นทุกครั้งที่เราตรวจสอบกับอุปกรณ์ใหม่
- การตรวจสอบโดยบุคคลที่สาม ห้องปฏิบัติการความปลอดภัยอิสระรันคลังผ่านกองยานเครื่องสแกนและเผยแพร่การรับรองที่ลงนาม รอดำเนินการ, ว่าจ้างแล้ว รายงานจะเผยแพร่ที่นี่เมื่อมาถึง
ดูเพิ่มเติม
- /test-vectors/, fixture JSON ฉบับเต็มและตารางที่ค้นหาได้
- /compatibility/, เมทริกซ์ความเข้ากันได้ของเครื่องสแกนแบบสด
- /standards/, หน้าอ้างอิงต่อมาตรฐาน
- /print-size/, คำแนะนำการพิมพ์จริงที่ใช้คู่กับคลัง