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