2746ae6822
On PRODUCT_FULL_TREBLE devices, non-vendor domains (coredomain) and vendor domain are not permitted to connect to each other's sockets. There are two main exceptions: (1) apps are permitted to talk to other apps over Unix domain sockets (this is public API in Android framework), and (2) domains with network access (netdomain) are permitted to connect to netd. This commit thus: * adds neverallow rules restricting socket connection establishment, * temporarily exempts the domains which are currently violating this rule from this restriction. These domains are grouped using the new "socket_between_core_and_vendor_violators" attribute. The attribute is needed because the types corresponding to violators are not exposed to the public policy where the neverallow rules are. Test: mmm system/sepolicy Bug: 36613996 Change-Id: I458f5a09a964b06ad2bddb52538ec3a15758b003
41 lines
1.3 KiB
Text
41 lines
1.3 KiB
Text
# phone subsystem
|
|
type radio, domain, domain_deprecated, mlstrustedsubject;
|
|
|
|
net_domain(radio)
|
|
bluetooth_domain(radio)
|
|
binder_service(radio)
|
|
|
|
# TODO(b/36613472): Remove this once radio no longer communicates with rild over sockets.
|
|
# Talks to rild via the rild socket.
|
|
unix_socket_connect(radio, rild, rild)
|
|
|
|
# Data file accesses.
|
|
allow radio radio_data_file:dir create_dir_perms;
|
|
allow radio radio_data_file:notdevfile_class_set create_file_perms;
|
|
|
|
allow radio alarm_device:chr_file rw_file_perms;
|
|
|
|
allow radio net_data_file:dir search;
|
|
allow radio net_data_file:file r_file_perms;
|
|
|
|
# Property service
|
|
set_prop(radio, radio_prop)
|
|
set_prop(radio, net_radio_prop)
|
|
|
|
# ctl interface
|
|
set_prop(radio, ctl_rildaemon_prop)
|
|
|
|
add_service(radio, radio_service)
|
|
allow radio audioserver_service:service_manager find;
|
|
allow radio cameraserver_service:service_manager find;
|
|
allow radio drmserver_service:service_manager find;
|
|
allow radio mediaserver_service:service_manager find;
|
|
allow radio nfc_service:service_manager find;
|
|
allow radio surfaceflinger_service:service_manager find;
|
|
allow radio app_api_service:service_manager find;
|
|
allow radio system_api_service:service_manager find;
|
|
|
|
# Perform HwBinder IPC.
|
|
hwbinder_use(radio)
|
|
binder_call(radio, hal_telephony)
|
|
hal_client_domain(radio, hal_telephony)
|