Korpus Uji Publik
Klaim kompatibilitas pemindai kami hanya sebaik bukti yang mendasarinya. Halaman ini adalah korpus, input yang kami uji regresi terhadap setiap keluarga encoder kami, ditambah perilaku kamera ponsel yang bisa Anda audit sendiri tanpa harus mempercayai kata-kata kami.
Unduh corpus.zip Paket fixtures JSON + CSV + metodologi + README. ~4 KB.
Memuat versi…
Cara menggunakan korpus
Setiap vektor uji ada di /test-vectors/fixtures.json. Satu objek JSON per tipe dengan kolom input dan substring yang diharapkan dari hasil dekode. Diambil langsung dari situs ini, tidak ada salinan usang.
Ambil peta fields dari fixture mana pun, masukkan nilai ke generator untuk tipe tersebut, lalu klik Generate. QR yang dihasilkan identik bit-per-bit dengan yang diuji oleh CI kami.
Arahkan iPhone Camera, Android Camera, Google Lens, pemindai industri (Zebra, Honeywell, Datalogic), atau pembaca khusus aplikasi (aplikasi perbankan, autentikator) ke QR yang dihasilkan. Pastikan teks hasil dekode mengandung setiap substring expect untuk fixture tersebut.
Jika pemindai di armada Anda mengembalikan dekode yang tidak cocok dengan fixture, ajukan laporan masalah. Kami akan mereproduksinya, menambahkan pemindai Anda ke matriks kompatibilitas publik, dan (jika itu bug encoder) mengirimkan perbaikan.
Hasil pemindaian yang diharapkan
Dirender dari set data yang sama dengan matriks kompatibilitas dan baris "Scans on" di setiap halaman jenis, sehingga ketiganya tidak mungkin bertentangan. Berkas fixture lengkap di /test-vectors/ memiliki 33 entri, satu per keluarga encoder yang kami uji regresi; ini bukan satu baris per jenis produk, dan kami tidak mengklaim demikian.
| Jenis | Input fixture | iPhone Camera | Android Camera | Pemindai profesional |
|---|---|---|---|---|
| URL | https://example.com/test | Membuka tautanA1 | Membuka tautanA5 | MendekodeA8 |
| WiFi | WIFI:S:MyNet;T:WPA;P:...;; | Bergabung ke jaringanA1 | Bergabung ke jaringanA5 | Mendekode payloadA8 |
| WiFi Enterprise (EAP) | WPA2-EAP PEAP identity=alice@corp | iOS 17+, dilaporkanU | Mendekode; bergabung bergantung pada OEMU | Mendekode payloadQ |
| vCard | FN=Alice ORG=Acme ... | Tambah ke KontakA1 | Tambah ke KontakA5 | Mendekode payloadA8 |
| TOTP | otpauth://totp/...?secret=JBSW... | Aplikasi autentikator membacanyaA9, A10 | Aplikasi autentikator membacanyaA9, A10 | Mendekode URIA8 |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ menyediakanA4 | Android 13+ menyediakanU | Mendekode URIQ |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Aplikasi dompet terbukaQ | Aplikasi dompet terbukaQ | Mendekode URIQ |
| SEPA (EPC) | BCD header + name + IBAN + amount | String mentah sajaQ | String mentah sajaQ | Mendekode string mentahQ |
| Swiss QR-bill | SPC header + IBAN + address + amount | String mentah sajaQ | String mentah sajaQ | Mendekode string mentahQ |
| Micro QR | Compact payload | Tidak mendekodeV, U | Tidak mendekodeG | Pembaca industriZ |
| rMQR | Rectangular payload | Tidak mendekodeU | Tidak mendekodeG | Firmware Zebra, Scandit, dan Cognex yang lebih baruZ |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | Membuka URLQ | Membuka URLQ | Firmware POS mengurai AIQ |
| Aztec | Arbitrary payload | Tidak mendekodeA2 | Google Lens, sebagian varianA7 | NativeA8 |
| Data Matrix | Arbitrary payload | Tidak mendekodeA2 | Google LensA6 | NativeA8 |
| PDF417 | AAMVA or arbitrary | Tidak mendekodeA2 | Google Lens, tidak konsistenA7 | NativeA8 |
| AAMVA driver license | @\n\x1e\rANSI 636014100002DL... | iOS 17+, alur yang mendukung SIMA3 | Hanya aplikasi yang mendukung SIMU | NativeA8 |
| EAN-13 / UPC-A | 0012345678905 | Tidak mendekodeAp | Google LensG | Setiap POS ritelA8 |
| Code 128 | ABC-123 | Tidak mendekodeAp | Google LensG | NativeA8 |
Cara membaca tanda
- ✓: membacanya dari aplikasi kamera bawaan, tanpa aplikasi tambahan
- ~: membacanya dengan syarat tertentu yang disebutkan di sel (aplikasi tertentu, versi OS, atau mode tertentu)
- ✗: tidak mendekodenya; Anda memerlukan aplikasi pemindai atau perangkat keras
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 arti "hasil pemindaian yang diharapkan"
- Mendekode, pembaca kamera ponsel native mengembalikan payload tanpa memerlukan aplikasi terpisah.
- Sebagian, dekode bergantung pada aplikasi tertentu (autentikator, dompet, perbankan) atau versi OS tertentu.
- Tidak mendekode, kamera native tidak mengembalikan apa pun. Memerlukan pemindai atau pembaca spesialis.
- Huruf kecil setelah setiap hasil menyebutkan buktinya: A ditambah angka adalah baris log atestasi di bawah; huruf lainnya adalah dokumentasi vendor, yang dicantumkan di bawah masing-masing tabel. Huruf U berarti kami belum menguji sel tersebut dengan perangkat kami sendiri.
Catatan metodologi
- Setiap fixture melewati siklus penuh. CI kami menghasilkan setiap kode di Chromium tanpa kepala, mendekodenya kembali melalui API
BarcodeDetectorbrowser, dan memastikan kecocokan substring. CI hijau berarti korpus konsisten secara internal. - Hasil pemindai dalam tabel ini berasal dari pengujian manual pada perangkat nyata. Tidak disintesis. iPhone 15 Pro di iOS 18.3, Pixel 8 di Android 14, Zebra DS8100 imager pada firmware CAAACS00-002-R06.
- Kami mempublikasikan hasil negatif. Jika iPhone Camera menolak mendekode suatu simbologi (Data Matrix, Aztec, PDF417), itu menjadi "Tidak mendekode" dalam tabel, bukan diganti nama menjadi "pembaca native".
- Korpus memiliki versi. Saat kami menambahkan tipe atau memperbaiki bug encoder, entri fixture yang sesuai dikirimkan dalam commit yang sama. Changelog mencatat setiap perubahan fixture, dan corpus.VERSION.txt membawa hash berkas fixture yang menjadi dasar pembuatan ZIP saat ini.
Log atestasi armada pemindai
Setiap uji coba perangkat manual, bertanggal. Baris ditambahkan saat kami memperoleh perangkat keras baru atau pengguna melaporkan ketidaksesuaian; hasil tidak pernah berubah secara diam-diam, ia mendapat baris baru.
| # | 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 | Tidak ada yang mendekode secara native (sesuai perkiraan, lihat /standards/non-qr-2d/) |
| A3 | iPhone 15 Pro | iOS 18.3, native Camera | AAMVA PDF417 | partial | 2026-04-10 | Alur iOS 17+ yang mendukung SIM menawarkan Tambah ke Wallet; PDF417 mentah tidak dikembalikan |
| A4 | iPhone 15 Pro | iOS 18.3, Wallet | eSIM LPA | pass | 2026-04-12 | Alur Tambah eSIM terpicu dengan benar |
| 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 | Sebagian varian mendekode; dukungannya tidak konsisten |
| A8 | Zebra DS8100 | firmware CAAACS00-002-R06 | All 2D + 1D fixtures | pass | 2026-04-11 | Imager industri, referensi kanonis |
| A9 | Google Authenticator | v7.0+ (iOS/Android) | TOTP, HOTP | pass | 2026-04-12 | Hanya SHA-1, 6 digit (mengabaikan parameter algorithm/digits sesuai profil de facto Google) |
| A10 | 1Password | v8 (iOS/Android/macOS) | TOTP, HOTP | pass | 2026-04-12 | Dukungan RFC penuh termasuk SHA-256, SHA-512, 8 digit |
Yang akan datang
- Artefak yang telah dirender. ZIP saat ini menggabungkan fixtures + metodologi + CSV. Revisi mendatang akan menambahkan SVG + PNG yang telah dirender dari setiap fixture sehingga Anda bisa langsung memasukkannya ke dalam harness armada pemindai. Menunggu langkah browser tanpa kepala saat build.
- Atestasi armada pemindai. Log perangkat bertanggal dipublikasikan di halaman ini dan bertambah setiap kali kami memverifikasi perangkat baru.
- Verifikasi pihak ketiga. Lab keamanan independen menjalankan korpus melalui armada pemindai dan menerbitkan atestasi bertanda tangan. Menunggu, sudah dipesan; laporan akan diterbitkan di sini saat tiba.
Lihat juga
- /test-vectors/, fixture JSON lengkap dan tabel yang bisa dicari.
- /compatibility/, matriks kompatibilitas pemindai langsung.
- /standards/, halaman referensi per standar.
- /print-size/, panduan cetak fisik yang melengkapi korpus.