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