Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scanning QR code does not work (missing feature?) #670

Closed
bytebytebyte opened this issue Nov 25, 2018 · 23 comments
Closed

Scanning QR code does not work (missing feature?) #670

bytebytebyte opened this issue Nov 25, 2018 · 23 comments

Comments

@bytebytebyte
Copy link

Hi, thanks for this great FLOSS initiative!

I suspect this is not a bug in the existing program, but a feature that has not been implemented (yet).
When I use an app that scans a QR code for something, it never recognizes the code. Instead, it just keeps the camera running indefinitely.

When running logcat on the device, the following stack trace jumps out:

11-25 18:36:53.412 25867  9525 W DynamiteModule: Local module descriptor class for com.google.android.gms.vision.dynamite not found.
11-25 18:36:53.413 25867  9525 D GmsDynamiteLoaderImpl: unimplemented Method: getModuleVersion for com.google.android.gms.vision.dynamite
11-25 18:36:53.413 25867  9525 I DynamiteModule: Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:0
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: Error creating remote native handle
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: com.google.android.gms.dynamite.DynamiteModule$iF: No acceptable module found. Local version is 0 and remote version is 0.
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: 	at com.google.android.gms.dynamite.DynamiteModule.ˋ(Unknown Source)
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: 	at o.ᴝ.ˊ(Unknown Source)
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: 	at o.ᴝ.ˏ(Unknown Source)
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: 	at o.ᴉ.ˊ(Unknown Source)
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: 	at o.п.ॱ(Unknown Source)
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: 	at o.н$ˊ.run(Unknown Source)
11-25 18:36:53.415 25867  9525 E BarcodeNativeHandle: 	at java.lang.Thread.run(Thread.java:761)

I'm assuming this means the vision module is not present in the Microg implementation. Is there a way to provide this module? If I'm reading the Google documentation correctly, the Vision API is superseded by Firebase ML Kit, which is now in beta. After a quick search I found that parts of Firebase are made open source. Could we somehow include Firebase in Microg, or am I way in over my head here?

@matthijskooijman
Copy link

I'm seeing a similar issue with the DHL locker app, which tries to scan a 2D barcode and also shows the camera but never scans the image (easy to reproduce with DHL locker, no account or login required, just select "Deliver" at startup). The backtrace is different, though:

NativeBarcodeDetectorHandle: Error creating native barcode detector
NativeBarcodeDetectorHandle: com.google.android.gms.dynamic.zzg$zza: Could not load creator class.
NativeBarcodeDetectorHandle:   at com.google.android.gms.dynamic.zzg.a(Unknown Source)
NativeBarcodeDetectorHandle:   at com.google.android.gms.vision.barcode.internal.client.d$a.b(Unknown Source)
NativeBarcodeDetectorHandle:   at com.google.android.gms.vision.barcode.internal.client.d$a.a(Unknown Source)
NativeBarcodeDetectorHandle:   at com.google.android.gms.vision.barcode.internal.client.d.b(Unknown Source)
NativeBarcodeDetectorHandle:   at com.google.android.gms.vision.barcode.internal.client.d.a(Unknown Source)
NativeBarcodeDetectorHandle:   at com.google.android.gms.vision.barcode.a.a(Unknown Source)
NativeBarcodeDetectorHandle:   at com.google.android.gms.vision.a.b(Unknown Source)
NativeBarcodeDetectorHandle:   at com.dhl.parcellocker.scanner.camera.i$c.run(CameraSource.java:1199)
NativeBarcodeDetectorHandle:   at java.lang.Thread.run(Thread.java:818)
NativeBarcodeDetectorHandle: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.vision.client.DynamiteNativeBarcodeDetectorCreator" on path: DexPathList[[zip file "/system/framework/com.android.location.provider.jar", zip file "/data/app/com.google.android.gms-2/base.apk"],nativeLibraryDirectories=[/data/app/com.google.android.gms-2/lib/arm, /data/app/com.google.android.gms-2/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
NativeBarcodeDetectorHandle:   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
NativeBarcodeDetectorHandle:   at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
NativeBarcodeDetectorHandle:   at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
NativeBarcodeDetectorHandle:   ... 9 more
NativeBarcodeDetectorHandle:   Suppressed: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.vision.client.DynamiteNativeBarcodeDetectorCreator" on path: DexPathList[[dex file "/data/dalvik-cache/xposed_XResourcesSuperClass.dex", dex file "/data/dalvik-cache/xposed_XTypedArraySuperClass.dex"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
NativeBarcodeDetectorHandle:           at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
NativeBarcodeDetectorHandle:           at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
NativeBarcodeDetectorHandle:           at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
NativeBarcodeDetectorHandle:           ... 10 more
NativeBarcodeDetectorHandle:           Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.vision.client.DynamiteNativeBarcodeDetectorCreator
NativeBarcodeDetectorHandle:                   at java.lang.Class.classForName(Native Method)
NativeBarcodeDetectorHandle:                   at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
NativeBarcodeDetectorHandle:                   at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
NativeBarcodeDetectorHandle:                   at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
NativeBarcodeDetectorHandle:                   ... 11 more
NativeBarcodeDetectorHandle:           Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

@guzzard
Copy link

guzzard commented Mar 3, 2019

Also having issues with scanning QR code in Swedish BankID app. This spams the logcat while the camera is active.

03-03 22:03:31.793  5376  5390 D SensorsBio: BioSensor_common::readEvents, FAR = -1
03-03 22:03:31.808  4061 11611 E SensorListener: Sensor(8) is not enabled yet!
03-03 22:03:31.840 11467 11587 D GmsDynamiteLoaderImpl: unimplemented Method: getModuleVersion for com.google.android.gms.vision.dynamite
03-03 22:03:31.841 11467 11587 D GmsDynamiteLoaderImpl: unimplemented Method: getModuleVersion for com.google.android.gms.vision.dynamite
03

@elh-art
Copy link

elh-art commented Mar 19, 2019

Same issue here with Swedish BankID on a Lineage OS with microg.

I bypassed this issue by installing a QR code reader (from F-droid) and show the QR code generated by the BankID website which pops up a link. An OK on the link activates the BankID app on the mobile (which runs in the background) and you have to set your password. Activation done. 👍

@MathieuDebit
Copy link

I guess I have the same issue when trying to use the QR code scanner to log into the 1Password app.

QR code scanner is not available in the currently installed version of Google Play Services.

@siemer
Copy link

siemer commented Apr 29, 2019

I have a similar issue. The app does not even show an image from the camera, just a black square and switches to manual number-entry after a minute.

@ravilov
Copy link

ravilov commented May 29, 2019

Seconded. I know this has to do with "dynamite vision" module or somesuch and I know that's a "maybe" according to the wiki, was just wondering how likely is it to actually happen.

@sm4rk0
Copy link

sm4rk0 commented May 30, 2019

Duplicate of #395?

@monperrus
Copy link

I confirm that using a separate qr scanner app (SecScanQR from F-droid) works as workaround for BankId (with the right version of gmscore, see #824).

@JohanAR
Copy link

JohanAR commented Jan 4, 2020

I confirm that using a separate qr scanner app (SecScanQR from F-droid) works as workaround for BankId (with the right version of gmscore, see #824).

This does not work for me now, not sure if they changed something or if there's something wrong with my phone. SecScanQR opens the link with BankId, which changes to say "Please wait..." for a fraction of a second but then goes back to the main/idle screen. It was working with my old id earlier today before I reinstalled the app.

@fuggla
Copy link

fuggla commented Jan 30, 2020

@JohanAR the workaround doesn't work on my phone either, so I'm guessing BankID have been updated. I'll report back if I find another way.

@JohanAR
Copy link

JohanAR commented Jan 31, 2020

@owlnical I managed to install a new bank-id a few days ago. I had emailed Nordea asking for a manual activation code and they sent me a generic template response with instructions. It also had a link to a different bank-id activation page: https://identify.nordea.com/apps/bankid/login that shows a QR code (but yeah, a different page than the one you get if you try to order a bank-id from inside the online banking service). However this QR code I could scan with SecScanQR and the bank-id app would now ask me to set a password instead of getting stuck like before. Setting a password also failed 4 times, but then the web page refreshed with a new QR code that allowed me to finally get everything working.

Anyhow, if the QR codes aren't working for you and you have Nordea then you can order a personal code. If you use that code to identify at the previous web site it should give you an activation code that you can enter into the bank-id app after it complains about missing QR library. I used a mobile authenticator which is why I got the QR code instead of activation code I was trying to get.

@fuggla
Copy link

fuggla commented Jan 31, 2020

@JohanAR Perfect! This is exactly what I've been struggling with. Thanks a lot for sharing!

@monperrus
Copy link

More and more apps use the QR code Google API.

Does anybody know a library that implements the QR code Google API?

@ArchangeGabriel
Copy link
Contributor

@monperrus
Copy link

monperrus commented Feb 19, 2020 via email

@Albert1st1
Copy link

Albert1st1 commented Mar 8, 2020

@JohanAR @owlnical You only get the QR-codes if you use different devices like your computer and your phone.
If you instead activates bankid on the same device aka your smartphone then there are no QR-codes and you don't have that problem.
The QR-codes are added as an security feature to stop fraud by adding an proximity check (QR-code) if different devices are used.
If you instead use firefox (web-browser) on the same device then there is no QR-codes.

That said there's still need for QR-codes to work and i will try the newly added functionality as soon as it's in an release or someone explain how i can try it out.

@monperrus
Copy link

For BankId on a different device, a workaround is to scan with SecScanQR, copy the text, add &redirect=null and paste it in Firefox, resulting it in opening in BankId correctly. You have to go fast because the token is short-lived :)

@Albert1st1
Copy link

@monperrus is that for creating an mobilt BankID or for logging in to a service on a different device (computer)?
If i try to log in on a different device the QR-code reads bankid:///?autostarttoken=28efdaf3-820a-48d8-82cc-94fbbd7a5687 and pasting that into a web browser opens BankID but it doesn't let me sign a login.

@monperrus
Copy link

monperrus commented Mar 10, 2020 via email

@Albert1st1
Copy link

Albert1st1 commented Mar 10, 2020

@monperrus adding &redirect=null doesn't change anything and it still doesn't work on different devices.
My bank uses QR-code if i try to login from my computer using mobile BankID and it doesn't work what ever i try.
Is your QR-code constructed like the one i posted?

@klasrocket
Copy link

I've had the same problem while trying to use BankID for some webservices like Handelsbanken but actually got the "&redirect=null"-workaround working, only tested Handelsbanken so far though, THANKS!

@Rikj000
Copy link

Rikj000 commented Apr 5, 2020

Confirmed not working for Belfius Mobile and Payconiq.
The SecScanQR workaround does work for some applications (Sometimes you need to cut a piece out of the scanned URL/Code, but at least it does the trick).
But not if the applications don't offer a way to enter the codes manually / refuse to work without the Google QR Code API...
Which is the case for both these apps :/

Any sight on implementation? Or another workaround to be suggested?

@mar-v-in
Copy link
Member

mar-v-in commented Dec 5, 2020

Vision Barcode API is now added via 5e39818.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests