diff --git a/system_server.te b/system_server.te
index f17f8d3178efd7ae68817cafb654104145c99c8f..ae14ab36b512ed39761206518dd049f0084f7a36 100644
--- a/system_server.te
+++ b/system_server.te
@@ -409,3 +409,10 @@ r_dir_file(system_server, oemfs)
 # Do not allow accessing SDcard files as unsafe ejection could
 # cause the kernel to kill the system_server.
 neverallow system_server sdcard_type:file rw_file_perms;
+
+# system server should never be opening zygote spawned app data
+# files directly. Rather, they should always be passed via a
+# file descriptor.
+# Types extracted from seapp_contexts type= fields, excluding
+# those types that system_server needs to open directly.
+neverallow system_server { bluetooth_data_file nfc_data_file shell_data_file app_data_file }:file open;