android 中 工具类 dumpstate
在运行bugreport 时启动, 启动时 dumpstate进程为root,之后变为了,shell
是因为在dumpstate.c文件中有这一段代码:
/* switch to non-root user and group */
gid_t groups[] = { AID_LOG, AID_SDCARD_R, AID_SDCARD_RW,
AID_MOUNT, AID_INET, AID_NET_BW_STATS };
if (setgroups(sizeof(groups)/sizeof(groups[0]), groups) != 0) {
ALOGE("Unable to setgroups, aborting: %s\n", strerror(errno));
return -1;
}
if (setgid(AID_SHELL) != 0) {
ALOGE("Unable to setgid, aborting: %s\n", strerror(errno));
return -1;
}
if (setuid(AID_SHELL) != 0) {
ALOGE("Unable to setuid, aborting: %s\n", strerror(errno));
return -1;
}
去更改了自己进程的group,gid,uid
这些值配置在
system/core/include/private/android_filesystem_config.h 文件中
setuid