summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArve Hjnnevg <arve@android.com>2016-08-19 01:11:01 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-08-19 01:11:01 +0000
commit75469c1fc95c276ab098b61f696d9e49b2968d78 (patch)
tree71e76c2a02ff00028ea108d1214518d516ee9345
parent1864a8748d12f60d000d508bc7da2f9fd8be3d62 (diff)
parent1f36bcd2bab3d20ab05c0993d41dd29cefda26ab (diff)
downloadnative-75469c1fc95c276ab098b61f696d9e49b2968d78.tar.gz
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 Change-Id: Ic4225509044c66a55910b827e8076cf20c4b5bba
-rw-r--r--cmds/servicemanager/Android.mk2
-rw-r--r--cmds/servicemanager/service_manager.c4
2 files changed, 4 insertions, 2 deletions
diff --git a/cmds/servicemanager/Android.mk b/cmds/servicemanager/Android.mk
index 155cfc503e..5bafd53438 100644
--- a/cmds/servicemanager/Android.mk
+++ b/cmds/servicemanager/Android.mk
@@ -18,7 +18,7 @@ LOCAL_MODULE_TAGS := optional
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 4c993c2361..031f848970 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>
@@ -111,7 +113,7 @@ static int svc_can_register(const uint16_t *name, size_t name_len, pid_t spid, u
{
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 */
}