Как приложения записывают данные в файловую систему на устройстве без рута?

Пользовательские приложения и данные хранятся в /data/appи /data/dataсоответственно. Но мы не можем (даже) увидеть это без разрешения root. Итак, я хочу знать, если устройство не имеет root-прав, то как устанавливаются пользовательские приложения (копируются Apks) /data/appи как пользовательские приложения записывают данные в /data/data? Другими словами: что позволяет/разрешает приложениям записывать данные без root-доступа?

См. стр. 1 и 2 здесь: newandroidbook.com/Book/2-Excerpt-Data.pdf

Ответы (1)

В системе Android нет обычного хранилища /etc/passwd для пользователей и групп. В Android пользователи и группы используются для изоляции процессов и предоставления разрешений. Система Android создает пользователя для каждого приложения при его установке. Следовательно, файлы данных приложения хранятся в /data/data/<app-name>/, и доступны для чтения и записи только этому процессу приложения.

Вот часть вывода ls -l /data/data:

drwxr-x--x u0_a31   u0_a31            2015-03-29 15:34 com.lenovo.themecenter
drwxr-x--x u0_a82   u0_a82            2015-02-27 23:20 com.lenovo.videoplayer
drwxr-x--x u0_a75   u0_a75            2013-12-31 21:30 com.lenovo.weatherserver
drwxr-x--x u0_a39   u0_a39            2013-12-31 21:30 com.lenovo.widetouch
drwxr-x--x u0_a73   u0_a73            2015-02-25 22:51 com.lenovo.wifiswitch
drwxr-x--x u0_a19   u0_a19            2013-12-31 21:30 com.lenovo.xlauncher

Вы легко заметите, что каждая папка создается с разрешениями на чтение/запись только для соответствующего пользователя/группы приложения.

Подробнее об этом здесь .