fmeum / WearAuthn

Use your Wear OS watch as a FIDO2 security key via Bluetooth and NFC.
https://play.google.com/store/apps/details?id=me.henneke.wearauthn.authenticator
MIT License
194 stars 8 forks source link

NFC Auth not working using microG on Android : Could not open device #25

Open Firokat opened 1 year ago

Firokat commented 1 year ago

What went wrong? I was attempting to use WearAuthn with my Android phone running microG but when i touch the devices, nothing happens and I get an error in the phone logcat

10-08 22:10:05.834  6875  6875 W FidoNfcHandler: java.lang.RuntimeException: Could not open device
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at org.microg.gms.fido.core.transport.nfc.CtapNfcConnection.open(CtapNfcConnection.kt:119)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at org.microg.gms.fido.core.transport.nfc.CtapNfcConnection$open$3.invokeSuspend(Unknown Source:15)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at androidx.lifecycle.DispatchQueue.drainQueue(DispatchQueue.kt:75)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at androidx.lifecycle.DispatchQueue.enqueue(DispatchQueue.kt:112)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at androidx.lifecycle.DispatchQueue.dispatchAndEnqueue$lambda-2$lambda-1(DispatchQueue.kt:100)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at androidx.lifecycle.DispatchQueue.$r8$lambda$G2ay370n_s_ksSHUJaD9zIU8eCw(Unknown Source:0)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at androidx.lifecycle.DispatchQueue$$ExternalSyntheticLambda0.run(Unknown Source:4)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at android.os.Handler.handleCallback(Handler.java:942)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at android.os.Handler.dispatchMessage(Handler.java:99)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at android.os.Looper.loopOnce(Looper.java:201)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at android.os.Looper.loop(Looper.java:288)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at android.app.ActivityThread.main(ActivityThread.java:7924)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at java.lang.reflect.Method.invoke(Native Method)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
10-08 22:10:05.834  6875  6875 W FidoNfcHandler:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

I attempted to get logs from the watch logcat, but could not find the app logs. I still got logs from the system during my attempt at registering, it is long so I made a Pastebin https://pastebin.com/pqw1f92a I have no idea where the issue is, I guess it could be in microG, in this app or elsewhere
Steps to reproduce

  1. Attempt to register a key on an Android phone running microG
  2. Select NFC

Which model is your watch? If you don't know your watch's model, you can find it under Settings -> System -> About. Ticwatch E3 (WH12068)

Which Android version is running on your watch? You can find it under Settings -> System -> About -> Version. 2.26

Which version of WearAuthn are you using? You can find the version of WearAuthn you are currently using in the About screen available from the app's main menu.

Screenshots If you think that it could be useful, consider adding a screenshot. To take a screenshot of your watch, open the "Wear OS by Google" app on your phone, open themenu in the top right and select "Take screenshot of watch". After a few seconds, you will receive a notification on your phone that allows you to download or share the screenshot.