проверить группы процессов Android
Устройство: Android 6.0.1
Я написал приложение, используйтеWRITE_EXTERNAL_STORAGE
разрешение в манифесте, установите это приложение, а затем включите разрешение хранилища для этого приложения из настроек.
adb shell
:/ # ps | grep com.amida.test
u0_a199 6722 477 872572 41084 SyS_epoll_ b6c89c74 S com.amida.test
:/ # cat /proc/6722/status
Name: com.amida.test
State: S (sleeping)
Tgid: 6722
Ngid: 0
Pid: 6722
PPid: 477
TracerPid: 0
Uid: 10199 10199 10199 10199
Gid: 10199 10199 10199 10199
FDSize: 256
Groups: 9997 50199
Вопрос: Я думаю, что в группах должно быть 1015. Но там не может найти 1015, почему?
в соответствии с :#define AID_SDCARD_RW 1015
Дополнительная информация:
В Android pre-M, из /etc/permissions/platform.xml, мы можем найти следующую информацию:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
</permission>
#define AID_SDCARD_RW 1015
Если приложение использует разрешение «android.permission.WRITE_EXTERNAL_STORAGE», то процесс приложения имеет группы: 1015. (согласно android_filesystem_config.h)
но на Android M, во-первых, я не могу найти разрешение (WRITE_EXTERNAL_STORAGE) и конфигурацию gid mapping. поскольку файлы в SDCard принадлежат группе SDCard_RW, то как приложение может читать и записывать SDCard? (Я думаю, Android использует систему разрешений Linux для чтения и записи файлов, верно?)