如何在android中了解进程的组

All*_*len 3 shell android

有没有一个工具来显示android中哪些组的进程?例如:在adb shell中:

type> id 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,例如:

启动proc com.test.app以获取活动com.test.app/.MainActivity:pid = 22565 uid = 10102 gids = {1015,3003}

com.test.app已经进入组1015和3003.

我不知道有办法看到这样的运行过程的信息.

提前致谢

sat*_*ine 11

要确定流程的组,您只需要列出的流程ID adb shell ps,例如:

USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME
u0_a33    7295  116   664448 42412 ffffffff 4019aee4 S com.android.systemui
Run Code Online (Sandbox Code Playgroud)

然后去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
Run Code Online (Sandbox Code Playgroud)

查看AOSP系统/核心中的android_filesystem_config.h,了解组ID的含义.例如1015AID_SDCARD_RW.