corona-warn-app / cwa-app-ios

Native iOS app using the exposure notification framework from Apple. The CWA development ends on May 31, 2023. You still can warn other users until April 30, 2023. More information:
https://coronawarn.app/en/faq/#ramp_down
Apache License 2.0
1.68k stars 285 forks source link

CWA QR-Code certificates not scannable with check-apps #3515

Closed merlinseeling closed 3 years ago

merlinseeling commented 3 years ago

Avoid duplicates

Technical details

Describe the bug

The certificate (QR-Code) that is shown in the corona-warn-app (CWA) on iOS isn’t scannable with covid-certificate-check apps like the covpass-check-app (CpCA) on android devices.

Steps to reproduce the issue

Try to scan the QR-Code in the CWA on iOS with the CpCA from an android device. And nothing should happen. No error. Nothing. The check-app on android isn’t able to scan it at all.

Expected behaviour

The check-app should be able to scan it and should either say that the certificate is valid or not.

Possible Fix

After a lot of investigation I’m pretty sure I found the problem, but I don’t know how to fix it.

The CWA is not showing the QR-Code correctly:

CWA:

CpA

covpass-app (CpA) for reference:

CWA

The Code should be made of equally sized squares, but instead the quadrangles are all differently shaped so that the QR-Code can’t be scanned by android devices.

Additional context

I didn’t see the bug in the CpA or other apps from other countries.

There is also no problem in these constellations:

(CpCA is exemplary for all check-apps)

Contact

By any questions belonging the bug I am pleased to help, because I guess the problem is pretty important and should be fixed asap.

Ein-Tim commented 3 years ago

I cannot reproduce this bug.

Device showing the certificate: iPhone XR with CWA version 2.9.0 and iOS 14.7.1.

Device scanning the certificate: Huawei P Smart 2019 with CovPassCheck version 1.95.12 and Android 10.

Which device is CovPassCheck running on @merlinseeling?

thomasaugsten commented 3 years ago

The recommended scanning distance is 50cm. Can you please retry this or try a different android device.

merlinseeling commented 3 years ago

I tried it again with other android devices:

Device showing the certificate: iPhone 12 with CWA version 2.9.0 and iOS 15 iPhone SE 2020 with CWA version 2.9.0 and iOS 14.7.1

Device scanning the certificate: OnePlus 5T with CpCA version 1.95.12 and Android 11 (LineageOS 18.1) Xiaomi Poco X3 NFC with CpCA version 1.95.12 and Android 11 Sony Xperia Z5 with CpCA version 1.95.12 and Android 7.1.1

And other devices, where I showed my certificate and it could not be scanned.

Another question, can you (@Ein-Tim and @thomasaugsten) see the same incorrect appearance of the QR-Code in the CWA, that I described in "Possible Fix #3515"?

Ein-Tim commented 3 years ago

@merlinseeling

Thanks for providing the additional informations! Where did you download CovPassCheck from? The PlayStore?

Another question, can you (@Ein-Tim and @thomasaugsten) see the same incorrect appearance of the QR-Code in the CWA, that I described in "Possible Fix #3515"?

Here is a part of my vaccination certificate:

Corona-Warn-App: IMG_1773 2

CovPass-App: IMG_1774 2

thomasaugsten commented 3 years ago

@merlinseeling This is not reproducable thats why we need more information how you scan. You can also provide a video to thomas.augsten@sap.com The thickness of the qr-codes line should not influence the correctness of the qr code

merlinseeling commented 3 years ago

Thats strange, by 5 iOS devices that I saw, the QR-Code was not displayed correctly. @Ein-Tim is the screenshot from the CWA from an iOS device?

@Ein-Tim Where did you download CovPassCheck from? The PlayStore?

Yes!

@thomasaugsten The thickness of the qr-codes line should not influence the correctness of the qr code

For my testing it does. Because it works if the QR-Code thickness is correct.

@thomasaugsten This is not reproducable thats why we need more information how you scan. You can also provide a video to thomas.augsten@sap.com

Yes

ndegendogo commented 3 years ago

@merlinseeling could you please specify in more detail how you show the certificate?

merlinseeling commented 3 years ago
  • you press the 'Certificate' tab - right?

Yes

  • the overview of certificates appears

Yes

  • do you then show it directly from this overview, or do you select it / tap on the QR code?

It does not work in both cases

  • if you select it, it shows a list of certificates for a specific person.

Yes

  • do you show it from this list?

Yes

  • if you scroll down and select a specific certificate from this list, it shows all details for this certificate.

Yes

  • do you show it from the details view?

Yes

ndegendogo commented 3 years ago

5 iOS devices

@merlinseeling could you please give more details on the device types? (in your OP you mentioned iPhone 12 - what were the others?)

Ein-Tim commented 3 years ago

@merlinseeling

Thats strange, by 5 iOS devices that I saw, the QR-Code was not displayed correctly. @Ein-Tim is the screenshot from the CWA from an iOS device?

Yes

thomasaugsten commented 3 years ago

@merlinseeling you can also try to make a screenshot show it on a monitor display and try to scan it to prove the we code is correct

merlinseeling commented 3 years ago

@merlinseeling could you please give more details on the device types? (in your OP you mentioned iPhone 12 - what were the others?)

Yes as mentioned before, there where may, for example 2 iPhone SE 2020, an iPhone 12 and an iPhone 12 mini

merlinseeling commented 3 years ago

Guys is it possible that we meet at a Video Call? I guess that's the easiest way for me, to show the Problem to you

thomasaugsten commented 3 years ago

I don't think this is necessary please try to scan a iOS screenshot from a of monitor display. And if you have the time please record a video.

merlinseeling commented 3 years ago

I tried it again and after 50 times it worked. I don't know how and why, but it worked, but only two times and only after holding the android device still for more than 30 seconds. I didn't managed to record it, because the CpCA is restricted so that I can not record the screen while it is open.

The problem now is only that it takes too long and the conditions must be perfect (both devices must be perfectly still and the lighting must be ideal), not that it doesn't work at all. If I try to scan with the same android device the CpA Code it works with in seconds.

I think, that the if the QR-Code would be shown correctly, there wouldn't be a problem. I don't know why it is shown in this bad way and I tried importing the certificate again, but it wouldn't fix the incorrect appearance of the QR-Code.

The purpose of those certificates (QR-Codes) is that it is easily checkable if someone is vaccinated, recovered or tested, but if at an entrance to a restaurant or at the airport the checking takes over 2 minutes and if it isn't even clear if it works it's so annoying that I have to download the CpA because The CWA isn't even able to display a QR code correctly.

I hope I don't seem too aggressive, but I hope you understand what I'm getting at.

Ein-Tim commented 3 years ago

To be honest, this seems like a problem with CovPassCheck rather than with CWA.

The QR-Code is alright how it is, I could also create a QR-Code like this and my QR-Code scanner is able to scan it: frame

Ein-Tim commented 3 years ago

I just created an EU digital COVID certificate QR-code which has the design of the QR code I shared here (no lines, only dots) and CovPassCheck scanned it without problems here...

Thus I think it's highly unlikely that the way CWA shows the QR-code is the root cause of the problem here.

thomasaugsten commented 3 years ago

@merlinseeling can you please use a iOS Screenshot and Display it on a pc Monitor to check if the QR code. Because the thicknesses no influence. You cannot make a screen recording but you can make a video of your scanning process with an external camera

merlinseeling commented 3 years ago

@Ein-Tim and @thomasaugsten

Yeah, but no. QR-Codes can be displayed in many ways, but all rely on some simple rules. The thickness makes a difference because the scanning device has to differentiate the different pixels, no matter if they are squares or dots.

Bildschirmfoto 2021-09-12 um 17 31 58

Quelle: "https://en.wikipedia.org/wiki/QR_code"

This QR-code is modified, but only in the thickness. Try scanning it.

Bildschirmfoto 2021-09-12 um 18 01 37

If you don't want to believe me or just don't want to change it, okay, I would like to find out why it isn't displayed incorrect in the CWA because I see the mistake there. If you see it differently, there is no point in discussing it further here.

thomasaugsten commented 3 years ago

Please try to scan a iOS screenshot from a of monitor display. If you don't want to record a video please provide a screenshot to my mail. thomas.augsten@sap.com

merlinseeling commented 3 years ago

If I understand you correctly, I should mail you a screenshot of the CWA showing my certificate.

thomasaugsten commented 3 years ago

This is correct. On voluntary base of course

Ein-Tim commented 3 years ago

PR: #3517 improves this.

Ein-Tim commented 3 years ago

3517 merged into release/2.9.x, so I think there will be a hotfix for this.

ndegendogo commented 3 years ago

yes, they have already tagged it as release candidate for their testing 🎉🎉🎉

Ein-Tim commented 3 years ago

Version 2.9.1 (which includes the above mentioned fixes) has just been released on GitHub: https://github.com/corona-warn-app/cwa-app-ios/releases/tag/v2.9.1

thomasaugsten commented 3 years ago

@merlinseeling Can you please install the update an retest

merlinseeling commented 3 years ago

Works properly now, thanks

Should I close the issue?

Ein-Tim commented 3 years ago

@merlinseeling

Yes, it this has been fixed please close it.

ndegendogo commented 3 years ago

@merlinseeling thanks for your detailed initial analysis, and for your cooperation to get this reproduced and fixed so fast. 👍👍😁😁🎉🎉

dsarkar commented 3 years ago

Dear @merlinseeling and community! Many thanks for contributing here! Best wishes, DS


Corona-Warn-App Open Source Team