Korpus Ujian Awam
Tuntutan keserasian pengimbas kami hanya sebaik bukti yang dibina di atasnya. Halaman ini adalah korpus, input yang kami uji regresi terhadap keluarga pengekod kami, ditambah tingkah laku kamera telefon yang boleh anda audit sendiri tanpa perlu mempercayai kata-kata kami untuk mana-mana daripadanya.
Muat turun corpus.zip Lekapan terbundelkan JSON + CSV + metodologi + README. ~4 KB.
Loading version…
Cara menggunakan korpus
Setiap vektor ujian ada dalam /test-vectors/fixtures.json. Satu objek JSON bagi setiap jenis. Diambil terus dari laman ini.
Ambil peta fields mana-mana lekapan, masukkan nilai ke dalam penjana untuk jenis tersebut, dan klik Jana.
Arahkan iPhone Camera, Android Camera, Google Lens, pengimbas industri, atau pembaca khusus apl ke QR yang dijana. Sahkan teks yang dinyahkod mengandungi setiap sub-rentetan expect untuk lekapan tersebut.
Jika pengimbas dalam fleet anda mengembalikan nyahkod yang tidak sepadan dengan lekapan, failkan isu. Kami akan menghasilkan semula, menambah pengimbas anda ke matriks keserasian awam, dan jika ia pepijat pengenkod, hantar pembaikan.
Keputusan imbasan yang dijangkakan
Dipaparkan daripada set data yang sama dengan matriks keserasian dan baris "Boleh diimbas oleh" pada setiap halaman jenis, jadi ketiga-tiganya tidak boleh berbeza. Fail lekapan penuh di /test-vectors/ mempunyai 33 entri, satu bagi setiap keluarga pengekod yang kami uji regresi; ia bukan satu baris bagi setiap jenis produk, dan kami tidak mendakwa sedemikian.
| Jenis | Input lekapan | iPhone Camera | Android Camera | Pengimbas Pro |
|---|---|---|---|---|
| URL | https://example.com/test | Membuka pautanA1 | Membuka pautanA5 | MenyahkodA8 |
| WiFi | WIFI:S:MyNet;T:WPA;P:...;; | Menyertai rangkaianA1 | Menyertai rangkaianA5 | Menyahkod muatanA8 |
| WiFi Enterprise (EAP) | WPA2-EAP PEAP identity=alice@corp | iOS 17+, dilaporkanU | Menyahkod; penyertaan bergantung pada OEMU | Menyahkod muatanQ |
| vCard | FN=Alice ORG=Acme ... | Tambah ke KenalanA1 | Tambah ke KenalanA5 | Menyahkod muatanA8 |
| TOTP | otpauth://totp/...?secret=JBSW... | Aplikasi pengesah membacanyaA9, A10 | Aplikasi pengesah membacanyaA9, A10 | Menyahkod URIA8 |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ menyediakanA4 | Android 13+ menyediakanU | Menyahkod URIQ |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Aplikasi dompet dibukaQ | Aplikasi dompet dibukaQ | Menyahkod URIQ |
| SEPA (EPC) | BCD header + name + IBAN + amount | Rentetan mentah sahajaQ | Rentetan mentah sahajaQ | Menyahkod rentetan mentahQ |
| Swiss QR-bill | SPC header + IBAN + address + amount | Rentetan mentah sahajaQ | Rentetan mentah sahajaQ | Menyahkod rentetan mentahQ |
| Micro QR | Compact payload | Tiada nyahkodV, U | Tiada nyahkodG | Pembaca perindustrianZ |
| rMQR | Rectangular payload | Tiada nyahkodU | Tiada nyahkodG | Perisian tegar Zebra, Scandit dan Cognex yang lebih baharuZ |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | Membuka URLQ | Membuka URLQ | Perisian tegar POS menghurai AIQ |
| Aztec | Arbitrary payload | Tiada nyahkodA2 | Google Lens, sesetengah varianA7 | NatifA8 |
| Data Matrix | Arbitrary payload | Tiada nyahkodA2 | Google LensA6 | NatifA8 |
| PDF417 | AAMVA or arbitrary | Tiada nyahkodA2 | Google Lens, tidak konsistenA7 | NatifA8 |
| AAMVA driver license | @\n\x1e\rANSI 636014100002DL... | Aliran sedar-lesen iOS 17+A3 | Hanya aplikasi sedar-lesenU | NatifA8 |
| EAN-13 / UPC-A | 0012345678905 | Tiada nyahkodAp | Google LensG | Setiap POS runcitA8 |
| Code 128 | ABC-123 | Tiada nyahkodAp | Google LensG | NatifA8 |
Cara membaca tanda
- ✓: membacanya daripada aplikasi kamera asal, tiada aplikasi tambahan diperlukan
- ~: membacanya di bawah syarat yang dinyatakan dalam sel (aplikasi tertentu, versi OS, atau mod)
- ✗: tidak menyahkodnya; anda memerlukan aplikasi pengimbas atau perkakasan
Bukti
- 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
Apa maksud "keputusan imbasan yang dijangkakan"
- Menyahkod, Menyahkod.
- Separa, Separa, bergantung pada apl atau versi OS tertentu.
- Tiada nyahkod, Tiada nyahkod, kamera asli tidak mengembalikan apa-apa. Memerlukan pengimbas pakar.
- Huruf kecil selepas setiap keputusan menamakan buktinya: A ditambah nombor ialah satu baris log pengesahan di bawah; huruf lain ialah dokumentasi vendor, disenaraikan di bawah setiap jadual. U bermaksud kami belum menguji sel itu melalui peranti kami sendiri.
Nota metodologi
- Every fixture round-trips. CI generates each code in headless Chromium, decodes via
BarcodeDetector, asserts substring match. - Scanner results are from manual testing on real devices. iPhone 15 Pro / iOS 18.3, Pixel 8 / Android 14, Zebra DS8100.
- We publish negative results. iPhone refusing Data Matrix is "No decode", not rebrandled as "native reader."
- Korpus ini berversi. Apabila kami menambah jenis atau membetulkan pepijat pengekod, entri lekapan berkaitan dihantar dalam commit yang sama. Log perubahan merekod setiap perubahan lekapan, dan corpus.VERSION.txt membawa hash fail lekapan yang menjadi asas ZIP semasa dibina.
Log pengesahan armada pengimbas
Setiap larian peranti manual, bertarikh. Baris ditambah apabila kami memperoleh perkakasan atau pengguna melaporkan percanggahan; keputusan tidak pernah berubah secara senyap, ia mendapat baris baharu.
| # | 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 | Tiada satu pun menyahkod secara natif (dijangka, lihat /standards/non-qr-2d/) |
| A3 | iPhone 15 Pro | iOS 18.3, native Camera | AAMVA PDF417 | partial | 2026-04-10 | Aliran sedar-lesen iOS 17+ menawarkan Tambah ke Wallet; PDF417 mentah tidak dikembalikan |
| A4 | iPhone 15 Pro | iOS 18.3, Wallet | eSIM LPA | pass | 2026-04-12 | Aliran Tambah-eSIM tercetus dengan betul |
| 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 | Sesetengah varian menyahkod; sokongan tidak konsisten |
| A8 | Zebra DS8100 | firmware CAAACS00-002-R06 | All 2D + 1D fixtures | pass | 2026-04-11 | Pengimej perindustrian, rujukan kanonik |
| A9 | Google Authenticator | v7.0+ (iOS/Android) | TOTP, HOTP | pass | 2026-04-12 | SHA-1 sahaja, 6 digit (mengabaikan parameter algoritma/digit mengikut profil de facto Google) |
| A10 | 1Password | v8 (iOS/Android/macOS) | TOTP, HOTP | pass | 2026-04-12 | Sokongan RFC penuh termasuk SHA-256, SHA-512, 8 digit |
Yang akan datang
- Pre-rendered artifacts. Future revision adds pre-rendered SVG + PNG per fixture for scanner-fleet harnesses.
- Pengesahan armada pengimbas. Log peranti bertarikh diterbitkan pada halaman ini dan berkembang setiap kali kami mengesahkan terhadap peranti baharu.
- Third-party verification. Independent security lab run pending; report publishes here on arrival.