Можно ли обойти ограничение на запись на ExSDcard?

327
30 марта 2017, 19:39

Пишу простую программу для шифрования данных в Android. Столкнулся с такой проблемой, что нет доступа на запись к exSDcard устройств. После долгих поисков в интернете узнал, что с Android 4.4.2 введен запрет на запись на внешние носители. Собственно, вопрос заключается в том, что можно ли без получения root прав записать файл в exSDcard директорию и каким способом?

P.S. В Manifest.xml premissions прописаны

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Answer 1

Тема уже мусолилась мильон тыщ раз - тем не менее повторюсь:

можно ли без получения root прав записать файл в exSDcard директорию и каким способом?

Да, можно. Как пишет документация:

Starting in Android 4.4, the owner, group and modes of files on external storage devices are now synthesized based on directory structure. This enables apps to manage their package-specific directories on external storage without requiring they hold the broad WRITE_EXTERNAL_STORAGE permission. For example, the app with package name com.example.foo can now freely access Android/data/com.example.foo/ on external storage devices with no permissions.

Если вкратце, то приложение может создать свой приватный каталог на карте памяти и писать туда, но писать на карту памяти куда угодно запрещено (читать кстати, можно).

Методы обхода сего несколько раз появлялись в сети, но Google патчами закрывал эти дырки. На некоторых моделях разных устройств, тем не менее, разрешения даются и давались, например Samsung при запросе WRITE_EXTERNAL_STORAGE автоматически дает разрешение WRITE_MEDIA_STORAGE и если медиа сторидж на карте, то можно писать в каталог медиа. В прошивках Cyanogen также есть разрешение на запись на карту.

Впрочем в версии Android 5.0 появилась официальная дырка в заборе, а именно в каталог получаемый с помощью метода getExternalMediaDirs() - можно и писать и читать безо всяких пермишенов.

READ ALSO
Открытие Jar через winrar

Открытие Jar через winrar

Заинтерисовал меня такой вопрос, возможно ли сделать так, что бы jar нельзя было бы открыть с помощью winrarПытался завернуть в exe с помощью launch4j,...

335
Оплата через liqPay androi

Оплата через liqPay androi

Никогда не делал приложение, в котором осуществляется оплатаИнтересует такой вопрос, вот на сайте, к примеру, есть кнопка "Оплатить", нажимаем...

259
как установить и запустить rhino 4 движок для java

как установить и запустить rhino 4 движок для java

Будьте добры скажите пожалуйста как установить и запустить движок для java rhino4 Я скачал архив rhino1_7R4zip при выполнении команды

260