Termux записывает на SD-карту

Андроид 5

Термукс 0.54

Не укоренен, нет желания

$ pwd
/storage/sdcard1
$ id
uid=10096(u0_a96) gid=10096(u0_a96) groups=1015(sdcard_rw),1028(sdcard_r),3003(inet),9997(everybody),50096(all_a96)
$ ls -l python
total 0
$ ls -dl python
drwxrwx---    2 root     sdcard_r     32768 Sep 23 22:10 python

Итак, согласно разрешениям, я должен иметь возможность писать в папку python. Но создание файла дает отказ в разрешении.

Я видел решение platform.xml, но не могу редактировать файл.

Я хотел бы записать на карту, а затем легко перемещать карту и файлы между машинами.

С уважением Джон

Возможно, это как-то связано с SELinux. Хотя что ls -ld /storage/sdcard1/показывает? Также вы включили разрешение на хранение в настройках приложения Termux?
В этом виноват Google. Начиная с Android 5, на внешний SD наложено еще больше ограничений. Теперь ожидается, что приложения будут использовать так называемый DocumentProviderинтерфейс, запрашивая у пользователя разрешение на работу с SD-картой. Как вы можете сделать вывод из вышеизложенного, нет способа вручную предоставить это разрешение, если оно не запрашивается, но иметь привилегии root и установить Xposed или иметь собственное восстановление, поддержку init.d и прошить, .zipчтобы разрешить SD-карту . доступ к любому приложению.
@TomYan К сожалению, как вы можете видеть из моего ответа здесь , разрешение на хранение влияет только на /storage/emulated/0( /storage/sdcard0на Lollipop).

Ответы (1)

Используйте termux-setup-storageдля настройки хранилища. См. https://wiki.termux.com/wiki/Termux-setup-storage для инструкций и дополнительной информации. Запись данных будет включена в личную папку Termux на внешнем хранилище, через ~/storage/externalкоторую есть ссылка Android/data/com.termux/files/на вашу внешнюю SD-карту.

Это для андроида 6. Как я уже говорил, у меня андроид 5.
Поддержка Android 5 была прекращена в январе 2020 года.