ServiceManager: Allow system services running as secondary users to add services am: e6bbe69ba7 am: 2cb14836ac am: c29c3734af am: ce0e72911c am: 2c39ea1025 am: fa5aafc9f3 am: 1f36bcd2ba am: 75469c1fc9
am: 083f4ecca2

Change-Id: Ie1931218577e24e4ab0eb7328ccff60a2ca54400
diff --git a/cmds/servicemanager/Android.mk b/cmds/servicemanager/Android.mk
index 73c0367..b214f19 100644
--- a/cmds/servicemanager/Android.mk
+++ b/cmds/servicemanager/Android.mk
@@ -18,7 +18,7 @@
 include $(BUILD_EXECUTABLE)
 
 include $(CLEAR_VARS)
-LOCAL_SHARED_LIBRARIES := liblog libselinux
+LOCAL_SHARED_LIBRARIES := liblog libcutils libselinux
 LOCAL_SRC_FILES := service_manager.c binder.c
 LOCAL_CFLAGS += $(svc_c_flags)
 LOCAL_MODULE := servicemanager
diff --git a/cmds/servicemanager/service_manager.c b/cmds/servicemanager/service_manager.c
index 8a8e688..68e3ceb 100644
--- a/cmds/servicemanager/service_manager.c
+++ b/cmds/servicemanager/service_manager.c
@@ -8,6 +8,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <cutils/multiuser.h>
+
 #include <private/android_filesystem_config.h>
 
 #include <selinux/android.h>
@@ -122,7 +124,7 @@
 {
     const char *perm = "add";
 
-    if (uid >= AID_APP) {
+    if (multiuser_get_app_id(uid) >= AID_APP) {
         return 0; /* Don't allow apps to register services */
     }