Merge "init: Put init in group AID_READPROC" am: 995560919c am: ba2a810deb am: 041a72ab30
am: 96b19bebc4

Change-Id: I5388bd8dad4986980cc0abb2be0caab49a96b08c
diff --git a/init/init.cpp b/init/init.cpp
index cd251a3..809a6f5 100644
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -687,6 +687,8 @@
         mount("devpts", "/dev/pts", "devpts", 0, NULL);
         #define MAKE_STR(x) __STRING(x)
         mount("proc", "/proc", "proc", 0, "hidepid=2,gid=" MAKE_STR(AID_READPROC));
+        gid_t groups[] = { AID_READPROC };
+        setgroups(arraysize(groups), groups);
         mount("sysfs", "/sys", "sysfs", 0, NULL);
         mount("selinuxfs", "/sys/fs/selinux", "selinuxfs", 0, NULL);
         mknod("/dev/kmsg", S_IFCHR | 0600, makedev(1, 11));
diff --git a/init/service.cpp b/init/service.cpp
index 6460e71..92f1615 100644
--- a/init/service.cpp
+++ b/init/service.cpp
@@ -233,10 +233,8 @@
             PLOG(FATAL) << "setgid failed for " << name_;
         }
     }
-    if (!supp_gids_.empty()) {
-        if (setgroups(supp_gids_.size(), &supp_gids_[0]) != 0) {
-            PLOG(FATAL) << "setgroups failed for " << name_;
-        }
+    if (setgroups(supp_gids_.size(), &supp_gids_[0]) != 0) {
+        PLOG(FATAL) << "setgroups failed for " << name_;
     }
     if (uid_) {
         if (setuid(uid_) != 0) {