При попытке передать файл с удаленного сервера на устройство Android я столкнулся с проблемами разрешения.
Оказывается, у меня нет разрешения на запись в месте расположения SD-карты (/mnt/extSdCard).
Я использую SSHDroid в качестве ssh-сервера на устройстве Android и vSSH в качестве ssh-клиента для участия в ssh на устройстве Android.
Поскольку и sudo, и su, похоже, отсутствуют в приложении сервера ssh (SSHDroid), мне интересно, как я могу изменить/получить разрешение на запись в местоположение SD-карты. Или привилегий root недостаточно для изменения разрешений на запись, и, таким образом, это регулируется исключительно ОС Android, поэтому ограничение ОС?
Что я могу сделать, так это написать домашний путь ssh-сервера (SSHDroid). Этот путь, однако, очень громоздок и недоступен из обычного файлового браузера Android. Именно по этой причине я хотел перенести файл на доступный путь, например, на SD-карту.
Добавка. Версия Android 4.4.2. Версия ядра 3.4.0-1539356#1.
Одним из ограничений, введенных с 4.4-kitkat, было перемещение WRITE_EXTERNAL_STORAGE
разрешения на уровень защиты «SignatureOrSystem», что означает, что даже по запросу «обычное приложение» (то есть то, которое вы устанавливаете как «обычный пользователь» без каких-либо корневых специальностей) не будет больше получить его предоставлено. Таким образом, есть очень мало вещей, которые вы можете сделать, чтобы «обойти» это:
<sdcard>/Android/data/<package_name>/
, поскольку это единственное место, куда приложение может записывать на SD с помощью Kitkat)Вы всегда можете вынуть внешнюю SD-карту из устройства и подключить ее к компьютеру. Большинство ПК не поддерживают карты micro-sdcard, но вы можете использовать адаптер. Дополнительная информация здесь: https://en.wikipedia.org/wiki/Secure_Digital#Micro
Если на вашем компьютере установлена внешняя SD-карта, вы можете читать и записывать все файлы на нее :-)
Иззи
Мюссе Реди
Иззи
Мюссе Реди
Иззи