GSConnect / gnome-shell-extension-gsconnect

KDE Connect implementation for GNOME
GNU General Public License v2.0
3.23k stars 259 forks source link

[Android 10/Q] Clipboard sync doesn't work #702

Closed d-air1 closed 4 years ago

d-air1 commented 5 years ago

Syncing clipboard from phone to laptop has stopped working. However syncing from the laptop to phone works as expected.

Steps To Reproduce:

  1. Copy something on android phone
  2. Try to paste it onto desktop text file
  3. Nothing happens or you get the last thing you copied on the desktop

Copy from phone paste on to text file in desktopr

Screenshots I don't know if a screenshot of nothing happening would be useful, but let me know and I will add that.

Support Log

GSConnect Version: 28 GSConnect Install: user GJS: 15801 XDG_SESSION_TYPE: x11 GDMSESSION: ubuntu

-- Logs begin at Thu 2019-11-07 14:08:35 CST, end at Sat 2019-11-09 02:34:50 CST. -- Nov 09 02:34:02 gjs[4509]: JS WARNING: [/home/d-air1/.local/share/gnome-shell/extensions/gsconnect@andyholmes.github.io/service/protocol/lan.js 689]: reference to undefined property "GSocketOutputStream" Nov 09 02:34:29 org.gnome.Shell.Extensions.GSConnect[4509]: [/service/protocol/core.js:send:321]: Artemis II: { "id": 1573288469054, "type": "kdeconnect.systemvolume", "body": { "sinkList": [ { "name": "alsa_output.pci-0000_00_1f.3.analog-stereo", "description": "Speakers (Built-in Audio Analog Stereo)", "muted": false, "volume": 52428, "maxVolume": 65536 } ] } } Nov 09 02:34:32 xdg-desktop-por[2407]: Failed to get application states: GDBus.Error:org.freedesktop.portal.Error.Failed: Could not get window list: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: App introspection not allowed Nov 09 02:34:34 org.gnome.Shell.Extensions.GSConnect[4509]: [/service/protocol/core.js:send:321]: Artemis II: { "id": 1573288474059, "type": "kdeconnect.systemvolume", "body": { "sinkList": [ { "name": "alsa_output.pci-0000_00_1f.3.analog-stereo", "description": "Speakers (Built-in Audio Analog Stereo)", "muted": false, "volume": 52428, "maxVolume": 65536 } ] } } Nov 09 02:34:35 org.gnome.Shell.Extensions.GSConnect[4509]: [/service/protocol/core.js:send:321]: Artemis II: { "id": 1573288475310, "type": "kdeconnect.systemvolume", "body": { "sinkList": [ { "name": "alsa_output.pci-0000_00_1f.3.analog-stereo", "description": "Speakers (Built-in Audio Analog Stereo)", "muted": false, "volume": 52428, "maxVolume": 65536 } ] } } Nov 09 02:34:42 brave-browser.desktop[2473]: [3934:3934:1109/023442.728410:ERROR:gcm_channel_status_request.cc(145)] GCM channel request failed. Nov 09 02:34:50 PackageKit[1821]: daemon quit Nov 09 02:34:50 systemd[1]: packagekit.service: Main process exited, code=killed, status=15/TERM Nov 09 02:34:50 systemd[1]: packagekit.service: Succeeded.

System Details (please complete the following information):

GSConnect environment (if applicable):

Additional Notes:

May be a side effect of upgrading from ubuntu 19.04 to 19.10 or from android 9 pie to android 10 Q on one plus 7 pro. Maybe a combination of both.

andyholmes commented 5 years ago

Yes, unfortunately if you're using Android 10 the clipboard will not work currently. Google is having the same problem with the clipboard as Linux/Wayland, which is how to allow applications access without making it a security risk.

The KDE Connect team is working on a temporary solution for this, which will probably be to use a text entry somewhere in the app or an app notification to share clipboard data. The clipboard can be accessed, just not in the background.

I can't find an open bug for it at the moment, but there is a WIP merge request on KDE's GitLab for this.

d-air1 commented 5 years ago

Thanks for replying. I actually downgraded back to pie for the time being. Thanks for all the hard work.

On Sat, Nov 9, 2019, 5:46 PM Andy Holmes notifications@github.com wrote:

Yes, unfortunately if you're using Android 10 the clipboard will not work currently. Google is having the same problem with the clipboard as Linux/Wayland, which is how to allow applications access without making it a security risk.

The KDE Connect team is working on a temporary solution for this, which will probably be to use a text entry somewhere in the app or an app notification to share clipboard data. The clipboard can be accessed, just not in the background.

I can't find an open bug for it at the moment, but there is a WIP merge request on KDE's GitLab for this.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/andyholmes/gnome-shell-extension-gsconnect/issues/702?email_source=notifications&email_token=AJWDUHVXS3G5FBEWGDYEQ23QS5DT5A5CNFSM4JLEW63KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEDURXAI#issuecomment-552147841, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJWDUHSHE6ON6L7WSPC2OZTQS5DT5ANCNFSM4JLEW63A .

andyholmes commented 4 years ago

Until a fix is found, it seems clipboard will be disabled on Android 10:

Don't load clipboard plugin in Android 10

andyholmes commented 4 years ago

Closing since upstream has disabled clipboard on Android 10

Gerd-St commented 4 years ago

I am using a clipboard manager on Android 10, called Clip Stack, https://play.google.com/store/apps/details?id=com.catchingnow.tinyclipboardmanager. Its developer has found a workaround by adding permissions via ADB commands, see description of the app. I guess the same approach should also work for KDE Connect. Please try it out!

andyholmes commented 4 years ago

Unfortunately there is nothing that can be done in GSConnect about the clipboard restrictions in Android 10. You could offer this fix for the Android app on bugs.kde.org, but it's unlikely they'll include a fix like this.

ferdnyc commented 4 years ago

Looking at the permissions in question, I have to think that there's more to it than that. Simply granting SYSTEM_ALERT_WINDOW and READ_LOGS permissions, by themselves, seem unlikely to be effective as workarounds to the Android 10 clipboard restrictions.

Meaning, I suspect the app code contains workarounds, which also require those permissions to function. But since the app's code is not open-source, we don't know what those workarounds actually entail.

andyholmes commented 4 years ago

Yeah, my guess was it does something to dump the clipboard content to the log and then scrapes it from there.

rohitghali commented 4 years ago

Try some workaround like ClipStack. ClipStack works flawlessly currently. Just need to give some ADB permissions. That's the most basic. Please do something about it. Here's the app link. https://play.google.com/store/apps/details?id=com.catchingnow.tinyclipboardmanager

ferdnyc commented 4 years ago

@rohitghali That app was already posted, and we explained why it doesn't help us. Regardless, this can't be fixed on the GSConnect end, it would have to be fixed by KDE Connect. If they got it working, GSConnect would use it. Until then, nothing we can do.

ZeroBit commented 4 years ago

What is a workaround to pass content from the phone to Linux PC? Is it possible to select text "share" it with KDE Connect for it to appear in PC clipboard? Is it possible after copying text to phone clipboard switch to Android app KDE Connect and then "send" text from there to PC Clipboard? At the moment when I make Share an Android to KDE Connect it opens Kate app on Linux PC, instead of copying text to PC clipboard. Please, fix it.

ferdnyc commented 4 years ago

@ZeroBit With the existing restrictions on clipboard access, that pretty much is the workaround. When you share text to Linux, it opens in your default text app. You can copy it from there to the clipboard, right?

(Edit: Whoops, well I was close. The point about the workaround being the workaround stands. And from what @sheepdestroyer posted, it sounds like the app devs have implemented a similar workaround on their end.)

I suppose it might be possible to include an option that always redirects shared text to the clipboard instead of launching the default app, but that feels kind of magical. As well as unsatisfying, since it would still require manual steps on the phone and would only work in one direction.

Still, if you think that might be useful to you, feel free to open a new feature request issue for that option. No promises on whether or when it will be implemented, in part it depends on whether other users would be interested.

andyholmes commented 4 years ago

It sounds like you're using KDE Connect, not GSConnect. If you "share" text to GSConnect, it will open a dialog with the text.

sheepdestroyer commented 4 years ago

In a recent update for KDE Connect's Android App :

1.14.2:

It seems that clipboard sharing from my Android 10 device to my romputer running GSconnect is still not working as before but When selecting text, I can share to KDE Connect and that sends a notification on my computer from which I can then copy the text.

(Edited by FeRDNYC: Cleaned up web formatting of email comment)

ferdnyc commented 4 years ago

Thanks @sheepdestroyer !

It seems that clipboard sharing from my Android 10 device to my romputer running GSconnect is still not working as before

And I suspect it won't ever be, exactly, because these are new security restrictions that prevent automatic capture or modification of the clipboard contents from within an app. If they could be bypassed completely, it wouldn't be very good security!

But it sounds like they've implemented as much of a workaround as possible. And if there's some way to identify the notification that comes in to GSConnect as containing clipboard data, specifically, it might be possible to automatically update the clipboard on the Linux side without having to show any sort of dialog / require manual copying.

sheepdestroyer commented 4 years ago

I just saw that in the new Android KDE Connect's notification, there is a new option : "Send Clipboard"

Using it effectively sends Android's clipboard directly to the Computer's clipboard!

Screenshot_20200604-163352

shihaamabr commented 4 years ago

Here's a video on how allow KDE Connect to read clipboard data, hope you find it helpful.

https://youtu.be/UFOMBraqEmw

ZeroBit commented 4 years ago

Can you implement Send Clipboard NOT as notification but as Switch icon in the Notification panel as it is done in Join by joaoapps and also as one tap widget? BTW in Join by joaoapps the clipboard monitoring is working in Android 10. I do not know how it is possible....

sukanka commented 4 years ago

I found a magisk module Riru - Clipboard Whitelist helpful. I installed this module, added org.kde.kdeconnect_tp to whitelist and rebooted my device. Now I can use kdeconnect as before, not bothering to tap the Send Clipboard any more. You may try this module AT YOUR OWN RISK.

remcohaszing commented 4 years ago

The Android issue can be found here. Please star it if you run into this.

ferdnyc commented 4 years ago

All the really good ranting is actually in this related one, people have been going strong for over a year there.

(In the third comment there, Google posted their generic "we've passed this along to the development team" blowoff. Despite pages and pages of comments (many nearly incoherent with rage), they have not responded since. It can't hurt to try, but the chances of them opening clipboard access back up seem rather slim.)

ferdnyc commented 4 years ago

@ZeroBit Your request involves the Android side of things, which isn't developed here. Any requests or suggestions for features on the Android side of things should be filed against the kdeconnect-android (I believe) component in the KDE bugzilla.