comprobar grupos de procesos de Android
Dispositivo: Android 6.0.1
Escribí una aplicación, usoWRITE_EXTERNAL_STORAGE
permiso en manifiesto, instale esta aplicación y luego active el permiso de almacenamiento para esta aplicación desde la configuración.
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
Pregunta: Creo que los grupos deberían tener 1015. pero no pueden encontrar 1015 allí, ¿por qué?
de acuerdo a :#define AID_SDCARD_RW 1015
Más información:
En Android pre-M, desde /etc/permissions/platform.xml, podemos encontrar la siguiente información:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
</permission>
#define AID_SDCARD_RW 1015
Si la aplicación usa el permiso "android.permission.WRITE_EXTERNAL_STORAGE", entonces el proceso de la aplicación tiene grupos: 1015. (según android_filesystem_config.h)
pero en Android M, en primer lugar, no puedo encontrar el permiso (WRITE_EXTERNAL_STORAGE) y la configuración de mapeo gid. debido a que los archivos en sdcard pertenecen al grupo sdcard_rw, entonces, ¿cómo puede la aplicación leer y escribir sdcard? (Creo que Android usa el sistema de permisos de Linux para leer y escribir archivos, ¿verdad?)