blob: 7a5bf51744d0ccf603db719e8e44f30504aa7346 [file] [log] [blame]
Alex Klyubinf5446eb2017-03-23 14:27:32 -07001typeattribute servicemanager coredomain;
2
dcashmancc39f632016-07-22 13:13:11 -07003init_daemon_domain(servicemanager)
Mark Salyzynd33a9a12016-11-07 15:11:39 -08004
5read_runtime_log_tags(servicemanager)
Jon Spivack839e3db2019-06-27 13:11:22 -07006
7set_prop(servicemanager, ctl_interface_start_prop)
Steven Morelandfd1eb682022-07-20 20:54:25 +00008set_prop(servicemanager, servicemanager_prop)
Jooyung Han133ca4e2022-07-14 11:31:03 +09009
10# servicemanager is using bootstrap bionic
11use_bootstrap_libs(servicemanager)
Rob Seymourecbadbb2022-07-28 16:23:42 +000012
13# servicemanager is using apex_info via libvintf
14use_apex_info(servicemanager)
Inseob Kim75806ef2024-03-27 17:18:41 +090015
16# Note that we do not use the binder_* macros here.
17# servicemanager is unique in that it only provides
18# name service (aka context manager) for Binder.
19# As such, it only ever receives and transfers other references
20# created by other domains. It never passes its own references
21# or initiates a Binder IPC.
22allow servicemanager self:binder set_context_mgr;
23allow servicemanager {
24 domain
25 -init
26 -vendor_init
27 -hwservicemanager
28 -vndservicemanager
29}:binder transfer;
30
31allow servicemanager service_contexts_file:file r_file_perms;
32
33allow servicemanager vendor_service_contexts_file:file r_file_perms;
34
35# nonplat_service_contexts only accessible on non full-treble devices
36not_full_treble(`allow servicemanager vendor_service_contexts_file:file r_file_perms;')
37
38add_service(servicemanager, service_manager_service)
39allow servicemanager dumpstate:fd use;
40allow servicemanager dumpstate:fifo_file write;
41
42# Check SELinux permissions.
43selinux_check_access(servicemanager)
44
45allow servicemanager kmsg_device:chr_file rw_file_perms;
46
47recovery_only(`
48 # Read VINTF files.
49 r_dir_file(servicemanager, rootfs)
50')