Split composd's service in two
They are served by the same process but have different clients:
- the main interface is exposed to system server;
- the internal interface is called by odrefresh when spawned by composd.
Test: compos_cmd forced-compile-test
Bug: 199147668
Change-Id: Ie1561b7700cf633d7d5c8df68ff58797a8d8bced
diff --git a/private/composd.te b/private/composd.te
index 5edea69..30e26f9 100644
--- a/private/composd.te
+++ b/private/composd.te
@@ -1,10 +1,11 @@
type composd, domain, coredomain;
type composd_exec, system_file_type, exec_type, file_type;
-# Host a dynamic AIDL service
+# Host dynamic AIDL services
init_daemon_domain(composd)
binder_use(composd)
add_service(composd, compos_service)
+add_service(composd, compos_internal_service)
# Call back into system server
binder_call(composd, system_server)
diff --git a/private/odrefresh.te b/private/odrefresh.te
index c6ab7bb..e146938 100644
--- a/private/odrefresh.te
+++ b/private/odrefresh.te
@@ -54,7 +54,7 @@
# Make binder calls back to composd
binder_use(odrefresh)
-allow odrefresh compos_service:service_manager find;
+allow odrefresh compos_internal_service:service_manager find;
binder_call(odrefresh, composd)
# Run fd_server in its own domain
diff --git a/private/service.te b/private/service.te
index 2ab6335..006183e 100644
--- a/private/service.te
+++ b/private/service.te
@@ -11,3 +11,4 @@
type statsmanager_service, system_api_service, system_server_service, service_manager_type;
type tracingproxy_service, system_server_service, service_manager_type;
type uce_service, service_manager_type;
+type compos_internal_service, service_manager_type;
diff --git a/private/service_contexts b/private/service_contexts
index 0e723f2..f833096 100644
--- a/private/service_contexts
+++ b/private/service_contexts
@@ -76,6 +76,7 @@
android.security.remoteprovisioning u:object_r:remoteprovisioning_service:s0
android.service.gatekeeper.IGateKeeperService u:object_r:gatekeeper_service:s0
android.system.composd u:object_r:compos_service:s0
+android.system.composd.internal u:object_r:compos_internal_service:s0
android.system.virtualizationservice u:object_r:virtualization_service:s0
app_binding u:object_r:app_binding_service:s0
app_hibernation u:object_r:app_hibernation_service:s0