Bug 494136

Summary: Remote keyboard plugin causing Android crash on connection: Settings key: <enabled_input_methods> is only readable to apps with targetSdkVersion lower than or equal to: 33
Product: [Applications] kdeconnect Reporter: kde
Component: android-applicationAssignee: Albert Vaca Cintora <albertvaka>
Status: RESOLVED DUPLICATE    
Severity: crash CC: andrew.g.r.holmes, me
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Android   
OS: Android 14.x   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description kde 2024-10-04 20:05:02 UTC
SUMMARY


STEPS TO REPRODUCE
1. Open KDE Connect with already paired device, or once device connects after pairing after storage wipe.
2. App crashes.

OBSERVED RESULT

FATAL EXCEPTION: pool-4-thread-3
Process: org.kde.kdeconnect_tp, PID: 24125
java.lang.SecurityException: Settings key: <enabled_input_methods> is only readable to apps with targetSdkVersion lower than or equal to: 33
	at android.provider.Settings$NameValueCache.getStringForUser(Settings.java:3514)
	at android.provider.Settings$Secure.getStringForUser(Settings.java:6902)
	at android.provider.Settings$Secure.getString(Settings.java:6868)
	at org.kde.kdeconnect.Plugins.RemoteKeyboardPlugin.RemoteKeyboardPlugin.checkRequiredPermissions(RemoteKeyboardPlugin.java:417)
	at org.kde.kdeconnect.Device.addPlugin(Device.kt:558)
	at org.kde.kdeconnect.Device.reloadPluginsFromSettings(Device.kt:629)
	at org.kde.kdeconnect.Device.addLink(Device.kt:337)
	at org.kde.kdeconnect.KdeConnect$connectionListener$1.onConnectionReceived(KdeConnect.kt:156)
	at org.kde.kdeconnect.Backends.BaseLinkProvider.onConnectionReceived(BaseLinkProvider.java:42)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.addOrUpdateLink(LanLinkProvider.java:286)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.lambda$identityPacketReceived$0(LanLinkProvider.java:246)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.$r8$lambda$ffuZOFU1qk4o1cE14ZuWQYJam9A(LanLinkProvider.java:0)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider$$ExternalSyntheticLambda6.handshakeCompleted(R8$$SyntheticClass:0)
	at com.android.org.conscrypt.AbstractConscryptSocket.notifyHandshakeCompletedListeners(AbstractConscryptSocket.java:607)
	at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:270)
	at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:218)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.identityPacketReceived(LanLinkProvider.java:259)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.tcpPacketReceived(LanLinkProvider.java:119)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.lambda$setupTcpListener$3(LanLinkProvider.java:346)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider.$r8$lambda$fPOfB-9YGQBHf7IKMxU23L4W5VA(LanLinkProvider.java:0)
	at org.kde.kdeconnect.Backends.LanBackend.LanLinkProvider$$ExternalSyntheticLambda5.run(R8$$SyntheticClass:0)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
	at java.lang.Thread.run(Thread.java:1012)

EXPECTED RESULT
KDE Connect works.

SOFTWARE/OS VERSIONS
Pixel 7, Android 14
KDE Connect 1.32.3 from F-Droid (which I believe introduced this, as it was working days ago?)

ADDITIONAL INFORMATION
Comment 1 kde 2024-10-04 20:10:14 UTC
Turning off Wifi allowed me to go into plugin settings and turn off "Receive remote keypresses", which worked and I can connect again. Now if only I hadn't just wiped all my settings clearing storage in hopes that worked...
Comment 2 Iyán Méndez Veiga 2024-10-04 20:57:15 UTC

*** This bug has been marked as a duplicate of bug 493943 ***