safe-android
safe-android copied to clipboard
[android] Can not connect Ledger nano X on Google Pixel 5/6
Describe the bug Can not connect Ledger nano X on android
To Reproduce Steps to reproduce the behavior:
-
Install the app
-
add safe and try to add Ledger Nano X as a key
-
approve Location permissions Current result: The app is closed
-
restart the app
-
start the connect ledger nano x flow Current result: Issue with connection screen is displayed all the time
Expected behavior It should be possible to connect Ledger Nano X on Google Pixel
Screenshots
Smartphone (please complete the following information):
- Device: google Pixel 5
- Android Version: android 12
- App Version 3.4.0
Environment prod Additional context Add any other context about the problem here.
This seems to be device specific. When this is to be tackled, can we have access to a Pixel 5, please?
Same for Galaxy S21 5G. Android 12 Safe v 3.4.0
After app rebranding it does not see my Ledger Nano X. Tried everything: reboot, safe removal, ledger unpair and pair again. Ledger Live works well. Can provide logs / data if you needs. Please fix.
Had the same issue with a pixel 6. Just upgraded to pixel 7 and have the same issue on the 7 as well. The pixel 6 worked for a time, but stopped working within the last few months. (Sorry I don't have a precise time).
- Works on Android 8 / Nexus 5x
- Devices not visible on Pixel 3a (Android 12)
- Device visible but cannot be connected on Fairphone 5 with Anddroid 11
Same behaviour on current version in Play store (3.4.0 and 3.3.1) .
On the Pixel 3a the NanoX shows up (but retrieving keys fails) on build from sha-1 433ee7d9e62f1bb59f96740d57d9f6e7aedbbe96
Same issue, Pixel 7 Pro, Android 13
I just checked the log via adb logcat
and see the following:
11-24 16:47:49.190 20062 20062 E AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=39816136, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {io.gnosis.safe/io.gnosis.safe.ui.StartActivity}: java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@eacdceeb: GattService registerScanner
11-24 16:47:49.190 20062 20062 E AndroidRuntime: Caused by: java.lang.SecurityException: Need android.permission.BLUETOOTH_SCAN permission for android.content.AttributionSource@eacdceeb: GattService registerScanner
So I guess the android.permission.BLUETOOTH_SCAN
permission is missing.
This is required in android 12, see bluetooth permissions
The AndroidManifest.xml doesn't seem to have this.
Update: No crash, and it's possible to connect/pair devices. But there is one issue with the list of addresses: manual page refreshing is required to select the address after pairing. app version 3.6.1 -3811
@liliya-soroka On which device did this happen? It does not happen on my Fairphone 4 and also not on the Samsung S21 and Pixel 6 Pro, that I have here at the office. Does it maybe happen because the ledgere is still connected to another device? It might also happen when the ledger is locked.
The remaining problem is as follows: When connecting to the Ledger for the first time a BLE pairing is initiated. Somehow this interferes with the loading of the addresses. The screen above is shown. The solution is either to pull to refresh or go back and connect again.
We should make a ticket for this bug and tackle it later.
Verified app version 3.6.2-3813rc For the comment above a new ticket will be created