Напишіть дозвіл на певні шляхи, як-от SD-карта (extSdCard)


10

У спробі перенести файл з віддаленого сервера на пристрій Android я зіткнувся з проблемами дозволу.

Виявляється, у мене немає дозволу на запис у місці розташування карти SD (/ mnt / extSdCard).

Я використовую SSHDroid як ssh-сервер на пристрої Android, а vSSH як ssh-клієнт для участі в ssh на пристрої Android.

Оскільки, здається, і sudo, і su відсутні в додатку SSH-сервера (SSHDroid), мені цікаво, як я можу змінити / отримати дозвіл на запис у розташування SD-карти. Або кореневих привілеїв недостатньо для зміни дозволів на запис, і це таким чином регулюється виключно ОС Android, тобто обмеженням ОС?

Що я можу зробити - це написати на домашній шлях до ssh-сервера (SSHDroid). Однак цей шлях є дуже громіздким, і його неможливо дістати за допомогою звичайного API файлового браузера Android. Це причина, чому я хотів перенести файл у доступний шлях, як-от SD-карта.

Добавка. Версія для Android - 4.4.2. Версія ядра 3.4.0-1539356 №1.


3
Це обмеження Кітката (вони називають це "безпекою", але насправді це скоріше "сила2клону"). Ви не зможете обійти це без вкорінення свого пристрою. За винятком вибору внутрішньої SD-карти, бо там можна писати.
Izzy

@Izzy Якщо ви б це сказали у відповіді, це питання буде відповіді .
Mussé Redi

Готово, надано ще кілька деталей. Мені подобалось дати вам кращу відповідь (з більш зручним рішенням), але Google забороняє це ...
Izzy

Дійсно? Я відтаював їх там, де великий шанувальник духу з відкритим кодом.
Mussé Redi

"Просто так, як я кажу, не роби так, як я". Розрізняють квіти і плоди. Проголошений "відкритим кодом", Google поєднує в собі безліч фірмових матеріалів. І "свобода" стає більш обмеженою з кожною новою версією Android. Але це тут не тема :)
Izzy

Відповіді:


9

Одним із обмежень, запроваджених із було переміщення WRITE_EXTERNAL_STORAGEдозволу на рівень захисту "SignatureOrSystem", що означає, що навіть у разі необхідності "звичайний додаток" (тобто такий, який ви встановлюєте як "звичайний користувач" без будь-яких кореневих спеціальностей) не буде довше отримайте це. Тож існує дуже мало речей для того, щоб "обійти" це:

  • очевидно: вкорінення пристрою та зняття цієї межі
  • використовуючи "особистий" каталог програми як сховище для ваших синхронізованих файлів (тобто <sdcard>/Android/data/<package_name>/, це єдине місце, яке додаток може записувати на SD з Kitkat)
  • використання вашої карти в якості зберігання (оскільки тут обмеження не застосовується)

Які недоліки вкорінення Android-пристрою? Чи застаріла гарантія?
Mussé Redi

Ймовірно. В ЄС існує закон, який розрізняє гарантію та гарантію. Один з них виконується законом (і не може бути ліквідований вкоріненням), інший - необов'язковою пропозицією виробника, а з цим рішенням, прийнятим ним. Виглядає за межами ЄС по-різному, тому однозначної відповіді тут немає.
Izzy

1

Ви завжди можете вийняти зовнішню sdcard із пристрою та підключити її до ПК. Більшість ПК не підтримують мікро-карти, але ви можете використовувати адаптер. Більше інформації тут: https://en.wikipedia.org/wiki/Secure_Digital#Micro

Якщо зовнішня sdcard змонтована у вашому ПК, тоді ви можете прочитати та записати на неї всі файли :-)


Це було більш своєрідним вправою, щоб побачити, як далеко ви можете піти з ssh на пристрої Android, а не отримувати доступ до вмісту на SD-картці.
Mussé Redi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.