question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[FIDO] Fido doesn't seem to work anywhere

See original GitHub issue

Describe the bug Whenever I try to use the new FIDO functionality via USB on v0.2.25.223616 or 2a19ef4, the transport handler crashes when indicating presence on the FIDO device. In the Android UI, nothing graphical can be seen, but the results of logcat show what is happening. The ultimate result is that FIDO doesn’t work in any context. The system UI will allow me to attempt to add keys in Firefox or Chromium, but will not do anything when I press the key.

Logcat

11-09 13:11:25.648  9321  9321 D FidoCtapHidConnection: Received packet YY4IcAInZHR5cGVqcHVibGljLWtleQ0EDhoABQQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
11-09 13:11:25.648  9321  9321 D FidoCtapHidConnection: Received CtapHidCborResponse(statusCode=0x0, payload=rAGDZlUyRl9WMmhGSURPXzJfMGxGSURPXzJfMV9QUkUCgmtjcmVkUHJvdGVjdGtobWFjLXNlY3JldANQ7ogoeXIcSROXdT38zpcHKgSlYnJr9WJ1cPVkcGxhdPRpY2xpZW50UGlu9XVjcmVkZW50aWFsTWdtdFByZXZpZXf1BRkEsAaCAgEHCAgYgAmBY3VzYgqComNhbGcmZHR5cGVqcHVibGljLWtleaJjYWxnJ2R0eXBlanB1YmxpYy1rZXkNBA4aAAUEAw==) in 4 packets
11-09 13:11:25.648  9321  9321 D UsbRequestJNI: close
11-09 13:11:25.650  9321  9321 D FidoCtapHidConnection: Got info: AuthenticatorGetInfoResponse(versions=[], extensions=[], aaguid=[-18, -120, 40, 121, 114, 28, 73, 19, -105, 117, 61, -4, -50, -105, 7, 42], options=Options[platformDevice=false, residentKey=true, clientPin=true, userPresence=true, noMcGaPermissionsWithClientPin=false, credentialMgmtPreview=true, makeCredUvNotRqd=false], maxMsgSize=1200, pinProtocols=[])
11-09 13:11:25.650  9321  9321 D UsbDeviceConnectionJNI: close
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at org.microg.gms.fido.core.transport.TransportHandler.register$play_services_fido_core_release(TransportHandler.kt:156)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at org.microg.gms.fido.core.transport.usb.UsbTransportHandler$register$2.invokeSuspend(UsbTransportHandler.kt:87)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at org.microg.gms.fido.core.transport.usb.UsbTransportHandler$register$2.invoke(Unknown Source:8)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at org.microg.gms.fido.core.transport.usb.UsbTransportHandler$register$2.invoke(Unknown Source:4)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at org.microg.gms.fido.core.transport.usb.ctaphid.CtapHidConnection.open(CtapHidConnection.kt:176)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at org.microg.gms.fido.core.transport.usb.ctaphid.CtapHidConnection$open$2.invokeSuspend(Unknown Source:15)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at kotlinx.coroutines.internal.ScopeCoroutine.afterResume(Scopes.kt:33)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at kotlinx.coroutines.AbstractCoroutine.resumeWith(AbstractCoroutine.kt:102)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at androidx.lifecycle.DispatchQueue.drainQueue(DispatchQueue.kt:75)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at androidx.lifecycle.DispatchQueue.enqueue(DispatchQueue.kt:112)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at androidx.lifecycle.DispatchQueue.dispatchAndEnqueue$lambda-2$lambda-1(DispatchQueue.kt:100)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at androidx.lifecycle.DispatchQueue.$r8$lambda$G2ay370n_s_ksSHUJaD9zIU8eCw(Unknown Source:0)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at androidx.lifecycle.DispatchQueue$$ExternalSyntheticLambda0.run(Unknown Source:4)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at android.os.Handler.handleCallback(Handler.java:938)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at android.os.Handler.dispatchMessage(Handler.java:99)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at android.os.Looper.loopOnce(Looper.java:201)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at android.os.Looper.loop(Looper.java:288)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at android.app.ActivityThread.main(ActivityThread.java:7870)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at java.lang.reflect.Method.invoke(Native Method)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
11-09 13:11:25.651  9321  9321 W FidoUsbHandler: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
11-09 13:11:25.652  9321  9321 D FidoUi  : USB status set to waiting-for-device (null)

To Reproduce Steps to reproduce the behavior:

  1. Open Firefox/Chromium
  2. Go to webauthn.io
  3. Try to register a username
  4. Observe that Firefox/Chromium will prompt you for your key
  5. Observe that tapping the FIDO key when asked results in no activity and no progress being made

Expected behavior I expect tapping the FIDO key to do something, but it does nothing.

System Android Version: 12 Custom ROM: LineageOS 19.1

Additional context I am using a Yubikey 5 NFC, and NFC/USB. NFC does not work either.

More Logcat that proves data is being sent back from the Yubikey and being handled

11-09 12:51:30.553  9321  9321 D FidoUsbHandler: YubiKey OTP+FIDO+CCID has permission
11-09 12:51:30.554  1376  9292 W InputManager-JNI: Input channel object '6443bd5 com.android.systemui/com.android.systemui.usb.UsbPermissionActivity (client)' was disposed without first being removed with the input manager!
11-09 12:51:30.556  9321  9321 D FidoUsbHandler: Signature: BtDxCQGhAQkgFQAm/wB1CJVAgQIJIRUAJv8AdQiVQJECwA==
11-09 12:51:30.556  9321  9321 D UsbDeviceConnectionJNI: close
11-09 12:51:30.556  9321  9321 D FidoUsbHandler: Trying to use YubiKey OTP+FIDO+CCID for SIGN
11-09 12:51:30.557  9321  9321 D AuthFidoHandler: onStatusChanged: USB, waiting-for-user
11-09 12:51:30.557  9321  9321 D FidoCtapHidConnection: Opening connection
11-09 12:51:30.560  9321  9321 D FidoCtapHidConnection: Sending CtapHidInitRequest(nonce=KDkQEd4b9Mo=) in 1 packets
11-09 12:51:30.560  9321  9321 D UsbRequestJNI: init
11-09 12:51:30.549     0     0 D tas2562 2-004c: tas2562_dev_read: BOOK:PAGE:REG 0:0:36
11-09 12:51:30.549     0     0 I tas2562 2-004c: IRQ reg is: irq_work_routine, 0, 559
11-09 12:51:30.549     0     0 D tas2562 2-004c: PowSts B: 0x2, check again after 10ms
11-09 12:51:30.564  9321  9321 D FidoCtapHidConnection: Sent packet /////4YACCg5EBHeG/TKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
11-09 12:51:30.564  9321  9321 D UsbRequestJNI: close
11-09 12:51:30.566  9321  9321 D UsbRequestJNI: init
11-09 12:51:30.566  9321  9321 D FidoCtapHidConnection: Reading 64 bytes from usb
11-09 12:51:30.568  9321  9321 D FidoCtapHidConnection: Received packet /////4YAESg5EBHeG/TKALYAAQIFAgYFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
11-09 12:51:30.569  9321  9321 D FidoCtapHidConnection: Received CtapHidInitResponse(nonce=0xKDkQEd4b9Mo=, channelId=0xb60001, protocolVersion=0x2, version=5.2.6, capabilities=0x5) in 1 packets
11-09 12:51:30.569  9321  9321 D UsbRequestJNI: close
11-09 12:51:30.570  9321  9321 D FidoCtapHidConnection: Sending CtapHidCborRequest(Ctap2Request(command=0x4, payload=)) in 1 packets
11-09 12:51:30.570  9321  9321 D UsbRequestJNI: init
11-09 12:51:30.569     0     0 D tas2562 2-004c: tas2562_dev_read: BOOK:PAGE:REG 0:0:2
11-09 12:51:30.569     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:26, VAL: 0xf8
11-09 12:51:30.572  9321  9321 D FidoCtapHidConnection: Sent packet ALYAAZAAAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
11-09 12:51:30.572  9321  9321 D UsbRequestJNI: close
11-09 12:51:30.572  9321  9321 D UsbRequestJNI: init
11-09 12:51:30.572  9321  9321 D FidoCtapHidConnection: Reading 64 bytes from usb
11-09 12:51:30.569     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:27, VAL: 0xb1
11-09 12:51:30.569     0     0 I tas2562 2-004c: tas2562_enableIRQ, Enable irq
11-09 12:51:30.569     0     0 I tas2562 2-004c: tas2562_set_bitwidth 6
11-09 12:51:30.569     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:8, mask: 0xc, val=0x8
11-09 12:51:30.570     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:8, mask: 0x3, val=0x2
11-09 12:51:30.570     0     0 I tas2562 2-004c: mnCh_size: 24,  slot_width_tmp: 32
11-09 12:51:30.570     0     0 I tas2562 2-004c: blr_clk_ratio: 48
11-09 12:51:30.574  9321  9321 D FidoCtapHidConnection: Received packet ALYAAZAAwwCqAYNmVTJGX1YyaEZJRE9fMl8wbEZJRE9fMl8xX1BSRQKCa2NyZWRQcm90ZWN0a2htYWMtc2Vjcg==
11-09 12:51:30.574  9321  9321 D FidoCtapHidConnection: Reading 64 bytes from usb
11-09 12:51:30.570     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:11, mask: 0xff, val=0x44
11-09 12:51:30.570     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:12, mask: 0xff, val=0x40
11-09 12:51:30.570     0     0 I tas2562 2-004c: tas2562_hw_params, sample rate: 48000
11-09 12:51:30.570     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:6, mask: 0x20, val=0x0
11-09 12:51:30.571     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:6, mask: 0xe, val=0x8
11-09 12:51:30.572     0     0 E afe_callback: cmd = 0x100ef returned error = 0x2
11-09 12:51:30.572     0     0 E afe_apr_send_pkt: DSP returned error[ADSP_EBADPARAM]
11-09 12:51:30.572     0     0 E afe_send_port_topology_id: AFE set topology id enable for port 0x1000 failed -22
11-09 12:51:30.576  9321  9321 D FidoCtapHidConnection: Received packet ALYAAQBldANQL8BXn4ETR+qxFrtajbkgKgSlYnJr9WJ1cPVkcGxhdPRpY2xpZW50UGlu9XVjcmVkZW50aWFsTQ==
11-09 12:51:30.577  9321  9321 D FidoCtapHidConnection: Reading 64 bytes from usb
11-09 12:51:30.578  9321  9321 D FidoCtapHidConnection: Received packet ALYAAQFnbXRQcmV2aWV39QUZBLAGgQEHCAgYgAmCY25mY2N1c2IKgqJjYWxnJmR0eXBlanB1YmxpYy1rZXmiYw==
11-09 12:51:30.578  9321  9321 D FidoCtapHidConnection: Reading 64 bytes from usb
11-09 12:51:30.580  9321  9321 D FidoCtapHidConnection: Received packet ALYAAQJhbGcnZHR5cGVqcHVibGljLWtleQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
11-09 12:51:30.580  9321  9321 D FidoCtapHidConnection: Received CtapHidCborResponse(statusCode=0x0, payload=qgGDZlUyRl9WMmhGSURPXzJfMGxGSURPXzJfMV9QUkUCgmtjcmVkUHJvdGVjdGtobWFjLXNlY3JldANQL8BXn4ETR+qxFrtajbkgKgSlYnJr9WJ1cPVkcGxhdPRpY2xpZW50UGlu9XVjcmVkZW50aWFsTWdtdFByZXZpZXf1BRkEsAaBAQcICBiACYJjbmZjY3VzYgqComNhbGcmZHR5cGVqcHVibGljLWtleaJjYWxnJ2R0eXBlanB1YmxpYy1rZXk=) in 4 packets
11-09 12:51:30.580  9321  9321 D UsbRequestJNI: close
11-09 12:51:30.575     0     0 D tas2562 2-004c: tas2562_mute, 0
11-09 12:51:30.575     0     0 E tas2562 2-004c: set power state: 0
11-09 12:51:30.575     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:4, VAL: 0xcf
11-09 12:51:30.575     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:10, VAL: 0x01
11-09 12:51:30.575     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:56, VAL: 0x0c
11-09 12:51:30.576     0     0 D tas2562 2-004c: tas2562_dev_bulk_write: BOOK:PAGE:REG 100:7:72, len: 0x04
11-09 12:51:30.576     0     0 D tas2562 2-004c: tas2562_dev_bulk_write: BOOK:PAGE:REG 100:7:76, len: 0x04
11-09 12:51:30.577     0     0 D tas2562 2-004c: tas2562_dev_bulk_write: BOOK:PAGE:REG 100:5:76, len: 0x04
11-09 12:51:30.577     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:59, VAL: 0x38
11-09 12:51:30.577     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:60, VAL: 0x3c
11-09 12:51:30.577     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:53, VAL: 0x78
11-09 12:51:30.578     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:253:13, VAL: 0x0d
11-09 12:51:30.578     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:253:51, VAL: 0x8e
11-09 12:51:30.578     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:253:50, VAL: 0x49
11-09 12:51:30.578     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:253:63, VAL: 0x21
11-09 12:51:30.578     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:253:25, VAL: 0x80
11-09 12:51:30.578     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:253:95, VAL: 0xc1
11-09 12:51:30.578     0     0 I tas2562 2-004c: INV format: IBNF
11-09 12:51:30.584  9321  9321 D FidoCtapHidConnection: Got info: AuthenticatorGetInfoResponse(versions=[], extensions=[], aaguid=[47, -64, 87, -97, -127, 19, 71, -22, -79, 22, -69, 90, -115, -71, 32, 42], options=Options[platformDevice=false, residentKey=true, clientPin=true, userPresence=true, noMcGaPermissionsWithClientPin=false, credentialMgmtPreview=true, makeCredUvNotRqd=false], maxMsgSize=1200, pinProtocols=[])
11-09 12:51:30.586  9321  9321 D FidoCtapHidConnection: Sending CtapHidCborRequest(AuthenticatorGetAssertionRequest(rpId=google.com,clientDataHash=0xI6pYMBwJYlRUn3/npKJ07R4ndvS9Rnf3NvV8JhBbLwI=, allowList=[PublicKeyCredentialDescriptor[q3el6NHQWcY-LiPg8ZDCgZ8u0AG3h_OijjSS6-S8mmguc_0KFIGESe9RxUz9UIRPjGuIzy-zdYCX0T5psXP1qw, type=public-key, transports=[]], PublicKeyCredentialDescriptor[lIeS-zvbFl108C1Jt3_9jerwE3TznCD9WQA6HyXUoC24lxM6jyGfuLVLJoBac-YvDezmlgCHG2XY3HDjXm6rpA, type=public-key, transports=[]]],extensions=[],options=org.microg.gms.fido.core.protocol.msgs.AuthenticatorGetAssertionRequest$Companion$Options@540a99c,pinAuth=null,pinProtocol=null)) in 5 packets
11-09 12:51:30.586  9321  9321 D UsbRequestJNI: init
11-09 12:51:30.588  9321  9321 D FidoCtapHidConnection: Sent packet ALYAAZAA+QKkAWpnb29nbGUuY29tAlggI6pYMBwJYlRUn3/npKJ07R4ndvS9Rnf3NvV8JhBbLwIDgqNiaWRYQA==
11-09 12:51:30.579     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:7, mask: 0x1, val=0x1
11-09 12:51:30.579     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:7, mask: 0x3e, val=0x2
11-09 12:51:30.579     0     0 D tas2562 2-004c: tas2562_dev_write: BOOK:PAGE:REG 0:0:10, VAL: 0x01
11-09 12:51:30.580     0     0 D tas2562 2-004c: tas2562_dev_update_bits: BOOK:PAGE:REG 0:0:48, mask: 0x4, val=0x4
11-09 12:51:30.580     0     0 D tas2562 2-004c: tas2562_dev_read: BOOK:PAGE:REG 0:0:36
11-09 12:51:30.580     0     0 I tas2562 2-004c: IRQ reg is: tas2562_set_power_state 0, 307
11-09 12:51:30.590  9321  9321 D FidoCtapHidConnection: Sent packet ALYAAQCrd6Xo0dBZxj4uI+DxkMKBny7QAbeH86KONJLr5LyaaC5z/QoUgYRJ71HFTP1QhE+Ma4jPL7N1gJfRPg==

Issue Analytics

  • State:closed
  • Created 10 months ago
  • Comments:22 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
MatthewCroughancommented, Nov 18, 2022

It looks to work in exactly the same way with Firefox 107.1.0 from FFDownloader from F-Droid

1reaction
MatthewCroughancommented, Nov 18, 2022

@ale5000-git @mar-v-in I can confirm that https://github.com/microg/GmsCore/commit/d01f3719426be7f5237b098d53548eeeb7806119 fixes each and every one of my use-cases. Signing into Tailscale via Chromium via Google with NFC works fine, as does webauthn via my self-hosted Bitwarden. This is really great. I have also tested that it works fine with USB.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Solved: LTE not working - Fido - 97719
I've checked and double checked the APN settings, the guy in the store used the none LTE settings but even the ltemobile.apn doesn't...
Read more >
If you see No Service, Searching, or SOS on your iPhone or iPad
Go to Settings > Cellular and check to see if your cellular line is turned on. If your cellular line is off, turn...
Read more >
Housetraining Puppies & Dogs - American Humane
Don't give up on Fido just yet! ... Rent or hire a carpet cleaner with special pet-urine enzymatic cleaner or use an enzymatic...
Read more >
B-Air Fido Max 1 Dog Dryer - Premier Grooming Collection
The B-Air Fido Max 1 Dog Dryer is the lowest option for an ETL-certified pet dryer that does not include heat - which...
Read more >
What is it like using this phone in Canada? - XDA Forums
Never use non-Rogers or non-fido phone with Rogers/fido. Even though we have the mbn files. I was with fido and I borrowed a...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found