有没有一个工具可以显示android中哪些组的进程?例如:在亚行外壳中:
类型>身份证
uid=2000(shell)gid=2000(shell)groups=1003(graphics)、1004(input)、1007(log)、1009(mount)、1011(adb)、1015(sdcard-rw)、1028(sdcard-r)、3001(net-bt-admin)
但是我希望看到一些进程,比如mediaserver。
我知道当一个android应用程序启动时,你可以在adb日志中找到gid,例如:
为活动com.test.app/.mainActivity启动proc com.test.app:pid=22565 uid=10102 gids={1015,3003}
com.test.app已加入1015和3003组。
我不知道有什么方法可以看到运行进程的信息。
提前谢谢
最佳答案
要确定流程的组,您只需要adb shell ps
中列出的流程id,例如:
USER PID PPID VSIZE RSS WCHAN PC NAME
u0_a33 7295 116 664448 42412 ffffffff 4019aee4 S com.android.systemui
然后执行
cat /proc/{pid}/status
并查找Groups
部分: $ cat /proc/7295/status
Name: ndroid.systemui
State: S (sleeping)
Tgid: 7295
Pid: 7295
PPid: 116
TracerPid: 0
Uid: 10033 10033 10033 10033
Gid: 10033 10033 10033 10033
FDSize: 256
Groups: 1015 1028 3001 3002 50033
VmPeak: 665892 kB
VmSize: 664200 kB
VmLck: 0 kB
VmHWM: 42564 kB
VmRSS: 42420 kB
VmData: 20000 kB
VmStk: 136 kB
VmExe: 8 kB
VmLib: 34296 kB
VmPTE: 140 kB
VmSwap: 0 kB
Threads: 15
SigQ: 0/7766
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000001204
SigIgn: 0000000000000000
SigCgt: 00000002000094e8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: f
Cpus_allowed_list: 0-3
voluntary_ctxt_switches: 707
nonvoluntary_ctxt_switches: 3019
查看aosp system/core中的android_filesystem_config.h以了解组id的含义。例如
1015
就是AID_SDCARD_RW
。