Kamuya Açık Test Korpusu
Tarayıcı uyumluluk iddialarımız, ancak dayandıkları kanıtlar kadar güvenilirdir. Bu sayfa korpustur, encoder ailelerimize karşı regresyon testinde çalıştırdığımız girdiler ve sözümüze güvenmeden kendiniz denetleyebileceğiniz telefon kamerası davranışları.
corpus.zip İndir Paketlenmiş fixtures JSON + CSV + metodoloji + README. ~4 KB.
Sürüm yükleniyor…
Korpus nasıl kullanılır
Her test vektörü /test-vectors/fixtures.json içindedir. Giriş alanları ve beklenen çözülmüş alt dizileri içeren, tür başına bir JSON nesnesi. Bu siteden canlı olarak alınır, eski kopyalar yoktur.
Herhangi bir fixture'ın fields haritasını alın, değerleri o tür için oluşturucuya girin ve Oluştur'a tıklayın. Elde edilen QR, CI'mızın döngü testinde kullandığıyla bit bit aynıdır.
iPhone Camera, Android Camera, Google Lens, endüstriyel tarayıcı (Zebra, Honeywell, Datalogic) veya uygulamaya özgü okuyucuyu (bir bankacılık uygulaması, bir kimlik doğrulayıcı) oluşturulan QR'a yöneltin. Çözülmüş metnin ilgili fixture için her expect alt dizisini içerdiğini onaylayın.
Filonuzdaki bir tarayıcı fixture ile eşleşmeyen bir çözüm döndürürse sorun bildirin. Yeniden üretiriz, tarayıcınızı genel uyumluluk matrisine ekleriz ve (encoder hatası ise) düzeltme göndeririz.
Beklenen tarama sonuçları
Uyumluluk matrisi ve her tür sayfasının "Şurada taranır" satırıyla aynı veri kümesinden oluşturulur, bu yüzden üçü birbiriyle çelişemez. /test-vectors/ adresindeki tam fixture dosyasında, regresyon testinden geçirdiğimiz her encoder ailesi için bir tane olmak üzere 33 girdi vardır; her ürün türü için bir satır değildir ve öyle olduğunu iddia etmiyoruz.
| Tür | Fixture girdisi | iPhone Camera | Android Camera | Profesyonel tarayıcı |
|---|---|---|---|---|
| URL | https://example.com/test | Bağlantıyı açarA1 | Bağlantıyı açarA5 | ÇözümlerA8 |
| WiFi | WIFI:S:MyNet;T:WPA;P:...;; | Ağa katılırA1 | Ağa katılırA5 | Payload'ı çözümlerA8 |
| WiFi Enterprise (EAP) | WPA2-EAP PEAP identity=alice@corp | iOS 17+, bildirildiU | Çözümler; katılma üreticiye bağlıdırU | Payload'ı çözümlerQ |
| vCard | FN=Alice ORG=Acme ... | Kişilere ekleA1 | Kişilere ekleA5 | Payload'ı çözümlerA8 |
| TOTP | otpauth://totp/...?secret=JBSW... | Kimlik doğrulayıcı uygulaması okurA9, A10 | Kimlik doğrulayıcı uygulaması okurA9, A10 | URI'yi çözümlerA8 |
| eSIM | LPA:1$rsp.example.com$K2-LM... | iOS 17.4+ sağlarA4 | Android 13+ sağlarU | URI'yi çözümlerQ |
| Bitcoin (BIP-21) | bitcoin:1A1zP1eP... | Cüzdan uygulaması açılırQ | Cüzdan uygulaması açılırQ | URI'yi çözümlerQ |
| SEPA (EPC) | BCD header + name + IBAN + amount | Yalnızca ham dizeQ | Yalnızca ham dizeQ | Ham dizeyi çözümlerQ |
| Swiss QR-bill | SPC header + IBAN + address + amount | Yalnızca ham dizeQ | Yalnızca ham dizeQ | Ham dizeyi çözümlerQ |
| Micro QR | Compact payload | Çözüm yokV, U | Çözüm yokG | Endüstriyel okuyucularZ |
| rMQR | Rectangular payload | Çözüm yokU | Çözüm yokG | Daha yeni Zebra, Scandit ve Cognex donanım yazılımıZ |
| GS1 Digital Link | https://id.gs1.org/01/09506000134352 | URL'yi açarQ | URL'yi açarQ | POS donanım yazılımı AI'ları ayrıştırırQ |
| Aztec | Arbitrary payload | Çözüm yokA2 | Google Lens, bazı varyantlarA7 | YerelA8 |
| Data Matrix | Arbitrary payload | Çözüm yokA2 | Google LensA6 | YerelA8 |
| PDF417 | AAMVA or arbitrary | Çözüm yokA2 | Google Lens, tutarsızA7 | YerelA8 |
| AAMVA driver license | @\n\x1e\rANSI 636014100002DL... | iOS 17+ ehliyet destekli akışA3 | Yalnızca ehliyet destekli uygulamalarU | YerelA8 |
| EAN-13 / UPC-A | 0012345678905 | Çözüm yokAp | Google LensG | Her perakende POSA8 |
| Code 128 | ABC-123 | Çözüm yokAp | Google LensG | YerelA8 |
İşaretler nasıl okunur
- ✓: standart kamera uygulamasından okur, ek uygulama gerekmez
- ~: hücrede belirtilen bir koşul altında okur (belirli bir uygulama, işletim sistemi sürümü veya mod)
- ✗: çözemez; bir tarayıcı uygulaması veya donanım gerekir
Kanıt
- 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
"Beklenen tarama sonucu" ne anlama gelir
- Çözümler, telefonun yerel kamera okuyucusu, ayrı bir uygulamaya gerek kalmadan payload'ı döndürür.
- Kısmi, çözüm belirli bir uygulamaya (kimlik doğrulayıcı, cüzdan, bankacılık) veya belirli bir işletim sistemi sürümüne bağlıdır.
- Çözüm yok, yerel kamera hiçbir şey döndürmez. Uzman bir tarayıcı veya okuyucu gerektirir.
- Her işaretten sonraki küçük harfler kanıtı adlandırır: bir harf artı bir sayı, aşağıdaki onaylama günlüğünün bir satırıdır; diğer harfler satıcı belgeleridir, her tablonun altında listelenir. U harfi, o hücreyi henüz kendi cihazlarımızdan geçirmediğimiz anlamına gelir.
Metodoloji notları
- Her fixture tam döngüden geçer. CI'mız her kodu başsız Chromium'da üretir, tarayıcının
BarcodeDetectorAPI'si aracılığıyla geri çözer ve alt dize eşleşmesini doğrular. Yeşil CI, korpusun dahili olarak tutarlı olduğu anlamına gelir. - Bu tablodaki tarayıcı sonuçları gerçek cihazlarda manuel testten elde edilmiştir. Sentezlenmemiş. iOS 18.3'lü iPhone 15 Pro, Android 14'lü Pixel 8, CAAACS00-002-R06 donanım yazılımlı Zebra DS8100 imager.
- Olumsuz sonuçları da yayımlıyoruz. iPhone Camera bir sembolojiyi (Data Matrix, Aztec, PDF417) çözmeyi reddederse, tabloda "Çözüm yok" olarak görünür, "yerel okuyucu" olarak yeniden adlandırılmaz.
- Korpus sürümlüdür. Bir tür eklediğimizde veya encoder hatasını düzelttiğimizde, ilgili fixture girdisi aynı commit'te gönderilir. Değişiklik günlüğü her fixture değişikliğini kaydeder ve corpus.VERSION.txt, mevcut ZIP'in üretildiği fixture dosyasının özetini taşır.
Tarayıcı filosu onaylama günlüğü
Her manuel cihaz koşumu, tarihlidir. Donanım edindiğimizde veya bir kullanıcı bir tutarsızlık bildirdiğinde satır eklenir; bir sonuç asla sessizce değişmez, yeni bir satır alır.
| # | 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 | Hiçbiri yerel olarak çözmez (beklenen, bkz. /standards/non-qr-2d/) |
| A3 | iPhone 15 Pro | iOS 18.3, native Camera | AAMVA PDF417 | partial | 2026-04-10 | iOS 17+ ehliyet destekli akış Wallet'a Ekle sunar; ham PDF417 döndürülmez |
| A4 | iPhone 15 Pro | iOS 18.3, Wallet | eSIM LPA | pass | 2026-04-12 | eSIM Ekle akışı doğru şekilde tetiklenir |
| 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 | Bazı varyantlar çözer; destek tutarsızdır |
| A8 | Zebra DS8100 | firmware CAAACS00-002-R06 | All 2D + 1D fixtures | pass | 2026-04-11 | Endüstriyel görüntüleyici, kanonik referans |
| A9 | Google Authenticator | v7.0+ (iOS/Android) | TOTP, HOTP | pass | 2026-04-12 | Yalnızca SHA-1, 6 haneli (Google'ın fiili profiline göre algorithm/digits parametrelerini yok sayar) |
| A10 | 1Password | v8 (iOS/Android/macOS) | TOTP, HOTP | pass | 2026-04-12 | SHA-256, SHA-512, 8 haneli dahil tam RFC desteği |
Geliyor olanlar
- Önceden oluşturulmuş artefaktlar. Mevcut ZIP, fixtures + metodoloji + CSV'yi bir araya getirir. Gelecekteki bir revizyon, her fixture'ın önceden oluşturulmuş SVG + PNG'sini ekleyecek; böylece bunları doğrudan bir tarayıcı filosu test koşumuna bırakabilirsiniz. Derleme zamanı başsız tarayıcı adımı bekleniyor.
- Tarayıcı filosu onayı. Tarihli cihaz günlüğü bu sayfada yayımlanır ve yeni bir cihazı doğruladığımızda büyür.
- Üçüncü taraf doğrulaması. Bağımsız bir güvenlik laboratuvarı korpusu bir tarayıcı filosundan geçirir ve imzalı bir onay yayımlar. Beklemede, sipariş verildi; rapor geldiğinde burada yayımlanacak.
Ayrıca bakın
- /test-vectors/, tam fixture JSON ve aranabilir tablo.
- /compatibility/, canlı tarayıcı uyumluluk matrisi.
- /standards/, standart başına referans sayfaları.
- /print-size/, korpusun yanında yer alan fiziksel baskı kılavuzu.