1# Define the packagemanagerpoxyd type
2type packagemanagerproxyd, domain;
3
4# Add to the coredomain since it lives in /system_ext
5typeattribute packagemanagerproxyd coredomain;
6
7typeattribute packagemanagerproxyd mlstrustedsubject;
8
9# Use the attribytes of packagemanagerproxy_server
10typeattribute packagemanagerproxyd packagemanagerproxy_server;
11
12# Declare the exec type
13type packagemanagerproxyd_exec, exec_type, system_file_type, file_type;
14
15# Allow packagemanagerproxyd to be launced by init
16init_daemon_domain(packagemanagerproxyd)
17
18# Allow use of Binder IPCs
19binder_use(packagemanagerproxyd)
20
21# The packagemanagerproxy server can call the system_server
22binder_call(packagemanagerproxy_server, system_server)
23
24# Allow the packagemanagerproxy server to find the package_native_service
25allow packagemanagerproxy_server package_native_service:service_manager find;
26
27# The packagemanagerproxy server can register the IPackageMangerProxy Binder IPC service.
28add_service(packagemanagerproxy_server, packagemanagerproxyd_service)
29
30# The packagemanagerproxy client can call the server via Binder IPC.
31binder_call(packagemanagerproxy_client, packagemanagerproxy_server)
32
33# The packagemanagerproxy client has access to the IPackageMangerProxy Binder IPC service.
34allow packagemanagerproxy_client packagemanagerproxyd_service:service_manager find;
35