Как получить доступ к общим папкам с устройства Android с помощью KDEConnect с помощью командной строки

Как получить доступ к общим папкам с устройства Android с помощью KDEConnect с помощью командной строки

Если устройства сопряжены по схеме компьютер <-> телефон с помощью KDEConnect, можно ли получить доступ к SD-карте и внутренней памяти телефона напрямую из командной строки?

Вариант использования:

Когда устройства сопряжены, я хочу автоматически копировать файлы с телефона (внутренняя память, внешняя SD-карта) с помощью скрипта. Шаги:

  1. Установить устройства как сопряженные
  2. Запустить скрипт

С помощью kdeconnect-cliэтого я могу получить идентификатор устройства:

$ kdeconnect-cli --id-only -a 
166ec0250e88ff2b

Но я не могу получить к нему доступ здесь:

$ ls /run/user/1000/166ec0250e88ff2b/
ls: cannot access '/run/user/1000/166ec0250e88ff2b/': Permission denied

Разрешения:

[root@host]# ls  -la /run/user/1000/
ls: cannot access '/run/user/1000/166ec0250e88ff2b': Permission denied
...
drwx------ 9 user user 380 Nov 17 11:57 .
drwxr-xr-x 3 user user 60 Nov 17 08:07 ..
d????????? ? ?         ?           ?            ? 166ec0250e88ff2b

Как получить доступ к файловой системе внутренней и внешней памяти телефона?

$ ls -la /run/user/1000/166ec0250e88ff2b/storage
total 0
dr-x------ 1 user user 0 Jan  1  1970 0000-0000/
d--x------ 1 user user 0 Feb  6  1970 emulated/
d--x------ 1 user user 0 Sep  2 20:10 self/

$ ls -la /run/user/1000/166ec0250e88ff2b/storage/0000-0000/
ls: reading directory '/run/user/1000/166ec0250e88ff2b/storage/0000-0000/': Operation not permitted
total 0

решение1

Мконнектпредставляет собой реализацию протокола KDE Connect на языке Vala/C, доступную черезgithub.com. Ему не нужны библиотеки KDE, и он поставляется с клиентом, который позволяет вам легко обмениваться файлами из командной строки, например,

 mconnectctl share-file /org/mconnect/device/0 /path/to/file

Более подробную информацию смотрите на связанной странице GitHub.

Вы должны иметь возможность использовать mconnectctlдля проверки того, сопряжено ли определенное устройство, например, для телефона, Motorola Moto G Maciekподключенного к /org/mconnect/device/0:

mconnectctl show-device /org/mconnect/device/0 | awk '/Motorola Moto G Maciek/{f=1}/Paired/{{if(f){g=1}}}f&&g{print $2;exit}'

Это вернет true, если пара создана, и может быть использована в скрипте.

Связанный контент