1# All types must be defined regardless of build variant to ensure
2# policy compilation succeeds with userdebug/user combination at boot
3type su, domain;
4
5# File types must be defined for file_contexts.
6type su_exec, system_file_type, exec_type, file_type;
7
8userdebug_or_eng(`
9  # Domain used for su processes, as well as for adbd and adb shell
10  # after performing an adb root command.  The domain definition is
11  # wrapped to ensure that it does not exist at all on -user builds.
12  typeattribute su mlstrustedsubject;
13
14  # Add su to various domains
15  net_domain(su)
16
17  # grant su access to vndbinder
18  vndbinder_use(su)
19
20  dontaudit su self:capability_class_set *;
21  dontaudit su kernel:security *;
22  dontaudit su { kernel file_type }:system *;
23  dontaudit su self:memprotect *;
24  dontaudit su domain:{ process process2 } *;
25  dontaudit su domain:fd *;
26  dontaudit su domain:dir *;
27  dontaudit su domain:lnk_file *;
28  dontaudit su domain:{ fifo_file file } *;
29  dontaudit su domain:socket_class_set *;
30  dontaudit su domain:ipc_class_set *;
31  dontaudit su domain:key *;
32  dontaudit su fs_type:filesystem *;
33  dontaudit su {fs_type dev_type file_type}:dir_file_class_set *;
34  dontaudit su node_type:node *;
35  dontaudit su node_type:{ tcp_socket udp_socket rawip_socket } *;
36  dontaudit su netif_type:netif *;
37  dontaudit su port_type:socket_class_set *;
38  dontaudit su port_type:{ tcp_socket dccp_socket } *;
39  dontaudit su domain:peer *;
40  dontaudit su domain:binder *;
41  dontaudit su property_type:property_service *;
42  dontaudit su property_type:file *;
43  dontaudit su service_manager_type:service_manager *;
44  dontaudit su hwservice_manager_type:hwservice_manager *;
45  dontaudit su vndservice_manager_type:service_manager *;
46  dontaudit su servicemanager:service_manager list;
47  dontaudit su hwservicemanager:hwservice_manager list;
48  dontaudit su vndservicemanager:service_manager list;
49  dontaudit su keystore:keystore_key *;
50  dontaudit su domain:drmservice *;
51  dontaudit su unlabeled:filesystem *;
52  dontaudit su postinstall_file:filesystem *;
53  dontaudit su domain:bpf *;
54  dontaudit su unlabeled:vsock_socket *;
55
56  # VTS tests run in the permissive su domain on debug builds, but the HALs
57  # being tested run in enforcing mode. Because hal_foo_server is enforcing
58  # su needs to be declared as hal_foo_client to grant hal_foo_server
59  # permission to interact with it.
60  typeattribute su halclientdomain;
61  typeattribute su hal_allocator_client;
62  typeattribute su hal_atrace_client;
63  typeattribute su hal_audio_client;
64  typeattribute su hal_authsecret_client;
65  typeattribute su hal_bluetooth_client;
66  typeattribute su hal_bootctl_client;
67  typeattribute su hal_camera_client;
68  typeattribute su hal_configstore_client;
69  typeattribute su hal_confirmationui_client;
70  typeattribute su hal_contexthub_client;
71  typeattribute su hal_drm_client;
72  typeattribute su hal_cas_client;
73  typeattribute su hal_dumpstate_client;
74  typeattribute su hal_fingerprint_client;
75  typeattribute su hal_gatekeeper_client;
76  typeattribute su hal_gnss_client;
77  typeattribute su hal_graphics_allocator_client;
78  typeattribute su hal_graphics_composer_client;
79  typeattribute su hal_health_client;
80  typeattribute su hal_input_classifier_client;
81  typeattribute su hal_ir_client;
82  typeattribute su hal_keymaster_client;
83  typeattribute su hal_light_client;
84  typeattribute su hal_memtrack_client;
85  typeattribute su hal_neuralnetworks_client;
86  typeattribute su hal_nfc_client;
87  typeattribute su hal_oemlock_client;
88  typeattribute su hal_power_client;
89  typeattribute su hal_secure_element_client;
90  typeattribute su hal_sensors_client;
91  typeattribute su hal_telephony_client;
92  typeattribute su hal_tetheroffload_client;
93  typeattribute su hal_thermal_client;
94  typeattribute su hal_tv_cec_client;
95  typeattribute su hal_tv_input_client;
96  typeattribute su hal_usb_client;
97  typeattribute su hal_vibrator_client;
98  typeattribute su hal_vr_client;
99  typeattribute su hal_weaver_client;
100  typeattribute su hal_wifi_client;
101  typeattribute su hal_wifi_hostapd_client;
102  typeattribute su hal_wifi_offload_client;
103  typeattribute su hal_wifi_supplicant_client;
104')
105