ServiceManager: Allow system services running as secondary users to add services
This should be reverted when all system services have been cleaned up to not do this. A process looking up a service while running in the background will see the service registered by the active user (assuming the service is registered on every user switch), not the service registered by the user that the process itself belongs to. BUG: 30795333 Change-Id: I1b74d58be38ed358f43c163692f9e704f8f31dbe (cherry picked from commit e6bbe69ba739c8a08837134437aaccfea5f1d943)
This commit is contained in:
parent
dbee7f4650
commit
390c2d3512
@ -18,7 +18,7 @@ LOCAL_MODULE_TAGS := optional
|
|||||||
include $(BUILD_EXECUTABLE)
|
include $(BUILD_EXECUTABLE)
|
||||||
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
LOCAL_SHARED_LIBRARIES := liblog libselinux
|
LOCAL_SHARED_LIBRARIES := liblog libcutils libselinux
|
||||||
LOCAL_SRC_FILES := service_manager.c binder.c
|
LOCAL_SRC_FILES := service_manager.c binder.c
|
||||||
LOCAL_CFLAGS += $(svc_c_flags)
|
LOCAL_CFLAGS += $(svc_c_flags)
|
||||||
LOCAL_MODULE := servicemanager
|
LOCAL_MODULE := servicemanager
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <cutils/multiuser.h>
|
||||||
|
|
||||||
#include <private/android_filesystem_config.h>
|
#include <private/android_filesystem_config.h>
|
||||||
|
|
||||||
#include <selinux/android.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";
|
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 */
|
return 0; /* Don't allow apps to register services */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user