Remove coredomain /dev access no longer needed after Treble
According to go/sedenials (internal dogfooding), coredomain access to
following types is not exercised and can be removed:
iio_device
radio_device
tee_device
Access to audio_device is still needed since some ALSA interfaces
(/dev/snd/*) are directly used by system_server.
Bug: 110962171
Test: m selinux_policy
Change-Id: I740b99813e1f93136bfcaec087b74f0e03b259ad
diff --git a/private/coredomain.te b/private/coredomain.te
index 78ffb27..5650247 100644
--- a/private/coredomain.te
+++ b/private/coredomain.te
@@ -169,13 +169,12 @@
}{ usbfs binfmt_miscfs }:file no_rw_file_perms;
')
-# Audit coredomain access to /dev nodes that might no longer be needed after
-# Treble.
-userdebug_or_eng(`
- auditallow coredomain {
- audio_device
- iio_device
- radio_device
- tee_device
- }:chr_file { open read append write ioctl };
+# Following /dev nodes must not be directly accessed by coredomain after Treble,
+# but should instead be wrapped by HALs.
+full_treble_only(`
+ neverallow coredomain {
+ iio_device
+ radio_device
+ tee_device
+ }:chr_file { open read append write ioctl };
')
diff --git a/private/surfaceflinger.te b/private/surfaceflinger.te
index c50faef..36e784f 100644
--- a/private/surfaceflinger.te
+++ b/private/surfaceflinger.te
@@ -71,10 +71,6 @@
binder_call(surfaceflinger, shell)
r_dir_file(surfaceflinger, dumpstate)
-# Needed on some devices for playing DRM protected content,
-# but seems expected and appropriate for all devices.
-allow surfaceflinger tee_device:chr_file rw_file_perms;
-
# media.player service
# do not use add_service() as hal_graphics_composer_default may be the
diff --git a/private/system_server.te b/private/system_server.te
index 4cf8ae0..1466e6c 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -326,10 +326,8 @@
allow system_server mdns_socket:sock_file rw_file_perms;
allow system_server alarm_device:chr_file rw_file_perms;
allow system_server gpu_device:chr_file rw_file_perms;
-allow system_server iio_device:chr_file rw_file_perms;
allow system_server input_device:dir r_dir_perms;
allow system_server input_device:chr_file rw_file_perms;
-allow system_server radio_device:chr_file r_file_perms;
allow system_server tty_device:chr_file rw_file_perms;
allow system_server usbaccessory_device:chr_file rw_file_perms;
allow system_server video_device:dir r_dir_perms;
@@ -338,7 +336,7 @@
allow system_server rtc_device:chr_file rw_file_perms;
allow system_server audio_device:dir r_dir_perms;
-# write access needed for MIDI
+# write access to ALSA interfaces (/dev/snd/*) needed for MIDI
allow system_server audio_device:chr_file rw_file_perms;
# tun device used for 3rd party vpn apps