diff --git a/Android.bp b/Android.bp
index 1d8e5dd..b66f95c 100644
--- a/Android.bp
+++ b/Android.bp
@@ -209,6 +209,9 @@
     name: "plat_sepolicy.cil",
     src: ":plat_sepolicy.conf",
     additional_cil_files: [":sepolicy_technical_debt{.plat_private}"],
+    dist: {
+        targets: ["sepolicy_finalize"],
+    },
 }
 
 
@@ -315,6 +318,9 @@
     mapping: true,
     version: "current",
     relative_install_path: "mapping", // install to /system/etc/selinux/mapping
+    dist: {
+        targets: ["sepolicy_finalize"],
+    },
 }
 
 se_versioned_policy {
@@ -681,6 +687,9 @@
     build_variant: "user",
     cts: true,
     exclude_build_test: true,
+    dist: {
+        targets: ["sepolicy_finalize"],
+    },
 }
 
 //////////////////////////////////
diff --git a/prebuilts/api/202404/202404_general_sepolicy.conf b/prebuilts/api/202404/202404_general_sepolicy.conf
new file mode 100644
index 0000000..e418549
--- /dev/null
+++ b/prebuilts/api/202404/202404_general_sepolicy.conf
@@ -0,0 +1,83067 @@
+#line 1 "system/sepolicy/private/security_classes"
+# FLASK
+
+#
+# Define the security object classes
+#
+
+# Classes marked as userspace are classes
+# for userspace object managers
+
+class security
+class process
+class system
+class capability
+
+# file-related classes
+class filesystem
+class file
+class anon_inode
+class dir
+class fd
+class lnk_file
+class chr_file
+class blk_file
+class sock_file
+class fifo_file
+
+# network-related classes
+class socket
+class tcp_socket
+class udp_socket
+class rawip_socket
+class node
+class netif
+class netlink_socket
+class packet_socket
+class key_socket
+class unix_stream_socket
+class unix_dgram_socket
+
+# sysv-ipc-related classes
+class sem
+class msg
+class msgq
+class shm
+class ipc
+
+# extended netlink sockets
+class netlink_route_socket
+class netlink_tcpdiag_socket
+class netlink_nflog_socket
+class netlink_xfrm_socket
+class netlink_selinux_socket
+class netlink_audit_socket
+class netlink_dnrt_socket
+
+# IPSec association
+class association
+
+# Updated Netlink class for KOBJECT_UEVENT family.
+class netlink_kobject_uevent_socket
+
+class appletalk_socket
+
+class packet
+
+# Kernel access key retention
+class key
+
+class dccp_socket
+
+class memprotect
+
+# network peer labels
+class peer
+
+# Capabilities >= 32
+class capability2
+
+# kernel services that need to override task security, e.g. cachefiles
+class kernel_service
+
+class tun_socket
+
+class binder
+
+# Updated netlink classes for more recent netlink protocols.
+class netlink_iscsi_socket
+class netlink_fib_lookup_socket
+class netlink_connector_socket
+class netlink_netfilter_socket
+class netlink_generic_socket
+class netlink_scsitransport_socket
+class netlink_rdma_socket
+class netlink_crypto_socket
+
+# Infiniband
+class infiniband_pkey
+class infiniband_endport
+
+# Capability checks when on a non-init user namespace
+class cap_userns
+class cap2_userns
+
+# New socket classes introduced by extended_socket_class policy capability.
+# These two were previously mapped to rawip_socket.
+class sctp_socket
+class icmp_socket
+# These were previously mapped to socket.
+class ax25_socket
+class ipx_socket
+class netrom_socket
+class atmpvc_socket
+class x25_socket
+class rose_socket
+class decnet_socket
+class atmsvc_socket
+class rds_socket
+class irda_socket
+class pppox_socket
+class llc_socket
+class can_socket
+class tipc_socket
+class bluetooth_socket
+class iucv_socket
+class rxrpc_socket
+class isdn_socket
+class phonet_socket
+class ieee802154_socket
+class caif_socket
+class alg_socket
+class nfc_socket
+class vsock_socket
+class kcm_socket
+class qipcrtr_socket
+class smc_socket
+
+class process2
+
+class bpf
+
+class xdp_socket
+
+class perf_event
+
+class io_uring
+
+# Introduced in https://github.com/torvalds/linux/commit/59438b46471ae6cdfb761afc8c9beaf1e428a331
+class lockdown
+
+# Property service
+class property_service          # userspace
+
+# Service manager
+class service_manager           # userspace
+
+# hardware service manager      # userspace
+class hwservice_manager
+
+# Legacy Keystore key permissions
+class keystore_key              # userspace
+
+# Keystore 2.0 permissions
+class keystore2                 # userspace
+
+# Keystore 2.0 key permissions
+class keystore2_key             # userspace
+
+# Diced permissions
+class diced                     # userspace
+
+class drmservice                # userspace
+# FLASK
+#line 1 "system/sepolicy/private/initial_sids"
+# FLASK
+
+#
+# Define initial security identifiers
+#
+
+sid kernel
+sid security
+sid unlabeled
+sid fs
+sid file
+sid file_labels
+sid init
+sid any_socket
+sid port
+sid netif
+sid netmsg
+sid node
+sid igmp_packet
+sid icmp_socket
+sid tcp_socket
+sid sysctl_modprobe
+sid sysctl
+sid sysctl_fs
+sid sysctl_kernel
+sid sysctl_net
+sid sysctl_net_unix
+sid sysctl_vm
+sid sysctl_dev
+sid kmod
+sid policy
+sid scmp_packet
+sid devnull
+
+# FLASK
+#line 1 "system/sepolicy/private/access_vectors"
+#
+# Define common prefixes for access vectors
+#
+# common common_name { permission_name ... }
+
+
+#
+# Define a common prefix for file access vectors.
+#
+
+common file
+{
+	ioctl
+	read
+	write
+	create
+	getattr
+	setattr
+	lock
+	relabelfrom
+	relabelto
+	append
+	map
+	unlink
+	link
+	rename
+	execute
+	quotaon
+	mounton
+	audit_access
+	open
+	execmod
+	watch
+	watch_mount
+	watch_sb
+	watch_with_perm
+	watch_reads
+}
+
+
+#
+# Define a common prefix for socket access vectors.
+#
+
+common socket
+{
+# inherited from file
+	ioctl
+	read
+	write
+	create
+	getattr
+	setattr
+	lock
+	relabelfrom
+	relabelto
+	append
+	map
+# socket-specific
+	bind
+	connect
+	listen
+	accept
+	getopt
+	setopt
+	shutdown
+	recvfrom
+	sendto
+	name_bind
+}
+
+#
+# Define a common prefix for ipc access vectors.
+#
+
+common ipc
+{
+	create
+	destroy
+	getattr
+	setattr
+	read
+	write
+	associate
+	unix_read
+	unix_write
+}
+
+#
+# Define a common for capability access vectors.
+#
+common cap
+{
+	# The capabilities are defined in include/linux/capability.h
+	# Capabilities >= 32 are defined in the cap2 common.
+	# Care should be taken to ensure that these are consistent with
+	# those definitions. (Order matters)
+
+	chown
+	dac_override
+	dac_read_search
+	fowner
+	fsetid
+	kill
+	setgid
+	setuid
+	setpcap
+	linux_immutable
+	net_bind_service
+	net_broadcast
+	net_admin
+	net_raw
+	ipc_lock
+	ipc_owner
+	sys_module
+	sys_rawio
+	sys_chroot
+	sys_ptrace
+	sys_pacct
+	sys_admin
+	sys_boot
+	sys_nice
+	sys_resource
+	sys_time
+	sys_tty_config
+	mknod
+	lease
+	audit_write
+	audit_control
+	setfcap
+}
+
+common cap2
+{
+	mac_override	# unused by SELinux
+	mac_admin
+	syslog
+	wake_alarm
+	block_suspend
+	audit_read
+	perfmon
+}
+
+#
+# Define the access vectors.
+#
+# class class_name [ inherits common_name ] { permission_name ... }
+
+
+#
+# Define the access vector interpretation for file-related objects.
+#
+
+class filesystem
+{
+	mount
+	remount
+	unmount
+	getattr
+	relabelfrom
+	relabelto
+	associate
+	quotamod
+	quotaget
+	watch
+}
+
+class dir
+inherits file
+{
+	add_name
+	remove_name
+	reparent
+	search
+	rmdir
+}
+
+class file
+inherits file
+{
+	execute_no_trans
+	entrypoint
+}
+
+class anon_inode
+inherits file
+
+class lnk_file
+inherits file
+
+class chr_file
+inherits file
+{
+	execute_no_trans
+	entrypoint
+}
+
+class blk_file
+inherits file
+
+class sock_file
+inherits file
+
+class fifo_file
+inherits file
+
+class fd
+{
+	use
+}
+
+
+#
+# Define the access vector interpretation for network-related objects.
+#
+
+class socket
+inherits socket
+
+class tcp_socket
+inherits socket
+{
+	node_bind
+	name_connect
+}
+
+class udp_socket
+inherits socket
+{
+	node_bind
+}
+
+class rawip_socket
+inherits socket
+{
+	node_bind
+}
+
+class node
+{
+	recvfrom
+	sendto
+}
+
+class netif
+{
+	ingress
+	egress
+}
+
+class netlink_socket
+inherits socket
+
+class packet_socket
+inherits socket
+
+class key_socket
+inherits socket
+
+class unix_stream_socket
+inherits socket
+{
+	connectto
+}
+
+class unix_dgram_socket
+inherits socket
+
+#
+# Define the access vector interpretation for process-related objects
+#
+
+class process
+{
+	fork
+	transition
+	sigchld # commonly granted from child to parent
+	sigkill # cannot be caught or ignored
+	sigstop # cannot be caught or ignored
+	signull # for kill(pid, 0)
+	signal  # all other signals
+	ptrace
+	getsched
+	setsched
+	getsession
+	getpgid
+	setpgid
+	getcap
+	setcap
+	share
+	getattr
+	setexec
+	setfscreate
+	noatsecure
+	siginh
+	setrlimit
+	rlimitinh
+	dyntransition
+	setcurrent
+	execmem
+	execstack
+	execheap
+	setkeycreate
+	setsockcreate
+	getrlimit
+}
+
+class process2
+{
+	nnp_transition
+	nosuid_transition
+}
+
+#
+# Define the access vector interpretation for ipc-related objects
+#
+
+class ipc
+inherits ipc
+
+class sem
+inherits ipc
+
+class msgq
+inherits ipc
+{
+	enqueue
+}
+
+class msg
+{
+	send
+	receive
+}
+
+class shm
+inherits ipc
+{
+	lock
+}
+
+
+#
+# Define the access vector interpretation for the security server.
+#
+
+class security
+{
+	compute_av
+	compute_create
+	compute_member
+	check_context
+	load_policy
+	compute_relabel
+	compute_user
+	setenforce     # was avc_toggle in system class
+	setbool
+	setsecparam
+	setcheckreqprot
+	read_policy
+	validate_trans
+}
+
+
+#
+# Define the access vector interpretation for system operations.
+#
+
+class system
+{
+	ipc_info
+	syslog_read
+	syslog_mod
+	syslog_console
+	module_request
+	module_load
+}
+
+#
+# Define the access vector interpretation for controlling capabilities
+#
+
+class capability
+inherits cap
+
+class capability2
+inherits cap2
+
+#
+# Extended Netlink classes
+#
+class netlink_route_socket
+inherits socket
+{
+	nlmsg_read
+	nlmsg_write
+	nlmsg_readpriv
+	nlmsg_getneigh
+}
+
+class netlink_tcpdiag_socket
+inherits socket
+{
+	nlmsg_read
+	nlmsg_write
+}
+
+class netlink_nflog_socket
+inherits socket
+
+class netlink_xfrm_socket
+inherits socket
+{
+	nlmsg_read
+	nlmsg_write
+}
+
+class netlink_selinux_socket
+inherits socket
+
+class netlink_audit_socket
+inherits socket
+{
+	nlmsg_read
+	nlmsg_write
+	nlmsg_relay
+	nlmsg_readpriv
+	nlmsg_tty_audit
+}
+
+class netlink_dnrt_socket
+inherits socket
+
+# Define the access vector interpretation for controlling
+# access to IPSec network data by association
+#
+class association
+{
+	sendto
+	recvfrom
+	setcontext
+	polmatch
+}
+
+# Updated Netlink class for KOBJECT_UEVENT family.
+class netlink_kobject_uevent_socket
+inherits socket
+
+class appletalk_socket
+inherits socket
+
+class packet
+{
+	send
+	recv
+	relabelto
+	forward_in
+	forward_out
+}
+
+class key
+{
+	view
+	read
+	write
+	search
+	link
+	setattr
+	create
+}
+
+class dccp_socket
+inherits socket
+{
+	node_bind
+	name_connect
+}
+
+class memprotect
+{
+	mmap_zero
+}
+
+# network peer labels
+class peer
+{
+	recv
+}
+
+class kernel_service
+{
+	use_as_override
+	create_files_as
+}
+
+class tun_socket
+inherits socket
+{
+	attach_queue
+}
+
+class binder
+{
+	impersonate
+	call
+	set_context_mgr
+	transfer
+}
+
+class netlink_iscsi_socket
+inherits socket
+
+class netlink_fib_lookup_socket
+inherits socket
+
+class netlink_connector_socket
+inherits socket
+
+class netlink_netfilter_socket
+inherits socket
+
+class netlink_generic_socket
+inherits socket
+
+class netlink_scsitransport_socket
+inherits socket
+
+class netlink_rdma_socket
+inherits socket
+
+class netlink_crypto_socket
+inherits socket
+
+class infiniband_pkey
+{
+	access
+}
+
+class infiniband_endport
+{
+	manage_subnet
+}
+
+#
+# Define the access vector interpretation for controlling capabilities
+# in user namespaces
+#
+
+class cap_userns
+inherits cap
+
+class cap2_userns
+inherits cap2
+
+
+#
+# Define the access vector interpretation for the new socket classes
+# enabled by the extended_socket_class policy capability.
+#
+
+#
+# The next two classes were previously mapped to rawip_socket and therefore
+# have the same definition as rawip_socket (until further permissions
+# are defined).
+#
+class sctp_socket
+inherits socket
+{
+	node_bind
+	name_connect
+	association
+}
+
+class icmp_socket
+inherits socket
+{
+	node_bind
+}
+
+#
+# The remaining network socket classes were previously
+# mapped to the socket class and therefore have the
+# same definition as socket.
+#
+
+class ax25_socket
+inherits socket
+
+class ipx_socket
+inherits socket
+
+class netrom_socket
+inherits socket
+
+class atmpvc_socket
+inherits socket
+
+class x25_socket
+inherits socket
+
+class rose_socket
+inherits socket
+
+class decnet_socket
+inherits socket
+
+class atmsvc_socket
+inherits socket
+
+class rds_socket
+inherits socket
+
+class irda_socket
+inherits socket
+
+class pppox_socket
+inherits socket
+
+class llc_socket
+inherits socket
+
+class can_socket
+inherits socket
+
+class tipc_socket
+inherits socket
+
+class bluetooth_socket
+inherits socket
+
+class iucv_socket
+inherits socket
+
+class rxrpc_socket
+inherits socket
+
+class isdn_socket
+inherits socket
+
+class phonet_socket
+inherits socket
+
+class ieee802154_socket
+inherits socket
+
+class caif_socket
+inherits socket
+
+class alg_socket
+inherits socket
+
+class nfc_socket
+inherits socket
+
+class vsock_socket
+inherits socket
+
+class kcm_socket
+inherits socket
+
+class qipcrtr_socket
+inherits socket
+
+class smc_socket
+inherits socket
+
+class bpf
+{
+	map_create
+	map_read
+	map_write
+	prog_load
+	prog_run
+}
+
+class property_service
+{
+	set
+}
+
+class service_manager
+{
+	add
+	find
+	list
+}
+
+class hwservice_manager
+{
+	add
+	find
+	list
+}
+
+class keystore_key
+{
+	get_state
+	get
+	insert
+	delete
+	exist
+	list
+	reset
+	password
+	lock
+	unlock
+	is_empty
+	sign
+	verify
+	grant
+	duplicate
+	clear_uid
+	add_auth
+	user_changed
+	gen_unique_id
+}
+
+class keystore2
+{
+	add_auth
+	change_password
+	change_user
+	clear_ns
+	clear_uid
+	delete_all_keys
+	early_boot_ended
+	get_attestation_key
+	get_auth_token
+	get_last_auth_time
+	get_state
+	list
+	lock
+	pull_metrics
+	report_off_body
+	reset
+	unlock
+}
+
+class keystore2_key
+{
+	convert_storage_key_to_ephemeral
+	delete
+	gen_unique_id
+	get_info
+	grant
+	manage_blob
+	rebind
+	req_forced_op
+	update
+	use
+	use_dev_id
+}
+
+class diced
+{
+	demote
+	demote_self
+	derive
+	get_attestation_chain
+	use_seal
+	use_sign
+}
+
+class drmservice {
+	consumeRights
+	setPlaybackStatus
+	openDecryptSession
+	closeDecryptSession
+	initializeDecryptUnit
+	decrypt
+	finalizeDecryptUnit
+	pread
+}
+
+class xdp_socket
+inherits socket
+
+class perf_event
+{
+	open
+	cpu
+	kernel
+	tracepoint
+	read
+	write
+}
+
+class lockdown
+{
+	integrity
+	confidentiality
+}
+
+class io_uring
+{
+	override_creds
+	sqpoll
+	cmd
+}
+#line 1 "system/sepolicy/public/global_macros"
+#####################################
+# Common groupings of object classes.
+#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#####################################
+# Common groupings of permissions.
+#
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#####################################
+# Common socket permission sets.
+
+
+
+
+
+
+#line 1 "system/sepolicy/public/neverallow_macros"
+#
+# Common neverallow permissions
+
+
+
+
+
+#####################################
+# neverallow_establish_socket_comms(src, dst)
+# neverallow src domain establishing socket connections to dst domain.
+#
+#line 15
+
+#line 1 "system/sepolicy/private/mls_macros"
+########################################
+#
+# gen_cats(N)
+#
+# declares categores c0 to c(N-1)
+#
+#line 10
+
+
+
+
+########################################
+#
+# gen_sens(N)
+#
+# declares sensitivites s0 to s(N-1) with dominance
+# in increasing numeric order with s0 lowest, s(N-1) highest
+#
+#line 24
+
+
+
+
+#line 34
+
+
+########################################
+#
+# gen_levels(N,M)
+#
+# levels from s0 to (N-1) with categories c0 to (M-1)
+#
+#line 45
+
+
+
+
+########################################
+#
+# Basic level names for system low and high
+#
+
+
+#line 1 "system/sepolicy/private/mls_decl"
+#########################################
+# MLS declarations
+#
+
+# Generate the desired number of sensitivities and categories.
+
+#line 6
+# Each sensitivity has a name and zero or more aliases.
+#line 6
+sensitivity s0;
+#line 6
+
+#line 6
+
+#line 6
+# Define the ordering of the sensitivity levels (least to greatest)
+#line 6
+dominance { s0  }
+#line 6
+
+category c0;
+#line 7
+category c1;
+#line 7
+category c2;
+#line 7
+category c3;
+#line 7
+category c4;
+#line 7
+category c5;
+#line 7
+category c6;
+#line 7
+category c7;
+#line 7
+category c8;
+#line 7
+category c9;
+#line 7
+category c10;
+#line 7
+category c11;
+#line 7
+category c12;
+#line 7
+category c13;
+#line 7
+category c14;
+#line 7
+category c15;
+#line 7
+category c16;
+#line 7
+category c17;
+#line 7
+category c18;
+#line 7
+category c19;
+#line 7
+category c20;
+#line 7
+category c21;
+#line 7
+category c22;
+#line 7
+category c23;
+#line 7
+category c24;
+#line 7
+category c25;
+#line 7
+category c26;
+#line 7
+category c27;
+#line 7
+category c28;
+#line 7
+category c29;
+#line 7
+category c30;
+#line 7
+category c31;
+#line 7
+category c32;
+#line 7
+category c33;
+#line 7
+category c34;
+#line 7
+category c35;
+#line 7
+category c36;
+#line 7
+category c37;
+#line 7
+category c38;
+#line 7
+category c39;
+#line 7
+category c40;
+#line 7
+category c41;
+#line 7
+category c42;
+#line 7
+category c43;
+#line 7
+category c44;
+#line 7
+category c45;
+#line 7
+category c46;
+#line 7
+category c47;
+#line 7
+category c48;
+#line 7
+category c49;
+#line 7
+category c50;
+#line 7
+category c51;
+#line 7
+category c52;
+#line 7
+category c53;
+#line 7
+category c54;
+#line 7
+category c55;
+#line 7
+category c56;
+#line 7
+category c57;
+#line 7
+category c58;
+#line 7
+category c59;
+#line 7
+category c60;
+#line 7
+category c61;
+#line 7
+category c62;
+#line 7
+category c63;
+#line 7
+category c64;
+#line 7
+category c65;
+#line 7
+category c66;
+#line 7
+category c67;
+#line 7
+category c68;
+#line 7
+category c69;
+#line 7
+category c70;
+#line 7
+category c71;
+#line 7
+category c72;
+#line 7
+category c73;
+#line 7
+category c74;
+#line 7
+category c75;
+#line 7
+category c76;
+#line 7
+category c77;
+#line 7
+category c78;
+#line 7
+category c79;
+#line 7
+category c80;
+#line 7
+category c81;
+#line 7
+category c82;
+#line 7
+category c83;
+#line 7
+category c84;
+#line 7
+category c85;
+#line 7
+category c86;
+#line 7
+category c87;
+#line 7
+category c88;
+#line 7
+category c89;
+#line 7
+category c90;
+#line 7
+category c91;
+#line 7
+category c92;
+#line 7
+category c93;
+#line 7
+category c94;
+#line 7
+category c95;
+#line 7
+category c96;
+#line 7
+category c97;
+#line 7
+category c98;
+#line 7
+category c99;
+#line 7
+category c100;
+#line 7
+category c101;
+#line 7
+category c102;
+#line 7
+category c103;
+#line 7
+category c104;
+#line 7
+category c105;
+#line 7
+category c106;
+#line 7
+category c107;
+#line 7
+category c108;
+#line 7
+category c109;
+#line 7
+category c110;
+#line 7
+category c111;
+#line 7
+category c112;
+#line 7
+category c113;
+#line 7
+category c114;
+#line 7
+category c115;
+#line 7
+category c116;
+#line 7
+category c117;
+#line 7
+category c118;
+#line 7
+category c119;
+#line 7
+category c120;
+#line 7
+category c121;
+#line 7
+category c122;
+#line 7
+category c123;
+#line 7
+category c124;
+#line 7
+category c125;
+#line 7
+category c126;
+#line 7
+category c127;
+#line 7
+category c128;
+#line 7
+category c129;
+#line 7
+category c130;
+#line 7
+category c131;
+#line 7
+category c132;
+#line 7
+category c133;
+#line 7
+category c134;
+#line 7
+category c135;
+#line 7
+category c136;
+#line 7
+category c137;
+#line 7
+category c138;
+#line 7
+category c139;
+#line 7
+category c140;
+#line 7
+category c141;
+#line 7
+category c142;
+#line 7
+category c143;
+#line 7
+category c144;
+#line 7
+category c145;
+#line 7
+category c146;
+#line 7
+category c147;
+#line 7
+category c148;
+#line 7
+category c149;
+#line 7
+category c150;
+#line 7
+category c151;
+#line 7
+category c152;
+#line 7
+category c153;
+#line 7
+category c154;
+#line 7
+category c155;
+#line 7
+category c156;
+#line 7
+category c157;
+#line 7
+category c158;
+#line 7
+category c159;
+#line 7
+category c160;
+#line 7
+category c161;
+#line 7
+category c162;
+#line 7
+category c163;
+#line 7
+category c164;
+#line 7
+category c165;
+#line 7
+category c166;
+#line 7
+category c167;
+#line 7
+category c168;
+#line 7
+category c169;
+#line 7
+category c170;
+#line 7
+category c171;
+#line 7
+category c172;
+#line 7
+category c173;
+#line 7
+category c174;
+#line 7
+category c175;
+#line 7
+category c176;
+#line 7
+category c177;
+#line 7
+category c178;
+#line 7
+category c179;
+#line 7
+category c180;
+#line 7
+category c181;
+#line 7
+category c182;
+#line 7
+category c183;
+#line 7
+category c184;
+#line 7
+category c185;
+#line 7
+category c186;
+#line 7
+category c187;
+#line 7
+category c188;
+#line 7
+category c189;
+#line 7
+category c190;
+#line 7
+category c191;
+#line 7
+category c192;
+#line 7
+category c193;
+#line 7
+category c194;
+#line 7
+category c195;
+#line 7
+category c196;
+#line 7
+category c197;
+#line 7
+category c198;
+#line 7
+category c199;
+#line 7
+category c200;
+#line 7
+category c201;
+#line 7
+category c202;
+#line 7
+category c203;
+#line 7
+category c204;
+#line 7
+category c205;
+#line 7
+category c206;
+#line 7
+category c207;
+#line 7
+category c208;
+#line 7
+category c209;
+#line 7
+category c210;
+#line 7
+category c211;
+#line 7
+category c212;
+#line 7
+category c213;
+#line 7
+category c214;
+#line 7
+category c215;
+#line 7
+category c216;
+#line 7
+category c217;
+#line 7
+category c218;
+#line 7
+category c219;
+#line 7
+category c220;
+#line 7
+category c221;
+#line 7
+category c222;
+#line 7
+category c223;
+#line 7
+category c224;
+#line 7
+category c225;
+#line 7
+category c226;
+#line 7
+category c227;
+#line 7
+category c228;
+#line 7
+category c229;
+#line 7
+category c230;
+#line 7
+category c231;
+#line 7
+category c232;
+#line 7
+category c233;
+#line 7
+category c234;
+#line 7
+category c235;
+#line 7
+category c236;
+#line 7
+category c237;
+#line 7
+category c238;
+#line 7
+category c239;
+#line 7
+category c240;
+#line 7
+category c241;
+#line 7
+category c242;
+#line 7
+category c243;
+#line 7
+category c244;
+#line 7
+category c245;
+#line 7
+category c246;
+#line 7
+category c247;
+#line 7
+category c248;
+#line 7
+category c249;
+#line 7
+category c250;
+#line 7
+category c251;
+#line 7
+category c252;
+#line 7
+category c253;
+#line 7
+category c254;
+#line 7
+category c255;
+#line 7
+category c256;
+#line 7
+category c257;
+#line 7
+category c258;
+#line 7
+category c259;
+#line 7
+category c260;
+#line 7
+category c261;
+#line 7
+category c262;
+#line 7
+category c263;
+#line 7
+category c264;
+#line 7
+category c265;
+#line 7
+category c266;
+#line 7
+category c267;
+#line 7
+category c268;
+#line 7
+category c269;
+#line 7
+category c270;
+#line 7
+category c271;
+#line 7
+category c272;
+#line 7
+category c273;
+#line 7
+category c274;
+#line 7
+category c275;
+#line 7
+category c276;
+#line 7
+category c277;
+#line 7
+category c278;
+#line 7
+category c279;
+#line 7
+category c280;
+#line 7
+category c281;
+#line 7
+category c282;
+#line 7
+category c283;
+#line 7
+category c284;
+#line 7
+category c285;
+#line 7
+category c286;
+#line 7
+category c287;
+#line 7
+category c288;
+#line 7
+category c289;
+#line 7
+category c290;
+#line 7
+category c291;
+#line 7
+category c292;
+#line 7
+category c293;
+#line 7
+category c294;
+#line 7
+category c295;
+#line 7
+category c296;
+#line 7
+category c297;
+#line 7
+category c298;
+#line 7
+category c299;
+#line 7
+category c300;
+#line 7
+category c301;
+#line 7
+category c302;
+#line 7
+category c303;
+#line 7
+category c304;
+#line 7
+category c305;
+#line 7
+category c306;
+#line 7
+category c307;
+#line 7
+category c308;
+#line 7
+category c309;
+#line 7
+category c310;
+#line 7
+category c311;
+#line 7
+category c312;
+#line 7
+category c313;
+#line 7
+category c314;
+#line 7
+category c315;
+#line 7
+category c316;
+#line 7
+category c317;
+#line 7
+category c318;
+#line 7
+category c319;
+#line 7
+category c320;
+#line 7
+category c321;
+#line 7
+category c322;
+#line 7
+category c323;
+#line 7
+category c324;
+#line 7
+category c325;
+#line 7
+category c326;
+#line 7
+category c327;
+#line 7
+category c328;
+#line 7
+category c329;
+#line 7
+category c330;
+#line 7
+category c331;
+#line 7
+category c332;
+#line 7
+category c333;
+#line 7
+category c334;
+#line 7
+category c335;
+#line 7
+category c336;
+#line 7
+category c337;
+#line 7
+category c338;
+#line 7
+category c339;
+#line 7
+category c340;
+#line 7
+category c341;
+#line 7
+category c342;
+#line 7
+category c343;
+#line 7
+category c344;
+#line 7
+category c345;
+#line 7
+category c346;
+#line 7
+category c347;
+#line 7
+category c348;
+#line 7
+category c349;
+#line 7
+category c350;
+#line 7
+category c351;
+#line 7
+category c352;
+#line 7
+category c353;
+#line 7
+category c354;
+#line 7
+category c355;
+#line 7
+category c356;
+#line 7
+category c357;
+#line 7
+category c358;
+#line 7
+category c359;
+#line 7
+category c360;
+#line 7
+category c361;
+#line 7
+category c362;
+#line 7
+category c363;
+#line 7
+category c364;
+#line 7
+category c365;
+#line 7
+category c366;
+#line 7
+category c367;
+#line 7
+category c368;
+#line 7
+category c369;
+#line 7
+category c370;
+#line 7
+category c371;
+#line 7
+category c372;
+#line 7
+category c373;
+#line 7
+category c374;
+#line 7
+category c375;
+#line 7
+category c376;
+#line 7
+category c377;
+#line 7
+category c378;
+#line 7
+category c379;
+#line 7
+category c380;
+#line 7
+category c381;
+#line 7
+category c382;
+#line 7
+category c383;
+#line 7
+category c384;
+#line 7
+category c385;
+#line 7
+category c386;
+#line 7
+category c387;
+#line 7
+category c388;
+#line 7
+category c389;
+#line 7
+category c390;
+#line 7
+category c391;
+#line 7
+category c392;
+#line 7
+category c393;
+#line 7
+category c394;
+#line 7
+category c395;
+#line 7
+category c396;
+#line 7
+category c397;
+#line 7
+category c398;
+#line 7
+category c399;
+#line 7
+category c400;
+#line 7
+category c401;
+#line 7
+category c402;
+#line 7
+category c403;
+#line 7
+category c404;
+#line 7
+category c405;
+#line 7
+category c406;
+#line 7
+category c407;
+#line 7
+category c408;
+#line 7
+category c409;
+#line 7
+category c410;
+#line 7
+category c411;
+#line 7
+category c412;
+#line 7
+category c413;
+#line 7
+category c414;
+#line 7
+category c415;
+#line 7
+category c416;
+#line 7
+category c417;
+#line 7
+category c418;
+#line 7
+category c419;
+#line 7
+category c420;
+#line 7
+category c421;
+#line 7
+category c422;
+#line 7
+category c423;
+#line 7
+category c424;
+#line 7
+category c425;
+#line 7
+category c426;
+#line 7
+category c427;
+#line 7
+category c428;
+#line 7
+category c429;
+#line 7
+category c430;
+#line 7
+category c431;
+#line 7
+category c432;
+#line 7
+category c433;
+#line 7
+category c434;
+#line 7
+category c435;
+#line 7
+category c436;
+#line 7
+category c437;
+#line 7
+category c438;
+#line 7
+category c439;
+#line 7
+category c440;
+#line 7
+category c441;
+#line 7
+category c442;
+#line 7
+category c443;
+#line 7
+category c444;
+#line 7
+category c445;
+#line 7
+category c446;
+#line 7
+category c447;
+#line 7
+category c448;
+#line 7
+category c449;
+#line 7
+category c450;
+#line 7
+category c451;
+#line 7
+category c452;
+#line 7
+category c453;
+#line 7
+category c454;
+#line 7
+category c455;
+#line 7
+category c456;
+#line 7
+category c457;
+#line 7
+category c458;
+#line 7
+category c459;
+#line 7
+category c460;
+#line 7
+category c461;
+#line 7
+category c462;
+#line 7
+category c463;
+#line 7
+category c464;
+#line 7
+category c465;
+#line 7
+category c466;
+#line 7
+category c467;
+#line 7
+category c468;
+#line 7
+category c469;
+#line 7
+category c470;
+#line 7
+category c471;
+#line 7
+category c472;
+#line 7
+category c473;
+#line 7
+category c474;
+#line 7
+category c475;
+#line 7
+category c476;
+#line 7
+category c477;
+#line 7
+category c478;
+#line 7
+category c479;
+#line 7
+category c480;
+#line 7
+category c481;
+#line 7
+category c482;
+#line 7
+category c483;
+#line 7
+category c484;
+#line 7
+category c485;
+#line 7
+category c486;
+#line 7
+category c487;
+#line 7
+category c488;
+#line 7
+category c489;
+#line 7
+category c490;
+#line 7
+category c491;
+#line 7
+category c492;
+#line 7
+category c493;
+#line 7
+category c494;
+#line 7
+category c495;
+#line 7
+category c496;
+#line 7
+category c497;
+#line 7
+category c498;
+#line 7
+category c499;
+#line 7
+category c500;
+#line 7
+category c501;
+#line 7
+category c502;
+#line 7
+category c503;
+#line 7
+category c504;
+#line 7
+category c505;
+#line 7
+category c506;
+#line 7
+category c507;
+#line 7
+category c508;
+#line 7
+category c509;
+#line 7
+category c510;
+#line 7
+category c511;
+#line 7
+category c512;
+#line 7
+category c513;
+#line 7
+category c514;
+#line 7
+category c515;
+#line 7
+category c516;
+#line 7
+category c517;
+#line 7
+category c518;
+#line 7
+category c519;
+#line 7
+category c520;
+#line 7
+category c521;
+#line 7
+category c522;
+#line 7
+category c523;
+#line 7
+category c524;
+#line 7
+category c525;
+#line 7
+category c526;
+#line 7
+category c527;
+#line 7
+category c528;
+#line 7
+category c529;
+#line 7
+category c530;
+#line 7
+category c531;
+#line 7
+category c532;
+#line 7
+category c533;
+#line 7
+category c534;
+#line 7
+category c535;
+#line 7
+category c536;
+#line 7
+category c537;
+#line 7
+category c538;
+#line 7
+category c539;
+#line 7
+category c540;
+#line 7
+category c541;
+#line 7
+category c542;
+#line 7
+category c543;
+#line 7
+category c544;
+#line 7
+category c545;
+#line 7
+category c546;
+#line 7
+category c547;
+#line 7
+category c548;
+#line 7
+category c549;
+#line 7
+category c550;
+#line 7
+category c551;
+#line 7
+category c552;
+#line 7
+category c553;
+#line 7
+category c554;
+#line 7
+category c555;
+#line 7
+category c556;
+#line 7
+category c557;
+#line 7
+category c558;
+#line 7
+category c559;
+#line 7
+category c560;
+#line 7
+category c561;
+#line 7
+category c562;
+#line 7
+category c563;
+#line 7
+category c564;
+#line 7
+category c565;
+#line 7
+category c566;
+#line 7
+category c567;
+#line 7
+category c568;
+#line 7
+category c569;
+#line 7
+category c570;
+#line 7
+category c571;
+#line 7
+category c572;
+#line 7
+category c573;
+#line 7
+category c574;
+#line 7
+category c575;
+#line 7
+category c576;
+#line 7
+category c577;
+#line 7
+category c578;
+#line 7
+category c579;
+#line 7
+category c580;
+#line 7
+category c581;
+#line 7
+category c582;
+#line 7
+category c583;
+#line 7
+category c584;
+#line 7
+category c585;
+#line 7
+category c586;
+#line 7
+category c587;
+#line 7
+category c588;
+#line 7
+category c589;
+#line 7
+category c590;
+#line 7
+category c591;
+#line 7
+category c592;
+#line 7
+category c593;
+#line 7
+category c594;
+#line 7
+category c595;
+#line 7
+category c596;
+#line 7
+category c597;
+#line 7
+category c598;
+#line 7
+category c599;
+#line 7
+category c600;
+#line 7
+category c601;
+#line 7
+category c602;
+#line 7
+category c603;
+#line 7
+category c604;
+#line 7
+category c605;
+#line 7
+category c606;
+#line 7
+category c607;
+#line 7
+category c608;
+#line 7
+category c609;
+#line 7
+category c610;
+#line 7
+category c611;
+#line 7
+category c612;
+#line 7
+category c613;
+#line 7
+category c614;
+#line 7
+category c615;
+#line 7
+category c616;
+#line 7
+category c617;
+#line 7
+category c618;
+#line 7
+category c619;
+#line 7
+category c620;
+#line 7
+category c621;
+#line 7
+category c622;
+#line 7
+category c623;
+#line 7
+category c624;
+#line 7
+category c625;
+#line 7
+category c626;
+#line 7
+category c627;
+#line 7
+category c628;
+#line 7
+category c629;
+#line 7
+category c630;
+#line 7
+category c631;
+#line 7
+category c632;
+#line 7
+category c633;
+#line 7
+category c634;
+#line 7
+category c635;
+#line 7
+category c636;
+#line 7
+category c637;
+#line 7
+category c638;
+#line 7
+category c639;
+#line 7
+category c640;
+#line 7
+category c641;
+#line 7
+category c642;
+#line 7
+category c643;
+#line 7
+category c644;
+#line 7
+category c645;
+#line 7
+category c646;
+#line 7
+category c647;
+#line 7
+category c648;
+#line 7
+category c649;
+#line 7
+category c650;
+#line 7
+category c651;
+#line 7
+category c652;
+#line 7
+category c653;
+#line 7
+category c654;
+#line 7
+category c655;
+#line 7
+category c656;
+#line 7
+category c657;
+#line 7
+category c658;
+#line 7
+category c659;
+#line 7
+category c660;
+#line 7
+category c661;
+#line 7
+category c662;
+#line 7
+category c663;
+#line 7
+category c664;
+#line 7
+category c665;
+#line 7
+category c666;
+#line 7
+category c667;
+#line 7
+category c668;
+#line 7
+category c669;
+#line 7
+category c670;
+#line 7
+category c671;
+#line 7
+category c672;
+#line 7
+category c673;
+#line 7
+category c674;
+#line 7
+category c675;
+#line 7
+category c676;
+#line 7
+category c677;
+#line 7
+category c678;
+#line 7
+category c679;
+#line 7
+category c680;
+#line 7
+category c681;
+#line 7
+category c682;
+#line 7
+category c683;
+#line 7
+category c684;
+#line 7
+category c685;
+#line 7
+category c686;
+#line 7
+category c687;
+#line 7
+category c688;
+#line 7
+category c689;
+#line 7
+category c690;
+#line 7
+category c691;
+#line 7
+category c692;
+#line 7
+category c693;
+#line 7
+category c694;
+#line 7
+category c695;
+#line 7
+category c696;
+#line 7
+category c697;
+#line 7
+category c698;
+#line 7
+category c699;
+#line 7
+category c700;
+#line 7
+category c701;
+#line 7
+category c702;
+#line 7
+category c703;
+#line 7
+category c704;
+#line 7
+category c705;
+#line 7
+category c706;
+#line 7
+category c707;
+#line 7
+category c708;
+#line 7
+category c709;
+#line 7
+category c710;
+#line 7
+category c711;
+#line 7
+category c712;
+#line 7
+category c713;
+#line 7
+category c714;
+#line 7
+category c715;
+#line 7
+category c716;
+#line 7
+category c717;
+#line 7
+category c718;
+#line 7
+category c719;
+#line 7
+category c720;
+#line 7
+category c721;
+#line 7
+category c722;
+#line 7
+category c723;
+#line 7
+category c724;
+#line 7
+category c725;
+#line 7
+category c726;
+#line 7
+category c727;
+#line 7
+category c728;
+#line 7
+category c729;
+#line 7
+category c730;
+#line 7
+category c731;
+#line 7
+category c732;
+#line 7
+category c733;
+#line 7
+category c734;
+#line 7
+category c735;
+#line 7
+category c736;
+#line 7
+category c737;
+#line 7
+category c738;
+#line 7
+category c739;
+#line 7
+category c740;
+#line 7
+category c741;
+#line 7
+category c742;
+#line 7
+category c743;
+#line 7
+category c744;
+#line 7
+category c745;
+#line 7
+category c746;
+#line 7
+category c747;
+#line 7
+category c748;
+#line 7
+category c749;
+#line 7
+category c750;
+#line 7
+category c751;
+#line 7
+category c752;
+#line 7
+category c753;
+#line 7
+category c754;
+#line 7
+category c755;
+#line 7
+category c756;
+#line 7
+category c757;
+#line 7
+category c758;
+#line 7
+category c759;
+#line 7
+category c760;
+#line 7
+category c761;
+#line 7
+category c762;
+#line 7
+category c763;
+#line 7
+category c764;
+#line 7
+category c765;
+#line 7
+category c766;
+#line 7
+category c767;
+#line 7
+category c768;
+#line 7
+category c769;
+#line 7
+category c770;
+#line 7
+category c771;
+#line 7
+category c772;
+#line 7
+category c773;
+#line 7
+category c774;
+#line 7
+category c775;
+#line 7
+category c776;
+#line 7
+category c777;
+#line 7
+category c778;
+#line 7
+category c779;
+#line 7
+category c780;
+#line 7
+category c781;
+#line 7
+category c782;
+#line 7
+category c783;
+#line 7
+category c784;
+#line 7
+category c785;
+#line 7
+category c786;
+#line 7
+category c787;
+#line 7
+category c788;
+#line 7
+category c789;
+#line 7
+category c790;
+#line 7
+category c791;
+#line 7
+category c792;
+#line 7
+category c793;
+#line 7
+category c794;
+#line 7
+category c795;
+#line 7
+category c796;
+#line 7
+category c797;
+#line 7
+category c798;
+#line 7
+category c799;
+#line 7
+category c800;
+#line 7
+category c801;
+#line 7
+category c802;
+#line 7
+category c803;
+#line 7
+category c804;
+#line 7
+category c805;
+#line 7
+category c806;
+#line 7
+category c807;
+#line 7
+category c808;
+#line 7
+category c809;
+#line 7
+category c810;
+#line 7
+category c811;
+#line 7
+category c812;
+#line 7
+category c813;
+#line 7
+category c814;
+#line 7
+category c815;
+#line 7
+category c816;
+#line 7
+category c817;
+#line 7
+category c818;
+#line 7
+category c819;
+#line 7
+category c820;
+#line 7
+category c821;
+#line 7
+category c822;
+#line 7
+category c823;
+#line 7
+category c824;
+#line 7
+category c825;
+#line 7
+category c826;
+#line 7
+category c827;
+#line 7
+category c828;
+#line 7
+category c829;
+#line 7
+category c830;
+#line 7
+category c831;
+#line 7
+category c832;
+#line 7
+category c833;
+#line 7
+category c834;
+#line 7
+category c835;
+#line 7
+category c836;
+#line 7
+category c837;
+#line 7
+category c838;
+#line 7
+category c839;
+#line 7
+category c840;
+#line 7
+category c841;
+#line 7
+category c842;
+#line 7
+category c843;
+#line 7
+category c844;
+#line 7
+category c845;
+#line 7
+category c846;
+#line 7
+category c847;
+#line 7
+category c848;
+#line 7
+category c849;
+#line 7
+category c850;
+#line 7
+category c851;
+#line 7
+category c852;
+#line 7
+category c853;
+#line 7
+category c854;
+#line 7
+category c855;
+#line 7
+category c856;
+#line 7
+category c857;
+#line 7
+category c858;
+#line 7
+category c859;
+#line 7
+category c860;
+#line 7
+category c861;
+#line 7
+category c862;
+#line 7
+category c863;
+#line 7
+category c864;
+#line 7
+category c865;
+#line 7
+category c866;
+#line 7
+category c867;
+#line 7
+category c868;
+#line 7
+category c869;
+#line 7
+category c870;
+#line 7
+category c871;
+#line 7
+category c872;
+#line 7
+category c873;
+#line 7
+category c874;
+#line 7
+category c875;
+#line 7
+category c876;
+#line 7
+category c877;
+#line 7
+category c878;
+#line 7
+category c879;
+#line 7
+category c880;
+#line 7
+category c881;
+#line 7
+category c882;
+#line 7
+category c883;
+#line 7
+category c884;
+#line 7
+category c885;
+#line 7
+category c886;
+#line 7
+category c887;
+#line 7
+category c888;
+#line 7
+category c889;
+#line 7
+category c890;
+#line 7
+category c891;
+#line 7
+category c892;
+#line 7
+category c893;
+#line 7
+category c894;
+#line 7
+category c895;
+#line 7
+category c896;
+#line 7
+category c897;
+#line 7
+category c898;
+#line 7
+category c899;
+#line 7
+category c900;
+#line 7
+category c901;
+#line 7
+category c902;
+#line 7
+category c903;
+#line 7
+category c904;
+#line 7
+category c905;
+#line 7
+category c906;
+#line 7
+category c907;
+#line 7
+category c908;
+#line 7
+category c909;
+#line 7
+category c910;
+#line 7
+category c911;
+#line 7
+category c912;
+#line 7
+category c913;
+#line 7
+category c914;
+#line 7
+category c915;
+#line 7
+category c916;
+#line 7
+category c917;
+#line 7
+category c918;
+#line 7
+category c919;
+#line 7
+category c920;
+#line 7
+category c921;
+#line 7
+category c922;
+#line 7
+category c923;
+#line 7
+category c924;
+#line 7
+category c925;
+#line 7
+category c926;
+#line 7
+category c927;
+#line 7
+category c928;
+#line 7
+category c929;
+#line 7
+category c930;
+#line 7
+category c931;
+#line 7
+category c932;
+#line 7
+category c933;
+#line 7
+category c934;
+#line 7
+category c935;
+#line 7
+category c936;
+#line 7
+category c937;
+#line 7
+category c938;
+#line 7
+category c939;
+#line 7
+category c940;
+#line 7
+category c941;
+#line 7
+category c942;
+#line 7
+category c943;
+#line 7
+category c944;
+#line 7
+category c945;
+#line 7
+category c946;
+#line 7
+category c947;
+#line 7
+category c948;
+#line 7
+category c949;
+#line 7
+category c950;
+#line 7
+category c951;
+#line 7
+category c952;
+#line 7
+category c953;
+#line 7
+category c954;
+#line 7
+category c955;
+#line 7
+category c956;
+#line 7
+category c957;
+#line 7
+category c958;
+#line 7
+category c959;
+#line 7
+category c960;
+#line 7
+category c961;
+#line 7
+category c962;
+#line 7
+category c963;
+#line 7
+category c964;
+#line 7
+category c965;
+#line 7
+category c966;
+#line 7
+category c967;
+#line 7
+category c968;
+#line 7
+category c969;
+#line 7
+category c970;
+#line 7
+category c971;
+#line 7
+category c972;
+#line 7
+category c973;
+#line 7
+category c974;
+#line 7
+category c975;
+#line 7
+category c976;
+#line 7
+category c977;
+#line 7
+category c978;
+#line 7
+category c979;
+#line 7
+category c980;
+#line 7
+category c981;
+#line 7
+category c982;
+#line 7
+category c983;
+#line 7
+category c984;
+#line 7
+category c985;
+#line 7
+category c986;
+#line 7
+category c987;
+#line 7
+category c988;
+#line 7
+category c989;
+#line 7
+category c990;
+#line 7
+category c991;
+#line 7
+category c992;
+#line 7
+category c993;
+#line 7
+category c994;
+#line 7
+category c995;
+#line 7
+category c996;
+#line 7
+category c997;
+#line 7
+category c998;
+#line 7
+category c999;
+#line 7
+category c1000;
+#line 7
+category c1001;
+#line 7
+category c1002;
+#line 7
+category c1003;
+#line 7
+category c1004;
+#line 7
+category c1005;
+#line 7
+category c1006;
+#line 7
+category c1007;
+#line 7
+category c1008;
+#line 7
+category c1009;
+#line 7
+category c1010;
+#line 7
+category c1011;
+#line 7
+category c1012;
+#line 7
+category c1013;
+#line 7
+category c1014;
+#line 7
+category c1015;
+#line 7
+category c1016;
+#line 7
+category c1017;
+#line 7
+category c1018;
+#line 7
+category c1019;
+#line 7
+category c1020;
+#line 7
+category c1021;
+#line 7
+category c1022;
+#line 7
+category c1023;
+#line 7
+
+
+# Generate level definitions for each sensitivity and category.
+level s0:c0.c1023;
+#line 10
+
+#line 1 "system/sepolicy/private/mls"
+#################################################
+# MLS policy constraints
+#
+
+#
+# Process constraints
+#
+
+# Process transition:  Require equivalence unless the subject is trusted.
+mlsconstrain process { transition dyntransition }
+	     ((h1 eq h2 and l1 eq l2) or t1 == mlstrustedsubject);
+
+# Process read operations: No read up unless trusted.
+mlsconstrain process { getsched getsession getpgid getcap getattr ptrace share }
+	     (l1 dom l2 or t1 == mlstrustedsubject);
+
+# Process write operations:  Require equivalence unless trusted.
+mlsconstrain process { sigkill sigstop signal setsched setpgid setcap setrlimit ptrace share }
+	     (l1 eq l2 or t1 == mlstrustedsubject);
+
+#
+# Socket constraints
+#
+
+# Create/relabel operations:  Subject must be equivalent to object unless
+# the subject is trusted.  Sockets inherit the range of their creator.
+mlsconstrain { socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket xdp_socket } { create relabelfrom relabelto }
+	     ((h1 eq h2 and l1 eq l2) or t1 == mlstrustedsubject);
+
+# Datagram send: Sender must be equivalent to the receiver unless one of them
+# is trusted.
+mlsconstrain unix_dgram_socket { sendto }
+	     (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedsubject);
+
+# Stream connect:  Client must be equivalent to server unless one of them
+# is trusted.
+mlsconstrain unix_stream_socket { connectto }
+	     (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedsubject);
+
+#
+# Directory/file constraints
+#
+
+# Create/relabel operations:  Subject must be equivalent to object unless
+# the subject is trusted. Also, files should always be single-level.
+# Do NOT exempt mlstrustedobject types from this constraint.
+mlsconstrain { dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create relabelfrom relabelto }
+	     (l2 eq h2 and (l1 eq l2 or t1 == mlstrustedsubject));
+
+#
+# Userfaultfd constraints
+#
+# To enforce that anonymous inodes are self contained in the application's process.
+mlsconstrain anon_inode { ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute open execmod }
+	     (l1 eq l2);
+
+#
+# Constraints for app data files only.
+#
+
+# Only constrain open, not read/write, so already open fds can be used.
+# Also constrain other forms of manipulation, e.g. chmod/chown, unlink, rename, etc.
+# Subject must dominate object unless the subject is trusted.
+mlsconstrain dir { open search getattr setattr rename add_name remove_name reparent rmdir }
+	     (t2 != app_data_file_type or l1 dom l2 or t1 == mlstrustedsubject);
+mlsconstrain { file sock_file } { open setattr unlink link rename }
+	     ( (t2 != app_data_file_type and t2 != appdomain_tmpfs) or l1 dom l2 or t1 == mlstrustedsubject);
+
+# For symlinks in app data files, require equivalence in order to manipulate or follow (read).
+mlsconstrain { lnk_file } { open setattr unlink link rename read }
+	     ( (t2 != app_data_file_type or t2 == privapp_data_file) or l1 eq l2 or t1 == mlstrustedsubject);
+# But for priv_app_data_file, continue to use dominance for symlinks because dynamite relies on this.
+# TODO: Migrate to equivalence when it's no longer needed.
+mlsconstrain { lnk_file } { open setattr unlink link rename read }
+	     ( (t2 != privapp_data_file and t2 != appdomain_tmpfs) or l1 dom l2 or t1 == mlstrustedsubject);
+
+#
+# Constraints for file types other than app data files.
+#
+
+# Read operations: Subject must dominate object unless the subject
+# or the object is trusted.
+mlsconstrain dir { read getattr search }
+	     (t2 == app_data_file_type or l1 dom l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject
+	     or (t1 == mlsvendorcompat and (t2 == system_data_file or t2 == user_profile_root_file) ) );
+
+mlsconstrain { file lnk_file sock_file chr_file blk_file } { read getattr execute }
+	     (t2 == app_data_file_type or t2 == appdomain_tmpfs or l1 dom l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject);
+
+# Write operations: Subject must be equivalent to the object unless the
+# subject or the object is trusted.
+mlsconstrain dir { write setattr rename add_name remove_name reparent rmdir }
+	     (t2 == app_data_file_type or l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject);
+
+mlsconstrain { file lnk_file sock_file chr_file blk_file } { write setattr append unlink link rename }
+	     (t2 == app_data_file_type or t2 == appdomain_tmpfs or l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject);
+
+# Special case for FIFOs.
+# These can be unnamed pipes, in which case they will be labeled with the
+# creating process' label. Thus we also have an exemption when the "object"
+# is a domain type, so that processes can communicate via unnamed pipes
+# passed by binder or local socket IPC.
+mlsconstrain fifo_file { read getattr }
+	     (l1 dom l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject or t2 == domain);
+
+mlsconstrain fifo_file { write setattr append unlink link rename }
+	     (l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedobject or t2 == domain);
+
+#
+# Binder IPC constraints
+#
+# Presently commented out, as apps are expected to call one another.
+# This would only make sense if apps were assigned categories
+# based on allowable communications rather than per-app categories.
+#mlsconstrain binder call
+#	(l1 eq l2 or t1 == mlstrustedsubject or t2 == mlstrustedsubject);
+#line 1 "system/sepolicy/private/policy_capabilities"
+# Enable new networking controls.
+policycap network_peer_controls;
+
+# Enable open permission check.
+policycap open_perms;
+
+# Enable separate security classes for
+# all network address families previously
+# mapped to the socket class and for
+# ICMP and SCTP sockets previously mapped
+# to the rawip_socket class.
+policycap extended_socket_class;
+
+# Enable NoNewPrivileges support.  Requires libsepol 2.7+
+# and kernel 4.14 (estimated).
+#
+# Checks enabled;
+# process2: nnp_transition, nosuid_transition
+#
+policycap nnp_nosuid_transition;
+#line 1 "system/sepolicy/flagging/te_macros"
+####################################
+# is_flag_enabled(flag, rules)
+# SELinux rules which apply only if given feature is turned on
+
+
+####################################
+# is_flag_disabled(flag, rules)
+# SELinux rules which apply only if given feature is turned off
+
+#line 1 "system/sepolicy/public/te_macros"
+#####################################
+# domain_trans(olddomain, type, newdomain)
+# Allow a transition from olddomain to newdomain
+# upon executing a file labeled with type.
+# This only allows the transition; it does not
+# cause it to occur automatically - use domain_auto_trans
+# if that is what you want.
+#
+#line 21
+
+
+#####################################
+# domain_auto_trans(olddomain, type, newdomain)
+# Automatically transition from olddomain to newdomain
+# upon executing a file labeled with type.
+#
+#line 33
+
+
+#####################################
+# file_type_trans(domain, dir_type, file_type)
+# Allow domain to create a file labeled file_type in a
+# directory labeled dir_type.
+# This only allows the transition; it does not
+# cause it to occur automatically - use file_type_auto_trans
+# if that is what you want.
+#
+#line 49
+
+
+#####################################
+# file_type_auto_trans(domain, dir_type, file_type)
+# Automatically label new files with file_type when
+# they are created by domain in directories labeled dir_type.
+#
+#line 62
+
+
+#####################################
+# r_dir_file(domain, type)
+# Allow the specified domain to read directories, files
+# and symbolic links of the specified type.
+#line 71
+
+
+#####################################
+# tmpfs_domain(domain)
+# Allow access to a unique type for this domain when creating tmpfs / ashmem files.
+#line 79
+
+
+# pdx macros for IPC. pdx is a high-level name which contains transport-specific
+# rules from underlying transport (e.g. UDS-based implementation).
+
+#####################################
+# pdx_service_attributes(service)
+# Defines type attribute used to identify various service-related types.
+#line 92
+
+
+#####################################
+# pdx_service_socket_types(service, endpoint_dir_t)
+# Define types for endpoint and channel sockets.
+#line 105
+
+
+#####################################
+# pdx_server(server_domain, service)
+#line 124
+
+
+#####################################
+# pdx_connect(client, service)
+#line 134
+
+
+#####################################
+# pdx_use(client, service)
+#line 149
+
+
+#####################################
+# pdx_client(client, service)
+#line 156
+
+
+#####################################
+# init_daemon_domain(domain)
+# Set up a transition from init to the daemon domain
+# upon executing its binary.
+#line 164
+
+
+####################################
+# userfaultfd_use(domain)
+# Allow domain to create/use userfaultfd.
+#line 179
+
+
+####################################
+# virtualizationservice_use(domain)
+# Allow domain to create and communicate with a virtual machine using
+# virtualizationservice and virtualizationmanager.
+#line 204
+
+
+#####################################
+# app_domain(domain)
+# Allow a base set of permissions required for all apps.
+#line 226
+
+
+#####################################
+# untrusted_app_domain(domain)
+# Allow a base set of permissions required for all untrusted apps.
+#line 233
+
+
+#####################################
+# isolated_app_domain(domain)
+# Allow a base set of permissions required for all isolated apps.
+#line 240
+
+
+#####################################
+# net_domain(domain)
+# Allow a base set of permissions required for network access.
+#line 247
+
+
+#####################################
+# bluetooth_domain(domain)
+# Allow a base set of permissions required for bluetooth access.
+#line 254
+
+
+#####################################
+# hal_attribute(hal_name)
+# Add an attribute for hal implementations along with necessary
+# restrictions.
+#line 276
+
+
+#####################################
+# hal_server_domain(domain, hal_type)
+# Allow a base set of permissions required for a domain to offer a
+# HAL implementation of the specified type over HwBinder.
+#
+# For example, default implementation of Foo HAL:
+#   type hal_foo_default, domain;
+#   hal_server_domain(hal_foo_default, hal_foo)
+#
+#line 291
+
+
+#####################################
+# hal_client_domain(domain, hal_type)
+# Allow a base set of permissions required for a domain to be a
+# client of a HAL of the specified type.
+#
+# For example, make some_domain a client of Foo HAL:
+#   hal_client_domain(some_domain, hal_foo)
+#
+#line 315
+
+
+#####################################
+# passthrough_hal_client_domain(domain, hal_type)
+# Allow a base set of permissions required for a domain to be a
+# client of a passthrough HAL of the specified type.
+#
+# For example, make some_domain a client of passthrough Foo HAL:
+#   passthrough_hal_client_domain(some_domain, hal_foo)
+#
+#line 333
+
+
+#####################################
+# unix_socket_connect(clientdomain, socket, serverdomain)
+# Allow a local socket connection from clientdomain via
+# socket to serverdomain.
+#
+# Note: If you see denial records that distill to the
+# following allow rules:
+# allow clientdomain property_socket:sock_file write;
+# allow clientdomain init:unix_stream_socket connectto;
+# allow clientdomain something_prop:property_service set;
+#
+# This sequence is indicative of attempting to set a property.
+# use set_prop(sourcedomain, targetproperty)
+#
+#line 352
+
+
+#####################################
+# set_prop(sourcedomain, targetproperty)
+# Allows source domain to set the
+# targetproperty.
+#
+#line 363
+
+
+#####################################
+# get_prop(sourcedomain, targetproperty)
+# Allows source domain to read the
+# targetproperty.
+#
+#line 372
+
+
+#####################################
+# unix_socket_send(clientdomain, socket, serverdomain)
+# Allow a local socket send from clientdomain via
+# socket to serverdomain.
+#line 381
+
+
+#####################################
+# binder_use(domain)
+# Allow domain to use Binder IPC.
+#line 397
+
+
+#####################################
+# hwbinder_use(domain)
+# Allow domain to use HwBinder IPC.
+#line 413
+
+
+#####################################
+# vndbinder_use(domain)
+# Allow domain to use Binder IPC.
+#line 427
+
+
+#####################################
+# binder_call(clientdomain, serverdomain)
+# Allow clientdomain to perform binder IPC to serverdomain.
+#line 439
+
+
+#####################################
+# binder_service(domain)
+# Deprecated. Consider granting the exact permissions required by your service.
+#line 446
+
+
+#####################################
+# wakelock_use(domain)
+# Allow domain to manage wake locks
+#line 468
+
+
+#####################################
+# selinux_check_access(domain)
+# Allow domain to check SELinux permissions via selinuxfs.
+#line 478
+
+
+#####################################
+# selinux_check_context(domain)
+# Allow domain to check SELinux contexts via selinuxfs.
+#line 487
+
+
+#####################################
+# create_pty(domain)
+# Allow domain to create and use a pty, isolated from any other domain ptys.
+#line 506
+
+
+#####################################
+# Non system_app application set
+#
+
+
+#####################################
+# Recovery only
+# SELinux rules which apply only to recovery mode
+#
+
+
+#####################################
+# Not recovery
+# SELinux rules which apply only to non-recovery (normal) mode
+#
+
+
+#####################################
+# Full TREBLE only
+# SELinux rules which apply only to full TREBLE devices
+#
+#line 534
+
+
+#####################################
+# Not full TREBLE
+# SELinux rules which apply only to devices which are not full TREBLE devices
+#
+
+
+#####################################
+# enforce_debugfs_restriction
+# SELinux rules which apply to devices that enable debugfs restrictions.
+# The keyword "cts" is used to insert markers to only CTS test the neverallows
+# added by the macro for S-launch devices and newer.
+#line 552
+
+
+#####################################
+# no_debugfs_restriction
+# SELinux rules which apply to devices that do not have debugfs restrictions in non-user builds.
+
+
+#####################################
+# Compatible property only
+# SELinux rules which apply only to devices with compatible property
+#
+#line 568
+
+
+#####################################
+# Not compatible property
+# SELinux rules which apply only to devices without compatible property
+#
+
+
+#####################################
+# Userdebug or eng builds
+# SELinux rules which apply only to userdebug or eng builds
+#
+
+
+#####################################
+# asan builds
+# SELinux rules which apply only to asan builds
+#
+
+
+#####################################
+# native coverage builds
+# SELinux rules which apply only to builds with native coverage
+#
+
+
+#####################################
+# Build-time-only test
+# SELinux rules which are verified during build, but not as part of *TS testing.
+#
+
+
+####################################
+# Fallback crash handling for processes that can't exec crash_dump (e.g. because of seccomp).
+#
+#line 618
+
+
+#####################################
+# WITH_DEXPREOPT builds
+# SELinux rules which apply only when pre-opting.
+#
+
+
+#####################################
+# write_logd(domain)
+# Ability to write to android log
+# daemon via sockets
+#line 633
+
+
+#####################################
+# read_logd(domain)
+# Ability to run logcat and read from android
+# log daemon via sockets
+#line 642
+
+
+#####################################
+# read_runtime_log_tags(domain)
+# ability to directly map the runtime event log tags
+#line 649
+
+
+#####################################
+# control_logd(domain)
+# Ability to control
+# android log daemon via sockets
+#line 659
+
+
+#####################################
+# use_keystore(domain)
+# Ability to use keystore.
+# Keystore is requires the following permissions
+# to call getpidcon.
+#line 675
+
+
+#####################################
+# use_credstore(domain)
+# Ability to use credstore.
+#line 687
+
+
+###########################################
+# use_drmservice(domain)
+# Ability to use DrmService which requires
+# DrmService to call getpidcon.
+#line 697
+
+
+###########################################
+# add_service(domain, service)
+# Ability for domain to add a service to service_manager
+# and find it. It also creates a neverallow preventing
+# others from adding it.
+#line 713
+
+
+###########################################
+# add_hwservice(domain, service)
+# Ability for domain to add a service to hwservice_manager
+# and find it. It also creates a neverallow preventing
+# others from adding it.
+#line 724
+
+
+###########################################
+# hal_attribute_hwservice(attribute, service)
+# Ability for domain to get a service to hwservice_manager
+# and find it. It also creates a neverallow preventing
+# others from adding it.
+#
+# Used to pair hal_foo_client with hal_foo_hwservice
+#line 743
+
+
+###########################################
+# hal_attribute_service(attribute, service)
+# Ability for domain to get a service to service_manager
+# and find it. It also creates a neverallow preventing
+# others from adding it.
+#
+# Used to pair hal_foo_client with hal_foo_service
+#line 771
+
+
+###################################
+# can_profile_heap(domain)
+# Allow processes within the domain to have their heap profiled by central
+# heapprofd.
+#line 801
+
+
+###################################
+# never_profile_heap(domain)
+# Opt out of heap profiling by heapprofd.
+#line 809
+
+
+###################################
+# can_profile_perf(domain)
+# Allow processes within the domain to be profiled, and have their stacks
+# sampled, by traced_perf.
+#line 829
+
+
+###################################
+# never_profile_perf(domain)
+# Opt out of profiling by traced_perf.
+#line 837
+
+
+###################################
+# perfetto_producer(domain)
+# Allow processes within the domain to write data to Perfetto.
+# When applying this macro, you might need to also allow traced to use the
+# producer tmpfs domain, if the producer will be the one creating the shared
+# memory.
+#line 854
+
+
+###########################################
+# dump_hal(hal_type)
+# Ability to dump the hal debug info
+#
+#line 864
+
+
+#####################################
+# treble_sysprop_neverallow(rules)
+# SELinux neverallow rules which enforces the accessibility of each property
+# outside the owner.
+#
+# For devices launching with R or later, exported properties must be explicitly marked as
+# "restricted" or "public", depending on the accessibility outside the owner.
+# For devices launching with Q or eariler, this neverallow rules can be relaxed with defining
+# BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW := true on BoardConfig.mk.
+# See {partition}_{accessibility}_prop macros below.
+#
+# CTS uses these rules only for devices launching with R or later.
+#
+# TODO(b/131162102): deprecate BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW
+#
+#line 886
+
+
+#####################################
+# enforce_sysprop_owner(rules)
+# SELinux neverallow rules which enforces the owner of each property.
+#
+# For devices launching with S or later, all properties must be explicitly marked as one of:
+# system_property_type, vendor_property_type, or product_property_type.
+# For devices launching with R or eariler, this neverallow rules can be relaxed with defining
+# BUILD_BROKEN_ENFORCE_SYSPROP_OWNER := true on BoardConfig.mk.
+# See {partition}_{accessibility}_prop macros below.
+#
+# CTS uses these ules only for devices launching with S or later.
+#
+#line 905
+
+
+###########################################
+# define_prop(name, owner, scope)
+# Define a property with given owner and scope
+#
+#line 913
+
+
+###########################################
+# system_internal_prop(name)
+# Define a /system-owned property used only in /system
+# For devices launching with Q or eariler, this restriction can be relaxed with
+# BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW := true
+#
+#line 926
+
+
+###########################################
+# system_restricted_prop(name)
+# Define a /system-owned property which can't be written outside /system
+# For devices launching with Q or eariler, this restriction can be relaxed with
+# BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW := true
+#
+#line 939
+
+
+###########################################
+# system_public_prop(name)
+# Define a /system-owned property with no restrictions
+#
+
+
+###########################################
+# system_vendor_config_prop(name)
+# Define a /system-owned property which can only be written by vendor_init
+# This is a macro for vendor-specific configuration properties which is meant
+# to be set once from vendor_init.
+#
+#line 957
+
+
+###########################################
+# product_internal_prop(name)
+# Define a /product-owned property used only in /product
+# For devices launching with Q or eariler, this restriction can be relaxed with
+# BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW := true
+#
+#line 970
+
+
+###########################################
+# product_restricted_prop(name)
+# Define a /product-owned property which can't be written outside /product
+# For devices launching with Q or eariler, this restriction can be relaxed with
+# BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW := true
+#
+#line 983
+
+
+###########################################
+# product_public_prop(name)
+# Define a /product-owned property with no restrictions
+#
+
+
+###########################################
+# vendor_internal_prop(name)
+# Define a /vendor-owned property used only in /vendor
+# For devices launching with Q or eariler, this restriction can be relaxed with
+# BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW := true
+#
+#line 1003
+
+
+###########################################
+# vendor_restricted_prop(name)
+# Define a /vendor-owned property which can't be written outside /vendor
+# For devices launching with Q or eariler, this restriction can be relaxed with
+# BUILD_BROKEN_TREBLE_SYSPROP_NEVERALLOW := true
+#
+#line 1017
+
+
+###########################################
+# vendor_public_prop(name)
+# Define a /vendor-owned property with no restrictions
+#
+
+
+#####################################
+# read_fstab(domain)
+# Ability to call ReadDefaultFstab() and ReadFstabFromFile().
+#
+#line 1033
+
+
+######################################
+# use_bootstrap_libs(domain)
+# Allow domain to use bootstrap bionic libraries in system/lib[64]/bootstrap
+#line 1041
+
+
+######################################
+# use_apex_info(domain)
+# Allow access to apex information
+#line 1050
+
+
+####################################
+# io_uring_use(domain)
+# Allow domain to create/use io_uring.
+#line 1068
+
+#line 1 "system/sepolicy/public/ioctl_defines"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#line 1 "system/sepolicy/public/ioctl_macros"
+# socket ioctls allowed to unprivileged apps
+#line 12
+
+
+# socket ioctls never allowed to unprivileged apps
+#line 42
+
+
+# commonly used ioctls on unix sockets
+#line 47
+
+
+# commonly used TTY ioctls
+# merge with unpriv_unix_sock_ioctls?
+#line 54
+
+
+# point to point ioctls
+#line 68
+
+
+# unprivileged binder ioctls
+#line 77
+
+#line 1 "system/sepolicy/public/attributes"
+######################################
+# Attribute declarations
+#
+
+# All types used for devices.
+# On change, update CHECK_FC_ASSERT_ATTRS
+# in tools/checkfc.c
+attribute dev_type;
+
+# Attribute for all bpf filesystem subtypes.
+attribute bpffs_type;
+
+# All types used for processes.
+attribute domain;
+
+# All types used for filesystems.
+# On change, update CHECK_FC_ASSERT_ATTRS
+# definition in tools/checkfc.c.
+attribute fs_type;
+
+# All types used for context= mounts.
+attribute contextmount_type;
+
+# All types referencing a FUSE filesystem.
+# When mounting a new FUSE filesystem, the fscontext= option should be used to
+# set a domain-specific type with this attribute. See app_fusefs for an
+# example.
+attribute fusefs_type;
+
+# All types used for files that can exist on a labeled fs.
+# Do not use for pseudo file types.
+# On change, update CHECK_FC_ASSERT_ATTRS
+# definition in tools/checkfc.c.
+attribute file_type;
+
+# All types used for domain entry points.
+attribute exec_type;
+
+# All types used for /data files.
+attribute data_file_type;
+expandattribute data_file_type false;
+# All types in /data, not in /data/vendor
+attribute core_data_file_type;
+expandattribute core_data_file_type false;
+
+# All types used for app private data files in seapp_contexts.
+# Such types should not be applied to any other files.
+attribute app_data_file_type;
+expandattribute app_data_file_type false;
+
+# All types in /system
+attribute system_file_type;
+
+# All types in /system_dlkm
+attribute system_dlkm_file_type;
+
+# All types in /vendor
+attribute vendor_file_type;
+
+# All types used for procfs files.
+attribute proc_type;
+expandattribute proc_type false;
+
+# Types in /proc/net, excluding qtaguid types.
+# TODO(b/9496886) Lock down access to /proc/net.
+# This attribute is used to audit access to proc_net. it is temporary and will
+# be removed.
+attribute proc_net_type;
+expandattribute proc_net_type true;
+
+# All types used for sysfs files.
+attribute sysfs_type;
+
+# All types use for debugfs files.
+attribute debugfs_type;
+
+# All types used for tracefs files.
+attribute tracefs_type;
+
+# Attribute used for all sdcards
+attribute sdcard_type;
+
+# All types used for nodes/hosts.
+attribute node_type;
+
+# All types used for network interfaces.
+attribute netif_type;
+
+# All types used for network ports.
+attribute port_type;
+
+# All types used for property service
+# On change, update CHECK_PC_ASSERT_ATTRS
+# definition in tools/checkfc.c.
+attribute property_type;
+
+# All properties defined in core SELinux policy. Should not be
+# used by device specific properties
+attribute core_property_type;
+
+# All properties used to configure log filtering.
+attribute log_property_type;
+
+# All properties that are not specific to device but are added from
+# outside of AOSP. (e.g. OEM-specific properties)
+# These properties are not accessible from device-specific domains
+attribute extended_core_property_type;
+
+# Properties used for representing ownership. All properties should have one
+# of: system_property_type, product_property_type, or vendor_property_type.
+
+# All properties defined by /system.
+attribute system_property_type;
+expandattribute system_property_type false;
+
+# All /system-defined properties used only in /system.
+attribute system_internal_property_type;
+expandattribute system_internal_property_type false;
+
+# All /system-defined properties which can't be written outside /system.
+attribute system_restricted_property_type;
+expandattribute system_restricted_property_type false;
+
+# All /system-defined properties with no restrictions.
+attribute system_public_property_type;
+expandattribute system_public_property_type false;
+
+# All keystore2_key labels.
+attribute keystore2_key_type;
+
+# All properties defined by /product.
+# Currently there are no enforcements between /system and /product, so for now
+# /product attributes are just replaced to /system attributes.
+
+
+
+
+
+# All properties defined by /vendor.
+attribute vendor_property_type;
+expandattribute vendor_property_type false;
+
+# All /vendor-defined properties used only in /vendor.
+attribute vendor_internal_property_type;
+expandattribute vendor_internal_property_type false;
+
+# All /vendor-defined properties which can't be written outside /vendor.
+attribute vendor_restricted_property_type;
+expandattribute vendor_restricted_property_type false;
+
+# All /vendor-defined properties with no restrictions.
+attribute vendor_public_property_type;
+expandattribute vendor_public_property_type false;
+
+# All service_manager types created by system_server
+attribute system_server_service;
+
+# services which should be available to all but isolated apps
+attribute app_api_service;
+
+# services which should be available to all ephemeral apps
+attribute ephemeral_app_api_service;
+
+# services which export only system_api
+attribute system_api_service;
+
+# services which are explicitly disallowed for untrusted apps to access
+attribute protected_service;
+
+# All types used for services managed by servicemanager.
+# On change, update CHECK_SC_ASSERT_ATTRS
+# definition in tools/checkfc.c.
+attribute service_manager_type;
+
+# All types used for services managed by hwservicemanager
+attribute hwservice_manager_type;
+
+# All HwBinder services guaranteed to be passthrough. These services always run
+# in the process of their clients, and thus operate with the same access as
+# their clients.
+attribute same_process_hwservice;
+
+# All HwBinder services guaranteed to be offered only by core domain components
+attribute coredomain_hwservice;
+
+# All HwBinder services that untrusted apps can't directly access
+attribute protected_hwservice;
+
+# All types used for services managed by vndservicemanager
+attribute vndservice_manager_type;
+
+# All services declared as part of an HAL
+attribute hal_service_type;
+
+# All domains that can override MLS restrictions.
+# i.e. processes that can read up and write down.
+attribute mlstrustedsubject;
+
+# All types that can override MLS restrictions.
+# i.e. files that can be read by lower and written by higher
+attribute mlstrustedobject;
+
+# All domains used for apps.
+attribute appdomain;
+
+# All third party apps (except isolated_app and ephemeral_app)
+attribute untrusted_app_all;
+
+# All apps with UID between AID_ISOLATED_START (99000) and AID_ISOLATED_END (99999).
+attribute isolated_app_all;
+
+# All service types that would be allowed for isolated_compute_app.
+attribute isolated_compute_allowed_service;
+
+# All device types that would be allowed for isolated_compute_app.
+attribute isolated_compute_allowed_device;
+
+# All domains used for apps with network access.
+attribute netdomain;
+
+# All domains used for apps with bluetooth access.
+attribute bluetoothdomain;
+
+# Specific domains that expose a binder service.
+# Deprecated, consider granting the exact permissions required by your service.
+attribute binderservicedomain;
+
+# All domains which have BPF access.
+attribute bpfdomain;
+expandattribute bpfdomain false;
+
+# update_engine related domains that need to apply an update and run
+# postinstall. This includes the background daemon and the sideload tool from
+# recovery for A/B devices.
+attribute update_engine_common;
+
+# All core domains (as opposed to vendor/device-specific domains)
+attribute coredomain;
+
+# All vendor hwservice.
+attribute vendor_hwservice_type;
+
+# All socket devices owned by core domain components
+attribute coredomain_socket;
+expandattribute coredomain_socket false;
+
+# All vendor domains which violate the requirement of not using sockets for
+# communicating with core components
+# TODO(b/36577153): Remove this once there are no violations
+attribute socket_between_core_and_vendor_violators;
+expandattribute socket_between_core_and_vendor_violators false;
+
+# All vendor domains which violate the requirement of not executing
+# system processes
+# TODO(b/36463595)
+attribute vendor_executes_system_violators;
+expandattribute vendor_executes_system_violators false;
+
+# All domains which violate the requirement of not sharing files by path
+# between between vendor and core domains.
+# TODO(b/34980020)
+attribute data_between_core_and_vendor_violators;
+expandattribute data_between_core_and_vendor_violators false;
+
+# All system domains which violate the requirement of not executing vendor
+# binaries/libraries.
+# TODO(b/62041836)
+attribute system_executes_vendor_violators;
+expandattribute system_executes_vendor_violators false;
+
+# All system domains which violate the requirement of not writing vendor
+# properties.
+# TODO(b/78598545): Remove this once there are no violations
+attribute system_writes_vendor_properties_violators;
+expandattribute system_writes_vendor_properties_violators false;
+
+# All system domains which violate the requirement of not writing to
+# /mnt/vendor/*. Must not be used on devices launched with P or later.
+attribute system_writes_mnt_vendor_violators;
+expandattribute system_writes_mnt_vendor_violators false;
+
+# hwservices that are accessible from untrusted applications
+# WARNING: Use of this attribute should be avoided unless
+# absolutely necessary.  It is a temporary allowance to aid the
+# transition to treble and will be removed in a future platform
+# version, requiring all hwservices that are labeled with this
+# attribute to be submitted to AOSP in order to maintain their
+# app-visibility.
+attribute untrusted_app_visible_hwservice_violators;
+expandattribute untrusted_app_visible_hwservice_violators false;
+
+# halserver domains that are accessible to untrusted applications.  These
+# domains are typically those hosting  hwservices attributed by the
+# untrusted_app_visible_hwservice_violators.
+# WARNING: Use of this attribute should be avoided unless absolutely necessary.
+# It is a temporary allowance to aid the transition to treble and will be
+# removed in the future platform version, requiring all halserver domains that
+# are labeled with this attribute to be submitted to AOSP in order to maintain
+# their app-visibility.
+attribute untrusted_app_visible_halserver_violators;
+expandattribute untrusted_app_visible_halserver_violators false;
+
+# PDX services
+attribute pdx_endpoint_dir_type;
+attribute pdx_endpoint_socket_type;
+expandattribute pdx_endpoint_socket_type false;
+attribute pdx_channel_socket_type;
+expandattribute pdx_channel_socket_type false;
+
+
+#line 310
+attribute pdx_display_client_endpoint_dir_type;
+#line 310
+attribute pdx_display_client_endpoint_socket_type;
+#line 310
+attribute pdx_display_client_channel_socket_type;
+#line 310
+attribute pdx_display_client_server_type;
+#line 310
+
+
+#line 311
+attribute pdx_display_manager_endpoint_dir_type;
+#line 311
+attribute pdx_display_manager_endpoint_socket_type;
+#line 311
+attribute pdx_display_manager_channel_socket_type;
+#line 311
+attribute pdx_display_manager_server_type;
+#line 311
+
+
+#line 312
+attribute pdx_display_screenshot_endpoint_dir_type;
+#line 312
+attribute pdx_display_screenshot_endpoint_socket_type;
+#line 312
+attribute pdx_display_screenshot_channel_socket_type;
+#line 312
+attribute pdx_display_screenshot_server_type;
+#line 312
+
+
+#line 313
+attribute pdx_display_vsync_endpoint_dir_type;
+#line 313
+attribute pdx_display_vsync_endpoint_socket_type;
+#line 313
+attribute pdx_display_vsync_channel_socket_type;
+#line 313
+attribute pdx_display_vsync_server_type;
+#line 313
+
+
+#line 314
+attribute pdx_performance_client_endpoint_dir_type;
+#line 314
+attribute pdx_performance_client_endpoint_socket_type;
+#line 314
+attribute pdx_performance_client_channel_socket_type;
+#line 314
+attribute pdx_performance_client_server_type;
+#line 314
+
+
+#line 315
+attribute pdx_bufferhub_client_endpoint_dir_type;
+#line 315
+attribute pdx_bufferhub_client_endpoint_socket_type;
+#line 315
+attribute pdx_bufferhub_client_channel_socket_type;
+#line 315
+attribute pdx_bufferhub_client_server_type;
+#line 315
+
+
+# All HAL servers
+attribute halserverdomain;
+# All HAL clients
+attribute halclientdomain;
+expandattribute halclientdomain true;
+
+# Exempt for halserverdomain to access sockets. Only builds for automotive
+# device types are allowed to use this attribute (enforced by CTS).
+# Unlike phone, in a car many modules are external from Android perspective and
+# HALs should be able to communicate with those devices through sockets.
+attribute hal_automotive_socket_exemption;
+
+# HALs
+
+#line 330
+attribute hal_allocator;
+#line 330
+expandattribute hal_allocator true;
+#line 330
+attribute hal_allocator_client;
+#line 330
+expandattribute hal_allocator_client true;
+#line 330
+attribute hal_allocator_server;
+#line 330
+expandattribute hal_allocator_server false;
+#line 330
+
+#line 330
+neverallow { hal_allocator_server -halserverdomain } domain:process fork;
+#line 330
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 330
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 330
+# verified by CTS since these attributes are already expanded by that time.
+#line 330
+
+#line 330
+;
+
+#line 331
+attribute hal_atrace;
+#line 331
+expandattribute hal_atrace true;
+#line 331
+attribute hal_atrace_client;
+#line 331
+expandattribute hal_atrace_client true;
+#line 331
+attribute hal_atrace_server;
+#line 331
+expandattribute hal_atrace_server false;
+#line 331
+
+#line 331
+neverallow { hal_atrace_server -halserverdomain } domain:process fork;
+#line 331
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 331
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 331
+# verified by CTS since these attributes are already expanded by that time.
+#line 331
+
+#line 331
+;
+
+#line 332
+attribute hal_audio;
+#line 332
+expandattribute hal_audio true;
+#line 332
+attribute hal_audio_client;
+#line 332
+expandattribute hal_audio_client true;
+#line 332
+attribute hal_audio_server;
+#line 332
+expandattribute hal_audio_server false;
+#line 332
+
+#line 332
+neverallow { hal_audio_server -halserverdomain } domain:process fork;
+#line 332
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 332
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 332
+# verified by CTS since these attributes are already expanded by that time.
+#line 332
+
+#line 332
+;
+
+#line 333
+attribute hal_audiocontrol;
+#line 333
+expandattribute hal_audiocontrol true;
+#line 333
+attribute hal_audiocontrol_client;
+#line 333
+expandattribute hal_audiocontrol_client true;
+#line 333
+attribute hal_audiocontrol_server;
+#line 333
+expandattribute hal_audiocontrol_server false;
+#line 333
+
+#line 333
+neverallow { hal_audiocontrol_server -halserverdomain } domain:process fork;
+#line 333
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 333
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 333
+# verified by CTS since these attributes are already expanded by that time.
+#line 333
+
+#line 333
+;
+
+#line 334
+attribute hal_authgraph;
+#line 334
+expandattribute hal_authgraph true;
+#line 334
+attribute hal_authgraph_client;
+#line 334
+expandattribute hal_authgraph_client true;
+#line 334
+attribute hal_authgraph_server;
+#line 334
+expandattribute hal_authgraph_server false;
+#line 334
+
+#line 334
+neverallow { hal_authgraph_server -halserverdomain } domain:process fork;
+#line 334
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 334
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 334
+# verified by CTS since these attributes are already expanded by that time.
+#line 334
+
+#line 334
+;
+
+#line 335
+attribute hal_authsecret;
+#line 335
+expandattribute hal_authsecret true;
+#line 335
+attribute hal_authsecret_client;
+#line 335
+expandattribute hal_authsecret_client true;
+#line 335
+attribute hal_authsecret_server;
+#line 335
+expandattribute hal_authsecret_server false;
+#line 335
+
+#line 335
+neverallow { hal_authsecret_server -halserverdomain } domain:process fork;
+#line 335
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 335
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 335
+# verified by CTS since these attributes are already expanded by that time.
+#line 335
+
+#line 335
+;
+
+#line 336
+attribute hal_bluetooth;
+#line 336
+expandattribute hal_bluetooth true;
+#line 336
+attribute hal_bluetooth_client;
+#line 336
+expandattribute hal_bluetooth_client true;
+#line 336
+attribute hal_bluetooth_server;
+#line 336
+expandattribute hal_bluetooth_server false;
+#line 336
+
+#line 336
+neverallow { hal_bluetooth_server -halserverdomain } domain:process fork;
+#line 336
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 336
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 336
+# verified by CTS since these attributes are already expanded by that time.
+#line 336
+
+#line 336
+;
+
+#line 337
+attribute hal_bootctl;
+#line 337
+expandattribute hal_bootctl true;
+#line 337
+attribute hal_bootctl_client;
+#line 337
+expandattribute hal_bootctl_client true;
+#line 337
+attribute hal_bootctl_server;
+#line 337
+expandattribute hal_bootctl_server false;
+#line 337
+
+#line 337
+neverallow { hal_bootctl_server -halserverdomain } domain:process fork;
+#line 337
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 337
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 337
+# verified by CTS since these attributes are already expanded by that time.
+#line 337
+
+#line 337
+;
+
+#line 338
+attribute hal_broadcastradio;
+#line 338
+expandattribute hal_broadcastradio true;
+#line 338
+attribute hal_broadcastradio_client;
+#line 338
+expandattribute hal_broadcastradio_client true;
+#line 338
+attribute hal_broadcastradio_server;
+#line 338
+expandattribute hal_broadcastradio_server false;
+#line 338
+
+#line 338
+neverallow { hal_broadcastradio_server -halserverdomain } domain:process fork;
+#line 338
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 338
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 338
+# verified by CTS since these attributes are already expanded by that time.
+#line 338
+
+#line 338
+;
+
+#line 339
+attribute hal_camera;
+#line 339
+expandattribute hal_camera true;
+#line 339
+attribute hal_camera_client;
+#line 339
+expandattribute hal_camera_client true;
+#line 339
+attribute hal_camera_server;
+#line 339
+expandattribute hal_camera_server false;
+#line 339
+
+#line 339
+neverallow { hal_camera_server -halserverdomain } domain:process fork;
+#line 339
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 339
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 339
+# verified by CTS since these attributes are already expanded by that time.
+#line 339
+
+#line 339
+;
+
+#line 340
+attribute hal_can_bus;
+#line 340
+expandattribute hal_can_bus true;
+#line 340
+attribute hal_can_bus_client;
+#line 340
+expandattribute hal_can_bus_client true;
+#line 340
+attribute hal_can_bus_server;
+#line 340
+expandattribute hal_can_bus_server false;
+#line 340
+
+#line 340
+neverallow { hal_can_bus_server -halserverdomain } domain:process fork;
+#line 340
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 340
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 340
+# verified by CTS since these attributes are already expanded by that time.
+#line 340
+
+#line 340
+;
+
+#line 341
+attribute hal_can_controller;
+#line 341
+expandattribute hal_can_controller true;
+#line 341
+attribute hal_can_controller_client;
+#line 341
+expandattribute hal_can_controller_client true;
+#line 341
+attribute hal_can_controller_server;
+#line 341
+expandattribute hal_can_controller_server false;
+#line 341
+
+#line 341
+neverallow { hal_can_controller_server -halserverdomain } domain:process fork;
+#line 341
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 341
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 341
+# verified by CTS since these attributes are already expanded by that time.
+#line 341
+
+#line 341
+;
+
+#line 342
+attribute hal_cas;
+#line 342
+expandattribute hal_cas true;
+#line 342
+attribute hal_cas_client;
+#line 342
+expandattribute hal_cas_client true;
+#line 342
+attribute hal_cas_server;
+#line 342
+expandattribute hal_cas_server false;
+#line 342
+
+#line 342
+neverallow { hal_cas_server -halserverdomain } domain:process fork;
+#line 342
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 342
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 342
+# verified by CTS since these attributes are already expanded by that time.
+#line 342
+
+#line 342
+;
+
+#line 343
+attribute hal_codec2;
+#line 343
+expandattribute hal_codec2 true;
+#line 343
+attribute hal_codec2_client;
+#line 343
+expandattribute hal_codec2_client true;
+#line 343
+attribute hal_codec2_server;
+#line 343
+expandattribute hal_codec2_server false;
+#line 343
+
+#line 343
+neverallow { hal_codec2_server -halserverdomain } domain:process fork;
+#line 343
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 343
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 343
+# verified by CTS since these attributes are already expanded by that time.
+#line 343
+
+#line 343
+;
+
+#line 344
+attribute hal_configstore;
+#line 344
+expandattribute hal_configstore true;
+#line 344
+attribute hal_configstore_client;
+#line 344
+expandattribute hal_configstore_client true;
+#line 344
+attribute hal_configstore_server;
+#line 344
+expandattribute hal_configstore_server false;
+#line 344
+
+#line 344
+neverallow { hal_configstore_server -halserverdomain } domain:process fork;
+#line 344
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 344
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 344
+# verified by CTS since these attributes are already expanded by that time.
+#line 344
+
+#line 344
+;
+
+#line 345
+attribute hal_confirmationui;
+#line 345
+expandattribute hal_confirmationui true;
+#line 345
+attribute hal_confirmationui_client;
+#line 345
+expandattribute hal_confirmationui_client true;
+#line 345
+attribute hal_confirmationui_server;
+#line 345
+expandattribute hal_confirmationui_server false;
+#line 345
+
+#line 345
+neverallow { hal_confirmationui_server -halserverdomain } domain:process fork;
+#line 345
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 345
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 345
+# verified by CTS since these attributes are already expanded by that time.
+#line 345
+
+#line 345
+;
+
+#line 346
+attribute hal_contexthub;
+#line 346
+expandattribute hal_contexthub true;
+#line 346
+attribute hal_contexthub_client;
+#line 346
+expandattribute hal_contexthub_client true;
+#line 346
+attribute hal_contexthub_server;
+#line 346
+expandattribute hal_contexthub_server false;
+#line 346
+
+#line 346
+neverallow { hal_contexthub_server -halserverdomain } domain:process fork;
+#line 346
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 346
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 346
+# verified by CTS since these attributes are already expanded by that time.
+#line 346
+
+#line 346
+;
+
+#line 347
+attribute hal_drm;
+#line 347
+expandattribute hal_drm true;
+#line 347
+attribute hal_drm_client;
+#line 347
+expandattribute hal_drm_client true;
+#line 347
+attribute hal_drm_server;
+#line 347
+expandattribute hal_drm_server false;
+#line 347
+
+#line 347
+neverallow { hal_drm_server -halserverdomain } domain:process fork;
+#line 347
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 347
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 347
+# verified by CTS since these attributes are already expanded by that time.
+#line 347
+
+#line 347
+;
+
+#line 348
+attribute hal_dumpstate;
+#line 348
+expandattribute hal_dumpstate true;
+#line 348
+attribute hal_dumpstate_client;
+#line 348
+expandattribute hal_dumpstate_client true;
+#line 348
+attribute hal_dumpstate_server;
+#line 348
+expandattribute hal_dumpstate_server false;
+#line 348
+
+#line 348
+neverallow { hal_dumpstate_server -halserverdomain } domain:process fork;
+#line 348
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 348
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 348
+# verified by CTS since these attributes are already expanded by that time.
+#line 348
+
+#line 348
+;
+
+#line 349
+attribute hal_evs;
+#line 349
+expandattribute hal_evs true;
+#line 349
+attribute hal_evs_client;
+#line 349
+expandattribute hal_evs_client true;
+#line 349
+attribute hal_evs_server;
+#line 349
+expandattribute hal_evs_server false;
+#line 349
+
+#line 349
+neverallow { hal_evs_server -halserverdomain } domain:process fork;
+#line 349
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 349
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 349
+# verified by CTS since these attributes are already expanded by that time.
+#line 349
+
+#line 349
+;
+
+#line 350
+attribute hal_face;
+#line 350
+expandattribute hal_face true;
+#line 350
+attribute hal_face_client;
+#line 350
+expandattribute hal_face_client true;
+#line 350
+attribute hal_face_server;
+#line 350
+expandattribute hal_face_server false;
+#line 350
+
+#line 350
+neverallow { hal_face_server -halserverdomain } domain:process fork;
+#line 350
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 350
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 350
+# verified by CTS since these attributes are already expanded by that time.
+#line 350
+
+#line 350
+;
+
+#line 351
+attribute hal_fastboot;
+#line 351
+expandattribute hal_fastboot true;
+#line 351
+attribute hal_fastboot_client;
+#line 351
+expandattribute hal_fastboot_client true;
+#line 351
+attribute hal_fastboot_server;
+#line 351
+expandattribute hal_fastboot_server false;
+#line 351
+
+#line 351
+neverallow { hal_fastboot_server -halserverdomain } domain:process fork;
+#line 351
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 351
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 351
+# verified by CTS since these attributes are already expanded by that time.
+#line 351
+
+#line 351
+;
+
+#line 352
+attribute hal_fingerprint;
+#line 352
+expandattribute hal_fingerprint true;
+#line 352
+attribute hal_fingerprint_client;
+#line 352
+expandattribute hal_fingerprint_client true;
+#line 352
+attribute hal_fingerprint_server;
+#line 352
+expandattribute hal_fingerprint_server false;
+#line 352
+
+#line 352
+neverallow { hal_fingerprint_server -halserverdomain } domain:process fork;
+#line 352
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 352
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 352
+# verified by CTS since these attributes are already expanded by that time.
+#line 352
+
+#line 352
+;
+
+#line 353
+attribute hal_gatekeeper;
+#line 353
+expandattribute hal_gatekeeper true;
+#line 353
+attribute hal_gatekeeper_client;
+#line 353
+expandattribute hal_gatekeeper_client true;
+#line 353
+attribute hal_gatekeeper_server;
+#line 353
+expandattribute hal_gatekeeper_server false;
+#line 353
+
+#line 353
+neverallow { hal_gatekeeper_server -halserverdomain } domain:process fork;
+#line 353
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 353
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 353
+# verified by CTS since these attributes are already expanded by that time.
+#line 353
+
+#line 353
+;
+
+#line 354
+attribute hal_gnss;
+#line 354
+expandattribute hal_gnss true;
+#line 354
+attribute hal_gnss_client;
+#line 354
+expandattribute hal_gnss_client true;
+#line 354
+attribute hal_gnss_server;
+#line 354
+expandattribute hal_gnss_server false;
+#line 354
+
+#line 354
+neverallow { hal_gnss_server -halserverdomain } domain:process fork;
+#line 354
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 354
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 354
+# verified by CTS since these attributes are already expanded by that time.
+#line 354
+
+#line 354
+;
+
+#line 355
+attribute hal_graphics_allocator;
+#line 355
+expandattribute hal_graphics_allocator true;
+#line 355
+attribute hal_graphics_allocator_client;
+#line 355
+expandattribute hal_graphics_allocator_client true;
+#line 355
+attribute hal_graphics_allocator_server;
+#line 355
+expandattribute hal_graphics_allocator_server false;
+#line 355
+
+#line 355
+neverallow { hal_graphics_allocator_server -halserverdomain } domain:process fork;
+#line 355
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 355
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 355
+# verified by CTS since these attributes are already expanded by that time.
+#line 355
+
+#line 355
+;
+
+#line 356
+attribute hal_graphics_composer;
+#line 356
+expandattribute hal_graphics_composer true;
+#line 356
+attribute hal_graphics_composer_client;
+#line 356
+expandattribute hal_graphics_composer_client true;
+#line 356
+attribute hal_graphics_composer_server;
+#line 356
+expandattribute hal_graphics_composer_server false;
+#line 356
+
+#line 356
+neverallow { hal_graphics_composer_server -halserverdomain } domain:process fork;
+#line 356
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 356
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 356
+# verified by CTS since these attributes are already expanded by that time.
+#line 356
+
+#line 356
+;
+
+#line 357
+attribute hal_health;
+#line 357
+expandattribute hal_health true;
+#line 357
+attribute hal_health_client;
+#line 357
+expandattribute hal_health_client true;
+#line 357
+attribute hal_health_server;
+#line 357
+expandattribute hal_health_server false;
+#line 357
+
+#line 357
+neverallow { hal_health_server -halserverdomain } domain:process fork;
+#line 357
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 357
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 357
+# verified by CTS since these attributes are already expanded by that time.
+#line 357
+
+#line 357
+;
+
+#line 358
+attribute hal_health_storage;
+#line 358
+expandattribute hal_health_storage true;
+#line 358
+attribute hal_health_storage_client;
+#line 358
+expandattribute hal_health_storage_client true;
+#line 358
+attribute hal_health_storage_server;
+#line 358
+expandattribute hal_health_storage_server false;
+#line 358
+
+#line 358
+neverallow { hal_health_storage_server -halserverdomain } domain:process fork;
+#line 358
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 358
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 358
+# verified by CTS since these attributes are already expanded by that time.
+#line 358
+
+#line 358
+;
+
+#line 359
+attribute hal_identity;
+#line 359
+expandattribute hal_identity true;
+#line 359
+attribute hal_identity_client;
+#line 359
+expandattribute hal_identity_client true;
+#line 359
+attribute hal_identity_server;
+#line 359
+expandattribute hal_identity_server false;
+#line 359
+
+#line 359
+neverallow { hal_identity_server -halserverdomain } domain:process fork;
+#line 359
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 359
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 359
+# verified by CTS since these attributes are already expanded by that time.
+#line 359
+
+#line 359
+;
+
+#line 360
+attribute hal_input_classifier;
+#line 360
+expandattribute hal_input_classifier true;
+#line 360
+attribute hal_input_classifier_client;
+#line 360
+expandattribute hal_input_classifier_client true;
+#line 360
+attribute hal_input_classifier_server;
+#line 360
+expandattribute hal_input_classifier_server false;
+#line 360
+
+#line 360
+neverallow { hal_input_classifier_server -halserverdomain } domain:process fork;
+#line 360
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 360
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 360
+# verified by CTS since these attributes are already expanded by that time.
+#line 360
+
+#line 360
+;
+
+#line 361
+attribute hal_input_processor;
+#line 361
+expandattribute hal_input_processor true;
+#line 361
+attribute hal_input_processor_client;
+#line 361
+expandattribute hal_input_processor_client true;
+#line 361
+attribute hal_input_processor_server;
+#line 361
+expandattribute hal_input_processor_server false;
+#line 361
+
+#line 361
+neverallow { hal_input_processor_server -halserverdomain } domain:process fork;
+#line 361
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 361
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 361
+# verified by CTS since these attributes are already expanded by that time.
+#line 361
+
+#line 361
+;
+
+#line 362
+attribute hal_ir;
+#line 362
+expandattribute hal_ir true;
+#line 362
+attribute hal_ir_client;
+#line 362
+expandattribute hal_ir_client true;
+#line 362
+attribute hal_ir_server;
+#line 362
+expandattribute hal_ir_server false;
+#line 362
+
+#line 362
+neverallow { hal_ir_server -halserverdomain } domain:process fork;
+#line 362
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 362
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 362
+# verified by CTS since these attributes are already expanded by that time.
+#line 362
+
+#line 362
+;
+
+#line 363
+attribute hal_ivn;
+#line 363
+expandattribute hal_ivn true;
+#line 363
+attribute hal_ivn_client;
+#line 363
+expandattribute hal_ivn_client true;
+#line 363
+attribute hal_ivn_server;
+#line 363
+expandattribute hal_ivn_server false;
+#line 363
+
+#line 363
+neverallow { hal_ivn_server -halserverdomain } domain:process fork;
+#line 363
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 363
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 363
+# verified by CTS since these attributes are already expanded by that time.
+#line 363
+
+#line 363
+;
+
+#line 364
+attribute hal_keymaster;
+#line 364
+expandattribute hal_keymaster true;
+#line 364
+attribute hal_keymaster_client;
+#line 364
+expandattribute hal_keymaster_client true;
+#line 364
+attribute hal_keymaster_server;
+#line 364
+expandattribute hal_keymaster_server false;
+#line 364
+
+#line 364
+neverallow { hal_keymaster_server -halserverdomain } domain:process fork;
+#line 364
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 364
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 364
+# verified by CTS since these attributes are already expanded by that time.
+#line 364
+
+#line 364
+;
+
+#line 365
+attribute hal_keymint;
+#line 365
+expandattribute hal_keymint true;
+#line 365
+attribute hal_keymint_client;
+#line 365
+expandattribute hal_keymint_client true;
+#line 365
+attribute hal_keymint_server;
+#line 365
+expandattribute hal_keymint_server false;
+#line 365
+
+#line 365
+neverallow { hal_keymint_server -halserverdomain } domain:process fork;
+#line 365
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 365
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 365
+# verified by CTS since these attributes are already expanded by that time.
+#line 365
+
+#line 365
+;
+
+#line 366
+attribute hal_light;
+#line 366
+expandattribute hal_light true;
+#line 366
+attribute hal_light_client;
+#line 366
+expandattribute hal_light_client true;
+#line 366
+attribute hal_light_server;
+#line 366
+expandattribute hal_light_server false;
+#line 366
+
+#line 366
+neverallow { hal_light_server -halserverdomain } domain:process fork;
+#line 366
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 366
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 366
+# verified by CTS since these attributes are already expanded by that time.
+#line 366
+
+#line 366
+;
+
+#line 367
+attribute hal_lowpan;
+#line 367
+expandattribute hal_lowpan true;
+#line 367
+attribute hal_lowpan_client;
+#line 367
+expandattribute hal_lowpan_client true;
+#line 367
+attribute hal_lowpan_server;
+#line 367
+expandattribute hal_lowpan_server false;
+#line 367
+
+#line 367
+neverallow { hal_lowpan_server -halserverdomain } domain:process fork;
+#line 367
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 367
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 367
+# verified by CTS since these attributes are already expanded by that time.
+#line 367
+
+#line 367
+;
+
+#line 368
+attribute hal_macsec;
+#line 368
+expandattribute hal_macsec true;
+#line 368
+attribute hal_macsec_client;
+#line 368
+expandattribute hal_macsec_client true;
+#line 368
+attribute hal_macsec_server;
+#line 368
+expandattribute hal_macsec_server false;
+#line 368
+
+#line 368
+neverallow { hal_macsec_server -halserverdomain } domain:process fork;
+#line 368
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 368
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 368
+# verified by CTS since these attributes are already expanded by that time.
+#line 368
+
+#line 368
+;
+
+#line 369
+attribute hal_memtrack;
+#line 369
+expandattribute hal_memtrack true;
+#line 369
+attribute hal_memtrack_client;
+#line 369
+expandattribute hal_memtrack_client true;
+#line 369
+attribute hal_memtrack_server;
+#line 369
+expandattribute hal_memtrack_server false;
+#line 369
+
+#line 369
+neverallow { hal_memtrack_server -halserverdomain } domain:process fork;
+#line 369
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 369
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 369
+# verified by CTS since these attributes are already expanded by that time.
+#line 369
+
+#line 369
+;
+
+#line 370
+attribute hal_neuralnetworks;
+#line 370
+expandattribute hal_neuralnetworks true;
+#line 370
+attribute hal_neuralnetworks_client;
+#line 370
+expandattribute hal_neuralnetworks_client true;
+#line 370
+attribute hal_neuralnetworks_server;
+#line 370
+expandattribute hal_neuralnetworks_server false;
+#line 370
+
+#line 370
+neverallow { hal_neuralnetworks_server -halserverdomain } domain:process fork;
+#line 370
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 370
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 370
+# verified by CTS since these attributes are already expanded by that time.
+#line 370
+
+#line 370
+;
+
+#line 371
+attribute hal_nfc;
+#line 371
+expandattribute hal_nfc true;
+#line 371
+attribute hal_nfc_client;
+#line 371
+expandattribute hal_nfc_client true;
+#line 371
+attribute hal_nfc_server;
+#line 371
+expandattribute hal_nfc_server false;
+#line 371
+
+#line 371
+neverallow { hal_nfc_server -halserverdomain } domain:process fork;
+#line 371
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 371
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 371
+# verified by CTS since these attributes are already expanded by that time.
+#line 371
+
+#line 371
+;
+
+#line 372
+attribute hal_nlinterceptor;
+#line 372
+expandattribute hal_nlinterceptor true;
+#line 372
+attribute hal_nlinterceptor_client;
+#line 372
+expandattribute hal_nlinterceptor_client true;
+#line 372
+attribute hal_nlinterceptor_server;
+#line 372
+expandattribute hal_nlinterceptor_server false;
+#line 372
+
+#line 372
+neverallow { hal_nlinterceptor_server -halserverdomain } domain:process fork;
+#line 372
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 372
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 372
+# verified by CTS since these attributes are already expanded by that time.
+#line 372
+
+#line 372
+;
+
+#line 373
+attribute hal_oemlock;
+#line 373
+expandattribute hal_oemlock true;
+#line 373
+attribute hal_oemlock_client;
+#line 373
+expandattribute hal_oemlock_client true;
+#line 373
+attribute hal_oemlock_server;
+#line 373
+expandattribute hal_oemlock_server false;
+#line 373
+
+#line 373
+neverallow { hal_oemlock_server -halserverdomain } domain:process fork;
+#line 373
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 373
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 373
+# verified by CTS since these attributes are already expanded by that time.
+#line 373
+
+#line 373
+;
+
+#line 374
+attribute hal_omx;
+#line 374
+expandattribute hal_omx true;
+#line 374
+attribute hal_omx_client;
+#line 374
+expandattribute hal_omx_client true;
+#line 374
+attribute hal_omx_server;
+#line 374
+expandattribute hal_omx_server false;
+#line 374
+
+#line 374
+neverallow { hal_omx_server -halserverdomain } domain:process fork;
+#line 374
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 374
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 374
+# verified by CTS since these attributes are already expanded by that time.
+#line 374
+
+#line 374
+;
+
+#line 375
+attribute hal_power;
+#line 375
+expandattribute hal_power true;
+#line 375
+attribute hal_power_client;
+#line 375
+expandattribute hal_power_client true;
+#line 375
+attribute hal_power_server;
+#line 375
+expandattribute hal_power_server false;
+#line 375
+
+#line 375
+neverallow { hal_power_server -halserverdomain } domain:process fork;
+#line 375
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 375
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 375
+# verified by CTS since these attributes are already expanded by that time.
+#line 375
+
+#line 375
+;
+
+#line 376
+attribute hal_power_stats;
+#line 376
+expandattribute hal_power_stats true;
+#line 376
+attribute hal_power_stats_client;
+#line 376
+expandattribute hal_power_stats_client true;
+#line 376
+attribute hal_power_stats_server;
+#line 376
+expandattribute hal_power_stats_server false;
+#line 376
+
+#line 376
+neverallow { hal_power_stats_server -halserverdomain } domain:process fork;
+#line 376
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 376
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 376
+# verified by CTS since these attributes are already expanded by that time.
+#line 376
+
+#line 376
+;
+
+#line 377
+attribute hal_rebootescrow;
+#line 377
+expandattribute hal_rebootescrow true;
+#line 377
+attribute hal_rebootescrow_client;
+#line 377
+expandattribute hal_rebootescrow_client true;
+#line 377
+attribute hal_rebootescrow_server;
+#line 377
+expandattribute hal_rebootescrow_server false;
+#line 377
+
+#line 377
+neverallow { hal_rebootescrow_server -halserverdomain } domain:process fork;
+#line 377
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 377
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 377
+# verified by CTS since these attributes are already expanded by that time.
+#line 377
+
+#line 377
+;
+
+#line 378
+attribute hal_remoteaccess;
+#line 378
+expandattribute hal_remoteaccess true;
+#line 378
+attribute hal_remoteaccess_client;
+#line 378
+expandattribute hal_remoteaccess_client true;
+#line 378
+attribute hal_remoteaccess_server;
+#line 378
+expandattribute hal_remoteaccess_server false;
+#line 378
+
+#line 378
+neverallow { hal_remoteaccess_server -halserverdomain } domain:process fork;
+#line 378
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 378
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 378
+# verified by CTS since these attributes are already expanded by that time.
+#line 378
+
+#line 378
+;
+
+#line 379
+attribute hal_secretkeeper;
+#line 379
+expandattribute hal_secretkeeper true;
+#line 379
+attribute hal_secretkeeper_client;
+#line 379
+expandattribute hal_secretkeeper_client true;
+#line 379
+attribute hal_secretkeeper_server;
+#line 379
+expandattribute hal_secretkeeper_server false;
+#line 379
+
+#line 379
+neverallow { hal_secretkeeper_server -halserverdomain } domain:process fork;
+#line 379
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 379
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 379
+# verified by CTS since these attributes are already expanded by that time.
+#line 379
+
+#line 379
+;
+
+#line 380
+attribute hal_remotelyprovisionedcomponent_avf;
+#line 380
+expandattribute hal_remotelyprovisionedcomponent_avf true;
+#line 380
+attribute hal_remotelyprovisionedcomponent_avf_client;
+#line 380
+expandattribute hal_remotelyprovisionedcomponent_avf_client true;
+#line 380
+attribute hal_remotelyprovisionedcomponent_avf_server;
+#line 380
+expandattribute hal_remotelyprovisionedcomponent_avf_server false;
+#line 380
+
+#line 380
+neverallow { hal_remotelyprovisionedcomponent_avf_server -halserverdomain } domain:process fork;
+#line 380
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 380
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 380
+# verified by CTS since these attributes are already expanded by that time.
+#line 380
+
+#line 380
+;
+
+#line 381
+attribute hal_secure_element;
+#line 381
+expandattribute hal_secure_element true;
+#line 381
+attribute hal_secure_element_client;
+#line 381
+expandattribute hal_secure_element_client true;
+#line 381
+attribute hal_secure_element_server;
+#line 381
+expandattribute hal_secure_element_server false;
+#line 381
+
+#line 381
+neverallow { hal_secure_element_server -halserverdomain } domain:process fork;
+#line 381
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 381
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 381
+# verified by CTS since these attributes are already expanded by that time.
+#line 381
+
+#line 381
+;
+
+#line 382
+attribute hal_sensors;
+#line 382
+expandattribute hal_sensors true;
+#line 382
+attribute hal_sensors_client;
+#line 382
+expandattribute hal_sensors_client true;
+#line 382
+attribute hal_sensors_server;
+#line 382
+expandattribute hal_sensors_server false;
+#line 382
+
+#line 382
+neverallow { hal_sensors_server -halserverdomain } domain:process fork;
+#line 382
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 382
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 382
+# verified by CTS since these attributes are already expanded by that time.
+#line 382
+
+#line 382
+;
+
+#line 383
+attribute hal_telephony;
+#line 383
+expandattribute hal_telephony true;
+#line 383
+attribute hal_telephony_client;
+#line 383
+expandattribute hal_telephony_client true;
+#line 383
+attribute hal_telephony_server;
+#line 383
+expandattribute hal_telephony_server false;
+#line 383
+
+#line 383
+neverallow { hal_telephony_server -halserverdomain } domain:process fork;
+#line 383
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 383
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 383
+# verified by CTS since these attributes are already expanded by that time.
+#line 383
+
+#line 383
+;
+
+#line 384
+attribute hal_tetheroffload;
+#line 384
+expandattribute hal_tetheroffload true;
+#line 384
+attribute hal_tetheroffload_client;
+#line 384
+expandattribute hal_tetheroffload_client true;
+#line 384
+attribute hal_tetheroffload_server;
+#line 384
+expandattribute hal_tetheroffload_server false;
+#line 384
+
+#line 384
+neverallow { hal_tetheroffload_server -halserverdomain } domain:process fork;
+#line 384
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 384
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 384
+# verified by CTS since these attributes are already expanded by that time.
+#line 384
+
+#line 384
+;
+
+#line 385
+attribute hal_thermal;
+#line 385
+expandattribute hal_thermal true;
+#line 385
+attribute hal_thermal_client;
+#line 385
+expandattribute hal_thermal_client true;
+#line 385
+attribute hal_thermal_server;
+#line 385
+expandattribute hal_thermal_server false;
+#line 385
+
+#line 385
+neverallow { hal_thermal_server -halserverdomain } domain:process fork;
+#line 385
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 385
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 385
+# verified by CTS since these attributes are already expanded by that time.
+#line 385
+
+#line 385
+;
+
+#line 386
+attribute hal_threadnetwork;
+#line 386
+expandattribute hal_threadnetwork true;
+#line 386
+attribute hal_threadnetwork_client;
+#line 386
+expandattribute hal_threadnetwork_client true;
+#line 386
+attribute hal_threadnetwork_server;
+#line 386
+expandattribute hal_threadnetwork_server false;
+#line 386
+
+#line 386
+neverallow { hal_threadnetwork_server -halserverdomain } domain:process fork;
+#line 386
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 386
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 386
+# verified by CTS since these attributes are already expanded by that time.
+#line 386
+
+#line 386
+;
+
+#line 387
+attribute hal_tv_cec;
+#line 387
+expandattribute hal_tv_cec true;
+#line 387
+attribute hal_tv_cec_client;
+#line 387
+expandattribute hal_tv_cec_client true;
+#line 387
+attribute hal_tv_cec_server;
+#line 387
+expandattribute hal_tv_cec_server false;
+#line 387
+
+#line 387
+neverallow { hal_tv_cec_server -halserverdomain } domain:process fork;
+#line 387
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 387
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 387
+# verified by CTS since these attributes are already expanded by that time.
+#line 387
+
+#line 387
+;
+
+#line 388
+attribute hal_tv_hdmi_cec;
+#line 388
+expandattribute hal_tv_hdmi_cec true;
+#line 388
+attribute hal_tv_hdmi_cec_client;
+#line 388
+expandattribute hal_tv_hdmi_cec_client true;
+#line 388
+attribute hal_tv_hdmi_cec_server;
+#line 388
+expandattribute hal_tv_hdmi_cec_server false;
+#line 388
+
+#line 388
+neverallow { hal_tv_hdmi_cec_server -halserverdomain } domain:process fork;
+#line 388
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 388
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 388
+# verified by CTS since these attributes are already expanded by that time.
+#line 388
+
+#line 388
+;
+
+#line 389
+attribute hal_tv_hdmi_connection;
+#line 389
+expandattribute hal_tv_hdmi_connection true;
+#line 389
+attribute hal_tv_hdmi_connection_client;
+#line 389
+expandattribute hal_tv_hdmi_connection_client true;
+#line 389
+attribute hal_tv_hdmi_connection_server;
+#line 389
+expandattribute hal_tv_hdmi_connection_server false;
+#line 389
+
+#line 389
+neverallow { hal_tv_hdmi_connection_server -halserverdomain } domain:process fork;
+#line 389
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 389
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 389
+# verified by CTS since these attributes are already expanded by that time.
+#line 389
+
+#line 389
+;
+
+#line 390
+attribute hal_tv_hdmi_earc;
+#line 390
+expandattribute hal_tv_hdmi_earc true;
+#line 390
+attribute hal_tv_hdmi_earc_client;
+#line 390
+expandattribute hal_tv_hdmi_earc_client true;
+#line 390
+attribute hal_tv_hdmi_earc_server;
+#line 390
+expandattribute hal_tv_hdmi_earc_server false;
+#line 390
+
+#line 390
+neverallow { hal_tv_hdmi_earc_server -halserverdomain } domain:process fork;
+#line 390
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 390
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 390
+# verified by CTS since these attributes are already expanded by that time.
+#line 390
+
+#line 390
+;
+
+#line 391
+attribute hal_tv_input;
+#line 391
+expandattribute hal_tv_input true;
+#line 391
+attribute hal_tv_input_client;
+#line 391
+expandattribute hal_tv_input_client true;
+#line 391
+attribute hal_tv_input_server;
+#line 391
+expandattribute hal_tv_input_server false;
+#line 391
+
+#line 391
+neverallow { hal_tv_input_server -halserverdomain } domain:process fork;
+#line 391
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 391
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 391
+# verified by CTS since these attributes are already expanded by that time.
+#line 391
+
+#line 391
+;
+
+#line 392
+attribute hal_tv_tuner;
+#line 392
+expandattribute hal_tv_tuner true;
+#line 392
+attribute hal_tv_tuner_client;
+#line 392
+expandattribute hal_tv_tuner_client true;
+#line 392
+attribute hal_tv_tuner_server;
+#line 392
+expandattribute hal_tv_tuner_server false;
+#line 392
+
+#line 392
+neverallow { hal_tv_tuner_server -halserverdomain } domain:process fork;
+#line 392
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 392
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 392
+# verified by CTS since these attributes are already expanded by that time.
+#line 392
+
+#line 392
+;
+
+#line 393
+attribute hal_usb;
+#line 393
+expandattribute hal_usb true;
+#line 393
+attribute hal_usb_client;
+#line 393
+expandattribute hal_usb_client true;
+#line 393
+attribute hal_usb_server;
+#line 393
+expandattribute hal_usb_server false;
+#line 393
+
+#line 393
+neverallow { hal_usb_server -halserverdomain } domain:process fork;
+#line 393
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 393
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 393
+# verified by CTS since these attributes are already expanded by that time.
+#line 393
+
+#line 393
+;
+
+#line 394
+attribute hal_usb_gadget;
+#line 394
+expandattribute hal_usb_gadget true;
+#line 394
+attribute hal_usb_gadget_client;
+#line 394
+expandattribute hal_usb_gadget_client true;
+#line 394
+attribute hal_usb_gadget_server;
+#line 394
+expandattribute hal_usb_gadget_server false;
+#line 394
+
+#line 394
+neverallow { hal_usb_gadget_server -halserverdomain } domain:process fork;
+#line 394
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 394
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 394
+# verified by CTS since these attributes are already expanded by that time.
+#line 394
+
+#line 394
+;
+
+#line 395
+attribute hal_uwb;
+#line 395
+expandattribute hal_uwb true;
+#line 395
+attribute hal_uwb_client;
+#line 395
+expandattribute hal_uwb_client true;
+#line 395
+attribute hal_uwb_server;
+#line 395
+expandattribute hal_uwb_server false;
+#line 395
+
+#line 395
+neverallow { hal_uwb_server -halserverdomain } domain:process fork;
+#line 395
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 395
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 395
+# verified by CTS since these attributes are already expanded by that time.
+#line 395
+
+#line 395
+;
+# TODO(b/196225233): Remove this attribute and its usages elsewhere
+# once all chip vendors integrate to the new UWB stack.
+
+#line 398
+attribute hal_uwb_vendor;
+#line 398
+expandattribute hal_uwb_vendor true;
+#line 398
+attribute hal_uwb_vendor_client;
+#line 398
+expandattribute hal_uwb_vendor_client true;
+#line 398
+attribute hal_uwb_vendor_server;
+#line 398
+expandattribute hal_uwb_vendor_server false;
+#line 398
+
+#line 398
+neverallow { hal_uwb_vendor_server -halserverdomain } domain:process fork;
+#line 398
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 398
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 398
+# verified by CTS since these attributes are already expanded by that time.
+#line 398
+
+#line 398
+;
+
+#line 399
+attribute hal_vehicle;
+#line 399
+expandattribute hal_vehicle true;
+#line 399
+attribute hal_vehicle_client;
+#line 399
+expandattribute hal_vehicle_client true;
+#line 399
+attribute hal_vehicle_server;
+#line 399
+expandattribute hal_vehicle_server false;
+#line 399
+
+#line 399
+neverallow { hal_vehicle_server -halserverdomain } domain:process fork;
+#line 399
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 399
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 399
+# verified by CTS since these attributes are already expanded by that time.
+#line 399
+
+#line 399
+;
+
+#line 400
+attribute hal_vibrator;
+#line 400
+expandattribute hal_vibrator true;
+#line 400
+attribute hal_vibrator_client;
+#line 400
+expandattribute hal_vibrator_client true;
+#line 400
+attribute hal_vibrator_server;
+#line 400
+expandattribute hal_vibrator_server false;
+#line 400
+
+#line 400
+neverallow { hal_vibrator_server -halserverdomain } domain:process fork;
+#line 400
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 400
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 400
+# verified by CTS since these attributes are already expanded by that time.
+#line 400
+
+#line 400
+;
+
+#line 401
+attribute hal_vr;
+#line 401
+expandattribute hal_vr true;
+#line 401
+attribute hal_vr_client;
+#line 401
+expandattribute hal_vr_client true;
+#line 401
+attribute hal_vr_server;
+#line 401
+expandattribute hal_vr_server false;
+#line 401
+
+#line 401
+neverallow { hal_vr_server -halserverdomain } domain:process fork;
+#line 401
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 401
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 401
+# verified by CTS since these attributes are already expanded by that time.
+#line 401
+
+#line 401
+;
+
+#line 402
+attribute hal_weaver;
+#line 402
+expandattribute hal_weaver true;
+#line 402
+attribute hal_weaver_client;
+#line 402
+expandattribute hal_weaver_client true;
+#line 402
+attribute hal_weaver_server;
+#line 402
+expandattribute hal_weaver_server false;
+#line 402
+
+#line 402
+neverallow { hal_weaver_server -halserverdomain } domain:process fork;
+#line 402
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 402
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 402
+# verified by CTS since these attributes are already expanded by that time.
+#line 402
+
+#line 402
+;
+
+#line 403
+attribute hal_wifi;
+#line 403
+expandattribute hal_wifi true;
+#line 403
+attribute hal_wifi_client;
+#line 403
+expandattribute hal_wifi_client true;
+#line 403
+attribute hal_wifi_server;
+#line 403
+expandattribute hal_wifi_server false;
+#line 403
+
+#line 403
+neverallow { hal_wifi_server -halserverdomain } domain:process fork;
+#line 403
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 403
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 403
+# verified by CTS since these attributes are already expanded by that time.
+#line 403
+
+#line 403
+;
+
+#line 404
+attribute hal_wifi_hostapd;
+#line 404
+expandattribute hal_wifi_hostapd true;
+#line 404
+attribute hal_wifi_hostapd_client;
+#line 404
+expandattribute hal_wifi_hostapd_client true;
+#line 404
+attribute hal_wifi_hostapd_server;
+#line 404
+expandattribute hal_wifi_hostapd_server false;
+#line 404
+
+#line 404
+neverallow { hal_wifi_hostapd_server -halserverdomain } domain:process fork;
+#line 404
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 404
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 404
+# verified by CTS since these attributes are already expanded by that time.
+#line 404
+
+#line 404
+;
+
+#line 405
+attribute hal_wifi_supplicant;
+#line 405
+expandattribute hal_wifi_supplicant true;
+#line 405
+attribute hal_wifi_supplicant_client;
+#line 405
+expandattribute hal_wifi_supplicant_client true;
+#line 405
+attribute hal_wifi_supplicant_server;
+#line 405
+expandattribute hal_wifi_supplicant_server false;
+#line 405
+
+#line 405
+neverallow { hal_wifi_supplicant_server -halserverdomain } domain:process fork;
+#line 405
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 405
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 405
+# verified by CTS since these attributes are already expanded by that time.
+#line 405
+
+#line 405
+;
+
+# HwBinder services offered across the core-vendor boundary
+#
+# We annotate server domains with x_server  to loosen the coupling between
+# system and vendor images. For example, it should be possible to move a service
+# from one core domain to another, without having to update the vendor image
+# which contains clients of this service.
+
+attribute automotive_display_service_server;
+attribute camera_service_server;
+attribute display_service_server;
+attribute evsmanager_service_server;
+attribute remote_provisioning_service_server;
+attribute scheduler_service_server;
+attribute sensor_service_server;
+attribute stats_service_server;
+attribute system_suspend_internal_server;
+attribute system_suspend_server;
+attribute wifi_keystore_service_server;
+
+# All types used for super partition block devices.
+attribute super_block_device_type;
+
+# All types used for DMA-BUF heaps
+attribute dmabuf_heap_device_type;
+expandattribute dmabuf_heap_device_type false;
+
+# Types for VM managers
+attribute vm_manager_device_type;
+
+# All types used for DSU metadata files.
+attribute gsi_metadata_file_type;
+
+# Types used for module-specific APEX data directories under
+# /data/{misc,misc_ce,misc_de}/apexdata.
+attribute apex_data_file_type;
+
+# Domains used for charger.
+# This is the common type for domains that executes charger's
+# functionalities, including setting and getting necessary properties,
+# permissions to maintain the health loop, writing to kernel log, handling
+# inputs and drawing screens, etc.
+attribute charger_type;
+
+# All types of ART properties.
+attribute dalvik_config_prop_type;
+#line 1 "system/sepolicy/public/adbd.te"
+# adbd seclabel is specified in init.rc since
+# it lives in the rootfs and has no unique file type.
+type adbd, domain;
+type adbd_exec, exec_type, file_type, system_file_type;
+
+# Only init is allowed to enter the adbd domain via exec()
+neverallow { domain -init } adbd:process transition;
+neverallow * adbd:process dyntransition;
+
+# Access /data/local/tests.
+allow adbd shell_test_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow adbd shell_test_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow adbd shell_test_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+#line 1 "system/sepolicy/public/aidl_lazy_test_server.te"
+type aidl_lazy_test_server, domain;
+type aidl_lazy_test_server_exec, exec_type, file_type, system_file_type;
+
+#line 9
+
+#line 1 "system/sepolicy/public/apexd.te"
+# apexd -- manager for APEX packages
+type apexd, domain;
+type apexd_exec, exec_type, file_type, system_file_type;
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow apexd servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager apexd:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager apexd:dir search;
+#line 5
+allow servicemanager apexd:file { read open };
+#line 5
+allow servicemanager apexd:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+#line 6
+  allow apexd apex_service:service_manager { add find };
+#line 6
+  neverallow { domain -apexd } apex_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+
+neverallow { domain -init -apexd -system_server -update_engine } apex_service:service_manager find;
+neverallow { domain -init -apexd -system_server -servicemanager -update_engine } apexd:binder call;
+
+neverallow { domain  } apexd:process ptrace;
+#line 1 "system/sepolicy/public/app.te"
+###
+### Domain for all zygote spawned apps
+###
+### This file is the base policy for all zygote spawned apps.
+### Other policy files, such as isolated_app.te, untrusted_app.te, etc
+### extend from this policy. Only policies which should apply to ALL
+### zygote spawned apps should be added here.
+###
+type appdomain_tmpfs, file_type;
+
+###
+### Neverallow rules
+###
+### These are things that Android apps should NEVER be able to do
+###
+
+# Superuser capabilities.
+# bluetooth requires net_admin and wake_alarm. network stack app requires net_admin.
+neverallow { appdomain -bluetooth -network_stack } self:{ capability capability2 cap_userns cap2_userns } *;
+
+# Block device access.
+neverallow appdomain dev_type:blk_file { read write };
+
+# Note: Try expanding list of app domains in the future.
+neverallow { untrusted_app isolated_app shell } graphics_device:chr_file { read write };
+
+neverallow { appdomain -nfc } nfc_device:chr_file
+    { read write };
+neverallow { appdomain -bluetooth } hci_attach_dev:chr_file
+    { read write };
+neverallow appdomain tee_device:chr_file { read write };
+
+# Privileged netlink socket interfaces.
+neverallow { appdomain -network_stack }
+    domain:{
+        netlink_tcpdiag_socket
+        netlink_nflog_socket
+        netlink_xfrm_socket
+        netlink_audit_socket
+        netlink_dnrt_socket
+    } *;
+
+# These messages are broadcast messages from the kernel to userspace.
+# Do not allow the writing of netlink messages, which has been a source
+# of rooting vulns in the past.
+neverallow { appdomain -network_stack }
+    domain:netlink_kobject_uevent_socket { write append };
+
+# Sockets under /dev/socket that are not specifically typed.
+neverallow appdomain socket_device:sock_file write;
+
+# Unix domain sockets.
+neverallow appdomain adbd_socket:sock_file write;
+neverallow { appdomain -radio } rild_socket:sock_file write;
+
+# ptrace access to non-app domains.
+neverallow appdomain { domain -appdomain }:process ptrace;
+
+# The Android security model guarantees the confidentiality and integrity
+# of application data and execution state. Ptrace bypasses those
+# confidentiality guarantees. Disallow ptrace access from system components
+# to apps. Crash_dump is excluded, as it needs ptrace access to
+# produce stack traces.  llkd is excluded, as it needs ptrace access to
+# inspect stack traces for live lock conditions.
+
+neverallow {
+  domain
+  -appdomain
+  -crash_dump
+  
+} appdomain:process ptrace;
+
+# Read or write access to /proc/pid entries for any non-app domain.
+# A different form of hidepid=2 like protections
+neverallow appdomain { domain -appdomain }:file { append create link unlink relabelfrom rename setattr write };
+neverallow { appdomain -shell } { domain -appdomain }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# signal access to non-app domains.
+# sigchld allowed for parent death notification.
+# signull allowed for kill(pid, 0) existence test.
+# All others prohibited.
+# -perfetto is to allow shell (which is an appdomain) to kill perfetto
+# (see private/shell.te).
+neverallow appdomain { domain -appdomain -perfetto }:process
+    { sigkill sigstop signal };
+
+# Write to rootfs.
+neverallow appdomain rootfs:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+
+# Write to /system.
+neverallow appdomain system_file_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+
+# Write to entrypoint executables.
+neverallow appdomain exec_type:file
+    { create write setattr relabelfrom relabelto append unlink link rename };
+
+# Write to system-owned parts of /data.
+# This is the default type for anything under /data not otherwise
+# specified in file_contexts.  Define a different type for portions
+# that should be writable by apps.
+neverallow appdomain system_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+
+# Write to various other parts of /data.
+neverallow appdomain drm_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow { appdomain -platform_app }
+    apk_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow { appdomain -platform_app }
+    apk_private_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow { appdomain -platform_app }
+    apk_private_tmp_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow { appdomain -shell }
+    shell_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create setattr relabelfrom relabelto append unlink link rename };
+neverallow { appdomain -bluetooth }
+    bluetooth_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow { domain -credstore -init } credstore_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } *;
+neverallow appdomain
+    keystore_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow appdomain
+    systemkeys_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow appdomain
+    wifi_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+neverallow appdomain
+    dhcp_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+
+# access tmp apk files
+neverallow { appdomain -platform_app }
+    apk_tmp_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create write setattr relabelfrom relabelto append unlink link rename };
+
+neverallow { appdomain -untrusted_app_all -platform_app -priv_app -isolated_app_all }
+    { apk_tmp_file apk_private_tmp_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } *;
+
+neverallow { untrusted_app_all isolated_app_all } { apk_tmp_file apk_private_tmp_file }:{ { chr_file blk_file } dir fifo_file lnk_file sock_file } *;
+neverallow { untrusted_app_all isolated_app_all } { apk_tmp_file apk_private_tmp_file }:file ~{ getattr read };
+
+# Access to factory files.
+neverallow appdomain efs_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+neverallow { appdomain -shell } efs_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } read;
+
+# Write to various pseudo file systems.
+neverallow { appdomain -bluetooth -nfc }
+    sysfs:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+neverallow appdomain
+    proc:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# Access to syslog(2) or /proc/kmsg.
+neverallow appdomain kernel:system { syslog_read syslog_mod syslog_console };
+
+# SELinux is not an API for apps to use
+neverallow { appdomain -shell } *:security { compute_av check_context };
+neverallow { appdomain -shell } *:netlink_selinux_socket *;
+
+# Ability to perform any filesystem operation other than statfs(2).
+# i.e. no mount(2), unmount(2), etc.
+neverallow appdomain fs_type:filesystem ~getattr;
+
+# prevent creation/manipulation of globally readable symlinks
+neverallow appdomain {
+  apk_data_file
+  cache_file
+  cache_recovery_file
+  dev_type
+  rootfs
+  system_file
+  tmpfs
+}:lnk_file { append create link unlink relabelfrom rename setattr write };
+
+# Applications should use the activity model for receiving events
+neverallow {
+  appdomain
+  -shell # bugreport
+} input_device:chr_file ~getattr;
+
+# Do not allow access to Bluetooth-related system properties except for a few allowed domains.
+# neverallow rules for access to Bluetooth-related data files are above.
+neverallow {
+  appdomain
+  -bluetooth
+  -system_app
+} { bluetooth_audio_hal_prop bluetooth_a2dp_offload_prop bluetooth_prop exported_bluetooth_prop }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# allow system_app to access Nfc-related system properties.
+
+#line 196
+
+#line 196
+allow system_app property_socket:sock_file write;
+#line 196
+allow system_app init:unix_stream_socket connectto;
+#line 196
+
+#line 196
+allow system_app nfc_prop:property_service set;
+#line 196
+
+#line 196
+allow system_app nfc_prop:file { getattr open read map };
+#line 196
+
+#line 196
+
+
+# allow system_app to access radio_config system properties.
+
+#line 199
+
+#line 199
+allow system_app property_socket:sock_file write;
+#line 199
+allow system_app init:unix_stream_socket connectto;
+#line 199
+
+#line 199
+allow system_app radio_control_prop:property_service set;
+#line 199
+
+#line 199
+allow system_app radio_control_prop:file { getattr open read map };
+#line 199
+
+#line 199
+
+
+# Apps cannot access proc_uid_time_in_state
+neverallow appdomain proc_uid_time_in_state:file *;
+
+# Apps cannot access proc_uid_concurrent_active_time
+neverallow appdomain proc_uid_concurrent_active_time:file *;
+
+# Apps cannot access proc_uid_concurrent_policy_time
+neverallow appdomain proc_uid_concurrent_policy_time:file *;
+
+# Apps cannot access proc_uid_cpupower
+neverallow appdomain proc_uid_cpupower:file *;
+
+# Apps may not read /proc/net/{tcp,tcp6,udp,udp6}. These files leak information across the
+# application boundary. VPN apps may use the ConnectivityManager.getConnectionOwnerUid() API to
+# perform UID lookups.
+neverallow { appdomain -shell } proc_net_tcp_udp:file *;
+
+# Apps cannot access bootstrap files. The bootstrap files are only for
+# extremely early processes (like init, etc.) which are started before
+# the runtime APEX is activated and Bionic libs are provided from there.
+# If app process accesses (or even load/execute) the bootstrap files,
+# it might cause problems such as ODR violation, etc.
+neverallow appdomain system_bootstrap_lib_file:file
+    { open read write append execute execute_no_trans map };
+neverallow appdomain system_bootstrap_lib_file:dir
+    { open read getattr search };
+#line 1 "system/sepolicy/public/app_zygote.te"
+# app_zygote is an auxiliary zygote process that is used to spawn
+# isolated service processes for individual applications. It is
+# spawned from the regular zygote process as a "child zygote".
+
+type app_zygote, domain;
+type app_zygote_tmpfs, file_type;
+#line 1 "system/sepolicy/public/artd.te"
+# ART service daemon.
+type artd, domain;
+#line 1 "system/sepolicy/public/asan_extract.te"
+# asan_extract
+#
+# This command set moves the artifact corresponding to the current slot
+# from /data/ota to /data/dalvik-cache.
+
+#line 33
+
+#line 1 "system/sepolicy/public/atrace.te"
+type atrace, domain, coredomain;
+#line 1 "system/sepolicy/public/audioserver.te"
+# audioserver - audio services daemon
+type audioserver, domain;
+type audioserver_tmpfs, file_type;
+
+# Allow audioserver to signal audio HAL processes and dump their stacks.
+allow audioserver hal_audio_server:process signal;
+
+# Allow audioserver to access sensorservice.
+allow audioserver sensorservice_service:service_manager find;
+allow audioserver system_server:unix_stream_socket { read write };
+#line 1 "system/sepolicy/public/blkid.te"
+# blkid called from vold
+type blkid, domain;
+#line 1 "system/sepolicy/public/blkid_untrusted.te"
+# blkid for untrusted block devices
+type blkid_untrusted, domain;
+#line 1 "system/sepolicy/public/bluetooth.te"
+# bluetooth subsystem
+type bluetooth, domain;
+#line 1 "system/sepolicy/public/bootanim.te"
+# bootanimation oneshot service
+type bootanim, domain;
+type bootanim_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+typeattribute bootanim halclientdomain;
+#line 5
+typeattribute bootanim hal_configstore_client;
+#line 5
+
+#line 5
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 5
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 5
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 5
+
+#line 5
+typeattribute bootanim hal_configstore;
+#line 5
+# Find passthrough HAL implementations
+#line 5
+allow hal_configstore system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow hal_configstore vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow hal_configstore vendor_file:file { read open getattr execute map };
+#line 5
+
+#line 5
+
+
+#line 6
+typeattribute bootanim halclientdomain;
+#line 6
+typeattribute bootanim hal_graphics_allocator_client;
+#line 6
+
+#line 6
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 6
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 6
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 6
+
+#line 6
+typeattribute bootanim hal_graphics_allocator;
+#line 6
+# Find passthrough HAL implementations
+#line 6
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 6
+
+#line 6
+
+
+#line 7
+typeattribute bootanim halclientdomain;
+#line 7
+typeattribute bootanim hal_graphics_composer_client;
+#line 7
+
+#line 7
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 7
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 7
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 7
+
+#line 7
+typeattribute bootanim hal_graphics_composer;
+#line 7
+# Find passthrough HAL implementations
+#line 7
+allow hal_graphics_composer system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow hal_graphics_composer vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow hal_graphics_composer vendor_file:file { read open getattr execute map };
+#line 7
+
+#line 7
+
+
+
+#line 9
+# Call the servicemanager and transfer references to it.
+#line 9
+allow bootanim servicemanager:binder { call transfer };
+#line 9
+# Allow servicemanager to send out callbacks
+#line 9
+allow servicemanager bootanim:binder { call transfer };
+#line 9
+# servicemanager performs getpidcon on clients.
+#line 9
+allow servicemanager bootanim:dir search;
+#line 9
+allow servicemanager bootanim:file { read open };
+#line 9
+allow servicemanager bootanim:process getattr;
+#line 9
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 9
+# all domains in domain.te.
+#line 9
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow bootanim surfaceflinger:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow surfaceflinger bootanim:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow bootanim surfaceflinger:fd use;
+#line 10
+
+
+#line 11
+# Call the server domain and optionally transfer references to it.
+#line 11
+allow bootanim audioserver:binder { call transfer };
+#line 11
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 11
+allow audioserver bootanim:binder transfer;
+#line 11
+# Receive and use open files from the server.
+#line 11
+allow bootanim audioserver:fd use;
+#line 11
+
+
+
+#line 13
+# Call the hwservicemanager and transfer references to it.
+#line 13
+allow bootanim hwservicemanager:binder { call transfer };
+#line 13
+# Allow hwservicemanager to send out callbacks
+#line 13
+allow hwservicemanager bootanim:binder { call transfer };
+#line 13
+# hwservicemanager performs getpidcon on clients.
+#line 13
+allow hwservicemanager bootanim:dir search;
+#line 13
+allow hwservicemanager bootanim:file { read open map };
+#line 13
+allow hwservicemanager bootanim:process getattr;
+#line 13
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 13
+# all domains in domain.te.
+#line 13
+
+
+allow bootanim gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow bootanim gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow bootanim sysfs_gpu:file { getattr open read ioctl lock map watch watch_reads };
+
+# /oem access
+allow bootanim oemfs:dir { open getattr read search ioctl lock watch watch_reads };
+# boot animations on oem are stored with specific label
+allow bootanim bootanim_oem_file:file { getattr open read ioctl lock map watch watch_reads };
+
+allow bootanim audio_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow bootanim audio_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+allow bootanim audioserver_service:service_manager find;
+allow bootanim surfaceflinger_service:service_manager find;
+allow bootanim surfaceflinger:unix_stream_socket { read write };
+
+# Allow access to ion memory allocation device
+allow bootanim ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow access to DMA-BUF system heap
+allow bootanim dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+allow bootanim hal_graphics_allocator:fd use;
+
+# Fences
+allow bootanim hal_graphics_composer:fd use;
+
+# Read access to pseudo filesystems.
+allow bootanim proc_meminfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# System file accesses.
+allow bootanim system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1 "system/sepolicy/public/bootstat.te"
+# bootstat command
+type bootstat, domain;
+type bootstat_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+allow bootstat runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 5
+
+
+# Allow persistent storage in /data/misc/bootstat.
+allow bootstat bootstat_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow bootstat bootstat_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow bootstat metadata_file:dir search;
+allow bootstat metadata_bootstat_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow bootstat metadata_bootstat_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# ToDo: TBI move access for the following to a system health HAL
+
+# Allow access to /sys/fs/pstore/ and syslog
+allow bootstat pstorefs:dir search;
+allow bootstat pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+allow bootstat kernel:system syslog_read;
+
+# Allow access to reading the logs to read aspects of system health
+
+#line 23
+allow bootstat logcat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 23
+
+#line 23
+allow bootstat logdr_socket:sock_file write;
+#line 23
+allow bootstat logd:unix_stream_socket connectto;
+#line 23
+
+#line 23
+
+
+# Allow bootstat write to statsd.
+
+#line 26
+allow bootstat statsdw_socket:sock_file write;
+#line 26
+allow bootstat statsd:unix_dgram_socket sendto;
+#line 26
+
+
+neverallow {
+  domain
+  -bootstat
+  -init
+} system_boot_reason_prop:property_service set;
+#line 1 "system/sepolicy/public/bpfloader.te"
+type bpfloader, domain, coredomain;
+#line 1 "system/sepolicy/public/bufferhubd.te"
+# bufferhubd
+type bufferhubd, domain, mlstrustedsubject;
+type bufferhubd_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+typeattribute bufferhubd halclientdomain;
+#line 5
+typeattribute bufferhubd hal_graphics_allocator_client;
+#line 5
+
+#line 5
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 5
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 5
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 5
+
+#line 5
+typeattribute bufferhubd hal_graphics_allocator;
+#line 5
+# Find passthrough HAL implementations
+#line 5
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 5
+
+#line 5
+
+
+# TODO(b/112338294): remove these after migrate to Binder
+
+#line 8
+# Mark the server domain as a PDX server.
+#line 8
+typeattribute bufferhubd pdx_bufferhub_client_server_type;
+#line 8
+# Allow the init process to create the initial endpoint socket.
+#line 8
+allow init pdx_bufferhub_client_endpoint_socket_type:unix_stream_socket { create bind };
+#line 8
+# Allow the server domain to use the endpoint socket and accept connections on it.
+#line 8
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 8
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 8
+allow bufferhubd pdx_bufferhub_client_endpoint_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown listen accept };
+#line 8
+# Allow the server domain to apply security context label to the channel socket pair (allow process to use setsockcreatecon_raw()).
+#line 8
+allow bufferhubd self:process setsockcreate;
+#line 8
+# Allow the server domain to create a client channel socket.
+#line 8
+allow bufferhubd pdx_bufferhub_client_channel_socket_type:unix_stream_socket { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } };
+#line 8
+# Prevent other processes from claiming to be a server for the same service.
+#line 8
+neverallow {domain -bufferhubd} pdx_bufferhub_client_endpoint_socket_type:unix_stream_socket { listen accept };
+#line 8
+
+
+#line 9
+
+#line 9
+# Allow client to open the service endpoint file.
+#line 9
+allow bufferhubd pdx_performance_client_endpoint_dir_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow bufferhubd pdx_performance_client_endpoint_socket_type:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 9
+# Allow the client to connect to endpoint socket.
+#line 9
+allow bufferhubd pdx_performance_client_endpoint_socket_type:unix_stream_socket { connectto read write shutdown };
+#line 9
+
+#line 9
+
+#line 9
+# Allow the client to use the PDX channel socket.
+#line 9
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 9
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 9
+allow bufferhubd pdx_performance_client_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 9
+# Client needs to use an channel event fd from the server.
+#line 9
+allow bufferhubd pdx_performance_client_server_type:fd use;
+#line 9
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 9
+# This could be tightened on a per-server basis, but keeping track of service
+#line 9
+# clients is error prone.
+#line 9
+allow pdx_performance_client_server_type bufferhubd:fd use;
+#line 9
+
+#line 9
+
+
+# Access the GPU.
+allow bufferhubd gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access /dev/ion
+allow bufferhubd ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Receive sync fence FDs from hal_omx_server. Note that hal_omx_server never directly
+# connects to bufferhubd via PDX. Instead, a VR app acts as a bridge between
+# those two: it talks to hal_omx_server via Binder and talks to bufferhubd via PDX.
+# Thus, there is no need to use pdx_client macro.
+allow bufferhubd hal_omx_server:fd use;
+
+# Codec2 is similar to OMX
+allow bufferhubd hal_codec2_server:fd use;
+
+#line 1 "system/sepolicy/public/camera_service_server.te"
+
+#line 1
+  allow camera_service_server fwk_camera_hwservice:hwservice_manager { add find };
+#line 1
+  allow camera_service_server hidl_base_hwservice:hwservice_manager add;
+#line 1
+  neverallow { domain -camera_service_server } fwk_camera_hwservice:hwservice_manager add;
+#line 1
+
+#line 1 "system/sepolicy/public/cameraserver.te"
+# cameraserver - camera daemon
+type cameraserver, domain;
+type cameraserver_exec, system_file_type, exec_type, file_type;
+type cameraserver_tmpfs, file_type;
+
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow cameraserver servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager cameraserver:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager cameraserver:dir search;
+#line 6
+allow servicemanager cameraserver:file { read open };
+#line 6
+allow servicemanager cameraserver:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow cameraserver binderservicedomain:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow binderservicedomain cameraserver:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow cameraserver binderservicedomain:fd use;
+#line 7
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow cameraserver appdomain:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow appdomain cameraserver:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow cameraserver appdomain:fd use;
+#line 8
+
+
+#line 9
+typeattribute cameraserver binderservicedomain;
+#line 9
+
+
+
+#line 11
+typeattribute cameraserver halclientdomain;
+#line 11
+typeattribute cameraserver hal_camera_client;
+#line 11
+
+#line 11
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 11
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 11
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 11
+
+#line 11
+typeattribute cameraserver hal_camera;
+#line 11
+# Find passthrough HAL implementations
+#line 11
+allow hal_camera system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_camera vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_camera vendor_file:file { read open getattr execute map };
+#line 11
+
+#line 11
+
+
+
+#line 13
+typeattribute cameraserver halclientdomain;
+#line 13
+typeattribute cameraserver hal_graphics_allocator_client;
+#line 13
+
+#line 13
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 13
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 13
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 13
+
+#line 13
+typeattribute cameraserver hal_graphics_allocator;
+#line 13
+# Find passthrough HAL implementations
+#line 13
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 13
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 13
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 13
+
+#line 13
+
+
+allow cameraserver ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow cameraserver dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Talk with graphics composer fences
+allow cameraserver hal_graphics_composer:fd use;
+
+
+#line 21
+  allow cameraserver cameraserver_service:service_manager { add find };
+#line 21
+  neverallow { domain -cameraserver } cameraserver_service:service_manager add;
+#line 21
+
+#line 21
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 21
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 21
+  
+#line 21
+
+
+#line 22
+  allow cameraserver fwk_camera_service:service_manager { add find };
+#line 22
+  neverallow { domain -cameraserver } fwk_camera_service:service_manager add;
+#line 22
+
+#line 22
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 22
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 22
+  
+#line 22
+
+
+#line 23
+  allow cameraserver fwk_camera_hwservice:hwservice_manager { add find };
+#line 23
+  allow cameraserver hidl_base_hwservice:hwservice_manager add;
+#line 23
+  neverallow { domain -cameraserver } fwk_camera_hwservice:hwservice_manager add;
+#line 23
+
+
+allow cameraserver activity_service:service_manager find;
+allow cameraserver appops_service:service_manager find;
+allow cameraserver audioserver_service:service_manager find;
+allow cameraserver batterystats_service:service_manager find;
+allow cameraserver cameraproxy_service:service_manager find;
+allow cameraserver mediaserver_service:service_manager find;
+allow cameraserver package_native_service:service_manager find;
+allow cameraserver permission_checker_service:service_manager find;
+allow cameraserver processinfo_service:service_manager find;
+allow cameraserver scheduling_policy_service:service_manager find;
+allow cameraserver sensor_privacy_service:service_manager find;
+allow cameraserver surfaceflinger_service:service_manager find;
+
+allow cameraserver hidl_token_hwservice:hwservice_manager find;
+allow cameraserver hal_camera_service:service_manager find;
+allow cameraserver virtual_camera_service:service_manager find;
+
+# Allow to talk with surfaceflinger through unix stream socket
+allow cameraserver surfaceflinger:unix_stream_socket { read write };
+
+###
+### neverallow rules
+###
+
+# cameraserver should never execute any executable without a
+# domain transition
+neverallow cameraserver { file_type fs_type }:file execute_no_trans;
+
+# The goal of the mediaserver split is to place media processing code into
+# restrictive sandboxes with limited responsibilities and thus limited
+# permissions. Example: Audioserver is only responsible for controlling audio
+# hardware and processing audio content. Cameraserver does the same for camera
+# hardware/content. Etc.
+#
+# Media processing code is inherently risky and thus should have limited
+# permissions and be isolated from the rest of the system and network.
+# Lengthier explanation here:
+# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
+neverallow cameraserver domain:{ udp_socket rawip_socket } *;
+neverallow cameraserver { domain  }:tcp_socket *;
+
+# Allow shell commands from ADB for CTS testing/dumping
+allow cameraserver adbd:fd use;
+allow cameraserver adbd:unix_stream_socket { read write };
+allow cameraserver shell:fd use;
+allow cameraserver shell:unix_stream_socket { read write };
+allow cameraserver shell:fifo_file { read write };
+
+# Allow to talk with media codec
+allow cameraserver mediametrics_service:service_manager find;
+
+#line 75
+typeattribute cameraserver halclientdomain;
+#line 75
+typeattribute cameraserver hal_codec2_client;
+#line 75
+
+#line 75
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 75
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 75
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 75
+
+#line 75
+typeattribute cameraserver hal_codec2;
+#line 75
+# Find passthrough HAL implementations
+#line 75
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 75
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 75
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 75
+
+#line 75
+
+
+#line 76
+typeattribute cameraserver halclientdomain;
+#line 76
+typeattribute cameraserver hal_omx_client;
+#line 76
+
+#line 76
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 76
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 76
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 76
+
+#line 76
+typeattribute cameraserver hal_omx;
+#line 76
+# Find passthrough HAL implementations
+#line 76
+allow hal_omx system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 76
+allow hal_omx vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 76
+allow hal_omx vendor_file:file { read open getattr execute map };
+#line 76
+
+#line 76
+
+
+#line 77
+typeattribute cameraserver halclientdomain;
+#line 77
+typeattribute cameraserver hal_allocator_client;
+#line 77
+
+#line 77
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 77
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 77
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 77
+
+#line 77
+typeattribute cameraserver hal_allocator;
+#line 77
+# Find passthrough HAL implementations
+#line 77
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 77
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 77
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 77
+
+#line 77
+
+
+# Allow shell commands from ADB for CTS testing/dumping
+#line 84
+
+#line 1 "system/sepolicy/public/charger.te"
+type charger, charger_type, domain;
+type charger_exec, system_file_type, exec_type, file_type;
+
+# The system charger is a client of HIDL health HAL.
+
+#line 5
+typeattribute charger halclientdomain;
+#line 5
+typeattribute charger hal_health_client;
+#line 5
+
+#line 5
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 5
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 5
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 5
+
+#line 5
+typeattribute charger hal_health;
+#line 5
+# Find passthrough HAL implementations
+#line 5
+allow hal_health system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow hal_health vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow hal_health vendor_file:file { read open getattr execute map };
+#line 5
+
+#line 5
+
+#line 1 "system/sepolicy/public/charger_type.te"
+# Write to /dev/kmsg
+allow charger_type kmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Read access to pseudo filesystems.
+
+#line 5
+allow charger_type rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow charger_type rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 5
+
+
+#line 6
+allow charger_type cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow charger_type cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 6
+
+
+#line 7
+allow charger_type cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow charger_type cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 7
+
+
+# Allow to read /sys/class/power_supply directory
+allow charger_type sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+
+allow charger_type self:{ capability cap_userns } {
+    sys_boot
+    sys_tty_config
+};
+
+
+#line 17
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 17
+# deprecated.
+#line 17
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 17
+allow charger_type sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 17
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 17
+allow charger_type self:{ capability2 cap2_userns } block_suspend;
+#line 17
+# system_suspend permissions
+#line 17
+
+#line 17
+# Call the server domain and optionally transfer references to it.
+#line 17
+allow charger_type system_suspend_server:binder { call transfer };
+#line 17
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 17
+allow system_suspend_server charger_type:binder transfer;
+#line 17
+# Receive and use open files from the server.
+#line 17
+allow charger_type system_suspend_server:fd use;
+#line 17
+
+#line 17
+allow charger_type system_suspend_hwservice:hwservice_manager find;
+#line 17
+# halclientdomain permissions
+#line 17
+
+#line 17
+# Call the hwservicemanager and transfer references to it.
+#line 17
+allow charger_type hwservicemanager:binder { call transfer };
+#line 17
+# Allow hwservicemanager to send out callbacks
+#line 17
+allow hwservicemanager charger_type:binder { call transfer };
+#line 17
+# hwservicemanager performs getpidcon on clients.
+#line 17
+allow hwservicemanager charger_type:dir search;
+#line 17
+allow hwservicemanager charger_type:file { read open map };
+#line 17
+allow hwservicemanager charger_type:process getattr;
+#line 17
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 17
+# all domains in domain.te.
+#line 17
+
+#line 17
+
+#line 17
+allow charger_type hwservicemanager_prop:file { getattr open read map };
+#line 17
+
+#line 17
+allow charger_type hidl_manager_hwservice:hwservice_manager find;
+#line 17
+# AIDL suspend hal permissions
+#line 17
+allow charger_type hal_system_suspend_service:service_manager find;
+#line 17
+
+#line 17
+# Call the servicemanager and transfer references to it.
+#line 17
+allow charger_type servicemanager:binder { call transfer };
+#line 17
+# Allow servicemanager to send out callbacks
+#line 17
+allow servicemanager charger_type:binder { call transfer };
+#line 17
+# servicemanager performs getpidcon on clients.
+#line 17
+allow servicemanager charger_type:dir search;
+#line 17
+allow servicemanager charger_type:file { read open };
+#line 17
+allow servicemanager charger_type:process getattr;
+#line 17
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 17
+# all domains in domain.te.
+#line 17
+
+#line 17
+
+
+allow charger_type self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Read/write to /sys/power/state
+allow charger_type sysfs_power:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+
+#line 24
+allow charger_type sysfs_batteryinfo:dir { open getattr read search ioctl lock watch watch_reads };
+#line 24
+allow charger_type sysfs_batteryinfo:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 24
+
+
+# Read /sys/fs/pstore/console-ramoops
+# Don't worry about overly broad permissions for now, as there's
+# only one file in /sys/fs/pstore
+allow charger_type pstorefs:dir { open getattr read search ioctl lock watch watch_reads };
+allow charger_type pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+
+allow charger_type graphics_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow charger_type graphics_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow charger_type input_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow charger_type input_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow charger_type tty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow charger_type proc_sysrq:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/public/charger_vendor.te"
+# Context when health HAL runs charger mode
+
+type charger_vendor, charger_type, domain;
+
+#line 4
+typeattribute charger_vendor halserverdomain;
+#line 4
+typeattribute charger_vendor hal_health_server;
+#line 4
+typeattribute charger_vendor hal_health;
+#line 4
+
+
+typeattribute charger_vendor bpfdomain;
+#line 1 "system/sepolicy/public/crash_dump.te"
+type crash_dump, domain;
+type crash_dump_exec, system_file_type, exec_type, file_type;
+
+# crash_dump might inherit CAP_SYS_PTRACE from a privileged process,
+# which will result in an audit log even when it's allowed to trace.
+dontaudit crash_dump self:{ capability cap_userns } { sys_ptrace };
+
+#line 13
+
+
+# Use inherited file descriptors
+allow crash_dump domain:fd use;
+
+# Read/write IPC pipes inherited from crashing processes.
+allow crash_dump domain:fifo_file { read write };
+
+# Append to pipes given to us by processes requesting dumps (e.g. dumpstate)
+allow crash_dump domain:fifo_file { append };
+
+# Read information from /proc/$PID.
+allow crash_dump domain:process getattr;
+
+
+#line 27
+allow crash_dump domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 27
+allow crash_dump domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 27
+
+allow crash_dump exec_type:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read /data/dalvik-cache.
+allow crash_dump dalvikcache_data_file:dir { search getattr };
+allow crash_dump dalvikcache_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read APEX data directories.
+allow crash_dump apex_module_data_file:dir { getattr search };
+
+# Read uptime
+allow crash_dump proc_uptime:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read APK files.
+
+#line 41
+allow crash_dump apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 41
+allow crash_dump apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 41
+;
+
+# Read all /vendor
+
+#line 44
+allow crash_dump { vendor_file same_process_hal_file }:dir { open getattr read search ioctl lock watch watch_reads };
+#line 44
+allow crash_dump { vendor_file same_process_hal_file }:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 44
+
+
+# Read all /data/local/tests
+
+#line 47
+allow crash_dump shell_test_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 47
+allow crash_dump shell_test_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 47
+
+
+# Talk to tombstoned
+
+#line 50
+allow crash_dump tombstoned_crash_socket:sock_file write;
+#line 50
+allow crash_dump tombstoned:unix_stream_socket connectto;
+#line 50
+
+
+# Talk to ActivityManager.
+
+#line 53
+allow crash_dump system_ndebug_socket:sock_file write;
+#line 53
+allow crash_dump system_server:unix_stream_socket connectto;
+#line 53
+
+
+# Append to ANR files.
+allow crash_dump anr_data_file:file { append getattr };
+
+# Append to tombstone files.
+allow crash_dump tombstone_data_file:file { append getattr };
+
+# crash_dump writes out logcat logs at the bottom of tombstones,
+# which is super useful in some cases.
+
+#line 63
+allow crash_dump logdr_socket:sock_file write;
+#line 63
+allow crash_dump logd:unix_stream_socket connectto;
+#line 63
+
+
+# Crash dump is not intended to access the following files. Since these
+# are WAI, suppress the denials to clean up the logs.
+dontaudit crash_dump {
+  core_data_file_type
+  vendor_file_type
+}:dir search;
+dontaudit crash_dump system_data_file:{ lnk_file file } read;
+dontaudit crash_dump property_type:file read;
+
+###
+### neverallow assertions
+###
+
+# A domain transition must occur for crash_dump to get the privileges needed to trace the process.
+# Do not allow the execution of crash_dump without a domain transition.
+neverallow domain crash_dump_exec:file execute_no_trans;
+#line 1 "system/sepolicy/public/credstore.te"
+type credstore, domain;
+type credstore_exec, system_file_type, exec_type, file_type;
+
+# credstore daemon
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow credstore servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager credstore:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager credstore:dir search;
+#line 5
+allow servicemanager credstore:file { read open };
+#line 5
+allow servicemanager credstore:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+#line 6
+typeattribute credstore binderservicedomain;
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow credstore system_server:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow system_server credstore:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow credstore system_server:fd use;
+#line 7
+
+
+allow credstore credstore_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow credstore credstore_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+
+#line 12
+  allow credstore credstore_service:service_manager { add find };
+#line 12
+  neverallow { domain -credstore } credstore_service:service_manager add;
+#line 12
+
+#line 12
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 12
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 12
+  
+#line 12
+
+allow credstore sec_key_att_app_id_provider_service:service_manager find;
+allow credstore dropbox_service:service_manager find;
+allow credstore authorization_service:service_manager find;
+allow credstore keystore:keystore2 get_auth_token;
+
+
+#line 18
+allow credstore cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow credstore cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 18
+
+
+#line 19
+allow credstore cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow credstore cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 19
+
+#line 1 "system/sepolicy/public/device.te"
+# Device types
+type device, dev_type, fs_type;
+type ashmem_device, dev_type, mlstrustedobject;
+type ashmem_libcutils_device, dev_type, mlstrustedobject;
+type audio_device, dev_type;
+type binder_device, dev_type, mlstrustedobject;
+type hwbinder_device, dev_type, mlstrustedobject, isolated_compute_allowed_device;
+type vndbinder_device, dev_type;
+type block_device, dev_type;
+type bt_device, dev_type;
+type camera_device, dev_type;
+type dm_device, dev_type;
+type ublk_block_device, dev_type;
+type dm_user_device, dev_type;
+type ublk_control_device, dev_type;
+type keychord_device, dev_type;
+type loop_control_device, dev_type;
+type loop_device, dev_type;
+type pmsg_device, dev_type, mlstrustedobject;
+type radio_device, dev_type;
+type ram_device, dev_type;
+type rtc_device, dev_type;
+type vd_device, dev_type;
+type vold_device, dev_type;
+type console_device, dev_type;
+type fscklogs, dev_type;
+# GPU (used by most UI apps)
+type gpu_device, dev_type, mlstrustedobject;
+type graphics_device, dev_type;
+type hw_random_device, dev_type;
+type input_device, dev_type;
+type port_device, dev_type;
+type lowpan_device, dev_type;
+type mtp_device, dev_type, mlstrustedobject;
+type nfc_device, dev_type;
+type ptmx_device, dev_type, mlstrustedobject;
+type kmsg_device, dev_type, mlstrustedobject;
+type kmsg_debug_device, dev_type;
+type null_device, dev_type, mlstrustedobject;
+type random_device, dev_type, mlstrustedobject;
+type secure_element_device, dev_type;
+type sensors_device, dev_type;
+type serial_device, dev_type;
+type socket_device, dev_type;
+type owntty_device, dev_type, mlstrustedobject;
+type tty_device, dev_type;
+type video_device, dev_type;
+type zero_device, dev_type, mlstrustedobject;
+type fuse_device, dev_type, mlstrustedobject;
+type iio_device, dev_type;
+type ion_device, dev_type, mlstrustedobject, isolated_compute_allowed_device;
+type dmabuf_heap_device, dmabuf_heap_device_type, dev_type, mlstrustedobject;
+type dmabuf_system_heap_device, dmabuf_heap_device_type, dev_type, mlstrustedobject, isolated_compute_allowed_device;
+type dmabuf_system_secure_heap_device, dmabuf_heap_device_type, dev_type, mlstrustedobject;
+type qtaguid_device, dev_type;
+type watchdog_device, dev_type;
+type uhid_device, dev_type, mlstrustedobject;
+type uio_device, dev_type;
+type tun_device, dev_type, mlstrustedobject;
+type usbaccessory_device, dev_type, mlstrustedobject;
+type usb_device, dev_type, mlstrustedobject;
+type usb_serial_device, dev_type;
+type gnss_device, dev_type;
+type properties_device, dev_type;
+type properties_serial, dev_type;
+type property_info, dev_type;
+type hidraw_device, dev_type;
+
+# All devices have a uart for the hci
+# attach service. The uart dev node
+# varies per device. This type
+# is used in per device policy
+type hci_attach_dev, dev_type;
+
+# All devices have a rpmsg device for
+# achieving remoteproc and rpmsg modules
+type rpmsg_device, dev_type;
+
+# Partition layout block device
+type root_block_device, dev_type;
+
+# factory reset protection block device
+type frp_block_device, dev_type;
+
+# System block device mounted on /system.
+# Documented at https://source.android.com/devices/bootloader/partitions
+type system_block_device, dev_type;
+
+# Recovery block device.
+# Documented at https://source.android.com/devices/bootloader/partitions
+type recovery_block_device, dev_type;
+
+# boot block device.
+# Documented at https://source.android.com/devices/bootloader/partitions
+type boot_block_device, dev_type;
+
+# dtbo block device, type used for getting DTBO information for AVF.
+# Documented at https://source.android.com/docs/core/architecture/dto/partitions
+type dtbo_block_device, dev_type;
+
+# Userdata block device mounted on /data.
+# Documented at https://source.android.com/devices/bootloader/partitions
+type userdata_block_device, dev_type;
+
+# Zoned block device.
+type zoned_block_device, dev_type;
+
+# Cache block device mounted on /cache.
+# Documented at https://source.android.com/devices/bootloader/partitions
+type cache_block_device, dev_type;
+
+# Block device for any swap partition.
+type swap_block_device, dev_type;
+
+# Metadata block device mounted on /metadata, used for encryption metadata and
+# various other purposes.
+# Documented at https://source.android.com/devices/bootloader/partitions
+type metadata_block_device, dev_type;
+
+# The 'misc' partition used by recovery and A/B.
+# Documented at https://source.android.com/devices/bootloader/partitions
+type misc_block_device, dev_type;
+
+# 'super' partition to be used for logical partitioning.
+type super_block_device, super_block_device_type, dev_type;
+
+# sdcard devices; normally vold uses the vold_block_device label and creates a
+# separate device node. gsid, however, accesses the original devide node
+# created through uevents, so we use a separate label.
+type sdcard_block_device, dev_type;
+
+# Userdata device file for filesystem tunables
+type userdata_sysdev, dev_type;
+
+# Root disk file for disk tunables
+type rootdisk_sysdev, dev_type;
+
+# vfio device
+type vfio_device, dev_type;
+#line 1 "system/sepolicy/public/dhcp.te"
+type dhcp, domain;
+type dhcp_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+typeattribute dhcp netdomain;
+#line 4
+
+
+allow dhcp cgroup:dir { create write add_name };
+allow dhcp cgroup_v2:dir { create write add_name };
+allow dhcp self:{ capability cap_userns } { setgid setuid net_admin net_raw net_bind_service };
+allow dhcp self:packet_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow dhcp self:netlink_route_socket nlmsg_write;
+allow dhcp shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow dhcp system_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow dhcp vendor_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# dhcpcd runs dhcpcd-hooks/*, which runs getprop / setprop (toolbox_exec)
+allow dhcp toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# For /proc/sys/net/ipv4/conf/*/promote_secondaries
+allow dhcp proc_net_type:file write;
+
+allow dhcp dhcp_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow dhcp dhcp_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# PAN connections
+allow dhcp netd:fd use;
+allow dhcp netd:fifo_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow dhcp netd:{ { udp_socket unix_dgram_socket } unix_stream_socket } { read write };
+allow dhcp netd:{ netlink_kobject_uevent_socket netlink_route_socket netlink_nflog_socket } { read write };
+#line 1 "system/sepolicy/public/display_service_server.te"
+
+#line 1
+  allow display_service_server fwk_display_hwservice:hwservice_manager { add find };
+#line 1
+  allow display_service_server hidl_base_hwservice:hwservice_manager add;
+#line 1
+  neverallow { domain -display_service_server } fwk_display_hwservice:hwservice_manager add;
+#line 1
+
+#line 1 "system/sepolicy/public/dnsmasq.te"
+# DNS, DHCP services
+type dnsmasq, domain;
+type dnsmasq_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+typeattribute dnsmasq netdomain;
+#line 5
+
+allowxperm dnsmasq self:udp_socket ioctl 
+#line 6
+{
+#line 6
+# qualcomm rmnet ioctls
+#line 6
+0x00006900 0x00006902
+#line 6
+# socket ioctls
+#line 6
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 6
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 6
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 6
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 6
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 6
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 6
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 6
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 6
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 6
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 6
+# device and protocol specific ioctls
+#line 6
+0x000089f0-0x000089ff
+#line 6
+0x000089e0-0x000089ef
+#line 6
+# Wireless extension ioctls
+#line 6
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 6
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 6
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 6
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 6
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 6
+0x00008b34 0x00008b35 0x00008b36
+#line 6
+# Dev private ioctl i.e. hardware specific ioctls
+#line 6
+0x00008be0-0x00008bff
+#line 6
+};
+
+# TODO:  Run with dhcp group to avoid need for dac_override.
+allow dnsmasq self:{ capability cap_userns } { dac_override dac_read_search };
+
+allow dnsmasq self:{ capability cap_userns } { net_admin net_raw net_bind_service setgid setuid };
+
+allow dnsmasq dhcp_data_file:dir { open search write add_name remove_name lock };
+allow dnsmasq dhcp_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Inherit and use open files from netd.
+allow dnsmasq netd:fd use;
+allow dnsmasq netd:fifo_file { getattr read write };
+# TODO: Investigate whether these inherited sockets should be closed on exec.
+allow dnsmasq netd:netlink_kobject_uevent_socket { read write };
+allow dnsmasq netd:netlink_nflog_socket { read write };
+allow dnsmasq netd:netlink_route_socket { read write };
+allow dnsmasq netd:unix_stream_socket { getattr read write };
+allow dnsmasq netd:unix_dgram_socket { read write };
+allow dnsmasq netd:udp_socket { read write };
+#line 1 "system/sepolicy/public/domain.te"
+# Rules for all domains.
+
+# Allow reaping by init.
+allow domain init:process sigchld;
+
+# Intra-domain accesses.
+allow domain self:process {
+    fork
+    sigchld
+    sigkill
+    sigstop
+    signull
+    signal
+    getsched
+    setsched
+    getsession
+    getpgid
+    setpgid
+    getcap
+    setcap
+    getattr
+    setrlimit
+};
+allow domain self:fd use;
+allow domain proc:dir { open getattr read search ioctl lock watch watch_reads };
+allow domain proc_net_type:dir search;
+
+#line 27
+allow domain self:dir { open getattr read search ioctl lock watch watch_reads };
+#line 27
+allow domain self:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 27
+
+allow domain self:{ fifo_file file } { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow domain self:unix_dgram_socket { { create { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } } sendto };
+allow domain self:unix_stream_socket { { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } } connectto };
+
+# Inherit or receive open files from others.
+allow domain init:fd use;
+
+#line 52
+
+
+#line 58
+
+
+# Allow everyone to read aconfig flags
+
+#line 61
+allow domain device_config_aconfig_flags_prop:file { getattr open read map };
+#line 61
+;
+
+# Root fs.
+allow domain tmpfs:dir { getattr search };
+allow domain rootfs:dir search;
+allow domain rootfs:lnk_file { read getattr };
+
+# Device accesses.
+allow domain device:dir search;
+allow domain dev_type:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow domain devpts:dir search;
+allow domain dmabuf_heap_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow domain socket_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow domain owntty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow domain null_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow domain zero_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# /dev/ashmem is being deprecated by means of constraining and eventually
+# removing all "open" permissions. We preserve the other permissions.
+allow domain ashmem_device:chr_file { getattr read ioctl lock map append write };
+# This device is used by libcutils, which is accessible to everyone.
+allow domain ashmem_libcutils_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# /dev/binder can be accessed by ... everyone! :)
+allow { domain -hwservicemanager -vndservicemanager } binder_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+#line 86
+allow {domain -hwservicemanager -vndservicemanager } servicemanager_prop:file { getattr open read map };
+#line 86
+
+
+# Restrict binder ioctls to an allowlist. Additional ioctl commands may be
+# added to individual domains, but this sets safe defaults for all processes.
+allowxperm domain binder_device:chr_file ioctl { {
+#line 90
+0xc0306201 0x40086203 0x40046205
+#line 90
+0x40046206 0x40046207 0x40046208
+#line 90
+0xc0046209 0xc018620b 0xc018620c
+#line 90
+0x4018620d 0x40046210
+#line 90
+0xc0486211
+#line 90
+} };
+
+# /dev/binderfs needs to be accessed by everyone too!
+allow domain binderfs:dir { getattr search };
+allow domain binderfs_logs_proc:dir search;
+allow domain binderfs_features:dir search;
+allow domain binderfs_features:file { getattr open read ioctl lock map watch watch_reads };
+
+allow { domain -servicemanager -vndservicemanager -isolated_app } hwbinder_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow domain ptmx_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow domain random_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow domain proc_random:dir { open getattr read search ioctl lock watch watch_reads };
+allow domain proc_random:file { getattr open read ioctl lock map watch watch_reads };
+allow domain properties_device:dir { search getattr };
+allow domain properties_serial:file { getattr open read ioctl lock map watch watch_reads };
+allow domain property_info:file { getattr open read ioctl lock map watch watch_reads };
+
+# Let everyone read log properties, so that liblog can avoid sending unloggable
+# messages to logd.
+
+#line 109
+allow domain log_property_type:file { getattr open read map };
+#line 109
+
+dontaudit domain property_type:file audit_access;
+allow domain property_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+allow domain init:key search;
+allow domain vold:key search;
+
+# logd access
+
+#line 117
+
+#line 117
+allow domain logdw_socket:sock_file write;
+#line 117
+allow domain logd:unix_dgram_socket sendto;
+#line 117
+
+#line 117
+allow domain pmsg_device:chr_file { open append write lock map };
+#line 117
+
+
+# Directory/link file access for path resolution.
+allow domain {
+    system_file
+    system_lib_file
+    system_seccomp_policy_file
+    system_security_cacerts_file
+}:dir { open getattr read search ioctl lock watch watch_reads };
+allow domain system_file:lnk_file { getattr read };
+
+# Global access to /system/etc/security/cacerts/*, /system/etc/seccomp_policy/*, /system/lib[64]/*,
+# /(system|product|system_ext)/etc/(group|passwd), linker and its config.
+allow domain system_seccomp_policy_file:file { getattr open read ioctl lock map watch watch_reads };
+# cacerts are accessible from public Java API.
+allow domain system_security_cacerts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow domain system_group_file:file { getattr open read ioctl lock map watch watch_reads };
+allow domain system_passwd_file:file { getattr open read ioctl lock map watch watch_reads };
+allow domain system_linker_exec:file { execute read open getattr map };
+allow domain system_linker_config_file:file { getattr open read ioctl lock map watch watch_reads };
+allow domain system_lib_file:file { execute read open getattr map };
+# To allow following symlinks at /system/bin/linker, /system/lib/libc.so, etc.
+allow domain system_linker_exec:lnk_file { read open getattr };
+allow domain system_lib_file:lnk_file { read open getattr };
+
+allow domain system_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+
+allow { appdomain coredomain } system_file:file { execute read open getattr map };
+
+# Make sure system/vendor split doesn not affect non-treble
+# devices
+
+#line 148
+    allow domain system_file:file { execute read open getattr map };
+#line 148
+    allow domain vendor_file_type:dir { search getattr };
+#line 148
+    allow domain vendor_file_type:file { execute read open getattr map };
+#line 148
+    allow domain vendor_file_type:lnk_file { getattr read };
+#line 153
+
+
+# All domains are allowed to open and read directories
+# that contain HAL implementations (e.g. passthrough
+# HALs require clients to have these permissions)
+allow domain vendor_hal_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Everyone can read and execute all same process HALs
+allow domain same_process_hal_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow {
+    domain
+    -coredomain # access is explicitly granted to individual coredomains
+} same_process_hal_file:file { execute read open getattr map };
+
+# Any process can load vndk-sp libraries, which are system libraries
+# used by same process HALs
+allow domain vndk_sp_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow domain vndk_sp_file:file { execute read open getattr map };
+
+# All domains get access to /vendor/etc
+allow domain vendor_configs_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow domain vendor_configs_file:file { read open getattr map };
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 176
+
+#line 176
+    # Allow all domains to be able to follow /system/vendor and/or
+#line 176
+    # /vendor/odm symlinks.
+#line 176
+    allow domain vendor_file_type:lnk_file { getattr open read };
+#line 176
+
+#line 176
+    # This is required to be able to search & read /vendor/lib64
+#line 176
+    # in order to lookup vendor libraries. The execute permission
+#line 176
+    # for coredomains is granted *only* for same process HALs
+#line 176
+    allow domain vendor_file:dir { getattr search };
+#line 176
+
+#line 176
+    # Allow reading and executing out of /vendor to all vendor domains
+#line 176
+    allow { domain -coredomain } vendor_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 176
+    allow { domain -coredomain } vendor_file_type:file { read open getattr execute map };
+#line 176
+    allow { domain -coredomain } vendor_file_type:lnk_file { getattr read };
+#line 176
+
+#line 176
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 190
+
+
+# read and stat any sysfs symlinks
+allow domain sysfs:lnk_file { getattr read };
+
+# libc references /system/usr/share/zoneinfo for timezone related information.
+# This directory is considered to be a VNDK-stable
+allow domain { system_zoneinfo_file }:file { getattr open read ioctl lock map watch watch_reads };
+allow domain { system_zoneinfo_file }:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Lots of processes access current CPU information
+
+#line 201
+allow domain sysfs_devices_system_cpu:dir { open getattr read search ioctl lock watch watch_reads };
+#line 201
+allow domain sysfs_devices_system_cpu:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 201
+
+
+
+#line 203
+allow domain sysfs_usb:dir { open getattr read search ioctl lock watch watch_reads };
+#line 203
+allow domain sysfs_usb:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 203
+;
+
+# If kernel CONFIG_TRANSPARENT_HUGEPAGE is enabled, libjemalloc5 (statically
+# included by libc) reads /sys/kernel/mm/transparent_hugepage/enabled.
+allow domain sysfs_transparent_hugepage:dir search;
+allow domain sysfs_transparent_hugepage:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow search access, and sometimes getattr access, to various directories
+# under /data.  We are fairly lenient in allowing search access to top-level
+# dirs that commonly need to be traversed to get access to the "real" files, as
+# this greatly simplifies the policy and doesn't open up much attack surface.
+
+#line 214
+  allow domain system_data_file:dir getattr;
+#line 216
+
+allow { coredomain appdomain } system_data_file:dir getattr;
+# Anything that accesses anything in /data needs search access to /data itself.
+# This includes vendor components, as they need to access /data/vendor.
+allow domain system_data_root_file:dir { search getattr } ;
+# system_data_file is the default type for directories in /data.  Anything
+# accessing data files with a more specific type often has to traverse a
+# system_data_file directory such as /data/misc to get there.
+allow domain system_data_file:dir search;
+# Anything that accesses files in /data/user (and /data/user_de, etc.) needs
+# search access to these directories themselves.  getattr access is sometimes
+# needed too.
+allow { coredomain appdomain } system_userdir_file:dir { search getattr };
+# Anything that accesses files in /data/media needs search access to /data/media
+# itself.
+allow { coredomain appdomain } media_userdir_file:dir search;
+# TODO restrict this to non-coredomain
+allow domain vendor_userdir_file:dir { getattr search };
+allow domain vendor_data_file:dir { getattr search };
+
+# required by the dynamic linker
+allow domain proc:lnk_file { getattr read };
+
+# /proc/cpuinfo
+allow domain proc_cpuinfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# /dev/cpu_variant:.*
+allow domain dev_cpu_variant:file { getattr open read ioctl lock map watch watch_reads };
+
+# profiling needs to read /proc/sys/kernel/perf_event_max_sample_rate
+allow domain proc_perf:file { getattr open read ioctl lock map watch watch_reads };
+
+# toybox loads libselinux which stats /sys/fs/selinux/
+allow domain selinuxfs:dir search;
+allow domain selinuxfs:file getattr;
+allow domain sysfs:dir search;
+allow domain selinuxfs:filesystem getattr;
+
+# Almost all processes log tracing information to
+# /sys/kernel/debug/tracing/trace_marker
+# The reason behind this is documented in b/6513400
+allow domain debugfs:dir search;
+allow domain debugfs_tracing:dir search;
+allow domain debugfs_tracing_debug:dir search;
+allow domain debugfs_trace_marker:file { open append write lock map };
+
+# Linux lockdown mode offered coarse-grained definitions for access controls. In
+# previous versions of the policy, the integrity permission was neverallowed.
+# It was found that this permission mainly duplicates pre-existing rules in
+# the policy (see b/285443587). Additionally, some access were found to be
+# required (b/269377822). The access vector was removed from kernel 5.16
+# onwards. Grant unconditional access, these rules should be removed from the
+# policy once no kernel <5.16 are supported.
+allow domain self:lockdown { confidentiality integrity };
+
+# Filesystem access.
+allow domain fs_type:filesystem getattr;
+allow domain fs_type:dir getattr;
+
+# Restrict all domains to an allowlist for common socket types. Additional
+# ioctl commands may be added to individual domains, but this sets safe
+# defaults for all processes. Note that granting this allowlist to domain does
+# not grant the ioctl permission on these socket types. That must be granted
+# separately.
+allowxperm domain domain:{ icmp_socket rawip_socket tcp_socket udp_socket }
+  ioctl { 
+#line 281
+{
+#line 281
+# Socket ioctls for gathering information about the interface
+#line 281
+0x00008906 0x00008907
+#line 281
+0x00008910 0x00008912 0x00008913 0x00008915 0x00008917 0x00008919
+#line 281
+0x0000891b 0x00008921 0x00008933 0x00008938 0x00008942
+#line 281
+# Wireless extension ioctls. Primarily get functions.
+#line 281
+0x00008b01 0x00008b05 0x00008b07 0x00008b09 0x00008b0b 0x00008b0d
+#line 281
+0x00008b0f 0x00008b11 0x00008b12 0x00008b13 0x00008b21 0x00008b23
+#line 281
+0x00008b25 0x00008b27 0x00008b29 0x00008b2d
+#line 281
+} {
+#line 281
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 281
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 281
+} };
+# default allowlist for unix sockets.
+allowxperm domain { domain pdx_channel_socket_type }:{ unix_dgram_socket unix_stream_socket }
+  ioctl {
+#line 284
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005413 0x00005414 0x0000541b
+#line 284
+};
+
+# Restrict PTYs to only allowed ioctls.
+# Note that granting this allowlist to domain does
+# not grant the wider ioctl permission. That must be granted
+# separately.
+allowxperm domain devpts:chr_file ioctl {
+#line 290
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 290
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 290
+};
+
+# All domains must clearly enumerate what ioctls they use
+# on filesystem objects (plain files, directories, symbolic links,
+# named pipes, and named sockets). We start off with a safe set.
+allowxperm domain { file_type fs_type domain dev_type }:{ dir { file lnk_file sock_file fifo_file } blk_file } ioctl { 0x00005451 0x00005450 };
+
+# If a domain has ioctl access to tun_device, it must clearly enumerate the
+# ioctls used. Safe defaults are listed below.
+allowxperm domain tun_device:chr_file ioctl { 0x00005451 0x00005450 };
+
+# Allow a process to make a determination whether a file descriptor
+# for a plain file or pipe (fifo_file) is a tty. Note that granting
+# this allowlist to domain does not grant the ioctl permission to
+# these files. That must be granted separately.
+allowxperm domain { file_type fs_type }:file ioctl { 0x00005401 };
+allowxperm domain domain:fifo_file ioctl { 0x00005401 };
+
+# If a domain has access to perform an ioctl on a block device, allow these
+# very common, benign ioctls
+allowxperm domain dev_type:blk_file ioctl { 0x80081272 0x00001268 };
+
+# Support sqlite F2FS specific optimizations
+# ioctl permission on the specific file type is still required
+# TODO: consider only compiling these rules if we know the
+# /data partition is F2FS
+allowxperm domain { file_type sdcard_type }:file ioctl {
+  0xf505
+  0xf502
+  0xf50c
+  0xf50e
+  0xf50d
+  0xf501
+};
+
+# Workaround for policy compiler being too aggressive and removing hwservice_manager_type
+# when it's not explicitly used in allow rules
+allow { domain -domain } hwservice_manager_type:hwservice_manager { add find };
+# Workaround for policy compiler being too aggressive and removing vndservice_manager_type
+# when it's not explicitly used in allow rules
+allow { domain -domain } vndservice_manager_type:service_manager { add find };
+
+# Under ASAN, processes will try to read /data, as the sanitized libraries are there.
+
+# Under ASAN, /system/asan.options needs to be globally accessible.
+
+
+# read APEX dir and stat any symlink pointing to APEXs.
+allow domain apex_mnt_dir:dir { getattr search };
+allow domain apex_mnt_dir:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow everyone to read media server-configurable flags, so that libstagefright can be
+# configured using server-configurable flags
+
+#line 343
+allow domain device_config_media_native_prop:file { getattr open read map };
+#line 343
+
+
+# Allow everyone to read from flag value boot snapshot files and general pb files
+# The boot copy of the flag value files serves flag read traffic for all processes, thus
+# needs to be readable by everybody. Also, the metadata directory will contain pb file
+# that records where flag storage files are, so also needs to be readable by everbody.
+allow domain { aconfig_storage_metadata_file }:file { getattr open read ioctl lock map watch watch_reads };
+
+###
+### neverallow rules
+###
+
+# All ioctls on file-like objects (except chr_file and blk_file) and
+# sockets must be restricted to an allowlist.
+neverallowxperm * *:{ dir { file lnk_file sock_file fifo_file } { socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket xdp_socket } blk_file } ioctl { 0 };
+
+# b/68014825 and https://android-review.googlesource.com/516535
+# rfc6093 says that processes should not use the TCP urgent mechanism
+neverallowxperm domain domain:{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket xdp_socket } ioctl { 0x00008905 };
+
+# TIOCSTI is only ever used for exploits. Block it.
+# b/33073072, b/7530569
+# http://www.openwall.com/lists/oss-security/2016/09/26/14
+neverallowxperm * devpts:chr_file ioctl 0x00005412;
+
+# Do not allow any domain other than init to create unlabeled files.
+neverallow { domain -init -recovery } unlabeled:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } create;
+
+# Limit device node creation to these allowed domains.
+neverallow {
+  domain
+  -kernel
+  -init
+  -ueventd
+  -vold
+} self:{ capability cap_userns } mknod;
+
+# No process can map low memory (< CONFIG_LSM_MMAP_MIN_ADDR).
+neverallow * self:memprotect mmap_zero;
+
+# No domain needs mac_override as it is unused by SELinux.
+neverallow * self:{ capability2 cap2_userns } mac_override;
+
+# Disallow attempts to set contexts not defined in current policy
+# This helps guarantee that unknown or dangerous contents will not ever
+# be set.
+neverallow * self:{ capability2 cap2_userns } mac_admin;
+
+# Once the policy has been loaded there shall be none to modify the policy.
+# It is sealed.
+neverallow * kernel:security load_policy;
+
+# Only init prior to switching context should be able to set enforcing mode.
+# init starts in kernel domain and switches to init domain via setcon in
+# the init.rc, so the setenforce occurs while still in kernel. After
+# switching domains, there is never any need to setenforce again by init.
+neverallow * kernel:security setenforce;
+neverallow { domain -kernel } kernel:security setcheckreqprot;
+
+# No booleans in AOSP policy, so no need to ever set them.
+neverallow * kernel:security setbool;
+
+# Adjusting the AVC cache threshold.
+# Not presently allowed to anything in policy, but possibly something
+# that could be set from init.rc.
+neverallow { domain -init } kernel:security setsecparam;
+
+# Only the kernel hwrng thread should be able to read from the HW RNG.
+neverallow {
+  domain
+  -prng_seeder # PRNG seeder daemon periodically reseeds itself from HW RNG
+  -shell # For CTS, restricted to just getattr in shell.te
+  -ueventd # To create the /dev/hw_random file
+} hw_random_device:chr_file *;
+# b/78174219 b/64114943
+neverallow {
+  domain
+  -shell # stat of /dev, getattr only
+  -ueventd
+} keychord_device:chr_file *;
+
+# Ensure that all entrypoint executables are in exec_type or postinstall_file.
+neverallow * { file_type -exec_type -postinstall_file }:file entrypoint;
+
+# The dynamic linker always calls access(2) on the path. Don't generate SElinux
+# denials since the linker does not actually access the path in case the path
+# does not exist or isn't accessible for the process.
+dontaudit domain postinstall_mnt_dir:dir audit_access;
+
+#Ensure that nothing in userspace can access /dev/port
+neverallow {
+  domain
+  -shell # Shell user should not have any abilities outside of getattr
+  -ueventd
+} port_device:chr_file *;
+neverallow * port_device:chr_file ~{ create relabelto unlink setattr getattr };
+# Only init should be able to configure kernel usermodehelpers or
+# security-sensitive proc settings.
+neverallow { domain -init } usermodehelper:file { append write };
+neverallow { domain -init -ueventd } sysfs_usermodehelper:file { append write };
+neverallow { domain -init -vendor_init } proc_security:file { append open read write };
+
+# Init can't do anything with binder calls. If this neverallow rule is being
+# triggered, it's probably due to a service with no SELinux domain.
+neverallow * init:binder *;
+neverallow * vendor_init:binder *;
+
+# Binderfs logs contain sensitive information about other processes.
+neverallow { domain -dumpstate -init -vendor_init  } { binderfs_logs binderfs_logs_proc }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow { domain -dumpstate -init -vendor_init -system_server } binderfs_logs_stats:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Don't allow raw read/write/open access to block_device
+# Rather force a relabel to a more specific type
+neverallow { domain -kernel -init -recovery } block_device:blk_file { open read write };
+
+# Do not allow renaming of block files or character files
+# Ability to do so can lead to possible use in an exploit chain
+# e.g. https://googleprojectzero.blogspot.com/2016/12/chrome-os-exploit-one-byte-overflow-and.html
+neverallow * *:{ blk_file chr_file } rename;
+
+# Don't allow raw read/write/open access to generic devices.
+# Rather force a relabel to a more specific type.
+neverallow domain device:chr_file { open read write };
+
+# Files from cache should never be executed
+neverallow domain { cache_file cache_backup_file cache_private_backup_file cache_recovery_file }:file execute;
+
+# The test files and executables MUST not be accessible to any domain
+neverallow { domain  } nativetest_data_file:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } { append create link unlink relabelfrom rename setattr write };
+neverallow domain nativetest_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain  } nativetest_data_file:file { execute execute_no_trans };
+
+neverallow { domain -shell -init -adbd } shell_test_data_file:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } { append create link unlink relabelfrom rename setattr write };
+neverallow { domain -shell -init -adbd } shell_test_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain -shell -init -adbd -heapprofd -crash_dump } shell_test_data_file:file *;
+neverallow heapprofd shell_test_data_file:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } };
+neverallow { domain -shell -init -adbd } shell_test_data_file:sock_file *;
+
+# Only the init property service should write to /data/property and /dev/__properties__
+neverallow { domain -init } property_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain -init } property_data_file:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } };
+neverallow { domain -init } property_type:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } };
+neverallow { domain -init } properties_device:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } };
+neverallow { domain -init } properties_serial:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } };
+
+# Nobody should be doing writes to /system & /vendor
+# These partitions are intended to be read-only and must never be
+# modified. Doing so would violate important Android security guarantees
+# and invalidate dm-verity signatures.
+neverallow {
+    domain
+    
+    
+} {
+    system_file_type
+    vendor_file_type
+    exec_type
+}:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create write setattr relabelfrom append unlink link rename };
+
+neverallow { domain -kernel  } { system_file_type vendor_file_type exec_type }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } relabelto;
+
+# Don't allow mounting on top of /system files or directories
+neverallow * exec_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } mounton;
+
+# Nothing should be writing to files in the rootfs.
+neverallow * rootfs:file { create write setattr relabelto append unlink link rename };
+
+# Restrict context mounts to specific types marked with
+# the contextmount_type attribute.
+neverallow * {fs_type -contextmount_type}:filesystem relabelto;
+
+# Ensure that context mount types are not writable, to ensure that
+# the write to /system restriction above is not bypassed via context=
+# mount to another type.
+neverallow * contextmount_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } }
+    { create setattr relabelfrom relabelto append link rename };
+neverallow { domain  } contextmount_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { write unlink };
+
+# Do not allow service_manager add for default service labels.
+# Instead domains should use a more specific type such as
+# system_app_service rather than the generic type.
+# New service_types are defined in {,hw,vnd}service.te and new mappings
+# from service name to service_type are defined in {,hw,vnd}service_contexts.
+neverallow * default_android_service:service_manager *;
+neverallow * default_android_vndservice:service_manager *;
+neverallow * default_android_hwservice:hwservice_manager *;
+
+# Looking up the base class/interface of all HwBinder services is a bad idea.
+# hwservicemanager currently offer such lookups only to make it so that security
+# decisions are expressed in SELinux policy. However, it's unclear whether this
+# lookup has security implications. If it doesn't, hwservicemanager should be
+# modified to not offer this lookup.
+# This rule can be removed if hwservicemanager is modified to not permit these
+# lookups.
+neverallow * hidl_base_hwservice:hwservice_manager find;
+
+# Require that domains explicitly label unknown properties, and do not allow
+# anyone but init to modify unknown properties.
+neverallow { domain -init -vendor_init } mmc_prop:property_service set;
+neverallow { domain -init -vendor_init } vndk_prop:property_service set;
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 544
+
+#line 544
+    neverallow { domain -init } mmc_prop:property_service set;
+#line 544
+    neverallow { domain -init -vendor_init } exported_default_prop:property_service set;
+#line 544
+    neverallow { domain -init } exported_secure_prop:property_service set;
+#line 544
+    neverallow { domain -init -vendor_init } vendor_default_prop:property_service set;
+#line 544
+    neverallow { domain -init -vendor_init } storage_config_prop:property_service set;
+#line 544
+    neverallow { domain -init -vendor_init } hw_timeout_multiplier_prop:property_service set;
+#line 544
+
+#line 544
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 551
+
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 553
+
+#line 553
+    neverallow { domain -init -system_server -vendor_init } exported_pm_prop:property_service set;
+#line 553
+    neverallow { domain -coredomain -vendor_init } exported_pm_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 553
+
+#line 553
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 556
+
+
+# New "pm.dexopt." sysprops should be explicitly listed as exported_pm_prop.
+neverallow { domain -init -dumpstate -vendor_init } future_pm_prop:property_service set;
+neverallow { domain -init -dumpstate -vendor_init } future_pm_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# ART may introduce new sysprops. SELinux denials due to reading new sysprops on
+# old platforms shouldn't be regarded as a problem.
+dontaudit domain future_pm_prop:file read;
+
+neverallow { domain -init } aac_drc_prop:property_service set;
+neverallow { domain -init } build_prop:property_service set;
+neverallow { domain -init } userdebug_or_eng_prop:property_service set;
+
+# Do not allow reading device's serial number from system properties except form
+# a few allowed domains.
+neverallow {
+  domain
+  -adbd
+  -dumpstate
+  -fastbootd
+  -hal_camera_server
+  -hal_cas_server
+  -hal_drm_server
+  -hal_keymint_server
+  
+  -init
+  -mediadrmserver
+  -mediaserver
+  -recovery
+  -shell
+  -system_server
+  -vendor_init
+} serialno_prop:file { getattr open read ioctl lock map watch watch_reads };
+
+neverallow {
+  domain
+  -init
+  -recovery
+  -system_server
+  -ueventd # Further restricted in ueventd.te
+} frp_block_device:blk_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# The metadata block device is set aside for device encryption and
+# verified boot metadata. It may be reset at will and should not
+# be used by other domains.
+neverallow {
+  domain
+  -init
+  -recovery
+  -vold
+  -e2fs
+  -fsck
+  -fastbootd
+  -hal_fastboot_server
+} metadata_block_device:blk_file { append link rename write open read ioctl lock };
+
+# No domain other than recovery, update_engine and fastbootd can write to system partition(s).
+neverallow {
+  domain
+  -fastbootd
+  
+  
+  -recovery
+  -update_engine
+} system_block_device:blk_file { write append };
+
+# Only (hw|vnd|)servicemanager should be able to register with binder as the context manager
+neverallow { domain -servicemanager -hwservicemanager -vndservicemanager } *:binder set_context_mgr;
+# The service managers are only allowed to access their own device node
+neverallow servicemanager hwbinder_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow servicemanager vndbinder_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow hwservicemanager binder_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow hwservicemanager vndbinder_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow vndservicemanager binder_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow vndservicemanager hwbinder_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 633
+
+#line 633
+  # Vendor apps are permited to use only stable public services. If they were to use arbitrary
+#line 633
+  # services which can change any time framework/core is updated, breakage is likely.
+#line 633
+  #
+#line 633
+  # Note, this same logic applies to untrusted apps, but neverallows for these are separate.
+#line 633
+  neverallow {
+#line 633
+    appdomain
+#line 633
+    -coredomain
+#line 633
+  } {
+#line 633
+    service_manager_type
+#line 633
+
+#line 633
+    -app_api_service
+#line 633
+    -ephemeral_app_api_service
+#line 633
+
+#line 633
+    -hal_service_type # see app_neverallows.te
+#line 633
+
+#line 633
+    -apc_service
+#line 633
+    -audioserver_service # TODO(b/36783122) remove exemptions below once app_api_service is fixed
+#line 633
+    -cameraserver_service
+#line 633
+    -drmserver_service
+#line 633
+    -credstore_service
+#line 633
+    -keystore_maintenance_service
+#line 633
+    -keystore_service
+#line 633
+    -legacykeystore_service
+#line 633
+    -mediadrmserver_service
+#line 633
+    -mediaextractor_service
+#line 633
+    -mediametrics_service
+#line 633
+    -mediaserver_service
+#line 633
+    -nfc_service
+#line 633
+    -radio_service
+#line 633
+    -virtual_touchpad_service
+#line 633
+    -vr_manager_service
+#line 633
+    
+#line 633
+  }:service_manager find;
+#line 633
+
+#line 633
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 667
+
+
+# On full TREBLE devices, only vendor components, shell, and su can use VendorBinder.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 670
+
+#line 670
+  neverallow {
+#line 670
+    coredomain
+#line 670
+    -shell
+#line 670
+    
+#line 670
+    -ueventd # uevent is granted create for this device, but we still neverallow I/O below
+#line 670
+  } vndbinder_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 670
+
+#line 670
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 677
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 678
+
+#line 678
+  neverallow ueventd vndbinder_device:chr_file { read write append ioctl };
+#line 678
+
+#line 678
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 680
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 681
+
+#line 681
+  neverallow {
+#line 681
+    coredomain
+#line 681
+    -shell
+#line 681
+    
+#line 681
+  } vndservice_manager_type:service_manager *;
+#line 681
+
+#line 681
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 687
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 688
+
+#line 688
+  neverallow {
+#line 688
+    coredomain
+#line 688
+    -shell
+#line 688
+    
+#line 688
+  } vndservicemanager:binder *;
+#line 688
+
+#line 688
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 694
+
+
+# On full TREBLE devices, socket communications between core components and vendor components are
+# not permitted.
+  # Most general rules first, more specific rules below.
+
+  # Core domains are not permitted to initiate communications to vendor domain sockets.
+  # We are not restricting the use of already established sockets because it is fine for a process
+  # to obtain an already established socket via some public/official/stable API and then exchange
+  # data with its peer over that socket. The wire format in this scenario is dicatated by the API
+  # and thus does not break the core-vendor separation.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 705
+
+#line 705
+  
+#line 705
+  neverallow {
+#line 705
+    coredomain
+#line 705
+    -init
+#line 705
+    -adbd
+#line 705
+  } {
+#line 705
+    domain
+#line 705
+    -coredomain
+#line 705
+    -socket_between_core_and_vendor_violators
+#line 705
+  }:{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket xdp_socket } { connect sendto };
+#line 705
+  neverallow {
+#line 705
+    coredomain
+#line 705
+    -init
+#line 705
+    -adbd
+#line 705
+  } {
+#line 705
+    domain
+#line 705
+    -coredomain
+#line 705
+    -socket_between_core_and_vendor_violators
+#line 705
+  }:unix_stream_socket connectto;
+#line 705
+;
+#line 705
+
+#line 705
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 715
+
+
+  # Vendor domains are not permitted to initiate create/open sockets owned by core domains
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 718
+
+#line 718
+  neverallow {
+#line 718
+    domain
+#line 718
+    -coredomain
+#line 718
+    -appdomain # appdomain restrictions below
+#line 718
+    -data_between_core_and_vendor_violators # b/70393317
+#line 718
+    -socket_between_core_and_vendor_violators
+#line 718
+    -vendor_init
+#line 718
+  } {
+#line 718
+    coredomain_socket
+#line 718
+    core_data_file_type
+#line 718
+    unlabeled # used only by core domains
+#line 718
+  }:sock_file ~{ append getattr ioctl read write };
+#line 718
+
+#line 718
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 731
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 732
+
+#line 732
+  neverallow {
+#line 732
+    appdomain
+#line 732
+    -coredomain
+#line 732
+  } {
+#line 732
+    coredomain_socket
+#line 732
+    unlabeled # used only by core domains
+#line 732
+    core_data_file_type
+#line 732
+    -app_data_file
+#line 732
+    -privapp_data_file
+#line 732
+    -pdx_endpoint_socket_type # used by VR layer
+#line 732
+    -pdx_channel_socket_type # used by VR layer
+#line 732
+  }:sock_file ~{ append getattr ioctl read write };
+#line 732
+
+#line 732
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 745
+
+
+  # Core domains are not permitted to create/open sockets owned by vendor domains
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 748
+
+#line 748
+  neverallow {
+#line 748
+    coredomain
+#line 748
+    -init
+#line 748
+    -ueventd
+#line 748
+    -socket_between_core_and_vendor_violators
+#line 748
+  } {
+#line 748
+    file_type
+#line 748
+    dev_type
+#line 748
+    -coredomain_socket
+#line 748
+    -core_data_file_type
+#line 748
+    -app_data_file_type
+#line 748
+    -unlabeled
+#line 748
+  }:sock_file ~{ append getattr ioctl read write };
+#line 748
+
+#line 748
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 762
+
+
+# On TREBLE devices, vendor and system components are only allowed to share
+# files by passing open FDs over hwbinder. Ban all directory access and all file
+# accesses other than what can be applied to an open FD such as
+# ioctl/stat/read/write/append. This is enforced by segregating /data.
+# Vendor domains may directly access file in /data/vendor by path, but may only
+# access files outside of /data/vendor via an open FD passed over hwbinder.
+# Likewise, core domains may only directly access files outside /data/vendor by
+# path and files in /data/vendor by open FD.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 772
+
+#line 772
+  # only coredomains may only access core_data_file_type, particularly not
+#line 772
+  # /data/vendor
+#line 772
+  neverallow {
+#line 772
+    coredomain
+#line 772
+    -appdomain # TODO(b/34980020) remove exemption for appdomain
+#line 772
+    -data_between_core_and_vendor_violators
+#line 772
+    -init
+#line 772
+    -vold_prepare_subdirs
+#line 772
+  } {
+#line 772
+    data_file_type
+#line 772
+    -core_data_file_type
+#line 772
+    -app_data_file_type
+#line 772
+  }:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } ~{ append getattr ioctl read write map };
+#line 772
+
+#line 772
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 786
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 787
+
+#line 787
+  neverallow {
+#line 787
+    coredomain
+#line 787
+    -appdomain # TODO(b/34980020) remove exemption for appdomain
+#line 787
+    -data_between_core_and_vendor_violators
+#line 787
+    -init
+#line 787
+    -vold_prepare_subdirs
+#line 787
+    } {
+#line 787
+      data_file_type
+#line 787
+      -core_data_file_type
+#line 787
+      -app_data_file_type
+#line 787
+      # TODO(b/72998741) Remove exemption. Further restricted in a subsequent
+#line 787
+      # neverallow. Currently only getattr and search are allowed.
+#line 787
+      -vendor_data_file
+#line 787
+    }:dir *;
+#line 787
+
+#line 787
+
+#line 787
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 803
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 804
+
+#line 804
+  # vendor domains may only access files in /data/vendor, never core_data_file_types
+#line 804
+  neverallow {
+#line 804
+    domain
+#line 804
+    -appdomain # TODO(b/34980020) remove exemption for appdomain
+#line 804
+    -coredomain
+#line 804
+    -data_between_core_and_vendor_violators # TODO(b/34980020) Remove once all violators have been cleaned up
+#line 804
+    -vendor_init
+#line 804
+  } {
+#line 804
+    core_data_file_type
+#line 804
+    
+#line 804
+  }:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } ~{ append getattr ioctl read write map };
+#line 804
+  neverallow {
+#line 804
+    vendor_init
+#line 804
+    -data_between_core_and_vendor_violators
+#line 804
+  } {
+#line 804
+    core_data_file_type
+#line 804
+    -unencrypted_data_file
+#line 804
+    
+#line 804
+  }:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } ~{ append getattr ioctl read write map };
+#line 804
+  # vendor init needs to be able to read unencrypted_data_file to create directories with FBE.
+#line 804
+  # The vendor init binary lives on the system partition so there is not a concern with stability.
+#line 804
+  neverallow vendor_init unencrypted_data_file:file ~{ getattr open read ioctl lock map watch watch_reads };
+#line 804
+
+#line 804
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 827
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 828
+
+#line 828
+  # vendor domains may only access dirs in /data/vendor, never core_data_file_types
+#line 828
+  neverallow {
+#line 828
+    domain
+#line 828
+    -appdomain # TODO(b/34980020) remove exemption for appdomain
+#line 828
+    -coredomain
+#line 828
+    -data_between_core_and_vendor_violators
+#line 828
+    -vendor_init
+#line 828
+  } {
+#line 828
+    core_data_file_type
+#line 828
+    -system_data_file # default label for files on /data. Covered below...
+#line 828
+    -system_data_root_file
+#line 828
+    -vendor_userdir_file
+#line 828
+    -vendor_data_file
+#line 828
+    
+#line 828
+  }:dir *;
+#line 828
+  neverallow {
+#line 828
+    vendor_init
+#line 828
+    -data_between_core_and_vendor_violators
+#line 828
+  } {
+#line 828
+    core_data_file_type
+#line 828
+    -unencrypted_data_file
+#line 828
+    -system_data_file
+#line 828
+    -system_data_root_file
+#line 828
+    -vendor_userdir_file
+#line 828
+    -vendor_data_file
+#line 828
+    
+#line 828
+  }:dir *;
+#line 828
+  # vendor init needs to be able to read unencrypted_data_file to create directories with FBE.
+#line 828
+  # The vendor init binary lives on the system partition so there is not a concern with stability.
+#line 828
+  neverallow vendor_init unencrypted_data_file:dir ~search;
+#line 828
+
+#line 828
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 859
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 860
+
+#line 860
+  # vendor domains may only access dirs in /data/vendor, never core_data_file_types
+#line 860
+  neverallow {
+#line 860
+    domain
+#line 860
+    -appdomain # TODO(b/34980020) remove exemption for appdomain
+#line 860
+    -coredomain
+#line 860
+    -data_between_core_and_vendor_violators # TODO(b/34980020) Remove once all violators have been cleaned up
+#line 860
+    } {
+#line 860
+      system_data_file # default label for files on /data. Covered below
+#line 860
+    }:dir ~{ getattr search };
+#line 860
+
+#line 860
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 870
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 872
+
+#line 872
+  #  coredomains may not access dirs in /data/vendor.
+#line 872
+  neverallow {
+#line 872
+    coredomain
+#line 872
+    -data_between_core_and_vendor_violators # TODO(b/34980020) Remove once all violators have been cleaned up
+#line 872
+    -init
+#line 872
+    -vold # vold creates per-user storage for both system and vendor
+#line 872
+    -vold_prepare_subdirs
+#line 872
+    } {
+#line 872
+      vendor_data_file # default label for files on /data. Covered below
+#line 872
+    }:dir ~{ getattr search };
+#line 872
+
+#line 872
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 883
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 885
+
+#line 885
+  #  coredomains may not access dirs in /data/vendor.
+#line 885
+  neverallow {
+#line 885
+    coredomain
+#line 885
+    -data_between_core_and_vendor_violators # TODO(b/34980020) Remove once all violators have been cleaned up
+#line 885
+    -init
+#line 885
+    } {
+#line 885
+      vendor_data_file # default label for files on /data/vendor{,_ce,_de}.
+#line 885
+    }:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } ~{ append getattr ioctl read write map };
+#line 885
+
+#line 885
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 894
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 896
+
+#line 896
+    # Non-vendor domains are not allowed to file execute shell
+#line 896
+    # from vendor
+#line 896
+    neverallow {
+#line 896
+        coredomain
+#line 896
+        -init
+#line 896
+        -shell
+#line 896
+        -ueventd
+#line 896
+    } vendor_shell_exec:file { execute execute_no_trans };
+#line 896
+
+#line 896
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 905
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 907
+
+#line 907
+    # Do not allow vendor components to execute files from system
+#line 907
+    # except for the ones allowed here.
+#line 907
+    neverallow {
+#line 907
+        domain
+#line 907
+        -coredomain
+#line 907
+        -appdomain
+#line 907
+        -vendor_executes_system_violators
+#line 907
+        -vendor_init
+#line 907
+    } {
+#line 907
+        system_file_type
+#line 907
+        -system_lib_file
+#line 907
+        -system_linker_exec
+#line 907
+        -crash_dump_exec
+#line 907
+        -netutils_wrapper_exec
+#line 907
+        
+#line 907
+        # Vendor components still can invoke shell commands via /system/bin/sh
+#line 907
+        -shell_exec
+#line 907
+        -toolbox_exec
+#line 907
+    }:file { entrypoint execute execute_no_trans };
+#line 907
+
+#line 907
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 927
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 929
+
+#line 929
+    # Do not allow coredomain to access entrypoint for files other
+#line 929
+    # than system_file_type and postinstall_file
+#line 929
+    neverallow coredomain {
+#line 929
+        file_type
+#line 929
+        -system_file_type
+#line 929
+        -postinstall_file
+#line 929
+    }:file entrypoint;
+#line 929
+    # Do not allow domains other than coredomain to access entrypoint
+#line 929
+    # for anything but vendor_file_type and init_exec for vendor_init.
+#line 929
+    neverallow { domain -coredomain } {
+#line 929
+        file_type
+#line 929
+        -vendor_file_type
+#line 929
+        -init_exec
+#line 929
+    }:file entrypoint;
+#line 929
+
+#line 929
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 944
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 946
+
+#line 946
+    # Do not allow system components to execute files from vendor
+#line 946
+    # except for the ones allowed here.
+#line 946
+    neverallow {
+#line 946
+      coredomain
+#line 946
+      -init
+#line 946
+      -shell
+#line 946
+      -system_executes_vendor_violators
+#line 946
+      -ueventd
+#line 946
+    } {
+#line 946
+      vendor_file_type
+#line 946
+      -same_process_hal_file
+#line 946
+      -vndk_sp_file
+#line 946
+      -vendor_app_file
+#line 946
+      -vendor_public_framework_file
+#line 946
+      -vendor_public_lib_file
+#line 946
+    }:file execute;
+#line 946
+
+#line 946
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 963
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 965
+
+#line 965
+    neverallow {
+#line 965
+      coredomain
+#line 965
+      -shell
+#line 965
+      -system_executes_vendor_violators
+#line 965
+    } {
+#line 965
+      vendor_file_type
+#line 965
+      -same_process_hal_file
+#line 965
+    }:file execute_no_trans;
+#line 965
+
+#line 965
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 974
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 976
+
+#line 976
+  # Do not allow vendor components access to /system files except for the
+#line 976
+  # ones allowed here.
+#line 976
+  neverallow {
+#line 976
+    domain
+#line 976
+    -appdomain
+#line 976
+    -coredomain
+#line 976
+    -vendor_executes_system_violators
+#line 976
+    # vendor_init needs access to init_exec for domain transition. vendor_init
+#line 976
+    # neverallows are covered in public/vendor_init.te
+#line 976
+    -vendor_init
+#line 976
+  } {
+#line 976
+    system_file_type
+#line 976
+    -crash_dump_exec
+#line 976
+    -file_contexts_file
+#line 976
+    -netutils_wrapper_exec
+#line 976
+    -property_contexts_file
+#line 976
+    -system_event_log_tags_file
+#line 976
+    -system_group_file
+#line 976
+    -system_lib_file
+#line 976
+    
+#line 976
+    -system_linker_exec
+#line 976
+    -system_linker_config_file
+#line 976
+    -system_passwd_file
+#line 976
+    -system_seccomp_policy_file
+#line 976
+    -system_security_cacerts_file
+#line 976
+    -system_zoneinfo_file
+#line 976
+    -task_profiles_api_file
+#line 976
+    -task_profiles_file
+#line 976
+    
+#line 976
+    # Vendor components still can invoke shell commands via /system/bin/sh
+#line 976
+    -shell_exec
+#line 976
+    -toolbox_exec
+#line 976
+  }:file *;
+#line 976
+
+#line 976
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 1010
+
+
+# Only system_server should be able to send commands via the zygote socket
+neverallow { domain -zygote -system_server } zygote:unix_stream_socket connectto;
+neverallow { domain -system_server } zygote_socket:sock_file write;
+
+neverallow { domain -system_server -webview_zygote -app_zygote } webview_zygote:unix_stream_socket connectto;
+neverallow { domain -system_server } webview_zygote:sock_file write;
+neverallow { domain -system_server } app_zygote:sock_file write;
+
+neverallow domain tombstoned_crash_socket:unix_stream_socket connectto;
+
+# Never allow anyone except dumpstate, incidentd, or the system server to connect or write to
+# the tombstoned intercept socket.
+neverallow { domain -dumpstate -incidentd -system_server } tombstoned_intercept_socket:sock_file write;
+neverallow { domain -dumpstate -incidentd -system_server } tombstoned_intercept_socket:unix_stream_socket connectto;
+
+# Never allow anyone but system_server to read heapdumps in /data/system/heapdump.
+neverallow { domain -init -system_server } heapdump_data_file:file read;
+
+# Android does not support System V IPCs.
+#
+# The reason for this is due to the fact that, by design, they lead to global
+# kernel resource leakage.
+#
+# For example, there is no way to automatically release a SysV semaphore
+# allocated in the kernel when:
+#
+# - a buggy or malicious process exits
+# - a non-buggy and non-malicious process crashes or is explicitly killed.
+#
+# Killing processes automatically to make room for new ones is an
+# important part of Android's application lifecycle implementation. This means
+# that, even assuming only non-buggy and non-malicious code, it is very likely
+# that over time, the kernel global tables used to implement SysV IPCs will fill
+# up.
+neverallow * *:{ shm sem msg msgq } *;
+
+# Do not mount on top of symlinks, fifos, or sockets.
+# Feature parity with Chromium LSM.
+neverallow * { file_type fs_type dev_type }:{ lnk_file fifo_file sock_file } mounton;
+
+# Nobody should be able to execute su on user builds.
+# On userdebug/eng builds, only dumpstate, shell, and
+# su itself execute su.
+neverallow { domain  } su_exec:file { execute execute_no_trans };
+
+# Do not allow the introduction of new execmod rules. Text relocations
+# and modification of executable pages are unsafe.
+# The only exceptions are for NDK text relocations associated with
+# https://code.google.com/p/android/issues/detail?id=23203
+# which, long term, need to go away.
+neverallow * {
+  file_type
+  -apk_data_file
+  -app_data_file
+  -asec_public_file
+}:file execmod;
+
+# Do not allow making the stack or heap executable.
+# We would also like to minimize execmem but it seems to be
+# required by some device-specific service domains.
+neverallow * self:process { execstack execheap };
+
+# Do not allow the introduction of new execmod rules. Text relocations
+# and modification of executable pages are unsafe.
+neverallow { domain -untrusted_app_25 -untrusted_app_27 } file_type:file execmod;
+
+neverallow { domain -init } proc:{ file dir } mounton;
+neverallow { domain -init -zygote } proc_type:{ file dir } mounton;
+
+# Ensure that all types assigned to processes are included
+# in the domain attribute, so that all allow and neverallow rules
+# written on domain are applied to all processes.
+# This is achieved by ensuring that it is impossible to transition
+# from a domain to a non-domain type and vice versa.
+# TODO - rework this: neverallow domain ~domain:process { transition dyntransition };
+neverallow ~domain domain:process { transition dyntransition };
+
+#
+# Only system_app and system_server should be creating or writing
+# their files. The proper way to share files is to setup
+# type transitions to a more specific type or assigning a type
+# to its parent directory via a file_contexts entry.
+# Example type transition:
+#  mydomain.te:file_type_auto_trans(mydomain, system_data_file, new_file_type)
+#
+neverallow {
+  domain
+  -system_server
+  -system_app
+  -init
+  -toolbox # TODO(b/141108496) We want to remove toolbox
+  -installd # for relabelfrom and unlink, check for this in explicit neverallow
+  -vold_prepare_subdirs # For unlink
+  
+} system_data_file:file { append create link unlink relabelfrom rename setattr write };
+# do not grant anything greater than r_file_perms and relabelfrom unlink
+# to installd
+neverallow installd system_data_file:file ~{ { getattr open read ioctl lock map watch watch_reads } relabelfrom unlink };
+
+#
+# Only these domains should transition to shell domain. This domain is
+# permissible for the "shell user". If you need a process to exec a shell
+# script with differing privilege, define a domain and set up a transition.
+#
+neverallow {
+  domain
+  -adbd
+  -init
+  -runas
+  -zygote
+} shell:process { transition dyntransition };
+
+# Only domains spawned from zygote, runas and simpleperf_app_runner may have
+# the appdomain attribute. simpleperf is excluded as a domain transitioned to
+# when running an app-scoped profiling session.
+neverallow { domain -simpleperf_app_runner -runas -app_zygote -webview_zygote -zygote } {
+  appdomain -shell -simpleperf 
+}:process { transition dyntransition };
+
+# Minimize read access to shell- or app-writable symlinks.
+# This is to prevent malicious symlink attacks.
+neverallow {
+  domain
+  -appdomain
+  -artd
+  -installd
+} { app_data_file privapp_data_file }:lnk_file read;
+
+neverallow {
+  domain
+  -shell
+  
+  -installd
+} shell_data_file:lnk_file read;
+
+# servicemanager and vndservicemanager are the only processes which handle the
+# service_manager list request
+neverallow * ~{
+    servicemanager
+    vndservicemanager
+    }:service_manager list;
+
+# hwservicemanager is the only process which handles hw list requests
+neverallow * ~{
+    hwservicemanager
+    }:hwservice_manager list;
+
+# only service_manager_types can be added to service_manager
+# TODO - rework this: neverallow * ~service_manager_type:service_manager { add find };
+
+# Prevent assigning non property types to properties
+# TODO - rework this: neverallow * ~property_type:property_service set;
+
+# Domain types should never be assigned to any files other
+# than the /proc/pid files associated with a process. The
+# executable file used to enter a domain should be labeled
+# with its own _exec type, not with the domain type.
+# Conventionally, this looks something like:
+# $ cat mydaemon.te
+# type mydaemon, domain;
+# type mydaemon_exec, exec_type, file_type;
+# init_daemon_domain(mydaemon)
+# $ grep mydaemon file_contexts
+# /system/bin/mydaemon -- u:object_r:mydaemon_exec:s0
+neverallow * domain:file { execute execute_no_trans entrypoint };
+
+# Do not allow access to the generic debugfs label. This is too broad.
+# Instead, if access to part of debugfs is desired, it should have a
+# more specific label.
+# TODO: fix dumpstate
+neverallow { domain -init -vendor_init -dumpstate } debugfs:{ file lnk_file } { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Do not allow executable files in debugfs.
+neverallow domain debugfs_type:file { execute execute_no_trans };
+
+# Don't allow access to the FUSE control filesystem, except to vold and init's
+neverallow { domain -vold -init -vendor_init } fusectlfs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Profiles contain untrusted data and profman parses that. We should only run
+# it from installd and artd forked processes.
+neverallow {
+  domain
+  -installd
+  -profman
+  -artd
+} profman_exec:file { execute execute_no_trans };
+
+# Enforce restrictions on kernel module origin.
+# Do not allow kernel module loading except from system,
+# vendor, boot, and system_dlkm partitions.
+# TODO(b/218951883): Remove usage of system and rootfs as origin
+neverallow * ~{ system_file_type vendor_file_type rootfs system_dlkm_file_type }:system module_load;
+
+# Only allow filesystem caps to be set at build time. Runtime changes
+# to filesystem capabilities are not permitted.
+neverallow * self:{ capability cap_userns } setfcap;
+
+# Enforce AT_SECURE for executing crash_dump.
+neverallow domain crash_dump:process noatsecure;
+
+# Do not permit non-core domains to register HwBinder services which are
+# guaranteed to be provided by core domains only.
+neverallow ~coredomain coredomain_hwservice:hwservice_manager add;
+
+# Do not permit the registeration of HwBinder services which are guaranteed to
+# be passthrough only (i.e., run in the process of their clients instead of a
+# separate server process).
+neverallow * same_process_hwservice:hwservice_manager add;
+
+# If an already existing file is opened with O_CREAT, the kernel might generate
+# a false report of a create denial. Silence these denials and make sure that
+# inappropriate permissions are not granted.
+
+# These filesystems don't allow files or directories to be created, so the permission
+# to do so should never be granted.
+neverallow domain {
+  proc_type
+  sysfs_type
+}:dir { add_name create link remove_name rename reparent rmdir write };
+
+# cgroupfs directories can be created, but not files within them.
+neverallow domain cgroup:file create;
+neverallow domain cgroup_v2:file create;
+
+dontaudit domain proc_type:dir write;
+dontaudit domain sysfs_type:dir write;
+dontaudit domain cgroup:file create;
+dontaudit domain cgroup_v2:file create;
+
+# These are only needed in permissive mode - in enforcing mode the
+# directory write check fails and so these are never attempted.
+#line 1248
+
+
+# Platform must not have access to /mnt/vendor.
+neverallow {
+  coredomain
+  -init
+  -ueventd
+  -vold
+  -system_writes_mnt_vendor_violators
+} mnt_vendor_file:dir *;
+
+# Only apps are allowed access to vendor public libraries.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 1260
+
+#line 1260
+  neverallow {
+#line 1260
+    coredomain
+#line 1260
+    -appdomain
+#line 1260
+  } {vendor_public_framework_file vendor_public_lib_file}:file { execute execute_no_trans };
+#line 1260
+
+#line 1260
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 1265
+
+
+# Vendor domian must not have access to /mnt/product.
+neverallow {
+  domain
+  -coredomain
+} mnt_product_file:dir *;
+
+# Platform must not have access to sysfs_batteryinfo, but should do it via health HAL
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 1274
+
+#line 1274
+  neverallow {
+#line 1274
+    coredomain
+#line 1274
+    -shell
+#line 1274
+    # For access to block device information under /sys/class/block.
+#line 1274
+    -apexd
+#line 1274
+    # Read sysfs block device information.
+#line 1274
+    -init
+#line 1274
+    # Generate uevents for health info
+#line 1274
+    -ueventd
+#line 1274
+    # Recovery uses health HAL passthrough implementation.
+#line 1274
+    -recovery
+#line 1274
+    # Charger uses health HAL passthrough implementation.
+#line 1274
+    -charger
+#line 1274
+    # TODO(b/110891300): remove this exception
+#line 1274
+    -incidentd
+#line 1274
+  } sysfs_batteryinfo:file { open read };
+#line 1274
+
+#line 1274
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 1291
+
+
+neverallow {
+  domain
+  -hal_codec2_server
+  -hal_omx_server
+} hal_codec2_hwservice:hwservice_manager add;
+
+# Only apps targetting < Q are allowed to open /dev/ashmem directly.
+# Apps must use ASharedMemory NDK API. Native code must use libcutils API.
+neverallow {
+  domain
+  -ephemeral_app # We don't distinguish ephemeral apps based on target API.
+  -untrusted_app_25
+  -untrusted_app_27
+} ashmem_device:chr_file open;
+
+neverallow { domain -traced_probes -init -vendor_init } debugfs_tracing_printk_formats:file *;
+#line 1 "system/sepolicy/public/drmserver.te"
+# drmserver - DRM service
+type drmserver, domain;
+type drmserver_exec, system_file_type, exec_type, file_type;
+
+typeattribute drmserver mlstrustedsubject;
+
+
+#line 7
+typeattribute drmserver netdomain;
+#line 7
+
+
+# Perform Binder IPC to system server.
+
+#line 10
+# Call the servicemanager and transfer references to it.
+#line 10
+allow drmserver servicemanager:binder { call transfer };
+#line 10
+# Allow servicemanager to send out callbacks
+#line 10
+allow servicemanager drmserver:binder { call transfer };
+#line 10
+# servicemanager performs getpidcon on clients.
+#line 10
+allow servicemanager drmserver:dir search;
+#line 10
+allow servicemanager drmserver:file { read open };
+#line 10
+allow servicemanager drmserver:process getattr;
+#line 10
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 10
+# all domains in domain.te.
+#line 10
+
+
+#line 11
+# Call the server domain and optionally transfer references to it.
+#line 11
+allow drmserver system_server:binder { call transfer };
+#line 11
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 11
+allow system_server drmserver:binder transfer;
+#line 11
+# Receive and use open files from the server.
+#line 11
+allow drmserver system_server:fd use;
+#line 11
+
+
+#line 12
+# Call the server domain and optionally transfer references to it.
+#line 12
+allow drmserver appdomain:binder { call transfer };
+#line 12
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 12
+allow appdomain drmserver:binder transfer;
+#line 12
+# Receive and use open files from the server.
+#line 12
+allow drmserver appdomain:fd use;
+#line 12
+
+
+#line 13
+# Call the server domain and optionally transfer references to it.
+#line 13
+allow drmserver mediametrics:binder { call transfer };
+#line 13
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 13
+allow mediametrics drmserver:binder transfer;
+#line 13
+# Receive and use open files from the server.
+#line 13
+allow drmserver mediametrics:fd use;
+#line 13
+
+
+#line 14
+typeattribute drmserver binderservicedomain;
+#line 14
+
+# Inherit or receive open files from system_server.
+allow drmserver system_server:fd use;
+
+# Perform Binder IPC to mediaserver
+
+#line 19
+# Call the server domain and optionally transfer references to it.
+#line 19
+allow drmserver mediaserver:binder { call transfer };
+#line 19
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 19
+allow mediaserver drmserver:binder transfer;
+#line 19
+# Receive and use open files from the server.
+#line 19
+allow drmserver mediaserver:fd use;
+#line 19
+
+
+allow drmserver { sdcard_type fuse }:dir search;
+allow drmserver drm_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow drmserver drm_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow drmserver { app_data_file privapp_data_file }:file { read write getattr map };
+allow drmserver { sdcard_type fuse }:file { read write getattr map };
+
+#line 26
+allow drmserver efs_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 26
+allow drmserver efs_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 26
+
+
+type drmserver_socket, file_type;
+
+# /data/app/tlcd_sock socket file.
+# Clearly, /data/app is the most logical place to create a socket.  Not.
+allow drmserver apk_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+auditallow drmserver apk_data_file:dir { add_name write };
+allow drmserver drmserver_socket:sock_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+auditallow drmserver drmserver_socket:sock_file create;
+# Delete old socket file if present.
+allow drmserver apk_data_file:sock_file unlink;
+
+# After taking a video, drmserver looks at the video file.
+
+#line 40
+allow drmserver media_rw_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 40
+allow drmserver media_rw_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 40
+
+
+# Read resources from open apk files passed over Binder.
+allow drmserver apk_data_file:file { read getattr map };
+allow drmserver asec_apk_file:file { read getattr map };
+allow drmserver ringtone_file:file { read getattr map };
+
+# Read /data/data/com.android.providers.telephony files passed over Binder.
+allow drmserver radio_data_file:file { read getattr map };
+
+# /oem access
+allow drmserver oemfs:dir search;
+allow drmserver oemfs:file { getattr open read ioctl lock map watch watch_reads };
+
+# overlay package access
+allow drmserver vendor_overlay_file:file { read map };
+
+
+#line 57
+  allow drmserver drmserver_service:service_manager { add find };
+#line 57
+  neverallow { domain -drmserver } drmserver_service:service_manager add;
+#line 57
+
+#line 57
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 57
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 57
+  
+#line 57
+
+allow drmserver permission_service:service_manager find;
+allow drmserver mediametrics_service:service_manager find;
+
+
+#line 61
+
+#line 61
+allow drmserver selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 61
+allow drmserver selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 61
+
+#line 61
+allow drmserver selinuxfs:file { open append write lock map };
+#line 61
+allow drmserver kernel:security compute_av;
+#line 61
+allow drmserver self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 61
+
+
+
+#line 63
+allow drmserver cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 63
+allow drmserver cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 63
+
+
+#line 64
+allow drmserver cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 64
+allow drmserver cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 64
+
+
+#line 65
+allow drmserver system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 65
+allow drmserver system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 65
+
+#line 1 "system/sepolicy/public/dumpstate.te"
+# dumpstate
+type dumpstate, domain, mlstrustedsubject;
+type dumpstate_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+typeattribute dumpstate netdomain;
+#line 5
+
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow dumpstate servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager dumpstate:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager dumpstate:dir search;
+#line 6
+allow servicemanager dumpstate:file { read open };
+#line 6
+allow servicemanager dumpstate:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 7
+# deprecated.
+#line 7
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 7
+allow dumpstate sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 7
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 7
+allow dumpstate self:{ capability2 cap2_userns } block_suspend;
+#line 7
+# system_suspend permissions
+#line 7
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow dumpstate system_suspend_server:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow system_suspend_server dumpstate:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow dumpstate system_suspend_server:fd use;
+#line 7
+
+#line 7
+allow dumpstate system_suspend_hwservice:hwservice_manager find;
+#line 7
+# halclientdomain permissions
+#line 7
+
+#line 7
+# Call the hwservicemanager and transfer references to it.
+#line 7
+allow dumpstate hwservicemanager:binder { call transfer };
+#line 7
+# Allow hwservicemanager to send out callbacks
+#line 7
+allow hwservicemanager dumpstate:binder { call transfer };
+#line 7
+# hwservicemanager performs getpidcon on clients.
+#line 7
+allow hwservicemanager dumpstate:dir search;
+#line 7
+allow hwservicemanager dumpstate:file { read open map };
+#line 7
+allow hwservicemanager dumpstate:process getattr;
+#line 7
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+#line 7
+
+#line 7
+allow dumpstate hwservicemanager_prop:file { getattr open read map };
+#line 7
+
+#line 7
+allow dumpstate hidl_manager_hwservice:hwservice_manager find;
+#line 7
+# AIDL suspend hal permissions
+#line 7
+allow dumpstate hal_system_suspend_service:service_manager find;
+#line 7
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow dumpstate servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager dumpstate:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager dumpstate:dir search;
+#line 7
+allow servicemanager dumpstate:file { read open };
+#line 7
+allow servicemanager dumpstate:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+#line 7
+
+
+# Allow setting process priority, protect from OOM killer, and dropping
+# privileges by switching UID / GID
+allow dumpstate self:{ capability cap_userns } { setuid setgid sys_resource };
+
+# Allow dumpstate to scan through /proc/pid for all processes
+
+#line 14
+allow dumpstate domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 14
+allow dumpstate domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 14
+
+
+allow dumpstate self:{ capability cap_userns } {
+    # Send signals to processes
+    kill
+    # Run iptables
+    net_raw
+    net_admin
+};
+
+# Allow executing files on system, such as:
+#   /system/bin/toolbox
+#   /system/bin/logcat
+#   /system/bin/dumpsys
+allow dumpstate system_file:file execute_no_trans;
+allow dumpstate vendor_file:file execute_no_trans;
+allow dumpstate toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# hidl searches for files in /system/lib(64)/hw/
+allow dumpstate system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Create and write into /data/anr/
+allow dumpstate self:{ capability cap_userns } { dac_override dac_read_search chown fowner fsetid };
+allow dumpstate anr_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow dumpstate anr_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow reading /data/system/uiderrors.txt
+# TODO: scope this down.
+allow dumpstate system_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dumpstate to append into apps' private files.
+allow dumpstate { privapp_data_file app_data_file }:file append;
+
+# Read dmesg
+allow dumpstate self:{ capability2 cap2_userns } syslog;
+allow dumpstate kernel:system syslog_read;
+
+# Read /sys/fs/pstore/console-ramoops
+allow dumpstate pstorefs:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+
+# Get process attributes
+allow dumpstate domain:process getattr;
+
+# Signal java processes to dump their stack
+allow dumpstate { appdomain system_server zygote app_zygote }:process signal;
+
+# Signal native processes to dump their stack.
+allow dumpstate {
+  # This list comes from native_processes_to_dump in dumputils/dump_utils.c
+  audioserver
+  cameraserver
+  drmserver
+  inputflinger
+  mediadrmserver
+  mediaextractor
+  mediametrics
+  mediaserver
+  mediaswcodec
+  sdcardd
+  surfaceflinger
+  vold
+
+  # This list comes from hal_interfaces_to_dump in dumputils/dump_utils.c
+  evsmanagerd
+  hal_audio_server
+  hal_audiocontrol_server
+  hal_bluetooth_server
+  hal_broadcastradio_server
+  hal_camera_server
+  hal_codec2_server
+  hal_drm_server
+  hal_evs_server
+  hal_face_server
+  hal_fingerprint_server
+  hal_graphics_allocator_server
+  hal_graphics_composer_server
+  hal_health_server
+  hal_input_processor_server
+  hal_neuralnetworks_server
+  hal_omx_server
+  hal_power_server
+  hal_power_stats_server
+  hal_sensors_server
+  hal_thermal_server
+  hal_vehicle_server
+  hal_vr_server
+  system_suspend_server
+}:process signal;
+
+# Connect to tombstoned to intercept dumps.
+
+#line 105
+allow dumpstate tombstoned_intercept_socket:sock_file write;
+#line 105
+allow dumpstate tombstoned:unix_stream_socket connectto;
+#line 105
+
+
+# Access to /sys
+allow dumpstate sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+
+allow dumpstate {
+  sysfs_devices_block
+  sysfs_dm
+  sysfs_loop
+  sysfs_usb
+  sysfs_zram
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# Ignore other file access under /sys.
+dontaudit dumpstate sysfs:file { getattr open read ioctl lock map watch watch_reads };
+
+# Other random bits of data we want to collect
+
+#line 122
+  allow dumpstate debugfs:file { getattr open read ioctl lock map watch watch_reads };
+#line 122
+  auditallow dumpstate debugfs:file { getattr open read ioctl lock map watch watch_reads };
+#line 122
+
+#line 122
+  allow dumpstate debugfs_mmc:file { getattr open read ioctl lock map watch watch_reads };
+#line 127
+
+
+# df for
+allow dumpstate {
+  block_device
+  cache_file
+  metadata_file
+  rootfs
+  selinuxfs
+  storage_file
+  tmpfs
+}:dir { search getattr };
+allow dumpstate fuse_device:chr_file getattr;
+allow dumpstate { dm_device cache_block_device }:blk_file getattr;
+allow dumpstate { cache_file rootfs }:lnk_file { getattr read };
+
+# Read /dev/cpuctl and /dev/cpuset
+
+#line 144
+allow dumpstate cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 144
+allow dumpstate cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 144
+
+
+#line 145
+allow dumpstate cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 145
+allow dumpstate cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 145
+
+
+# Allow dumpstate to make binder calls to any binder service
+
+#line 148
+# Call the server domain and optionally transfer references to it.
+#line 148
+allow dumpstate binderservicedomain:binder { call transfer };
+#line 148
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 148
+allow binderservicedomain dumpstate:binder transfer;
+#line 148
+# Receive and use open files from the server.
+#line 148
+allow dumpstate binderservicedomain:fd use;
+#line 148
+
+
+#line 149
+# Call the server domain and optionally transfer references to it.
+#line 149
+allow dumpstate { appdomain artd netd wificond }:binder { call transfer };
+#line 149
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 149
+allow { appdomain artd netd wificond } dumpstate:binder transfer;
+#line 149
+# Receive and use open files from the server.
+#line 149
+allow dumpstate { appdomain artd netd wificond }:fd use;
+#line 149
+
+
+# Allow dumpstate to call dump() on specific hals.
+
+#line 152
+  
+#line 152
+typeattribute dumpstate halclientdomain;
+#line 152
+typeattribute dumpstate hal_audio_client;
+#line 152
+
+#line 152
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 152
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 152
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 152
+
+#line 152
+typeattribute dumpstate hal_audio;
+#line 152
+# Find passthrough HAL implementations
+#line 152
+allow hal_audio system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 152
+allow hal_audio vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 152
+allow hal_audio vendor_file:file { read open getattr execute map };
+#line 152
+
+#line 152
+;
+#line 152
+  allow hal_audio_server dumpstate:fifo_file write;
+#line 152
+  allow hal_audio_server dumpstate:fd use;
+#line 152
+
+
+#line 153
+  
+#line 153
+typeattribute dumpstate halclientdomain;
+#line 153
+typeattribute dumpstate hal_audiocontrol_client;
+#line 153
+
+#line 153
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 153
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 153
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 153
+
+#line 153
+typeattribute dumpstate hal_audiocontrol;
+#line 153
+# Find passthrough HAL implementations
+#line 153
+allow hal_audiocontrol system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 153
+allow hal_audiocontrol vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 153
+allow hal_audiocontrol vendor_file:file { read open getattr execute map };
+#line 153
+
+#line 153
+;
+#line 153
+  allow hal_audiocontrol_server dumpstate:fifo_file write;
+#line 153
+  allow hal_audiocontrol_server dumpstate:fd use;
+#line 153
+
+
+#line 154
+  
+#line 154
+typeattribute dumpstate halclientdomain;
+#line 154
+typeattribute dumpstate hal_authgraph_client;
+#line 154
+
+#line 154
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 154
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 154
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 154
+
+#line 154
+typeattribute dumpstate hal_authgraph;
+#line 154
+# Find passthrough HAL implementations
+#line 154
+allow hal_authgraph system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 154
+allow hal_authgraph vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 154
+allow hal_authgraph vendor_file:file { read open getattr execute map };
+#line 154
+
+#line 154
+;
+#line 154
+  allow hal_authgraph_server dumpstate:fifo_file write;
+#line 154
+  allow hal_authgraph_server dumpstate:fd use;
+#line 154
+
+
+#line 155
+  
+#line 155
+typeattribute dumpstate halclientdomain;
+#line 155
+typeattribute dumpstate hal_authsecret_client;
+#line 155
+
+#line 155
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 155
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 155
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 155
+
+#line 155
+typeattribute dumpstate hal_authsecret;
+#line 155
+# Find passthrough HAL implementations
+#line 155
+allow hal_authsecret system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 155
+allow hal_authsecret vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 155
+allow hal_authsecret vendor_file:file { read open getattr execute map };
+#line 155
+
+#line 155
+;
+#line 155
+  allow hal_authsecret_server dumpstate:fifo_file write;
+#line 155
+  allow hal_authsecret_server dumpstate:fd use;
+#line 155
+
+
+#line 156
+  
+#line 156
+typeattribute dumpstate halclientdomain;
+#line 156
+typeattribute dumpstate hal_bluetooth_client;
+#line 156
+
+#line 156
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 156
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 156
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 156
+
+#line 156
+typeattribute dumpstate hal_bluetooth;
+#line 156
+# Find passthrough HAL implementations
+#line 156
+allow hal_bluetooth system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 156
+allow hal_bluetooth vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 156
+allow hal_bluetooth vendor_file:file { read open getattr execute map };
+#line 156
+
+#line 156
+;
+#line 156
+  allow hal_bluetooth_server dumpstate:fifo_file write;
+#line 156
+  allow hal_bluetooth_server dumpstate:fd use;
+#line 156
+
+
+#line 157
+  
+#line 157
+typeattribute dumpstate halclientdomain;
+#line 157
+typeattribute dumpstate hal_broadcastradio_client;
+#line 157
+
+#line 157
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 157
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 157
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 157
+
+#line 157
+typeattribute dumpstate hal_broadcastradio;
+#line 157
+# Find passthrough HAL implementations
+#line 157
+allow hal_broadcastradio system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 157
+allow hal_broadcastradio vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 157
+allow hal_broadcastradio vendor_file:file { read open getattr execute map };
+#line 157
+
+#line 157
+;
+#line 157
+  allow hal_broadcastradio_server dumpstate:fifo_file write;
+#line 157
+  allow hal_broadcastradio_server dumpstate:fd use;
+#line 157
+
+
+#line 158
+  
+#line 158
+typeattribute dumpstate halclientdomain;
+#line 158
+typeattribute dumpstate hal_camera_client;
+#line 158
+
+#line 158
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 158
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 158
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 158
+
+#line 158
+typeattribute dumpstate hal_camera;
+#line 158
+# Find passthrough HAL implementations
+#line 158
+allow hal_camera system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 158
+allow hal_camera vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 158
+allow hal_camera vendor_file:file { read open getattr execute map };
+#line 158
+
+#line 158
+;
+#line 158
+  allow hal_camera_server dumpstate:fifo_file write;
+#line 158
+  allow hal_camera_server dumpstate:fd use;
+#line 158
+
+
+#line 159
+  
+#line 159
+typeattribute dumpstate halclientdomain;
+#line 159
+typeattribute dumpstate hal_codec2_client;
+#line 159
+
+#line 159
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 159
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 159
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 159
+
+#line 159
+typeattribute dumpstate hal_codec2;
+#line 159
+# Find passthrough HAL implementations
+#line 159
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 159
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 159
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 159
+
+#line 159
+;
+#line 159
+  allow hal_codec2_server dumpstate:fifo_file write;
+#line 159
+  allow hal_codec2_server dumpstate:fd use;
+#line 159
+
+
+#line 160
+  
+#line 160
+typeattribute dumpstate halclientdomain;
+#line 160
+typeattribute dumpstate hal_contexthub_client;
+#line 160
+
+#line 160
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 160
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 160
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 160
+
+#line 160
+typeattribute dumpstate hal_contexthub;
+#line 160
+# Find passthrough HAL implementations
+#line 160
+allow hal_contexthub system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 160
+allow hal_contexthub vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 160
+allow hal_contexthub vendor_file:file { read open getattr execute map };
+#line 160
+
+#line 160
+;
+#line 160
+  allow hal_contexthub_server dumpstate:fifo_file write;
+#line 160
+  allow hal_contexthub_server dumpstate:fd use;
+#line 160
+
+
+#line 161
+  
+#line 161
+typeattribute dumpstate halclientdomain;
+#line 161
+typeattribute dumpstate hal_drm_client;
+#line 161
+
+#line 161
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 161
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 161
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 161
+
+#line 161
+typeattribute dumpstate hal_drm;
+#line 161
+# Find passthrough HAL implementations
+#line 161
+allow hal_drm system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 161
+allow hal_drm vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 161
+allow hal_drm vendor_file:file { read open getattr execute map };
+#line 161
+
+#line 161
+;
+#line 161
+  allow hal_drm_server dumpstate:fifo_file write;
+#line 161
+  allow hal_drm_server dumpstate:fd use;
+#line 161
+
+
+#line 162
+  
+#line 162
+typeattribute dumpstate halclientdomain;
+#line 162
+typeattribute dumpstate hal_dumpstate_client;
+#line 162
+
+#line 162
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 162
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 162
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 162
+
+#line 162
+typeattribute dumpstate hal_dumpstate;
+#line 162
+# Find passthrough HAL implementations
+#line 162
+allow hal_dumpstate system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 162
+allow hal_dumpstate vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 162
+allow hal_dumpstate vendor_file:file { read open getattr execute map };
+#line 162
+
+#line 162
+;
+#line 162
+  allow hal_dumpstate_server dumpstate:fifo_file write;
+#line 162
+  allow hal_dumpstate_server dumpstate:fd use;
+#line 162
+
+
+#line 163
+  
+#line 163
+typeattribute dumpstate halclientdomain;
+#line 163
+typeattribute dumpstate hal_evs_client;
+#line 163
+
+#line 163
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 163
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 163
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 163
+
+#line 163
+typeattribute dumpstate hal_evs;
+#line 163
+# Find passthrough HAL implementations
+#line 163
+allow hal_evs system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 163
+allow hal_evs vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 163
+allow hal_evs vendor_file:file { read open getattr execute map };
+#line 163
+
+#line 163
+;
+#line 163
+  allow hal_evs_server dumpstate:fifo_file write;
+#line 163
+  allow hal_evs_server dumpstate:fd use;
+#line 163
+
+
+#line 164
+  
+#line 164
+typeattribute dumpstate halclientdomain;
+#line 164
+typeattribute dumpstate hal_face_client;
+#line 164
+
+#line 164
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 164
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 164
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 164
+
+#line 164
+typeattribute dumpstate hal_face;
+#line 164
+# Find passthrough HAL implementations
+#line 164
+allow hal_face system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 164
+allow hal_face vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 164
+allow hal_face vendor_file:file { read open getattr execute map };
+#line 164
+
+#line 164
+;
+#line 164
+  allow hal_face_server dumpstate:fifo_file write;
+#line 164
+  allow hal_face_server dumpstate:fd use;
+#line 164
+
+
+#line 165
+  
+#line 165
+typeattribute dumpstate halclientdomain;
+#line 165
+typeattribute dumpstate hal_fingerprint_client;
+#line 165
+
+#line 165
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 165
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 165
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 165
+
+#line 165
+typeattribute dumpstate hal_fingerprint;
+#line 165
+# Find passthrough HAL implementations
+#line 165
+allow hal_fingerprint system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 165
+allow hal_fingerprint vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 165
+allow hal_fingerprint vendor_file:file { read open getattr execute map };
+#line 165
+
+#line 165
+;
+#line 165
+  allow hal_fingerprint_server dumpstate:fifo_file write;
+#line 165
+  allow hal_fingerprint_server dumpstate:fd use;
+#line 165
+
+
+#line 166
+  
+#line 166
+typeattribute dumpstate halclientdomain;
+#line 166
+typeattribute dumpstate hal_gnss_client;
+#line 166
+
+#line 166
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 166
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 166
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 166
+
+#line 166
+typeattribute dumpstate hal_gnss;
+#line 166
+# Find passthrough HAL implementations
+#line 166
+allow hal_gnss system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 166
+allow hal_gnss vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 166
+allow hal_gnss vendor_file:file { read open getattr execute map };
+#line 166
+
+#line 166
+;
+#line 166
+  allow hal_gnss_server dumpstate:fifo_file write;
+#line 166
+  allow hal_gnss_server dumpstate:fd use;
+#line 166
+
+
+#line 167
+  
+#line 167
+typeattribute dumpstate halclientdomain;
+#line 167
+typeattribute dumpstate hal_graphics_allocator_client;
+#line 167
+
+#line 167
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 167
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 167
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 167
+
+#line 167
+typeattribute dumpstate hal_graphics_allocator;
+#line 167
+# Find passthrough HAL implementations
+#line 167
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 167
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 167
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 167
+
+#line 167
+;
+#line 167
+  allow hal_graphics_allocator_server dumpstate:fifo_file write;
+#line 167
+  allow hal_graphics_allocator_server dumpstate:fd use;
+#line 167
+
+
+#line 168
+  
+#line 168
+typeattribute dumpstate halclientdomain;
+#line 168
+typeattribute dumpstate hal_graphics_composer_client;
+#line 168
+
+#line 168
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 168
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 168
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 168
+
+#line 168
+typeattribute dumpstate hal_graphics_composer;
+#line 168
+# Find passthrough HAL implementations
+#line 168
+allow hal_graphics_composer system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 168
+allow hal_graphics_composer vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 168
+allow hal_graphics_composer vendor_file:file { read open getattr execute map };
+#line 168
+
+#line 168
+;
+#line 168
+  allow hal_graphics_composer_server dumpstate:fifo_file write;
+#line 168
+  allow hal_graphics_composer_server dumpstate:fd use;
+#line 168
+
+
+#line 169
+  
+#line 169
+typeattribute dumpstate halclientdomain;
+#line 169
+typeattribute dumpstate hal_health_client;
+#line 169
+
+#line 169
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 169
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 169
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 169
+
+#line 169
+typeattribute dumpstate hal_health;
+#line 169
+# Find passthrough HAL implementations
+#line 169
+allow hal_health system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 169
+allow hal_health vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 169
+allow hal_health vendor_file:file { read open getattr execute map };
+#line 169
+
+#line 169
+;
+#line 169
+  allow hal_health_server dumpstate:fifo_file write;
+#line 169
+  allow hal_health_server dumpstate:fd use;
+#line 169
+
+
+#line 170
+  
+#line 170
+typeattribute dumpstate halclientdomain;
+#line 170
+typeattribute dumpstate hal_identity_client;
+#line 170
+
+#line 170
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 170
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 170
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 170
+
+#line 170
+typeattribute dumpstate hal_identity;
+#line 170
+# Find passthrough HAL implementations
+#line 170
+allow hal_identity system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 170
+allow hal_identity vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 170
+allow hal_identity vendor_file:file { read open getattr execute map };
+#line 170
+
+#line 170
+;
+#line 170
+  allow hal_identity_server dumpstate:fifo_file write;
+#line 170
+  allow hal_identity_server dumpstate:fd use;
+#line 170
+
+
+#line 171
+  
+#line 171
+typeattribute dumpstate halclientdomain;
+#line 171
+typeattribute dumpstate hal_input_processor_client;
+#line 171
+
+#line 171
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 171
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 171
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 171
+
+#line 171
+typeattribute dumpstate hal_input_processor;
+#line 171
+# Find passthrough HAL implementations
+#line 171
+allow hal_input_processor system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 171
+allow hal_input_processor vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 171
+allow hal_input_processor vendor_file:file { read open getattr execute map };
+#line 171
+
+#line 171
+;
+#line 171
+  allow hal_input_processor_server dumpstate:fifo_file write;
+#line 171
+  allow hal_input_processor_server dumpstate:fd use;
+#line 171
+
+
+#line 172
+  
+#line 172
+typeattribute dumpstate halclientdomain;
+#line 172
+typeattribute dumpstate hal_keymint_client;
+#line 172
+
+#line 172
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 172
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 172
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 172
+
+#line 172
+typeattribute dumpstate hal_keymint;
+#line 172
+# Find passthrough HAL implementations
+#line 172
+allow hal_keymint system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 172
+allow hal_keymint vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 172
+allow hal_keymint vendor_file:file { read open getattr execute map };
+#line 172
+
+#line 172
+;
+#line 172
+  allow hal_keymint_server dumpstate:fifo_file write;
+#line 172
+  allow hal_keymint_server dumpstate:fd use;
+#line 172
+
+
+#line 173
+  
+#line 173
+typeattribute dumpstate halclientdomain;
+#line 173
+typeattribute dumpstate hal_light_client;
+#line 173
+
+#line 173
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 173
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 173
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 173
+
+#line 173
+typeattribute dumpstate hal_light;
+#line 173
+# Find passthrough HAL implementations
+#line 173
+allow hal_light system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 173
+allow hal_light vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 173
+allow hal_light vendor_file:file { read open getattr execute map };
+#line 173
+
+#line 173
+;
+#line 173
+  allow hal_light_server dumpstate:fifo_file write;
+#line 173
+  allow hal_light_server dumpstate:fd use;
+#line 173
+
+
+#line 174
+  
+#line 174
+typeattribute dumpstate halclientdomain;
+#line 174
+typeattribute dumpstate hal_memtrack_client;
+#line 174
+
+#line 174
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 174
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 174
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 174
+
+#line 174
+typeattribute dumpstate hal_memtrack;
+#line 174
+# Find passthrough HAL implementations
+#line 174
+allow hal_memtrack system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 174
+allow hal_memtrack vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 174
+allow hal_memtrack vendor_file:file { read open getattr execute map };
+#line 174
+
+#line 174
+;
+#line 174
+  allow hal_memtrack_server dumpstate:fifo_file write;
+#line 174
+  allow hal_memtrack_server dumpstate:fd use;
+#line 174
+
+
+#line 175
+  
+#line 175
+typeattribute dumpstate halclientdomain;
+#line 175
+typeattribute dumpstate hal_neuralnetworks_client;
+#line 175
+
+#line 175
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 175
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 175
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 175
+
+#line 175
+typeattribute dumpstate hal_neuralnetworks;
+#line 175
+# Find passthrough HAL implementations
+#line 175
+allow hal_neuralnetworks system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 175
+allow hal_neuralnetworks vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 175
+allow hal_neuralnetworks vendor_file:file { read open getattr execute map };
+#line 175
+
+#line 175
+;
+#line 175
+  allow hal_neuralnetworks_server dumpstate:fifo_file write;
+#line 175
+  allow hal_neuralnetworks_server dumpstate:fd use;
+#line 175
+
+
+#line 176
+  
+#line 176
+typeattribute dumpstate halclientdomain;
+#line 176
+typeattribute dumpstate hal_nfc_client;
+#line 176
+
+#line 176
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 176
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 176
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 176
+
+#line 176
+typeattribute dumpstate hal_nfc;
+#line 176
+# Find passthrough HAL implementations
+#line 176
+allow hal_nfc system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 176
+allow hal_nfc vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 176
+allow hal_nfc vendor_file:file { read open getattr execute map };
+#line 176
+
+#line 176
+;
+#line 176
+  allow hal_nfc_server dumpstate:fifo_file write;
+#line 176
+  allow hal_nfc_server dumpstate:fd use;
+#line 176
+
+
+#line 177
+  
+#line 177
+typeattribute dumpstate halclientdomain;
+#line 177
+typeattribute dumpstate hal_oemlock_client;
+#line 177
+
+#line 177
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 177
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 177
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 177
+
+#line 177
+typeattribute dumpstate hal_oemlock;
+#line 177
+# Find passthrough HAL implementations
+#line 177
+allow hal_oemlock system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 177
+allow hal_oemlock vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 177
+allow hal_oemlock vendor_file:file { read open getattr execute map };
+#line 177
+
+#line 177
+;
+#line 177
+  allow hal_oemlock_server dumpstate:fifo_file write;
+#line 177
+  allow hal_oemlock_server dumpstate:fd use;
+#line 177
+
+
+#line 178
+  
+#line 178
+typeattribute dumpstate halclientdomain;
+#line 178
+typeattribute dumpstate hal_power_client;
+#line 178
+
+#line 178
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 178
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 178
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 178
+
+#line 178
+typeattribute dumpstate hal_power;
+#line 178
+# Find passthrough HAL implementations
+#line 178
+allow hal_power system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 178
+allow hal_power vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 178
+allow hal_power vendor_file:file { read open getattr execute map };
+#line 178
+
+#line 178
+;
+#line 178
+  allow hal_power_server dumpstate:fifo_file write;
+#line 178
+  allow hal_power_server dumpstate:fd use;
+#line 178
+
+
+#line 179
+  
+#line 179
+typeattribute dumpstate halclientdomain;
+#line 179
+typeattribute dumpstate hal_power_stats_client;
+#line 179
+
+#line 179
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 179
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 179
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 179
+
+#line 179
+typeattribute dumpstate hal_power_stats;
+#line 179
+# Find passthrough HAL implementations
+#line 179
+allow hal_power_stats system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 179
+allow hal_power_stats vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 179
+allow hal_power_stats vendor_file:file { read open getattr execute map };
+#line 179
+
+#line 179
+;
+#line 179
+  allow hal_power_stats_server dumpstate:fifo_file write;
+#line 179
+  allow hal_power_stats_server dumpstate:fd use;
+#line 179
+
+
+#line 180
+  
+#line 180
+typeattribute dumpstate halclientdomain;
+#line 180
+typeattribute dumpstate hal_rebootescrow_client;
+#line 180
+
+#line 180
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 180
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 180
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 180
+
+#line 180
+typeattribute dumpstate hal_rebootescrow;
+#line 180
+# Find passthrough HAL implementations
+#line 180
+allow hal_rebootescrow system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 180
+allow hal_rebootescrow vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 180
+allow hal_rebootescrow vendor_file:file { read open getattr execute map };
+#line 180
+
+#line 180
+;
+#line 180
+  allow hal_rebootescrow_server dumpstate:fifo_file write;
+#line 180
+  allow hal_rebootescrow_server dumpstate:fd use;
+#line 180
+
+
+#line 181
+  
+#line 181
+typeattribute dumpstate halclientdomain;
+#line 181
+typeattribute dumpstate hal_secretkeeper_client;
+#line 181
+
+#line 181
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 181
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 181
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 181
+
+#line 181
+typeattribute dumpstate hal_secretkeeper;
+#line 181
+# Find passthrough HAL implementations
+#line 181
+allow hal_secretkeeper system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 181
+allow hal_secretkeeper vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 181
+allow hal_secretkeeper vendor_file:file { read open getattr execute map };
+#line 181
+
+#line 181
+;
+#line 181
+  allow hal_secretkeeper_server dumpstate:fifo_file write;
+#line 181
+  allow hal_secretkeeper_server dumpstate:fd use;
+#line 181
+
+
+#line 182
+  
+#line 182
+typeattribute dumpstate halclientdomain;
+#line 182
+typeattribute dumpstate hal_sensors_client;
+#line 182
+
+#line 182
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 182
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 182
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 182
+
+#line 182
+typeattribute dumpstate hal_sensors;
+#line 182
+# Find passthrough HAL implementations
+#line 182
+allow hal_sensors system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 182
+allow hal_sensors vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 182
+allow hal_sensors vendor_file:file { read open getattr execute map };
+#line 182
+
+#line 182
+;
+#line 182
+  allow hal_sensors_server dumpstate:fifo_file write;
+#line 182
+  allow hal_sensors_server dumpstate:fd use;
+#line 182
+
+
+#line 183
+  
+#line 183
+typeattribute dumpstate halclientdomain;
+#line 183
+typeattribute dumpstate hal_thermal_client;
+#line 183
+
+#line 183
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 183
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 183
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 183
+
+#line 183
+typeattribute dumpstate hal_thermal;
+#line 183
+# Find passthrough HAL implementations
+#line 183
+allow hal_thermal system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 183
+allow hal_thermal vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 183
+allow hal_thermal vendor_file:file { read open getattr execute map };
+#line 183
+
+#line 183
+;
+#line 183
+  allow hal_thermal_server dumpstate:fifo_file write;
+#line 183
+  allow hal_thermal_server dumpstate:fd use;
+#line 183
+
+
+#line 184
+  
+#line 184
+typeattribute dumpstate halclientdomain;
+#line 184
+typeattribute dumpstate hal_vehicle_client;
+#line 184
+
+#line 184
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 184
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 184
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 184
+
+#line 184
+typeattribute dumpstate hal_vehicle;
+#line 184
+# Find passthrough HAL implementations
+#line 184
+allow hal_vehicle system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 184
+allow hal_vehicle vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 184
+allow hal_vehicle vendor_file:file { read open getattr execute map };
+#line 184
+
+#line 184
+;
+#line 184
+  allow hal_vehicle_server dumpstate:fifo_file write;
+#line 184
+  allow hal_vehicle_server dumpstate:fd use;
+#line 184
+
+
+#line 185
+  
+#line 185
+typeattribute dumpstate halclientdomain;
+#line 185
+typeattribute dumpstate hal_weaver_client;
+#line 185
+
+#line 185
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 185
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 185
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 185
+
+#line 185
+typeattribute dumpstate hal_weaver;
+#line 185
+# Find passthrough HAL implementations
+#line 185
+allow hal_weaver system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 185
+allow hal_weaver vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 185
+allow hal_weaver vendor_file:file { read open getattr execute map };
+#line 185
+
+#line 185
+;
+#line 185
+  allow hal_weaver_server dumpstate:fifo_file write;
+#line 185
+  allow hal_weaver_server dumpstate:fd use;
+#line 185
+
+
+#line 186
+  
+#line 186
+typeattribute dumpstate halclientdomain;
+#line 186
+typeattribute dumpstate hal_wifi_client;
+#line 186
+
+#line 186
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 186
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 186
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 186
+
+#line 186
+typeattribute dumpstate hal_wifi;
+#line 186
+# Find passthrough HAL implementations
+#line 186
+allow hal_wifi system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 186
+allow hal_wifi vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 186
+allow hal_wifi vendor_file:file { read open getattr execute map };
+#line 186
+
+#line 186
+;
+#line 186
+  allow hal_wifi_server dumpstate:fifo_file write;
+#line 186
+  allow hal_wifi_server dumpstate:fd use;
+#line 186
+
+
+# Vibrate the device after we are done collecting the bugreport
+
+#line 189
+typeattribute dumpstate halclientdomain;
+#line 189
+typeattribute dumpstate hal_vibrator_client;
+#line 189
+
+#line 189
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 189
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 189
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 189
+
+#line 189
+typeattribute dumpstate hal_vibrator;
+#line 189
+# Find passthrough HAL implementations
+#line 189
+allow hal_vibrator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 189
+allow hal_vibrator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 189
+allow hal_vibrator vendor_file:file { read open getattr execute map };
+#line 189
+
+#line 189
+
+
+# Reading /proc/PID/maps of other processes
+allow dumpstate self:{ capability cap_userns } sys_ptrace;
+
+# Allow the bugreport service to create a file in
+# /data/data/com.android.shell/files/bugreports/bugreport
+allow dumpstate shell_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow dumpstate shell_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Run a shell.
+allow dumpstate shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# For running am and similar framework commands.
+# Run /system/bin/app_process.
+allow dumpstate zygote_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# For Bluetooth
+allow dumpstate bluetooth_data_file:dir search;
+allow dumpstate bluetooth_logs_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate bluetooth_logs_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# For Nfc
+allow dumpstate nfc_logs_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate nfc_logs_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Dumpstate calls screencap, which grabs a screenshot. Needs gpu access
+allow dumpstate gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow dumpstate gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# logd access
+
+#line 220
+allow dumpstate logcat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 220
+
+#line 220
+allow dumpstate logdr_socket:sock_file write;
+#line 220
+allow dumpstate logd:unix_stream_socket connectto;
+#line 220
+
+#line 220
+
+
+#line 221
+# Group AID_LOG checked by filesystem & logd
+#line 221
+# to permit control commands
+#line 221
+
+#line 221
+allow dumpstate logd_socket:sock_file write;
+#line 221
+allow dumpstate logd:unix_stream_socket connectto;
+#line 221
+
+#line 221
+
+
+#line 222
+allow dumpstate runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 222
+
+
+# Read files in /proc
+allow dumpstate {
+  proc_bootconfig
+  proc_buddyinfo
+  proc_cmdline
+  proc_meminfo
+  proc_modules
+  proc_net_type
+  proc_pipe_conf
+  proc_pagetypeinfo
+  proc_qtaguid_ctrl
+  proc_qtaguid_stat
+  proc_slabinfo
+  proc_version
+  proc_vmallocinfo
+  proc_vmstat
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read network state info files.
+allow dumpstate net_data_file:dir search;
+allow dumpstate net_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# List sockets via ss.
+allow dumpstate self:netlink_tcpdiag_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_read };
+
+# Access /data/tombstones.
+allow dumpstate tombstone_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate tombstone_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access /cache/recovery
+allow dumpstate cache_recovery_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate cache_recovery_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access /data/misc/recovery
+allow dumpstate recovery_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate recovery_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access /data/misc/update_engine & /data/misc/update_engine_log
+allow dumpstate { update_engine_data_file update_engine_log_data_file }:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate { update_engine_data_file update_engine_log_data_file }:file { getattr open read ioctl lock map watch watch_reads };
+# Access /data/misc/snapuserd_log
+allow dumpstate snapuserd_log_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate snapuserd_log_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access /data/misc/profiles/{cur,ref}/
+#line 272
+
+
+# Access /data/misc/logd
+allow dumpstate misc_logd_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate misc_logd_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access /data/misc/prereboot
+allow dumpstate prereboot_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate prereboot_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+allow dumpstate app_fuse_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate overlayfs_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+allow dumpstate {
+  service_manager_type
+  -apex_service
+  -dumpstate_service
+  -gatekeeper_service
+  -hal_service_type
+  -virtual_touchpad_service
+  -vold_service
+  -default_android_service
+}:service_manager find;
+# suppress denials for services dumpstate should not be accessing.
+dontaudit dumpstate {
+  apex_service
+  dumpstate_service
+  gatekeeper_service
+  hal_service_type
+  virtual_touchpad_service
+  vold_service
+}:service_manager find;
+
+# Most of these are neverallowed.
+dontaudit dumpstate hwservice_manager_type:hwservice_manager find;
+
+allow dumpstate servicemanager:service_manager list;
+allow dumpstate hwservicemanager:hwservice_manager list;
+
+allow dumpstate devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Read any system properties
+
+#line 314
+allow dumpstate property_type:file { getattr open read map };
+#line 314
+
+
+# Access to /data/media.
+# This should be removed if sdcardfs is modified to alter the secontext for its
+# accesses to the underlying FS.
+allow dumpstate media_rw_data_file:dir getattr;
+allow dumpstate proc_interrupts:file { getattr open read ioctl lock map watch watch_reads };
+allow dumpstate proc_zoneinfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# Create a service for talking back to system_server
+
+#line 324
+  allow dumpstate dumpstate_service:service_manager { add find };
+#line 324
+  neverallow { domain -dumpstate } dumpstate_service:service_manager add;
+#line 324
+
+#line 324
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 324
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 324
+  
+#line 324
+
+
+# use /dev/ion for screen capture
+allow dumpstate ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dumpstate to run top
+allow dumpstate proc_stat:file { getattr open read ioctl lock map watch watch_reads };
+
+allow dumpstate proc_pressure_cpu:file { getattr open read ioctl lock map watch watch_reads };
+allow dumpstate proc_pressure_mem:file { getattr open read ioctl lock map watch watch_reads };
+allow dumpstate proc_pressure_io:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dumpstate to run ps
+allow dumpstate proc_pid_max:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dumpstate to talk to installd over binder
+
+#line 340
+# Call the server domain and optionally transfer references to it.
+#line 340
+allow dumpstate installd:binder { call transfer };
+#line 340
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 340
+allow installd dumpstate:binder transfer;
+#line 340
+# Receive and use open files from the server.
+#line 340
+allow dumpstate installd:fd use;
+#line 340
+;
+
+# Allow dumpstate to run ip xfrm policy
+allow dumpstate self:netlink_xfrm_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_read };
+
+# Allow dumpstate to run iotop
+allow dumpstate self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+# newer kernels (e.g. 4.4) have a new class for sockets
+allow dumpstate self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Allow dumpstate to run ss
+allow dumpstate { domain pdx_channel_socket_type pdx_endpoint_socket_type }:{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket xdp_socket } getattr;
+
+# Allow dumpstate to read linkerconfig directory
+allow dumpstate linkerconfig_file:dir { read open };
+
+# For when dumpstate runs df
+dontaudit dumpstate {
+  mnt_vendor_file
+  mirror_data_file
+  mnt_user_file
+  mnt_product_file
+}:dir search;
+dontaudit dumpstate {
+  apex_mnt_dir
+  linkerconfig_file
+  mirror_data_file
+  mnt_user_file
+}:dir getattr;
+
+# Allow dumpstate to talk to bufferhubd over binder
+
+#line 371
+# Call the server domain and optionally transfer references to it.
+#line 371
+allow dumpstate bufferhubd:binder { call transfer };
+#line 371
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 371
+allow bufferhubd dumpstate:binder transfer;
+#line 371
+# Receive and use open files from the server.
+#line 371
+allow dumpstate bufferhubd:fd use;
+#line 371
+;
+
+# Allow dumpstate to talk to mediaswcodec over binder
+
+#line 374
+# Call the server domain and optionally transfer references to it.
+#line 374
+allow dumpstate mediaswcodec:binder { call transfer };
+#line 374
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 374
+allow mediaswcodec dumpstate:binder transfer;
+#line 374
+# Receive and use open files from the server.
+#line 374
+allow dumpstate mediaswcodec:fd use;
+#line 374
+;
+
+#Access /data/misc/snapshotctl_log
+allow dumpstate snapshotctl_log_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate snapshotctl_log_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+#Allow access to /dev/binderfs/binder_logs
+allow dumpstate binderfs_logs:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate binderfs_logs:file { getattr open read ioctl lock map watch watch_reads };
+allow dumpstate binderfs_logs_proc:file { getattr open read ioctl lock map watch watch_reads };
+allow dumpstate binderfs_logs_stats:file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 386
+  allow dumpstate apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+#line 386
+  allow dumpstate apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 386
+  
+#line 386
+allow dumpstate vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 386
+allow dumpstate vendor_apex_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 386
+
+#line 386
+
+
+# Allow reading files under /data/system/shutdown-checkpoints/
+allow dumpstate shutdown_checkpoints_system_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dumpstate shutdown_checkpoints_system_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+###
+### neverallow rules
+###
+
+# dumpstate has capability sys_ptrace, but should only use that capability for
+# accessing sensitive /proc/PID files, never for using ptrace attach.
+neverallow dumpstate *:process ptrace;
+
+# only system_server, dumpstate, traceur_app and shell can find the dumpstate service
+neverallow {
+  domain
+  -system_server
+  -shell
+  -traceur_app
+  -dumpstate
+} dumpstate_service:service_manager find;
+#line 1 "system/sepolicy/public/e2fs.te"
+type e2fs, domain, coredomain;
+type e2fs_exec, system_file_type, exec_type, file_type;
+
+allow e2fs devpts:chr_file { read write getattr ioctl };
+
+allow e2fs dev_type:blk_file getattr;
+allow e2fs block_device:dir search;
+allow e2fs userdata_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow e2fs metadata_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow e2fs dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow e2fs zoned_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+# Vold needs to capture mkfs.ext4's output
+allow e2fs vold:fd use;
+# Need to be able to format a partition
+allow e2fs sysfs_dm:dir { open getattr read search ioctl lock watch watch_reads };
+allow e2fs sysfs_dm:file { getattr open read ioctl lock map watch watch_reads };
+
+allowxperm e2fs { userdata_block_device metadata_block_device dm_device zoned_block_device }:blk_file ioctl {
+  0x0000127d 0x00001277 0x0000127b 0x0000127c 0x0000125e 0xc0101282 0x40101283
+};
+
+allow e2fs {
+  proc_filesystems
+  proc_mounts
+  proc_swaps
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# access /sys/fs/ext4/features
+allow e2fs sysfs_fs_ext4_features:dir search;
+allow e2fs sysfs_fs_ext4_features:file { getattr open read ioctl lock map watch watch_reads };
+
+# access SELinux context files
+allow e2fs file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/ephemeral_app.te"
+###
+### Ephemeral apps.
+###
+### This file defines the security policy for apps with the ephemeral
+### feature.
+###
+### The ephemeral_app domain is a reduced permissions sandbox allowing
+### ephemeral applications to be safely installed and run. Non ephemeral
+### applications may also opt-in to ephemeral to take advantage of the
+### additional security features.
+###
+### PackageManager flags an app as ephemeral at install time.
+
+type ephemeral_app, domain;
+#line 1 "system/sepolicy/public/evsmanagerd.te"
+# evsmanager daemon
+type evsmanagerd, domain;
+#line 1 "system/sepolicy/public/extra_free_kbytes.te"
+# The extra_free_kbytes.sh script run by init.
+type extra_free_kbytes, domain;
+type extra_free_kbytes_exec, system_file_type, exec_type, file_type;
+
+# required permissions to run the script from init
+allow extra_free_kbytes shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow extra_free_kbytes system_file:file { getattr execute execute_no_trans map };
+allow extra_free_kbytes toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# files used by the script
+allow extra_free_kbytes proc_extra_free_kbytes:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow extra_free_kbytes proc_watermark_scale_factor:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow extra_free_kbytes proc_zoneinfo:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/fastbootd.te"
+# fastbootd (used in recovery init.rc for /sbin/fastbootd)
+
+# Declare the domain unconditionally so we can always reference it
+# in neverallow rules.
+type fastbootd, domain;
+
+# But the allow rules are only included in the recovery policy.
+# Otherwise fastbootd is only allowed the domain rules.
+#line 119
+
+
+###
+### neverallow rules
+###
+
+# Write permission is required to wipe userdata
+# until recovery supports vold.
+neverallow fastbootd {
+   data_file_type
+}:file { { execute execute_no_trans } };
+#line 1 "system/sepolicy/public/file.te"
+# Filesystem types
+type labeledfs, fs_type;
+type pipefs, fs_type;
+type sockfs, fs_type;
+type rootfs, fs_type;
+type proc, fs_type, proc_type;
+type binderfs, fs_type;
+type binderfs_logs, fs_type;
+type binderfs_logs_proc, fs_type;
+type binderfs_logs_stats, fs_type;
+type binderfs_features, fs_type;
+# Security-sensitive proc nodes that should not be writable to most.
+type proc_security, fs_type, proc_type;
+type proc_drop_caches, fs_type, proc_type;
+type proc_overcommit_memory, fs_type, proc_type;
+type proc_min_free_order_shift, fs_type, proc_type;
+type proc_kpageflags, fs_type, proc_type;
+type proc_watermark_boost_factor, fs_type, proc_type;
+type proc_percpu_pagelist_high_fraction, fs_type, proc_type;
+# proc, sysfs, or other nodes that permit configuration of kernel usermodehelpers.
+type usermodehelper, fs_type, proc_type;
+type sysfs_usermodehelper, fs_type, sysfs_type;
+type proc_qtaguid_ctrl, fs_type, mlstrustedobject, proc_type;
+type proc_qtaguid_stat, fs_type, mlstrustedobject, proc_type;
+type proc_bluetooth_writable, fs_type, proc_type;
+type proc_abi, fs_type, proc_type;
+type proc_asound, fs_type, proc_type;
+type proc_bootconfig, fs_type, proc_type;
+type proc_bpf, fs_type, proc_type;
+type proc_buddyinfo, fs_type, proc_type;
+type proc_cmdline, fs_type, proc_type;
+type proc_cpu_alignment, fs_type, proc_type;
+type proc_cpuinfo, fs_type, proc_type;
+type proc_dirty, fs_type, proc_type;
+type proc_diskstats, fs_type, proc_type;
+type proc_extra_free_kbytes, fs_type, proc_type;
+type proc_filesystems, fs_type, proc_type;
+type proc_fs_verity, fs_type, proc_type;
+type proc_hostname, fs_type, proc_type;
+type proc_hung_task, fs_type, proc_type;
+type proc_interrupts, fs_type, proc_type;
+type proc_iomem, fs_type, proc_type;
+type proc_kallsyms, fs_type, proc_type;
+type proc_keys, fs_type, proc_type;
+type proc_kmsg, fs_type, proc_type;
+type proc_loadavg, fs_type, proc_type;
+type proc_locks, fs_type, proc_type;
+type proc_lowmemorykiller, fs_type, proc_type;
+type proc_max_map_count, fs_type, proc_type;
+type proc_meminfo, fs_type, proc_type;
+type proc_misc, fs_type, proc_type;
+type proc_modules, fs_type, proc_type;
+type proc_mounts, fs_type, proc_type;
+type proc_net, fs_type, proc_type, proc_net_type;
+type proc_net_tcp_udp, fs_type, proc_type;
+type proc_page_cluster, fs_type, proc_type;
+type proc_pagetypeinfo, fs_type, proc_type;
+type proc_panic, fs_type, proc_type;
+type proc_perf, fs_type, proc_type;
+type proc_pid_max, fs_type, proc_type;
+type proc_pipe_conf, fs_type, proc_type;
+type proc_pressure_cpu, fs_type, proc_type;
+type proc_pressure_io, fs_type, proc_type;
+type proc_pressure_mem, fs_type, proc_type;
+type proc_random, fs_type, proc_type;
+type proc_sched, fs_type, proc_type;
+type proc_slabinfo, fs_type, proc_type;
+type proc_stat, fs_type, proc_type;
+type proc_swaps, fs_type, proc_type;
+type proc_sysrq, fs_type, proc_type;
+type proc_timer, fs_type, proc_type;
+type proc_tty_drivers, fs_type, proc_type;
+type proc_uid_cputime_showstat, fs_type, proc_type;
+type proc_uid_cputime_removeuid, fs_type, proc_type;
+type proc_uid_io_stats, fs_type, proc_type;
+type proc_uid_procstat_set, fs_type, proc_type;
+type proc_uid_time_in_state, fs_type, proc_type;
+type proc_uid_concurrent_active_time, fs_type, proc_type;
+type proc_uid_concurrent_policy_time, fs_type, proc_type;
+type proc_uid_cpupower, fs_type, proc_type;
+type proc_uptime, fs_type, proc_type;
+type proc_version, fs_type, proc_type;
+type proc_vmallocinfo, fs_type, proc_type;
+type proc_vmstat, fs_type, proc_type;
+type proc_watermark_scale_factor, fs_type, proc_type;
+type proc_zoneinfo, fs_type, proc_type;
+type proc_vendor_sched, proc_type, fs_type;
+type selinuxfs, fs_type, mlstrustedobject;
+type fusectlfs, fs_type;
+type cgroup, fs_type, mlstrustedobject;
+type cgroup_v2, fs_type;
+type sysfs, fs_type, sysfs_type, mlstrustedobject;
+type sysfs_android_usb, fs_type, sysfs_type;
+type sysfs_uio, sysfs_type, fs_type;
+type sysfs_batteryinfo, fs_type, sysfs_type;
+type sysfs_bluetooth_writable, fs_type, sysfs_type, mlstrustedobject;
+type sysfs_devfreq_cur, fs_type, sysfs_type;
+type sysfs_devfreq_dir, fs_type, sysfs_type;
+type sysfs_devices_block, fs_type, sysfs_type;
+type sysfs_dm, fs_type, sysfs_type;
+type sysfs_dm_verity, fs_type, sysfs_type;
+type sysfs_dma_heap, fs_type, sysfs_type;
+type sysfs_dmabuf_stats, fs_type, sysfs_type;
+type sysfs_dt_firmware_android, fs_type, sysfs_type;
+type sysfs_extcon, fs_type, sysfs_type;
+type sysfs_ion, fs_type, sysfs_type;
+type sysfs_ipv4, fs_type, sysfs_type;
+type sysfs_kernel_notes, fs_type, sysfs_type, mlstrustedobject;
+type sysfs_leds, fs_type, sysfs_type;
+type sysfs_loop, fs_type, sysfs_type;
+type sysfs_gpu, fs_type, sysfs_type;
+type sysfs_hwrandom, fs_type, sysfs_type;
+type sysfs_nfc_power_writable, fs_type, sysfs_type, mlstrustedobject;
+type sysfs_wake_lock, fs_type, sysfs_type;
+type sysfs_net, fs_type, sysfs_type;
+type sysfs_power, fs_type, sysfs_type;
+type sysfs_rtc, fs_type, sysfs_type;
+type sysfs_suspend_stats, fs_type, sysfs_type;
+type sysfs_switch, fs_type, sysfs_type;
+type sysfs_sync_on_suspend, fs_type, sysfs_type;
+type sysfs_transparent_hugepage, fs_type, sysfs_type;
+type sysfs_lru_gen_enabled, fs_type, sysfs_type;
+type sysfs_usb, fs_type, sysfs_type;
+type sysfs_wakeup, fs_type, sysfs_type;
+type sysfs_wakeup_reasons, fs_type, sysfs_type;
+type sysfs_fs_ext4_features, sysfs_type, fs_type;
+type sysfs_fs_f2fs, sysfs_type, fs_type;
+type sysfs_fs_fuse_bpf, sysfs_type, fs_type;
+type sysfs_fs_fuse_features, sysfs_type, fs_type;
+type sysfs_fs_incfs_features, sysfs_type, fs_type;
+type sysfs_fs_incfs_metrics, sysfs_type, fs_type;
+type sysfs_vendor_sched, sysfs_type, fs_type;
+#line 135
+
+type fs_bpf, fs_type, bpffs_type;
+# TODO: S+ fs_bpf_tethering (used by mainline) should be private
+type fs_bpf_tethering, fs_type, bpffs_type;
+type fs_bpf_vendor, fs_type, bpffs_type;
+type configfs, fs_type;
+# /sys/devices/cs_etm
+type sysfs_devices_cs_etm, fs_type, sysfs_type;
+# /sys/devices/system/cpu
+type sysfs_devices_system_cpu, fs_type, sysfs_type;
+# /sys/module/lowmemorykiller
+type sysfs_lowmemorykiller, fs_type, sysfs_type;
+# /sys/module/wlan/parameters/fwpath
+type sysfs_wlan_fwpath, fs_type, sysfs_type;
+type sysfs_vibrator, fs_type, sysfs_type;
+type sysfs_uhid, fs_type, sysfs_type;
+type sysfs_thermal, sysfs_type, fs_type;
+
+type sysfs_zram, fs_type, sysfs_type;
+type sysfs_zram_uevent, fs_type, sysfs_type;
+type inotify, fs_type, mlstrustedobject;
+type devpts, fs_type, mlstrustedobject;
+type tmpfs, fs_type;
+type shm, fs_type;
+type mqueue, fs_type;
+type fuse, fusefs_type, fs_type, mlstrustedobject;
+type fuseblk, sdcard_type, fusefs_type, fs_type, mlstrustedobject;
+type sdcardfs, sdcard_type, fs_type, mlstrustedobject;
+type vfat, sdcard_type, fs_type, mlstrustedobject;
+type exfat, sdcard_type, fs_type, mlstrustedobject;
+type debugfs, fs_type, debugfs_type;
+type debugfs_kprobes, fs_type, debugfs_type;
+type debugfs_mmc, fs_type, debugfs_type;
+type debugfs_mm_events_tracing, fs_type, debugfs_type, tracefs_type;
+type debugfs_trace_marker, fs_type, debugfs_type, mlstrustedobject, tracefs_type;
+type debugfs_tracing, fs_type, debugfs_type, mlstrustedobject, tracefs_type;
+type debugfs_tracing_debug, fs_type, debugfs_type, mlstrustedobject, tracefs_type;
+type debugfs_tracing_instances, fs_type, debugfs_type, tracefs_type;
+type debugfs_tracing_printk_formats, fs_type, debugfs_type, tracefs_type;
+type debugfs_wakeup_sources, fs_type, debugfs_type;
+type debugfs_wifi_tracing, fs_type, debugfs_type, tracefs_type;
+type securityfs, fs_type;
+
+type pstorefs, fs_type;
+type functionfs, fs_type, mlstrustedobject;
+type oemfs, fs_type, contextmount_type;
+type usbfs, fs_type;
+type binfmt_miscfs, fs_type;
+type app_fusefs, fs_type, fusefs_type, contextmount_type;
+
+# File types
+type unlabeled, file_type;
+
+# Default type for anything under /system.
+type system_file, system_file_type, file_type;
+# Default type for /system/asan.options
+type system_asan_options_file, system_file_type, file_type;
+# Type for /system/etc/event-log-tags (liblog implementation detail)
+type system_event_log_tags_file, system_file_type, file_type;
+# Default type for anything under /system/lib[64].
+type system_lib_file, system_file_type, file_type;
+# system libraries that are available only to bootstrap processes
+type system_bootstrap_lib_file, system_file_type, file_type;
+# Default type for the group file /system/etc/group.
+type system_group_file, system_file_type, file_type;
+# Default type for linker executable /system/bin/linker[64].
+type system_linker_exec, system_file_type, file_type;
+# Default type for linker config /system/etc/ld.config.*.
+type system_linker_config_file, system_file_type, file_type;
+# Default type for the passwd file /system/etc/passwd.
+type system_passwd_file, system_file_type, file_type;
+# Default type for linker config /system/etc/seccomp_policy/*.
+type system_seccomp_policy_file, system_file_type, file_type;
+# Default type for cacerts in /system/etc/security/cacerts/*.
+type system_security_cacerts_file, system_file_type, file_type;
+# Default type for /system/bin/tcpdump.
+type tcpdump_exec, system_file_type, exec_type, file_type;
+# Default type for zoneinfo files in /system/usr/share/zoneinfo/*.
+type system_zoneinfo_file, system_file_type, file_type;
+# Cgroups description file under /system/etc/cgroups.json
+type cgroup_desc_file, system_file_type, file_type;
+# Cgroups description file under /system/etc/task_profiles/cgroups_*.json
+type cgroup_desc_api_file, system_file_type, file_type;
+# Vendor cgroups description file under /vendor/etc/cgroups.json
+type vendor_cgroup_desc_file, vendor_file_type, file_type;
+# Task profiles file under /system/etc/task_profiles.json
+type task_profiles_file, system_file_type, file_type;
+# Task profiles file under /system/etc/task_profiles/task_profiles_*.json
+type task_profiles_api_file, system_file_type, file_type;
+# Vendor task profiles file under /vendor/etc/task_profiles.json
+type vendor_task_profiles_file, vendor_file_type, file_type;
+# Type for /system/apex/com.android.art
+type art_apex_dir, system_file_type, file_type;
+# /linkerconfig(/.*)?
+type linkerconfig_file, file_type;
+# Control files under /data/incremental
+type incremental_control_file, file_type, data_file_type, core_data_file_type;
+# /oem/media/bootanimation.zip|shutdownanimation.zip|userspace-reboot.zip
+type bootanim_oem_file, file_type, system_file_type;
+
+# Default type for directories search for
+# HAL implementations
+type vendor_hal_file, vendor_file_type, file_type;
+# Default type for under /vendor or /system/vendor
+type vendor_file, vendor_file_type, file_type;
+# Default type for everything in /vendor/app
+type vendor_app_file, vendor_file_type, file_type;
+# Default type for everything under /vendor/etc/
+type vendor_configs_file, vendor_file_type, file_type;
+# Default type for all *same process* HALs and their lib/bin dependencies.
+# e.g. libEGL_xxx.so, android.hardware.graphics.mapper@2.0-impl.so
+type same_process_hal_file, vendor_file_type, file_type;
+# Default type for vndk-sp libs. /vendor/lib/vndk-sp
+type vndk_sp_file, vendor_file_type, file_type;
+# Default type for everything in /vendor/framework
+type vendor_framework_file, vendor_file_type, file_type;
+# Default type for everything in /vendor/overlay
+type vendor_overlay_file, vendor_file_type, file_type;
+# Type for all vendor public libraries. These libs should only be exposed to
+# apps. ABI stability of these libs is vendor's responsibility.
+type vendor_public_lib_file, vendor_file_type, file_type;
+# Type for all vendor public libraries for system. These libs should only be exposed to
+# system. ABI stability of these libs is vendor's responsibility.
+type vendor_public_framework_file, vendor_file_type, file_type;
+# Type for all microdroid related files in the vendor partition.
+# Files having this type should be read-only.
+type vendor_microdroid_file, vendor_file_type, file_type;
+
+# Input configuration
+type vendor_keylayout_file, vendor_file_type, file_type;
+type vendor_keychars_file, vendor_file_type, file_type;
+type vendor_idc_file, vendor_file_type, file_type;
+
+# Type for vendor uuid mapping config file
+type vendor_uuid_mapping_config_file, vendor_file_type, file_type;
+
+# SoC-specific virtual machine disk files
+type vendor_vm_file, vendor_file_type, file_type;
+# SoC-specific virtual machine disk files that are mutable
+type vendor_vm_data_file, vendor_file_type, file_type;
+
+# /metadata partition itself
+type metadata_file, file_type;
+# Vold files within /metadata
+type vold_metadata_file, file_type;
+# GSI files within /metadata
+type gsi_metadata_file, gsi_metadata_file_type, file_type;
+# DSU (GSI) files within /metadata that are globally readable.
+type gsi_public_metadata_file, gsi_metadata_file_type, file_type;
+# system_server shares Weaver slot information in /metadata
+type password_slot_metadata_file, file_type;
+# APEX files within /metadata
+type apex_metadata_file, file_type;
+# libsnapshot files within /metadata
+type ota_metadata_file, file_type;
+# property files within /metadata/bootstat
+type metadata_bootstat_file, file_type;
+# userspace reboot files within /metadata/userspacereboot
+type userspace_reboot_metadata_file, file_type;
+# Staged install files within /metadata/staged-install
+type staged_install_file, file_type;
+# Metadata information within /metadata/watchdog
+type watchdog_metadata_file, file_type;
+# Repair mode files within /metadata/repair-mode
+type repair_mode_metadata_file, file_type;
+# Aconfig storage file
+type aconfig_storage_metadata_file, file_type;
+# Aconfig storage flag value persistent copy
+type aconfig_storage_flags_metadata_file, file_type;
+
+# Type for /dev/cpu_variant:.*.
+type dev_cpu_variant, file_type;
+# Speedup access for trusted applications to the runtime event tags
+type runtime_event_log_tags_file, file_type;
+# Type for /system/bin/logcat.
+type logcat_exec, system_file_type, exec_type, file_type;
+# Speedup access to cgroup map file
+type cgroup_rc_file, file_type;
+# /cores for coredumps on userdebug / eng builds
+type coredump_file, file_type;
+# Type of /data itself
+type system_data_root_file, file_type, data_file_type, core_data_file_type;
+# Default type for anything under /data.
+type system_data_file, file_type, data_file_type, core_data_file_type;
+# Default type for directories containing per-user encrypted directories, such
+# as /data/user and /data/user_de.
+type system_userdir_file, file_type, data_file_type, core_data_file_type;
+# Type for /data/system/packages.list.
+# TODO(b/129332765): Narrow down permissions to this.
+# Find out users of system_data_file that should be granted only this.
+type packages_list_file, file_type, data_file_type, core_data_file_type;
+type game_mode_intervention_list_file, file_type, data_file_type, core_data_file_type;
+# Default type for anything inside /data/vendor_{ce,de}.
+type vendor_data_file, file_type, data_file_type;
+# Type for /data/vendor_{ce,de} themselves.  This has core_data_file_type
+# because these directories themselves are platform-managed; only the files
+# *inside* them are vendor data.  (Somewhat similar to system_data_root_file.)
+type vendor_userdir_file, file_type, data_file_type, core_data_file_type;
+# Unencrypted data
+type unencrypted_data_file, file_type, data_file_type, core_data_file_type;
+# installd-create files in /data/misc/installd such as layout_version
+type install_data_file, file_type, data_file_type, core_data_file_type;
+# /data/drm - DRM plugin data
+type drm_data_file, file_type, data_file_type, core_data_file_type;
+# /data/adb - adb debugging files
+type adb_data_file, file_type, data_file_type, core_data_file_type;
+# /data/anr - ANR traces
+type anr_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/tombstones - core dumps
+type tombstone_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/vendor/tombstones/wifi - vendor wifi dumps
+type tombstone_wifi_data_file, file_type, data_file_type;
+# /data/apex - APEX data files
+type apex_data_file, file_type, data_file_type, core_data_file_type;
+# /data/app - user-installed apps
+type apk_data_file, file_type, data_file_type, core_data_file_type;
+type apk_tmp_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/app-private - forward-locked apps
+type apk_private_data_file, file_type, data_file_type, core_data_file_type;
+type apk_private_tmp_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/dalvik-cache
+type dalvikcache_data_file, file_type, data_file_type, core_data_file_type;
+# /data/ota
+type ota_data_file, file_type, data_file_type, core_data_file_type;
+# /data/ota_package
+type ota_package_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/misc/profiles
+type user_profile_root_file, file_type, data_file_type, core_data_file_type;
+type user_profile_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/misc/profman
+type profman_dump_data_file, file_type, data_file_type, core_data_file_type;
+# /data/misc/prereboot
+type prereboot_data_file, file_type, data_file_type, core_data_file_type;
+# /data/resource-cache
+type resourcecache_data_file, file_type, data_file_type, core_data_file_type;
+# /data/local - writable by shell
+type shell_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type, mlstrustedobject;
+# /data/property
+type property_data_file, file_type, data_file_type, core_data_file_type;
+# /data/bootchart
+type bootchart_data_file, file_type, data_file_type, core_data_file_type;
+# /data/system/dropbox
+type dropbox_data_file, file_type, data_file_type, core_data_file_type;
+# /data/system/heapdump
+type heapdump_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/nativetest
+type nativetest_data_file, file_type, data_file_type, core_data_file_type;
+# /data/local/tests
+type shell_test_data_file, file_type, data_file_type, core_data_file_type;
+# /data/system_de/0/ringtones
+type ringtone_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# /data/preloads
+type preloads_data_file, file_type, data_file_type, core_data_file_type;
+# /data/preloads/media
+type preloads_media_file, file_type, data_file_type, core_data_file_type;
+# /data/misc/dhcp and /data/misc/dhcp-6.8.2
+type dhcp_data_file, file_type, data_file_type, core_data_file_type;
+# /data/server_configurable_flags
+type server_configurable_flags_data_file, file_type, data_file_type, core_data_file_type;
+# /data/app-staging
+type staging_data_file, file_type, data_file_type, core_data_file_type;
+# /vendor/apex
+type vendor_apex_file, vendor_file_type, file_type;
+# apex_manifest.pb in vendor apex
+type vendor_apex_metadata_file, vendor_file_type, file_type;
+# /data/system/shutdown-checkpoints
+type shutdown_checkpoints_system_data_file, file_type, data_file_type, core_data_file_type;
+
+# Mount locations managed by vold
+type mnt_media_rw_file, file_type;
+type mnt_user_file, file_type;
+type mnt_pass_through_file, file_type;
+type mnt_expand_file, file_type;
+type mnt_sdcard_file, file_type;
+type storage_file, file_type;
+
+# Label for storage dirs which are just mount stubs
+type mnt_media_rw_stub_file, file_type;
+type storage_stub_file, file_type;
+
+# Mount location for read-write vendor partitions.
+type mnt_vendor_file, file_type;
+
+# Mount location for read-write product partitions.
+type mnt_product_file, file_type;
+
+# Mount point used for APEX images
+type apex_mnt_dir, file_type;
+
+# /apex/apex-info-list.xml created by apexd
+type apex_info_file, file_type;
+
+# /postinstall: Mount point used by update_engine to run postinstall.
+type postinstall_mnt_dir, file_type;
+# Files inside the /postinstall mountpoint are all labeled as postinstall_file.
+type postinstall_file, file_type;
+# /postinstall/apex: Mount point used for APEX images within /postinstall.
+type postinstall_apex_mnt_dir, file_type;
+
+# /data_mirror: Contains mirror directory for storing all apps data.
+type mirror_data_file, file_type, core_data_file_type;
+
+# /data/misc subdirectories
+type adb_keys_file, file_type, data_file_type, core_data_file_type;
+type apex_system_server_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+type apex_module_data_file, file_type, data_file_type, core_data_file_type;
+type apex_ota_reserved_file, file_type, data_file_type, core_data_file_type;
+type apex_rollback_data_file, file_type, data_file_type, core_data_file_type;
+type appcompat_data_file, file_type, data_file_type, core_data_file_type;
+type audio_data_file, file_type, data_file_type, core_data_file_type;
+type audioserver_data_file, file_type, data_file_type, core_data_file_type;
+type bluetooth_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type;
+type bluetooth_logs_data_file, file_type, data_file_type, core_data_file_type;
+type bootstat_data_file, file_type, data_file_type, core_data_file_type;
+type boottrace_data_file, file_type, data_file_type, core_data_file_type;
+type camera_data_file, file_type, data_file_type, core_data_file_type;
+type credstore_data_file, file_type, data_file_type, core_data_file_type;
+type gatekeeper_data_file, file_type, data_file_type, core_data_file_type;
+type incident_data_file, file_type, data_file_type, core_data_file_type;
+type keychain_data_file, file_type, data_file_type, core_data_file_type;
+type keystore_data_file, file_type, data_file_type, core_data_file_type;
+type media_data_file, file_type, data_file_type, core_data_file_type;
+type media_rw_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+type media_userdir_file, file_type, data_file_type, core_data_file_type;
+type misc_user_data_file, file_type, data_file_type, core_data_file_type;
+type net_data_file, file_type, data_file_type, core_data_file_type;
+type network_watchlist_data_file, file_type, data_file_type, core_data_file_type;
+type nfc_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type;
+type nfc_logs_data_file, file_type, data_file_type, core_data_file_type;
+type radio_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type, mlstrustedobject;
+type recovery_data_file, file_type, data_file_type, core_data_file_type;
+type shared_relro_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+type snapshotctl_log_data_file, file_type, data_file_type, core_data_file_type;
+type stats_config_data_file, file_type, data_file_type, core_data_file_type;
+type stats_data_file, file_type, data_file_type, core_data_file_type;
+type systemkeys_data_file, file_type, data_file_type, core_data_file_type;
+type textclassifier_data_file, file_type, data_file_type, core_data_file_type;
+type trace_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+type vpn_data_file, file_type, data_file_type, core_data_file_type;
+type wifi_data_file, file_type, data_file_type, core_data_file_type;
+type vold_data_file, file_type, data_file_type, core_data_file_type;
+type tee_data_file, file_type, data_file_type;
+type update_engine_data_file, file_type, data_file_type, core_data_file_type;
+type update_engine_log_data_file, file_type, data_file_type, core_data_file_type;
+type snapuserd_log_data_file, file_type, data_file_type, core_data_file_type;
+# /data/misc/trace for method traces on userdebug / eng builds
+type method_trace_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+type gsi_data_file, file_type, data_file_type, core_data_file_type;
+type radio_core_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/data subdirectories - app sandboxes
+type app_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type;
+# /data/data subdirectories - priv-app sandboxes
+type privapp_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type;
+# /data/data subdirectory for system UID apps.
+type system_app_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type, mlstrustedobject;
+# Compatibility with type name used in Android 4.3 and 4.4.
+# Default type for anything under /cache
+type cache_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# Type for /cache/overlay /mnt/scratch/overlay
+type overlayfs_file, file_type, data_file_type, core_data_file_type;
+# Type for /cache/backup_stage/* (fd interchange with apps)
+type cache_backup_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# type for anything under /cache/backup (local transport storage)
+type cache_private_backup_file, file_type, data_file_type, core_data_file_type;
+# Type for anything under /cache/recovery
+type cache_recovery_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# Default type for anything under /efs
+type efs_file, file_type;
+# Type for wallpaper file.
+type wallpaper_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# Type for shortcut manager icon file.
+type shortcut_manager_icons, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# Type for user icon file.
+type icon_file, file_type, data_file_type, core_data_file_type;
+# /mnt/asec
+type asec_apk_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# Elements of asec files (/mnt/asec) that are world readable
+type asec_public_file, file_type, data_file_type, core_data_file_type;
+# /data/app-asec
+type asec_image_file, file_type, data_file_type, core_data_file_type;
+# /data/backup and /data/secure/backup
+type backup_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# All devices have bluetooth efs files. But they
+# vary per device, so this type is used in per
+# device policy
+type bluetooth_efs_file, file_type;
+# Type for fingerprint template file
+type fingerprintd_data_file, file_type, data_file_type, core_data_file_type;
+# Type for _new_ fingerprint template file
+type fingerprint_vendor_data_file, file_type, data_file_type;
+# Type for appfuse file.
+type app_fuse_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+# Type for face template file
+type face_vendor_data_file, file_type, data_file_type;
+# Type for iris template file
+type iris_vendor_data_file, file_type, data_file_type;
+
+# Socket types
+type adbd_socket, file_type, coredomain_socket;
+type bluetooth_socket, file_type, data_file_type, core_data_file_type, coredomain_socket;
+type dnsproxyd_socket, file_type, coredomain_socket, mlstrustedobject;
+type dumpstate_socket, file_type, coredomain_socket;
+type fwmarkd_socket, file_type, coredomain_socket, mlstrustedobject;
+type lmkd_socket, file_type, coredomain_socket;
+type logd_socket, file_type, coredomain_socket, mlstrustedobject;
+type logdr_socket, file_type, coredomain_socket, mlstrustedobject;
+type logdw_socket, file_type, coredomain_socket, mlstrustedobject;
+type mdns_socket, file_type, coredomain_socket;
+type mdnsd_socket, file_type, coredomain_socket, mlstrustedobject;
+type misc_logd_file, coredomain_socket, file_type, data_file_type, core_data_file_type;
+type mtpd_socket, file_type, coredomain_socket;
+type ot_daemon_socket, file_type, coredomain_socket;
+type property_socket, file_type, coredomain_socket, mlstrustedobject;
+type racoon_socket, file_type, coredomain_socket;
+type recovery_socket, file_type, coredomain_socket;
+type rild_socket, file_type;
+type rild_debug_socket, file_type;
+type snapuserd_socket, file_type, coredomain_socket;
+type snapuserd_proxy_socket, file_type, coredomain_socket;
+type statsdw_socket, file_type, coredomain_socket, mlstrustedobject;
+type system_wpa_socket, file_type, data_file_type, core_data_file_type, coredomain_socket;
+type system_ndebug_socket, file_type, data_file_type, core_data_file_type, coredomain_socket, mlstrustedobject;
+type system_unsolzygote_socket, file_type, data_file_type, core_data_file_type, coredomain_socket, mlstrustedobject;
+type tombstoned_crash_socket, file_type, coredomain_socket, mlstrustedobject;
+type tombstoned_java_trace_socket, file_type, mlstrustedobject;
+type tombstoned_intercept_socket, file_type, coredomain_socket;
+type traced_consumer_socket, file_type, coredomain_socket, mlstrustedobject;
+type traced_perf_socket, file_type, coredomain_socket, mlstrustedobject;
+type traced_producer_socket, file_type, coredomain_socket, mlstrustedobject;
+type uncrypt_socket, file_type, coredomain_socket;
+type wpa_socket, file_type, data_file_type, core_data_file_type;
+type zygote_socket, file_type, coredomain_socket;
+type heapprofd_socket, file_type, coredomain_socket, mlstrustedobject;
+# UART (for GPS) control proc file
+type gps_control, file_type;
+
+# PDX endpoint types
+type pdx_display_dir, pdx_endpoint_dir_type, file_type;
+type pdx_performance_dir, pdx_endpoint_dir_type, file_type;
+type pdx_bufferhub_dir, pdx_endpoint_dir_type, file_type;
+
+
+#line 577
+typeattribute pdx_display_dir pdx_display_client_endpoint_dir_type;
+#line 577
+type pdx_display_client_endpoint_socket, pdx_display_client_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject;
+#line 577
+type pdx_display_client_channel_socket, pdx_display_client_channel_socket_type, pdx_channel_socket_type, coredomain_socket;
+#line 577
+
+#line 577
+
+
+#line 578
+typeattribute pdx_display_dir pdx_display_manager_endpoint_dir_type;
+#line 578
+type pdx_display_manager_endpoint_socket, pdx_display_manager_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject;
+#line 578
+type pdx_display_manager_channel_socket, pdx_display_manager_channel_socket_type, pdx_channel_socket_type, coredomain_socket;
+#line 578
+
+#line 578
+
+
+#line 579
+typeattribute pdx_display_dir pdx_display_screenshot_endpoint_dir_type;
+#line 579
+type pdx_display_screenshot_endpoint_socket, pdx_display_screenshot_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject;
+#line 579
+type pdx_display_screenshot_channel_socket, pdx_display_screenshot_channel_socket_type, pdx_channel_socket_type, coredomain_socket;
+#line 579
+
+#line 579
+
+
+#line 580
+typeattribute pdx_display_dir pdx_display_vsync_endpoint_dir_type;
+#line 580
+type pdx_display_vsync_endpoint_socket, pdx_display_vsync_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject;
+#line 580
+type pdx_display_vsync_channel_socket, pdx_display_vsync_channel_socket_type, pdx_channel_socket_type, coredomain_socket;
+#line 580
+
+#line 580
+
+
+#line 581
+typeattribute pdx_performance_dir pdx_performance_client_endpoint_dir_type;
+#line 581
+type pdx_performance_client_endpoint_socket, pdx_performance_client_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject;
+#line 581
+type pdx_performance_client_channel_socket, pdx_performance_client_channel_socket_type, pdx_channel_socket_type, coredomain_socket;
+#line 581
+
+#line 581
+
+
+#line 582
+typeattribute pdx_bufferhub_dir pdx_bufferhub_client_endpoint_dir_type;
+#line 582
+type pdx_bufferhub_client_endpoint_socket, pdx_bufferhub_client_endpoint_socket_type, pdx_endpoint_socket_type, file_type, coredomain_socket, mlstrustedobject, mlstrustedsubject;
+#line 582
+type pdx_bufferhub_client_channel_socket, pdx_bufferhub_client_channel_socket_type, pdx_channel_socket_type, coredomain_socket;
+#line 582
+
+#line 582
+
+
+# file_contexts files
+type file_contexts_file, system_file_type, file_type;
+
+# mac_permissions file
+type mac_perms_file, system_file_type, file_type;
+
+# property_contexts file
+type property_contexts_file, system_file_type, file_type;
+
+# seapp_contexts file
+type seapp_contexts_file, system_file_type, file_type;
+
+# sepolicy files binary and others
+type sepolicy_file, system_file_type, file_type;
+
+# service_contexts file
+type service_contexts_file, system_file_type, file_type;
+
+# keystore2_key_contexts_file
+type keystore2_key_contexts_file, system_file_type, file_type;
+
+# vendor service_contexts file
+type vendor_service_contexts_file, vendor_file_type, file_type;
+
+# hwservice_contexts file
+type hwservice_contexts_file, system_file_type, file_type;
+
+# vndservice_contexts file
+type vndservice_contexts_file, file_type;
+
+# /sys/kernel/tracing/instances/bootreceiver for monitoring kernel memory corruptions.
+type debugfs_bootreceiver_tracing, fs_type, debugfs_type, tracefs_type;
+
+# kernel modules
+type vendor_kernel_modules, vendor_file_type, file_type;
+
+# system_dlkm
+type system_dlkm_file, system_dlkm_file_type, file_type;
+
+# Allow files to be created in their appropriate filesystems.
+allow fs_type self:filesystem associate;
+allow cgroup tmpfs:filesystem associate;
+allow cgroup_v2 tmpfs:filesystem associate;
+allow cgroup_rc_file tmpfs:filesystem associate;
+allow sysfs_type sysfs:filesystem associate;
+allow debugfs_type { debugfs debugfs_tracing debugfs_tracing_debug }:filesystem associate;
+allow file_type labeledfs:filesystem associate;
+allow file_type tmpfs:filesystem associate;
+allow file_type rootfs:filesystem associate;
+allow dev_type tmpfs:filesystem associate;
+allow app_fuse_file app_fusefs:filesystem associate;
+allow postinstall_file self:filesystem associate;
+allow proc_net proc:filesystem associate;
+
+# asanwrapper (run a sanitized app_process, to be used with wrap properties)
+
+
+# Deprecated in SDK version 28
+type audiohal_data_file, file_type, data_file_type, core_data_file_type;
+
+# It's a bug to assign the file_type attribute and fs_type attribute
+# to any type. Do not allow it.
+#
+# For example, the following is a bug:
+#   type apk_data_file, file_type, data_file_type, fs_type;
+# Should be:
+#   type apk_data_file, file_type, data_file_type;
+neverallow fs_type file_type:filesystem associate;
+#line 1 "system/sepolicy/public/fingerprintd.te"
+type fingerprintd, domain;
+type fingerprintd_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow fingerprintd servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager fingerprintd:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager fingerprintd:dir search;
+#line 4
+allow servicemanager fingerprintd:file { read open };
+#line 4
+allow servicemanager fingerprintd:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+
+# Scan through /system/lib64/hw looking for installed HALs
+allow fingerprintd system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# need to find KeyStore and add self
+
+#line 10
+  allow fingerprintd fingerprintd_service:service_manager { add find };
+#line 10
+  neverallow { domain -fingerprintd } fingerprintd_service:service_manager add;
+#line 10
+
+#line 10
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 10
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 10
+  
+#line 10
+
+
+# allow HAL module to read dir contents
+allow fingerprintd fingerprintd_data_file:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } };
+
+# allow HAL module to read/write/unlink contents of this dir
+allow fingerprintd fingerprintd_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Need to add auth tokens to KeyStore
+
+#line 19
+  allow keystore fingerprintd:dir search;
+#line 19
+  allow keystore fingerprintd:file { read open };
+#line 19
+  allow keystore fingerprintd:process getattr;
+#line 19
+  allow fingerprintd apc_service:service_manager find;
+#line 19
+  allow fingerprintd keystore_service:service_manager find;
+#line 19
+  allow fingerprintd legacykeystore_service:service_manager find;
+#line 19
+  
+#line 19
+# Call the server domain and optionally transfer references to it.
+#line 19
+allow fingerprintd keystore:binder { call transfer };
+#line 19
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 19
+allow keystore fingerprintd:binder transfer;
+#line 19
+# Receive and use open files from the server.
+#line 19
+allow fingerprintd keystore:fd use;
+#line 19
+
+#line 19
+  
+#line 19
+# Call the server domain and optionally transfer references to it.
+#line 19
+allow keystore fingerprintd:binder { call transfer };
+#line 19
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 19
+allow fingerprintd keystore:binder transfer;
+#line 19
+# Receive and use open files from the server.
+#line 19
+allow keystore fingerprintd:fd use;
+#line 19
+
+#line 19
+
+allow fingerprintd keystore:keystore2 { add_auth };
+
+# For permissions checking
+
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow fingerprintd system_server:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow system_server fingerprintd:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow fingerprintd system_server:fd use;
+#line 23
+;
+allow fingerprintd permission_service:service_manager find;
+
+allow fingerprintd ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/flags_health_check.te"
+# The flags_health_check command run by init.
+type flags_health_check, domain, coredomain;
+type flags_health_check_exec, system_file_type, exec_type, file_type;
+
+allow flags_health_check server_configurable_flags_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow flags_health_check server_configurable_flags_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# server_configurable_flags_data_file is used for storing whether server configurable flags which
+# have been reset during current booting. Mistakenly modified by unrelated components can
+# cause bad server configurable flags synced back to device.
+neverallow { domain -init -flags_health_check } server_configurable_flags_data_file:file { append create link unlink relabelfrom rename setattr write };
+#line 1 "system/sepolicy/public/fsck.te"
+# Any fsck program run by init
+type fsck, domain;
+type fsck_exec, system_file_type, exec_type, file_type;
+
+# /dev/__null__ created by init prior to policy load,
+# open fd inherited by fsck.
+allow fsck tmpfs:chr_file { read write ioctl };
+
+# Inherit and use pty created by android_fork_execvp_ext().
+allow fsck devpts:chr_file { read write ioctl getattr };
+
+# Allow stdin/out back to vold
+allow fsck vold:fd use;
+allow fsck vold:fifo_file { read write getattr };
+
+# Run fsck on certain block devices
+allow fsck userdata_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow fsck cache_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow fsck dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow fsck zoned_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 23
+
+
+# e2fsck performs a comprehensive search of /proc/mounts to check whether the
+# checked filesystem is currently mounted.
+allow fsck metadata_file:dir getattr;
+allow fsck block_device:dir search;
+allow fsck mirror_data_file:dir search;
+
+# For the block devices where we have ioctl access,
+# allow at a minimum the following common fsck ioctls.
+allowxperm fsck dev_type:blk_file ioctl {
+  0x0000127c
+  0x0000125e
+  0xc0101282
+};
+
+# To determine if it is safe to run fsck on a filesystem, e2fsck
+# must first determine if the filesystem is mounted. To do that,
+# e2fsck scans through /proc/mounts and collects all the mounted
+# block devices. With that information, it runs stat() on each block
+# device, comparing the major and minor numbers to the filesystem
+# passed in on the command line. If there is a match, then the filesystem
+# is currently mounted and running fsck is dangerous.
+# Allow stat access to all block devices so that fsck can compare
+# major/minor values.
+allow fsck dev_type:blk_file getattr;
+
+allow fsck {
+  proc_mounts
+  proc_swaps
+  sysfs_dm
+}:file { getattr open read ioctl lock map watch watch_reads };
+allow fsck rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow fsck sysfs_dm:dir { open getattr read search ioctl lock watch watch_reads };
+
+###
+### neverallow rules
+###
+
+# fsck should never be run on these block devices
+neverallow fsck {
+  boot_block_device
+  frp_block_device
+  recovery_block_device
+  root_block_device
+  swap_block_device
+  system_block_device
+  
+  vold_device
+}:blk_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Only allow entry from init or vold via fsck binaries
+neverallow { domain -init -vold } fsck:process transition;
+neverallow * fsck:process dyntransition;
+neverallow fsck { file_type fs_type -fsck_exec }:file entrypoint;
+#line 1 "system/sepolicy/public/fsck_untrusted.te"
+# Any fsck program run on untrusted block devices
+type fsck_untrusted, domain;
+
+# Inherit and use pty created by android_fork_execvp_ext().
+allow fsck_untrusted devpts:chr_file { read write ioctl getattr };
+
+# Allow stdin/out back to vold
+allow fsck_untrusted vold:fd use;
+allow fsck_untrusted vold:fifo_file { read write getattr };
+
+# Run fsck on vold block devices
+allow fsck_untrusted block_device:dir search;
+allow fsck_untrusted vold_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+allow fsck_untrusted proc_mounts:file { getattr open read ioctl lock map watch watch_reads };
+
+# To determine if it is safe to run fsck on a filesystem, e2fsck
+# must first determine if the filesystem is mounted. To do that,
+# e2fsck scans through /proc/mounts and collects all the mounted
+# block devices. With that information, it runs stat() on each block
+# device, comparing the major and minor numbers to the filesystem
+# passed in on the command line. If there is a match, then the filesystem
+# is currently mounted and running fsck is dangerous.
+# Allow stat access to all block devices so that fsck can compare
+# major/minor values.
+allow fsck_untrusted dev_type:blk_file getattr;
+
+###
+### neverallow rules
+###
+
+# Untrusted fsck should never be run on block devices holding sensitive data
+neverallow fsck_untrusted {
+  boot_block_device
+  frp_block_device
+  metadata_block_device
+  recovery_block_device
+  root_block_device
+  swap_block_device
+  system_block_device
+  userdata_block_device
+  cache_block_device
+  dm_device
+}:blk_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Only allow entry from vold via fsck binaries
+neverallow { domain -vold } fsck_untrusted:process transition;
+neverallow * fsck_untrusted:process dyntransition;
+neverallow fsck_untrusted { file_type fs_type -fsck_exec }:file entrypoint;
+
+# fsck_untrusted should never have sys_admin permissions. If it requires sys_admin
+# permissions, that is a code mistake that needs to be fixed, not a permission that
+# should be granted. Same with setgid and setuid.
+neverallow fsck_untrusted self:{ capability cap_userns } { setgid setuid sys_admin };
+
+###
+### dontaudit rules
+###
+
+# Ignores attempts to access sysfs. fsck binaries seem to like trying to go
+# here, but nothing bad happens if they can't, and they shouldn't be allowed.
+dontaudit fsck_untrusted sysfs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+dontaudit fsck_untrusted sysfs_dm:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+dontaudit fsck_untrusted sysfs_dm:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Ignore attempts to access tmpfs. fsck don't need to do this.
+dontaudit fsck_untrusted tmpfs:lnk_file read;
+#line 1 "system/sepolicy/public/gatekeeperd.te"
+type gatekeeperd, domain;
+type gatekeeperd_exec, system_file_type, exec_type, file_type;
+
+# gatekeeperd
+
+#line 5
+typeattribute gatekeeperd binderservicedomain;
+#line 5
+
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow gatekeeperd servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager gatekeeperd:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager gatekeeperd:dir search;
+#line 6
+allow servicemanager gatekeeperd:file { read open };
+#line 6
+allow servicemanager gatekeeperd:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+### Rules needed when Gatekeeper HAL runs inside gatekeeperd process.
+### These rules should eventually be granted only when needed.
+allow gatekeeperd ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+# Load HAL implementation
+allow gatekeeperd system_file:dir { open getattr read search ioctl lock watch watch_reads };
+###
+
+### Rules needed when Gatekeeper HAL runs outside of gatekeeperd process.
+### These rules should eventually be granted only when needed.
+
+#line 17
+typeattribute gatekeeperd halclientdomain;
+#line 17
+typeattribute gatekeeperd hal_gatekeeper_client;
+#line 17
+
+#line 17
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 17
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 17
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 17
+
+#line 17
+typeattribute gatekeeperd hal_gatekeeper;
+#line 17
+# Find passthrough HAL implementations
+#line 17
+allow hal_gatekeeper system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow hal_gatekeeper vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow hal_gatekeeper vendor_file:file { read open getattr execute map };
+#line 17
+
+#line 17
+
+###
+
+# need to find KeyStore and add self
+
+#line 21
+  allow gatekeeperd gatekeeper_service:service_manager { add find };
+#line 21
+  neverallow { domain -gatekeeperd } gatekeeper_service:service_manager add;
+#line 21
+
+#line 21
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 21
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 21
+  
+#line 21
+
+
+# Need to add auth tokens to KeyStore
+
+#line 24
+  allow keystore gatekeeperd:dir search;
+#line 24
+  allow keystore gatekeeperd:file { read open };
+#line 24
+  allow keystore gatekeeperd:process getattr;
+#line 24
+  allow gatekeeperd apc_service:service_manager find;
+#line 24
+  allow gatekeeperd keystore_service:service_manager find;
+#line 24
+  allow gatekeeperd legacykeystore_service:service_manager find;
+#line 24
+  
+#line 24
+# Call the server domain and optionally transfer references to it.
+#line 24
+allow gatekeeperd keystore:binder { call transfer };
+#line 24
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 24
+allow keystore gatekeeperd:binder transfer;
+#line 24
+# Receive and use open files from the server.
+#line 24
+allow gatekeeperd keystore:fd use;
+#line 24
+
+#line 24
+  
+#line 24
+# Call the server domain and optionally transfer references to it.
+#line 24
+allow keystore gatekeeperd:binder { call transfer };
+#line 24
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 24
+allow gatekeeperd keystore:binder transfer;
+#line 24
+# Receive and use open files from the server.
+#line 24
+allow keystore gatekeeperd:fd use;
+#line 24
+
+#line 24
+
+allow gatekeeperd keystore:keystore2 { add_auth };
+allow gatekeeperd authorization_service:service_manager find;
+
+
+# For permissions checking
+allow gatekeeperd system_server:binder call;
+allow gatekeeperd permission_service:service_manager find;
+
+# for SID file access
+allow gatekeeperd gatekeeper_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow gatekeeperd gatekeeper_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# For hardware properties retrieval
+allow gatekeeperd hardware_properties_service:service_manager find;
+
+
+#line 40
+allow gatekeeperd cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 40
+allow gatekeeperd cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 40
+
+
+#line 41
+allow gatekeeperd cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 41
+allow gatekeeperd cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 41
+
+#line 1 "system/sepolicy/public/gmscore_app.te"
+###
+### A domain for further sandboxing the PrebuiltGMSCore app.
+###
+
+type gmscore_app, domain;
+#line 1 "system/sepolicy/public/gpuservice.te"
+# gpuservice - server for gpu stats and other gpu related services
+type gpuservice, domain;
+#line 1 "system/sepolicy/public/hal_allocator.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_allocator_client hal_allocator_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_allocator_server hal_allocator_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_allocator_client hal_allocator_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_allocator_client hidl_allocator_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_allocator_server hidl_allocator_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_allocator_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_allocator_server } hidl_allocator_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+allow hal_allocator_client hidl_memory_hwservice:hwservice_manager find;
+allow hal_allocator_client same_process_hal_file:file { execute read open getattr map };
+#line 1 "system/sepolicy/public/hal_atrace.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_atrace_client hal_atrace_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_atrace_server hal_atrace_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_atrace_client hal_atrace_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_atrace_client hal_atrace_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_atrace_server hal_atrace_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_atrace_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_atrace_server } hal_atrace_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+#line 1 "system/sepolicy/public/hal_audio.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_audio_client hal_audio_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_audio_server hal_audio_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_audio_client hal_audio_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_audio_server hal_audio_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_audio_client hal_audio_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_audio_server hal_audio_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_audio_client hal_audio_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_audio_server hal_audio_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_audio_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_audio_server } hal_audio_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_audio_client hal_audio_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_audio_server hal_audio_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_audio_server } hal_audio_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+allow hal_audio ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow hal_audio_server servicemanager:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow servicemanager hal_audio_server:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow hal_audio_server servicemanager:fd use;
+#line 10
+
+
+
+#line 12
+allow hal_audio proc:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_audio proc:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 12
+
+
+#line 13
+allow hal_audio proc_asound:dir { open getattr read search ioctl lock watch watch_reads };
+#line 13
+allow hal_audio proc_asound:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 13
+
+allow hal_audio_server audio_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow hal_audio_server audio_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Needed to provide debug dump output via dumpsys' pipes.
+allow hal_audio shell:fd use;
+allow hal_audio shell:fifo_file write;
+allow hal_audio dumpstate:fd use;
+allow hal_audio dumpstate:fifo_file write;
+
+# Needed to allow sound trigger hal to access shared memory from apps.
+allow hal_audio_server appdomain:fd use;
+# Allow sound trigger hal to access shared memory from system server.
+allow hal_audio_server system_server_tmpfs:file { getattr map read };
+
+# allow self to set scheduler (and allows Binder RT PI)
+allow hal_audio_server self:{ capability cap_userns } sys_nice;
+
+# allow hal audio to use vnbinder
+
+#line 32
+# Talk to the vndbinder device node
+#line 32
+allow hal_audio vndbinder_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 32
+# Call the vndservicemanager and transfer references to it.
+#line 32
+allow hal_audio vndservicemanager:binder { call transfer };
+#line 32
+# vndservicemanager performs getpidcon on clients.
+#line 32
+allow vndservicemanager hal_audio:dir search;
+#line 32
+allow vndservicemanager hal_audio:file { read open map };
+#line 32
+allow vndservicemanager hal_audio:process getattr;
+#line 32
+
+
+###
+### neverallow rules
+###
+
+# Should never execute any executable without a domain transition
+neverallow hal_audio_server { file_type fs_type }:file execute_no_trans;
+
+# Only audio HAL may directly access the audio hardware
+neverallow { halserverdomain -hal_audio_server -hal_omx_server } audio_device:chr_file *;
+
+
+#line 44
+allow hal_audio audio_config_prop:file { getattr open read map };
+#line 44
+
+
+#line 45
+allow hal_audio bluetooth_a2dp_offload_prop:file { getattr open read map };
+#line 45
+
+
+#line 46
+allow hal_audio bluetooth_audio_hal_prop:file { getattr open read map };
+#line 46
+
+#line 1 "system/sepolicy/public/hal_audiocontrol.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_audiocontrol_client hal_audiocontrol_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_audiocontrol_server hal_audiocontrol_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_audiocontrol_client hal_audiocontrol_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_audiocontrol_server hal_audiocontrol_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_audiocontrol_client hal_audiocontrol_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_audiocontrol_server hal_audiocontrol_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_audiocontrol_client hal_audiocontrol_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_audiocontrol_server hal_audiocontrol_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_audiocontrol_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_audiocontrol_server } hal_audiocontrol_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_audiocontrol_client hal_audiocontrol_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_audiocontrol_server hal_audiocontrol_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_audiocontrol_server } hal_audiocontrol_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_audiocontrol_server servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_audiocontrol_server:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_audiocontrol_server servicemanager:fd use;
+#line 8
+
+#line 1 "system/sepolicy/public/hal_authgraph.te"
+
+#line 1
+# Call the server domain and optionally transfer references to it.
+#line 1
+allow hal_authgraph_client hal_authgraph_server:binder { call transfer };
+#line 1
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1
+allow hal_authgraph_server hal_authgraph_client:binder transfer;
+#line 1
+# Receive and use open files from the server.
+#line 1
+allow hal_authgraph_client hal_authgraph_server:fd use;
+#line 1
+
+
+
+#line 3
+  allow hal_authgraph_client hal_authgraph_service:service_manager find;
+#line 3
+  
+#line 3
+  allow hal_authgraph_server hal_authgraph_service:service_manager { add find };
+#line 3
+  neverallow { domain -hal_authgraph_server } hal_authgraph_service:service_manager add;
+#line 3
+
+#line 3
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 3
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 3
+  
+#line 3
+
+#line 3
+
+#line 3
+  
+#line 3
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow hal_authgraph_server servicemanager:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow servicemanager hal_authgraph_server:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow hal_authgraph_server servicemanager:fd use;
+#line 4
+
+
+allow hal_authgraph_server tee_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_authgraph_server ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/hal_authsecret.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_authsecret_client hal_authsecret_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_authsecret_server hal_authsecret_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_authsecret_client hal_authsecret_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_authsecret_client hal_authsecret_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_authsecret_server hal_authsecret_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_authsecret_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_authsecret_server } hal_authsecret_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+  allow hal_authsecret_client hal_authsecret_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_authsecret_server hal_authsecret_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_authsecret_server } hal_authsecret_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_authsecret_server servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_authsecret_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_authsecret_server servicemanager:fd use;
+#line 7
+
+#line 1 "system/sepolicy/public/hal_bluetooth.te"
+# HwBinder IPC from clients into server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_bluetooth_client hal_bluetooth_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_bluetooth_server hal_bluetooth_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_bluetooth_client hal_bluetooth_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_bluetooth_server hal_bluetooth_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_bluetooth_client hal_bluetooth_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_bluetooth_server hal_bluetooth_client:fd use;
+#line 3
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow hal_bluetooth_server servicemanager:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow servicemanager hal_bluetooth_server:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow hal_bluetooth_server servicemanager:fd use;
+#line 4
+
+
+
+#line 6
+  allow hal_bluetooth_client hal_bluetooth_hwservice:hwservice_manager find;
+#line 6
+  
+#line 6
+  allow hal_bluetooth_server hal_bluetooth_hwservice:hwservice_manager { add find };
+#line 6
+  allow hal_bluetooth_server hidl_base_hwservice:hwservice_manager add;
+#line 6
+  neverallow { domain -hal_bluetooth_server } hal_bluetooth_hwservice:hwservice_manager add;
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+#line 7
+  allow hal_bluetooth_client hal_bluetooth_service:service_manager find;
+#line 7
+  
+#line 7
+  allow hal_bluetooth_server hal_bluetooth_service:service_manager { add find };
+#line 7
+  neverallow { domain -hal_bluetooth_server } hal_bluetooth_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+
+
+#line 9
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 9
+# deprecated.
+#line 9
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 9
+allow hal_bluetooth sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 9
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 9
+allow hal_bluetooth self:{ capability2 cap2_userns } block_suspend;
+#line 9
+# system_suspend permissions
+#line 9
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow hal_bluetooth system_suspend_server:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow system_suspend_server hal_bluetooth:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow hal_bluetooth system_suspend_server:fd use;
+#line 9
+
+#line 9
+allow hal_bluetooth system_suspend_hwservice:hwservice_manager find;
+#line 9
+# halclientdomain permissions
+#line 9
+
+#line 9
+# Call the hwservicemanager and transfer references to it.
+#line 9
+allow hal_bluetooth hwservicemanager:binder { call transfer };
+#line 9
+# Allow hwservicemanager to send out callbacks
+#line 9
+allow hwservicemanager hal_bluetooth:binder { call transfer };
+#line 9
+# hwservicemanager performs getpidcon on clients.
+#line 9
+allow hwservicemanager hal_bluetooth:dir search;
+#line 9
+allow hwservicemanager hal_bluetooth:file { read open map };
+#line 9
+allow hwservicemanager hal_bluetooth:process getattr;
+#line 9
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 9
+# all domains in domain.te.
+#line 9
+
+#line 9
+
+#line 9
+allow hal_bluetooth hwservicemanager_prop:file { getattr open read map };
+#line 9
+
+#line 9
+allow hal_bluetooth hidl_manager_hwservice:hwservice_manager find;
+#line 9
+# AIDL suspend hal permissions
+#line 9
+allow hal_bluetooth hal_system_suspend_service:service_manager find;
+#line 9
+
+#line 9
+# Call the servicemanager and transfer references to it.
+#line 9
+allow hal_bluetooth servicemanager:binder { call transfer };
+#line 9
+# Allow servicemanager to send out callbacks
+#line 9
+allow servicemanager hal_bluetooth:binder { call transfer };
+#line 9
+# servicemanager performs getpidcon on clients.
+#line 9
+allow servicemanager hal_bluetooth:dir search;
+#line 9
+allow servicemanager hal_bluetooth:file { read open };
+#line 9
+allow servicemanager hal_bluetooth:process getattr;
+#line 9
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 9
+# all domains in domain.te.
+#line 9
+
+#line 9
+;
+
+# The HAL toggles rfkill to power the chip off/on.
+allow hal_bluetooth self:{ capability cap_userns } net_admin;
+
+# bluetooth factory file accesses.
+
+#line 15
+allow hal_bluetooth bluetooth_efs_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow hal_bluetooth bluetooth_efs_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 15
+
+
+allow hal_bluetooth { uhid_device hci_attach_dev }:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# sysfs access.
+
+#line 20
+allow hal_bluetooth sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_bluetooth sysfs_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 20
+
+allow hal_bluetooth sysfs_bluetooth_writable:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_bluetooth self:{ capability2 cap2_userns } wake_alarm;
+
+# Allow write access to bluetooth-specific properties
+
+#line 25
+
+#line 25
+allow hal_bluetooth property_socket:sock_file write;
+#line 25
+allow hal_bluetooth init:unix_stream_socket connectto;
+#line 25
+
+#line 25
+allow hal_bluetooth bluetooth_a2dp_offload_prop:property_service set;
+#line 25
+
+#line 25
+allow hal_bluetooth bluetooth_a2dp_offload_prop:file { getattr open read map };
+#line 25
+
+#line 25
+
+
+#line 26
+
+#line 26
+allow hal_bluetooth property_socket:sock_file write;
+#line 26
+allow hal_bluetooth init:unix_stream_socket connectto;
+#line 26
+
+#line 26
+allow hal_bluetooth bluetooth_audio_hal_prop:property_service set;
+#line 26
+
+#line 26
+allow hal_bluetooth bluetooth_audio_hal_prop:file { getattr open read map };
+#line 26
+
+#line 26
+
+
+#line 27
+
+#line 27
+allow hal_bluetooth property_socket:sock_file write;
+#line 27
+allow hal_bluetooth init:unix_stream_socket connectto;
+#line 27
+
+#line 27
+allow hal_bluetooth bluetooth_prop:property_service set;
+#line 27
+
+#line 27
+allow hal_bluetooth bluetooth_prop:file { getattr open read map };
+#line 27
+
+#line 27
+
+
+#line 28
+
+#line 28
+allow hal_bluetooth property_socket:sock_file write;
+#line 28
+allow hal_bluetooth init:unix_stream_socket connectto;
+#line 28
+
+#line 28
+allow hal_bluetooth exported_bluetooth_prop:property_service set;
+#line 28
+
+#line 28
+allow hal_bluetooth exported_bluetooth_prop:file { getattr open read map };
+#line 28
+
+#line 28
+
+
+# /proc access (bluesleep etc.).
+allow hal_bluetooth proc_bluetooth_writable:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# allow to run with real-time scheduling policy
+allow hal_bluetooth self:{ capability cap_userns } sys_nice;
+#line 1 "system/sepolicy/public/hal_bootctl.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_bootctl_client hal_bootctl_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_bootctl_server hal_bootctl_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_bootctl_client hal_bootctl_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_bootctl_server hal_bootctl_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_bootctl_client hal_bootctl_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_bootctl_server hal_bootctl_client:fd use;
+#line 3
+
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow hal_bootctl_server servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager hal_bootctl_server:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager hal_bootctl_server:dir search;
+#line 4
+allow servicemanager hal_bootctl_server:file { read open };
+#line 4
+allow servicemanager hal_bootctl_server:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+
+
+#line 6
+  allow hal_bootctl_client hal_bootctl_hwservice:hwservice_manager find;
+#line 6
+  
+#line 6
+  allow hal_bootctl_server hal_bootctl_hwservice:hwservice_manager { add find };
+#line 6
+  allow hal_bootctl_server hidl_base_hwservice:hwservice_manager add;
+#line 6
+  neverallow { domain -hal_bootctl_server } hal_bootctl_hwservice:hwservice_manager add;
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+allow hal_bootctl_server proc_bootconfig:file { getattr open read ioctl lock map watch watch_reads };
+
+# Needed to wait for AIDL hal services
+
+#line 10
+  allow hal_bootctl_client hal_bootctl_service:service_manager find;
+#line 10
+  
+#line 10
+  allow hal_bootctl_server hal_bootctl_service:service_manager { add find };
+#line 10
+  neverallow { domain -hal_bootctl_server } hal_bootctl_service:service_manager add;
+#line 10
+
+#line 10
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 10
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 10
+  
+#line 10
+
+#line 10
+
+#line 10
+  
+#line 10
+;
+#line 1 "system/sepolicy/public/hal_broadcastradio.te"
+
+#line 1
+# Call the server domain and optionally transfer references to it.
+#line 1
+allow hal_broadcastradio_client hal_broadcastradio_server:binder { call transfer };
+#line 1
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1
+allow hal_broadcastradio_server hal_broadcastradio_client:binder transfer;
+#line 1
+# Receive and use open files from the server.
+#line 1
+allow hal_broadcastradio_client hal_broadcastradio_server:fd use;
+#line 1
+
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_broadcastradio_server hal_broadcastradio_client:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_broadcastradio_client hal_broadcastradio_server:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_broadcastradio_server hal_broadcastradio_client:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_broadcastradio_client hal_broadcastradio_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_broadcastradio_server hal_broadcastradio_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_broadcastradio_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_broadcastradio_server } hal_broadcastradio_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+  allow hal_broadcastradio_client hal_broadcastradio_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_broadcastradio_server hal_broadcastradio_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_broadcastradio_server } hal_broadcastradio_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_broadcastradio_server servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_broadcastradio_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_broadcastradio_server servicemanager:fd use;
+#line 7
+
+#line 1 "system/sepolicy/public/hal_camera.te"
+# HwBinder IPC from clients to server and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_camera_client hal_camera_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_camera_server hal_camera_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_camera_client hal_camera_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_camera_server hal_camera_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_camera_client hal_camera_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_camera_server hal_camera_client:fd use;
+#line 3
+
+
+#binder IPC from client to service manager and callbacks
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow hal_camera_server servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager hal_camera_server:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager hal_camera_server:dir search;
+#line 6
+allow servicemanager hal_camera_server:file { read open };
+#line 6
+allow servicemanager hal_camera_server:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+
+#line 8
+  allow hal_camera_client hal_camera_hwservice:hwservice_manager find;
+#line 8
+  
+#line 8
+  allow hal_camera_server hal_camera_hwservice:hwservice_manager { add find };
+#line 8
+  allow hal_camera_server hidl_base_hwservice:hwservice_manager add;
+#line 8
+  neverallow { domain -hal_camera_server } hal_camera_hwservice:hwservice_manager add;
+#line 8
+
+#line 8
+
+#line 8
+  
+#line 8
+
+
+#line 9
+  allow hal_camera_client hal_camera_service:service_manager find;
+#line 9
+  
+#line 9
+  allow hal_camera_server hal_camera_service:service_manager { add find };
+#line 9
+  neverallow { domain -hal_camera_server } hal_camera_service:service_manager add;
+#line 9
+
+#line 9
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 9
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 9
+  
+#line 9
+
+#line 9
+
+#line 9
+  
+#line 9
+
+
+allow hal_camera device:dir { open getattr read search ioctl lock watch watch_reads };
+allow hal_camera video_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow hal_camera video_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_camera camera_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_camera ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_camera dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Both the client and the server need to use the graphics allocator
+allow { hal_camera_client hal_camera_server } hal_graphics_allocator:fd use;
+
+# Allow hal_camera to use fd from app,gralloc,and ashmem HAL
+allow hal_camera { appdomain -isolated_app }:fd use;
+allow hal_camera surfaceflinger:fd use;
+allow hal_camera hal_allocator_server:fd use;
+
+# Needed to provide debug dump output via dumpsys' pipes.
+allow hal_camera shell:fd use;
+allow hal_camera shell:fifo_file write;
+
+###
+### neverallow rules
+###
+
+# hal_camera should never execute any executable without a
+# domain transition
+neverallow hal_camera_server { file_type fs_type }:file execute_no_trans;
+
+# hal_camera should never need network access. Disallow network sockets.
+neverallow hal_camera_server { domain  }:{ tcp_socket udp_socket rawip_socket } *;
+
+# Only camera HAL may directly access the camera hardware
+neverallow { halserverdomain -hal_camera_server } camera_device:chr_file *;
+#line 1 "system/sepolicy/public/hal_can.te"
+# CAN controller
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_can_controller_client hal_can_controller_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_can_controller_server hal_can_controller_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_can_controller_client hal_can_controller_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_can_controller_server hal_can_controller_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_can_controller_client hal_can_controller_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_can_controller_server hal_can_controller_client:fd use;
+#line 3
+
+
+#line 4
+  allow hal_can_controller_client hal_can_controller_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_can_controller_server hal_can_controller_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_can_controller_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_can_controller_server } hal_can_controller_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+# CAN bus
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_can_bus_client hal_can_bus_server:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow hal_can_bus_server hal_can_bus_client:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_can_bus_client hal_can_bus_server:fd use;
+#line 7
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_can_bus_server hal_can_bus_client:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow hal_can_bus_client hal_can_bus_server:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_can_bus_server hal_can_bus_client:fd use;
+#line 8
+
+
+#line 9
+  allow hal_can_bus_client hal_can_bus_hwservice:hwservice_manager find;
+#line 9
+  
+#line 9
+  allow hal_can_bus_server hal_can_bus_hwservice:hwservice_manager { add find };
+#line 9
+  allow hal_can_bus_server hidl_base_hwservice:hwservice_manager add;
+#line 9
+  neverallow { domain -hal_can_bus_server } hal_can_bus_hwservice:hwservice_manager add;
+#line 9
+
+#line 9
+
+#line 9
+  
+#line 9
+
+
+# AIDL HAL for CAN buses (ICanController)
+
+#line 12
+  allow hal_can_controller_client hal_can_controller_service:service_manager find;
+#line 12
+  
+#line 12
+  allow hal_can_controller_server hal_can_controller_service:service_manager { add find };
+#line 12
+  neverallow { domain -hal_can_controller_server } hal_can_controller_service:service_manager add;
+#line 12
+
+#line 12
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 12
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 12
+  
+#line 12
+
+#line 12
+
+#line 12
+  
+#line 12
+
+
+#line 13
+# Call the servicemanager and transfer references to it.
+#line 13
+allow hal_can_controller servicemanager:binder { call transfer };
+#line 13
+# Allow servicemanager to send out callbacks
+#line 13
+allow servicemanager hal_can_controller:binder { call transfer };
+#line 13
+# servicemanager performs getpidcon on clients.
+#line 13
+allow servicemanager hal_can_controller:dir search;
+#line 13
+allow servicemanager hal_can_controller:file { read open };
+#line 13
+allow servicemanager hal_can_controller:process getattr;
+#line 13
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 13
+# all domains in domain.te.
+#line 13
+
+#line 1 "system/sepolicy/public/hal_cas.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_cas_client hal_cas_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_cas_server hal_cas_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_cas_client hal_cas_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_cas_server hal_cas_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_cas_client hal_cas_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_cas_server hal_cas_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_cas_client hal_cas_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_cas_server hal_cas_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_cas_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_cas_server } hal_cas_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+allow hal_cas_server hidl_memory_hwservice:hwservice_manager find;
+
+
+#line 8
+  allow hal_cas_client hal_cas_service:service_manager find;
+#line 8
+  
+#line 8
+  allow hal_cas_server hal_cas_service:service_manager { add find };
+#line 8
+  neverallow { domain -hal_cas_server } hal_cas_service:service_manager add;
+#line 8
+
+#line 8
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 8
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 8
+  
+#line 8
+
+#line 8
+
+#line 8
+  
+#line 8
+
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow hal_cas_server servicemanager:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow servicemanager hal_cas_server:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow hal_cas_server servicemanager:fd use;
+#line 10
+
+
+#line 11
+# Call the server domain and optionally transfer references to it.
+#line 11
+allow hal_cas_client servicemanager:binder { call transfer };
+#line 11
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 11
+allow servicemanager hal_cas_client:binder transfer;
+#line 11
+# Receive and use open files from the server.
+#line 11
+allow hal_cas_client servicemanager:fd use;
+#line 11
+
+
+# Permit reading device's serial number from system properties
+
+#line 14
+allow hal_cas_server serialno_prop:file { getattr open read map };
+#line 14
+
+
+# Read files already opened under /data
+allow hal_cas system_data_file:file { getattr read };
+
+# Read access to pseudo filesystems
+
+#line 20
+allow hal_cas cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_cas cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 20
+
+allow hal_cas cgroup:dir { search write };
+allow hal_cas cgroup:file { open append write lock map };
+
+
+#line 24
+allow hal_cas cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 24
+allow hal_cas cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 24
+
+allow hal_cas cgroup_v2:dir { search write };
+allow hal_cas cgroup_v2:file { open append write lock map };
+
+# Allow access to ion memory allocation device
+allow hal_cas ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_cas hal_graphics_allocator:fd use;
+
+allow hal_cas tee_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+###
+### neverallow rules
+###
+
+# hal_cas should never execute any executable without a
+# domain transition
+neverallow hal_cas_server { file_type fs_type }:file execute_no_trans;
+
+# do not allow privileged socket ioctl commands
+neverallowxperm hal_cas_server domain:{ rawip_socket tcp_socket udp_socket } ioctl 
+#line 43
+{
+#line 43
+# qualcomm rmnet ioctls
+#line 43
+0x00006900 0x00006902
+#line 43
+# socket ioctls
+#line 43
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 43
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 43
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 43
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 43
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 43
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 43
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 43
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 43
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 43
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 43
+# device and protocol specific ioctls
+#line 43
+0x000089f0-0x000089ff
+#line 43
+0x000089e0-0x000089ef
+#line 43
+# Wireless extension ioctls
+#line 43
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 43
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 43
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 43
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 43
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 43
+0x00008b34 0x00008b35 0x00008b36
+#line 43
+# Dev private ioctl i.e. hardware specific ioctls
+#line 43
+0x00008be0-0x00008bff
+#line 43
+};
+#line 1 "system/sepolicy/public/hal_codec2.te"
+
+#line 1
+allow hal_codec2_client media_variant_prop:file { getattr open read map };
+#line 1
+
+
+#line 2
+allow hal_codec2_server media_variant_prop:file { getattr open read map };
+#line 2
+
+
+#line 3
+allow hal_codec2_client codec2_config_prop:file { getattr open read map };
+#line 3
+
+
+#line 4
+allow hal_codec2_server codec2_config_prop:file { getattr open read map };
+#line 4
+
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_codec2_client hal_codec2_server:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow hal_codec2_server hal_codec2_client:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_codec2_client hal_codec2_server:fd use;
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_codec2_server hal_codec2_client:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow hal_codec2_client hal_codec2_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_codec2_server hal_codec2_client:fd use;
+#line 7
+
+
+
+#line 9
+  allow hal_codec2_client hal_codec2_hwservice:hwservice_manager find;
+#line 9
+  
+#line 9
+  allow hal_codec2_server hal_codec2_hwservice:hwservice_manager { add find };
+#line 9
+  allow hal_codec2_server hidl_base_hwservice:hwservice_manager add;
+#line 9
+  neverallow { domain -hal_codec2_server } hal_codec2_hwservice:hwservice_manager add;
+#line 9
+
+#line 9
+
+#line 9
+  
+#line 9
+
+
+#line 10
+  allow hal_codec2_client hal_codec2_service:service_manager find;
+#line 10
+  
+#line 10
+  allow hal_codec2_server hal_codec2_service:service_manager { add find };
+#line 10
+  neverallow { domain -hal_codec2_server } hal_codec2_service:service_manager add;
+#line 10
+
+#line 10
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 10
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 10
+  
+#line 10
+
+#line 10
+
+#line 10
+  
+#line 10
+
+
+# The following permissions are added to hal_codec2_server because vendor and
+# vndk libraries provided for Codec2 implementation need them.
+
+# Allow server access to composer sync fences
+allow hal_codec2_server hal_graphics_composer:fd use;
+
+# Allow both server and client access to ion
+allow hal_codec2_server ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow server access to camera HAL's fences
+allow hal_codec2_server hal_camera:fd use;
+
+# Receive gralloc buffer FDs from bufferhubd.
+allow hal_codec2_server bufferhubd:fd use;
+
+allow hal_codec2_client ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# codec2 aidl graphic buffer allocation waitable object
+allow hal_codec2_server su:fifo_file read;
+allow hal_codec2_server mediaserver:fifo_file read;
+allow hal_codec2_server { appdomain -isolated_app_all }:fifo_file read;
+#line 1 "system/sepolicy/public/hal_configstore.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_configstore_client hal_configstore_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_configstore_server hal_configstore_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_configstore_client hal_configstore_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_configstore_client hal_configstore_ISurfaceFlingerConfigs:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_configstore_server hal_configstore_ISurfaceFlingerConfigs:hwservice_manager { add find };
+#line 4
+  allow hal_configstore_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_configstore_server } hal_configstore_ISurfaceFlingerConfigs:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+# hal_configstore runs with a strict seccomp filter. Use crash_dump's
+# fallback path to collect crash data.
+
+#line 8
+
+#line 8
+allow hal_configstore_server anr_data_file:file append;
+#line 8
+allow hal_configstore_server dumpstate:fd use;
+#line 8
+allow hal_configstore_server incidentd:fd use;
+#line 8
+# TODO: Figure out why write is needed.
+#line 8
+allow hal_configstore_server dumpstate:fifo_file { append write };
+#line 8
+allow hal_configstore_server incidentd:fifo_file { append write };
+#line 8
+allow hal_configstore_server system_server:fifo_file { append write };
+#line 8
+allow hal_configstore_server tombstoned:unix_stream_socket connectto;
+#line 8
+allow hal_configstore_server tombstoned:fd use;
+#line 8
+allow hal_configstore_server tombstoned_crash_socket:sock_file write;
+#line 8
+allow hal_configstore_server tombstone_data_file:file append;
+#line 8
+
+
+###
+### neverallow rules
+###
+
+# Should never execute an executable without a domain transition
+neverallow hal_configstore_server { file_type fs_type }:file execute_no_trans;
+
+# Should never need network access. Disallow sockets except for
+# for unix stream/dgram sockets used for logging/debugging.
+neverallow hal_configstore_server domain:{
+  rawip_socket tcp_socket udp_socket
+  netlink_route_socket netlink_selinux_socket
+  socket netlink_socket packet_socket key_socket appletalk_socket
+  netlink_tcpdiag_socket netlink_nflog_socket
+  netlink_xfrm_socket netlink_audit_socket
+  netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket
+  netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket
+  netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket
+  netlink_rdma_socket netlink_crypto_socket
+} *;
+neverallow hal_configstore_server {
+  domain
+  -hal_configstore_server
+  -logd
+  -prng_seeder
+  
+  -tombstoned
+}:{ unix_dgram_socket unix_stream_socket } *;
+
+# Should never need access to anything on /data
+neverallow hal_configstore_server {
+  data_file_type
+  -anr_data_file # for crash dump collection
+  -tombstone_data_file # for crash dump collection
+  
+}:{ file fifo_file sock_file } *;
+
+# Should never need sdcard access
+neverallow hal_configstore_server {
+    sdcard_type
+    fuse sdcardfs vfat exfat fuseblk     # manual expansion for completeness
+}:dir ~getattr;
+neverallow hal_configstore_server {
+    sdcard_type
+    fuse sdcardfs vfat exfat fuseblk     # manual expansion for completeness
+}:file *;
+
+# Do not permit access to service_manager and vndservice_manager
+neverallow hal_configstore_server *:service_manager *;
+
+# No privileged capabilities
+neverallow hal_configstore_server self:{ capability capability2 cap_userns cap2_userns } *;
+
+# No ptracing other processes
+neverallow hal_configstore_server *:process ptrace;
+
+# no relabeling
+neverallow hal_configstore_server *:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { relabelfrom relabelto };
+#line 1 "system/sepolicy/public/hal_confirmationui.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_confirmationui_client hal_confirmationui_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_confirmationui_server hal_confirmationui_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_confirmationui_client hal_confirmationui_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_confirmationui_client hal_confirmationui_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_confirmationui_server hal_confirmationui_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_confirmationui_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_confirmationui_server } hal_confirmationui_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+  allow hal_confirmationui_client hal_confirmationui_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_confirmationui_server hal_confirmationui_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_confirmationui_server } hal_confirmationui_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_confirmationui_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_confirmationui_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_confirmationui_server servicemanager:fd use;
+#line 6
+
+#line 1 "system/sepolicy/public/hal_contexthub.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_contexthub_client hal_contexthub_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_contexthub_server hal_contexthub_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_contexthub_client hal_contexthub_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_contexthub_server hal_contexthub_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_contexthub_client hal_contexthub_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_contexthub_server hal_contexthub_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_contexthub_server hal_contexthub_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_contexthub_server } hal_contexthub_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_contexthub_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_contexthub_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_contexthub_server servicemanager:fd use;
+#line 6
+
+
+allow hal_contexthub_client hal_contexthub_service:service_manager find;
+
+
+#line 10
+  allow hal_contexthub_client hal_contexthub_hwservice:hwservice_manager find;
+#line 10
+  
+#line 10
+  allow hal_contexthub_server hal_contexthub_hwservice:hwservice_manager { add find };
+#line 10
+  allow hal_contexthub_server hidl_base_hwservice:hwservice_manager add;
+#line 10
+  neverallow { domain -hal_contexthub_server } hal_contexthub_hwservice:hwservice_manager add;
+#line 10
+
+#line 10
+
+#line 10
+  
+#line 10
+
+#line 1 "system/sepolicy/public/hal_drm.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the servicemanager and transfer references to it.
+#line 2
+allow hal_drm_server servicemanager:binder { call transfer };
+#line 2
+# Allow servicemanager to send out callbacks
+#line 2
+allow servicemanager hal_drm_server:binder { call transfer };
+#line 2
+# servicemanager performs getpidcon on clients.
+#line 2
+allow servicemanager hal_drm_server:dir search;
+#line 2
+allow servicemanager hal_drm_server:file { read open };
+#line 2
+allow servicemanager hal_drm_server:process getattr;
+#line 2
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 2
+# all domains in domain.te.
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_drm_client hal_drm_server:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_drm_server hal_drm_client:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_drm_client hal_drm_server:fd use;
+#line 3
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow hal_drm_server hal_drm_client:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow hal_drm_client hal_drm_server:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow hal_drm_server hal_drm_client:fd use;
+#line 4
+
+
+
+#line 6
+  allow hal_drm_client hal_drm_hwservice:hwservice_manager find;
+#line 6
+  
+#line 6
+  allow hal_drm_server hal_drm_hwservice:hwservice_manager { add find };
+#line 6
+  allow hal_drm_server hidl_base_hwservice:hwservice_manager add;
+#line 6
+  neverallow { domain -hal_drm_server } hal_drm_hwservice:hwservice_manager add;
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+#line 7
+  allow hal_drm_client hal_drm_service:service_manager find;
+#line 7
+  
+#line 7
+  allow hal_drm_server hal_drm_service:service_manager { add find };
+#line 7
+  neverallow { domain -hal_drm_server } hal_drm_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+
+allow hal_drm hidl_memory_hwservice:hwservice_manager find;
+
+# Required by Widevine DRM (b/22990512)
+allow hal_drm self:process execmem;
+
+# Permit reading device's serial number from system properties
+
+#line 15
+allow hal_drm_server serialno_prop:file { getattr open read map };
+#line 15
+
+# Permit reading force L3 system property
+
+#line 17
+allow hal_drm_server drm_forcel3_prop:file { getattr open read map };
+#line 17
+
+
+# Read files already opened under /data
+allow hal_drm system_data_file:file { getattr read };
+
+# Read access to pseudo filesystems
+
+#line 23
+allow hal_drm cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 23
+allow hal_drm cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 23
+
+allow hal_drm cgroup:dir { search write };
+allow hal_drm cgroup:file { open append write lock map };
+
+
+#line 27
+allow hal_drm cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 27
+allow hal_drm cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 27
+
+allow hal_drm cgroup_v2:dir { search write };
+allow hal_drm cgroup_v2:file { open append write lock map };
+
+# Allow dumpsys Widevine without root
+#line 35
+
+
+# Allow access to ion memory allocation device
+allow hal_drm ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_drm hal_graphics_allocator:fd use;
+
+# Allow access to hidl_memory allocation service
+allow hal_drm hal_allocator_server:fd use;
+
+# Allow access to fds allocated by mediaserver
+allow hal_drm mediaserver:fd use;
+
+allow hal_drm sysfs:file { getattr open read ioctl lock map watch watch_reads };
+
+allow hal_drm tee_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+allow hal_drm_server { appdomain -isolated_app }:fd use;
+
+# only allow unprivileged socket ioctl commands
+allowxperm hal_drm self:{ rawip_socket tcp_socket udp_socket }
+  ioctl { 
+#line 55
+{
+#line 55
+# Socket ioctls for gathering information about the interface
+#line 55
+0x00008906 0x00008907
+#line 55
+0x00008910 0x00008912 0x00008913 0x00008915 0x00008917 0x00008919
+#line 55
+0x0000891b 0x00008921 0x00008933 0x00008938 0x00008942
+#line 55
+# Wireless extension ioctls. Primarily get functions.
+#line 55
+0x00008b01 0x00008b05 0x00008b07 0x00008b09 0x00008b0b 0x00008b0d
+#line 55
+0x00008b0f 0x00008b11 0x00008b12 0x00008b13 0x00008b21 0x00008b23
+#line 55
+0x00008b25 0x00008b27 0x00008b29 0x00008b2d
+#line 55
+} {
+#line 55
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 55
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 55
+} };
+
+###
+### neverallow rules
+###
+
+# hal_drm should never execute any executable without a
+# domain transition
+neverallow hal_drm_server { file_type fs_type }:file execute_no_trans;
+
+# do not allow privileged socket ioctl commands
+neverallowxperm hal_drm_server domain:{ rawip_socket tcp_socket udp_socket } ioctl 
+#line 66
+{
+#line 66
+# qualcomm rmnet ioctls
+#line 66
+0x00006900 0x00006902
+#line 66
+# socket ioctls
+#line 66
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 66
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 66
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 66
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 66
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 66
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 66
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 66
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 66
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 66
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 66
+# device and protocol specific ioctls
+#line 66
+0x000089f0-0x000089ff
+#line 66
+0x000089e0-0x000089ef
+#line 66
+# Wireless extension ioctls
+#line 66
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 66
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 66
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 66
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 66
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 66
+0x00008b34 0x00008b35 0x00008b36
+#line 66
+# Dev private ioctl i.e. hardware specific ioctls
+#line 66
+0x00008be0-0x00008bff
+#line 66
+};
+#line 1 "system/sepolicy/public/hal_dumpstate.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_dumpstate_client hal_dumpstate_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_dumpstate_server hal_dumpstate_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_dumpstate_client hal_dumpstate_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_dumpstate_server hal_dumpstate_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_dumpstate_client hal_dumpstate_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_dumpstate_server hal_dumpstate_client:fd use;
+#line 3
+
+
+
+#line 5
+
+#line 5
+allow hal_dumpstate_server property_socket:sock_file write;
+#line 5
+allow hal_dumpstate_server init:unix_stream_socket connectto;
+#line 5
+
+#line 5
+allow hal_dumpstate_server hal_dumpstate_config_prop:property_service set;
+#line 5
+
+#line 5
+allow hal_dumpstate_server hal_dumpstate_config_prop:file { getattr open read map };
+#line 5
+
+#line 5
+
+
+
+#line 7
+  allow hal_dumpstate_client hal_dumpstate_hwservice:hwservice_manager find;
+#line 7
+  
+#line 7
+  allow hal_dumpstate_server hal_dumpstate_hwservice:hwservice_manager { add find };
+#line 7
+  allow hal_dumpstate_server hidl_base_hwservice:hwservice_manager add;
+#line 7
+  neverallow { domain -hal_dumpstate_server } hal_dumpstate_hwservice:hwservice_manager add;
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+
+#line 8
+  allow hal_dumpstate_client hal_dumpstate_service:service_manager find;
+#line 8
+  
+#line 8
+  allow hal_dumpstate_server hal_dumpstate_service:service_manager { add find };
+#line 8
+  neverallow { domain -hal_dumpstate_server } hal_dumpstate_service:service_manager add;
+#line 8
+
+#line 8
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 8
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 8
+  
+#line 8
+
+#line 8
+
+#line 8
+  
+#line 8
+
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow hal_dumpstate_server servicemanager:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow servicemanager hal_dumpstate_server:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow hal_dumpstate_server servicemanager:fd use;
+#line 10
+
+
+
+#line 12
+# Call the servicemanager and transfer references to it.
+#line 12
+allow hal_dumpstate_server servicemanager:binder { call transfer };
+#line 12
+# Allow servicemanager to send out callbacks
+#line 12
+allow servicemanager hal_dumpstate_server:binder { call transfer };
+#line 12
+# servicemanager performs getpidcon on clients.
+#line 12
+allow servicemanager hal_dumpstate_server:dir search;
+#line 12
+allow servicemanager hal_dumpstate_server:file { read open };
+#line 12
+allow servicemanager hal_dumpstate_server:process getattr;
+#line 12
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 12
+# all domains in domain.te.
+#line 12
+
+
+# write bug reports in /data/data/com.android.shell/files/bugreports/bugreport
+allow hal_dumpstate shell_data_file:file write;
+# allow reading /proc/interrupts for all hal impls
+allow hal_dumpstate proc_interrupts:file { getattr open read ioctl lock map watch watch_reads };
+
+# Log fsck results
+
+#line 20
+allow hal_dumpstate fscklogs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_dumpstate fscklogs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 20
+
+#line 1 "system/sepolicy/public/hal_evs.te"
+
+#line 1
+# Call the hwservicemanager and transfer references to it.
+#line 1
+allow hal_evs_client hwservicemanager:binder { call transfer };
+#line 1
+# Allow hwservicemanager to send out callbacks
+#line 1
+allow hwservicemanager hal_evs_client:binder { call transfer };
+#line 1
+# hwservicemanager performs getpidcon on clients.
+#line 1
+allow hwservicemanager hal_evs_client:dir search;
+#line 1
+allow hwservicemanager hal_evs_client:file { read open map };
+#line 1
+allow hwservicemanager hal_evs_client:process getattr;
+#line 1
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 1
+# all domains in domain.te.
+#line 1
+
+
+#line 2
+# Call the hwservicemanager and transfer references to it.
+#line 2
+allow hal_evs_server hwservicemanager:binder { call transfer };
+#line 2
+# Allow hwservicemanager to send out callbacks
+#line 2
+allow hwservicemanager hal_evs_server:binder { call transfer };
+#line 2
+# hwservicemanager performs getpidcon on clients.
+#line 2
+allow hwservicemanager hal_evs_server:dir search;
+#line 2
+allow hwservicemanager hal_evs_server:file { read open map };
+#line 2
+allow hwservicemanager hal_evs_server:process getattr;
+#line 2
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 2
+# all domains in domain.te.
+#line 2
+
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow hal_evs_client hal_evs_server:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow hal_evs_server hal_evs_client:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow hal_evs_client hal_evs_server:fd use;
+#line 4
+
+
+#line 5
+# Call the server domain and optionally transfer references to it.
+#line 5
+allow hal_evs_server hal_evs_client:binder { call transfer };
+#line 5
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 5
+allow hal_evs_client hal_evs_server:binder transfer;
+#line 5
+# Receive and use open files from the server.
+#line 5
+allow hal_evs_server hal_evs_client:fd use;
+#line 5
+
+
+# Below lines are equivalent to hal_attribute_hwservice(hal_evs, hal_evs_hwservice)
+# except it allows evsmanagerd to add hal_evs_hwservice.
+allow hal_evs_client hal_evs_hwservice:hwservice_manager find;
+allow hal_evs_server hal_evs_hwservice:hwservice_manager { add find };
+allow hal_evs_server hidl_base_hwservice:hwservice_manager add;
+neverallow { domain -hal_evs_server -evsmanagerd } hal_evs_hwservice:hwservice_manager add;
+
+# Allows to add a service
+
+#line 15
+  allow hal_evs_client hal_evs_service:service_manager find;
+#line 15
+  
+#line 15
+  allow hal_evs_server hal_evs_service:service_manager { add find };
+#line 15
+  neverallow { domain -hal_evs_server } hal_evs_service:service_manager add;
+#line 15
+
+#line 15
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 15
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 15
+  
+#line 15
+
+#line 15
+
+#line 15
+  
+#line 15
+
+#line 1 "system/sepolicy/public/hal_face.te"
+# Allow HwBinder IPC from client to server, and vice versa for callbacks.
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_face_client hal_face_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_face_server hal_face_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_face_client hal_face_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_face_server hal_face_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_face_client hal_face_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_face_server hal_face_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_face_client hal_face_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_face_server hal_face_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_face_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_face_server } hal_face_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_face_client hal_face_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_face_server hal_face_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_face_server } hal_face_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_face_server servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_face_server:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_face_server:dir search;
+#line 8
+allow servicemanager hal_face_server:file { read open };
+#line 8
+allow servicemanager hal_face_server:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+# Allow access to the ion memory allocation device.
+allow hal_face ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow read/write access to the face template directory.
+allow hal_face face_vendor_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow hal_face face_vendor_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+#line 1 "system/sepolicy/public/hal_fastboot.te"
+# allow binder connection from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_fastboot_client hal_fastboot_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_fastboot_server hal_fastboot_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_fastboot_client hal_fastboot_server:fd use;
+#line 2
+
+# allow client to find the service, allow server to register the service
+
+#line 4
+  allow hal_fastboot_client hal_fastboot_service:service_manager find;
+#line 4
+  
+#line 4
+  allow hal_fastboot_server hal_fastboot_service:service_manager { add find };
+#line 4
+  neverallow { domain -hal_fastboot_server } hal_fastboot_service:service_manager add;
+#line 4
+
+#line 4
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 4
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 4
+  
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+# allow binder communication from server to service_manager
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_fastboot_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_fastboot_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_fastboot_server servicemanager:fd use;
+#line 6
+
+
+#line 1 "system/sepolicy/public/hal_fingerprint.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_fingerprint_client hal_fingerprint_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_fingerprint_server hal_fingerprint_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_fingerprint_client hal_fingerprint_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_fingerprint_server hal_fingerprint_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_fingerprint_client hal_fingerprint_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_fingerprint_server hal_fingerprint_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_fingerprint_client hal_fingerprint_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_fingerprint_server hal_fingerprint_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_fingerprint_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_fingerprint_server } hal_fingerprint_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_fingerprint_client hal_fingerprint_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_fingerprint_server hal_fingerprint_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_fingerprint_server } hal_fingerprint_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_fingerprint_server servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_fingerprint_server:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_fingerprint_server:dir search;
+#line 8
+allow servicemanager hal_fingerprint_server:file { read open };
+#line 8
+allow servicemanager hal_fingerprint_server:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+# For memory allocation
+allow hal_fingerprint ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+allow hal_fingerprint fingerprint_vendor_data_file:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } };
+allow hal_fingerprint fingerprint_vendor_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+
+#line 16
+allow hal_fingerprint cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 16
+allow hal_fingerprint cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 16
+
+
+#line 17
+allow hal_fingerprint cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow hal_fingerprint cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 17
+
+
+#line 18
+allow hal_fingerprint sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow hal_fingerprint sysfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 18
+
+
+
+#line 1 "system/sepolicy/public/hal_gatekeeper.te"
+
+#line 1
+# Call the server domain and optionally transfer references to it.
+#line 1
+allow hal_gatekeeper_client hal_gatekeeper_server:binder { call transfer };
+#line 1
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1
+allow hal_gatekeeper_server hal_gatekeeper_client:binder transfer;
+#line 1
+# Receive and use open files from the server.
+#line 1
+allow hal_gatekeeper_client hal_gatekeeper_server:fd use;
+#line 1
+
+
+
+#line 3
+  allow hal_gatekeeper_client hal_gatekeeper_hwservice:hwservice_manager find;
+#line 3
+  
+#line 3
+  allow hal_gatekeeper_server hal_gatekeeper_hwservice:hwservice_manager { add find };
+#line 3
+  allow hal_gatekeeper_server hidl_base_hwservice:hwservice_manager add;
+#line 3
+  neverallow { domain -hal_gatekeeper_server } hal_gatekeeper_hwservice:hwservice_manager add;
+#line 3
+
+#line 3
+
+#line 3
+  
+#line 3
+
+
+#line 4
+  allow hal_gatekeeper_client hal_gatekeeper_service:service_manager find;
+#line 4
+  
+#line 4
+  allow hal_gatekeeper_server hal_gatekeeper_service:service_manager { add find };
+#line 4
+  neverallow { domain -hal_gatekeeper_server } hal_gatekeeper_service:service_manager add;
+#line 4
+
+#line 4
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 4
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 4
+  
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+# Call the server domain and optionally transfer references to it.
+#line 5
+allow hal_gatekeeper_server servicemanager:binder { call transfer };
+#line 5
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 5
+allow servicemanager hal_gatekeeper_server:binder transfer;
+#line 5
+# Receive and use open files from the server.
+#line 5
+allow hal_gatekeeper_server servicemanager:fd use;
+#line 5
+
+
+# TEE access.
+allow hal_gatekeeper tee_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_gatekeeper ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/hal_gnss.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_gnss_client hal_gnss_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_gnss_server hal_gnss_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_gnss_client hal_gnss_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_gnss_server hal_gnss_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_gnss_client hal_gnss_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_gnss_server hal_gnss_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_gnss_client hal_gnss_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_gnss_server hal_gnss_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_gnss_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_gnss_server } hal_gnss_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_gnss_client hal_gnss_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_gnss_server hal_gnss_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_gnss_server } hal_gnss_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow hal_gnss_server servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager hal_gnss_server:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager hal_gnss_server:dir search;
+#line 7
+allow servicemanager hal_gnss_server:file { read open };
+#line 7
+allow servicemanager hal_gnss_server:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_gnss_client servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_gnss_client:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_gnss_client:dir search;
+#line 8
+allow servicemanager hal_gnss_client:file { read open };
+#line 8
+allow servicemanager hal_gnss_client:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+#line 1 "system/sepolicy/public/hal_graphics_allocator.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_graphics_allocator_client hal_graphics_allocator_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_graphics_allocator_server hal_graphics_allocator_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_graphics_allocator_client hal_graphics_allocator_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_graphics_allocator_client hal_graphics_allocator_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_graphics_allocator_server hal_graphics_allocator_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_graphics_allocator_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_graphics_allocator_server } hal_graphics_allocator_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+allow hal_graphics_allocator_client hal_graphics_mapper_hwservice:hwservice_manager find;
+allow hal_graphics_allocator_client hal_graphics_mapper_service:service_manager find;
+allow hal_graphics_allocator_client same_process_hal_file:file { execute read open getattr map };
+
+# GPU device access
+allow hal_graphics_allocator gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_graphics_allocator gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow hal_graphics_allocator ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow hal_graphics_allocator dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Access the secure heap
+allow hal_graphics_allocator dmabuf_system_secure_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# allow to run with real-time scheduling policy
+allow hal_graphics_allocator self:{ capability cap_userns } sys_nice;
+
+# IAllocator stable-aidl
+
+#line 22
+  allow hal_graphics_allocator_client hal_graphics_allocator_service:service_manager find;
+#line 22
+  
+#line 22
+  allow hal_graphics_allocator_server hal_graphics_allocator_service:service_manager { add find };
+#line 22
+  neverallow { domain -hal_graphics_allocator_server } hal_graphics_allocator_service:service_manager add;
+#line 22
+
+#line 22
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 22
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 22
+  
+#line 22
+
+#line 22
+
+#line 22
+  
+#line 22
+
+
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow hal_graphics_allocator_server servicemanager:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow servicemanager hal_graphics_allocator_server:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow hal_graphics_allocator_server servicemanager:fd use;
+#line 23
+
+
+#line 24
+# Call the server domain and optionally transfer references to it.
+#line 24
+allow hal_graphics_allocator_client servicemanager:binder { call transfer };
+#line 24
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 24
+allow servicemanager hal_graphics_allocator_client:binder transfer;
+#line 24
+# Receive and use open files from the server.
+#line 24
+allow hal_graphics_allocator_client servicemanager:fd use;
+#line 24
+
+#line 1 "system/sepolicy/public/hal_graphics_composer.te"
+type hal_graphics_composer_server_tmpfs, file_type;
+attribute hal_graphics_composer_client_tmpfs;
+expandattribute hal_graphics_composer_client_tmpfs true;
+
+# HwBinder IPC from client to server, and callbacks
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_graphics_composer_client hal_graphics_composer_server:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow hal_graphics_composer_server hal_graphics_composer_client:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_graphics_composer_client hal_graphics_composer_server:fd use;
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_graphics_composer_server hal_graphics_composer_client:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow hal_graphics_composer_client hal_graphics_composer_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_graphics_composer_server hal_graphics_composer_client:fd use;
+#line 7
+
+allow hal_graphics_composer_client hal_graphics_composer_server_tmpfs:file { getattr map read write };
+allow hal_graphics_composer_server hal_graphics_composer_client_tmpfs:file { getattr map read write };
+
+
+#line 11
+  allow hal_graphics_composer_client hal_graphics_composer_hwservice:hwservice_manager find;
+#line 11
+  
+#line 11
+  allow hal_graphics_composer_server hal_graphics_composer_hwservice:hwservice_manager { add find };
+#line 11
+  allow hal_graphics_composer_server hidl_base_hwservice:hwservice_manager add;
+#line 11
+  neverallow { domain -hal_graphics_composer_server } hal_graphics_composer_hwservice:hwservice_manager add;
+#line 11
+
+#line 11
+
+#line 11
+  
+#line 11
+
+
+# Coordinate with hal_graphics_mapper
+allow hal_graphics_composer_server hal_graphics_mapper_hwservice:hwservice_manager find;
+
+# GPU device access
+allow hal_graphics_composer gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_graphics_composer gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow hal_graphics_composer ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow hal_graphics_composer dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow hal_graphics_composer hal_graphics_allocator:fd use;
+
+# Access /dev/graphics/fb0.
+allow hal_graphics_composer graphics_device:dir search;
+allow hal_graphics_composer graphics_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Fences
+allow hal_graphics_composer system_server:fd use;
+allow hal_graphics_composer bootanim:fd use;
+allow hal_graphics_composer appdomain:fd use;
+
+# allow self to set SCHED_FIFO
+allow hal_graphics_composer self:{ capability cap_userns } sys_nice;
+
+# allow surfaceflinger to use a pipe for dumpsys output
+allow hal_graphics_composer_server hal_graphics_composer_client:fifo_file write;
+
+
+
+#line 39
+# Call the server domain and optionally transfer references to it.
+#line 39
+allow hal_graphics_composer_client servicemanager:binder { call transfer };
+#line 39
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 39
+allow servicemanager hal_graphics_composer_client:binder transfer;
+#line 39
+# Receive and use open files from the server.
+#line 39
+allow hal_graphics_composer_client servicemanager:fd use;
+#line 39
+
+
+#line 40
+# Call the server domain and optionally transfer references to it.
+#line 40
+allow hal_graphics_composer_server servicemanager:binder { call transfer };
+#line 40
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 40
+allow servicemanager hal_graphics_composer_server:binder transfer;
+#line 40
+# Receive and use open files from the server.
+#line 40
+allow hal_graphics_composer_server servicemanager:fd use;
+#line 40
+
+
+
+#line 42
+  allow hal_graphics_composer_client hal_graphics_composer_service:service_manager find;
+#line 42
+  
+#line 42
+  allow hal_graphics_composer_server hal_graphics_composer_service:service_manager { add find };
+#line 42
+  neverallow { domain -hal_graphics_composer_server } hal_graphics_composer_service:service_manager add;
+#line 42
+
+#line 42
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 42
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 42
+  
+#line 42
+
+#line 42
+
+#line 42
+  
+#line 42
+
+#line 1 "system/sepolicy/public/hal_health.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_health_client hal_health_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_health_server hal_health_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_health_client hal_health_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_health_server hal_health_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_health_client hal_health_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_health_server hal_health_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_health_client hal_health_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_health_server hal_health_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_health_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_health_server } hal_health_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_health_client hal_health_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_health_server hal_health_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_health_server } hal_health_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+# Common rules for a health service.
+
+# Allow to listen to uevents for updates
+allow hal_health_server self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Allow to read /sys/class/power_supply directory
+allow hal_health_server sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow to read files under /sys/class/power_supply. Implementations typically have symlinks
+# to vendor specific files. Vendors should mark sysfs_batteryinfo on all files read by health
+# HAL service.
+
+#line 19
+allow hal_health_server sysfs_batteryinfo:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_health_server sysfs_batteryinfo:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 19
+
+
+# Allow to wake up to send periodic events
+
+#line 22
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 22
+# deprecated.
+#line 22
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 22
+allow hal_health_server sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 22
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 22
+allow hal_health_server self:{ capability2 cap2_userns } block_suspend;
+#line 22
+# system_suspend permissions
+#line 22
+
+#line 22
+# Call the server domain and optionally transfer references to it.
+#line 22
+allow hal_health_server system_suspend_server:binder { call transfer };
+#line 22
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 22
+allow system_suspend_server hal_health_server:binder transfer;
+#line 22
+# Receive and use open files from the server.
+#line 22
+allow hal_health_server system_suspend_server:fd use;
+#line 22
+
+#line 22
+allow hal_health_server system_suspend_hwservice:hwservice_manager find;
+#line 22
+# halclientdomain permissions
+#line 22
+
+#line 22
+# Call the hwservicemanager and transfer references to it.
+#line 22
+allow hal_health_server hwservicemanager:binder { call transfer };
+#line 22
+# Allow hwservicemanager to send out callbacks
+#line 22
+allow hwservicemanager hal_health_server:binder { call transfer };
+#line 22
+# hwservicemanager performs getpidcon on clients.
+#line 22
+allow hwservicemanager hal_health_server:dir search;
+#line 22
+allow hwservicemanager hal_health_server:file { read open map };
+#line 22
+allow hwservicemanager hal_health_server:process getattr;
+#line 22
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 22
+# all domains in domain.te.
+#line 22
+
+#line 22
+
+#line 22
+allow hal_health_server hwservicemanager_prop:file { getattr open read map };
+#line 22
+
+#line 22
+allow hal_health_server hidl_manager_hwservice:hwservice_manager find;
+#line 22
+# AIDL suspend hal permissions
+#line 22
+allow hal_health_server hal_system_suspend_service:service_manager find;
+#line 22
+
+#line 22
+# Call the servicemanager and transfer references to it.
+#line 22
+allow hal_health_server servicemanager:binder { call transfer };
+#line 22
+# Allow servicemanager to send out callbacks
+#line 22
+allow servicemanager hal_health_server:binder { call transfer };
+#line 22
+# servicemanager performs getpidcon on clients.
+#line 22
+allow servicemanager hal_health_server:dir search;
+#line 22
+allow servicemanager hal_health_server:file { read open };
+#line 22
+allow servicemanager hal_health_server:process getattr;
+#line 22
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 22
+# all domains in domain.te.
+#line 22
+
+#line 22
+
+
+# Write to /dev/kmsg
+allow hal_health_server kmsg_device:chr_file { getattr { open append write lock map } };
+
+# Allow to use timerfd to wake itself up periodically to send health info.
+allow hal_health_server self:capability2 wake_alarm;
+
+# Use bpf programs
+allow hal_health_server fs_bpf_vendor:dir search;
+allow hal_health_server fs_bpf_vendor:file read;
+allow hal_health_server bpfloader:bpf prog_run;
+#line 1 "system/sepolicy/public/hal_health_storage.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_health_storage_client hal_health_storage_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_health_storage_server hal_health_storage_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_health_storage_client hal_health_storage_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_health_storage_server hal_health_storage_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_health_storage_client hal_health_storage_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_health_storage_server hal_health_storage_client:fd use;
+#line 3
+
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow hal_health_storage_server servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager hal_health_storage_server:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager hal_health_storage_server:dir search;
+#line 5
+allow servicemanager hal_health_storage_server:file { read open };
+#line 5
+allow servicemanager hal_health_storage_server:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+
+#line 7
+  allow hal_health_storage_client hal_health_storage_hwservice:hwservice_manager find;
+#line 7
+  
+#line 7
+  allow hal_health_storage_server hal_health_storage_hwservice:hwservice_manager { add find };
+#line 7
+  allow hal_health_storage_server hidl_base_hwservice:hwservice_manager add;
+#line 7
+  neverallow { domain -hal_health_storage_server } hal_health_storage_hwservice:hwservice_manager add;
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+
+#line 8
+  allow hal_health_storage_client hal_health_storage_service:service_manager find;
+#line 8
+  
+#line 8
+  allow hal_health_storage_server hal_health_storage_service:service_manager { add find };
+#line 8
+  neverallow { domain -hal_health_storage_server } hal_health_storage_service:service_manager add;
+#line 8
+
+#line 8
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 8
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 8
+  
+#line 8
+
+#line 8
+
+#line 8
+  
+#line 8
+
+
+# Allow ReadDefaultFstab().
+
+#line 11
+  allow hal_health_storage_server { metadata_file gsi_metadata_file_type }:dir search;
+#line 11
+  allow hal_health_storage_server gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 11
+  allow hal_health_storage_server { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 11
+
+#line 1 "system/sepolicy/public/hal_identity.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_identity_client hal_identity_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_identity_server hal_identity_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_identity_client hal_identity_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_identity_client hal_identity_service:service_manager find;
+#line 4
+  
+#line 4
+  allow hal_identity_server hal_identity_service:service_manager { add find };
+#line 4
+  neverallow { domain -hal_identity_server } hal_identity_service:service_manager add;
+#line 4
+
+#line 4
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 4
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 4
+  
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_identity_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_identity_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_identity_server servicemanager:fd use;
+#line 6
+
+#line 1 "system/sepolicy/public/hal_input_classifier.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_input_classifier_client hal_input_classifier_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_input_classifier_server hal_input_classifier_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_input_classifier_client hal_input_classifier_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_input_classifier_client hal_input_classifier_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_input_classifier_server hal_input_classifier_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_input_classifier_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_input_classifier_server } hal_input_classifier_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+#line 1 "system/sepolicy/public/hal_input_processor.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_input_processor_client hal_input_processor_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_input_processor_server hal_input_processor_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_input_processor_client hal_input_processor_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_input_processor_server servicemanager:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow servicemanager hal_input_processor_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_input_processor_server servicemanager:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_input_processor_client hal_input_processor_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_input_processor_server hal_input_processor_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_input_processor_server } hal_input_processor_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+# Allow dumping of the HAL
+allow hal_input_processor_server dumpstate:fifo_file write;
+#line 1 "system/sepolicy/public/hal_ir.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_ir_client hal_ir_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_ir_server hal_ir_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_ir_client hal_ir_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_ir_server hal_ir_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_ir_client hal_ir_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_ir_server hal_ir_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_ir_client hal_ir_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_ir_server hal_ir_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_ir_server } hal_ir_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_ir_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_ir_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_ir_server servicemanager:fd use;
+#line 6
+
+
+
+#line 8
+  allow hal_ir_client hal_ir_hwservice:hwservice_manager find;
+#line 8
+  
+#line 8
+  allow hal_ir_server hal_ir_hwservice:hwservice_manager { add find };
+#line 8
+  allow hal_ir_server hidl_base_hwservice:hwservice_manager add;
+#line 8
+  neverallow { domain -hal_ir_server } hal_ir_hwservice:hwservice_manager add;
+#line 8
+
+#line 8
+
+#line 8
+  
+#line 8
+
+#line 1 "system/sepolicy/public/hal_ivn.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_ivn_client hal_ivn_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_ivn_server hal_ivn_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_ivn_client hal_ivn_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_ivn_client hal_ivn_service:service_manager find;
+#line 4
+  
+#line 4
+  allow hal_ivn_server hal_ivn_service:service_manager { add find };
+#line 4
+  neverallow { domain -hal_ivn_server } hal_ivn_service:service_manager add;
+#line 4
+
+#line 4
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 4
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 4
+  
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 1 "system/sepolicy/public/hal_keymaster.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_keymaster_client hal_keymaster_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_keymaster_server hal_keymaster_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_keymaster_client hal_keymaster_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_keymaster_client hal_keymaster_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_keymaster_server hal_keymaster_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_keymaster_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_keymaster_server } hal_keymaster_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+allow hal_keymaster tee_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_keymaster ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/hal_keymint.te"
+
+#line 1
+# Call the server domain and optionally transfer references to it.
+#line 1
+allow hal_keymint_client hal_keymint_server:binder { call transfer };
+#line 1
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1
+allow hal_keymint_server hal_keymint_client:binder transfer;
+#line 1
+# Receive and use open files from the server.
+#line 1
+allow hal_keymint_client hal_keymint_server:fd use;
+#line 1
+
+
+
+#line 3
+  allow hal_keymint_client hal_keymint_service:service_manager find;
+#line 3
+  
+#line 3
+  allow hal_keymint_server hal_keymint_service:service_manager { add find };
+#line 3
+  neverallow { domain -hal_keymint_server } hal_keymint_service:service_manager add;
+#line 3
+
+#line 3
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 3
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 3
+  
+#line 3
+
+#line 3
+
+#line 3
+  
+#line 3
+
+
+#line 4
+  allow hal_keymint_client hal_remotelyprovisionedcomponent_service:service_manager find;
+#line 4
+  
+#line 4
+  allow hal_keymint_server hal_remotelyprovisionedcomponent_service:service_manager { add find };
+#line 4
+  neverallow { domain -hal_keymint_server } hal_remotelyprovisionedcomponent_service:service_manager add;
+#line 4
+
+#line 4
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 4
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 4
+  
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+# Call the server domain and optionally transfer references to it.
+#line 5
+allow hal_keymint_server servicemanager:binder { call transfer };
+#line 5
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 5
+allow servicemanager hal_keymint_server:binder transfer;
+#line 5
+# Receive and use open files from the server.
+#line 5
+allow hal_keymint_server servicemanager:fd use;
+#line 5
+
+
+allow hal_keymint_server tee_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_keymint_server ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/hal_light.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_light_client hal_light_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_light_server hal_light_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_light_client hal_light_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_light_server hal_light_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_light_client hal_light_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_light_server hal_light_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_light_client hal_light_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_light_server hal_light_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_light_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_light_server } hal_light_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_light_client hal_light_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_light_server hal_light_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_light_server } hal_light_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_light_server servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_light_server:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_light_server servicemanager:fd use;
+#line 8
+
+
+#line 9
+# Call the servicemanager and transfer references to it.
+#line 9
+allow hal_light_client servicemanager:binder { call transfer };
+#line 9
+# Allow servicemanager to send out callbacks
+#line 9
+allow servicemanager hal_light_client:binder { call transfer };
+#line 9
+# servicemanager performs getpidcon on clients.
+#line 9
+allow servicemanager hal_light_client:dir search;
+#line 9
+allow servicemanager hal_light_client:file { read open };
+#line 9
+allow servicemanager hal_light_client:process getattr;
+#line 9
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 9
+# all domains in domain.te.
+#line 9
+
+
+allow hal_light_server dumpstate:fifo_file write;
+
+allow hal_light sysfs_leds:lnk_file read;
+allow hal_light sysfs_leds:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_light sysfs_leds:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1 "system/sepolicy/public/hal_lowpan.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_lowpan_client hal_lowpan_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_lowpan_server hal_lowpan_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_lowpan_client hal_lowpan_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_lowpan_server hal_lowpan_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_lowpan_client hal_lowpan_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_lowpan_server hal_lowpan_client:fd use;
+#line 3
+
+
+
+# Allow hal_lowpan_client to be able to find the hal_lowpan_server
+
+#line 7
+  allow hal_lowpan_client hal_lowpan_hwservice:hwservice_manager find;
+#line 7
+  
+#line 7
+  allow hal_lowpan_server hal_lowpan_hwservice:hwservice_manager { add find };
+#line 7
+  allow hal_lowpan_server hidl_base_hwservice:hwservice_manager add;
+#line 7
+  neverallow { domain -hal_lowpan_server } hal_lowpan_hwservice:hwservice_manager add;
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+
+# hal_lowpan domain can write/read to/from lowpan_prop
+
+#line 10
+
+#line 10
+allow hal_lowpan_server property_socket:sock_file write;
+#line 10
+allow hal_lowpan_server init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow hal_lowpan_server lowpan_prop:property_service set;
+#line 10
+
+#line 10
+allow hal_lowpan_server lowpan_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+# Allow hal_lowpan_server to open lowpan_devices
+allow hal_lowpan_server lowpan_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+###
+### neverallow rules
+###
+
+# Only LoWPAN HAL may directly access LoWPAN hardware
+neverallow { domain -hal_lowpan_server -init -ueventd } lowpan_device:chr_file ~getattr;
+#line 1 "system/sepolicy/public/hal_macsec.te"
+# Binder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_macsec_client hal_macsec_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_macsec_server hal_macsec_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_macsec_client hal_macsec_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_macsec_server hal_macsec_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_macsec_client hal_macsec_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_macsec_server hal_macsec_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_macsec_client hal_macsec_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_macsec_server hal_macsec_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_macsec_server } hal_macsec_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow hal_macsec_server servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager hal_macsec_server:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager hal_macsec_server:dir search;
+#line 7
+allow servicemanager hal_macsec_server:file { read open };
+#line 7
+allow servicemanager hal_macsec_server:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+#line 1 "system/sepolicy/public/hal_memtrack.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_memtrack_client hal_memtrack_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_memtrack_server hal_memtrack_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_memtrack_client hal_memtrack_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_memtrack_client hal_memtrack_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_memtrack_server hal_memtrack_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_memtrack_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_memtrack_server } hal_memtrack_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+
+#line 6
+  allow hal_memtrack_client hal_memtrack_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_memtrack_server hal_memtrack_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_memtrack_server } hal_memtrack_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_memtrack_server servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_memtrack_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_memtrack_server servicemanager:fd use;
+#line 7
+
+#line 1 "system/sepolicy/public/hal_neuralnetworks.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_neuralnetworks_client hal_neuralnetworks_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_neuralnetworks_server hal_neuralnetworks_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_neuralnetworks_client hal_neuralnetworks_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_neuralnetworks_server hal_neuralnetworks_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_neuralnetworks_client hal_neuralnetworks_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_neuralnetworks_server hal_neuralnetworks_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_neuralnetworks_client hal_neuralnetworks_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_neuralnetworks_server hal_neuralnetworks_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_neuralnetworks_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_neuralnetworks_server } hal_neuralnetworks_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+allow hal_neuralnetworks hidl_memory_hwservice:hwservice_manager find;
+allow hal_neuralnetworks hal_allocator:fd use;
+allow hal_neuralnetworks hal_graphics_mapper_hwservice:hwservice_manager find;
+allow hal_neuralnetworks hal_graphics_allocator:fd use;
+allow hal_neuralnetworks gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_neuralnetworks gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow NN HAL service to use a client-provided fd residing in /data/data/.
+allow hal_neuralnetworks_server app_data_file:file { read write getattr map };
+allow hal_neuralnetworks_server privapp_data_file:file { read write getattr map };
+
+# Allow NN HAL service to use a client-provided fd residing in /data/local/tmp/.
+allow hal_neuralnetworks_server shell_data_file:file { read write getattr map };
+
+# Allow NN HAL service to read a client-provided ION memory fd.
+allow hal_neuralnetworks_server ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow NN HAL service to use a client-provided fd residing in /storage
+allow hal_neuralnetworks_server storage_file:file { getattr map read };
+
+# Allow NN HAL service to read a client-provided fd residing in /data/app/.
+allow hal_neuralnetworks_server apk_data_file:file { getattr map read };
+
+# Allow NN HAL client to check the ro.nnapi.extensions.deny_on_product
+# property to determine whether to deny NNAPI extensions use for apps
+# on product partition (apps in GSI are not allowed to use NNAPI extensions).
+
+#line 32
+allow hal_neuralnetworks_client nnapi_ext_deny_product_prop:file { getattr open read map };
+#line 32
+;
+
+# Allow NN HAL client to read device_config_nnapi_native_prop.
+
+#line 35
+allow hal_neuralnetworks_client device_config_nnapi_native_prop:file { getattr open read map };
+#line 35
+
+
+# This property is only expected to be found in /product/build.prop,
+# allow to be set only by init.
+neverallow { domain -init } nnapi_ext_deny_product_prop:property_service set;
+
+# Define sepolicy for NN AIDL HAL service
+
+#line 42
+  allow hal_neuralnetworks_client hal_neuralnetworks_service:service_manager find;
+#line 42
+  
+#line 42
+  allow hal_neuralnetworks_server hal_neuralnetworks_service:service_manager { add find };
+#line 42
+  neverallow { domain -hal_neuralnetworks_server } hal_neuralnetworks_service:service_manager add;
+#line 42
+
+#line 42
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 42
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 42
+  
+#line 42
+
+#line 42
+
+#line 42
+  
+#line 42
+
+
+#line 43
+# Call the server domain and optionally transfer references to it.
+#line 43
+allow hal_neuralnetworks_server servicemanager:binder { call transfer };
+#line 43
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 43
+allow servicemanager hal_neuralnetworks_server:binder transfer;
+#line 43
+# Receive and use open files from the server.
+#line 43
+allow hal_neuralnetworks_server servicemanager:fd use;
+#line 43
+
+
+
+#line 45
+# Call the servicemanager and transfer references to it.
+#line 45
+allow hal_neuralnetworks_server servicemanager:binder { call transfer };
+#line 45
+# Allow servicemanager to send out callbacks
+#line 45
+allow servicemanager hal_neuralnetworks_server:binder { call transfer };
+#line 45
+# servicemanager performs getpidcon on clients.
+#line 45
+allow servicemanager hal_neuralnetworks_server:dir search;
+#line 45
+allow servicemanager hal_neuralnetworks_server:file { read open };
+#line 45
+allow servicemanager hal_neuralnetworks_server:process getattr;
+#line 45
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 45
+# all domains in domain.te.
+#line 45
+
+
+allow hal_neuralnetworks_server dumpstate:fifo_file write;
+#line 1 "system/sepolicy/public/hal_neverallows.te"
+# only HALs responsible for network hardware should have privileged
+# network capabilities
+neverallow {
+  halserverdomain
+  -hal_bluetooth_server
+  -hal_can_controller_server
+  -hal_wifi_server
+  -hal_wifi_hostapd_server
+  -hal_wifi_supplicant_server
+  -hal_telephony_server
+  -hal_uwb_server
+  # TODO(b/196225233): Remove hal_uwb_vendor_server
+  -hal_uwb_vendor_server
+  -hal_nlinterceptor_server
+} self:{ capability cap_userns } { net_admin net_raw };
+
+# Unless a HAL's job is to communicate over the network, or control network
+# hardware, it should not be using network sockets.
+# NOTE: HALs for automotive devices have an exemption from this rule because in
+# a car it is common to have external modules and HALs need to communicate to
+# those modules using network.  Using this exemption for non-automotive builds
+# will result in CTS failure.
+neverallow {
+  halserverdomain
+  -hal_automotive_socket_exemption
+  -hal_can_controller_server
+  -hal_tetheroffload_server
+  -hal_wifi_server
+  -hal_wifi_hostapd_server
+  -hal_wifi_supplicant_server
+  -hal_telephony_server
+  -hal_uwb_server
+  # TODO(b/196225233): Remove hal_uwb_vendor_server
+  -hal_uwb_vendor_server
+  -hal_nlinterceptor_server
+  -hal_bluetooth_server
+} domain:{ udp_socket rawip_socket } *;
+
+neverallow {
+  halserverdomain
+  -hal_automotive_socket_exemption
+  -hal_can_controller_server
+  -hal_tetheroffload_server
+  -hal_wifi_server
+  -hal_wifi_hostapd_server
+  -hal_wifi_supplicant_server
+  -hal_telephony_server
+  -hal_nlinterceptor_server
+  -hal_bluetooth_server
+} {
+  domain
+  
+}:tcp_socket *;
+
+# The UWB HAL is not actually a networking HAL but may need to bring up and down
+# interfaces. Restrict it to only these networking operations.
+neverallow hal_uwb_vendor_server self:{ capability cap_userns } { net_raw };
+
+# Subset of socket_class_set likely to be usable for communication or accessible through net_admin.
+# udp_socket is required to use interface ioctls.
+neverallow hal_uwb_vendor_server domain:{ socket rawip_socket netlink_socket packet_socket key_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket qipcrtr_socket xdp_socket } *;
+
+###
+# HALs are defined as an attribute and so a given domain could hypothetically
+# have multiple HALs in it (or even all of them) with the subsequent policy of
+# the domain comprised of the union of all the HALs.
+#
+# This is a problem because
+# 1) Security sensitive components should only be accessed by specific HALs.
+# 2) hwbinder_call and the restrictions it provides cannot be reasoned about in
+#    the platform.
+# 3) The platform cannot reason about defense in depth if there are
+#    monolithic domains etc.
+#
+# As an example, hal_keymaster and hal_gatekeeper can access the TEE and while
+# its OK for them to share a process its not OK with them to share processes
+# with other hals.
+#
+# The following neverallow rules, in conjuntion with CTS tests, assert that
+# these security principles are adhered to.
+#
+# Do not allow a hal to exec another process without a domain transition.
+# TODO remove exemptions.
+neverallow {
+  halserverdomain
+  -hal_dumpstate_server
+  -hal_telephony_server
+} {
+  file_type
+  fs_type
+  # May invoke shell commands via /system/bin/sh
+  -shell_exec
+  -toolbox_exec
+}:file execute_no_trans;
+# Do not allow a process other than init to transition into a HAL domain.
+neverallow { domain -init } halserverdomain:process transition;
+# Only allow transitioning to a domain by running its executable. Do not
+# allow transitioning into a HAL domain by use of seclabel in an
+# init.*.rc script.
+neverallow * halserverdomain:process dyntransition;
+#line 1 "system/sepolicy/public/hal_nfc.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_nfc_client hal_nfc_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_nfc_server hal_nfc_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_nfc_client hal_nfc_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_nfc_server hal_nfc_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_nfc_client hal_nfc_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_nfc_server hal_nfc_client:fd use;
+#line 3
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow hal_nfc_server servicemanager:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow servicemanager hal_nfc_server:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow hal_nfc_server servicemanager:fd use;
+#line 4
+
+
+
+#line 6
+  allow hal_nfc_client hal_nfc_hwservice:hwservice_manager find;
+#line 6
+  
+#line 6
+  allow hal_nfc_server hal_nfc_hwservice:hwservice_manager { add find };
+#line 6
+  allow hal_nfc_server hidl_base_hwservice:hwservice_manager add;
+#line 6
+  neverallow { domain -hal_nfc_server } hal_nfc_hwservice:hwservice_manager add;
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+#line 7
+  allow hal_nfc_client hal_nfc_service:service_manager find;
+#line 7
+  
+#line 7
+  allow hal_nfc_server hal_nfc_service:service_manager { add find };
+#line 7
+  neverallow { domain -hal_nfc_server } hal_nfc_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+
+# Set NFC properties (used by bcm2079x HAL).
+
+#line 10
+
+#line 10
+allow hal_nfc property_socket:sock_file write;
+#line 10
+allow hal_nfc init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow hal_nfc nfc_prop:property_service set;
+#line 10
+
+#line 10
+allow hal_nfc nfc_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+# NFC device access.
+allow hal_nfc nfc_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/public/hal_nlinterceptor.te"
+
+#line 1
+# Call the server domain and optionally transfer references to it.
+#line 1
+allow hal_nlinterceptor_client hal_nlinterceptor_server:binder { call transfer };
+#line 1
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1
+allow hal_nlinterceptor_server hal_nlinterceptor_client:binder transfer;
+#line 1
+# Receive and use open files from the server.
+#line 1
+allow hal_nlinterceptor_client hal_nlinterceptor_server:fd use;
+#line 1
+
+
+
+#line 3
+  allow hal_nlinterceptor_client hal_nlinterceptor_service:service_manager find;
+#line 3
+  
+#line 3
+  allow hal_nlinterceptor_server hal_nlinterceptor_service:service_manager { add find };
+#line 3
+  neverallow { domain -hal_nlinterceptor_server } hal_nlinterceptor_service:service_manager add;
+#line 3
+
+#line 3
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 3
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 3
+  
+#line 3
+
+#line 3
+
+#line 3
+  
+#line 3
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow hal_nlinterceptor servicemanager:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow servicemanager hal_nlinterceptor:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow hal_nlinterceptor servicemanager:fd use;
+#line 4
+
+
+allow hal_nlinterceptor self:{ capability cap_userns } net_admin;
+allow hal_nlinterceptor self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_nlinterceptor self:netlink_route_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_readpriv nlmsg_write };
+#line 1 "system/sepolicy/public/hal_oemlock.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_oemlock_client hal_oemlock_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_oemlock_server hal_oemlock_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_oemlock_client hal_oemlock_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_oemlock_client hal_oemlock_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_oemlock_server hal_oemlock_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_oemlock_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_oemlock_server } hal_oemlock_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+  allow hal_oemlock_client hal_oemlock_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_oemlock_server hal_oemlock_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_oemlock_server } hal_oemlock_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_oemlock_server servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_oemlock_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_oemlock_server servicemanager:fd use;
+#line 7
+
+#line 1 "system/sepolicy/public/hal_omx.te"
+# applies all permissions to hal_omx NOT hal_omx_server
+# since OMX must always be in its own process.
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow hal_omx_server binderservicedomain:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow binderservicedomain hal_omx_server:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow hal_omx_server binderservicedomain:fd use;
+#line 4
+
+
+#line 5
+# Call the server domain and optionally transfer references to it.
+#line 5
+allow hal_omx_server { appdomain -isolated_app }:binder { call transfer };
+#line 5
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 5
+allow { appdomain -isolated_app } hal_omx_server:binder transfer;
+#line 5
+# Receive and use open files from the server.
+#line 5
+allow hal_omx_server { appdomain -isolated_app }:fd use;
+#line 5
+
+
+# Allow hal_omx_server access to composer sync fences
+allow hal_omx_server hal_graphics_composer:fd use;
+
+allow hal_omx_server ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_omx_server hal_camera:fd use;
+
+
+#line 13
+
+#line 13
+allow hal_omx_server anr_data_file:file append;
+#line 13
+allow hal_omx_server dumpstate:fd use;
+#line 13
+allow hal_omx_server incidentd:fd use;
+#line 13
+# TODO: Figure out why write is needed.
+#line 13
+allow hal_omx_server dumpstate:fifo_file { append write };
+#line 13
+allow hal_omx_server incidentd:fifo_file { append write };
+#line 13
+allow hal_omx_server system_server:fifo_file { append write };
+#line 13
+allow hal_omx_server tombstoned:unix_stream_socket connectto;
+#line 13
+allow hal_omx_server tombstoned:fd use;
+#line 13
+allow hal_omx_server tombstoned_crash_socket:sock_file write;
+#line 13
+allow hal_omx_server tombstone_data_file:file append;
+#line 13
+
+
+# Recieve gralloc buffer FDs from bufferhubd. Note that hal_omx_server never
+# directly connects to bufferhubd via PDX. Instead, a VR app acts as a bridge
+# between those two: it talks to hal_omx_server via Binder and talks to bufferhubd
+# via PDX. Thus, there is no need to use pdx_client macro.
+allow hal_omx_server bufferhubd:fd use;
+
+
+#line 21
+  allow hal_omx_client hal_omx_hwservice:hwservice_manager find;
+#line 21
+  
+#line 21
+  allow hal_omx_server hal_omx_hwservice:hwservice_manager { add find };
+#line 21
+  allow hal_omx_server hidl_base_hwservice:hwservice_manager add;
+#line 21
+  neverallow { domain -hal_omx_server } hal_omx_hwservice:hwservice_manager add;
+#line 21
+
+#line 21
+
+#line 21
+  
+#line 21
+
+
+allow hal_omx_client hidl_token_hwservice:hwservice_manager find;
+
+
+#line 25
+allow hal_omx_client media_variant_prop:file { getattr open read map };
+#line 25
+
+
+#line 26
+allow hal_omx_server media_variant_prop:file { getattr open read map };
+#line 26
+
+
+
+#line 28
+# Call the server domain and optionally transfer references to it.
+#line 28
+allow hal_omx_client hal_omx_server:binder { call transfer };
+#line 28
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 28
+allow hal_omx_server hal_omx_client:binder transfer;
+#line 28
+# Receive and use open files from the server.
+#line 28
+allow hal_omx_client hal_omx_server:fd use;
+#line 28
+
+
+#line 29
+# Call the server domain and optionally transfer references to it.
+#line 29
+allow hal_omx_server hal_omx_client:binder { call transfer };
+#line 29
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 29
+allow hal_omx_client hal_omx_server:binder transfer;
+#line 29
+# Receive and use open files from the server.
+#line 29
+allow hal_omx_server hal_omx_client:fd use;
+#line 29
+
+
+###
+### neverallow rules
+###
+
+# hal_omx_server should never execute any executable without a
+# domain transition
+neverallow hal_omx_server { file_type fs_type }:file execute_no_trans;
+
+# The goal of the mediaserver split is to place media processing code into
+# restrictive sandboxes with limited responsibilities and thus limited
+# permissions. Example: Audioserver is only responsible for controlling audio
+# hardware and processing audio content. Cameraserver does the same for camera
+# hardware/content. Etc.
+#
+# Media processing code is inherently risky and thus should have limited
+# permissions and be isolated from the rest of the system and network.
+# Lengthier explanation here:
+# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
+neverallow hal_omx_server domain:{ udp_socket rawip_socket } *;
+neverallow hal_omx_server { domain  }:tcp_socket *;
+#line 1 "system/sepolicy/public/hal_power.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_power_client hal_power_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_power_server hal_power_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_power_client hal_power_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_power_server hal_power_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_power_client hal_power_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_power_server hal_power_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_power_client hal_power_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_power_server hal_power_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_power_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_power_server } hal_power_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_power_client hal_power_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_power_server hal_power_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_power_server } hal_power_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_power_server servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_power_server:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_power_server servicemanager:fd use;
+#line 8
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow hal_power_client servicemanager:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow servicemanager hal_power_client:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow hal_power_client servicemanager:fd use;
+#line 9
+
+#line 1 "system/sepolicy/public/hal_power_stats.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_power_stats_client hal_power_stats_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_power_stats_server hal_power_stats_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_power_stats_client hal_power_stats_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_power_stats_server hal_power_stats_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_power_stats_client hal_power_stats_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_power_stats_server hal_power_stats_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_power_stats_client hal_power_stats_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_power_stats_server hal_power_stats_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_power_stats_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_power_stats_server } hal_power_stats_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_power_stats_client hal_power_stats_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_power_stats_server hal_power_stats_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_power_stats_server } hal_power_stats_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_power_stats_server servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_power_stats_server:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_power_stats_server servicemanager:fd use;
+#line 8
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow hal_power_stats_client servicemanager:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow servicemanager hal_power_stats_client:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow hal_power_stats_client servicemanager:fd use;
+#line 9
+
+#line 1 "system/sepolicy/public/hal_rebootescrow.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_rebootescrow_client hal_rebootescrow_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_rebootescrow_server hal_rebootescrow_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_rebootescrow_client hal_rebootescrow_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_rebootescrow_client hal_rebootescrow_service:service_manager find;
+#line 4
+  
+#line 4
+  allow hal_rebootescrow_server hal_rebootescrow_service:service_manager { add find };
+#line 4
+  neverallow { domain -hal_rebootescrow_server } hal_rebootescrow_service:service_manager add;
+#line 4
+
+#line 4
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 4
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 4
+  
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow hal_rebootescrow_server servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager hal_rebootescrow_server:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager hal_rebootescrow_server:dir search;
+#line 6
+allow servicemanager hal_rebootescrow_server:file { read open };
+#line 6
+allow servicemanager hal_rebootescrow_server:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+#line 1 "system/sepolicy/public/hal_remoteaccess.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_remoteaccess_client hal_remoteaccess_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_remoteaccess_server hal_remoteaccess_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_remoteaccess_client hal_remoteaccess_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_remoteaccess_server hal_remoteaccess_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_remoteaccess_client hal_remoteaccess_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_remoteaccess_server hal_remoteaccess_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_remoteaccess_client hal_remoteaccess_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_remoteaccess_server hal_remoteaccess_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_remoteaccess_server } hal_remoteaccess_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 1 "system/sepolicy/public/hal_remotelyprovisionedcomponent_avf.te"
+# allow binder connection from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_remotelyprovisionedcomponent_avf_client hal_remotelyprovisionedcomponent_avf_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_remotelyprovisionedcomponent_avf_server hal_remotelyprovisionedcomponent_avf_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_remotelyprovisionedcomponent_avf_client hal_remotelyprovisionedcomponent_avf_server:fd use;
+#line 2
+
+
+# allow client to find the service, allow server to register the service
+
+#line 5
+  allow hal_remotelyprovisionedcomponent_avf_client hal_remotelyprovisionedcomponent_avf_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_remotelyprovisionedcomponent_avf_server hal_remotelyprovisionedcomponent_avf_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_remotelyprovisionedcomponent_avf_server } hal_remotelyprovisionedcomponent_avf_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+# allow binder communication from server to service_manager
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_remotelyprovisionedcomponent_avf_server servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_remotelyprovisionedcomponent_avf_server:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_remotelyprovisionedcomponent_avf_server:dir search;
+#line 8
+allow servicemanager hal_remotelyprovisionedcomponent_avf_server:file { read open };
+#line 8
+allow servicemanager hal_remotelyprovisionedcomponent_avf_server:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+#line 1 "system/sepolicy/public/hal_secretkeeper.te"
+# Domains for the Secretkeeper HAL, which provides secure (tamper evident, rollback protected)
+# storage of secrets guarded by DICE policies.
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_secretkeeper_client hal_secretkeeper_server:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_secretkeeper_server hal_secretkeeper_client:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_secretkeeper_client hal_secretkeeper_server:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_secretkeeper_client hal_secretkeeper_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_secretkeeper_server hal_secretkeeper_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_secretkeeper_server } hal_secretkeeper_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow hal_secretkeeper_server servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager hal_secretkeeper_server:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager hal_secretkeeper_server:dir search;
+#line 7
+allow servicemanager hal_secretkeeper_server:file { read open };
+#line 7
+allow servicemanager hal_secretkeeper_server:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_secretkeeper_client servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_secretkeeper_client:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_secretkeeper_client:dir search;
+#line 8
+allow servicemanager hal_secretkeeper_client:file { read open };
+#line 8
+allow servicemanager hal_secretkeeper_client:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+# The Secretkeeper HAL service needs to communicate with a trusted application running
+# in the TEE, which is represented by the tee_device permission.
+allow hal_secretkeeper_server tee_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/public/hal_secure_element.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_secure_element_client hal_secure_element_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_secure_element_server hal_secure_element_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_secure_element_client hal_secure_element_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_secure_element_server hal_secure_element_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_secure_element_client hal_secure_element_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_secure_element_server hal_secure_element_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_secure_element_client hal_secure_element_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_secure_element_server hal_secure_element_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_secure_element_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_secure_element_server } hal_secure_element_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_secure_element_client hal_secure_element_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_secure_element_server hal_secure_element_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_secure_element_server } hal_secure_element_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_secure_element_server servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_secure_element_server:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_secure_element_server:dir search;
+#line 8
+allow servicemanager hal_secure_element_server:file { read open };
+#line 8
+allow servicemanager hal_secure_element_server:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+allow hal_secure_element_client hal_secure_element_service:service_manager find;
+#line 1 "system/sepolicy/public/hal_sensors.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_sensors_client hal_sensors_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_sensors_server hal_sensors_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_sensors_client hal_sensors_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_sensors_client hal_sensors_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_sensors_server hal_sensors_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_sensors_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_sensors_server } hal_sensors_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+# Allow sensor hals to access ashmem memory allocated by apps
+allow hal_sensors { appdomain -isolated_app }:fd use;
+
+# Allow sensor hals to access ashmem memory allocated by android.hidl.allocator
+# fd is passed in from framework sensorservice HAL.
+allow hal_sensors hal_allocator:fd use;
+
+# allow to run with real-time scheduling policy
+allow hal_sensors self:{ capability cap_userns } sys_nice;
+
+
+#line 16
+  allow hal_sensors_server hal_sensors_service:service_manager { add find };
+#line 16
+  neverallow { domain -hal_sensors_server } hal_sensors_service:service_manager add;
+#line 16
+
+#line 16
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 16
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 16
+  
+#line 16
+
+
+#line 17
+# Call the server domain and optionally transfer references to it.
+#line 17
+allow hal_sensors_server servicemanager:binder { call transfer };
+#line 17
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 17
+allow servicemanager hal_sensors_server:binder transfer;
+#line 17
+# Receive and use open files from the server.
+#line 17
+allow hal_sensors_server servicemanager:fd use;
+#line 17
+
+
+allow hal_sensors_client hal_sensors_service:service_manager find;
+#line 1 "system/sepolicy/public/hal_telephony.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_telephony_client hal_telephony_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_telephony_server hal_telephony_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_telephony_client hal_telephony_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_telephony_server hal_telephony_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_telephony_client hal_telephony_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_telephony_server hal_telephony_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_telephony_client hal_telephony_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_telephony_server hal_telephony_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_telephony_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_telephony_server } hal_telephony_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_telephony_client hal_radio_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_telephony_server hal_radio_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_telephony_server } hal_radio_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+allowxperm hal_telephony_server self:udp_socket ioctl 
+#line 8
+{
+#line 8
+# qualcomm rmnet ioctls
+#line 8
+0x00006900 0x00006902
+#line 8
+# socket ioctls
+#line 8
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 8
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 8
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 8
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 8
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 8
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 8
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 8
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 8
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 8
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 8
+# device and protocol specific ioctls
+#line 8
+0x000089f0-0x000089ff
+#line 8
+0x000089e0-0x000089ef
+#line 8
+# Wireless extension ioctls
+#line 8
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 8
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 8
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 8
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 8
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 8
+0x00008b34 0x00008b35 0x00008b36
+#line 8
+# Dev private ioctl i.e. hardware specific ioctls
+#line 8
+0x00008be0-0x00008bff
+#line 8
+};
+
+allow hal_telephony_server self:netlink_route_socket nlmsg_write;
+allow hal_telephony_server self:{ capability cap_userns } { setpcap setgid setuid net_admin net_raw };
+allow hal_telephony_server cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow hal_telephony_server cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+allow hal_telephony_server cgroup_v2:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow hal_telephony_server cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+allow hal_telephony_server radio_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_telephony_server radio_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+allow hal_telephony_server efs_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow hal_telephony_server efs_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow hal_telephony_server vendor_shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow hal_telephony_server bluetooth_efs_file:file { getattr open read ioctl lock map watch watch_reads };
+allow hal_telephony_server bluetooth_efs_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# property service
+
+#line 25
+allow hal_telephony_server telephony_config_prop:file { getattr open read map };
+#line 25
+
+
+#line 26
+
+#line 26
+allow hal_telephony_server property_socket:sock_file write;
+#line 26
+allow hal_telephony_server init:unix_stream_socket connectto;
+#line 26
+
+#line 26
+allow hal_telephony_server radio_control_prop:property_service set;
+#line 26
+
+#line 26
+allow hal_telephony_server radio_control_prop:file { getattr open read map };
+#line 26
+
+#line 26
+
+
+#line 27
+
+#line 27
+allow hal_telephony_server property_socket:sock_file write;
+#line 27
+allow hal_telephony_server init:unix_stream_socket connectto;
+#line 27
+
+#line 27
+allow hal_telephony_server radio_prop:property_service set;
+#line 27
+
+#line 27
+allow hal_telephony_server radio_prop:file { getattr open read map };
+#line 27
+
+#line 27
+
+
+#line 28
+
+#line 28
+allow hal_telephony_server property_socket:sock_file write;
+#line 28
+allow hal_telephony_server init:unix_stream_socket connectto;
+#line 28
+
+#line 28
+allow hal_telephony_server telephony_status_prop:property_service set;
+#line 28
+
+#line 28
+allow hal_telephony_server telephony_status_prop:file { getattr open read map };
+#line 28
+
+#line 28
+
+
+allow hal_telephony_server tty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow hal_telephony_server to create and use netlink sockets.
+allow hal_telephony_server self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_telephony_server self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_telephony_server self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Access to wake locks
+
+#line 38
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 38
+# deprecated.
+#line 38
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 38
+allow hal_telephony_server sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 38
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 38
+allow hal_telephony_server self:{ capability2 cap2_userns } block_suspend;
+#line 38
+# system_suspend permissions
+#line 38
+
+#line 38
+# Call the server domain and optionally transfer references to it.
+#line 38
+allow hal_telephony_server system_suspend_server:binder { call transfer };
+#line 38
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 38
+allow system_suspend_server hal_telephony_server:binder transfer;
+#line 38
+# Receive and use open files from the server.
+#line 38
+allow hal_telephony_server system_suspend_server:fd use;
+#line 38
+
+#line 38
+allow hal_telephony_server system_suspend_hwservice:hwservice_manager find;
+#line 38
+# halclientdomain permissions
+#line 38
+
+#line 38
+# Call the hwservicemanager and transfer references to it.
+#line 38
+allow hal_telephony_server hwservicemanager:binder { call transfer };
+#line 38
+# Allow hwservicemanager to send out callbacks
+#line 38
+allow hwservicemanager hal_telephony_server:binder { call transfer };
+#line 38
+# hwservicemanager performs getpidcon on clients.
+#line 38
+allow hwservicemanager hal_telephony_server:dir search;
+#line 38
+allow hwservicemanager hal_telephony_server:file { read open map };
+#line 38
+allow hwservicemanager hal_telephony_server:process getattr;
+#line 38
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 38
+# all domains in domain.te.
+#line 38
+
+#line 38
+
+#line 38
+allow hal_telephony_server hwservicemanager_prop:file { getattr open read map };
+#line 38
+
+#line 38
+allow hal_telephony_server hidl_manager_hwservice:hwservice_manager find;
+#line 38
+# AIDL suspend hal permissions
+#line 38
+allow hal_telephony_server hal_system_suspend_service:service_manager find;
+#line 38
+
+#line 38
+# Call the servicemanager and transfer references to it.
+#line 38
+allow hal_telephony_server servicemanager:binder { call transfer };
+#line 38
+# Allow servicemanager to send out callbacks
+#line 38
+allow servicemanager hal_telephony_server:binder { call transfer };
+#line 38
+# servicemanager performs getpidcon on clients.
+#line 38
+allow servicemanager hal_telephony_server:dir search;
+#line 38
+allow servicemanager hal_telephony_server:file { read open };
+#line 38
+allow servicemanager hal_telephony_server:process getattr;
+#line 38
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 38
+# all domains in domain.te.
+#line 38
+
+#line 38
+
+
+
+#line 40
+allow hal_telephony_server proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 40
+allow hal_telephony_server proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 40
+
+
+#line 41
+allow hal_telephony_server sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 41
+allow hal_telephony_server sysfs_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 41
+
+
+# granting the ioctl permission for hal_telephony_server should be device specific
+allow hal_telephony_server self:socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Allow AIDL HAL shim to call HIDL HAL implementation
+
+#line 47
+# Call the server domain and optionally transfer references to it.
+#line 47
+allow hal_telephony_server hal_telephony_server:binder { call transfer };
+#line 47
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 47
+allow hal_telephony_server hal_telephony_server:binder transfer;
+#line 47
+# Receive and use open files from the server.
+#line 47
+allow hal_telephony_server hal_telephony_server:fd use;
+#line 47
+
+#line 1 "system/sepolicy/public/hal_tetheroffload.te"
+## HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_tetheroffload_client hal_tetheroffload_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_tetheroffload_server hal_tetheroffload_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_tetheroffload_client hal_tetheroffload_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_tetheroffload_server hal_tetheroffload_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_tetheroffload_client hal_tetheroffload_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_tetheroffload_server hal_tetheroffload_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_tetheroffload_client hal_tetheroffload_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_tetheroffload_server hal_tetheroffload_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_tetheroffload_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_tetheroffload_server } hal_tetheroffload_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_tetheroffload_client hal_tetheroffload_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_tetheroffload_server hal_tetheroffload_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_tetheroffload_server } hal_tetheroffload_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_tetheroffload_server servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_tetheroffload_server:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_tetheroffload_server:dir search;
+#line 8
+allow servicemanager hal_tetheroffload_server:file { read open };
+#line 8
+allow servicemanager hal_tetheroffload_server:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+# allow the client to pass the server already open netlink sockets
+allow hal_tetheroffload_server hal_tetheroffload_client:netlink_netfilter_socket { getattr read setopt write };
+#line 1 "system/sepolicy/public/hal_thermal.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_thermal_client hal_thermal_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_thermal_server hal_thermal_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_thermal_client hal_thermal_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_thermal_server hal_thermal_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_thermal_client hal_thermal_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_thermal_server hal_thermal_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_thermal_client hal_thermal_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_thermal_server hal_thermal_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_thermal_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_thermal_server } hal_thermal_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_thermal_client hal_thermal_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_thermal_server hal_thermal_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_thermal_server } hal_thermal_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+  allow hal_thermal_server hal_thermal_service:service_manager { add find };
+#line 8
+  neverallow { domain -hal_thermal_server } hal_thermal_service:service_manager add;
+#line 8
+
+#line 8
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 8
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 8
+  
+#line 8
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow hal_thermal_server servicemanager:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow servicemanager hal_thermal_server:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow hal_thermal_server servicemanager:fd use;
+#line 9
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow hal_thermal_client servicemanager:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow servicemanager hal_thermal_client:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow hal_thermal_client servicemanager:fd use;
+#line 10
+
+#line 1 "system/sepolicy/public/hal_threadnetwork.te"
+
+#line 1
+# Call the server domain and optionally transfer references to it.
+#line 1
+allow hal_threadnetwork_client hal_threadnetwork_server:binder { call transfer };
+#line 1
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1
+allow hal_threadnetwork_server hal_threadnetwork_client:binder transfer;
+#line 1
+# Receive and use open files from the server.
+#line 1
+allow hal_threadnetwork_client hal_threadnetwork_server:fd use;
+#line 1
+
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_threadnetwork_server hal_threadnetwork_client:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_threadnetwork_client hal_threadnetwork_server:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_threadnetwork_server hal_threadnetwork_client:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_threadnetwork_client hal_threadnetwork_service:service_manager find;
+#line 4
+  
+#line 4
+  allow hal_threadnetwork_server hal_threadnetwork_service:service_manager { add find };
+#line 4
+  neverallow { domain -hal_threadnetwork_server } hal_threadnetwork_service:service_manager add;
+#line 4
+
+#line 4
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 4
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 4
+  
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_threadnetwork_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_threadnetwork_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_threadnetwork_server servicemanager:fd use;
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_threadnetwork_client servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_threadnetwork_client:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_threadnetwork_client servicemanager:fd use;
+#line 7
+
+#line 1 "system/sepolicy/public/hal_tv_cec.te"
+# HwBinder IPC from clients into server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_tv_cec_client hal_tv_cec_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_tv_cec_server hal_tv_cec_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_tv_cec_client hal_tv_cec_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_tv_cec_server hal_tv_cec_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_tv_cec_client hal_tv_cec_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_tv_cec_server hal_tv_cec_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_tv_cec_client hal_tv_cec_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_tv_cec_server hal_tv_cec_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_tv_cec_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_tv_cec_server } hal_tv_cec_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+#line 1 "system/sepolicy/public/hal_tv_hdmi_cec.te"
+# Binder IPC from clients into server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_client:fd use;
+#line 3
+
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow hal_tv_hdmi_cec_client servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager hal_tv_hdmi_cec_client:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager hal_tv_hdmi_cec_client:dir search;
+#line 4
+allow servicemanager hal_tv_hdmi_cec_client:file { read open };
+#line 4
+allow servicemanager hal_tv_hdmi_cec_client:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow hal_tv_hdmi_cec_server servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager hal_tv_hdmi_cec_server:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager hal_tv_hdmi_cec_server:dir search;
+#line 5
+allow servicemanager hal_tv_hdmi_cec_server:file { read open };
+#line 5
+allow servicemanager hal_tv_hdmi_cec_server:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+
+#line 7
+  allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_service:service_manager find;
+#line 7
+  
+#line 7
+  allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_service:service_manager { add find };
+#line 7
+  neverallow { domain -hal_tv_hdmi_cec_server } hal_tv_hdmi_cec_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+#line 1 "system/sepolicy/public/hal_tv_hdmi_connection.te"
+# Binder IPC from clients into server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_client:fd use;
+#line 3
+
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow hal_tv_hdmi_connection_client servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager hal_tv_hdmi_connection_client:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager hal_tv_hdmi_connection_client:dir search;
+#line 4
+allow servicemanager hal_tv_hdmi_connection_client:file { read open };
+#line 4
+allow servicemanager hal_tv_hdmi_connection_client:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow hal_tv_hdmi_connection_server servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager hal_tv_hdmi_connection_server:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager hal_tv_hdmi_connection_server:dir search;
+#line 5
+allow servicemanager hal_tv_hdmi_connection_server:file { read open };
+#line 5
+allow servicemanager hal_tv_hdmi_connection_server:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+
+#line 7
+  allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_service:service_manager find;
+#line 7
+  
+#line 7
+  allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_service:service_manager { add find };
+#line 7
+  neverallow { domain -hal_tv_hdmi_connection_server } hal_tv_hdmi_connection_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+#line 1 "system/sepolicy/public/hal_tv_hdmi_earc.te"
+# Binder IPC from clients into server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_client:fd use;
+#line 3
+
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow hal_tv_hdmi_earc_client servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager hal_tv_hdmi_earc_client:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager hal_tv_hdmi_earc_client:dir search;
+#line 4
+allow servicemanager hal_tv_hdmi_earc_client:file { read open };
+#line 4
+allow servicemanager hal_tv_hdmi_earc_client:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow hal_tv_hdmi_earc_server servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager hal_tv_hdmi_earc_server:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager hal_tv_hdmi_earc_server:dir search;
+#line 5
+allow servicemanager hal_tv_hdmi_earc_server:file { read open };
+#line 5
+allow servicemanager hal_tv_hdmi_earc_server:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+
+#line 7
+  allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_service:service_manager find;
+#line 7
+  
+#line 7
+  allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_service:service_manager { add find };
+#line 7
+  neverallow { domain -hal_tv_hdmi_earc_server } hal_tv_hdmi_earc_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+#line 1 "system/sepolicy/public/hal_tv_input.te"
+# HwBinder IPC from clients into server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_tv_input_client hal_tv_input_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_tv_input_server hal_tv_input_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_tv_input_client hal_tv_input_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_tv_input_server hal_tv_input_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_tv_input_client hal_tv_input_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_tv_input_server hal_tv_input_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_tv_input_client hal_tv_input_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_tv_input_server hal_tv_input_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_tv_input_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_tv_input_server } hal_tv_input_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_tv_input_client hal_tv_input_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_tv_input_server hal_tv_input_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_tv_input_server } hal_tv_input_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_tv_input_server servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_tv_input_server:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_tv_input_server servicemanager:fd use;
+#line 8
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow hal_tv_input_client servicemanager:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow servicemanager hal_tv_input_client:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow hal_tv_input_client servicemanager:fd use;
+#line 9
+
+#line 1 "system/sepolicy/public/hal_tv_tuner.te"
+
+#line 1
+# Call the server domain and optionally transfer references to it.
+#line 1
+allow hal_tv_tuner_client hal_tv_tuner_server:binder { call transfer };
+#line 1
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1
+allow hal_tv_tuner_server hal_tv_tuner_client:binder transfer;
+#line 1
+# Receive and use open files from the server.
+#line 1
+allow hal_tv_tuner_client hal_tv_tuner_server:fd use;
+#line 1
+
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_tv_tuner_server hal_tv_tuner_client:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_tv_tuner_client hal_tv_tuner_server:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_tv_tuner_server hal_tv_tuner_client:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_tv_tuner_client hal_tv_tuner_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_tv_tuner_server hal_tv_tuner_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_tv_tuner_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_tv_tuner_server } hal_tv_tuner_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+  allow hal_tv_tuner_client hal_tv_tuner_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_tv_tuner_server hal_tv_tuner_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_tv_tuner_server } hal_tv_tuner_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_tv_tuner_server servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_tv_tuner_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_tv_tuner_server servicemanager:fd use;
+#line 7
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_tv_tuner_client servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_tv_tuner_client:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_tv_tuner_client servicemanager:fd use;
+#line 8
+
+#line 1 "system/sepolicy/public/hal_usb.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_usb_client hal_usb_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_usb_server hal_usb_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_usb_client hal_usb_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_usb_server hal_usb_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_usb_client hal_usb_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_usb_server hal_usb_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_usb_client hal_usb_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_usb_server hal_usb_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_usb_server } hal_usb_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_usb_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_usb_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_usb_server servicemanager:fd use;
+#line 6
+
+
+
+#line 8
+  allow hal_usb_client hal_usb_hwservice:hwservice_manager find;
+#line 8
+  
+#line 8
+  allow hal_usb_server hal_usb_hwservice:hwservice_manager { add find };
+#line 8
+  allow hal_usb_server hidl_base_hwservice:hwservice_manager add;
+#line 8
+  neverallow { domain -hal_usb_server } hal_usb_hwservice:hwservice_manager add;
+#line 8
+
+#line 8
+
+#line 8
+  
+#line 8
+
+
+allow hal_usb self:netlink_kobject_uevent_socket create;
+allow hal_usb self:netlink_kobject_uevent_socket setopt;
+allow hal_usb self:netlink_kobject_uevent_socket getopt;
+allow hal_usb self:netlink_kobject_uevent_socket bind;
+allow hal_usb self:netlink_kobject_uevent_socket read;
+allow hal_usb sysfs:dir open;
+allow hal_usb sysfs:dir read;
+allow hal_usb sysfs:file read;
+allow hal_usb sysfs:file open;
+allow hal_usb sysfs:file write;
+allow hal_usb sysfs:file getattr;
+
+#line 1 "system/sepolicy/public/hal_usb_gadget.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_usb_gadget_client hal_usb_gadget_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_usb_gadget_server hal_usb_gadget_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_usb_gadget_client hal_usb_gadget_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_usb_gadget_server hal_usb_gadget_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_usb_gadget_client hal_usb_gadget_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_usb_gadget_server hal_usb_gadget_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_usb_gadget_client hal_usb_gadget_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_usb_gadget_server hal_usb_gadget_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_usb_gadget_server } hal_usb_gadget_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow hal_usb_gadget_server servicemanager:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow servicemanager hal_usb_gadget_server:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow hal_usb_gadget_server servicemanager:fd use;
+#line 6
+
+
+
+#line 8
+  allow hal_usb_gadget_client hal_usb_gadget_hwservice:hwservice_manager find;
+#line 8
+  
+#line 8
+  allow hal_usb_gadget_server hal_usb_gadget_hwservice:hwservice_manager { add find };
+#line 8
+  allow hal_usb_gadget_server hidl_base_hwservice:hwservice_manager add;
+#line 8
+  neverallow { domain -hal_usb_gadget_server } hal_usb_gadget_hwservice:hwservice_manager add;
+#line 8
+
+#line 8
+
+#line 8
+  
+#line 8
+
+
+# Configuring usb gadget functions
+allow hal_usb_gadget_server configfs:lnk_file { read create unlink};
+allow hal_usb_gadget_server configfs:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow hal_usb_gadget_server configfs:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow hal_usb_gadget_server functionfs:dir { read search };
+allow hal_usb_gadget_server functionfs:file read;
+allow hal_usb_gadget_server proc_interrupts:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read access to ro.usb.uvc.enabled
+
+#line 19
+allow hal_usb_gadget_server usb_uvc_enabled_prop:file { getattr open read map };
+#line 19
+
+#line 1 "system/sepolicy/public/hal_uwb.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_uwb_client hal_uwb_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_uwb_server hal_uwb_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_uwb_client hal_uwb_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_uwb_server hal_uwb_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_uwb_client hal_uwb_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_uwb_server hal_uwb_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_uwb_client hal_uwb_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_uwb_server hal_uwb_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_uwb_server } hal_uwb_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_uwb_server servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_uwb_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_uwb_server servicemanager:fd use;
+#line 7
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_uwb_client servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_uwb_client:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_uwb_client servicemanager:fd use;
+#line 8
+
+#line 1 "system/sepolicy/public/hal_vehicle.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_vehicle_client hal_vehicle_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_vehicle_server hal_vehicle_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_vehicle_client hal_vehicle_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_vehicle_server hal_vehicle_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_vehicle_client hal_vehicle_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_vehicle_server hal_vehicle_client:fd use;
+#line 3
+
+
+
+
+#line 6
+  allow hal_vehicle_client hal_vehicle_hwservice:hwservice_manager find;
+#line 6
+  
+#line 6
+  allow hal_vehicle_server hal_vehicle_hwservice:hwservice_manager { add find };
+#line 6
+  allow hal_vehicle_server hidl_base_hwservice:hwservice_manager add;
+#line 6
+  neverallow { domain -hal_vehicle_server } hal_vehicle_hwservice:hwservice_manager add;
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+#line 7
+  allow hal_vehicle_client hal_vehicle_service:service_manager find;
+#line 7
+  
+#line 7
+  allow hal_vehicle_server hal_vehicle_service:service_manager { add find };
+#line 7
+  neverallow { domain -hal_vehicle_server } hal_vehicle_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+#line 7
+
+#line 7
+  
+#line 7
+
+#line 1 "system/sepolicy/public/hal_vibrator.te"
+# HwBinder IPC client/server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_vibrator_client hal_vibrator_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_vibrator_server hal_vibrator_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_vibrator_client hal_vibrator_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_vibrator_server hal_vibrator_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_vibrator_client hal_vibrator_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_vibrator_server hal_vibrator_client:fd use;
+#line 3
+;
+
+
+#line 5
+  allow hal_vibrator_client hal_vibrator_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_vibrator_server hal_vibrator_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_vibrator_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_vibrator_server } hal_vibrator_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_vibrator_client hal_vibrator_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_vibrator_server hal_vibrator_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_vibrator_server } hal_vibrator_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow hal_vibrator_server servicemanager:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow servicemanager hal_vibrator_server:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow hal_vibrator_server servicemanager:fd use;
+#line 8
+
+
+allow hal_vibrator_server dumpstate:fifo_file write;
+
+# vibrator sysfs rw access
+allow hal_vibrator sysfs_vibrator:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow hal_vibrator sysfs_vibrator:dir search;
+
+# Allow HAL vibrator to control some parameters of a vibration, such as scaling.
+allow hal_vibrator fwk_vibrator_control_service:service_manager find;
+#line 1 "system/sepolicy/public/hal_vr.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_vr_client hal_vr_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_vr_server hal_vr_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_vr_client hal_vr_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_vr_server hal_vr_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_vr_client hal_vr_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_vr_server hal_vr_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_vr_client hal_vr_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_vr_server hal_vr_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_vr_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_vr_server } hal_vr_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+#line 1 "system/sepolicy/public/hal_weaver.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_weaver_client hal_weaver_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_weaver_server hal_weaver_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_weaver_client hal_weaver_server:fd use;
+#line 2
+
+
+
+#line 4
+  allow hal_weaver_client hal_weaver_hwservice:hwservice_manager find;
+#line 4
+  
+#line 4
+  allow hal_weaver_server hal_weaver_hwservice:hwservice_manager { add find };
+#line 4
+  allow hal_weaver_server hidl_base_hwservice:hwservice_manager add;
+#line 4
+  neverallow { domain -hal_weaver_server } hal_weaver_hwservice:hwservice_manager add;
+#line 4
+
+#line 4
+
+#line 4
+  
+#line 4
+
+
+#line 5
+  allow hal_weaver_client hal_weaver_service:service_manager find;
+#line 5
+  
+#line 5
+  allow hal_weaver_server hal_weaver_service:service_manager { add find };
+#line 5
+  neverallow { domain -hal_weaver_server } hal_weaver_service:service_manager add;
+#line 5
+
+#line 5
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 5
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 5
+  
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow hal_weaver_server servicemanager:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow servicemanager hal_weaver_server:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow hal_weaver_server servicemanager:fd use;
+#line 7
+
+#line 1 "system/sepolicy/public/hal_wifi.te"
+# HwBinder IPC from client to server, and callbacks
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_wifi_client hal_wifi_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_wifi_server hal_wifi_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_wifi_client hal_wifi_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_wifi_server hal_wifi_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_wifi_client hal_wifi_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_wifi_server hal_wifi_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_wifi_client hal_wifi_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_wifi_server hal_wifi_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_wifi_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_wifi_server } hal_wifi_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_wifi_client hal_wifi_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_wifi_server hal_wifi_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_wifi_server } hal_wifi_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_wifi_server servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_wifi_server:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_wifi_server:dir search;
+#line 8
+allow servicemanager hal_wifi_server:file { read open };
+#line 8
+allow servicemanager hal_wifi_server:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+
+#line 10
+allow hal_wifi proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow hal_wifi proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 10
+
+
+#line 11
+allow hal_wifi sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_wifi sysfs_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 11
+
+
+
+#line 13
+
+#line 13
+allow hal_wifi_server property_socket:sock_file write;
+#line 13
+allow hal_wifi_server init:unix_stream_socket connectto;
+#line 13
+
+#line 13
+allow hal_wifi_server wifi_hal_prop:property_service set;
+#line 13
+
+#line 13
+allow hal_wifi_server wifi_hal_prop:file { getattr open read map };
+#line 13
+
+#line 13
+
+
+#line 14
+
+#line 14
+allow hal_wifi property_socket:sock_file write;
+#line 14
+allow hal_wifi init:unix_stream_socket connectto;
+#line 14
+
+#line 14
+allow hal_wifi wifi_prop:property_service set;
+#line 14
+
+#line 14
+allow hal_wifi wifi_prop:file { getattr open read map };
+#line 14
+
+#line 14
+
+
+
+# allow hal wifi set interfaces up and down and get the factory MAC
+allow hal_wifi self:udp_socket { create { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allowxperm hal_wifi self:udp_socket ioctl { 0x00008914 0x00008924 0x00008946 };
+
+allow hal_wifi self:{ capability cap_userns } { net_admin net_raw };
+# allow hal_wifi to speak to nl80211 in the kernel
+allow hal_wifi self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets
+allow hal_wifi self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+# hal_wifi writes firmware paths to this file.
+allow hal_wifi sysfs_wlan_fwpath:file { { open append write lock map } };
+# allow hal_wifi to access /proc/modules to check if Wi-Fi driver is loaded
+allow hal_wifi proc_modules:file { getattr open read };
+# Allow hal_wifi to send dump info to dumpstate
+allow hal_wifi dumpstate:fifo_file write;
+
+# allow hal_wifi to write into /data/vendor/tombstones/wifi
+allow hal_wifi_server tombstone_wifi_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow hal_wifi_server tombstone_wifi_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+#line 1 "system/sepolicy/public/hal_wifi_hostapd.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_wifi_hostapd_client hal_wifi_hostapd_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_wifi_hostapd_server hal_wifi_hostapd_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_wifi_hostapd_client hal_wifi_hostapd_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_wifi_hostapd_server hal_wifi_hostapd_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_wifi_hostapd_client hal_wifi_hostapd_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_wifi_hostapd_server hal_wifi_hostapd_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_wifi_hostapd_client hal_wifi_hostapd_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_wifi_hostapd_server hal_wifi_hostapd_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_wifi_hostapd_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_wifi_hostapd_server } hal_wifi_hostapd_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_wifi_hostapd_client hal_wifi_hostapd_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_wifi_hostapd_server hal_wifi_hostapd_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_wifi_hostapd_server } hal_wifi_hostapd_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow hal_wifi_hostapd_server servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager hal_wifi_hostapd_server:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager hal_wifi_hostapd_server:dir search;
+#line 8
+allow servicemanager hal_wifi_hostapd_server:file { read open };
+#line 8
+allow servicemanager hal_wifi_hostapd_server:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+allow hal_wifi_hostapd_server dumpstate:fifo_file write;
+
+allow hal_wifi_hostapd_server self:{ capability cap_userns } { net_admin net_raw };
+
+allow hal_wifi_hostapd_server sysfs_net:dir search;
+
+# Allow hal_wifi_hostapd to access /proc/net/psched
+allow hal_wifi_hostapd_server proc_net_type:file { getattr open read };
+
+# Various socket permissions.
+allowxperm hal_wifi_hostapd_server self:udp_socket ioctl 
+#line 20
+{
+#line 20
+# qualcomm rmnet ioctls
+#line 20
+0x00006900 0x00006902
+#line 20
+# socket ioctls
+#line 20
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 20
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 20
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 20
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 20
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 20
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 20
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 20
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 20
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 20
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 20
+# device and protocol specific ioctls
+#line 20
+0x000089f0-0x000089ff
+#line 20
+0x000089e0-0x000089ef
+#line 20
+# Wireless extension ioctls
+#line 20
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 20
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 20
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 20
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 20
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 20
+0x00008b34 0x00008b35 0x00008b36
+#line 20
+# Dev private ioctl i.e. hardware specific ioctls
+#line 20
+0x00008be0-0x00008bff
+#line 20
+};
+allow hal_wifi_hostapd_server self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_wifi_hostapd_server self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_wifi_hostapd_server self:packet_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_wifi_hostapd_server self:netlink_route_socket nlmsg_write;
+
+###
+### neverallow rules
+###
+
+# hal_wifi_hostapd should not trust any data from sdcards
+neverallow hal_wifi_hostapd_server { sdcard_type fuse }:dir ~getattr;
+neverallow hal_wifi_hostapd_server { sdcard_type fuse }:file *;
+#line 1 "system/sepolicy/public/hal_wifi_supplicant.te"
+# HwBinder IPC from client to server
+
+#line 2
+# Call the server domain and optionally transfer references to it.
+#line 2
+allow hal_wifi_supplicant_client hal_wifi_supplicant_server:binder { call transfer };
+#line 2
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 2
+allow hal_wifi_supplicant_server hal_wifi_supplicant_client:binder transfer;
+#line 2
+# Receive and use open files from the server.
+#line 2
+allow hal_wifi_supplicant_client hal_wifi_supplicant_server:fd use;
+#line 2
+
+
+#line 3
+# Call the server domain and optionally transfer references to it.
+#line 3
+allow hal_wifi_supplicant_server hal_wifi_supplicant_client:binder { call transfer };
+#line 3
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 3
+allow hal_wifi_supplicant_client hal_wifi_supplicant_server:binder transfer;
+#line 3
+# Receive and use open files from the server.
+#line 3
+allow hal_wifi_supplicant_server hal_wifi_supplicant_client:fd use;
+#line 3
+
+
+
+#line 5
+  allow hal_wifi_supplicant_client hal_wifi_supplicant_hwservice:hwservice_manager find;
+#line 5
+  
+#line 5
+  allow hal_wifi_supplicant_server hal_wifi_supplicant_hwservice:hwservice_manager { add find };
+#line 5
+  allow hal_wifi_supplicant_server hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hal_wifi_supplicant_server } hal_wifi_supplicant_hwservice:hwservice_manager add;
+#line 5
+
+#line 5
+
+#line 5
+  
+#line 5
+
+
+#line 6
+  allow hal_wifi_supplicant_client hal_wifi_supplicant_service:service_manager find;
+#line 6
+  
+#line 6
+  allow hal_wifi_supplicant_server hal_wifi_supplicant_service:service_manager { add find };
+#line 6
+  neverallow { domain -hal_wifi_supplicant_server } hal_wifi_supplicant_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+#line 6
+
+#line 6
+  
+#line 6
+
+
+# in addition to ioctls allowlisted for all domains, grant hal_wifi_supplicant priv_sock_ioctls.
+allowxperm hal_wifi_supplicant self:udp_socket ioctl 
+#line 9
+{
+#line 9
+# qualcomm rmnet ioctls
+#line 9
+0x00006900 0x00006902
+#line 9
+# socket ioctls
+#line 9
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 9
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 9
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 9
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 9
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 9
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 9
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 9
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 9
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 9
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 9
+# device and protocol specific ioctls
+#line 9
+0x000089f0-0x000089ff
+#line 9
+0x000089e0-0x000089ef
+#line 9
+# Wireless extension ioctls
+#line 9
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 9
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 9
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 9
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 9
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 9
+0x00008b34 0x00008b35 0x00008b36
+#line 9
+# Dev private ioctl i.e. hardware specific ioctls
+#line 9
+0x00008be0-0x00008bff
+#line 9
+};
+
+
+#line 11
+allow hal_wifi_supplicant sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_wifi_supplicant sysfs_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 11
+
+
+#line 12
+allow hal_wifi_supplicant proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_wifi_supplicant proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 12
+
+
+allow hal_wifi_supplicant self:{ capability cap_userns } { setuid net_admin setgid net_raw };
+allow hal_wifi_supplicant cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow hal_wifi_supplicant cgroup_v2:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow hal_wifi_supplicant self:netlink_route_socket nlmsg_write;
+allow hal_wifi_supplicant self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_wifi_supplicant self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow hal_wifi_supplicant self:packet_socket { create { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allowxperm hal_wifi_supplicant self:packet_socket ioctl { 
+#line 21
+{
+#line 21
+# Socket ioctls for gathering information about the interface
+#line 21
+0x00008906 0x00008907
+#line 21
+0x00008910 0x00008912 0x00008913 0x00008915 0x00008917 0x00008919
+#line 21
+0x0000891b 0x00008921 0x00008933 0x00008938 0x00008942
+#line 21
+# Wireless extension ioctls. Primarily get functions.
+#line 21
+0x00008b01 0x00008b05 0x00008b07 0x00008b09 0x00008b0b 0x00008b0d
+#line 21
+0x00008b0f 0x00008b11 0x00008b12 0x00008b13 0x00008b21 0x00008b23
+#line 21
+0x00008b25 0x00008b27 0x00008b29 0x00008b2d
+#line 21
+} 
+#line 21
+{
+#line 21
+# qualcomm rmnet ioctls
+#line 21
+0x00006900 0x00006902
+#line 21
+# socket ioctls
+#line 21
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 21
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 21
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 21
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 21
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 21
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 21
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 21
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 21
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 21
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 21
+# device and protocol specific ioctls
+#line 21
+0x000089f0-0x000089ff
+#line 21
+0x000089e0-0x000089ef
+#line 21
+# Wireless extension ioctls
+#line 21
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 21
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 21
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 21
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 21
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 21
+0x00008b34 0x00008b35 0x00008b36
+#line 21
+# Dev private ioctl i.e. hardware specific ioctls
+#line 21
+0x00008be0-0x00008bff
+#line 21
+} {
+#line 21
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 21
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 21
+} };
+
+
+#line 23
+  allow keystore hal_wifi_supplicant:dir search;
+#line 23
+  allow keystore hal_wifi_supplicant:file { read open };
+#line 23
+  allow keystore hal_wifi_supplicant:process getattr;
+#line 23
+  allow hal_wifi_supplicant apc_service:service_manager find;
+#line 23
+  allow hal_wifi_supplicant keystore_service:service_manager find;
+#line 23
+  allow hal_wifi_supplicant legacykeystore_service:service_manager find;
+#line 23
+  
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow hal_wifi_supplicant keystore:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow keystore hal_wifi_supplicant:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow hal_wifi_supplicant keystore:fd use;
+#line 23
+
+#line 23
+  
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow keystore hal_wifi_supplicant:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow hal_wifi_supplicant keystore:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow keystore hal_wifi_supplicant:fd use;
+#line 23
+
+#line 23
+
+
+#line 24
+# Call the servicemanager and transfer references to it.
+#line 24
+allow hal_wifi_supplicant_server servicemanager:binder { call transfer };
+#line 24
+# Allow servicemanager to send out callbacks
+#line 24
+allow servicemanager hal_wifi_supplicant_server:binder { call transfer };
+#line 24
+# servicemanager performs getpidcon on clients.
+#line 24
+allow servicemanager hal_wifi_supplicant_server:dir search;
+#line 24
+allow servicemanager hal_wifi_supplicant_server:file { read open };
+#line 24
+allow servicemanager hal_wifi_supplicant_server:process getattr;
+#line 24
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 24
+# all domains in domain.te.
+#line 24
+
+
+# Allow the WI-FI HAL to use keys in the keystore namespace wifi_key.
+allow hal_wifi_supplicant wifi_key:keystore2_key {
+    get_info
+    use
+};
+
+###
+### neverallow rules
+###
+
+# wpa_supplicant should not trust any data from sdcards
+neverallow hal_wifi_supplicant_server { sdcard_type fuse }:dir ~getattr;
+neverallow hal_wifi_supplicant_server { sdcard_type fuse }:file *;
+#line 1 "system/sepolicy/public/healthd.te"
+# healthd - battery/charger monitoring service daemon
+# healthd is removed. The type is kept for backwards compatibility.
+
+type healthd, domain;
+#line 1 "system/sepolicy/public/heapprofd.te"
+type heapprofd, domain, coredomain;
+#line 1 "system/sepolicy/public/hwservice.te"
+# hwservice types. By default most of the HALs are protected_hwservice, which means
+# access from untrusted apps is prohibited.
+type default_android_hwservice, hwservice_manager_type, protected_hwservice;
+type fwk_camera_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type fwk_display_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type fwk_scheduler_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type fwk_sensor_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type fwk_stats_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type fwk_automotive_display_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type hal_atrace_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_audio_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_audiocontrol_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_authsecret_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_bluetooth_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_bootctl_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_broadcastradio_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_camera_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_can_bus_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_can_controller_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_confirmationui_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_contexthub_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_dumpstate_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_evs_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_face_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_fingerprint_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_gatekeeper_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_gnss_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_graphics_composer_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_health_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_health_storage_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_input_classifier_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_ir_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_keymaster_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_light_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_lowpan_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_memtrack_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_nfc_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_oemlock_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_power_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_power_stats_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_secure_element_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_sensors_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_telephony_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_tetheroffload_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_thermal_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_tv_cec_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_tv_input_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_tv_tuner_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_usb_gadget_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_usb_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_vehicle_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_vibrator_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_vr_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_weaver_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_wifi_hostapd_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_wifi_hwservice, hwservice_manager_type, protected_hwservice;
+type hal_wifi_supplicant_hwservice, hwservice_manager_type, protected_hwservice;
+type system_net_netd_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type system_suspend_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+type system_wifi_keystore_hwservice, hwservice_manager_type, coredomain_hwservice, protected_hwservice;
+
+# Following is the hwservices that are explicitly not marked with protected_hwservice.
+# These are directly accessible from untrusted apps.
+# - same process services: because they by definition run in the process
+#   of the client and thus have the same access as the client domain in which
+#   the process runs
+# - coredomain_hwservice: are considered safer than ordinary hwservices which
+#   are from vendor partition
+# - hal_configstore_ISurfaceFlingerConfigs:  becuase it has specifically been
+#   designed for use by any domain.
+# - hal_graphics_allocator_hwservice: because these operations are also offered
+#   by surfaceflinger Binder service, which apps are permitted to access
+# - hal_omx_hwservice: because this is a HwBinder version of the mediacodec
+#   Binder service which apps were permitted to access.
+# - hal_codec2_hwservice: because this is a newer version of hal_omx_hwservice.
+# - hal_drm_hwservice: versions > API 29 are designed specifically with
+#   untrusted app access in mind.
+type fwk_bufferhub_hwservice, hwservice_manager_type, coredomain_hwservice;
+type hal_cas_hwservice, hwservice_manager_type;
+type hal_codec2_hwservice, hwservice_manager_type;
+type hal_configstore_ISurfaceFlingerConfigs, hwservice_manager_type;
+type hal_drm_hwservice, hwservice_manager_type;
+type hal_graphics_allocator_hwservice, hwservice_manager_type;
+type hal_graphics_mapper_hwservice, hwservice_manager_type, same_process_hwservice;
+type hal_neuralnetworks_hwservice, hwservice_manager_type;
+type hal_omx_hwservice, hwservice_manager_type;
+type hal_renderscript_hwservice, hwservice_manager_type, same_process_hwservice;
+type hidl_allocator_hwservice, hwservice_manager_type, coredomain_hwservice;
+type hidl_base_hwservice, hwservice_manager_type;
+type hidl_manager_hwservice, hwservice_manager_type, coredomain_hwservice;
+type hidl_memory_hwservice, hwservice_manager_type, coredomain_hwservice;
+type hidl_token_hwservice, hwservice_manager_type, coredomain_hwservice;
+
+###
+### Neverallow rules
+###
+
+# hwservicemanager handles registering or looking up named services.
+# It does not make sense to register or lookup something which is not a
+# hwservice. Trigger a compile error if this occurs.
+neverallow domain ~hwservice_manager_type:hwservice_manager { add find };
+#line 1 "system/sepolicy/public/hwservicemanager.te"
+# hwservicemanager - the Binder context manager for HAL services
+type hwservicemanager, domain, mlstrustedsubject;
+type hwservicemanager_exec, system_file_type, exec_type, file_type;
+
+# Note that we do not use the binder_* macros here.
+# hwservicemanager provides name service (aka context manager)
+# for hwbinder.
+# Additionally, it initiates binder IPC calls to
+# clients who request service notifications. The permission
+# to do this is granted in the hwbinder_use macro.
+allow hwservicemanager self:binder set_context_mgr;
+
+# Scan through /system/lib64/hw looking for installed HALs
+allow hwservicemanager system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Read hwservice_contexts
+allow hwservicemanager hwservice_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Check SELinux permissions.
+
+#line 20
+
+#line 20
+allow hwservicemanager selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hwservicemanager selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 20
+
+#line 20
+allow hwservicemanager selinuxfs:file { open append write lock map };
+#line 20
+allow hwservicemanager kernel:security compute_av;
+#line 20
+allow hwservicemanager self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 20
+
+#line 1 "system/sepolicy/public/idmap.te"
+# idmap, when executed by installd
+type idmap, domain;
+type idmap_exec, system_file_type, exec_type, file_type;
+
+# Allow read + write access to /data/resource-cache
+allow idmap resourcecache_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow idmap resourcecache_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Open and read from target and overlay apk files passed by argument.
+allow idmap apk_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow idmap apk_data_file:dir search;
+
+# Allow /data/app/vmdl*.tmp, /data/app-private/vmdl*.tmp files
+allow idmap { apk_tmp_file apk_private_tmp_file }:file { getattr open read ioctl lock map watch watch_reads };
+allow idmap { apk_tmp_file apk_private_tmp_file }:dir search;
+
+# Allow apps access to /vendor/app
+
+#line 18
+allow idmap vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow idmap vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 18
+
+
+# Allow apps access to /vendor/overlay
+
+#line 21
+allow idmap vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow idmap vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 21
+
+
+# Allow the idmap2d binary to register as a service and communicate via AIDL
+
+#line 24
+# Call the servicemanager and transfer references to it.
+#line 24
+allow idmap servicemanager:binder { call transfer };
+#line 24
+# Allow servicemanager to send out callbacks
+#line 24
+allow servicemanager idmap:binder { call transfer };
+#line 24
+# servicemanager performs getpidcon on clients.
+#line 24
+allow servicemanager idmap:dir search;
+#line 24
+allow servicemanager idmap:file { read open };
+#line 24
+allow servicemanager idmap:process getattr;
+#line 24
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 24
+# all domains in domain.te.
+#line 24
+
+
+#line 25
+typeattribute idmap binderservicedomain;
+#line 25
+
+
+#line 26
+  allow idmap idmap_service:service_manager { add find };
+#line 26
+  neverallow { domain -idmap } idmap_service:service_manager add;
+#line 26
+
+#line 26
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 26
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 26
+  
+#line 26
+
+#line 1 "system/sepolicy/public/incident.te"
+# The incident command is used to call into the incidentd service to
+# take an incident report (binary, shared bugreport), download incident
+# reports that have already been taken, and monitor for new ones.
+# It doesn't do anything else.
+
+# incident
+type incident, domain;
+
+#line 1 "system/sepolicy/public/incident_helper.te"
+# The incident_helper is called by incidentd and
+# can only read/write data from/to incidentd
+
+# incident_helper
+type incident_helper, domain;
+#line 1 "system/sepolicy/public/incidentd.te"
+# incidentd
+type incidentd, domain;
+
+#line 1 "system/sepolicy/public/init.te"
+# init is its own domain.
+type init, domain, mlstrustedsubject;
+type init_exec, system_file_type, exec_type, file_type;
+type init_tmpfs, file_type;
+
+# /dev/__null__ node created by init.
+allow init tmpfs:chr_file { create setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+#
+# init direct restorecon calls.
+#
+# /dev/kmsg
+allow init tmpfs:chr_file relabelfrom;
+allow init kmsg_device:chr_file { getattr write relabelto };
+# /dev/kmsg_debug
+#line 18
+
+
+# allow init to mount and unmount debugfs in debug builds
+#line 23
+
+
+# /dev/__properties__
+allow init properties_device:dir relabelto;
+allow init properties_serial:file { write relabelto };
+allow init property_type:file { append create getattr map open read relabelto rename setattr unlink write };
+# /dev/__properties__/property_info and /dev/__properties/appcompat_override/property_info
+allow init properties_device:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow init property_info:file relabelto;
+# /dev/event-log-tags
+allow init device:file relabelfrom;
+allow init runtime_event_log_tags_file:file { open write setattr relabelto create };
+# /dev/socket
+allow init { device socket_device dm_user_device }:dir relabelto;
+# allow init to establish connection and communicate with lmkd
+
+#line 38
+allow init lmkd_socket:sock_file write;
+#line 38
+allow init lmkd:unix_stream_socket connectto;
+#line 38
+
+# Relabel /dev nodes created in first stage init: /dev/console, /dev/null, /dev/ptmx, /dev/random
+# and /dev/urandom
+allow init { console_device null_device ptmx_device random_device } : chr_file relabelto;
+# /dev/device-mapper, /dev/block(/.*)?
+allow init tmpfs:{ chr_file blk_file } relabelfrom;
+allow init tmpfs:blk_file getattr;
+allow init block_device:{ dir blk_file lnk_file } relabelto;
+allow init dm_device:{ chr_file blk_file } relabelto;
+allow init dm_user_device:chr_file relabelto;
+allow init kernel:fd use;
+# restorecon for early mount device symlinks
+allow init tmpfs:lnk_file { getattr read relabelfrom };
+allow init {
+  metadata_block_device
+  misc_block_device
+  recovery_block_device
+  system_block_device
+  userdata_block_device
+}:{ blk_file lnk_file } relabelto;
+
+allow init dtbo_block_device:lnk_file relabelto;
+allow init super_block_device:lnk_file relabelto;
+
+# Create /mnt/sdcard -> /storage/self/primary symlink.
+allow init mnt_sdcard_file:lnk_file create;
+
+# setrlimit
+allow init self:{ capability cap_userns } sys_resource;
+
+# Remove /dev/.booting and load /debug_ramdisk/* files
+allow init tmpfs:file { getattr unlink };
+
+# Access pty created for fsck.
+allow init devpts:chr_file { read write open };
+
+# Create /dev/fscklogs files.
+allow init fscklogs:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access /dev/__null__ node created prior to initial policy load.
+allow init tmpfs:chr_file write;
+
+# Access /dev/console.
+allow init console_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access /dev/tty0.
+allow init tty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Call mount(2).
+allow init self:{ capability cap_userns } sys_admin;
+
+# Call setns(2).
+allow init self:{ capability cap_userns } sys_chroot;
+
+# Create and mount on directories in /.
+allow init rootfs:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init {
+    rootfs
+    cache_file
+    cgroup
+    linkerconfig_file
+    storage_file
+    mnt_user_file
+    system_data_file
+    system_data_root_file
+    system_dlkm_file
+    system_file
+    vendor_file
+    postinstall_mnt_dir
+    mirror_data_file
+    shell_data_file
+}:dir mounton;
+
+# Mount bpf fs on sys/fs/bpf
+allow init fs_bpf:dir mounton;
+
+# Mount on /dev/usb-ffs/adb.
+allow init device:dir mounton;
+
+# Mount tmpfs on /apex
+allow init apex_mnt_dir:dir mounton;
+
+# Bind-mount on /system/apex/com.android.art
+allow init art_apex_dir:dir mounton;
+
+# Create and remove symlinks in /.
+allow init rootfs:lnk_file { create unlink };
+
+# Mount debugfs on /sys/kernel/debug.
+allow init sysfs:dir mounton;
+
+# Create cgroups mount points in tmpfs and mount cgroups on them.
+allow init tmpfs:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init tmpfs:dir mounton;
+allow init cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init cgroup:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow init cgroup_rc_file:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow init cgroup_desc_file:file { getattr open read ioctl lock map watch watch_reads };
+allow init cgroup_desc_api_file:file { getattr open read ioctl lock map watch watch_reads };
+allow init vendor_cgroup_desc_file:file { getattr open read ioctl lock map watch watch_reads };
+allow init cgroup_v2:dir { mounton { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } }};
+allow init cgroup_v2:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# /config
+allow init configfs:dir mounton;
+allow init configfs:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init configfs:{ file lnk_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# /metadata
+allow init metadata_file:dir mounton;
+
+# Run restorecon on /dev
+allow init tmpfs:dir relabelfrom;
+
+# Create directories under /dev/cpuctl after chowning it to system.
+allow init self:{ capability cap_userns } { dac_override dac_read_search };
+
+# Set system clock.
+allow init self:{ capability cap_userns } sys_time;
+
+allow init self:{ capability cap_userns } { sys_rawio mknod };
+
+# Mounting filesystems from block devices.
+allow init dev_type:blk_file { getattr open read ioctl lock map watch watch_reads };
+allowxperm init dev_type:blk_file ioctl 0x0000125d;
+allowxperm init system_data_root_file:dir ioctl 0x587d;
+
+# Mounting filesystems.
+# Only allow relabelto for types used in context= mount options,
+# which should all be assigned the contextmount_type attribute.
+# This can be done in device-specific policy via type or typeattribute
+# declarations.
+allow init {
+  fs_type
+  # BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 172
+-debugfs_type
+#line 172
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 172
+
+}:filesystem ~relabelto;
+
+# Allow init to mount/unmount debugfs in non-user builds.
+# BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 176
+
+#line 176
+  
+#line 176
+
+#line 176
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 178
+
+
+# Allow init to mount tracefs in /sys/kernel/tracing
+allow init debugfs_tracing_debug:filesystem mount;
+
+allow init unlabeled:filesystem ~relabelto;
+allow init contextmount_type:filesystem relabelto;
+
+# Allow read-only access to context= mounted filesystems.
+allow init contextmount_type:dir { open getattr read search ioctl lock watch watch_reads };
+allow init contextmount_type:{ file lnk_file sock_file fifo_file } { getattr open read ioctl lock map watch watch_reads };
+
+# restorecon /adb_keys or any other rootfs files and directories to a more
+# specific type.
+allow init rootfs:{ dir file } relabelfrom;
+
+# mkdir, symlink, write, rm/rmdir, chown/chmod, restorecon/restorecon_recursive from init.rc files.
+# chown/chmod require open+read+setattr required for open()+fchown/fchmod().
+# system/core/init.rc requires at least cache_file and data_file_type.
+# init.<board>.rc files often include device-specific types, so
+# we just allow all file types except /system files here.
+allow init self:{ capability cap_userns } { chown fowner fsetid };
+
+allow init {
+  file_type
+  -app_data_file
+  -bpffs_type
+  -exec_type
+  -misc_logd_file
+  -nativetest_data_file
+  -privapp_data_file
+  -system_app_data_file
+  -system_dlkm_file_type
+  -system_file_type
+  -vendor_file_type
+}:dir { create search getattr open read setattr ioctl };
+
+allow init {
+  file_type
+  -app_data_file
+  -bpffs_type
+  -credstore_data_file
+  -exec_type
+  -keystore_data_file
+  -media_userdir_file
+  -misc_logd_file
+  -nativetest_data_file
+  -privapp_data_file
+  -shell_data_file
+  -system_app_data_file
+  -system_dlkm_file_type
+  -system_file_type
+  -system_userdir_file
+  -vendor_file_type
+  -vendor_userdir_file
+  -vold_data_file
+}:dir { write add_name remove_name rmdir relabelfrom };
+
+allow init {
+  file_type
+  -apex_info_file
+  -app_data_file
+  -bpffs_type
+  -exec_type
+  -gsi_data_file
+  -credstore_data_file
+  -keystore_data_file
+  -misc_logd_file
+  -nativetest_data_file
+  -privapp_data_file
+  -runtime_event_log_tags_file
+  -shell_data_file
+  -system_app_data_file
+  -system_dlkm_file_type
+  -system_file_type
+  -vendor_file_type
+  -vold_data_file
+  # BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 255
+-debugfs_type
+#line 255
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 255
+
+}:file { create getattr open read write setattr relabelfrom unlink map };
+
+allow init tracefs_type:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom };
+
+# Allow init to read /apex/apex-info-list.xml for preinstalled paths of APEXes to determine
+# subcontext for action/service defined in APEXes.
+allow init apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+allow init {
+  file_type
+  -app_data_file
+  -bpffs_type
+  -exec_type
+  -gsi_data_file
+  -credstore_data_file
+  -keystore_data_file
+  -misc_logd_file
+  -nativetest_data_file
+  -privapp_data_file
+  -shell_data_file
+  -system_app_data_file
+  -system_dlkm_file_type
+  -system_file_type
+  -vendor_file_type
+  -vold_data_file
+}:{ sock_file fifo_file } { create getattr open read setattr relabelfrom unlink };
+
+allow init {
+  file_type
+  -apex_mnt_dir
+  -app_data_file
+  -bpffs_type
+  -exec_type
+  -gsi_data_file
+  -credstore_data_file
+  -keystore_data_file
+  -misc_logd_file
+  -nativetest_data_file
+  -privapp_data_file
+  -shell_data_file
+  -system_app_data_file
+  -system_dlkm_file_type
+  -system_file_type
+  -vendor_file_type
+  -vold_data_file
+}:lnk_file { create getattr setattr relabelfrom unlink };
+
+allow init cache_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+allow init {
+  file_type
+  -bpffs_type
+  -system_dlkm_file_type
+  -system_file_type
+  -vendor_file_type
+  -exec_type
+  -app_data_file
+  -privapp_data_file
+}:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } relabelto;
+
+allow init { sysfs debugfs debugfs_tracing debugfs_tracing_debug }:{ dir file lnk_file } { getattr relabelfrom };
+allow init { sysfs_type debugfs_type tracefs_type }:{ dir file lnk_file } { relabelto getattr };
+allow init dev_type:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init dev_type:lnk_file create;
+
+# Disable tracing by writing to /sys/kernel/debug/tracing/tracing_on
+allow init debugfs_tracing:file { open append write lock map };
+
+# Setup and control wifi event tracing (see wifi-events.rc)
+allow init debugfs_tracing_instances:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init debugfs_tracing_instances:file { open append write lock map };
+allow init debugfs_wifi_tracing:file { open append write lock map };
+
+# chown/chmod on pseudo files.
+allow init {
+  fs_type
+  -bpffs_type
+  -contextmount_type
+  -keychord_device
+  -proc_type
+  -sdcard_type
+  -fusefs_type
+  -sysfs_type
+  -rootfs
+  # BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 340
+-debugfs_type
+#line 340
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 340
+
+}:file { open read setattr };
+allow init {
+  fs_type
+  -bpffs_type
+  -contextmount_type
+  -sdcard_type
+  -fusefs_type
+  -rootfs
+}:dir { open read setattr search };
+
+allow init {
+  binder_device
+  console_device
+  devpts
+  dm_device
+  hwbinder_device
+  input_device
+  kmsg_device
+  null_device
+  owntty_device
+  pmsg_device
+  ptmx_device
+  random_device
+  tty_device
+  zero_device
+}:chr_file { read open };
+
+# Unlabeled file access for upgrades from 4.2.
+allow init unlabeled:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom };
+allow init unlabeled:{ file lnk_file sock_file fifo_file } { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom };
+
+# Any operation that can modify the kernel ring buffer, e.g. clear
+# or a read that consumes the messages that were read.
+allow init kernel:system syslog_mod;
+allow init self:{ capability2 cap2_userns } syslog;
+
+# init access to /proc.
+
+#line 378
+allow init proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 378
+allow init proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 378
+
+allow init proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+#line 387
+
+
+allow init {
+  proc # b/67049235 processes /proc/<pid>/* files are mislabeled.
+  proc_bootconfig
+  proc_cmdline
+  proc_diskstats
+  proc_kmsg # Open /proc/kmsg for logd service.
+  proc_meminfo
+  proc_stat # Read /proc/stat for bootchart.
+  proc_uptime
+  proc_version
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+allow init {
+  proc_abi
+  proc_cpu_alignment
+  proc_dirty
+  proc_hostname
+  proc_hung_task
+  proc_extra_free_kbytes
+  proc_net_type
+  proc_max_map_count
+  proc_min_free_order_shift
+  proc_overcommit_memory      # /proc/sys/vm/overcommit_memory
+  proc_panic
+  proc_page_cluster
+  proc_perf
+  proc_sched
+  proc_sysrq
+  proc_watermark_boost_factor
+}:file { open append write lock map };
+
+allow init {
+  proc_security
+}:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# init chmod/chown access to /proc files.
+allow init {
+  proc_cmdline
+  proc_bootconfig
+  proc_kmsg
+  proc_net
+  proc_pagetypeinfo
+  proc_qtaguid_stat
+  proc_slabinfo
+  proc_sysrq
+  proc_qtaguid_ctrl
+  proc_vmallocinfo
+}:file setattr;
+
+# init access to /sys files.
+allow init {
+  sysfs_android_usb
+  sysfs_dm_verity
+  sysfs_leds
+  sysfs_power
+  sysfs_fs_f2fs
+  sysfs_dm
+  sysfs_lru_gen_enabled
+}:file { open append write lock map };
+
+allow init {
+  sysfs_dt_firmware_android
+  sysfs_fs_ext4_features
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+allow init {
+  sysfs_zram
+}:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# allow init to create loop devices with /dev/loop-control
+allow init loop_control_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow init loop_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm init loop_device:blk_file ioctl {
+  0x00004c00
+  0x00004c01
+  0x00004c82
+  0x00004c09
+  0x00004c08
+  0x00004c03
+  0x00004c04
+};
+
+# Allow init to write to vibrator/trigger
+allow init sysfs_vibrator:file { open append write lock map };
+
+# init chmod/chown access to /sys files.
+allow init {
+  sysfs_android_usb
+  sysfs_devices_system_cpu
+  sysfs_ipv4
+  sysfs_leds
+  sysfs_lowmemorykiller
+  sysfs_power
+  sysfs_vibrator
+  sysfs_wake_lock
+  sysfs_zram
+}:file setattr;
+
+# Set usermodehelpers.
+allow init { usermodehelper sysfs_usermodehelper }:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+allow init self:{ capability cap_userns } net_admin;
+
+# Reboot.
+allow init self:{ capability cap_userns } sys_boot;
+
+# Init will create /data/misc/logd when the property persist.logd.logpersistd is "logcatd".
+# Init will also walk through the directory as part of a recursive restorecon.
+allow init misc_logd_file:dir { add_name open create read getattr setattr search write };
+allow init misc_logd_file:file { open create getattr setattr write };
+
+# Support "adb shell stop"
+allow init self:{ capability cap_userns } kill;
+allow init domain:process { getpgid sigkill signal };
+
+# Init creates credstore's directory on boot, and walks through
+# the directory as part of a recursive restorecon.
+allow init credstore_data_file:dir { open create read getattr setattr search };
+allow init credstore_data_file:file { getattr };
+
+# Init creates keystore's directory on boot, and walks through
+# the directory as part of a recursive restorecon.
+allow init keystore_data_file:dir { open create read getattr setattr search };
+allow init keystore_data_file:file { getattr };
+
+# Init creates vold's directory on boot, and walks through
+# the directory as part of a recursive restorecon.
+allow init vold_data_file:dir { open create read getattr setattr search };
+allow init vold_data_file:file { getattr };
+
+# Init creates /data/local/tmp at boot
+allow init shell_data_file:dir { open create read getattr setattr search };
+allow init shell_data_file:file { getattr };
+
+# Set UID, GID, and adjust capability bounding set for services.
+allow init self:{ capability cap_userns } { setuid setgid setpcap };
+
+# For bootchart to read the /proc/$pid/cmdline file of each process,
+# we need to have following line to allow init to have access
+# to different domains.
+
+#line 529
+allow init domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 529
+allow init domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 529
+
+
+# Use setexeccon(), setfscreatecon(), and setsockcreatecon().
+# setexec is for services with seclabel options.
+# setfscreate is for labeling directories and socket files.
+# setsockcreate is for labeling local/unix domain sockets.
+allow init self:process { setexec setfscreate setsockcreate };
+
+# Get file context
+allow init file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# sepolicy access
+allow init sepolicy_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Perform SELinux access checks on setting properties.
+
+#line 544
+
+#line 544
+allow init selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 544
+allow init selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 544
+
+#line 544
+allow init selinuxfs:file { open append write lock map };
+#line 544
+allow init kernel:security compute_av;
+#line 544
+allow init self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 544
+
+
+# Ask the kernel for the new context on services to label their sockets.
+allow init kernel:security compute_create;
+
+# Create sockets for the services.
+allow init domain:unix_stream_socket { create bind setopt };
+allow init domain:unix_dgram_socket { create bind setopt };
+
+# Create /data/property and files within it.
+allow init property_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init property_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Set any property.
+allow init property_type:property_service set;
+
+# Send an SELinux userspace denial to the kernel audit subsystem,
+# so it can be picked up and processed by logd. These denials are
+# generated when an attempt to set a property is denied by policy.
+allow init self:netlink_audit_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_relay };
+allow init self:{ capability cap_userns } audit_write;
+
+# Run "ifup lo" to bring up the localhost interface
+allow init self:udp_socket { create ioctl };
+# in addition to unpriv ioctls granted to all domains, init also needs:
+allowxperm init self:udp_socket ioctl 0x00008914;
+allow init self:{ capability cap_userns } net_raw;
+
+# Set scheduling info for psi monitor thread.
+# TODO: delete or revise this line b/131761776
+allow init kernel:process { getsched setsched };
+
+# swapon() needs write access to swap device
+# system/core/fs_mgr/fs_mgr.c - fs_mgr_swapon_all
+allow init swap_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Create and access /dev files without a specific type,
+# e.g. /dev/.coldboot_done, /dev/.booting
+# TODO:  Move these files into their own type unless they are
+# only ever accessed by init.
+allow init device:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# keychord retrieval from /dev/input/ devices
+allow init input_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow init input_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access device mapper for setting up dm-verity
+allow init dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow init dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access dm-user for OTA boot
+allow init dm_user_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access metadata block device for storing dm-verity state
+allow init metadata_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Read /sys/fs/pstore/console-ramoops to detect restarts caused
+# by dm-verity detecting corrupted blocks
+allow init pstorefs:dir search;
+allow init pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+allow init kernel:system syslog_read;
+
+# linux keyring configuration
+allow init init:key { write search setattr };
+
+# Allow init to create /data/unencrypted
+allow init unencrypted_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+# Set encryption policy on dirs in /data
+allowxperm init { data_file_type unlabeled }:dir ioctl {
+  0x400c6615
+  0x800c6613
+};
+
+# Raw writes to misc block device
+allow init misc_block_device:blk_file { open append write lock map };
+
+
+#line 621
+allow init system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 621
+allow init system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 621
+
+
+#line 622
+allow init system_dlkm_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 622
+allow init system_dlkm_file_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 622
+
+
+#line 623
+allow init vendor_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 623
+allow init vendor_file_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 623
+
+
+allow init system_data_file:file { getattr read };
+allow init system_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# For init to be able to run shell scripts from vendor
+allow init vendor_shell_exec:file execute;
+
+# Metadata setup
+allow init vold_metadata_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init vold_metadata_file:file getattr;
+allow init metadata_bootstat_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow init metadata_bootstat_file:file { open append write lock map };
+allow init userspace_reboot_metadata_file:file { open append write lock map };
+
+# Allow init to touch PSI monitors
+allow init proc_pressure_mem:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } setattr };
+
+# init is using bootstrap bionic
+
+#line 642
+  allow init system_bootstrap_lib_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 642
+  allow init system_bootstrap_lib_file:file { execute read open getattr map };
+#line 642
+
+
+# stat the root dir of fuse filesystems (for the mount handler)
+allow init fuse:dir { search getattr };
+
+# allow filesystem tuning
+allow init userdata_sysdev:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# allow disk tuning
+allow init rootdisk_sysdev:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+###
+### neverallow rules
+###
+
+# The init domain is only entered via an exec based transition from the
+# kernel domain, never via setcon().
+neverallow domain init:process dyntransition;
+neverallow { domain -kernel } init:process transition;
+neverallow init { file_type fs_type -init_exec }:file entrypoint;
+
+# Never read/follow symlinks created by shell or untrusted apps.
+neverallow init shell_data_file:lnk_file read;
+neverallow init app_data_file_type:lnk_file read;
+
+# init should never execute a program without changing to another domain.
+neverallow init { file_type fs_type }:file execute_no_trans;
+
+# The use of sensitive environment variables, such as LD_PRELOAD, is disallowed
+# when init is executing other binaries. The use of LD_PRELOAD for init spawned
+# services is generally considered a no-no, as it injects libraries which the
+# binary was not expecting. This is especially problematic for APEXes. The use
+# of LD_PRELOAD via APEXes is a layering violation, and inappropriately loads
+# code into a process which wasn't expecting that code, with potentially
+# unexpected side effects. (b/140789528)
+neverallow init *:process noatsecure;
+
+# init can never add binder services
+neverallow init service_manager_type:service_manager { add find };
+# init can never list binder services
+neverallow init servicemanager:service_manager list;
+
+# Init should not be creating subdirectories in /data/local/tmp
+neverallow init shell_data_file:dir { write add_name remove_name };
+
+# Init should not access sysfs node that are not explicitly labeled.
+neverallow init sysfs:file { open write };
+
+# No domain should be allowed to ptrace init.
+neverallow * init:process ptrace;
+
+# init owns the root of /data
+# TODO(b/140259336) We want to remove vendor_init
+# TODO(b/141108496) We want to remove toolbox
+neverallow { domain -init -toolbox -vendor_init -vold } system_data_root_file:dir { write add_name remove_name };
+#line 1 "system/sepolicy/public/inputflinger.te"
+# inputflinger
+type inputflinger, domain;
+type inputflinger_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow inputflinger servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager inputflinger:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager inputflinger:dir search;
+#line 5
+allow servicemanager inputflinger:file { read open };
+#line 5
+allow servicemanager inputflinger:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+#line 6
+typeattribute inputflinger binderservicedomain;
+#line 6
+
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow inputflinger system_server:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow system_server inputflinger:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow inputflinger system_server:fd use;
+#line 8
+
+
+
+#line 10
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 10
+# deprecated.
+#line 10
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 10
+allow inputflinger sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 10
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 10
+allow inputflinger self:{ capability2 cap2_userns } block_suspend;
+#line 10
+# system_suspend permissions
+#line 10
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow inputflinger system_suspend_server:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow system_suspend_server inputflinger:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow inputflinger system_suspend_server:fd use;
+#line 10
+
+#line 10
+allow inputflinger system_suspend_hwservice:hwservice_manager find;
+#line 10
+# halclientdomain permissions
+#line 10
+
+#line 10
+# Call the hwservicemanager and transfer references to it.
+#line 10
+allow inputflinger hwservicemanager:binder { call transfer };
+#line 10
+# Allow hwservicemanager to send out callbacks
+#line 10
+allow hwservicemanager inputflinger:binder { call transfer };
+#line 10
+# hwservicemanager performs getpidcon on clients.
+#line 10
+allow hwservicemanager inputflinger:dir search;
+#line 10
+allow hwservicemanager inputflinger:file { read open map };
+#line 10
+allow hwservicemanager inputflinger:process getattr;
+#line 10
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 10
+# all domains in domain.te.
+#line 10
+
+#line 10
+
+#line 10
+allow inputflinger hwservicemanager_prop:file { getattr open read map };
+#line 10
+
+#line 10
+allow inputflinger hidl_manager_hwservice:hwservice_manager find;
+#line 10
+# AIDL suspend hal permissions
+#line 10
+allow inputflinger hal_system_suspend_service:service_manager find;
+#line 10
+
+#line 10
+# Call the servicemanager and transfer references to it.
+#line 10
+allow inputflinger servicemanager:binder { call transfer };
+#line 10
+# Allow servicemanager to send out callbacks
+#line 10
+allow servicemanager inputflinger:binder { call transfer };
+#line 10
+# servicemanager performs getpidcon on clients.
+#line 10
+allow servicemanager inputflinger:dir search;
+#line 10
+allow servicemanager inputflinger:file { read open };
+#line 10
+allow servicemanager inputflinger:process getattr;
+#line 10
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 10
+# all domains in domain.te.
+#line 10
+
+#line 10
+
+
+allow inputflinger input_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow inputflinger input_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+
+#line 15
+allow inputflinger cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow inputflinger cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 15
+
+
+#line 16
+allow inputflinger cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 16
+allow inputflinger cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 16
+
+#line 1 "system/sepolicy/public/installd.te"
+# installer daemon
+type installd, domain;
+type installd_exec, system_file_type, exec_type, file_type;
+typeattribute installd mlstrustedsubject;
+allow installd self:{ capability cap_userns } { chown dac_override dac_read_search fowner fsetid setgid setuid sys_admin kill };
+
+# Allow labeling of files under /data/app/com.example/oat/
+allow installd dalvikcache_data_file:dir relabelto;
+allow installd dalvikcache_data_file:file { relabelto link };
+
+# Allow movement of APK files between volumes
+allow installd apk_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom };
+allow installd apk_data_file:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom link };
+allow installd apk_data_file:lnk_file { create { getattr open read ioctl lock map watch watch_reads } unlink };
+
+allow installd asec_apk_file:file { getattr open read ioctl lock map watch watch_reads };
+allow installd apk_tmp_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+allow installd apk_tmp_file:dir { relabelfrom { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } };
+allow installd oemfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow installd oemfs:file { getattr open read ioctl lock map watch watch_reads };
+allow installd cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow installd cgroup_v2:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow installd mnt_expand_file:dir { search getattr };
+# Check validity of SELinux context before use.
+
+#line 25
+
+#line 25
+allow installd selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 25
+allow installd selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 25
+
+#line 25
+allow installd selinuxfs:file { open append write lock map };
+#line 25
+allow installd kernel:security check_context;
+#line 25
+
+
+
+#line 27
+allow installd rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 27
+allow installd rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 27
+
+# Scan through APKs in /system/app and /system/priv-app
+
+#line 29
+allow installd system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 29
+allow installd system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 29
+
+# Scan through APKs in /vendor/app
+
+#line 31
+allow installd vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 31
+allow installd vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 31
+
+# Scan through JARs in /vendor/framework
+
+#line 33
+allow installd vendor_framework_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow installd vendor_framework_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 33
+
+# Scan through Runtime Resource Overlay APKs in /vendor/overlay
+
+#line 35
+allow installd vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 35
+allow installd vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 35
+
+# Vendor overlay can be found in vendor apex
+allow installd vendor_apex_metadata_file:dir { getattr search };
+# Get file context
+allow installd file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+# Get seapp_context
+allow installd seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Search /data/app-asec and stat files in it.
+allow installd asec_image_file:dir search;
+allow installd asec_image_file:file getattr;
+
+# Required to initially create subdirectories of /data/user/$userId
+# and lib symlinks before the setfilecon call.  May want to
+# move symlink creation after setfilecon in installd.
+allow installd system_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+# Also, allow read for lnk_file so that we can process symlinks within
+# /data/user/$userId when optimizing application code.
+allow installd system_data_file:lnk_file { create getattr read setattr unlink };
+
+# Manage lower filesystem via pass_through mounts
+allow installd mnt_pass_through_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Upgrade /data/media for multi-user if necessary.
+allow installd media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow installd media_rw_data_file:file { getattr unlink };
+# restorecon new /data/media directory.
+allow installd system_data_file:dir relabelfrom;
+allow installd media_rw_data_file:dir relabelto;
+
+# Delete /data/media files through sdcardfs, instead of going behind its back
+allow installd media_userdir_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow installd tmpfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow installd storage_file:dir search;
+allow installd { sdcard_type fuse }:dir { search open read write remove_name getattr rmdir };
+allow installd { sdcard_type fuse }:file { getattr unlink };
+
+# Create app's mirror data directory in /data_mirror, and bind mount the real directory to it
+allow installd mirror_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+
+# Upgrade /data/misc/keychain for multi-user if necessary.
+allow installd system_userdir_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow installd misc_user_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow installd misc_user_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow installd keychain_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow installd keychain_data_file:file {{ getattr open read ioctl lock map watch watch_reads } unlink};
+
+# Create /data/misc/installd/layout_version.* file
+allow installd install_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow installd install_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Create files under /data/dalvik-cache.
+allow installd dalvikcache_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow installd dalvikcache_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow installd dalvikcache_data_file:lnk_file getattr;
+
+# Create files under /data/resource-cache.
+allow installd resourcecache_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow installd resourcecache_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Upgrade from unlabeled userdata.
+# Just need enough to remove and/or relabel it.
+allow installd unlabeled:dir { getattr search relabelfrom { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } rmdir };
+allow installd unlabeled:{ file lnk_file sock_file fifo_file } { getattr relabelfrom rename unlink setattr };
+# Read pkg.apk file for input during dexopt.
+allow installd unlabeled:file { getattr open read ioctl lock map watch watch_reads };
+
+# Upgrade from before system_app_data_file was used for system UID apps.
+# Just need enough to relabel it and to unlink removed package files.
+# Directory access covered by earlier rule above.
+allow installd system_data_file:{ file lnk_file sock_file fifo_file } { getattr relabelfrom unlink };
+
+# Manage /data/data subdirectories, including initially labeling them
+# upon creation via setfilecon or running restorecon_recursive,
+# setting owner/mode, creating symlinks within them, and deleting them
+# upon package uninstall.
+allow installd app_data_file_type:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom relabelto };
+allow installd app_data_file_type:{ file lnk_file sock_file fifo_file } { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom relabelto };
+
+# Allow setting extended attributes (for project quota IDs) on dirs and files
+# and to enable project ID inheritance through FS_IOC_SETFLAGS
+# Added install_data_file to be able to create file under /data/misc/installd/ioctl_check
+allowxperm installd { app_data_file_type system_data_file install_data_file}:{ dir file } ioctl {
+  0x801c581f
+  0x401c5820
+  0x80086601
+  0x40086602
+};
+
+# Similar for the files under /data/misc/profiles/
+allow installd user_profile_root_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom };
+allow installd user_profile_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow installd user_profile_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow installd user_profile_data_file:file unlink;
+
+# Allow zygote to unmount mirror directories
+allow installd labeledfs:filesystem unmount;
+
+# Files created/updated by profman dumps.
+allow installd profman_dump_data_file:dir { search add_name write };
+allow installd profman_dump_data_file:file { create setattr open write };
+
+# Create and use pty created by android_fork_execvp().
+allow installd devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# execute toybox for app relocation
+allow installd toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow installd to publish a binder service and make binder calls.
+
+#line 144
+# Call the servicemanager and transfer references to it.
+#line 144
+allow installd servicemanager:binder { call transfer };
+#line 144
+# Allow servicemanager to send out callbacks
+#line 144
+allow servicemanager installd:binder { call transfer };
+#line 144
+# servicemanager performs getpidcon on clients.
+#line 144
+allow servicemanager installd:dir search;
+#line 144
+allow servicemanager installd:file { read open };
+#line 144
+allow servicemanager installd:process getattr;
+#line 144
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 144
+# all domains in domain.te.
+#line 144
+
+
+#line 145
+  allow installd installd_service:service_manager { add find };
+#line 145
+  neverallow { domain -installd } installd_service:service_manager add;
+#line 145
+
+#line 145
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 145
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 145
+  
+#line 145
+
+allow installd dumpstate:fifo_file  { getattr write };
+
+# Allow installd to call into the system server so it can check permissions.
+
+#line 149
+# Call the server domain and optionally transfer references to it.
+#line 149
+allow installd system_server:binder { call transfer };
+#line 149
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 149
+allow system_server installd:binder transfer;
+#line 149
+# Receive and use open files from the server.
+#line 149
+allow installd system_server:fd use;
+#line 149
+
+allow installd permission_service:service_manager find;
+
+# Allow installd to read and write quotas
+allow installd block_device:dir { search };
+allow installd labeledfs:filesystem { quotaget quotamod };
+
+# Allow installd to delete from /data/preloads when trimming data caches
+# TODO b/34690396 Remove when time-based purge policy for preloads is implemented in system_server
+allow installd preloads_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+allow installd preloads_data_file:dir { { open getattr read search ioctl lock watch watch_reads } write remove_name rmdir };
+allow installd preloads_media_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+allow installd preloads_media_file:dir { { open getattr read search ioctl lock watch watch_reads } write remove_name rmdir };
+
+# Allow installd to read /proc/filesystems
+allow installd proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+#add for move app to sd card
+
+#line 167
+allow installd storage_config_prop:file { getattr open read map };
+#line 167
+
+
+# Allow installd to access apps installed on the Incremental File System
+# Accessing files on the Incremental File System uses fds opened in the context of vold.
+allow installd vold:fd use;
+
+###
+### Neverallow rules
+###
+
+# only system_server, installd, dumpstate, and servicemanager may interact with installd over binder
+neverallow { domain -system_server -dumpstate -installd } installd_service:service_manager find;
+neverallow { domain -system_server -dumpstate -servicemanager } installd:binder call;
+neverallow installd {
+    domain
+    -system_server
+    -servicemanager
+    
+}:binder call;
+#line 1 "system/sepolicy/public/isolated_app.te"
+###
+### Services with isolatedProcess=true in their manifest.
+###
+### This file defines the rules for isolated apps. An "isolated
+### app" is an APP with UID between AID_ISOLATED_START (99000)
+### and AID_ISOLATED_END (99999).
+###
+
+type isolated_app, domain;
+#line 1 "system/sepolicy/public/isolated_compute_app.te"
+type isolated_compute_app, domain;
+#line 1 "system/sepolicy/public/kernel.te"
+# Life begins with the kernel.
+type kernel, domain, mlstrustedsubject;
+
+allow kernel self:{ capability cap_userns } sys_nice;
+
+# Root fs.
+
+#line 7
+allow kernel rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow kernel rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 7
+
+
+# Used to read androidboot.selinux property
+allow kernel {
+  proc_bootconfig
+  proc_cmdline
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# Get SELinux enforcing status.
+allow kernel selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow kernel selinuxfs:file { getattr open read ioctl lock map watch watch_reads };
+
+# Get file contexts during first stage
+allow kernel file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow init relabel itself.
+allow kernel rootfs:file relabelfrom;
+allow kernel init_exec:file relabelto;
+# TODO: investigate why we need this.
+allow kernel init:process share;
+
+# cgroup filesystem initialization prior to setting the cgroup root directory label.
+allow kernel unlabeled:dir search;
+
+# Mount usbfs.
+allow kernel usbfs:filesystem mount;
+allow kernel usbfs:dir search;
+
+# Initial setenforce by init prior to switching to init domain.
+# We use dontaudit instead of allow to prevent a kernel spawned userspace
+# process from turning off SELinux once enabled.
+dontaudit kernel self:security setenforce;
+
+# Write to /proc/1/oom_adj prior to switching to init domain.
+allow kernel self:{ capability cap_userns } sys_resource;
+
+# Init reboot before switching selinux domains under certain error
+# conditions. Allow it.
+# As part of rebooting, init writes "u" to /proc/sysrq-trigger to
+# remount filesystems read-only. /data is not mounted at this point,
+# so we could ignore this. For now, we allow it.
+allow kernel self:{ capability cap_userns } sys_boot;
+allow kernel proc_sysrq:file { open append write lock map };
+
+# Allow writing to /dev/kmsg which was created prior to loading policy.
+allow kernel tmpfs:chr_file write;
+
+# Set checkreqprot by init.rc prior to switching to init domain.
+allow kernel selinuxfs:file write;
+allow kernel self:security setcheckreqprot;
+
+# kernel thread "loop0", used by the loop block device, for ASECs (b/17158723)
+allow kernel { sdcard_type fuse }:file { read write };
+
+# f_mtp driver accesses files from kernel context.
+allow kernel mediaprovider:fd use;
+
+# Allow the kernel to read OBB files from app directories. (b/17428116)
+# Kernel thread "loop0" reads a vold supplied file descriptor.
+# Fixes CTS tests:
+#  * android.os.storage.cts.StorageManagerTest#testMountAndUnmountObbNormal
+#  * android.os.storage.cts.StorageManagerTest#testMountAndUnmountTwoObbs
+allow kernel vold:fd use;
+allow kernel { app_data_file privapp_data_file }:file read;
+allow kernel asec_image_file:file read;
+
+# Allow mounting loop device in update_engine_unittests. (b/28319454)
+# and for LTP kernel tests (b/73220071)
+#line 78
+
+
+# Access to /data/media.
+# This should be removed if sdcardfs is modified to alter the secontext for its
+# accesses to the underlying FS.
+allow kernel media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow kernel media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access to /data/misc/vold/virtual_disk.
+allow kernel vold_data_file:file { read write };
+
+# Allow the kernel to read APEX file descriptors and (staged) data files;
+# Needed because APEX uses the loopback driver, which issues requests from
+# a kernel thread in earlier kernel version.
+allow kernel apexd:fd use;
+allow kernel {
+  apex_data_file
+  staging_data_file
+  vendor_apex_file
+}:file read;
+# Also allow the kernel to read/write /data/local/tmp files via loop device
+# for ApexTestCases and fiemap_image_test.
+#line 102
+
+
+# Allow the first-stage init (which is running in the kernel domain) to execute the
+# dynamic linker when it re-executes /init to switch into the second stage.
+# Until Linux 4.8, the program interpreter (dynamic linker in this case) is executed
+# before the domain is switched to the target domain. So, we need to allow the kernel
+# domain (the source domain) to execute the dynamic linker (system_file type).
+# TODO(b/110147943) remove these allow rules when we no longer need to support Linux
+# kernel older than 4.8.
+allow kernel system_file:file execute;
+# The label for the dynamic linker is rootfs in the recovery partition. This is because
+# the recovery partition which is rootfs does not support xattr and thus labeling can't be
+# done at build-time. All files are by default labeled as rootfs upon booting.
+#line 117
+
+
+# required by VTS lidbm unit test
+allow kernel appdomain_tmpfs:file { read write };
+
+###
+### neverallow rules
+###
+
+# The initial task starts in the kernel domain (assigned via
+# initial_sid_contexts), but nothing ever transitions to it.
+neverallow * kernel:process { transition dyntransition };
+
+# The kernel domain is never entered via an exec, nor should it
+# ever execute a program outside the rootfs without changing to another domain.
+# If you encounter an execute_no_trans denial on the kernel domain, then
+# possible causes include:
+# - The program is a kernel usermodehelper.  In this case, define a domain
+#   for the program and domain_auto_trans() to it.
+# - You are running an exploit which switched to the init task credentials
+#   and is then trying to exec a shell or other program.  You lose!
+neverallow kernel *:file { entrypoint execute_no_trans };
+
+# the kernel should not be accessing files owned by other users.
+# Instead of adding dac_{read_search,override}, fix the unix permissions
+# on files being accessed.
+neverallow kernel self:{ capability cap_userns } { dac_override dac_read_search };
+
+# Nobody should be ptracing kernel threads
+neverallow * kernel:process ptrace;
+#line 1 "system/sepolicy/public/keystore.te"
+type keystore, domain, keystore2_key_type;
+type keystore_exec, system_file_type, exec_type, file_type;
+
+# keystore daemon
+typeattribute keystore mlstrustedsubject;
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow keystore servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager keystore:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager keystore:dir search;
+#line 6
+allow servicemanager keystore:file { read open };
+#line 6
+allow servicemanager keystore:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+typeattribute keystore binderservicedomain;
+#line 7
+
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow keystore remote_provisioning_service_server:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow remote_provisioning_service_server keystore:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow keystore remote_provisioning_service_server:fd use;
+#line 8
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow keystore system_server:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow system_server keystore:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow keystore system_server:fd use;
+#line 9
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow keystore wificond:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow wificond keystore:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow keystore wificond:fd use;
+#line 10
+
+
+allow keystore keystore_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow keystore keystore_data_file:{ file lnk_file sock_file fifo_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow keystore keystore_exec:file { getattr };
+
+
+#line 16
+  allow keystore keystore_service:service_manager { add find };
+#line 16
+  neverallow { domain -keystore } keystore_service:service_manager add;
+#line 16
+
+#line 16
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 16
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 16
+  
+#line 16
+
+allow keystore sec_key_att_app_id_provider_service:service_manager find;
+allow keystore dropbox_service:service_manager find;
+allow keystore remote_provisioning_service:service_manager find;
+
+#line 20
+  allow keystore apc_service:service_manager { add find };
+#line 20
+  neverallow { domain -keystore } apc_service:service_manager add;
+#line 20
+
+#line 20
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 20
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 20
+  
+#line 20
+
+
+#line 21
+  allow keystore keystore_compat_hal_service:service_manager { add find };
+#line 21
+  neverallow { domain -keystore } keystore_compat_hal_service:service_manager add;
+#line 21
+
+#line 21
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 21
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 21
+  
+#line 21
+
+
+#line 22
+  allow keystore authorization_service:service_manager { add find };
+#line 22
+  neverallow { domain -keystore } authorization_service:service_manager add;
+#line 22
+
+#line 22
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 22
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 22
+  
+#line 22
+
+
+#line 23
+  allow keystore keystore_maintenance_service:service_manager { add find };
+#line 23
+  neverallow { domain -keystore } keystore_maintenance_service:service_manager add;
+#line 23
+
+#line 23
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 23
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 23
+  
+#line 23
+
+
+#line 24
+  allow keystore keystore_metrics_service:service_manager { add find };
+#line 24
+  neverallow { domain -keystore } keystore_metrics_service:service_manager add;
+#line 24
+
+#line 24
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 24
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 24
+  
+#line 24
+
+
+#line 25
+  allow keystore legacykeystore_service:service_manager { add find };
+#line 25
+  neverallow { domain -keystore } legacykeystore_service:service_manager add;
+#line 25
+
+#line 25
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 25
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 25
+  
+#line 25
+
+
+# Check SELinux permissions.
+
+#line 28
+
+#line 28
+allow keystore selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 28
+allow keystore selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 28
+
+#line 28
+allow keystore selinuxfs:file { open append write lock map };
+#line 28
+allow keystore kernel:security compute_av;
+#line 28
+allow keystore self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 28
+
+
+
+#line 30
+allow keystore cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 30
+allow keystore cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 30
+
+
+#line 31
+allow keystore cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 31
+allow keystore cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 31
+
+
+###
+### Neverallow rules
+###
+### Protect ourself from others
+###
+
+neverallow { domain -keystore } keystore_data_file:dir ~{ open create read getattr setattr search relabelto ioctl };
+neverallow { domain -keystore } keystore_data_file:{ file lnk_file sock_file fifo_file } ~{ relabelto getattr };
+
+neverallow { domain -keystore -init } keystore_data_file:dir *;
+neverallow { domain -keystore -init } keystore_data_file:{ file lnk_file sock_file fifo_file } *;
+
+# TODO(b/186868271): Remove the crash dump exception soon-ish (maybe by May 14, 2021?)
+neverallow { domain  } keystore:process ptrace;
+
+# The software KeyMint implementation used in km_compat needs
+# to read the vendor security patch level.
+
+#line 50
+allow keystore vendor_security_patch_level_prop:file { getattr open read map };
+#line 50
+;
+
+# Allow keystore to read its vendor configuration
+
+#line 53
+allow keystore keystore_config_prop:file { getattr open read map };
+#line 53
+
+#line 1 "system/sepolicy/public/keystore_keys.te"
+# A keystore2 namespace for WI-FI.
+type wifi_key, keystore2_key_type;
+#line 1 "system/sepolicy/public/llkd.te"
+# llkd Live LocK Daemon
+type llkd, domain, mlstrustedsubject;
+type llkd_exec, system_file_type, exec_type, file_type;
+#line 1 "system/sepolicy/public/lmkd.te"
+# lmkd low memory killer daemon
+type lmkd, domain, mlstrustedsubject;
+type lmkd_exec, system_file_type, exec_type, file_type;
+
+allow lmkd self:{ capability cap_userns } { dac_override dac_read_search sys_resource kill };
+
+# lmkd locks itself in memory, to prevent it from being
+# swapped out and unable to kill other memory hogs.
+# system/core commit b28ff9131363f7b4a698990da5748b2a88c3ed35
+# b/16236289
+allow lmkd self:{ capability cap_userns } ipc_lock;
+
+## Open and write to /proc/PID/oom_score_adj and /proc/PID/timerslack_ns
+## TODO: maybe scope this down?
+
+#line 15
+allow lmkd domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow lmkd domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 15
+
+allow lmkd domain:file write;
+
+## Writes to /sys/module/lowmemorykiller/parameters/minfree
+
+#line 19
+allow lmkd sysfs_lowmemorykiller:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow lmkd sysfs_lowmemorykiller:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 19
+
+allow lmkd sysfs_lowmemorykiller:file { open append write lock map };
+
+# setsched and send kill signals to any registered process
+allow lmkd domain:process { setsched sigkill };
+# TODO: delete this line b/131761776
+allow lmkd kernel:process { setsched };
+
+# Clean up old cgroups
+allow lmkd cgroup:dir { remove_name rmdir };
+allow lmkd cgroup_v2:dir { remove_name rmdir };
+
+# Allow to read memcg stats
+allow lmkd cgroup:file { getattr open read ioctl lock map watch watch_reads };
+allow lmkd cgroup_v2:file { getattr open read ioctl lock map watch watch_reads };
+
+# Set self to SCHED_FIFO
+allow lmkd self:{ capability cap_userns } sys_nice;
+
+allow lmkd proc_zoneinfo:file { getattr open read ioctl lock map watch watch_reads };
+allow lmkd proc_vmstat:file { getattr open read ioctl lock map watch watch_reads };
+
+# live lock watchdog process allowed to look through /proc/
+allow lmkd domain:dir { search open read };
+allow lmkd domain:file { open read };
+
+# live lock watchdog process allowed to dump process trace and
+# reboot because orderly shutdown may not be possible.
+allow lmkd proc_sysrq:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Read /proc/lowmemorykiller
+allow lmkd proc_lowmemorykiller:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read /proc/meminfo
+allow lmkd proc_meminfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read /proc/pressure/cpu and /proc/pressure/io
+allow lmkd proc_pressure_cpu:file { getattr open read ioctl lock map watch watch_reads };
+allow lmkd proc_pressure_io:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read/Write /proc/pressure/memory
+allow lmkd proc_pressure_mem:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow lmkd to connect during reinit.
+allow lmkd lmkd_socket:sock_file write;
+
+# Allow lmkd to write to statsd.
+
+#line 66
+allow lmkd statsdw_socket:sock_file write;
+#line 66
+allow lmkd statsd:unix_dgram_socket sendto;
+#line 66
+
+
+### neverallow rules
+
+# never honor LD_PRELOAD
+neverallow * lmkd:process noatsecure;
+neverallow lmkd self:{ capability cap_userns } sys_ptrace;
+#line 1 "system/sepolicy/public/logd.te"
+# android user-space log manager
+type logd, domain, mlstrustedsubject;
+type logd_exec, system_file_type, exec_type, file_type;
+
+# Read access to pseudo filesystems.
+
+#line 6
+allow logd cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow logd cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 6
+
+
+#line 7
+allow logd cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow logd cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 7
+
+
+#line 8
+allow logd proc_kmsg:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow logd proc_kmsg:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 8
+
+
+#line 9
+allow logd proc_meminfo:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow logd proc_meminfo:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 9
+
+
+allow logd self:{ capability cap_userns } { setuid setgid setpcap sys_nice audit_control };
+allow logd self:{ capability2 cap2_userns } syslog;
+allow logd self:netlink_audit_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_write };
+allow logd kernel:system syslog_read;
+allow logd kmsg_device:chr_file { getattr { open append write lock map } };
+allow logd system_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+allow logd packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+allow logd pstorefs:dir search;
+allow logd pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+#line 24
+
+allow logd runtime_event_log_tags_file:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+
+#line 27
+allow logd domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 27
+allow logd domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 27
+
+
+allow logd kernel:system syslog_mod;
+
+
+#line 31
+# Group AID_LOG checked by filesystem & logd
+#line 31
+# to permit control commands
+#line 31
+
+#line 31
+allow logd logd_socket:sock_file write;
+#line 31
+allow logd logd:unix_stream_socket connectto;
+#line 31
+
+#line 31
+
+
+#line 32
+allow logd runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 32
+
+
+allow runtime_event_log_tags_file tmpfs:filesystem associate;
+# Typically harmlessly blindly trying to access via liblog
+# event tag mapping while in the untrusted_app domain.
+# Access for that domain is controlled and gated via the
+# event log tag service (albeit at a performance penalty,
+# expected to be locally cached).
+dontaudit domain runtime_event_log_tags_file:file { map open read };
+
+# Logd sets defaults if certain properties are empty.
+
+#line 43
+
+#line 43
+allow logd property_socket:sock_file write;
+#line 43
+allow logd init:unix_stream_socket connectto;
+#line 43
+
+#line 43
+allow logd logd_prop:property_service set;
+#line 43
+
+#line 43
+allow logd logd_prop:file { getattr open read map };
+#line 43
+
+#line 43
+
+
+###
+### Neverallow rules
+###
+### logd should NEVER do any of this
+
+# Block device access.
+neverallow logd dev_type:blk_file { read write };
+
+# ptrace any other app
+neverallow logd domain:process ptrace;
+
+# ... and nobody may ptrace me (except on userdebug or eng builds)
+neverallow { domain  } logd:process ptrace;
+
+# Write to /system.
+neverallow logd system_file_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# Write to files in /data/data or system files on /data
+neverallow logd {
+    app_data_file_type
+    system_data_file
+    packages_list_file
+    -shell_data_file # for bugreports
+}:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# Only init is allowed to enter the logd domain via exec()
+neverallow { domain -init } logd:process transition;
+neverallow * logd:process dyntransition;
+
+# protect the event-log-tags file
+neverallow {
+  domain
+  -init
+  -logd
+} runtime_event_log_tags_file:file { append create link unlink relabelfrom rename setattr write };
+#line 1 "system/sepolicy/public/logpersist.te"
+# android debug logging, logpersist domains
+type logpersist, domain;
+
+# logcatd is a shell script that execs logcat with various parameters.
+allow logpersist shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow logpersist logcat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+###
+### Neverallow rules
+###
+### logpersist should NEVER do any of this
+
+# Block device access.
+neverallow logpersist dev_type:blk_file { read write };
+
+# ptrace any other app
+neverallow logpersist domain:process ptrace;
+
+# Write to files in /data/data or system files on /data except misc_logd_file
+neverallow logpersist { app_data_file_type system_data_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# Only init should be allowed to enter the logpersist domain via exec()
+# Following is a list of debug domains we know that transition to logpersist
+# neverallow_with_undefined_domains {
+#   domain
+#   -init       # goldfish, logcatd, raft
+#   -mmi        # bat, mtp8996, msmcobalt
+#   -system_app # Smith.apk
+# } logpersist:process transition;
+neverallow * logpersist:process dyntransition;
+
+allowxperm logpersist misc_logd_file:file ioctl {
+  0xf512
+  0x40086602
+};
+#line 1 "system/sepolicy/public/mdnsd.te"
+# mdns daemon
+type mdnsd, domain;
+#line 1 "system/sepolicy/public/mediadrmserver.te"
+# mediadrmserver - mediadrm daemon
+type mediadrmserver, domain;
+type mediadrmserver_exec, system_file_type, exec_type, file_type;
+
+typeattribute mediadrmserver mlstrustedsubject;
+
+
+#line 7
+typeattribute mediadrmserver netdomain;
+#line 7
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow mediadrmserver servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager mediadrmserver:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager mediadrmserver:dir search;
+#line 8
+allow servicemanager mediadrmserver:file { read open };
+#line 8
+allow servicemanager mediadrmserver:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow mediadrmserver binderservicedomain:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow binderservicedomain mediadrmserver:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow mediadrmserver binderservicedomain:fd use;
+#line 9
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow mediadrmserver appdomain:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow appdomain mediadrmserver:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow mediadrmserver appdomain:fd use;
+#line 10
+
+
+#line 11
+typeattribute mediadrmserver binderservicedomain;
+#line 11
+
+
+#line 12
+typeattribute mediadrmserver halclientdomain;
+#line 12
+typeattribute mediadrmserver hal_drm_client;
+#line 12
+
+#line 12
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 12
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 12
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 12
+
+#line 12
+typeattribute mediadrmserver hal_drm;
+#line 12
+# Find passthrough HAL implementations
+#line 12
+allow hal_drm system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_drm vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_drm vendor_file:file { read open getattr execute map };
+#line 12
+
+#line 12
+
+
+
+#line 14
+  allow mediadrmserver mediadrmserver_service:service_manager { add find };
+#line 14
+  neverallow { domain -mediadrmserver } mediadrmserver_service:service_manager add;
+#line 14
+
+#line 14
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 14
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 14
+  
+#line 14
+
+allow mediadrmserver mediaserver_service:service_manager find;
+allow mediadrmserver mediametrics_service:service_manager find;
+allow mediadrmserver processinfo_service:service_manager find;
+allow mediadrmserver surfaceflinger_service:service_manager find;
+allow mediadrmserver system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# TODO(b/80317992): remove
+
+#line 22
+# Call the server domain and optionally transfer references to it.
+#line 22
+allow mediadrmserver hal_omx_server:binder { call transfer };
+#line 22
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 22
+allow hal_omx_server mediadrmserver:binder transfer;
+#line 22
+# Receive and use open files from the server.
+#line 22
+allow mediadrmserver hal_omx_server:fd use;
+#line 22
+
+
+###
+### neverallow rules
+###
+
+# mediadrmserver should never execute any executable without a
+# domain transition
+neverallow mediadrmserver { file_type fs_type }:file execute_no_trans;
+
+# do not allow privileged socket ioctl commands
+neverallowxperm mediadrmserver domain:{ rawip_socket tcp_socket udp_socket } ioctl 
+#line 33
+{
+#line 33
+# qualcomm rmnet ioctls
+#line 33
+0x00006900 0x00006902
+#line 33
+# socket ioctls
+#line 33
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 33
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 33
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 33
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 33
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 33
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 33
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 33
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 33
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 33
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 33
+# device and protocol specific ioctls
+#line 33
+0x000089f0-0x000089ff
+#line 33
+0x000089e0-0x000089ef
+#line 33
+# Wireless extension ioctls
+#line 33
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 33
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 33
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 33
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 33
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 33
+0x00008b34 0x00008b35 0x00008b36
+#line 33
+# Dev private ioctl i.e. hardware specific ioctls
+#line 33
+0x00008be0-0x00008bff
+#line 33
+};
+#line 1 "system/sepolicy/public/mediaextractor.te"
+# mediaextractor - multimedia daemon
+type mediaextractor, domain;
+type mediaextractor_exec, system_file_type, exec_type, file_type;
+type mediaextractor_tmpfs, file_type;
+
+typeattribute mediaextractor mlstrustedsubject;
+
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow mediaextractor servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager mediaextractor:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager mediaextractor:dir search;
+#line 8
+allow servicemanager mediaextractor:file { read open };
+#line 8
+allow servicemanager mediaextractor:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow mediaextractor binderservicedomain:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow binderservicedomain mediaextractor:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow mediaextractor binderservicedomain:fd use;
+#line 9
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow mediaextractor appdomain:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow appdomain mediaextractor:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow mediaextractor appdomain:fd use;
+#line 10
+
+
+#line 11
+typeattribute mediaextractor binderservicedomain;
+#line 11
+
+
+
+#line 13
+  allow mediaextractor mediaextractor_service:service_manager { add find };
+#line 13
+  neverallow { domain -mediaextractor } mediaextractor_service:service_manager add;
+#line 13
+
+#line 13
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 13
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 13
+  
+#line 13
+
+allow mediaextractor mediametrics_service:service_manager find;
+allow mediaextractor hidl_token_hwservice:hwservice_manager find;
+
+allow mediaextractor system_server:fd use;
+
+
+#line 19
+typeattribute mediaextractor halclientdomain;
+#line 19
+typeattribute mediaextractor hal_cas_client;
+#line 19
+
+#line 19
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 19
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 19
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 19
+
+#line 19
+typeattribute mediaextractor hal_cas;
+#line 19
+# Find passthrough HAL implementations
+#line 19
+allow hal_cas system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_cas vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_cas vendor_file:file { read open getattr execute map };
+#line 19
+
+#line 19
+
+
+#line 20
+typeattribute mediaextractor halclientdomain;
+#line 20
+typeattribute mediaextractor hal_allocator_client;
+#line 20
+
+#line 20
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 20
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 20
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 20
+
+#line 20
+typeattribute mediaextractor hal_allocator;
+#line 20
+# Find passthrough HAL implementations
+#line 20
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 20
+
+#line 20
+
+
+
+#line 22
+allow mediaextractor cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow mediaextractor cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 22
+
+
+#line 23
+allow mediaextractor cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 23
+allow mediaextractor cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 23
+
+allow mediaextractor proc_meminfo:file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 26
+
+#line 26
+allow mediaextractor anr_data_file:file append;
+#line 26
+allow mediaextractor dumpstate:fd use;
+#line 26
+allow mediaextractor incidentd:fd use;
+#line 26
+# TODO: Figure out why write is needed.
+#line 26
+allow mediaextractor dumpstate:fifo_file { append write };
+#line 26
+allow mediaextractor incidentd:fifo_file { append write };
+#line 26
+allow mediaextractor system_server:fifo_file { append write };
+#line 26
+allow mediaextractor tombstoned:unix_stream_socket connectto;
+#line 26
+allow mediaextractor tombstoned:fd use;
+#line 26
+allow mediaextractor tombstoned_crash_socket:sock_file write;
+#line 26
+allow mediaextractor tombstone_data_file:file append;
+#line 26
+
+
+# allow mediaextractor read permissions for file sources
+allow mediaextractor { sdcard_type fuse }:file { getattr read };
+allow mediaextractor media_rw_data_file:file { getattr read };
+allow mediaextractor { app_data_file privapp_data_file }:file { getattr read };
+
+# Read resources from open apk files passed over Binder
+allow mediaextractor apk_data_file:file { read getattr };
+allow mediaextractor asec_apk_file:file { read getattr };
+allow mediaextractor ringtone_file:file { read getattr };
+
+# overlay package access
+allow mediaextractor vendor_overlay_file:file { read map };
+
+# scan extractor library directory to dynamically load extractors
+allow mediaextractor system_file:dir { read open };
+
+###
+### neverallow rules
+###
+
+# mediaextractor should never execute any executable without a
+# domain transition
+neverallow mediaextractor { file_type fs_type }:file execute_no_trans;
+
+# The goal of the mediaserver split is to place media processing code into
+# restrictive sandboxes with limited responsibilities and thus limited
+# permissions. Example: Audioserver is only responsible for controlling audio
+# hardware and processing audio content. Cameraserver does the same for camera
+# hardware/content. Etc.
+#
+# Media processing code is inherently risky and thus should have limited
+# permissions and be isolated from the rest of the system and network.
+# Lengthier explanation here:
+# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
+neverallow mediaextractor domain:{ udp_socket rawip_socket } *;
+neverallow mediaextractor { domain  }:tcp_socket *;
+
+# mediaextractor should not be opening /data files directly. Any files
+# it touches (with a few exceptions) need to be passed to it via a file
+# descriptor opened outside the process.
+neverallow mediaextractor {
+  data_file_type
+   # for loading media extractor plugins
+  
+}:file open;
+#line 1 "system/sepolicy/public/mediametrics.te"
+# mediametrics - daemon for collecting media.metrics data
+type mediametrics, domain;
+type mediametrics_exec, system_file_type, exec_type, file_type;
+
+
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow mediametrics servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager mediametrics:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager mediametrics:dir search;
+#line 6
+allow servicemanager mediametrics:file { read open };
+#line 6
+allow servicemanager mediametrics:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow mediametrics binderservicedomain:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow binderservicedomain mediametrics:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow mediametrics binderservicedomain:fd use;
+#line 7
+
+
+#line 8
+typeattribute mediametrics binderservicedomain;
+#line 8
+
+
+
+#line 10
+  allow mediametrics mediametrics_service:service_manager { add find };
+#line 10
+  neverallow { domain -mediametrics } mediametrics_service:service_manager add;
+#line 10
+
+#line 10
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 10
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 10
+  
+#line 10
+
+
+allow mediametrics system_server:fd use;
+
+
+#line 14
+allow mediametrics cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 14
+allow mediametrics cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 14
+
+
+#line 15
+allow mediametrics cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow mediametrics cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 15
+
+allow mediametrics proc_meminfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# allows interactions with dumpsys to GMScore
+allow mediametrics { app_data_file privapp_data_file }:file write;
+
+# allow access to package manager for uid->apk mapping
+allow mediametrics package_native_service:service_manager find;
+
+# Allow metrics service to send information to statsd socket.
+
+#line 25
+allow mediametrics statsdw_socket:sock_file write;
+#line 25
+allow mediametrics statsd:unix_dgram_socket sendto;
+#line 25
+
+
+###
+### neverallow rules
+###
+
+# mediametrics should never execute any executable without a
+# domain transition
+neverallow mediametrics { file_type fs_type }:file execute_no_trans;
+
+# The goal of the mediaserver split is to place media processing code into
+# restrictive sandboxes with limited responsibilities and thus limited
+# permissions. Example: Audioserver is only responsible for controlling audio
+# hardware and processing audio content. Cameraserver does the same for camera
+# hardware/content. Etc.
+#
+# Media processing code is inherently risky and thus should have limited
+# permissions and be isolated from the rest of the system and network.
+# Lengthier explanation here:
+# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
+neverallow mediametrics domain:{ udp_socket rawip_socket } *;
+neverallow mediametrics { domain  }:tcp_socket *;
+#line 1 "system/sepolicy/public/mediaprovider.te"
+###
+### A domain for android.process.media, which contains both
+### MediaProvider and DownloadProvider and associated services.
+###
+
+type mediaprovider, domain;
+#line 1 "system/sepolicy/public/mediaserver.te"
+# mediaserver - multimedia daemon
+type mediaserver, domain;
+type mediaserver_exec, system_file_type, exec_type, file_type;
+type mediaserver_tmpfs, file_type;
+
+typeattribute mediaserver mlstrustedsubject;
+
+
+#line 8
+typeattribute mediaserver netdomain;
+#line 8
+
+
+
+#line 10
+allow mediaserver sdcard_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow mediaserver sdcard_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 10
+
+
+#line 11
+allow mediaserver fuse:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow mediaserver fuse:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 11
+
+
+#line 12
+allow mediaserver cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow mediaserver cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 12
+
+
+#line 13
+allow mediaserver cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 13
+allow mediaserver cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 13
+
+
+# stat /proc/self
+allow mediaserver proc:lnk_file getattr;
+
+# open /vendor/lib/mediadrm
+allow mediaserver system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+#line 24
+
+
+
+#line 26
+# Call the servicemanager and transfer references to it.
+#line 26
+allow mediaserver servicemanager:binder { call transfer };
+#line 26
+# Allow servicemanager to send out callbacks
+#line 26
+allow servicemanager mediaserver:binder { call transfer };
+#line 26
+# servicemanager performs getpidcon on clients.
+#line 26
+allow servicemanager mediaserver:dir search;
+#line 26
+allow servicemanager mediaserver:file { read open };
+#line 26
+allow servicemanager mediaserver:process getattr;
+#line 26
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 26
+# all domains in domain.te.
+#line 26
+
+
+#line 27
+# Call the server domain and optionally transfer references to it.
+#line 27
+allow mediaserver binderservicedomain:binder { call transfer };
+#line 27
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 27
+allow binderservicedomain mediaserver:binder transfer;
+#line 27
+# Receive and use open files from the server.
+#line 27
+allow mediaserver binderservicedomain:fd use;
+#line 27
+
+
+#line 28
+# Call the server domain and optionally transfer references to it.
+#line 28
+allow mediaserver appdomain:binder { call transfer };
+#line 28
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 28
+allow appdomain mediaserver:binder transfer;
+#line 28
+# Receive and use open files from the server.
+#line 28
+allow mediaserver appdomain:fd use;
+#line 28
+
+
+#line 29
+typeattribute mediaserver binderservicedomain;
+#line 29
+
+
+allow mediaserver media_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow mediaserver media_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow mediaserver { app_data_file privapp_data_file }:file { append getattr ioctl lock map read write };
+allow mediaserver { sdcard_type fuse }:file write;
+allow mediaserver gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow mediaserver gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow mediaserver video_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow mediaserver video_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Read resources from open apk files passed over Binder.
+allow mediaserver apk_data_file:file { read getattr };
+allow mediaserver asec_apk_file:file { read getattr };
+allow mediaserver ringtone_file:file { read getattr };
+
+# Read /data/data/com.android.providers.telephony files passed over Binder.
+allow mediaserver radio_data_file:file { read getattr };
+
+# Use pipes passed over Binder from app domains.
+allow mediaserver appdomain:fifo_file { getattr read write };
+
+allow mediaserver rpmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Inter System processes communicate over named pipe (FIFO)
+allow mediaserver system_server:fifo_file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 56
+allow mediaserver media_rw_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 56
+allow mediaserver media_rw_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 56
+
+
+# Grant access to read files on appfuse.
+allow mediaserver app_fuse_file:file { read getattr };
+
+# Needed on some devices for playing DRM protected content,
+# but seems expected and appropriate for all devices.
+
+#line 63
+allow mediaserver drmserver_socket:sock_file write;
+#line 63
+allow mediaserver drmserver:unix_stream_socket connectto;
+#line 63
+
+
+# Needed on some devices for playing audio on paired BT device,
+# but seems appropriate for all devices.
+
+#line 67
+allow mediaserver bluetooth_socket:sock_file write;
+#line 67
+allow mediaserver bluetooth:unix_stream_socket connectto;
+#line 67
+
+
+# Needed for mediaserver to send information to statsd socket.
+
+#line 70
+allow mediaserver statsdw_socket:sock_file write;
+#line 70
+allow mediaserver statsd:unix_dgram_socket sendto;
+#line 70
+
+
+
+#line 72
+  allow mediaserver mediaserver_service:service_manager { add find };
+#line 72
+  neverallow { domain -mediaserver } mediaserver_service:service_manager add;
+#line 72
+
+#line 72
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 72
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 72
+  
+#line 72
+
+allow mediaserver activity_service:service_manager find;
+allow mediaserver appops_service:service_manager find;
+allow mediaserver audio_service:service_manager find;
+allow mediaserver audioserver_service:service_manager find;
+allow mediaserver cameraserver_service:service_manager find;
+allow mediaserver batterystats_service:service_manager find;
+allow mediaserver drmserver_service:service_manager find;
+allow mediaserver mediaextractor_service:service_manager find;
+allow mediaserver mediametrics_service:service_manager find;
+allow mediaserver media_session_service:service_manager find;
+allow mediaserver package_native_service:service_manager find;
+allow mediaserver permission_service:service_manager find;
+allow mediaserver permission_checker_service:service_manager find;
+allow mediaserver power_service:service_manager find;
+allow mediaserver processinfo_service:service_manager find;
+allow mediaserver scheduling_policy_service:service_manager find;
+allow mediaserver surfaceflinger_service:service_manager find;
+
+# for ModDrm/MediaPlayer
+allow mediaserver mediadrmserver_service:service_manager find;
+
+# For hybrid interfaces
+allow mediaserver hidl_token_hwservice:hwservice_manager find;
+
+# /oem access
+allow mediaserver oemfs:dir search;
+allow mediaserver oemfs:file { getattr open read ioctl lock map watch watch_reads };
+
+# /oem boot animation file
+allow mediaserver bootanim_oem_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# /vendor apk access
+allow mediaserver vendor_app_file:file { read map getattr };
+
+
+#line 107
+  allow drmserver mediaserver:dir search;
+#line 107
+  allow drmserver mediaserver:file { read open };
+#line 107
+  allow drmserver mediaserver:process getattr;
+#line 107
+
+allow mediaserver drmserver:drmservice {
+    consumeRights
+    setPlaybackStatus
+    openDecryptSession
+    closeDecryptSession
+    initializeDecryptUnit
+    decrypt
+    finalizeDecryptUnit
+    pread
+};
+
+# only allow unprivileged socket ioctl commands
+allowxperm mediaserver self:{ rawip_socket tcp_socket udp_socket }
+  ioctl { 
+#line 121
+{
+#line 121
+# Socket ioctls for gathering information about the interface
+#line 121
+0x00008906 0x00008907
+#line 121
+0x00008910 0x00008912 0x00008913 0x00008915 0x00008917 0x00008919
+#line 121
+0x0000891b 0x00008921 0x00008933 0x00008938 0x00008942
+#line 121
+# Wireless extension ioctls. Primarily get functions.
+#line 121
+0x00008b01 0x00008b05 0x00008b07 0x00008b09 0x00008b0b 0x00008b0d
+#line 121
+0x00008b0f 0x00008b11 0x00008b12 0x00008b13 0x00008b21 0x00008b23
+#line 121
+0x00008b25 0x00008b27 0x00008b29 0x00008b2d
+#line 121
+} {
+#line 121
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 121
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 121
+} };
+
+# Access to /data/media.
+# This should be removed if sdcardfs is modified to alter the secontext for its
+# accesses to the underlying FS.
+allow mediaserver media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow mediaserver media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access to media in /data/preloads
+allow mediaserver preloads_media_file:file { getattr read ioctl };
+
+allow mediaserver ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow mediaserver dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow mediaserver dmabuf_system_secure_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow mediaserver hal_graphics_allocator:fd use;
+allow mediaserver hal_graphics_composer:fd use;
+allow mediaserver hal_camera:fd use;
+
+allow mediaserver system_server:fd use;
+
+# b/120491318 allow mediaserver to access void:fd
+allow mediaserver vold:fd use;
+
+# overlay package access
+allow mediaserver vendor_overlay_file:file { read getattr map };
+
+
+#line 147
+typeattribute mediaserver halclientdomain;
+#line 147
+typeattribute mediaserver hal_allocator_client;
+#line 147
+
+#line 147
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 147
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 147
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 147
+
+#line 147
+typeattribute mediaserver hal_allocator;
+#line 147
+# Find passthrough HAL implementations
+#line 147
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 147
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 147
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 147
+
+#line 147
+
+
+###
+### neverallow rules
+###
+
+# mediaserver should never execute any executable without a
+# domain transition
+neverallow mediaserver { file_type fs_type }:file execute_no_trans;
+
+# do not allow privileged socket ioctl commands
+neverallowxperm mediaserver domain:{ rawip_socket tcp_socket udp_socket } ioctl 
+#line 158
+{
+#line 158
+# qualcomm rmnet ioctls
+#line 158
+0x00006900 0x00006902
+#line 158
+# socket ioctls
+#line 158
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 158
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 158
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 158
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 158
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 158
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 158
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 158
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 158
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 158
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 158
+# device and protocol specific ioctls
+#line 158
+0x000089f0-0x000089ff
+#line 158
+0x000089e0-0x000089ef
+#line 158
+# Wireless extension ioctls
+#line 158
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 158
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 158
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 158
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 158
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 158
+0x00008b34 0x00008b35 0x00008b36
+#line 158
+# Dev private ioctl i.e. hardware specific ioctls
+#line 158
+0x00008be0-0x00008bff
+#line 158
+};
+#line 1 "system/sepolicy/public/mediaswcodec.te"
+type mediaswcodec, domain;
+type mediaswcodec_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+typeattribute mediaswcodec halserverdomain;
+#line 4
+typeattribute mediaswcodec hal_codec2_server;
+#line 4
+typeattribute mediaswcodec hal_codec2;
+#line 4
+
+
+# mediaswcodec may use an input surface from a different Codec2 service or an
+# OMX service
+
+#line 8
+typeattribute mediaswcodec halclientdomain;
+#line 8
+typeattribute mediaswcodec hal_codec2_client;
+#line 8
+
+#line 8
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 8
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 8
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 8
+
+#line 8
+typeattribute mediaswcodec hal_codec2;
+#line 8
+# Find passthrough HAL implementations
+#line 8
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 8
+
+#line 8
+
+
+#line 9
+typeattribute mediaswcodec halclientdomain;
+#line 9
+typeattribute mediaswcodec hal_omx_client;
+#line 9
+
+#line 9
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 9
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 9
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 9
+
+#line 9
+typeattribute mediaswcodec hal_omx;
+#line 9
+# Find passthrough HAL implementations
+#line 9
+allow hal_omx system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_omx vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_omx vendor_file:file { read open getattr execute map };
+#line 9
+
+#line 9
+
+
+
+#line 11
+typeattribute mediaswcodec halclientdomain;
+#line 11
+typeattribute mediaswcodec hal_allocator_client;
+#line 11
+
+#line 11
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 11
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 11
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 11
+
+#line 11
+typeattribute mediaswcodec hal_allocator;
+#line 11
+# Find passthrough HAL implementations
+#line 11
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 11
+
+#line 11
+
+
+#line 12
+typeattribute mediaswcodec halclientdomain;
+#line 12
+typeattribute mediaswcodec hal_graphics_allocator_client;
+#line 12
+
+#line 12
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 12
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 12
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 12
+
+#line 12
+typeattribute mediaswcodec hal_graphics_allocator;
+#line 12
+# Find passthrough HAL implementations
+#line 12
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 12
+
+#line 12
+
+
+# get aac_drc_* properties
+
+#line 15
+allow mediaswcodec aac_drc_prop:file { getattr open read map };
+#line 15
+
+
+
+#line 17
+
+#line 17
+allow mediaswcodec anr_data_file:file append;
+#line 17
+allow mediaswcodec dumpstate:fd use;
+#line 17
+allow mediaswcodec incidentd:fd use;
+#line 17
+# TODO: Figure out why write is needed.
+#line 17
+allow mediaswcodec dumpstate:fifo_file { append write };
+#line 17
+allow mediaswcodec incidentd:fifo_file { append write };
+#line 17
+allow mediaswcodec system_server:fifo_file { append write };
+#line 17
+allow mediaswcodec tombstoned:unix_stream_socket connectto;
+#line 17
+allow mediaswcodec tombstoned:fd use;
+#line 17
+allow mediaswcodec tombstoned_crash_socket:sock_file write;
+#line 17
+allow mediaswcodec tombstone_data_file:file append;
+#line 17
+
+
+# mediaswcodec_server should never execute any executable without a
+# domain transition
+neverallow mediaswcodec { file_type fs_type }:file execute_no_trans;
+
+# Media processing code is inherently risky and thus should have limited
+# permissions and be isolated from the rest of the system and network.
+# Lengthier explanation here:
+# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
+neverallow mediaswcodec domain:{ udp_socket rawip_socket } *;
+neverallow mediaswcodec { domain  }:tcp_socket *;
+
+allow mediaswcodec dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow mediaswcodec dmabuf_system_secure_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow mediaswcodec gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow mediaswcodec gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1 "system/sepolicy/public/mediatranscoding.te"
+type mediatranscoding, domain;
+#line 1 "system/sepolicy/public/modprobe.te"
+type modprobe, domain;
+
+allow modprobe proc_modules:file { getattr open read ioctl lock map watch watch_reads };
+allow modprobe proc_cmdline:file { getattr open read ioctl lock map watch watch_reads };
+allow modprobe self:{ capability cap_userns } sys_module;
+allow modprobe kernel:key search;
+allow modprobe system_dlkm_file:dir search;
+allow modprobe system_dlkm_file:file { getattr open read ioctl lock map watch watch_reads };
+allow modprobe system_dlkm_file:system module_load;
+#line 13
+
+#line 1 "system/sepolicy/public/mtp.te"
+# vpn tunneling protocol manager
+type mtp, domain;
+#line 1 "system/sepolicy/public/net.te"
+## Network types
+type node, node_type;
+type netif, netif_type;
+type port, port_type;
+
+###
+### Domain with network access
+###
+
+# Use network sockets.
+allow netdomain self:tcp_socket { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } };
+allow netdomain self:{ icmp_socket udp_socket rawip_socket } { create { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Connect to ports.
+allow netdomain port_type:tcp_socket name_connect;
+# See changes to the routing table.
+allow netdomain self:netlink_route_socket { create read getattr write setattr lock append connect getopt setopt shutdown nlmsg_read };
+
+# Talks to netd via dnsproxyd socket.
+
+#line 20
+allow netdomain dnsproxyd_socket:sock_file write;
+#line 20
+allow netdomain netd:unix_stream_socket connectto;
+#line 20
+
+
+# Talks to netd via fwmarkd socket.
+
+#line 23
+allow netdomain fwmarkd_socket:sock_file write;
+#line 23
+allow netdomain netd:unix_stream_socket connectto;
+#line 23
+
+#line 1 "system/sepolicy/public/netd.te"
+# network manager
+type netd, domain, mlstrustedsubject;
+type netd_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+typeattribute netd netdomain;
+#line 5
+
+# Connect to mdnsd via mdnsd socket.
+
+#line 7
+allow netd mdnsd_socket:sock_file write;
+#line 7
+allow netd mdnsd:unix_stream_socket connectto;
+#line 7
+
+# in addition to ioctls allowlisted for all domains, grant netd priv_sock_ioctls.
+allowxperm netd self:udp_socket ioctl 
+#line 9
+{
+#line 9
+# qualcomm rmnet ioctls
+#line 9
+0x00006900 0x00006902
+#line 9
+# socket ioctls
+#line 9
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 9
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 9
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 9
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 9
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 9
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 9
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 9
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 9
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 9
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 9
+# device and protocol specific ioctls
+#line 9
+0x000089f0-0x000089ff
+#line 9
+0x000089e0-0x000089ef
+#line 9
+# Wireless extension ioctls
+#line 9
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 9
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 9
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 9
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 9
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 9
+0x00008b34 0x00008b35 0x00008b36
+#line 9
+# Dev private ioctl i.e. hardware specific ioctls
+#line 9
+0x00008be0-0x00008bff
+#line 9
+};
+
+
+#line 11
+allow netd cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow netd cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 11
+
+
+allow netd system_server:fd use;
+
+allow netd self:{ capability cap_userns } { net_admin net_raw kill };
+# Note: fsetid is deliberately not included above. fsetid checks are
+# triggered by chmod on a directory or file owned by a group other
+# than one of the groups assigned to the current process to see if
+# the setgid bit should be cleared, regardless of whether the setgid
+# bit was even set.  We do not appear to truly need this capability
+# for netd to operate.
+dontaudit netd self:{ capability cap_userns } fsetid;
+
+# Allow netd to open /dev/tun, set it up and pass it to clatd
+allow netd tun_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm netd tun_device:chr_file ioctl { 0x800454d2 0x400454ca };
+allow netd self:tun_socket create;
+
+allow netd self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow netd self:netlink_route_socket nlmsg_write;
+allow netd self:netlink_nflog_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow netd self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow netd self:netlink_tcpdiag_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_read nlmsg_write };
+allow netd self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow netd self:netlink_netfilter_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow netd shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow netd system_file:file { getattr execute execute_no_trans map };
+allow netd vendor_file:file { getattr execute execute_no_trans map };
+allow netd devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Acquire advisory lock on /system/etc/xtables.lock. If this file doesn't
+# exist, suppress the denial.
+allow netd system_file:file lock;
+dontaudit netd system_file:dir write;
+
+# Allow netd to write to qtaguid ctrl file.
+# TODO: Add proper rules to prevent other process to access qtaguid_proc file
+# after migration complete
+allow netd proc_qtaguid_ctrl:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+# Allow netd to read /dev/qtaguid. This is the same privilege level that normal apps have.
+allow netd qtaguid_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 53
+allow netd proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 53
+allow netd proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 53
+
+# For /proc/sys/net/ipv[46]/route/flush.
+allow netd proc_net_type:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Enables PppController and interface enumeration (among others)
+allow netd sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+#line 59
+allow netd sysfs_net:dir { open getattr read search ioctl lock watch watch_reads };
+#line 59
+allow netd sysfs_net:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 59
+
+
+# Allows setting interface MTU
+allow netd sysfs_net:file { open append write lock map };
+
+# TODO: added to match above sysfs rule. Remove me?
+allow netd sysfs_usb:file write;
+
+
+#line 67
+allow netd cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 67
+allow netd cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 67
+
+
+# TODO: netd previously thought it needed these permissions to do WiFi related
+#       work.  However, after all the WiFi stuff is gone, we still need them.
+#       Why?
+allow netd self:{ capability cap_userns } { dac_override dac_read_search chown };
+
+# Needed to update /data/misc/net/rt_tables
+allow netd net_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow netd net_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow netd self:{ capability cap_userns } fowner;
+
+# Needed to lock the iptables lock.
+allow netd system_file:file lock;
+
+# Allow netd to spawn dnsmasq in it's own domain
+allow netd dnsmasq:process { sigkill signal };
+
+# Allow netd to publish a binder service and make binder calls.
+
+#line 86
+# Call the servicemanager and transfer references to it.
+#line 86
+allow netd servicemanager:binder { call transfer };
+#line 86
+# Allow servicemanager to send out callbacks
+#line 86
+allow servicemanager netd:binder { call transfer };
+#line 86
+# servicemanager performs getpidcon on clients.
+#line 86
+allow servicemanager netd:dir search;
+#line 86
+allow servicemanager netd:file { read open };
+#line 86
+allow servicemanager netd:process getattr;
+#line 86
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 86
+# all domains in domain.te.
+#line 86
+
+
+#line 87
+  allow netd netd_service:service_manager { add find };
+#line 87
+  neverallow { domain -netd } netd_service:service_manager add;
+#line 87
+
+#line 87
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 87
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 87
+  
+#line 87
+
+
+#line 88
+  allow netd dnsresolver_service:service_manager { add find };
+#line 88
+  neverallow { domain -netd } dnsresolver_service:service_manager add;
+#line 88
+
+#line 88
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 88
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 88
+  
+#line 88
+
+
+#line 89
+  allow netd mdns_service:service_manager { add find };
+#line 89
+  neverallow { domain -netd } mdns_service:service_manager add;
+#line 89
+
+#line 89
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 89
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 89
+  
+#line 89
+
+allow netd dumpstate:fifo_file  { getattr write };
+
+# Allow netd to call into the system server so it can check permissions.
+allow netd system_server:binder call;
+allow netd permission_service:service_manager find;
+
+# Allow netd to talk to the framework service which collects netd events.
+allow netd netd_listener_service:service_manager find;
+
+# Allow netd to operate on sockets that are passed to it.
+allow netd netdomain:{
+  icmp_socket
+  tcp_socket
+  udp_socket
+  rawip_socket
+  tun_socket
+} { read write getattr setattr getopt setopt };
+allow netd netdomain:fd use;
+
+# give netd permission to read and write netlink xfrm
+allow netd self:netlink_xfrm_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_write nlmsg_read };
+
+# Allow netd to register as hal server.
+
+#line 113
+  allow netd system_net_netd_hwservice:hwservice_manager { add find };
+#line 113
+  allow netd hidl_base_hwservice:hwservice_manager add;
+#line 113
+  neverallow { domain -netd } system_net_netd_hwservice:hwservice_manager add;
+#line 113
+
+
+#line 114
+# Call the hwservicemanager and transfer references to it.
+#line 114
+allow netd hwservicemanager:binder { call transfer };
+#line 114
+# Allow hwservicemanager to send out callbacks
+#line 114
+allow hwservicemanager netd:binder { call transfer };
+#line 114
+# hwservicemanager performs getpidcon on clients.
+#line 114
+allow hwservicemanager netd:dir search;
+#line 114
+allow hwservicemanager netd:file { read open map };
+#line 114
+allow hwservicemanager netd:process getattr;
+#line 114
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 114
+# all domains in domain.te.
+#line 114
+
+
+# AIDL hal server
+
+#line 117
+# Call the server domain and optionally transfer references to it.
+#line 117
+allow system_net_netd_service servicemanager:binder { call transfer };
+#line 117
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 117
+allow servicemanager system_net_netd_service:binder transfer;
+#line 117
+# Receive and use open files from the server.
+#line 117
+allow system_net_netd_service servicemanager:fd use;
+#line 117
+
+
+#line 118
+  allow netd system_net_netd_service:service_manager { add find };
+#line 118
+  neverallow { domain -netd } system_net_netd_service:service_manager add;
+#line 118
+
+#line 118
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 118
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 118
+  
+#line 118
+
+
+###
+### Neverallow rules
+###
+### netd should NEVER do any of this
+
+# Block device access.
+neverallow netd dev_type:blk_file { read write };
+
+# ptrace any other app
+neverallow netd { domain }:process ptrace;
+
+# Write to /system.
+neverallow netd system_file_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# Write to files in /data/data or system files on /data
+neverallow netd { app_data_file_type system_data_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# only system_server, dumpstate and network stack app may find netd service
+neverallow {
+    domain
+    -system_server
+    -dumpstate
+    -network_stack
+    -netd
+    -netutils_wrapper
+} netd_service:service_manager find;
+
+# only system_server, dumpstate and network stack app may find dnsresolver service
+neverallow {
+    domain
+    -system_server
+    -dumpstate
+    -network_stack
+    -netd
+    -netutils_wrapper
+} dnsresolver_service:service_manager find;
+
+# only system_server, dumpstate and network stack app may find mdns service
+neverallow {
+    domain
+    -system_server
+    -dumpstate
+    -network_stack
+    -netd
+    -netutils_wrapper
+} mdns_service:service_manager find;
+
+# apps may not interact with netd over binder.
+neverallow { appdomain -network_stack } netd:binder call;
+neverallow netd { appdomain -network_stack  }:binder call;
+
+# If an already existing file is opened with O_CREATE, the kernel might generate
+# a false report of a create denial. Silence these denials and make sure that
+# inappropriate permissions are not granted.
+neverallow netd proc_net:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+dontaudit netd proc_net:dir write;
+
+neverallow netd sysfs_net:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+dontaudit netd sysfs_net:dir write;
+
+# Netd should not have SYS_ADMIN privs.
+neverallow netd self:capability sys_admin;
+dontaudit netd self:capability sys_admin;
+
+# Netd should not have SYS_MODULE privs, nor should it be requesting module loads
+# (things it requires should be built directly into the kernel)
+dontaudit netd self:capability sys_module;
+
+dontaudit netd appdomain:unix_stream_socket { read write };
+#line 1 "system/sepolicy/public/netutils_wrapper.te"
+type netutils_wrapper, domain;
+type netutils_wrapper_exec, system_file_type, exec_type, file_type;
+
+neverallow domain netutils_wrapper_exec:file execute_no_trans;
+#line 1 "system/sepolicy/public/network_stack.te"
+# Network stack service app
+type network_stack, domain;
+#line 1 "system/sepolicy/public/nfc.te"
+# nfc subsystem
+type nfc, domain;
+#line 1 "system/sepolicy/public/otapreopt_chroot.te"
+# otapreopt_chroot seclabel
+
+# TODO: Only present to allow mediatek/wembley-sepolicy to see it for validation reasons.
+type otapreopt_chroot, domain;
+#line 1 "system/sepolicy/public/perfetto.te"
+type perfetto, domain, coredomain;
+#line 1 "system/sepolicy/public/performanced.te"
+# performanced
+type performanced, domain, mlstrustedsubject;
+type performanced_exec, system_file_type, exec_type, file_type;
+
+# Needed to check for app permissions.
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow performanced servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager performanced:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager performanced:dir search;
+#line 6
+allow servicemanager performanced:file { read open };
+#line 6
+allow servicemanager performanced:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow performanced system_server:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow system_server performanced:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow performanced system_server:fd use;
+#line 7
+
+allow performanced permission_service:service_manager find;
+
+
+#line 10
+# Mark the server domain as a PDX server.
+#line 10
+typeattribute performanced pdx_performance_client_server_type;
+#line 10
+# Allow the init process to create the initial endpoint socket.
+#line 10
+allow init pdx_performance_client_endpoint_socket_type:unix_stream_socket { create bind };
+#line 10
+# Allow the server domain to use the endpoint socket and accept connections on it.
+#line 10
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 10
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 10
+allow performanced pdx_performance_client_endpoint_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown listen accept };
+#line 10
+# Allow the server domain to apply security context label to the channel socket pair (allow process to use setsockcreatecon_raw()).
+#line 10
+allow performanced self:process setsockcreate;
+#line 10
+# Allow the server domain to create a client channel socket.
+#line 10
+allow performanced pdx_performance_client_channel_socket_type:unix_stream_socket { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } };
+#line 10
+# Prevent other processes from claiming to be a server for the same service.
+#line 10
+neverallow {domain -performanced} pdx_performance_client_endpoint_socket_type:unix_stream_socket { listen accept };
+#line 10
+
+
+# TODO: use file caps to obtain sys_nice instead of setuid / setgid.
+allow performanced self:{ capability cap_userns } { setuid setgid sys_nice };
+
+# Access /proc to validate we're only affecting threads in the same thread group.
+# Performanced also shields unbound kernel threads.  It scans every task in the
+# root cpu set, but only affects the kernel threads.
+
+#line 18
+allow performanced { appdomain bufferhubd kernel surfaceflinger }:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow performanced { appdomain bufferhubd kernel surfaceflinger }:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 18
+
+dontaudit performanced domain:dir read;
+allow performanced { appdomain bufferhubd kernel surfaceflinger }:process setsched;
+
+# These /proc accesses only show up in permissive mode but they
+# generate a lot of noise in the log.
+#line 27
+
+
+# Access /dev/cpuset/cpuset.cpus
+
+#line 30
+allow performanced cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 30
+allow performanced cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 30
+
+
+#line 31
+allow performanced cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 31
+allow performanced cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 31
+
+#line 1 "system/sepolicy/public/platform_app.te"
+###
+### Apps signed with the platform key.
+###
+
+type platform_app, domain;
+#line 1 "system/sepolicy/public/postinstall.te"
+# Domain where the postinstall program runs during the update.
+# Extend the permissions in this domain to allow this program to access other
+# files needed by the specific device on your device's sepolicy directory.
+type postinstall, domain;
+
+# Allow postinstall to write to its stdout/stderr when redirected via pipes to
+# update_engine.
+allow postinstall update_engine_common:fd use;
+allow postinstall update_engine_common:fifo_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow postinstall to read and execute directories and files in the same
+# mounted location.
+allow postinstall postinstall_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow postinstall postinstall_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow postinstall postinstall_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow postinstall to execute the shell or other system executables.
+allow postinstall shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow postinstall system_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow postinstall toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow postinstall to execute shell in recovery.
+#line 25
+
+
+#
+# For OTA dexopt.
+#
+
+# Allow postinstall scripts to talk to the system server.
+
+#line 32
+# Call the servicemanager and transfer references to it.
+#line 32
+allow postinstall servicemanager:binder { call transfer };
+#line 32
+# Allow servicemanager to send out callbacks
+#line 32
+allow servicemanager postinstall:binder { call transfer };
+#line 32
+# servicemanager performs getpidcon on clients.
+#line 32
+allow servicemanager postinstall:dir search;
+#line 32
+allow servicemanager postinstall:file { read open };
+#line 32
+allow servicemanager postinstall:process getattr;
+#line 32
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 32
+# all domains in domain.te.
+#line 32
+
+
+#line 33
+# Call the server domain and optionally transfer references to it.
+#line 33
+allow postinstall system_server:binder { call transfer };
+#line 33
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 33
+allow system_server postinstall:binder transfer;
+#line 33
+# Receive and use open files from the server.
+#line 33
+allow postinstall system_server:fd use;
+#line 33
+
+
+# Need to talk to the otadexopt service.
+allow postinstall otadexopt_service:service_manager find;
+
+# Allow postinstall scripts to trigger f2fs garbage collection
+allow postinstall sysfs_fs_f2fs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow postinstall sysfs_fs_f2fs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# No domain other than update_engine and recovery (via update_engine_sideload)
+# should transition to postinstall, as it is only meant to run during the
+# update.
+neverallow { domain -update_engine -recovery } postinstall:process { transition dyntransition };
+#line 1 "system/sepolicy/public/ppp.te"
+# Point to Point Protocol daemon
+type ppp, domain;
+#line 1 "system/sepolicy/public/priv_app.te"
+###
+### A domain for further sandboxing privileged apps.
+###
+
+type priv_app, domain;
+#line 1 "system/sepolicy/public/prng_seeder.te"
+# PRNG seeder daemon
+type prng_seeder, domain;
+#line 1 "system/sepolicy/public/profman.te"
+# profman
+type profman, domain;
+type profman_exec, system_file_type, exec_type, file_type;
+
+allow profman user_profile_data_file:file { getattr read write lock map };
+
+# Dumping profile info opens the application APK file for pretty printing.
+allow profman asec_apk_file:file { read map };
+allow profman apk_data_file:file { getattr read map };
+allow profman apk_data_file:dir { getattr read search };
+
+allow profman oemfs:file { read map };
+# Reading an APK opens a ZipArchive, which unpack to tmpfs.
+allow profman tmpfs:file { read map };
+allow profman profman_dump_data_file:file { write map };
+
+# Allow profman to analyze profiles for the secondary dex files. These
+# are application dex files reported back to the framework when using
+# BaseDexClassLoader.
+allow profman { privapp_data_file app_data_file }:file { getattr read write lock map };
+allow profman { privapp_data_file app_data_file }:dir { getattr read search };
+
+# Allow query ART device config properties
+
+#line 24
+allow profman device_config_runtime_native_prop:file { getattr open read map };
+#line 24
+
+
+#line 25
+allow profman device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 25
+
+
+###
+### neverallow rules
+###
+
+neverallow profman app_data_file_type:{ file lnk_file sock_file fifo_file } open;
+#line 1 "system/sepolicy/public/property.te"
+# Properties used only in /system
+#
+# DO NOT ADD system_internal_prop here.
+# Instead, add to private/property.te.
+# TODO(b/150331497): move these to private/property.te
+
+#line 6
+  
+#line 6
+  type apexd_prop, property_type, system_property_type, system_internal_property_type;
+#line 6
+
+#line 6
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 6
+
+#line 6
+    neverallow { domain -coredomain } apexd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+  
+#line 6
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 6
+
+#line 6
+
+
+#line 7
+  
+#line 7
+  type bootloader_boot_reason_prop, property_type, system_property_type, system_internal_property_type;
+#line 7
+
+#line 7
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 7
+
+#line 7
+    neverallow { domain -coredomain } bootloader_boot_reason_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+  
+#line 7
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 7
+
+#line 7
+
+
+#line 8
+  
+#line 8
+  type device_config_activity_manager_native_boot_prop, property_type, system_property_type, system_internal_property_type;
+#line 8
+
+#line 8
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 8
+
+#line 8
+    neverallow { domain -coredomain } device_config_activity_manager_native_boot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 8
+  
+#line 8
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 8
+
+#line 8
+
+
+#line 9
+  
+#line 9
+  type device_config_boot_count_prop, property_type, system_property_type, system_internal_property_type;
+#line 9
+
+#line 9
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 9
+
+#line 9
+    neverallow { domain -coredomain } device_config_boot_count_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 9
+  
+#line 9
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 9
+
+#line 9
+
+
+#line 10
+  
+#line 10
+  type device_config_input_native_boot_prop, property_type, system_property_type, system_internal_property_type;
+#line 10
+
+#line 10
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 10
+
+#line 10
+    neverallow { domain -coredomain } device_config_input_native_boot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 10
+  
+#line 10
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 10
+
+#line 10
+
+
+#line 11
+  
+#line 11
+  type device_config_netd_native_prop, property_type, system_property_type, system_internal_property_type;
+#line 11
+
+#line 11
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 11
+
+#line 11
+    neverallow { domain -coredomain } device_config_netd_native_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 11
+  
+#line 11
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 11
+
+#line 11
+
+
+#line 12
+  
+#line 12
+  type device_config_reset_performed_prop, property_type, system_property_type, system_internal_property_type;
+#line 12
+
+#line 12
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 12
+
+#line 12
+    neverallow { domain -coredomain } device_config_reset_performed_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 12
+  
+#line 12
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 12
+
+#line 12
+
+
+#line 13
+  
+#line 13
+  type firstboot_prop, property_type, system_property_type, system_internal_property_type;
+#line 13
+
+#line 13
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 13
+
+#line 13
+    neverallow { domain -coredomain } firstboot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+  
+#line 13
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 13
+
+#line 13
+
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    # DO NOT ADD ANY PROPERTIES HERE
+#line 15
+    
+#line 15
+  
+#line 15
+  type boottime_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } boottime_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type charger_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } charger_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type cold_boot_done_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } cold_boot_done_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_adbd_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_adbd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_apexd_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_apexd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_bootanim_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_bootanim_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_bugreport_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_bugreport_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_console_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_console_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_dumpstate_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_dumpstate_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_fuse_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_fuse_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_gsid_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_gsid_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_interface_restart_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_interface_restart_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_interface_stop_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_interface_stop_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_mdnsd_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_mdnsd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_restart_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_restart_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_rildaemon_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_rildaemon_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type ctl_sigstop_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } ctl_sigstop_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type dynamic_system_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } dynamic_system_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type heapprofd_enabled_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } heapprofd_enabled_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type llkd_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } llkd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type lpdumpd_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } lpdumpd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type mmc_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } mmc_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type mock_ota_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } mock_ota_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type net_dns_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } net_dns_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type overlay_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } overlay_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type persistent_properties_ready_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } persistent_properties_ready_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type safemode_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } safemode_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type system_lmk_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } system_lmk_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type system_trace_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } system_trace_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type test_boot_reason_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } test_boot_reason_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type time_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } time_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type traced_enabled_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } traced_enabled_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+    
+#line 15
+  
+#line 15
+  type traced_lazy_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } traced_lazy_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+#line 15
+
+#line 15
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 50
+
+
+# Properties which can't be written outside system
+
+#line 53
+  
+#line 53
+  type aac_drc_prop, property_type, system_property_type, system_restricted_property_type;
+#line 53
+
+#line 53
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 53
+
+#line 53
+    neverallow { domain -coredomain } aac_drc_prop:property_service set;
+#line 53
+  
+#line 53
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 53
+
+#line 53
+
+
+#line 54
+  
+#line 54
+  type adaptive_haptics_prop, property_type, system_property_type, system_restricted_property_type;
+#line 54
+
+#line 54
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 54
+
+#line 54
+    neverallow { domain -coredomain } adaptive_haptics_prop:property_service set;
+#line 54
+  
+#line 54
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 54
+
+#line 54
+
+
+#line 55
+  
+#line 55
+  type apex_ready_prop, property_type, system_property_type, system_restricted_property_type;
+#line 55
+
+#line 55
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 55
+
+#line 55
+    neverallow { domain -coredomain } apex_ready_prop:property_service set;
+#line 55
+  
+#line 55
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 55
+
+#line 55
+
+
+#line 56
+  
+#line 56
+  type arm64_memtag_prop, property_type, system_property_type, system_restricted_property_type;
+#line 56
+
+#line 56
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 56
+
+#line 56
+    neverallow { domain -coredomain } arm64_memtag_prop:property_service set;
+#line 56
+  
+#line 56
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 56
+
+#line 56
+
+
+#line 57
+  
+#line 57
+  type binder_cache_bluetooth_server_prop, property_type, system_property_type, system_restricted_property_type;
+#line 57
+
+#line 57
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 57
+
+#line 57
+    neverallow { domain -coredomain } binder_cache_bluetooth_server_prop:property_service set;
+#line 57
+  
+#line 57
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 57
+
+#line 57
+
+
+#line 58
+  
+#line 58
+  type binder_cache_system_server_prop, property_type, system_property_type, system_restricted_property_type;
+#line 58
+
+#line 58
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 58
+
+#line 58
+    neverallow { domain -coredomain } binder_cache_system_server_prop:property_service set;
+#line 58
+  
+#line 58
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 58
+
+#line 58
+
+
+#line 59
+  
+#line 59
+  type binder_cache_telephony_server_prop, property_type, system_property_type, system_restricted_property_type;
+#line 59
+
+#line 59
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 59
+
+#line 59
+    neverallow { domain -coredomain } binder_cache_telephony_server_prop:property_service set;
+#line 59
+  
+#line 59
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 59
+
+#line 59
+
+
+#line 60
+  
+#line 60
+  type boot_status_prop, property_type, system_property_type, system_restricted_property_type;
+#line 60
+
+#line 60
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 60
+
+#line 60
+    neverallow { domain -coredomain } boot_status_prop:property_service set;
+#line 60
+  
+#line 60
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 60
+
+#line 60
+
+
+#line 61
+  
+#line 61
+  type bootanim_system_prop, property_type, system_property_type, system_restricted_property_type;
+#line 61
+
+#line 61
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 61
+
+#line 61
+    neverallow { domain -coredomain } bootanim_system_prop:property_service set;
+#line 61
+  
+#line 61
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 61
+
+#line 61
+
+
+#line 62
+  
+#line 62
+  type bootloader_prop, property_type, system_property_type, system_restricted_property_type;
+#line 62
+
+#line 62
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 62
+
+#line 62
+    neverallow { domain -coredomain } bootloader_prop:property_service set;
+#line 62
+  
+#line 62
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 62
+
+#line 62
+
+
+#line 63
+  
+#line 63
+  type boottime_public_prop, property_type, system_property_type, system_restricted_property_type;
+#line 63
+
+#line 63
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 63
+
+#line 63
+    neverallow { domain -coredomain } boottime_public_prop:property_service set;
+#line 63
+  
+#line 63
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 63
+
+#line 63
+
+
+#line 64
+  
+#line 64
+  type bq_config_prop, property_type, system_property_type, system_restricted_property_type;
+#line 64
+
+#line 64
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 64
+
+#line 64
+    neverallow { domain -coredomain } bq_config_prop:property_service set;
+#line 64
+  
+#line 64
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 64
+
+#line 64
+
+
+#line 65
+  
+#line 65
+  type build_bootimage_prop, property_type, system_property_type, system_restricted_property_type;
+#line 65
+
+#line 65
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 65
+
+#line 65
+    neverallow { domain -coredomain } build_bootimage_prop:property_service set;
+#line 65
+  
+#line 65
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 65
+
+#line 65
+
+
+#line 66
+  
+#line 66
+  type build_prop, property_type, system_property_type, system_restricted_property_type;
+#line 66
+
+#line 66
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 66
+
+#line 66
+    neverallow { domain -coredomain } build_prop:property_service set;
+#line 66
+  
+#line 66
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 66
+
+#line 66
+
+
+#line 67
+  
+#line 67
+  type composd_vm_art_prop, property_type, system_property_type, system_restricted_property_type;
+#line 67
+
+#line 67
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 67
+
+#line 67
+    neverallow { domain -coredomain } composd_vm_art_prop:property_service set;
+#line 67
+  
+#line 67
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 67
+
+#line 67
+
+
+#line 68
+  
+#line 68
+  type device_config_aconfig_flags_prop, property_type, system_property_type, system_restricted_property_type;
+#line 68
+
+#line 68
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 68
+
+#line 68
+    neverallow { domain -coredomain } device_config_aconfig_flags_prop:property_service set;
+#line 68
+  
+#line 68
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 68
+
+#line 68
+
+
+#line 69
+  
+#line 69
+  type device_config_camera_native_prop, property_type, system_property_type, system_restricted_property_type;
+#line 69
+
+#line 69
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 69
+
+#line 69
+    neverallow { domain -coredomain } device_config_camera_native_prop:property_service set;
+#line 69
+  
+#line 69
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 69
+
+#line 69
+
+
+#line 70
+  
+#line 70
+  type device_config_edgetpu_native_prop, property_type, system_property_type, system_restricted_property_type;
+#line 70
+
+#line 70
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 70
+
+#line 70
+    neverallow { domain -coredomain } device_config_edgetpu_native_prop:property_service set;
+#line 70
+  
+#line 70
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 70
+
+#line 70
+
+
+#line 71
+  
+#line 71
+  type device_config_media_native_prop, property_type, system_property_type, system_restricted_property_type;
+#line 71
+
+#line 71
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 71
+
+#line 71
+    neverallow { domain -coredomain } device_config_media_native_prop:property_service set;
+#line 71
+  
+#line 71
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 71
+
+#line 71
+
+
+#line 72
+  
+#line 72
+  type device_config_nnapi_native_prop, property_type, system_property_type, system_restricted_property_type;
+#line 72
+
+#line 72
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 72
+
+#line 72
+    neverallow { domain -coredomain } device_config_nnapi_native_prop:property_service set;
+#line 72
+  
+#line 72
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 72
+
+#line 72
+
+
+#line 73
+  
+#line 73
+  type device_config_runtime_native_boot_prop, property_type, system_property_type, system_restricted_property_type;
+#line 73
+
+#line 73
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 73
+
+#line 73
+    neverallow { domain -coredomain } device_config_runtime_native_boot_prop:property_service set;
+#line 73
+  
+#line 73
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 73
+
+#line 73
+
+
+#line 74
+  
+#line 74
+  type device_config_runtime_native_prop, property_type, system_property_type, system_restricted_property_type;
+#line 74
+
+#line 74
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 74
+
+#line 74
+    neverallow { domain -coredomain } device_config_runtime_native_prop:property_service set;
+#line 74
+  
+#line 74
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 74
+
+#line 74
+
+
+#line 75
+  
+#line 75
+  type device_config_surface_flinger_native_boot_prop, property_type, system_property_type, system_restricted_property_type;
+#line 75
+
+#line 75
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 75
+
+#line 75
+    neverallow { domain -coredomain } device_config_surface_flinger_native_boot_prop:property_service set;
+#line 75
+  
+#line 75
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 75
+
+#line 75
+
+
+#line 76
+  
+#line 76
+  type device_config_vendor_system_native_prop, property_type, system_property_type, system_restricted_property_type;
+#line 76
+
+#line 76
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 76
+
+#line 76
+    neverallow { domain -coredomain } device_config_vendor_system_native_prop:property_service set;
+#line 76
+  
+#line 76
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 76
+
+#line 76
+
+
+#line 77
+  
+#line 77
+  type device_config_vendor_system_native_boot_prop, property_type, system_property_type, system_restricted_property_type;
+#line 77
+
+#line 77
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 77
+
+#line 77
+    neverallow { domain -coredomain } device_config_vendor_system_native_boot_prop:property_service set;
+#line 77
+  
+#line 77
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 77
+
+#line 77
+
+
+#line 78
+  
+#line 78
+  type drm_forcel3_prop, property_type, system_property_type, system_restricted_property_type;
+#line 78
+
+#line 78
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 78
+
+#line 78
+    neverallow { domain -coredomain } drm_forcel3_prop:property_service set;
+#line 78
+  
+#line 78
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 78
+
+#line 78
+
+
+#line 79
+  
+#line 79
+  type fingerprint_prop, property_type, system_property_type, system_restricted_property_type;
+#line 79
+
+#line 79
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 79
+
+#line 79
+    neverallow { domain -coredomain } fingerprint_prop:property_service set;
+#line 79
+  
+#line 79
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 79
+
+#line 79
+
+
+#line 80
+  
+#line 80
+  type gwp_asan_prop, property_type, system_property_type, system_restricted_property_type;
+#line 80
+
+#line 80
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 80
+
+#line 80
+    neverallow { domain -coredomain } gwp_asan_prop:property_service set;
+#line 80
+  
+#line 80
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 80
+
+#line 80
+
+
+#line 81
+  
+#line 81
+  type hal_instrumentation_prop, property_type, system_property_type, system_restricted_property_type;
+#line 81
+
+#line 81
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 81
+
+#line 81
+    neverallow { domain -coredomain } hal_instrumentation_prop:property_service set;
+#line 81
+  
+#line 81
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 81
+
+#line 81
+
+
+#line 82
+  
+#line 82
+  type userdebug_or_eng_prop, property_type, system_property_type, system_restricted_property_type;
+#line 82
+
+#line 82
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 82
+
+#line 82
+    neverallow { domain -coredomain } userdebug_or_eng_prop:property_service set;
+#line 82
+  
+#line 82
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 82
+
+#line 82
+
+
+#line 83
+  
+#line 83
+  type init_service_status_prop, property_type, system_property_type, system_restricted_property_type;
+#line 83
+
+#line 83
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 83
+
+#line 83
+    neverallow { domain -coredomain } init_service_status_prop:property_service set;
+#line 83
+  
+#line 83
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 83
+
+#line 83
+
+
+#line 84
+  
+#line 84
+  type libc_debug_prop, property_type, system_property_type, system_restricted_property_type;
+#line 84
+
+#line 84
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 84
+
+#line 84
+    neverallow { domain -coredomain } libc_debug_prop:property_service set;
+#line 84
+  
+#line 84
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 84
+
+#line 84
+
+
+#line 85
+  
+#line 85
+  type module_sdkextensions_prop, property_type, system_property_type, system_restricted_property_type;
+#line 85
+
+#line 85
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 85
+
+#line 85
+    neverallow { domain -coredomain } module_sdkextensions_prop:property_service set;
+#line 85
+  
+#line 85
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 85
+
+#line 85
+
+
+#line 86
+  
+#line 86
+  type nnapi_ext_deny_product_prop, property_type, system_property_type, system_restricted_property_type;
+#line 86
+
+#line 86
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 86
+
+#line 86
+    neverallow { domain -coredomain } nnapi_ext_deny_product_prop:property_service set;
+#line 86
+  
+#line 86
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 86
+
+#line 86
+
+
+#line 87
+  
+#line 87
+  type persist_wm_debug_prop, property_type, system_property_type, system_restricted_property_type;
+#line 87
+
+#line 87
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 87
+
+#line 87
+    neverallow { domain -coredomain } persist_wm_debug_prop:property_service set;
+#line 87
+  
+#line 87
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 87
+
+#line 87
+
+
+#line 88
+  
+#line 88
+  type power_debug_prop, property_type, system_property_type, system_restricted_property_type;
+#line 88
+
+#line 88
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 88
+
+#line 88
+    neverallow { domain -coredomain } power_debug_prop:property_service set;
+#line 88
+  
+#line 88
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 88
+
+#line 88
+
+
+#line 89
+  
+#line 89
+  type property_service_version_prop, property_type, system_property_type, system_restricted_property_type;
+#line 89
+
+#line 89
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 89
+
+#line 89
+    neverallow { domain -coredomain } property_service_version_prop:property_service set;
+#line 89
+  
+#line 89
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 89
+
+#line 89
+
+
+#line 90
+  
+#line 90
+  type provisioned_prop, property_type, system_property_type, system_restricted_property_type;
+#line 90
+
+#line 90
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 90
+
+#line 90
+    neverallow { domain -coredomain } provisioned_prop:property_service set;
+#line 90
+  
+#line 90
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 90
+
+#line 90
+
+
+#line 91
+  
+#line 91
+  type restorecon_prop, property_type, system_property_type, system_restricted_property_type;
+#line 91
+
+#line 91
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 91
+
+#line 91
+    neverallow { domain -coredomain } restorecon_prop:property_service set;
+#line 91
+  
+#line 91
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 91
+
+#line 91
+
+
+#line 92
+  
+#line 92
+  type retaildemo_prop, property_type, system_property_type, system_restricted_property_type;
+#line 92
+
+#line 92
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 92
+
+#line 92
+    neverallow { domain -coredomain } retaildemo_prop:property_service set;
+#line 92
+  
+#line 92
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 92
+
+#line 92
+
+
+#line 93
+  
+#line 93
+  type servicemanager_prop, property_type, system_property_type, system_restricted_property_type;
+#line 93
+
+#line 93
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 93
+
+#line 93
+    neverallow { domain -coredomain } servicemanager_prop:property_service set;
+#line 93
+  
+#line 93
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 93
+
+#line 93
+
+
+#line 94
+  
+#line 94
+  type smart_idle_maint_enabled_prop, property_type, system_property_type, system_restricted_property_type;
+#line 94
+
+#line 94
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 94
+
+#line 94
+    neverallow { domain -coredomain } smart_idle_maint_enabled_prop:property_service set;
+#line 94
+  
+#line 94
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 94
+
+#line 94
+
+
+#line 95
+  
+#line 95
+  type socket_hook_prop, property_type, system_property_type, system_restricted_property_type;
+#line 95
+
+#line 95
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 95
+
+#line 95
+    neverallow { domain -coredomain } socket_hook_prop:property_service set;
+#line 95
+  
+#line 95
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 95
+
+#line 95
+
+
+#line 96
+  
+#line 96
+  type sqlite_log_prop, property_type, system_property_type, system_restricted_property_type;
+#line 96
+
+#line 96
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 96
+
+#line 96
+    neverallow { domain -coredomain } sqlite_log_prop:property_service set;
+#line 96
+  
+#line 96
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 96
+
+#line 96
+
+
+#line 97
+  
+#line 97
+  type surfaceflinger_display_prop, property_type, system_property_type, system_restricted_property_type;
+#line 97
+
+#line 97
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 97
+
+#line 97
+    neverallow { domain -coredomain } surfaceflinger_display_prop:property_service set;
+#line 97
+  
+#line 97
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 97
+
+#line 97
+
+
+#line 98
+  
+#line 98
+  type system_boot_reason_prop, property_type, system_property_type, system_restricted_property_type;
+#line 98
+
+#line 98
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 98
+
+#line 98
+    neverallow { domain -coredomain } system_boot_reason_prop:property_service set;
+#line 98
+  
+#line 98
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 98
+
+#line 98
+
+
+#line 99
+  
+#line 99
+  type system_jvmti_agent_prop, property_type, system_property_type, system_restricted_property_type;
+#line 99
+
+#line 99
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 99
+
+#line 99
+    neverallow { domain -coredomain } system_jvmti_agent_prop:property_service set;
+#line 99
+  
+#line 99
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 99
+
+#line 99
+
+
+#line 100
+  
+#line 100
+  type traced_oome_heap_session_count_prop, property_type, system_property_type, system_restricted_property_type;
+#line 100
+
+#line 100
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 100
+
+#line 100
+    neverallow { domain -coredomain } traced_oome_heap_session_count_prop:property_service set;
+#line 100
+  
+#line 100
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 100
+
+#line 100
+
+
+#line 101
+  
+#line 101
+  type ab_update_gki_prop, property_type, system_property_type, system_restricted_property_type;
+#line 101
+
+#line 101
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 101
+
+#line 101
+    neverallow { domain -coredomain } ab_update_gki_prop:property_service set;
+#line 101
+  
+#line 101
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 101
+
+#line 101
+
+
+#line 102
+  
+#line 102
+  type usb_prop, property_type, system_property_type, system_restricted_property_type;
+#line 102
+
+#line 102
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 102
+
+#line 102
+    neverallow { domain -coredomain } usb_prop:property_service set;
+#line 102
+  
+#line 102
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 102
+
+#line 102
+
+
+#line 103
+  
+#line 103
+  type userspace_reboot_exported_prop, property_type, system_property_type, system_restricted_property_type;
+#line 103
+
+#line 103
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 103
+
+#line 103
+    neverallow { domain -coredomain } userspace_reboot_exported_prop:property_service set;
+#line 103
+  
+#line 103
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 103
+
+#line 103
+
+
+#line 104
+  
+#line 104
+  type vold_status_prop, property_type, system_property_type, system_restricted_property_type;
+#line 104
+
+#line 104
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 104
+
+#line 104
+    neverallow { domain -coredomain } vold_status_prop:property_service set;
+#line 104
+  
+#line 104
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 104
+
+#line 104
+
+
+#line 105
+  
+#line 105
+  type vts_status_prop, property_type, system_property_type, system_restricted_property_type;
+#line 105
+
+#line 105
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 105
+
+#line 105
+    neverallow { domain -coredomain } vts_status_prop:property_service set;
+#line 105
+  
+#line 105
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 105
+
+#line 105
+
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    # DO NOT ADD ANY PROPERTIES HERE
+#line 107
+    
+#line 107
+  
+#line 107
+  type config_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } config_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type cppreopt_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } cppreopt_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type dalvik_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } dalvik_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type debuggerd_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } debuggerd_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type device_logging_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } device_logging_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type dhcp_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } dhcp_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type dumpstate_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } dumpstate_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type exported3_system_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } exported3_system_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type exported_dumpstate_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } exported_dumpstate_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type exported_secure_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } exported_secure_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type heapprofd_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } heapprofd_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type net_radio_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } net_radio_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type pan_result_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } pan_result_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type persist_debug_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } persist_debug_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type shell_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } shell_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type test_harness_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } test_harness_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type theme_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } theme_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type use_memfd_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } use_memfd_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+    
+#line 107
+  
+#line 107
+  type vold_prop, property_type, system_property_type, system_restricted_property_type;
+#line 107
+
+#line 107
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+    neverallow { domain -coredomain } vold_prop:property_service set;
+#line 107
+  
+#line 107
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 107
+
+#line 107
+
+#line 107
+
+#line 107
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 128
+
+
+# Properties which can be written only by vendor_init
+
+#line 131
+  
+#line 131
+  type apexd_config_prop, property_type, system_property_type, system_public_property_type;
+#line 131
+
+#line 131
+  
+#line 131
+
+#line 131
+allow vendor_init property_socket:sock_file write;
+#line 131
+allow vendor_init init:unix_stream_socket connectto;
+#line 131
+
+#line 131
+allow vendor_init apexd_config_prop:property_service set;
+#line 131
+
+#line 131
+allow vendor_init apexd_config_prop:file { getattr open read map };
+#line 131
+
+#line 131
+
+#line 131
+  neverallow { domain -init -vendor_init } apexd_config_prop:property_service set;
+#line 131
+
+
+#line 132
+  
+#line 132
+  type apexd_select_prop, property_type, system_property_type, system_public_property_type;
+#line 132
+
+#line 132
+  
+#line 132
+
+#line 132
+allow vendor_init property_socket:sock_file write;
+#line 132
+allow vendor_init init:unix_stream_socket connectto;
+#line 132
+
+#line 132
+allow vendor_init apexd_select_prop:property_service set;
+#line 132
+
+#line 132
+allow vendor_init apexd_select_prop:file { getattr open read map };
+#line 132
+
+#line 132
+
+#line 132
+  neverallow { domain -init -vendor_init } apexd_select_prop:property_service set;
+#line 132
+
+
+#line 133
+  
+#line 133
+  type aaudio_config_prop, property_type, system_property_type, system_public_property_type;
+#line 133
+
+#line 133
+  
+#line 133
+
+#line 133
+allow vendor_init property_socket:sock_file write;
+#line 133
+allow vendor_init init:unix_stream_socket connectto;
+#line 133
+
+#line 133
+allow vendor_init aaudio_config_prop:property_service set;
+#line 133
+
+#line 133
+allow vendor_init aaudio_config_prop:file { getattr open read map };
+#line 133
+
+#line 133
+
+#line 133
+  neverallow { domain -init -vendor_init } aaudio_config_prop:property_service set;
+#line 133
+
+
+#line 134
+  
+#line 134
+  type apk_verity_prop, property_type, system_property_type, system_public_property_type;
+#line 134
+
+#line 134
+  
+#line 134
+
+#line 134
+allow vendor_init property_socket:sock_file write;
+#line 134
+allow vendor_init init:unix_stream_socket connectto;
+#line 134
+
+#line 134
+allow vendor_init apk_verity_prop:property_service set;
+#line 134
+
+#line 134
+allow vendor_init apk_verity_prop:file { getattr open read map };
+#line 134
+
+#line 134
+
+#line 134
+  neverallow { domain -init -vendor_init } apk_verity_prop:property_service set;
+#line 134
+
+
+#line 135
+  
+#line 135
+  type audio_config_prop, property_type, system_property_type, system_public_property_type;
+#line 135
+
+#line 135
+  
+#line 135
+
+#line 135
+allow vendor_init property_socket:sock_file write;
+#line 135
+allow vendor_init init:unix_stream_socket connectto;
+#line 135
+
+#line 135
+allow vendor_init audio_config_prop:property_service set;
+#line 135
+
+#line 135
+allow vendor_init audio_config_prop:file { getattr open read map };
+#line 135
+
+#line 135
+
+#line 135
+  neverallow { domain -init -vendor_init } audio_config_prop:property_service set;
+#line 135
+
+
+#line 136
+  
+#line 136
+  type bootanim_config_prop, property_type, system_property_type, system_public_property_type;
+#line 136
+
+#line 136
+  
+#line 136
+
+#line 136
+allow vendor_init property_socket:sock_file write;
+#line 136
+allow vendor_init init:unix_stream_socket connectto;
+#line 136
+
+#line 136
+allow vendor_init bootanim_config_prop:property_service set;
+#line 136
+
+#line 136
+allow vendor_init bootanim_config_prop:file { getattr open read map };
+#line 136
+
+#line 136
+
+#line 136
+  neverallow { domain -init -vendor_init } bootanim_config_prop:property_service set;
+#line 136
+
+
+#line 137
+  
+#line 137
+  type bluetooth_config_prop, property_type, system_property_type, system_public_property_type;
+#line 137
+
+#line 137
+  
+#line 137
+
+#line 137
+allow vendor_init property_socket:sock_file write;
+#line 137
+allow vendor_init init:unix_stream_socket connectto;
+#line 137
+
+#line 137
+allow vendor_init bluetooth_config_prop:property_service set;
+#line 137
+
+#line 137
+allow vendor_init bluetooth_config_prop:file { getattr open read map };
+#line 137
+
+#line 137
+
+#line 137
+  neverallow { domain -init -vendor_init } bluetooth_config_prop:property_service set;
+#line 137
+
+
+#line 138
+  
+#line 138
+  type build_attestation_prop, property_type, system_property_type, system_public_property_type;
+#line 138
+
+#line 138
+  
+#line 138
+
+#line 138
+allow vendor_init property_socket:sock_file write;
+#line 138
+allow vendor_init init:unix_stream_socket connectto;
+#line 138
+
+#line 138
+allow vendor_init build_attestation_prop:property_service set;
+#line 138
+
+#line 138
+allow vendor_init build_attestation_prop:file { getattr open read map };
+#line 138
+
+#line 138
+
+#line 138
+  neverallow { domain -init -vendor_init } build_attestation_prop:property_service set;
+#line 138
+
+
+#line 139
+  
+#line 139
+  type build_config_prop, property_type, system_property_type, system_public_property_type;
+#line 139
+
+#line 139
+  
+#line 139
+
+#line 139
+allow vendor_init property_socket:sock_file write;
+#line 139
+allow vendor_init init:unix_stream_socket connectto;
+#line 139
+
+#line 139
+allow vendor_init build_config_prop:property_service set;
+#line 139
+
+#line 139
+allow vendor_init build_config_prop:file { getattr open read map };
+#line 139
+
+#line 139
+
+#line 139
+  neverallow { domain -init -vendor_init } build_config_prop:property_service set;
+#line 139
+
+
+#line 140
+  
+#line 140
+  type build_odm_prop, property_type, system_property_type, system_public_property_type;
+#line 140
+
+#line 140
+  
+#line 140
+
+#line 140
+allow vendor_init property_socket:sock_file write;
+#line 140
+allow vendor_init init:unix_stream_socket connectto;
+#line 140
+
+#line 140
+allow vendor_init build_odm_prop:property_service set;
+#line 140
+
+#line 140
+allow vendor_init build_odm_prop:file { getattr open read map };
+#line 140
+
+#line 140
+
+#line 140
+  neverallow { domain -init -vendor_init } build_odm_prop:property_service set;
+#line 140
+
+
+#line 141
+  
+#line 141
+  type build_vendor_prop, property_type, system_property_type, system_public_property_type;
+#line 141
+
+#line 141
+  
+#line 141
+
+#line 141
+allow vendor_init property_socket:sock_file write;
+#line 141
+allow vendor_init init:unix_stream_socket connectto;
+#line 141
+
+#line 141
+allow vendor_init build_vendor_prop:property_service set;
+#line 141
+
+#line 141
+allow vendor_init build_vendor_prop:file { getattr open read map };
+#line 141
+
+#line 141
+
+#line 141
+  neverallow { domain -init -vendor_init } build_vendor_prop:property_service set;
+#line 141
+
+
+#line 142
+  
+#line 142
+  type camera_calibration_prop, property_type, system_property_type, system_public_property_type;
+#line 142
+
+#line 142
+  
+#line 142
+
+#line 142
+allow vendor_init property_socket:sock_file write;
+#line 142
+allow vendor_init init:unix_stream_socket connectto;
+#line 142
+
+#line 142
+allow vendor_init camera_calibration_prop:property_service set;
+#line 142
+
+#line 142
+allow vendor_init camera_calibration_prop:file { getattr open read map };
+#line 142
+
+#line 142
+
+#line 142
+  neverallow { domain -init -vendor_init } camera_calibration_prop:property_service set;
+#line 142
+
+
+#line 143
+  
+#line 143
+  type camera_config_prop, property_type, system_property_type, system_public_property_type;
+#line 143
+
+#line 143
+  
+#line 143
+
+#line 143
+allow vendor_init property_socket:sock_file write;
+#line 143
+allow vendor_init init:unix_stream_socket connectto;
+#line 143
+
+#line 143
+allow vendor_init camera_config_prop:property_service set;
+#line 143
+
+#line 143
+allow vendor_init camera_config_prop:file { getattr open read map };
+#line 143
+
+#line 143
+
+#line 143
+  neverallow { domain -init -vendor_init } camera_config_prop:property_service set;
+#line 143
+
+
+#line 144
+  
+#line 144
+  type camera2_extensions_prop, property_type, system_property_type, system_public_property_type;
+#line 144
+
+#line 144
+  
+#line 144
+
+#line 144
+allow vendor_init property_socket:sock_file write;
+#line 144
+allow vendor_init init:unix_stream_socket connectto;
+#line 144
+
+#line 144
+allow vendor_init camera2_extensions_prop:property_service set;
+#line 144
+
+#line 144
+allow vendor_init camera2_extensions_prop:file { getattr open read map };
+#line 144
+
+#line 144
+
+#line 144
+  neverallow { domain -init -vendor_init } camera2_extensions_prop:property_service set;
+#line 144
+
+
+#line 145
+  
+#line 145
+  type camerax_extensions_prop, property_type, system_property_type, system_public_property_type;
+#line 145
+
+#line 145
+  
+#line 145
+
+#line 145
+allow vendor_init property_socket:sock_file write;
+#line 145
+allow vendor_init init:unix_stream_socket connectto;
+#line 145
+
+#line 145
+allow vendor_init camerax_extensions_prop:property_service set;
+#line 145
+
+#line 145
+allow vendor_init camerax_extensions_prop:file { getattr open read map };
+#line 145
+
+#line 145
+
+#line 145
+  neverallow { domain -init -vendor_init } camerax_extensions_prop:property_service set;
+#line 145
+
+
+#line 146
+  
+#line 146
+  type charger_config_prop, property_type, system_property_type, system_public_property_type;
+#line 146
+
+#line 146
+  
+#line 146
+
+#line 146
+allow vendor_init property_socket:sock_file write;
+#line 146
+allow vendor_init init:unix_stream_socket connectto;
+#line 146
+
+#line 146
+allow vendor_init charger_config_prop:property_service set;
+#line 146
+
+#line 146
+allow vendor_init charger_config_prop:file { getattr open read map };
+#line 146
+
+#line 146
+
+#line 146
+  neverallow { domain -init -vendor_init } charger_config_prop:property_service set;
+#line 146
+
+
+#line 147
+  
+#line 147
+  type codec2_config_prop, property_type, system_property_type, system_public_property_type;
+#line 147
+
+#line 147
+  
+#line 147
+
+#line 147
+allow vendor_init property_socket:sock_file write;
+#line 147
+allow vendor_init init:unix_stream_socket connectto;
+#line 147
+
+#line 147
+allow vendor_init codec2_config_prop:property_service set;
+#line 147
+
+#line 147
+allow vendor_init codec2_config_prop:file { getattr open read map };
+#line 147
+
+#line 147
+
+#line 147
+  neverallow { domain -init -vendor_init } codec2_config_prop:property_service set;
+#line 147
+
+
+#line 148
+  
+#line 148
+  type composd_vm_vendor_prop, property_type, system_property_type, system_public_property_type;
+#line 148
+
+#line 148
+  
+#line 148
+
+#line 148
+allow vendor_init property_socket:sock_file write;
+#line 148
+allow vendor_init init:unix_stream_socket connectto;
+#line 148
+
+#line 148
+allow vendor_init composd_vm_vendor_prop:property_service set;
+#line 148
+
+#line 148
+allow vendor_init composd_vm_vendor_prop:file { getattr open read map };
+#line 148
+
+#line 148
+
+#line 148
+  neverallow { domain -init -vendor_init } composd_vm_vendor_prop:property_service set;
+#line 148
+
+
+#line 149
+  
+#line 149
+  type cpu_variant_prop, property_type, system_property_type, system_public_property_type;
+#line 149
+
+#line 149
+  
+#line 149
+
+#line 149
+allow vendor_init property_socket:sock_file write;
+#line 149
+allow vendor_init init:unix_stream_socket connectto;
+#line 149
+
+#line 149
+allow vendor_init cpu_variant_prop:property_service set;
+#line 149
+
+#line 149
+allow vendor_init cpu_variant_prop:file { getattr open read map };
+#line 149
+
+#line 149
+
+#line 149
+  neverallow { domain -init -vendor_init } cpu_variant_prop:property_service set;
+#line 149
+
+
+#line 150
+  
+#line 150
+  type debugfs_restriction_prop, property_type, system_property_type, system_public_property_type;
+#line 150
+
+#line 150
+  
+#line 150
+
+#line 150
+allow vendor_init property_socket:sock_file write;
+#line 150
+allow vendor_init init:unix_stream_socket connectto;
+#line 150
+
+#line 150
+allow vendor_init debugfs_restriction_prop:property_service set;
+#line 150
+
+#line 150
+allow vendor_init debugfs_restriction_prop:file { getattr open read map };
+#line 150
+
+#line 150
+
+#line 150
+  neverallow { domain -init -vendor_init } debugfs_restriction_prop:property_service set;
+#line 150
+
+
+#line 151
+  
+#line 151
+  type drm_service_config_prop, property_type, system_property_type, system_public_property_type;
+#line 151
+
+#line 151
+  
+#line 151
+
+#line 151
+allow vendor_init property_socket:sock_file write;
+#line 151
+allow vendor_init init:unix_stream_socket connectto;
+#line 151
+
+#line 151
+allow vendor_init drm_service_config_prop:property_service set;
+#line 151
+
+#line 151
+allow vendor_init drm_service_config_prop:file { getattr open read map };
+#line 151
+
+#line 151
+
+#line 151
+  neverallow { domain -init -vendor_init } drm_service_config_prop:property_service set;
+#line 151
+
+
+#line 152
+  
+#line 152
+  type exported_camera_prop, property_type, system_property_type, system_public_property_type;
+#line 152
+
+#line 152
+  
+#line 152
+
+#line 152
+allow vendor_init property_socket:sock_file write;
+#line 152
+allow vendor_init init:unix_stream_socket connectto;
+#line 152
+
+#line 152
+allow vendor_init exported_camera_prop:property_service set;
+#line 152
+
+#line 152
+allow vendor_init exported_camera_prop:file { getattr open read map };
+#line 152
+
+#line 152
+
+#line 152
+  neverallow { domain -init -vendor_init } exported_camera_prop:property_service set;
+#line 152
+
+
+#line 153
+  
+#line 153
+  type exported_config_prop, property_type, system_property_type, system_public_property_type;
+#line 153
+
+#line 153
+  
+#line 153
+
+#line 153
+allow vendor_init property_socket:sock_file write;
+#line 153
+allow vendor_init init:unix_stream_socket connectto;
+#line 153
+
+#line 153
+allow vendor_init exported_config_prop:property_service set;
+#line 153
+
+#line 153
+allow vendor_init exported_config_prop:file { getattr open read map };
+#line 153
+
+#line 153
+
+#line 153
+  neverallow { domain -init -vendor_init } exported_config_prop:property_service set;
+#line 153
+
+
+#line 154
+  
+#line 154
+  type exported_default_prop, property_type, system_property_type, system_public_property_type;
+#line 154
+
+#line 154
+  
+#line 154
+
+#line 154
+allow vendor_init property_socket:sock_file write;
+#line 154
+allow vendor_init init:unix_stream_socket connectto;
+#line 154
+
+#line 154
+allow vendor_init exported_default_prop:property_service set;
+#line 154
+
+#line 154
+allow vendor_init exported_default_prop:file { getattr open read map };
+#line 154
+
+#line 154
+
+#line 154
+  neverallow { domain -init -vendor_init } exported_default_prop:property_service set;
+#line 154
+
+
+#line 155
+  
+#line 155
+  type ffs_config_prop, property_type, system_property_type, system_public_property_type;
+#line 155
+
+#line 155
+  
+#line 155
+
+#line 155
+allow vendor_init property_socket:sock_file write;
+#line 155
+allow vendor_init init:unix_stream_socket connectto;
+#line 155
+
+#line 155
+allow vendor_init ffs_config_prop:property_service set;
+#line 155
+
+#line 155
+allow vendor_init ffs_config_prop:file { getattr open read map };
+#line 155
+
+#line 155
+
+#line 155
+  neverallow { domain -init -vendor_init } ffs_config_prop:property_service set;
+#line 155
+
+
+#line 156
+  
+#line 156
+  type framework_watchdog_config_prop, property_type, system_property_type, system_public_property_type;
+#line 156
+
+#line 156
+  
+#line 156
+
+#line 156
+allow vendor_init property_socket:sock_file write;
+#line 156
+allow vendor_init init:unix_stream_socket connectto;
+#line 156
+
+#line 156
+allow vendor_init framework_watchdog_config_prop:property_service set;
+#line 156
+
+#line 156
+allow vendor_init framework_watchdog_config_prop:file { getattr open read map };
+#line 156
+
+#line 156
+
+#line 156
+  neverallow { domain -init -vendor_init } framework_watchdog_config_prop:property_service set;
+#line 156
+
+
+#line 157
+  
+#line 157
+  type graphics_config_prop, property_type, system_property_type, system_public_property_type;
+#line 157
+
+#line 157
+  
+#line 157
+
+#line 157
+allow vendor_init property_socket:sock_file write;
+#line 157
+allow vendor_init init:unix_stream_socket connectto;
+#line 157
+
+#line 157
+allow vendor_init graphics_config_prop:property_service set;
+#line 157
+
+#line 157
+allow vendor_init graphics_config_prop:file { getattr open read map };
+#line 157
+
+#line 157
+
+#line 157
+  neverallow { domain -init -vendor_init } graphics_config_prop:property_service set;
+#line 157
+
+
+#line 158
+  
+#line 158
+  type hdmi_config_prop, property_type, system_property_type, system_public_property_type;
+#line 158
+
+#line 158
+  
+#line 158
+
+#line 158
+allow vendor_init property_socket:sock_file write;
+#line 158
+allow vendor_init init:unix_stream_socket connectto;
+#line 158
+
+#line 158
+allow vendor_init hdmi_config_prop:property_service set;
+#line 158
+
+#line 158
+allow vendor_init hdmi_config_prop:file { getattr open read map };
+#line 158
+
+#line 158
+
+#line 158
+  neverallow { domain -init -vendor_init } hdmi_config_prop:property_service set;
+#line 158
+
+
+#line 159
+  
+#line 159
+  type hw_timeout_multiplier_prop, property_type, system_property_type, system_public_property_type;
+#line 159
+
+#line 159
+  
+#line 159
+
+#line 159
+allow vendor_init property_socket:sock_file write;
+#line 159
+allow vendor_init init:unix_stream_socket connectto;
+#line 159
+
+#line 159
+allow vendor_init hw_timeout_multiplier_prop:property_service set;
+#line 159
+
+#line 159
+allow vendor_init hw_timeout_multiplier_prop:file { getattr open read map };
+#line 159
+
+#line 159
+
+#line 159
+  neverallow { domain -init -vendor_init } hw_timeout_multiplier_prop:property_service set;
+#line 159
+
+
+#line 160
+  
+#line 160
+  type hypervisor_prop, property_type, system_property_type, system_public_property_type;
+#line 160
+
+#line 160
+  
+#line 160
+
+#line 160
+allow vendor_init property_socket:sock_file write;
+#line 160
+allow vendor_init init:unix_stream_socket connectto;
+#line 160
+
+#line 160
+allow vendor_init hypervisor_prop:property_service set;
+#line 160
+
+#line 160
+allow vendor_init hypervisor_prop:file { getattr open read map };
+#line 160
+
+#line 160
+
+#line 160
+  neverallow { domain -init -vendor_init } hypervisor_prop:property_service set;
+#line 160
+
+
+#line 161
+  
+#line 161
+  type hypervisor_restricted_prop, property_type, system_property_type, system_public_property_type;
+#line 161
+
+#line 161
+  
+#line 161
+
+#line 161
+allow vendor_init property_socket:sock_file write;
+#line 161
+allow vendor_init init:unix_stream_socket connectto;
+#line 161
+
+#line 161
+allow vendor_init hypervisor_restricted_prop:property_service set;
+#line 161
+
+#line 161
+allow vendor_init hypervisor_restricted_prop:file { getattr open read map };
+#line 161
+
+#line 161
+
+#line 161
+  neverallow { domain -init -vendor_init } hypervisor_restricted_prop:property_service set;
+#line 161
+
+
+#line 162
+  
+#line 162
+  type incremental_prop, property_type, system_property_type, system_public_property_type;
+#line 162
+
+#line 162
+  
+#line 162
+
+#line 162
+allow vendor_init property_socket:sock_file write;
+#line 162
+allow vendor_init init:unix_stream_socket connectto;
+#line 162
+
+#line 162
+allow vendor_init incremental_prop:property_service set;
+#line 162
+
+#line 162
+allow vendor_init incremental_prop:file { getattr open read map };
+#line 162
+
+#line 162
+
+#line 162
+  neverallow { domain -init -vendor_init } incremental_prop:property_service set;
+#line 162
+
+
+#line 163
+  
+#line 163
+  type input_device_config_prop, property_type, system_property_type, system_public_property_type;
+#line 163
+
+#line 163
+  
+#line 163
+
+#line 163
+allow vendor_init property_socket:sock_file write;
+#line 163
+allow vendor_init init:unix_stream_socket connectto;
+#line 163
+
+#line 163
+allow vendor_init input_device_config_prop:property_service set;
+#line 163
+
+#line 163
+allow vendor_init input_device_config_prop:file { getattr open read map };
+#line 163
+
+#line 163
+
+#line 163
+  neverallow { domain -init -vendor_init } input_device_config_prop:property_service set;
+#line 163
+
+
+#line 164
+  
+#line 164
+  type keyguard_config_prop, property_type, system_property_type, system_public_property_type;
+#line 164
+
+#line 164
+  
+#line 164
+
+#line 164
+allow vendor_init property_socket:sock_file write;
+#line 164
+allow vendor_init init:unix_stream_socket connectto;
+#line 164
+
+#line 164
+allow vendor_init keyguard_config_prop:property_service set;
+#line 164
+
+#line 164
+allow vendor_init keyguard_config_prop:file { getattr open read map };
+#line 164
+
+#line 164
+
+#line 164
+  neverallow { domain -init -vendor_init } keyguard_config_prop:property_service set;
+#line 164
+
+
+#line 165
+  
+#line 165
+  type keystore_config_prop, property_type, system_property_type, system_public_property_type;
+#line 165
+
+#line 165
+  
+#line 165
+
+#line 165
+allow vendor_init property_socket:sock_file write;
+#line 165
+allow vendor_init init:unix_stream_socket connectto;
+#line 165
+
+#line 165
+allow vendor_init keystore_config_prop:property_service set;
+#line 165
+
+#line 165
+allow vendor_init keystore_config_prop:file { getattr open read map };
+#line 165
+
+#line 165
+
+#line 165
+  neverallow { domain -init -vendor_init } keystore_config_prop:property_service set;
+#line 165
+
+
+#line 166
+  
+#line 166
+  type lmkd_config_prop, property_type, system_property_type, system_public_property_type;
+#line 166
+
+#line 166
+  
+#line 166
+
+#line 166
+allow vendor_init property_socket:sock_file write;
+#line 166
+allow vendor_init init:unix_stream_socket connectto;
+#line 166
+
+#line 166
+allow vendor_init lmkd_config_prop:property_service set;
+#line 166
+
+#line 166
+allow vendor_init lmkd_config_prop:file { getattr open read map };
+#line 166
+
+#line 166
+
+#line 166
+  neverallow { domain -init -vendor_init } lmkd_config_prop:property_service set;
+#line 166
+
+
+#line 167
+  
+#line 167
+  type media_config_prop, property_type, system_property_type, system_public_property_type;
+#line 167
+
+#line 167
+  
+#line 167
+
+#line 167
+allow vendor_init property_socket:sock_file write;
+#line 167
+allow vendor_init init:unix_stream_socket connectto;
+#line 167
+
+#line 167
+allow vendor_init media_config_prop:property_service set;
+#line 167
+
+#line 167
+allow vendor_init media_config_prop:file { getattr open read map };
+#line 167
+
+#line 167
+
+#line 167
+  neverallow { domain -init -vendor_init } media_config_prop:property_service set;
+#line 167
+
+
+#line 168
+  
+#line 168
+  type media_variant_prop, property_type, system_property_type, system_public_property_type;
+#line 168
+
+#line 168
+  
+#line 168
+
+#line 168
+allow vendor_init property_socket:sock_file write;
+#line 168
+allow vendor_init init:unix_stream_socket connectto;
+#line 168
+
+#line 168
+allow vendor_init media_variant_prop:property_service set;
+#line 168
+
+#line 168
+allow vendor_init media_variant_prop:file { getattr open read map };
+#line 168
+
+#line 168
+
+#line 168
+  neverallow { domain -init -vendor_init } media_variant_prop:property_service set;
+#line 168
+
+
+#line 169
+  
+#line 169
+  type mediadrm_config_prop, property_type, system_property_type, system_public_property_type;
+#line 169
+
+#line 169
+  
+#line 169
+
+#line 169
+allow vendor_init property_socket:sock_file write;
+#line 169
+allow vendor_init init:unix_stream_socket connectto;
+#line 169
+
+#line 169
+allow vendor_init mediadrm_config_prop:property_service set;
+#line 169
+
+#line 169
+allow vendor_init mediadrm_config_prop:file { getattr open read map };
+#line 169
+
+#line 169
+
+#line 169
+  neverallow { domain -init -vendor_init } mediadrm_config_prop:property_service set;
+#line 169
+
+
+#line 170
+  
+#line 170
+  type mm_events_config_prop, property_type, system_property_type, system_public_property_type;
+#line 170
+
+#line 170
+  
+#line 170
+
+#line 170
+allow vendor_init property_socket:sock_file write;
+#line 170
+allow vendor_init init:unix_stream_socket connectto;
+#line 170
+
+#line 170
+allow vendor_init mm_events_config_prop:property_service set;
+#line 170
+
+#line 170
+allow vendor_init mm_events_config_prop:file { getattr open read map };
+#line 170
+
+#line 170
+
+#line 170
+  neverallow { domain -init -vendor_init } mm_events_config_prop:property_service set;
+#line 170
+
+
+#line 171
+  
+#line 171
+  type oem_unlock_prop, property_type, system_property_type, system_public_property_type;
+#line 171
+
+#line 171
+  
+#line 171
+
+#line 171
+allow vendor_init property_socket:sock_file write;
+#line 171
+allow vendor_init init:unix_stream_socket connectto;
+#line 171
+
+#line 171
+allow vendor_init oem_unlock_prop:property_service set;
+#line 171
+
+#line 171
+allow vendor_init oem_unlock_prop:file { getattr open read map };
+#line 171
+
+#line 171
+
+#line 171
+  neverallow { domain -init -vendor_init } oem_unlock_prop:property_service set;
+#line 171
+
+
+#line 172
+  
+#line 172
+  type ota_build_prop, property_type, system_property_type, system_public_property_type;
+#line 172
+
+#line 172
+  
+#line 172
+
+#line 172
+allow vendor_init property_socket:sock_file write;
+#line 172
+allow vendor_init init:unix_stream_socket connectto;
+#line 172
+
+#line 172
+allow vendor_init ota_build_prop:property_service set;
+#line 172
+
+#line 172
+allow vendor_init ota_build_prop:file { getattr open read map };
+#line 172
+
+#line 172
+
+#line 172
+  neverallow { domain -init -vendor_init } ota_build_prop:property_service set;
+#line 172
+
+
+#line 173
+  
+#line 173
+  type packagemanager_config_prop, property_type, system_property_type, system_public_property_type;
+#line 173
+
+#line 173
+  
+#line 173
+
+#line 173
+allow vendor_init property_socket:sock_file write;
+#line 173
+allow vendor_init init:unix_stream_socket connectto;
+#line 173
+
+#line 173
+allow vendor_init packagemanager_config_prop:property_service set;
+#line 173
+
+#line 173
+allow vendor_init packagemanager_config_prop:file { getattr open read map };
+#line 173
+
+#line 173
+
+#line 173
+  neverallow { domain -init -vendor_init } packagemanager_config_prop:property_service set;
+#line 173
+
+
+#line 174
+  
+#line 174
+  type quick_start_prop, property_type, system_property_type, system_public_property_type;
+#line 174
+
+#line 174
+  
+#line 174
+
+#line 174
+allow vendor_init property_socket:sock_file write;
+#line 174
+allow vendor_init init:unix_stream_socket connectto;
+#line 174
+
+#line 174
+allow vendor_init quick_start_prop:property_service set;
+#line 174
+
+#line 174
+allow vendor_init quick_start_prop:file { getattr open read map };
+#line 174
+
+#line 174
+
+#line 174
+  neverallow { domain -init -vendor_init } quick_start_prop:property_service set;
+#line 174
+
+
+#line 175
+  
+#line 175
+  type recovery_config_prop, property_type, system_property_type, system_public_property_type;
+#line 175
+
+#line 175
+  
+#line 175
+
+#line 175
+allow vendor_init property_socket:sock_file write;
+#line 175
+allow vendor_init init:unix_stream_socket connectto;
+#line 175
+
+#line 175
+allow vendor_init recovery_config_prop:property_service set;
+#line 175
+
+#line 175
+allow vendor_init recovery_config_prop:file { getattr open read map };
+#line 175
+
+#line 175
+
+#line 175
+  neverallow { domain -init -vendor_init } recovery_config_prop:property_service set;
+#line 175
+
+
+#line 176
+  
+#line 176
+  type recovery_usb_config_prop, property_type, system_property_type, system_public_property_type;
+#line 176
+
+#line 176
+  
+#line 176
+
+#line 176
+allow vendor_init property_socket:sock_file write;
+#line 176
+allow vendor_init init:unix_stream_socket connectto;
+#line 176
+
+#line 176
+allow vendor_init recovery_usb_config_prop:property_service set;
+#line 176
+
+#line 176
+allow vendor_init recovery_usb_config_prop:file { getattr open read map };
+#line 176
+
+#line 176
+
+#line 176
+  neverallow { domain -init -vendor_init } recovery_usb_config_prop:property_service set;
+#line 176
+
+
+#line 177
+  
+#line 177
+  type sendbug_config_prop, property_type, system_property_type, system_public_property_type;
+#line 177
+
+#line 177
+  
+#line 177
+
+#line 177
+allow vendor_init property_socket:sock_file write;
+#line 177
+allow vendor_init init:unix_stream_socket connectto;
+#line 177
+
+#line 177
+allow vendor_init sendbug_config_prop:property_service set;
+#line 177
+
+#line 177
+allow vendor_init sendbug_config_prop:file { getattr open read map };
+#line 177
+
+#line 177
+
+#line 177
+  neverallow { domain -init -vendor_init } sendbug_config_prop:property_service set;
+#line 177
+
+
+#line 178
+  
+#line 178
+  type soc_prop, property_type, system_property_type, system_public_property_type;
+#line 178
+
+#line 178
+  
+#line 178
+
+#line 178
+allow vendor_init property_socket:sock_file write;
+#line 178
+allow vendor_init init:unix_stream_socket connectto;
+#line 178
+
+#line 178
+allow vendor_init soc_prop:property_service set;
+#line 178
+
+#line 178
+allow vendor_init soc_prop:file { getattr open read map };
+#line 178
+
+#line 178
+
+#line 178
+  neverallow { domain -init -vendor_init } soc_prop:property_service set;
+#line 178
+
+
+#line 179
+  
+#line 179
+  type storage_config_prop, property_type, system_property_type, system_public_property_type;
+#line 179
+
+#line 179
+  
+#line 179
+
+#line 179
+allow vendor_init property_socket:sock_file write;
+#line 179
+allow vendor_init init:unix_stream_socket connectto;
+#line 179
+
+#line 179
+allow vendor_init storage_config_prop:property_service set;
+#line 179
+
+#line 179
+allow vendor_init storage_config_prop:file { getattr open read map };
+#line 179
+
+#line 179
+
+#line 179
+  neverallow { domain -init -vendor_init } storage_config_prop:property_service set;
+#line 179
+
+
+#line 180
+  
+#line 180
+  type storagemanager_config_prop, property_type, system_property_type, system_public_property_type;
+#line 180
+
+#line 180
+  
+#line 180
+
+#line 180
+allow vendor_init property_socket:sock_file write;
+#line 180
+allow vendor_init init:unix_stream_socket connectto;
+#line 180
+
+#line 180
+allow vendor_init storagemanager_config_prop:property_service set;
+#line 180
+
+#line 180
+allow vendor_init storagemanager_config_prop:file { getattr open read map };
+#line 180
+
+#line 180
+
+#line 180
+  neverallow { domain -init -vendor_init } storagemanager_config_prop:property_service set;
+#line 180
+
+
+#line 181
+  
+#line 181
+  type surfaceflinger_prop, property_type, system_property_type, system_public_property_type;
+#line 181
+
+#line 181
+  
+#line 181
+
+#line 181
+allow vendor_init property_socket:sock_file write;
+#line 181
+allow vendor_init init:unix_stream_socket connectto;
+#line 181
+
+#line 181
+allow vendor_init surfaceflinger_prop:property_service set;
+#line 181
+
+#line 181
+allow vendor_init surfaceflinger_prop:file { getattr open read map };
+#line 181
+
+#line 181
+
+#line 181
+  neverallow { domain -init -vendor_init } surfaceflinger_prop:property_service set;
+#line 181
+
+
+#line 182
+  
+#line 182
+  type suspend_prop, property_type, system_property_type, system_public_property_type;
+#line 182
+
+#line 182
+  
+#line 182
+
+#line 182
+allow vendor_init property_socket:sock_file write;
+#line 182
+allow vendor_init init:unix_stream_socket connectto;
+#line 182
+
+#line 182
+allow vendor_init suspend_prop:property_service set;
+#line 182
+
+#line 182
+allow vendor_init suspend_prop:file { getattr open read map };
+#line 182
+
+#line 182
+
+#line 182
+  neverallow { domain -init -vendor_init } suspend_prop:property_service set;
+#line 182
+
+
+#line 183
+  
+#line 183
+  type systemsound_config_prop, property_type, system_property_type, system_public_property_type;
+#line 183
+
+#line 183
+  
+#line 183
+
+#line 183
+allow vendor_init property_socket:sock_file write;
+#line 183
+allow vendor_init init:unix_stream_socket connectto;
+#line 183
+
+#line 183
+allow vendor_init systemsound_config_prop:property_service set;
+#line 183
+
+#line 183
+allow vendor_init systemsound_config_prop:file { getattr open read map };
+#line 183
+
+#line 183
+
+#line 183
+  neverallow { domain -init -vendor_init } systemsound_config_prop:property_service set;
+#line 183
+
+
+#line 184
+  
+#line 184
+  type telephony_config_prop, property_type, system_property_type, system_public_property_type;
+#line 184
+
+#line 184
+  
+#line 184
+
+#line 184
+allow vendor_init property_socket:sock_file write;
+#line 184
+allow vendor_init init:unix_stream_socket connectto;
+#line 184
+
+#line 184
+allow vendor_init telephony_config_prop:property_service set;
+#line 184
+
+#line 184
+allow vendor_init telephony_config_prop:file { getattr open read map };
+#line 184
+
+#line 184
+
+#line 184
+  neverallow { domain -init -vendor_init } telephony_config_prop:property_service set;
+#line 184
+
+
+#line 185
+  
+#line 185
+  type threadnetwork_config_prop, property_type, system_property_type, system_public_property_type;
+#line 185
+
+#line 185
+  
+#line 185
+
+#line 185
+allow vendor_init property_socket:sock_file write;
+#line 185
+allow vendor_init init:unix_stream_socket connectto;
+#line 185
+
+#line 185
+allow vendor_init threadnetwork_config_prop:property_service set;
+#line 185
+
+#line 185
+allow vendor_init threadnetwork_config_prop:file { getattr open read map };
+#line 185
+
+#line 185
+
+#line 185
+  neverallow { domain -init -vendor_init } threadnetwork_config_prop:property_service set;
+#line 185
+
+
+#line 186
+  
+#line 186
+  type tombstone_config_prop, property_type, system_property_type, system_public_property_type;
+#line 186
+
+#line 186
+  
+#line 186
+
+#line 186
+allow vendor_init property_socket:sock_file write;
+#line 186
+allow vendor_init init:unix_stream_socket connectto;
+#line 186
+
+#line 186
+allow vendor_init tombstone_config_prop:property_service set;
+#line 186
+
+#line 186
+allow vendor_init tombstone_config_prop:file { getattr open read map };
+#line 186
+
+#line 186
+
+#line 186
+  neverallow { domain -init -vendor_init } tombstone_config_prop:property_service set;
+#line 186
+
+
+#line 187
+  
+#line 187
+  type usb_config_prop, property_type, system_property_type, system_public_property_type;
+#line 187
+
+#line 187
+  
+#line 187
+
+#line 187
+allow vendor_init property_socket:sock_file write;
+#line 187
+allow vendor_init init:unix_stream_socket connectto;
+#line 187
+
+#line 187
+allow vendor_init usb_config_prop:property_service set;
+#line 187
+
+#line 187
+allow vendor_init usb_config_prop:file { getattr open read map };
+#line 187
+
+#line 187
+
+#line 187
+  neverallow { domain -init -vendor_init } usb_config_prop:property_service set;
+#line 187
+
+
+#line 188
+  
+#line 188
+  type userspace_reboot_config_prop, property_type, system_property_type, system_public_property_type;
+#line 188
+
+#line 188
+  
+#line 188
+
+#line 188
+allow vendor_init property_socket:sock_file write;
+#line 188
+allow vendor_init init:unix_stream_socket connectto;
+#line 188
+
+#line 188
+allow vendor_init userspace_reboot_config_prop:property_service set;
+#line 188
+
+#line 188
+allow vendor_init userspace_reboot_config_prop:file { getattr open read map };
+#line 188
+
+#line 188
+
+#line 188
+  neverallow { domain -init -vendor_init } userspace_reboot_config_prop:property_service set;
+#line 188
+
+
+#line 189
+  
+#line 189
+  type vehicle_hal_prop, property_type, system_property_type, system_public_property_type;
+#line 189
+
+#line 189
+  
+#line 189
+
+#line 189
+allow vendor_init property_socket:sock_file write;
+#line 189
+allow vendor_init init:unix_stream_socket connectto;
+#line 189
+
+#line 189
+allow vendor_init vehicle_hal_prop:property_service set;
+#line 189
+
+#line 189
+allow vendor_init vehicle_hal_prop:file { getattr open read map };
+#line 189
+
+#line 189
+
+#line 189
+  neverallow { domain -init -vendor_init } vehicle_hal_prop:property_service set;
+#line 189
+
+
+#line 190
+  
+#line 190
+  type vendor_security_patch_level_prop, property_type, system_property_type, system_public_property_type;
+#line 190
+
+#line 190
+  
+#line 190
+
+#line 190
+allow vendor_init property_socket:sock_file write;
+#line 190
+allow vendor_init init:unix_stream_socket connectto;
+#line 190
+
+#line 190
+allow vendor_init vendor_security_patch_level_prop:property_service set;
+#line 190
+
+#line 190
+allow vendor_init vendor_security_patch_level_prop:file { getattr open read map };
+#line 190
+
+#line 190
+
+#line 190
+  neverallow { domain -init -vendor_init } vendor_security_patch_level_prop:property_service set;
+#line 190
+
+
+#line 191
+  
+#line 191
+  type vendor_socket_hook_prop, property_type, system_property_type, system_public_property_type;
+#line 191
+
+#line 191
+  
+#line 191
+
+#line 191
+allow vendor_init property_socket:sock_file write;
+#line 191
+allow vendor_init init:unix_stream_socket connectto;
+#line 191
+
+#line 191
+allow vendor_init vendor_socket_hook_prop:property_service set;
+#line 191
+
+#line 191
+allow vendor_init vendor_socket_hook_prop:file { getattr open read map };
+#line 191
+
+#line 191
+
+#line 191
+  neverallow { domain -init -vendor_init } vendor_socket_hook_prop:property_service set;
+#line 191
+
+
+#line 192
+  
+#line 192
+  type virtual_ab_prop, property_type, system_property_type, system_public_property_type;
+#line 192
+
+#line 192
+  
+#line 192
+
+#line 192
+allow vendor_init property_socket:sock_file write;
+#line 192
+allow vendor_init init:unix_stream_socket connectto;
+#line 192
+
+#line 192
+allow vendor_init virtual_ab_prop:property_service set;
+#line 192
+
+#line 192
+allow vendor_init virtual_ab_prop:file { getattr open read map };
+#line 192
+
+#line 192
+
+#line 192
+  neverallow { domain -init -vendor_init } virtual_ab_prop:property_service set;
+#line 192
+
+
+#line 193
+  
+#line 193
+  type vndk_prop, property_type, system_property_type, system_public_property_type;
+#line 193
+
+#line 193
+  
+#line 193
+
+#line 193
+allow vendor_init property_socket:sock_file write;
+#line 193
+allow vendor_init init:unix_stream_socket connectto;
+#line 193
+
+#line 193
+allow vendor_init vndk_prop:property_service set;
+#line 193
+
+#line 193
+allow vendor_init vndk_prop:file { getattr open read map };
+#line 193
+
+#line 193
+
+#line 193
+  neverallow { domain -init -vendor_init } vndk_prop:property_service set;
+#line 193
+
+
+#line 194
+  
+#line 194
+  type vts_config_prop, property_type, system_property_type, system_public_property_type;
+#line 194
+
+#line 194
+  
+#line 194
+
+#line 194
+allow vendor_init property_socket:sock_file write;
+#line 194
+allow vendor_init init:unix_stream_socket connectto;
+#line 194
+
+#line 194
+allow vendor_init vts_config_prop:property_service set;
+#line 194
+
+#line 194
+allow vendor_init vts_config_prop:file { getattr open read map };
+#line 194
+
+#line 194
+
+#line 194
+  neverallow { domain -init -vendor_init } vts_config_prop:property_service set;
+#line 194
+
+
+#line 195
+  
+#line 195
+  type vold_config_prop, property_type, system_property_type, system_public_property_type;
+#line 195
+
+#line 195
+  
+#line 195
+
+#line 195
+allow vendor_init property_socket:sock_file write;
+#line 195
+allow vendor_init init:unix_stream_socket connectto;
+#line 195
+
+#line 195
+allow vendor_init vold_config_prop:property_service set;
+#line 195
+
+#line 195
+allow vendor_init vold_config_prop:file { getattr open read map };
+#line 195
+
+#line 195
+
+#line 195
+  neverallow { domain -init -vendor_init } vold_config_prop:property_service set;
+#line 195
+
+
+#line 196
+  
+#line 196
+  type wifi_config_prop, property_type, system_property_type, system_public_property_type;
+#line 196
+
+#line 196
+  
+#line 196
+
+#line 196
+allow vendor_init property_socket:sock_file write;
+#line 196
+allow vendor_init init:unix_stream_socket connectto;
+#line 196
+
+#line 196
+allow vendor_init wifi_config_prop:property_service set;
+#line 196
+
+#line 196
+allow vendor_init wifi_config_prop:file { getattr open read map };
+#line 196
+
+#line 196
+
+#line 196
+  neverallow { domain -init -vendor_init } wifi_config_prop:property_service set;
+#line 196
+
+
+#line 197
+  
+#line 197
+  type zram_config_prop, property_type, system_property_type, system_public_property_type;
+#line 197
+
+#line 197
+  
+#line 197
+
+#line 197
+allow vendor_init property_socket:sock_file write;
+#line 197
+allow vendor_init init:unix_stream_socket connectto;
+#line 197
+
+#line 197
+allow vendor_init zram_config_prop:property_service set;
+#line 197
+
+#line 197
+allow vendor_init zram_config_prop:file { getattr open read map };
+#line 197
+
+#line 197
+
+#line 197
+  neverallow { domain -init -vendor_init } zram_config_prop:property_service set;
+#line 197
+
+
+#line 198
+  
+#line 198
+  type zygote_config_prop, property_type, system_property_type, system_public_property_type;
+#line 198
+
+#line 198
+  
+#line 198
+
+#line 198
+allow vendor_init property_socket:sock_file write;
+#line 198
+allow vendor_init init:unix_stream_socket connectto;
+#line 198
+
+#line 198
+allow vendor_init zygote_config_prop:property_service set;
+#line 198
+
+#line 198
+allow vendor_init zygote_config_prop:file { getattr open read map };
+#line 198
+
+#line 198
+
+#line 198
+  neverallow { domain -init -vendor_init } zygote_config_prop:property_service set;
+#line 198
+
+
+#line 199
+  
+#line 199
+  type dck_prop, property_type, system_property_type, system_public_property_type;
+#line 199
+
+#line 199
+  
+#line 199
+
+#line 199
+allow vendor_init property_socket:sock_file write;
+#line 199
+allow vendor_init init:unix_stream_socket connectto;
+#line 199
+
+#line 199
+allow vendor_init dck_prop:property_service set;
+#line 199
+
+#line 199
+allow vendor_init dck_prop:file { getattr open read map };
+#line 199
+
+#line 199
+
+#line 199
+  neverallow { domain -init -vendor_init } dck_prop:property_service set;
+#line 199
+
+
+#line 200
+  
+#line 200
+  type tuner_config_prop, property_type, system_property_type, system_public_property_type;
+#line 200
+
+#line 200
+  
+#line 200
+
+#line 200
+allow vendor_init property_socket:sock_file write;
+#line 200
+allow vendor_init init:unix_stream_socket connectto;
+#line 200
+
+#line 200
+allow vendor_init tuner_config_prop:property_service set;
+#line 200
+
+#line 200
+allow vendor_init tuner_config_prop:file { getattr open read map };
+#line 200
+
+#line 200
+
+#line 200
+  neverallow { domain -init -vendor_init } tuner_config_prop:property_service set;
+#line 200
+
+
+#line 201
+  
+#line 201
+  type usb_uvc_enabled_prop, property_type, system_property_type, system_public_property_type;
+#line 201
+
+#line 201
+  
+#line 201
+
+#line 201
+allow vendor_init property_socket:sock_file write;
+#line 201
+allow vendor_init init:unix_stream_socket connectto;
+#line 201
+
+#line 201
+allow vendor_init usb_uvc_enabled_prop:property_service set;
+#line 201
+
+#line 201
+allow vendor_init usb_uvc_enabled_prop:file { getattr open read map };
+#line 201
+
+#line 201
+
+#line 201
+  neverallow { domain -init -vendor_init } usb_uvc_enabled_prop:property_service set;
+#line 201
+
+
+#line 202
+  
+#line 202
+  type setupwizard_mode_prop, property_type, system_property_type, system_public_property_type;
+#line 202
+
+#line 202
+  
+#line 202
+
+#line 202
+allow vendor_init property_socket:sock_file write;
+#line 202
+allow vendor_init init:unix_stream_socket connectto;
+#line 202
+
+#line 202
+allow vendor_init setupwizard_mode_prop:property_service set;
+#line 202
+
+#line 202
+allow vendor_init setupwizard_mode_prop:file { getattr open read map };
+#line 202
+
+#line 202
+
+#line 202
+  neverallow { domain -init -vendor_init } setupwizard_mode_prop:property_service set;
+#line 202
+
+
+#line 203
+  
+#line 203
+  type pm_archiving_enabled_prop, property_type, system_property_type, system_public_property_type;
+#line 203
+
+#line 203
+  
+#line 203
+
+#line 203
+allow vendor_init property_socket:sock_file write;
+#line 203
+allow vendor_init init:unix_stream_socket connectto;
+#line 203
+
+#line 203
+allow vendor_init pm_archiving_enabled_prop:property_service set;
+#line 203
+
+#line 203
+allow vendor_init pm_archiving_enabled_prop:file { getattr open read map };
+#line 203
+
+#line 203
+
+#line 203
+  neverallow { domain -init -vendor_init } pm_archiving_enabled_prop:property_service set;
+#line 203
+
+
+# Properties with no restrictions
+
+#line 206
+  type adbd_config_prop, property_type, system_property_type, system_public_property_type;
+#line 206
+
+
+#line 207
+  type audio_prop, property_type, system_property_type, system_public_property_type;
+#line 207
+
+
+#line 208
+  type bluetooth_a2dp_offload_prop, property_type, system_property_type, system_public_property_type;
+#line 208
+
+
+#line 209
+  type bluetooth_audio_hal_prop, property_type, system_property_type, system_public_property_type;
+#line 209
+
+
+#line 210
+  type bluetooth_prop, property_type, system_property_type, system_public_property_type;
+#line 210
+
+
+#line 211
+  type bpf_progs_loaded_prop, property_type, system_property_type, system_public_property_type;
+#line 211
+
+
+#line 212
+  type charger_status_prop, property_type, system_property_type, system_public_property_type;
+#line 212
+
+
+#line 213
+  type ctl_default_prop, property_type, system_property_type, system_public_property_type;
+#line 213
+
+
+#line 214
+  type ctl_interface_start_prop, property_type, system_property_type, system_public_property_type;
+#line 214
+
+
+#line 215
+  type ctl_start_prop, property_type, system_property_type, system_public_property_type;
+#line 215
+
+
+#line 216
+  type ctl_stop_prop, property_type, system_property_type, system_public_property_type;
+#line 216
+
+
+#line 217
+  type dalvik_config_prop, property_type, system_property_type, system_public_property_type;
+#line 217
+
+
+#line 218
+  type dalvik_dynamic_config_prop, property_type, system_property_type, system_public_property_type;
+#line 218
+
+
+#line 219
+  type dalvik_runtime_prop, property_type, system_property_type, system_public_property_type;
+#line 219
+
+
+#line 220
+  type debug_prop, property_type, system_property_type, system_public_property_type;
+#line 220
+
+
+#line 221
+  type device_config_memory_safety_native_boot_prop, property_type, system_property_type, system_public_property_type;
+#line 221
+
+
+#line 222
+  type device_config_memory_safety_native_prop, property_type, system_property_type, system_public_property_type;
+#line 222
+
+
+#line 223
+  type dumpstate_options_prop, property_type, system_property_type, system_public_property_type;
+#line 223
+
+
+#line 224
+  type exported_system_prop, property_type, system_property_type, system_public_property_type;
+#line 224
+
+
+#line 225
+  type exported_bluetooth_prop, property_type, system_property_type, system_public_property_type;
+#line 225
+
+
+#line 226
+  type exported_overlay_prop, property_type, system_property_type, system_public_property_type;
+#line 226
+
+
+#line 227
+  type exported_pm_prop, property_type, system_property_type, system_public_property_type;
+#line 227
+
+
+#line 228
+  type future_pm_prop, property_type, system_property_type, system_public_property_type;
+#line 228
+
+
+#line 229
+  type ffs_control_prop, property_type, system_property_type, system_public_property_type;
+#line 229
+
+
+#line 230
+  type framework_status_prop, property_type, system_property_type, system_public_property_type;
+#line 230
+
+
+#line 231
+  type gesture_prop, property_type, system_property_type, system_public_property_type;
+#line 231
+
+
+#line 232
+  type graphics_config_writable_prop, property_type, system_property_type, system_public_property_type;
+#line 232
+
+
+#line 233
+  type hal_dumpstate_config_prop, property_type, system_property_type, system_public_property_type;
+#line 233
+
+
+#line 234
+  type sota_prop, property_type, system_property_type, system_public_property_type;
+#line 234
+
+
+#line 235
+  type hwservicemanager_prop, property_type, system_property_type, system_public_property_type;
+#line 235
+
+
+#line 236
+  type lmkd_prop, property_type, system_property_type, system_public_property_type;
+#line 236
+
+
+#line 237
+  type locale_prop, property_type, system_property_type, system_public_property_type;
+#line 237
+
+
+#line 238
+  type logd_prop, property_type, system_property_type, system_public_property_type;
+#line 238
+
+
+#line 239
+  type logpersistd_logging_prop, property_type, system_property_type, system_public_property_type;
+#line 239
+
+
+#line 240
+  type log_prop, property_type, system_property_type, system_public_property_type;
+#line 240
+
+
+#line 241
+  type log_tag_prop, property_type, system_property_type, system_public_property_type;
+#line 241
+
+
+#line 242
+  type lowpan_prop, property_type, system_property_type, system_public_property_type;
+#line 242
+
+
+#line 243
+  type nfc_prop, property_type, system_property_type, system_public_property_type;
+#line 243
+
+
+#line 244
+  type ota_prop, property_type, system_property_type, system_public_property_type;
+#line 244
+
+
+#line 245
+  type permissive_mte_prop, property_type, system_property_type, system_public_property_type;
+#line 245
+
+
+#line 246
+  type powerctl_prop, property_type, system_property_type, system_public_property_type;
+#line 246
+
+
+#line 247
+  type qemu_hw_prop, property_type, system_property_type, system_public_property_type;
+#line 247
+
+
+#line 248
+  type qemu_sf_lcd_density_prop, property_type, system_property_type, system_public_property_type;
+#line 248
+
+
+#line 249
+  type radio_control_prop, property_type, system_property_type, system_public_property_type;
+#line 249
+
+
+#line 250
+  type radio_prop, property_type, system_property_type, system_public_property_type;
+#line 250
+
+
+#line 251
+  type serialno_prop, property_type, system_property_type, system_public_property_type;
+#line 251
+
+
+#line 252
+  type surfaceflinger_color_prop, property_type, system_property_type, system_public_property_type;
+#line 252
+
+
+#line 253
+  type system_prop, property_type, system_property_type, system_public_property_type;
+#line 253
+
+
+#line 254
+  type system_user_mode_emulation_prop, property_type, system_property_type, system_public_property_type;
+#line 254
+
+
+#line 255
+  type telephony_status_prop, property_type, system_property_type, system_public_property_type;
+#line 255
+
+
+#line 256
+  type timezone_prop, property_type, system_property_type, system_public_property_type;
+#line 256
+
+
+#line 257
+  type usb_control_prop, property_type, system_property_type, system_public_property_type;
+#line 257
+
+
+#line 258
+  type vold_post_fs_data_prop, property_type, system_property_type, system_public_property_type;
+#line 258
+
+
+#line 259
+  type wifi_hal_prop, property_type, system_property_type, system_public_property_type;
+#line 259
+
+
+#line 260
+  type wifi_log_prop, property_type, system_property_type, system_public_property_type;
+#line 260
+
+
+#line 261
+  type wifi_prop, property_type, system_property_type, system_public_property_type;
+#line 261
+
+
+#line 262
+  type zram_control_prop, property_type, system_property_type, system_public_property_type;
+#line 262
+
+
+# Properties which don't have entries on property_contexts
+
+#line 265
+  
+#line 265
+  type default_prop, property_type, system_property_type, system_internal_property_type;
+#line 265
+
+#line 265
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 265
+
+#line 265
+    neverallow { domain -coredomain } default_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 265
+  
+#line 265
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 265
+
+#line 265
+
+
+# Properties used in default HAL implementations
+
+#line 268
+  
+#line 268
+  type rebootescrow_hal_prop, property_type, vendor_property_type, vendor_internal_property_type;
+#line 268
+
+#line 268
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 268
+
+#line 268
+# init and dumpstate are in coredomain, but should be able to read all props.
+#line 268
+    neverallow { coredomain -init -dumpstate } rebootescrow_hal_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 268
+  
+#line 268
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 268
+
+#line 268
+
+
+# Properties used in the default Face HAL implementations
+
+#line 271
+  
+#line 271
+  type virtual_face_hal_prop, property_type, vendor_property_type, vendor_internal_property_type;
+#line 271
+
+#line 271
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 271
+
+#line 271
+# init and dumpstate are in coredomain, but should be able to read all props.
+#line 271
+    neverallow { coredomain -init -dumpstate } virtual_face_hal_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 271
+  
+#line 271
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 271
+
+#line 271
+
+
+# Properties used in the default Fingerprint HAL implementations
+
+#line 274
+  
+#line 274
+  type virtual_fingerprint_hal_prop, property_type, vendor_property_type, vendor_internal_property_type;
+#line 274
+
+#line 274
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 274
+
+#line 274
+# init and dumpstate are in coredomain, but should be able to read all props.
+#line 274
+    neverallow { coredomain -init -dumpstate } virtual_fingerprint_hal_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 274
+  
+#line 274
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 274
+
+#line 274
+
+
+
+#line 276
+  type persist_vendor_debug_wifi_prop, property_type, vendor_property_type, vendor_public_property_type;
+#line 276
+
+
+# Properties which are public for devices launching with Android O or earlier
+# This should not be used for any new properties.
+
+#line 280
+    # DO NOT ADD ANY PROPERTIES HERE
+#line 280
+    
+#line 280
+  type boottime_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type charger_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type cold_boot_done_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_adbd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_apexd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_bootanim_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_bugreport_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_console_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_dumpstate_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_fuse_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_gsid_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_interface_restart_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_interface_stop_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_mdnsd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_restart_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_rildaemon_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type ctl_sigstop_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type dynamic_system_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type heapprofd_enabled_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type llkd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type lpdumpd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type mmc_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type mock_ota_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type net_dns_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type overlay_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type persistent_properties_ready_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type safemode_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type system_lmk_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type system_trace_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type test_boot_reason_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type time_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type traced_enabled_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type traced_lazy_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+
+#line 280
+    
+#line 280
+  type config_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type cppreopt_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type dalvik_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type debuggerd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type device_logging_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type dhcp_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type dumpstate_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type exported3_system_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type exported_dumpstate_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type exported_secure_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type heapprofd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type net_radio_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type pan_result_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type persist_debug_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type shell_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type test_harness_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type theme_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type use_memfd_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 280
+    
+#line 280
+  type vold_prop, property_type, system_property_type, system_public_property_type;
+#line 280
+
+#line 335
+
+
+
+#line 337
+    
+#line 337
+  type vendor_default_prop, property_type, vendor_property_type, vendor_public_property_type;
+#line 337
+
+#line 339
+
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 341
+
+#line 341
+    
+#line 341
+  
+#line 341
+  type vendor_default_prop, property_type, vendor_property_type, vendor_internal_property_type;
+#line 341
+
+#line 341
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 341
+
+#line 341
+# init and dumpstate are in coredomain, but should be able to read all props.
+#line 341
+    neverallow { coredomain -init -dumpstate } vendor_default_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 341
+  
+#line 341
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 341
+
+#line 341
+
+#line 341
+
+#line 341
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 343
+
+
+typeattribute log_prop log_property_type;
+typeattribute log_tag_prop log_property_type;
+typeattribute wifi_log_prop log_property_type;
+
+allow property_type tmpfs:filesystem associate;
+
+# core_property_type should not be used for new properties or
+# device specific properties. Properties with this attribute
+# are readable to everyone, which is overly broad and should
+# be avoided.
+# New properties should have appropriate read / write access
+# control rules written.
+
+typeattribute audio_prop         core_property_type;
+typeattribute config_prop        core_property_type;
+typeattribute cppreopt_prop      core_property_type;
+typeattribute dalvik_prop        core_property_type;
+typeattribute debuggerd_prop     core_property_type;
+typeattribute debug_prop         core_property_type;
+typeattribute dhcp_prop          core_property_type;
+typeattribute dumpstate_prop     core_property_type;
+typeattribute logd_prop          core_property_type;
+typeattribute net_radio_prop     core_property_type;
+typeattribute nfc_prop           core_property_type;
+typeattribute ota_prop           core_property_type;
+typeattribute pan_result_prop    core_property_type;
+typeattribute persist_debug_prop core_property_type;
+typeattribute powerctl_prop      core_property_type;
+typeattribute radio_prop         core_property_type;
+typeattribute restorecon_prop    core_property_type;
+typeattribute shell_prop         core_property_type;
+typeattribute system_prop        core_property_type;
+typeattribute usb_prop           core_property_type;
+typeattribute vold_prop          core_property_type;
+
+typeattribute dalvik_config_prop         dalvik_config_prop_type;
+typeattribute dalvik_dynamic_config_prop dalvik_config_prop_type;
+#line 1 "system/sepolicy/public/radio.te"
+# phone subsystem
+type radio, domain, mlstrustedsubject;
+
+
+#line 4
+typeattribute radio netdomain;
+#line 4
+
+
+#line 5
+typeattribute radio bluetoothdomain;
+#line 5
+
+
+#line 6
+typeattribute radio binderservicedomain;
+#line 6
+
+
+# Talks to hal_telephony_server via the rild socket only for devices without full treble
+
+#line 9
+allow radio rild_socket:sock_file write;
+#line 9
+allow radio hal_telephony_server:unix_stream_socket connectto;
+#line 9
+
+
+# Data file accesses.
+allow radio radio_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow radio radio_data_file:{ file lnk_file sock_file fifo_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow radio radio_core_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow radio radio_core_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+allow radio net_data_file:dir search;
+allow radio net_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 20
+  allow radio radio_service:service_manager { add find };
+#line 20
+  neverallow { domain -radio } radio_service:service_manager add;
+#line 20
+
+#line 20
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 20
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 20
+  
+#line 20
+
+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 app_api_service:service_manager find;
+allow radio system_api_service:service_manager find;
+allow radio timedetector_service:service_manager find;
+allow radio timezonedetector_service:service_manager find;
+
+# Perform HwBinder IPC.
+
+#line 32
+# Call the hwservicemanager and transfer references to it.
+#line 32
+allow radio hwservicemanager:binder { call transfer };
+#line 32
+# Allow hwservicemanager to send out callbacks
+#line 32
+allow hwservicemanager radio:binder { call transfer };
+#line 32
+# hwservicemanager performs getpidcon on clients.
+#line 32
+allow hwservicemanager radio:dir search;
+#line 32
+allow hwservicemanager radio:file { read open map };
+#line 32
+allow hwservicemanager radio:process getattr;
+#line 32
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 32
+# all domains in domain.te.
+#line 32
+
+
+#line 33
+typeattribute radio halclientdomain;
+#line 33
+typeattribute radio hal_telephony_client;
+#line 33
+
+#line 33
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 33
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 33
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 33
+
+#line 33
+typeattribute radio hal_telephony;
+#line 33
+# Find passthrough HAL implementations
+#line 33
+allow hal_telephony system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow hal_telephony vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow hal_telephony vendor_file:file { read open getattr execute map };
+#line 33
+
+#line 33
+
+
+# Used by TelephonyManager
+allow radio proc_cmdline:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/recovery.te"
+# recovery console (used in recovery init.rc for /sbin/recovery)
+
+# Declare the domain unconditionally so we can always reference it
+# in neverallow rules.
+type recovery, domain;
+
+# But the allow rules are only included in the recovery policy.
+# Otherwise recovery is only allowed the domain rules.
+#line 144
+
+
+###
+### neverallow rules
+###
+
+# Recovery should never touch /data.
+#
+# In particular, if /data is encrypted, it is not accessible
+# to recovery anyway.
+#
+# For now, we only enforce write/execute restrictions, as domain.te
+# contains a number of read-only rules that apply to all
+# domains, including recovery.
+#
+# TODO: tighten this up further.
+neverallow recovery {
+   data_file_type
+   -cache_file
+   -cache_recovery_file
+  
+}:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } };
+neverallow recovery {
+   data_file_type
+   -cache_file
+   -cache_recovery_file
+  
+}:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+#line 1 "system/sepolicy/public/recovery_persist.te"
+# android recovery persistent log manager
+type recovery_persist, domain;
+type recovery_persist_exec, system_file_type, exec_type, file_type;
+
+allow recovery_persist pstorefs:dir search;
+allow recovery_persist pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+
+allow recovery_persist recovery_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow recovery_persist recovery_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+allow recovery_persist cache_file:dir search;
+allow recovery_persist cache_file:lnk_file read;
+allow recovery_persist cache_recovery_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow recovery_persist cache_recovery_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+
+###
+### Neverallow rules
+###
+### recovery_persist should NEVER do any of this
+
+# Block device access.
+neverallow recovery_persist dev_type:blk_file { read write };
+
+# ptrace any other app
+neverallow recovery_persist domain:process ptrace;
+
+# Write to /system.
+neverallow recovery_persist system_file_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# Write to files in /data/data
+neverallow recovery_persist { app_data_file_type system_data_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+#line 1 "system/sepolicy/public/recovery_refresh.te"
+# android recovery refresh log manager
+type recovery_refresh, domain;
+type recovery_refresh_exec, system_file_type, exec_type, file_type;
+
+allow recovery_refresh pstorefs:dir search;
+allow recovery_refresh pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+# NB: domain inherits write_logd which hands us write to pmsg_device
+
+###
+### Neverallow rules
+###
+### recovery_refresh should NEVER do any of this
+
+# Block device access.
+neverallow recovery_refresh dev_type:blk_file { read write };
+
+# ptrace any other app
+neverallow recovery_refresh domain:process ptrace;
+
+# Write to /system.
+neverallow recovery_refresh system_file_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+
+# Write to files in /data/data or system files on /data
+neverallow recovery_refresh { app_data_file_type system_data_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } write;
+#line 1 "system/sepolicy/public/remote_provisioning_service_server.te"
+# This service is hosted by system server, and provides a stable aidl
+# front-end for a mainline module that is loaded into system server.
+
+#line 3
+  allow remote_provisioning_service_server remote_provisioning_service:service_manager { add find };
+#line 3
+  neverallow { domain -remote_provisioning_service_server } remote_provisioning_service:service_manager add;
+#line 3
+
+#line 3
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 3
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 3
+  
+#line 3
+
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow remote_provisioning_service_server servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager remote_provisioning_service_server:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager remote_provisioning_service_server:dir search;
+#line 5
+allow servicemanager remote_provisioning_service_server:file { read open };
+#line 5
+allow servicemanager remote_provisioning_service_server:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+#line 1 "system/sepolicy/public/rkpd_app.te"
+###
+### A domain for sandboxing the remote key provisioning daemon
+### app that is shipped via mainline.
+###
+
+type rkpdapp, domain;
+#line 1 "system/sepolicy/public/rootdisk_sysdev.te"
+allow rootdisk_sysdev sysfs:filesystem associate;
+#line 1 "system/sepolicy/public/rs.te"
+type rs, domain, coredomain;
+type rs_exec, system_file_type, exec_type, file_type;
+#line 1 "system/sepolicy/public/rss_hwm_reset.te"
+# rss_hwm_reset resets RSS high-water mark counters for all procesess.
+type rss_hwm_reset, domain, coredomain, mlstrustedsubject;
+#line 1 "system/sepolicy/public/runas.te"
+type runas, domain, mlstrustedsubject;
+type runas_exec, system_file_type, exec_type, file_type;
+
+allow runas adbd:fd use;
+allow runas adbd:process sigchld;
+allow runas adbd:unix_stream_socket { read write };
+allow runas shell:fd use;
+allow runas shell:fifo_file { read write };
+allow runas shell:unix_stream_socket { read write };
+allow runas devpts:chr_file { read write ioctl };
+allow runas shell_data_file:file { read write };
+
+# run-as reads package information.
+allow runas system_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow runas system_data_file:lnk_file getattr;
+allow runas packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# The app's data dir may be accessed through a symlink.
+allow runas system_data_file:lnk_file read;
+
+# run-as checks and changes to the app data dir.
+dontaudit runas self:{ capability cap_userns } { dac_override dac_read_search };
+allow runas app_data_file:dir { getattr search };
+
+# run-as switches to the app UID/GID.
+allow runas self:{ capability cap_userns } { setuid setgid };
+
+# run-as switches to the app security context.
+
+#line 29
+
+#line 29
+allow runas selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 29
+allow runas selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 29
+
+#line 29
+allow runas selinuxfs:file { open append write lock map };
+#line 29
+allow runas kernel:security check_context;
+#line 29
+ # validate context
+allow runas self:process setcurrent;
+allow runas { appdomain -system_app }:process dyntransition; # setcon
+
+# runas/libselinux needs access to seapp_contexts_file to
+# determine which domain to transition to.
+allow runas seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+###
+### neverallow rules
+###
+
+# run-as cannot have capabilities other than CAP_SETUID and CAP_SETGID
+neverallow runas self:{ capability cap_userns } ~{ setuid setgid };
+neverallow runas self:{ capability2 cap2_userns } *;
+#line 1 "system/sepolicy/public/runas_app.te"
+type runas_app, domain;
+#line 1 "system/sepolicy/public/scheduler_service_server.te"
+
+#line 1
+  allow scheduler_service_server fwk_scheduler_hwservice:hwservice_manager { add find };
+#line 1
+  allow scheduler_service_server hidl_base_hwservice:hwservice_manager add;
+#line 1
+  neverallow { domain -scheduler_service_server } fwk_scheduler_hwservice:hwservice_manager add;
+#line 1
+
+#line 1 "system/sepolicy/public/sdcardd.te"
+type sdcardd, domain;
+type sdcardd_exec, system_file_type, exec_type, file_type;
+
+allow sdcardd cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow sdcardd cgroup_v2:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow sdcardd fuse_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow sdcardd rootfs:dir mounton;  # TODO: deprecated in M
+allow sdcardd sdcardfs:filesystem remount;
+allow sdcardd tmpfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow sdcardd mnt_media_rw_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow sdcardd storage_file:dir search;
+allow sdcardd storage_stub_file:dir { search mounton };
+allow sdcardd { sdcard_type fuse }:filesystem { mount unmount };
+allow sdcardd self:{ capability cap_userns } { setuid setgid dac_override dac_read_search sys_admin sys_resource };
+
+allow sdcardd { sdcard_type fuse }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow sdcardd { sdcard_type fuse }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow sdcardd media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow sdcardd media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Read /data/system/packages.list.
+allow sdcardd system_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow sdcardd packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read /data/misc/installd/layout_version
+allow sdcardd install_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow sdcardd install_data_file:dir search;
+
+# Allow stdin/out back to vold
+allow sdcardd vold:fd use;
+allow sdcardd vold:fifo_file { read write getattr };
+
+# Allow running on top of expanded storage
+allow sdcardd mnt_expand_file:dir search;
+
+# access /proc/filesystems
+allow sdcardd proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+###
+### neverallow rules
+###
+
+# The sdcard daemon should no longer be started from init
+neverallow init sdcardd_exec:file execute;
+neverallow init sdcardd:process { transition dyntransition };
+#line 1 "system/sepolicy/public/secure_element.te"
+# secure_element subsystem
+type secure_element, domain;
+#line 1 "system/sepolicy/public/sensor_service_server.te"
+
+#line 1
+  allow sensor_service_server fwk_sensor_hwservice:hwservice_manager { add find };
+#line 1
+  allow sensor_service_server hidl_base_hwservice:hwservice_manager add;
+#line 1
+  neverallow { domain -sensor_service_server } fwk_sensor_hwservice:hwservice_manager add;
+#line 1
+
+#line 1 "system/sepolicy/public/service.te"
+type aidl_lazy_test_service,    service_manager_type;
+type apc_service,               service_manager_type;
+type apex_service,              service_manager_type;
+type artd_service,              service_manager_type;
+type artd_pre_reboot_service,   service_manager_type;
+type audioserver_service,       service_manager_type, isolated_compute_allowed_service;
+type authorization_service,     service_manager_type;
+type batteryproperties_service, app_api_service, ephemeral_app_api_service, service_manager_type;
+type bluetooth_service,         service_manager_type;
+type cameraserver_service,      service_manager_type, isolated_compute_allowed_service;
+type fwk_camera_service,        service_manager_type;
+type default_android_service,   service_manager_type;
+type device_config_updatable_service,       system_api_service, system_server_service,service_manager_type;
+type dexopt_chroot_setup_service, service_manager_type;
+type dnsresolver_service,       service_manager_type;
+type drmserver_service,         service_manager_type;
+type dumpstate_service,         service_manager_type;
+type evsmanagerd_service,       service_manager_type;
+type fingerprintd_service,      service_manager_type;
+type fwk_automotive_display_service, service_manager_type;
+type gatekeeper_service,        app_api_service, service_manager_type;
+type gpu_service,               app_api_service, ephemeral_app_api_service, service_manager_type;
+type idmap_service,             service_manager_type;
+type incident_service,          service_manager_type;
+type installd_service,          service_manager_type;
+type credstore_service,         app_api_service, service_manager_type;
+type keystore_compat_hal_service, service_manager_type;
+type keystore_maintenance_service, service_manager_type;
+type keystore_metrics_service, service_manager_type;
+type keystore_service,          service_manager_type;
+type legacykeystore_service,    service_manager_type;
+type lpdump_service,            service_manager_type;
+type mdns_service,              service_manager_type;
+type mediaserver_service,       service_manager_type, isolated_compute_allowed_service;
+type mediametrics_service,      service_manager_type;
+type mediaextractor_service,    service_manager_type;
+type mediadrmserver_service,    service_manager_type;
+type mediatranscoding_service,  app_api_service, service_manager_type;
+type netd_service,              service_manager_type;
+type nfc_service,               service_manager_type;
+type ondevicepersonalization_system_service, system_api_service, system_server_service, service_manager_type;
+type ot_daemon_service,         service_manager_type;
+type profiling_service,         app_api_service, system_server_service, service_manager_type;
+type radio_service,             service_manager_type;
+type secure_element_service,    service_manager_type;
+type service_manager_service,   service_manager_type;
+type storaged_service,          service_manager_type;
+type surfaceflinger_service,    app_api_service, ephemeral_app_api_service, service_manager_type;
+type system_app_service,        service_manager_type;
+type system_net_netd_service,   service_manager_type;
+type system_suspend_control_internal_service, service_manager_type;
+type system_suspend_control_service, service_manager_type;
+type update_engine_service,     service_manager_type;
+type update_engine_stable_service, service_manager_type;
+type virtualization_service,    service_manager_type;
+type virtual_camera_service,    service_manager_type;
+type virtual_touchpad_service,  service_manager_type;
+type vold_service,              service_manager_type;
+type vr_hwc_service,            service_manager_type;
+type vrflinger_vsync_service,   service_manager_type;
+
+# system_server_services broken down
+type accessibility_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type account_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type activity_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type activity_task_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type adb_service, system_api_service, system_server_service, service_manager_type;
+type adservices_manager_service, system_api_service, system_server_service, service_manager_type;
+type alarm_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type app_binding_service, system_server_service, service_manager_type;
+type app_hibernation_service, app_api_service, system_api_service, system_server_service, service_manager_type;
+type app_integrity_service, system_api_service, system_server_service, service_manager_type;
+type app_prediction_service, app_api_service, system_server_service, service_manager_type;
+type app_search_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type appops_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type appwidget_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type archive_service, app_api_service, system_server_service, service_manager_type;
+type assetatlas_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type attestation_verification_service, app_api_service, system_server_service, service_manager_type;
+type audio_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type auth_service, app_api_service, system_server_service, service_manager_type;
+type autofill_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type backup_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type batterystats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type battery_service, system_server_service, service_manager_type;
+type binder_calls_stats_service, system_server_service, service_manager_type;
+type blob_store_service, app_api_service, system_server_service, service_manager_type;
+type bluetooth_manager_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type broadcastradio_service, app_api_service, system_server_service, service_manager_type;
+type cacheinfo_service, system_api_service, system_server_service, service_manager_type;
+type cameraproxy_service, system_server_service, service_manager_type;
+type clipboard_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type cloudsearch_service, app_api_service, system_server_service, service_manager_type;
+type contexthub_service, app_api_service,  system_server_service, service_manager_type;
+type contextual_search_service, app_api_service, system_server_service, service_manager_type;
+type crossprofileapps_service, app_api_service, system_server_service, service_manager_type;
+type IProxyService_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type companion_device_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type connectivity_native_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type connectivity_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type connmetrics_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type consumer_ir_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type content_capture_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type, isolated_compute_allowed_service;
+type content_suggestions_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type content_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type country_detector_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+# Note: The coverage_service should only be enabled for userdebug / eng builds that were compiled
+# with EMMA_INSTRUMENT=true. We should consider locking this down in the future.
+type coverage_service, system_server_service, service_manager_type;
+type cpuinfo_service, system_api_service, system_server_service, service_manager_type;
+type cpu_monitor_service, system_server_service, service_manager_type;
+type credential_service, app_api_service, ephemeral_app_api_service, system_api_service, system_server_service, service_manager_type;
+type dataloader_manager_service, system_server_service, service_manager_type;
+type dbinfo_service, system_api_service, system_server_service, service_manager_type;
+type device_config_service, system_server_service, service_manager_type;
+type device_policy_service, app_api_service, system_server_service, service_manager_type;
+type device_state_service, app_api_service, system_api_service, system_server_service, service_manager_type, isolated_compute_allowed_service;
+type deviceidle_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type device_identifiers_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type devicestoragemonitor_service, system_server_service, service_manager_type;
+type diskstats_service, system_api_service, system_server_service, service_manager_type;
+type display_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type domain_verification_service, app_api_service, system_server_service, service_manager_type;
+type color_display_service, app_api_service, system_api_service, system_server_service, service_manager_type;
+type ecm_enhanced_confirmation_service, app_api_service, system_server_service, service_manager_type;
+type external_vibrator_service, system_server_service, service_manager_type;
+type file_integrity_service, app_api_service, system_server_service, service_manager_type;
+type font_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type netd_listener_service, system_server_service, service_manager_type;
+type network_watchlist_service, system_server_service, service_manager_type;
+type devicelock_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type DockObserver_service, system_server_service, service_manager_type;
+type dreams_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type dropbox_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type ethernet_service, app_api_service, system_server_service, service_manager_type;
+type biometric_service, app_api_service, system_server_service, service_manager_type;
+type bugreport_service, app_api_service, system_server_service, service_manager_type;
+type platform_compat_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type face_service, app_api_service, system_server_service, service_manager_type;
+type fingerprint_service, app_api_service, system_server_service, service_manager_type;
+type fwk_altitude_service, system_server_service, service_manager_type;
+type fwk_stats_service, app_api_service, system_server_service, service_manager_type;
+type fwk_sensor_service, system_server_service, service_manager_type;
+type fwk_vibrator_control_service, system_server_service, service_manager_type;
+type game_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type gfxinfo_service, system_api_service, system_server_service, service_manager_type;
+type gnss_time_update_service, system_server_service, service_manager_type;
+type grammatical_inflection_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type graphicsstats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type hardware_service, system_server_service, service_manager_type;
+type hardware_properties_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type hdmi_control_service, app_api_service, system_server_service, service_manager_type;
+type healthconnect_service, app_api_service, system_server_service, service_manager_type;
+type hint_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type imms_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type incremental_service, system_server_service, service_manager_type;
+type input_method_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type input_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type ipsec_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type iris_service, app_api_service, system_server_service, service_manager_type;
+type jobscheduler_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type launcherapps_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type legacy_permission_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type light_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type locale_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type location_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type location_time_zone_manager_service, system_server_service, service_manager_type;
+type lock_settings_service, app_api_service, system_api_service, system_server_service, service_manager_type;
+type looper_stats_service, system_server_service, service_manager_type;
+type media_communication_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type media_metrics_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type media_projection_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type media_router_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type media_session_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type meminfo_service, system_api_service, system_server_service, service_manager_type;
+type memtrackproxy_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type midi_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type mount_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type music_recognition_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type nearby_service, app_api_service, system_server_service, service_manager_type;
+type netpolicy_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type netstats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type network_management_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type network_score_service, system_api_service, system_server_service, service_manager_type;
+type network_stack_service, system_server_service, service_manager_type;
+type network_time_update_service, system_server_service, service_manager_type;
+type notification_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type oem_lock_service, system_api_service, system_server_service, service_manager_type;
+type otadexopt_service, system_server_service, service_manager_type;
+type overlay_service, system_api_service, system_server_service, service_manager_type;
+type pac_proxy_service, app_api_service, system_server_service, service_manager_type;
+type package_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type package_native_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type people_service, app_api_service, system_server_service, service_manager_type;
+type permission_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type permissionmgr_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type permission_checker_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type persistent_data_block_service, system_api_service, system_server_service, service_manager_type;
+type pinner_service, system_server_service, service_manager_type;
+type powerstats_service, app_api_service, system_server_service, service_manager_type;
+type power_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type print_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type processinfo_service, system_server_service, service_manager_type;
+type procstats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type reboot_readiness_service, app_api_service, system_server_service, service_manager_type;
+type recovery_service, system_server_service, service_manager_type;
+type registry_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type remote_auth_service, app_api_service, system_server_service, service_manager_type;
+type remote_provisioning_service, system_server_service, service_manager_type;
+type resources_manager_service, system_api_service, system_server_service, service_manager_type;
+type restrictions_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type role_service, app_api_service, system_server_service, service_manager_type;
+type rollback_service, app_api_service, system_server_service, service_manager_type;
+type runtime_service, system_server_service, service_manager_type;
+type rttmanager_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type samplingprofiler_service, system_server_service, service_manager_type;
+type scheduling_policy_service, system_server_service, service_manager_type;
+type search_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type search_ui_service, app_api_service, system_server_service, service_manager_type;
+type sec_key_att_app_id_provider_service, app_api_service, system_server_service, service_manager_type;
+type security_state_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type selection_toolbar_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type sensitive_content_protection_service, app_api_service, system_server_service, service_manager_type;
+type sensorservice_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type sensor_privacy_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type serial_service, system_api_service, system_server_service, service_manager_type;
+type servicediscovery_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type settings_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type shortcut_service, app_api_service, system_server_service, service_manager_type;
+type slice_service, app_api_service, system_server_service, service_manager_type;
+type smartspace_service, app_api_service, system_server_service, service_manager_type;
+type statusbar_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type storagestats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type sdk_sandbox_service, app_api_service, system_server_service, service_manager_type;
+type system_config_service, system_api_service, system_server_service, service_manager_type;
+type system_server_dumper_service, system_api_service, system_server_service, service_manager_type;
+type system_update_service, system_server_service, service_manager_type;
+type soundtrigger_middleware_service, system_server_service, service_manager_type;
+type speech_recognition_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type, isolated_compute_allowed_service;
+type tare_service, app_api_service, system_server_service, service_manager_type;
+type task_service, system_server_service, service_manager_type;
+type testharness_service, system_server_service, service_manager_type;
+type textclassification_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type textservices_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type texttospeech_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type telecom_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type thermal_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type threadnetwork_service, app_api_service, system_server_service, service_manager_type;
+type timedetector_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type timezonedetector_service, app_api_service, system_server_service, service_manager_type;
+type translation_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type trust_service, app_api_service, system_server_service, service_manager_type;
+type tv_ad_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type tv_iapp_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type tv_input_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type tv_tuner_resource_mgr_service, app_api_service, system_server_service, service_manager_type;
+type uimode_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type updatelock_service, system_api_service, system_server_service, service_manager_type;
+type uri_grants_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type usagestats_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type usb_service, app_api_service, system_server_service, service_manager_type;
+type user_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type uwb_service, app_api_service, system_server_service, service_manager_type;
+type vcn_management_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type vibrator_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type vibrator_manager_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type virtual_device_service, app_api_service, system_server_service, service_manager_type;
+type virtual_device_native_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type voiceinteraction_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type vpn_management_service, app_api_service, system_server_service, service_manager_type;
+type vr_manager_service, system_server_service, service_manager_type;
+type wallpaper_service, app_api_service, system_server_service, service_manager_type;
+type wallpaper_effects_generation_service, app_api_service, system_server_service, service_manager_type;
+type webviewupdate_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type wifip2p_service, app_api_service, system_server_service, service_manager_type;
+type wifiscanner_service, system_api_service, system_server_service, service_manager_type;
+type wifi_service, app_api_service, system_server_service, service_manager_type;
+type wifinl80211_service, service_manager_type;
+type wifiaware_service, app_api_service, system_server_service, service_manager_type;
+type window_service, system_api_service, system_server_service, service_manager_type;
+type inputflinger_service, system_api_service, system_server_service, service_manager_type;
+type tethering_service, app_api_service, ephemeral_app_api_service, system_server_service, service_manager_type;
+type emergency_affordance_service, system_server_service, service_manager_type;
+
+###
+### HAL Services
+###
+
+type hal_audio_service, protected_service, hal_service_type, service_manager_type;
+type hal_audiocontrol_service, hal_service_type, service_manager_type;
+type hal_authgraph_service, protected_service, hal_service_type, service_manager_type;
+type hal_authsecret_service, protected_service, hal_service_type, service_manager_type;
+type hal_bluetooth_service, protected_service, hal_service_type, service_manager_type;
+type hal_bootctl_service, protected_service, hal_service_type, service_manager_type;
+type hal_broadcastradio_service, protected_service, hal_service_type, service_manager_type;
+type hal_camera_service, protected_service, hal_service_type, service_manager_type;
+type hal_can_controller_service, protected_service, hal_service_type, service_manager_type;
+type hal_cas_service, hal_service_type, service_manager_type;
+type hal_codec2_service, hal_service_type, service_manager_type, isolated_compute_allowed_service;
+type hal_confirmationui_service, protected_service, hal_service_type, service_manager_type;
+type hal_contexthub_service, protected_service, hal_service_type, service_manager_type;
+type hal_drm_service, hal_service_type, service_manager_type;
+type hal_dumpstate_service, protected_service, hal_service_type, service_manager_type;
+type hal_evs_service, protected_service, hal_service_type, service_manager_type;
+type hal_face_service, protected_service, hal_service_type, service_manager_type;
+type hal_fastboot_service, protected_service, hal_service_type, service_manager_type;
+type hal_fingerprint_service, protected_service, hal_service_type, service_manager_type;
+type hal_gnss_service, protected_service, hal_service_type, service_manager_type;
+type hal_graphics_allocator_service, hal_service_type, service_manager_type;
+type hal_graphics_composer_service, protected_service, hal_service_type, service_manager_type;
+type hal_graphics_mapper_service, hal_service_type, service_manager_type;
+type hal_health_service, protected_service, hal_service_type, service_manager_type;
+type hal_health_storage_service, protected_service, hal_service_type, service_manager_type;
+type hal_identity_service, protected_service, hal_service_type, service_manager_type;
+type hal_input_processor_service, protected_service, hal_service_type, service_manager_type;
+type hal_ir_service, protected_service, hal_service_type, service_manager_type;
+type hal_ivn_service, protected_service, hal_service_type, service_manager_type;
+type hal_keymint_service, protected_service, hal_service_type, service_manager_type;
+type hal_light_service, protected_service, hal_service_type, service_manager_type;
+type hal_macsec_service, protected_service, hal_service_type, service_manager_type;
+type hal_memtrack_service, protected_service, hal_service_type, service_manager_type;
+type hal_neuralnetworks_service, hal_service_type, service_manager_type;
+type hal_nfc_service, protected_service, hal_service_type, service_manager_type;
+type hal_oemlock_service, protected_service, hal_service_type, service_manager_type;
+type hal_power_service, protected_service, hal_service_type, service_manager_type;
+type hal_power_stats_service, protected_service, hal_service_type, service_manager_type;
+type hal_radio_service, protected_service, hal_service_type, service_manager_type;
+type hal_rebootescrow_service, protected_service, hal_service_type, service_manager_type;
+type hal_remoteaccess_service, protected_service, hal_service_type, service_manager_type;
+type hal_remotelyprovisionedcomponent_avf_service, protected_service, hal_service_type, service_manager_type;
+type hal_remotelyprovisionedcomponent_service, protected_service, hal_service_type, service_manager_type;
+type hal_sensors_service, protected_service, hal_service_type, service_manager_type;
+type hal_secretkeeper_service, protected_service, hal_service_type, service_manager_type;
+type hal_secureclock_service, protected_service, hal_service_type, service_manager_type;
+type hal_secure_element_service, protected_service, hal_service_type, service_manager_type;
+type hal_sharedsecret_service, protected_service, hal_service_type, service_manager_type;
+type hal_system_suspend_service, protected_service, hal_service_type, service_manager_type;
+type hal_tetheroffload_service, protected_service, hal_service_type, service_manager_type;
+type hal_thermal_service, protected_service, hal_service_type, service_manager_type;
+type hal_tv_hdmi_cec_service, protected_service, hal_service_type, service_manager_type;
+type hal_tv_hdmi_connection_service, protected_service, hal_service_type, service_manager_type;
+type hal_tv_hdmi_earc_service, protected_service, hal_service_type, service_manager_type;
+type hal_tv_input_service, protected_service, hal_service_type, service_manager_type;
+type hal_threadnetwork_service, protected_service, hal_service_type, service_manager_type;
+type hal_tv_tuner_service, protected_service, hal_service_type, service_manager_type;
+type hal_usb_service, protected_service, hal_service_type, service_manager_type;
+type hal_usb_gadget_service, protected_service, hal_service_type, service_manager_type;
+type hal_uwb_service, protected_service, hal_service_type, service_manager_type;
+type hal_vehicle_service, protected_service, hal_service_type, service_manager_type;
+type hal_vibrator_service, protected_service, hal_service_type, service_manager_type;
+type hal_weaver_service, protected_service, hal_service_type, service_manager_type;
+type hal_nlinterceptor_service, protected_service, hal_service_type, service_manager_type;
+type hal_wifi_service, protected_service, hal_service_type, service_manager_type;
+type hal_wifi_hostapd_service, protected_service, hal_service_type, service_manager_type;
+type hal_wifi_supplicant_service, protected_service, hal_service_type, service_manager_type;
+type hal_gatekeeper_service, protected_service, hal_service_type, service_manager_type;
+
+###
+### Neverallow rules
+###
+
+# servicemanager handles registering or looking up named services.
+# It does not make sense to register or lookup something which is not a service.
+# Trigger a compile error if this occurs.
+neverallow domain ~{ service_manager_type vndservice_manager_type }:service_manager { add find };
+#line 1 "system/sepolicy/public/servicemanager.te"
+# servicemanager - the Binder context manager
+type servicemanager, domain, mlstrustedsubject;
+type servicemanager_exec, system_file_type, exec_type, file_type;
+
+# Note that we do not use the binder_* macros here.
+# servicemanager is unique in that it only provides
+# name service (aka context manager) for Binder.
+# As such, it only ever receives and transfers other references
+# created by other domains.  It never passes its own references
+# or initiates a Binder IPC.
+allow servicemanager self:binder set_context_mgr;
+allow servicemanager {
+  domain
+  -init
+  -vendor_init
+  -hwservicemanager
+  -vndservicemanager
+}:binder transfer;
+
+allow servicemanager service_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+allow servicemanager vendor_service_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# nonplat_service_contexts only accessible on non full-treble devices
+allow servicemanager vendor_service_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 27
+  allow servicemanager service_manager_service:service_manager { add find };
+#line 27
+  neverallow { domain -servicemanager } service_manager_service:service_manager add;
+#line 27
+
+#line 27
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 27
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 27
+  
+#line 27
+
+allow servicemanager dumpstate:fd use;
+allow servicemanager dumpstate:fifo_file write;
+
+# Check SELinux permissions.
+
+#line 32
+
+#line 32
+allow servicemanager selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 32
+allow servicemanager selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 32
+
+#line 32
+allow servicemanager selinuxfs:file { open append write lock map };
+#line 32
+allow servicemanager kernel:security compute_av;
+#line 32
+allow servicemanager self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 32
+
+
+allow servicemanager kmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+#line 39
+
+#line 1 "system/sepolicy/public/sgdisk.te"
+# sgdisk called from vold
+type sgdisk, domain;
+type sgdisk_exec, system_file_type, exec_type, file_type;
+
+# Allowed to read/write low-level partition tables
+allow sgdisk block_device:dir search;
+allow sgdisk vold_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+# HDIO_GETGEO needed to get the number of disk heads
+# on vold_device. How quaint.
+allowxperm sgdisk vold_device:blk_file ioctl { 0x00000301 };
+# sgdisk also uses BLKGETSIZE and BLKGETSIZE64. BLKGETSIZE64
+# is granted to all block device users in domain.te, so
+# no need to mention it here. sgdisk should not be
+# using the BLKGETSIZE ioctl as it is useless for devices over
+# 2T in size, but we allow it for now and hope that sgdisk
+# will fix their bug.
+allowxperm sgdisk vold_device:blk_file ioctl { 0x00001260 };
+# Force a re-read of the partition table.
+allowxperm sgdisk vold_device:blk_file ioctl { 0x0000125f };
+# Allow reading of the physical block size.
+allowxperm sgdisk vold_device:blk_file ioctl { 0x0000127b };
+
+# Inherit and use pty created by android_fork_execvp()
+allow sgdisk devpts:chr_file { read write ioctl getattr };
+
+# Allow stdin/out back to vold
+allow sgdisk vold:fd use;
+allow sgdisk vold:fifo_file { read write getattr };
+
+# Used to probe kernel to reload partition tables
+allow sgdisk self:{ capability cap_userns } sys_admin;
+
+# Only allow entry from vold
+neverallow { domain -vold } sgdisk:process transition;
+neverallow * sgdisk:process dyntransition;
+neverallow sgdisk { file_type fs_type -sgdisk_exec }:file entrypoint;
+#line 1 "system/sepolicy/public/shared_relro.te"
+# Process which creates/updates shared RELRO files to be used by other apps.
+type shared_relro, domain;
+#line 1 "system/sepolicy/public/shell.te"
+# Domain for shell processes spawned by ADB or console service.
+type shell, domain, mlstrustedsubject;
+type shell_exec, system_file_type, exec_type, file_type;
+
+# Create and use network sockets.
+
+#line 6
+typeattribute shell netdomain;
+#line 6
+
+
+# logcat
+
+#line 9
+allow shell logcat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 9
+
+#line 9
+allow shell logdr_socket:sock_file write;
+#line 9
+allow shell logd:unix_stream_socket connectto;
+#line 9
+
+#line 9
+
+
+#line 10
+# Group AID_LOG checked by filesystem & logd
+#line 10
+# to permit control commands
+#line 10
+
+#line 10
+allow shell logd_socket:sock_file write;
+#line 10
+allow shell logd:unix_stream_socket connectto;
+#line 10
+
+#line 10
+
+
+#line 11
+allow shell logd_prop:file { getattr open read map };
+#line 11
+
+# logcat -L (directly, or via dumpstate)
+allow shell pstorefs:dir search;
+allow shell pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+
+# Root fs.
+allow shell rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# read files in /data/anr
+allow shell anr_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell anr_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access /data/local/tmp.
+allow shell shell_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow shell shell_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow shell shell_data_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow shell shell_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access /data/local/tests.
+allow shell shell_test_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow shell shell_test_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow shell shell_test_data_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow shell shell_test_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow shell shell_test_data_file:sock_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Read and delete from /data/local/traces.
+allow shell trace_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+allow shell trace_data_file:dir { { open getattr read search ioctl lock watch watch_reads } remove_name write };
+
+# Access /data/misc/profman.
+allow shell profman_dump_data_file:dir { write remove_name { open getattr read search ioctl lock watch watch_reads } };
+allow shell profman_dump_data_file:file { unlink { getattr open read ioctl lock map watch watch_reads } };
+
+# Read/execute files in /data/nativetest
+#line 48
+
+
+# adb bugreport
+
+#line 51
+allow shell dumpstate_socket:sock_file write;
+#line 51
+allow shell dumpstate:unix_stream_socket connectto;
+#line 51
+
+
+allow shell devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow shell tty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow shell console_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+allow shell input_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell input_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 60
+allow shell system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 60
+allow shell system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 60
+
+allow shell system_file:file { getattr execute execute_no_trans map };
+allow shell toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow shell shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow shell zygote_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 70
+
+
+# allow shell access to services
+allow shell servicemanager:service_manager list;
+# don't allow shell to access GateKeeper service
+# TODO: why is this so broad? Tightening candidate? It needs at list:
+# - dumpstate_service (so it can receive dumpstate progress updates)
+allow shell {
+  service_manager_type
+  -apex_service
+  -dnsresolver_service
+  -gatekeeper_service
+  -hal_keymint_service
+  -hal_secureclock_service
+  -hal_sharedsecret_service
+  -incident_service
+  -installd_service
+  -mdns_service
+  -netd_service
+  -system_suspend_control_internal_service
+  -system_suspend_control_service
+  -virtual_touchpad_service
+  -vold_service
+  -default_android_service
+}:service_manager find;
+allow shell dumpstate:binder call;
+
+# allow shell to get information from hwservicemanager
+# for instance, listing hardware services with lshal
+
+#line 99
+# Call the hwservicemanager and transfer references to it.
+#line 99
+allow shell hwservicemanager:binder { call transfer };
+#line 99
+# Allow hwservicemanager to send out callbacks
+#line 99
+allow hwservicemanager shell:binder { call transfer };
+#line 99
+# hwservicemanager performs getpidcon on clients.
+#line 99
+allow hwservicemanager shell:dir search;
+#line 99
+allow hwservicemanager shell:file { read open map };
+#line 99
+allow hwservicemanager shell:process getattr;
+#line 99
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 99
+# all domains in domain.te.
+#line 99
+
+allow shell hwservicemanager:hwservice_manager list;
+
+# allow shell to look through /proc/ for lsmod, ps, top, netstat, vmstat.
+
+#line 103
+allow shell proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 103
+allow shell proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 103
+
+
+allow shell {
+  proc_asound
+  proc_filesystems
+  proc_interrupts
+  proc_loadavg # b/124024827
+  proc_meminfo
+  proc_modules
+  proc_pid_max
+  proc_slabinfo
+  proc_stat
+  proc_timer
+  proc_uptime
+  proc_version
+  proc_vmstat
+  proc_zoneinfo
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# allow listing network interfaces under /sys/class/net.
+allow shell sysfs_net:dir { open getattr read search ioctl lock watch watch_reads };
+
+
+#line 125
+allow shell cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 125
+allow shell cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 125
+
+allow shell cgroup_desc_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell cgroup_desc_api_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell vendor_cgroup_desc_file:file { getattr open read ioctl lock map watch watch_reads };
+
+#line 129
+allow shell cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 129
+allow shell cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 129
+
+allow shell domain:dir { search open read getattr };
+allow shell domain:{ file lnk_file } { open read getattr };
+
+# statvfs() of /proc and other labeled filesystems
+# (yaffs2, jffs2, ext2, ext3, ext4, xfs, btrfs, f2fs, squashfs, overlay)
+allow shell { proc labeledfs }:filesystem getattr;
+
+# stat() of /dev
+allow shell device:dir getattr;
+
+# allow shell to read /proc/pid/attr/current for ps -Z
+allow shell domain:process getattr;
+
+# Allow pulling the SELinux policy for CTS purposes
+allow shell selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell selinuxfs:file { getattr open read ioctl lock map watch watch_reads };
+
+# enable shell domain to read/write files/dirs for bootchart data
+# User will creates the start and stop file via adb shell
+# and read other files created by init process under /data/bootchart
+allow shell bootchart_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow shell bootchart_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Make sure strace works for the non-privileged shell user
+allow shell self:process ptrace;
+
+# allow shell to get battery info
+allow shell sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell sysfs_batteryinfo:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell sysfs_batteryinfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow access to ion memory allocation device.
+allow shell ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+#
+# filesystem test for insecure chr_file's is done
+# via a host side test
+#
+allow shell dev_type:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell dev_type:chr_file getattr;
+
+# /dev/fd is a symlink
+allow shell proc:lnk_file getattr;
+
+#
+# filesystem test for insucre blk_file's is done
+# via hostside test
+#
+allow shell dev_type:blk_file getattr;
+
+# read selinux policy files
+allow shell file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell property_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell service_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell sepolicy_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow shell to start up vendor shell
+allow shell vendor_shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Everything is labeled as rootfs in recovery mode. Allow shell to
+# execute them.
+#line 194
+
+
+###
+### Neverallow rules
+###
+
+# Do not allow shell to talk directly to security HAL services other than
+# hal_remotelyprovisionedcomponent_service
+neverallow shell {
+  hal_keymint_service
+  hal_secureclock_service
+  hal_sharedsecret_service
+}:service_manager find;
+
+# Do not allow shell to hard link to any files.
+# In particular, if shell hard links to app data
+# files, installd will not be able to guarantee the deletion
+# of the linked to file. Hard links also contribute to security
+# bugs, so we want to ensure the shell user never has this
+# capability.
+neverallow shell file_type:file link;
+
+# Do not allow privileged socket ioctl commands
+neverallowxperm shell domain:{ rawip_socket tcp_socket udp_socket } ioctl 
+#line 217
+{
+#line 217
+# qualcomm rmnet ioctls
+#line 217
+0x00006900 0x00006902
+#line 217
+# socket ioctls
+#line 217
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 217
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 217
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 217
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 217
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 217
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 217
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 217
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 217
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 217
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 217
+# device and protocol specific ioctls
+#line 217
+0x000089f0-0x000089ff
+#line 217
+0x000089e0-0x000089ef
+#line 217
+# Wireless extension ioctls
+#line 217
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 217
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 217
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 217
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 217
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 217
+0x00008b34 0x00008b35 0x00008b36
+#line 217
+# Dev private ioctl i.e. hardware specific ioctls
+#line 217
+0x00008be0-0x00008bff
+#line 217
+};
+
+# limit shell access to sensitive char drivers to
+# only getattr required for host side test.
+neverallow shell {
+  fuse_device
+  hw_random_device
+  port_device
+}:chr_file ~getattr;
+
+# Limit shell to only getattr on blk devices for host side tests.
+neverallow shell dev_type:blk_file ~getattr;
+
+# b/30861057: Shell access to existing input devices is an abuse
+# vector. The shell user can inject events that look like they
+# originate from the touchscreen etc.
+# Everyone should have already moved to UiAutomation#injectInputEvent
+# if they are running instrumentation tests (i.e. CTS), Monkey for
+# their stress tests, and the input command (adb shell input ...) for
+# injecting swipes and things.
+neverallow shell input_device:chr_file { append create link unlink relabelfrom rename setattr write };
+#line 1 "system/sepolicy/public/simpleperf.te"
+type simpleperf, domain;
+#line 1 "system/sepolicy/public/simpleperf_app_runner.te"
+type simpleperf_app_runner, domain, mlstrustedsubject;
+type simpleperf_app_runner_exec, system_file_type, exec_type, file_type;
+#line 1 "system/sepolicy/public/slideshow.te"
+# slideshow seclabel is specified in init.rc since
+# it lives in the rootfs and has no unique file type.
+type slideshow, domain;
+
+allow slideshow kmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+#line 6
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 6
+# deprecated.
+#line 6
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 6
+allow slideshow sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 6
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 6
+allow slideshow self:{ capability2 cap2_userns } block_suspend;
+#line 6
+# system_suspend permissions
+#line 6
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow slideshow system_suspend_server:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow system_suspend_server slideshow:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow slideshow system_suspend_server:fd use;
+#line 6
+
+#line 6
+allow slideshow system_suspend_hwservice:hwservice_manager find;
+#line 6
+# halclientdomain permissions
+#line 6
+
+#line 6
+# Call the hwservicemanager and transfer references to it.
+#line 6
+allow slideshow hwservicemanager:binder { call transfer };
+#line 6
+# Allow hwservicemanager to send out callbacks
+#line 6
+allow hwservicemanager slideshow:binder { call transfer };
+#line 6
+# hwservicemanager performs getpidcon on clients.
+#line 6
+allow hwservicemanager slideshow:dir search;
+#line 6
+allow hwservicemanager slideshow:file { read open map };
+#line 6
+allow hwservicemanager slideshow:process getattr;
+#line 6
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+#line 6
+
+#line 6
+allow slideshow hwservicemanager_prop:file { getattr open read map };
+#line 6
+
+#line 6
+allow slideshow hidl_manager_hwservice:hwservice_manager find;
+#line 6
+# AIDL suspend hal permissions
+#line 6
+allow slideshow hal_system_suspend_service:service_manager find;
+#line 6
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow slideshow servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager slideshow:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager slideshow:dir search;
+#line 6
+allow servicemanager slideshow:file { read open };
+#line 6
+allow servicemanager slideshow:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+#line 6
+
+allow slideshow device:dir { open getattr read search ioctl lock watch watch_reads };
+allow slideshow self:{ capability cap_userns } sys_tty_config;
+allow slideshow graphics_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow slideshow graphics_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow slideshow input_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow slideshow input_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow slideshow tty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+#line 1 "system/sepolicy/public/stats_service_server.te"
+
+#line 1
+  allow stats_service_server fwk_stats_hwservice:hwservice_manager { add find };
+#line 1
+  allow stats_service_server hidl_base_hwservice:hwservice_manager add;
+#line 1
+  neverallow { domain -stats_service_server } fwk_stats_hwservice:hwservice_manager add;
+#line 1
+
+
+#line 2
+  allow stats_service_server fwk_stats_service:service_manager { add find };
+#line 2
+  neverallow { domain -stats_service_server } fwk_stats_service:service_manager add;
+#line 2
+
+#line 2
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 2
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 2
+  
+#line 2
+
+
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow stats_service_server servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager stats_service_server:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager stats_service_server:dir search;
+#line 4
+allow servicemanager stats_service_server:file { read open };
+#line 4
+allow servicemanager stats_service_server:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+#line 1 "system/sepolicy/public/statsd.te"
+type statsd, domain, mlstrustedsubject;
+
+type statsd_exec, system_file_type, exec_type, file_type;
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow statsd servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager statsd:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager statsd:dir search;
+#line 4
+allow servicemanager statsd:file { read open };
+#line 4
+allow servicemanager statsd:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+
+# Allow statsd to scan through /proc/pid for all processes.
+
+#line 7
+allow statsd domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow statsd domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 7
+
+
+# Allow executing files on system, such as running a shell or running:
+#   /system/bin/toolbox
+#   /system/bin/logcat
+#   /system/bin/dumpsys
+allow statsd devpts:chr_file { getattr ioctl read write };
+allow statsd shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow statsd system_file:file execute_no_trans;
+allow statsd toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 20
+
+
+# Create, read, and write into
+#   /data/misc/stats-active-metric
+#   /data/misc/stats-data
+#   /data/misc/stats-metadata
+#   /data/misc/stats-service
+#   /data/misc/train-info
+allow statsd stats_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow statsd stats_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow statsd stats_config_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow statsd stats_config_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow statsd to make binder calls to any binder service.
+
+#line 34
+# Call the server domain and optionally transfer references to it.
+#line 34
+allow statsd appdomain:binder { call transfer };
+#line 34
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 34
+allow appdomain statsd:binder transfer;
+#line 34
+# Receive and use open files from the server.
+#line 34
+allow statsd appdomain:fd use;
+#line 34
+
+
+#line 35
+# Call the server domain and optionally transfer references to it.
+#line 35
+allow statsd incidentd:binder { call transfer };
+#line 35
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 35
+allow incidentd statsd:binder transfer;
+#line 35
+# Receive and use open files from the server.
+#line 35
+allow statsd incidentd:fd use;
+#line 35
+
+
+#line 36
+# Call the server domain and optionally transfer references to it.
+#line 36
+allow statsd system_server:binder { call transfer };
+#line 36
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 36
+allow system_server statsd:binder transfer;
+#line 36
+# Receive and use open files from the server.
+#line 36
+allow statsd system_server:fd use;
+#line 36
+
+
+#line 37
+# Call the server domain and optionally transfer references to it.
+#line 37
+allow statsd traced_probes:binder { call transfer };
+#line 37
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 37
+allow traced_probes statsd:binder transfer;
+#line 37
+# Receive and use open files from the server.
+#line 37
+allow statsd traced_probes:fd use;
+#line 37
+
+
+# Allow statsd to interact with gpuservice
+allow statsd gpu_service:service_manager find;
+
+#line 41
+# Call the server domain and optionally transfer references to it.
+#line 41
+allow statsd gpuservice:binder { call transfer };
+#line 41
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 41
+allow gpuservice statsd:binder transfer;
+#line 41
+# Receive and use open files from the server.
+#line 41
+allow statsd gpuservice:fd use;
+#line 41
+
+
+# Allow statsd to interact with keystore to pull atoms
+allow statsd keystore_service:service_manager find;
+
+#line 45
+# Call the server domain and optionally transfer references to it.
+#line 45
+allow statsd keystore:binder { call transfer };
+#line 45
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 45
+allow keystore statsd:binder transfer;
+#line 45
+# Receive and use open files from the server.
+#line 45
+allow statsd keystore:fd use;
+#line 45
+
+
+# Allow statsd to interact with mediametrics
+allow statsd mediametrics_service:service_manager find;
+
+#line 49
+# Call the server domain and optionally transfer references to it.
+#line 49
+allow statsd mediametrics:binder { call transfer };
+#line 49
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 49
+allow mediametrics statsd:binder transfer;
+#line 49
+# Receive and use open files from the server.
+#line 49
+allow statsd mediametrics:fd use;
+#line 49
+
+
+# Allow statsd to interact with mediametrics
+allow statsd mediaserver_service:service_manager find;
+
+#line 53
+# Call the server domain and optionally transfer references to it.
+#line 53
+allow statsd mediaserver:binder { call transfer };
+#line 53
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 53
+allow mediaserver statsd:binder transfer;
+#line 53
+# Receive and use open files from the server.
+#line 53
+allow statsd mediaserver:fd use;
+#line 53
+
+
+# Allow logd access.
+
+#line 56
+allow statsd logcat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 56
+
+#line 56
+allow statsd logdr_socket:sock_file write;
+#line 56
+allow statsd logd:unix_stream_socket connectto;
+#line 56
+
+#line 56
+
+
+#line 57
+# Group AID_LOG checked by filesystem & logd
+#line 57
+# to permit control commands
+#line 57
+
+#line 57
+allow statsd logd_socket:sock_file write;
+#line 57
+allow statsd logd:unix_stream_socket connectto;
+#line 57
+
+#line 57
+
+
+# Grant statsd with permissions to register the services.
+allow statsd {
+  app_api_service
+  incident_service
+  system_api_service
+}:service_manager find;
+
+# Grant statsd to access health hal to access battery metrics.
+allow statsd hal_health_hwservice:hwservice_manager find;
+
+# Allow statsd to send dump info to dumpstate
+allow statsd dumpstate:fd use;
+allow statsd dumpstate:fifo_file { getattr write };
+
+# Allow access to with hardware layer and process stats.
+allow statsd proc_uid_cputime_showstat:file { getattr open read };
+
+#line 75
+typeattribute statsd halclientdomain;
+#line 75
+typeattribute statsd hal_health_client;
+#line 75
+
+#line 75
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 75
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 75
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 75
+
+#line 75
+typeattribute statsd hal_health;
+#line 75
+# Find passthrough HAL implementations
+#line 75
+allow hal_health system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 75
+allow hal_health vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 75
+allow hal_health vendor_file:file { read open getattr execute map };
+#line 75
+
+#line 75
+
+
+#line 76
+typeattribute statsd halclientdomain;
+#line 76
+typeattribute statsd hal_power_client;
+#line 76
+
+#line 76
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 76
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 76
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 76
+
+#line 76
+typeattribute statsd hal_power;
+#line 76
+# Find passthrough HAL implementations
+#line 76
+allow hal_power system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 76
+allow hal_power vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 76
+allow hal_power vendor_file:file { read open getattr execute map };
+#line 76
+
+#line 76
+
+
+#line 77
+typeattribute statsd halclientdomain;
+#line 77
+typeattribute statsd hal_power_stats_client;
+#line 77
+
+#line 77
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 77
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 77
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 77
+
+#line 77
+typeattribute statsd hal_power_stats;
+#line 77
+# Find passthrough HAL implementations
+#line 77
+allow hal_power_stats system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 77
+allow hal_power_stats vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 77
+allow hal_power_stats vendor_file:file { read open getattr execute map };
+#line 77
+
+#line 77
+
+
+#line 78
+typeattribute statsd halclientdomain;
+#line 78
+typeattribute statsd hal_thermal_client;
+#line 78
+
+#line 78
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 78
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 78
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 78
+
+#line 78
+typeattribute statsd hal_thermal;
+#line 78
+# Find passthrough HAL implementations
+#line 78
+allow hal_thermal system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 78
+allow hal_thermal vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 78
+allow hal_thermal vendor_file:file { read open getattr execute map };
+#line 78
+
+#line 78
+
+
+# Allow 'adb shell cmd' to upload configs and download output.
+allow statsd adbd:fd use;
+allow statsd adbd:unix_stream_socket { getattr read write };
+allow statsd shell:fifo_file { getattr read write };
+
+
+#line 85
+allow statsd statsdw_socket:sock_file write;
+#line 85
+allow statsd statsd:unix_dgram_socket sendto;
+#line 85
+
+
+###
+### neverallow rules
+###
+
+# Only statsd and the other root services in limited circumstances.
+# can get to the files in /data/misc/stats-data, /data/misc/stats-service.
+# Other services are prohibitted from accessing the file.
+neverallow { domain -statsd -init -vold } stats_data_file:file *;
+neverallow { domain -statsd -system_server -init -vold } stats_config_data_file:file *;
+
+
+# Limited access to the directory itself.
+neverallow { domain -statsd -init -vold } stats_data_file:dir *;
+neverallow { domain -statsd -system_server -init -vold } stats_config_data_file:dir *;
+#line 1 "system/sepolicy/public/su.te"
+# Domain used for su processes, as well as for adbd and adb shell
+# after performing an adb root command.
+
+# All types must be defined regardless of build variant to ensure
+# policy compilation succeeds with userdebug/user combination at boot
+type su, domain;
+
+# File types must be defined for file_contexts.
+type su_exec, system_file_type, exec_type, file_type;
+
+#line 112
+
+#line 1 "system/sepolicy/public/surfaceflinger.te"
+# surfaceflinger - display compositor service
+type surfaceflinger, domain;
+type surfaceflinger_tmpfs, file_type;
+#line 1 "system/sepolicy/public/system_app.te"
+###
+### Apps that run with the system UID, e.g. com.android.system.ui,
+### com.android.settings.  These are not as privileged as the system
+### server.
+###
+
+type system_app, domain;
+#line 1 "system/sepolicy/public/system_server.te"
+#
+# System Server aka system_server spawned by zygote.
+# Most of the framework services run in this process.
+#
+type system_server, domain;
+type system_server_tmpfs, file_type, mlstrustedobject;
+
+# Power controls for debugging/diagnostics
+
+#line 9
+allow system_server power_debug_prop:file { getattr open read map };
+#line 9
+
+
+#line 10
+
+#line 10
+allow system_server property_socket:sock_file write;
+#line 10
+allow system_server init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow system_server power_debug_prop:property_service set;
+#line 10
+
+#line 10
+allow system_server power_debug_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -system_server
+  -shell
+} power_debug_prop:property_service set;
+#line 1 "system/sepolicy/public/system_suspend_internal_server.te"
+# To serve ISuspendControlServiceInternal.
+
+#line 2
+  allow system_suspend_internal_server system_suspend_control_internal_service:service_manager { add find };
+#line 2
+  neverallow { domain -system_suspend_internal_server } system_suspend_control_internal_service:service_manager add;
+#line 2
+
+#line 2
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 2
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 2
+  
+#line 2
+
+
+neverallow {
+    domain
+    -atrace # tracing
+    -dumpstate # bug reports
+    -system_suspend_internal_server # implements system_suspend_control_internal_service
+    -system_server # configures system_suspend via ISuspendControlServiceInternal
+    -traceur_app # tracing
+} system_suspend_control_internal_service:service_manager find;
+#line 1 "system/sepolicy/public/system_suspend_server.te"
+# Required to export a HIDL interface.
+
+#line 2
+# Call the hwservicemanager and transfer references to it.
+#line 2
+allow system_suspend_server hwservicemanager:binder { call transfer };
+#line 2
+# Allow hwservicemanager to send out callbacks
+#line 2
+allow hwservicemanager system_suspend_server:binder { call transfer };
+#line 2
+# hwservicemanager performs getpidcon on clients.
+#line 2
+allow hwservicemanager system_suspend_server:dir search;
+#line 2
+allow hwservicemanager system_suspend_server:file { read open map };
+#line 2
+allow hwservicemanager system_suspend_server:process getattr;
+#line 2
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 2
+# all domains in domain.te.
+#line 2
+
+
+#line 3
+allow system_suspend_server hwservicemanager_prop:file { getattr open read map };
+#line 3
+
+
+# To serve ISystemSuspend.hal.
+
+#line 6
+  allow system_suspend_server system_suspend_hwservice:hwservice_manager { add find };
+#line 6
+  allow system_suspend_server hidl_base_hwservice:hwservice_manager add;
+#line 6
+  neverallow { domain -system_suspend_server } system_suspend_hwservice:hwservice_manager add;
+#line 6
+
+#line 1 "system/sepolicy/public/tee.te"
+##
+# trusted execution environment (tee) daemon
+#
+type tee, domain;
+
+# Device(s) for communicating with the TEE
+type tee_device, dev_type;
+
+allow tee fingerprint_vendor_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow tee fingerprint_vendor_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+#line 1 "system/sepolicy/public/tombstoned.te"
+# debugger interface
+type tombstoned, domain, mlstrustedsubject;
+type tombstoned_exec, system_file_type, exec_type, file_type;
+
+# Write to arbitrary pipes given to us.
+allow tombstoned domain:fd use;
+allow tombstoned domain:fifo_file write;
+
+allow tombstoned domain:dir { open getattr read search ioctl lock watch watch_reads };
+allow tombstoned domain:file { getattr open read ioctl lock map watch watch_reads };
+allow tombstoned tombstone_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow tombstoned tombstone_data_file:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } link };
+
+# Changes for the new stack dumping mechanism. Each trace goes into a
+# separate file, and these files are managed by tombstoned.
+allow tombstoned anr_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow tombstoned anr_data_file:file { append create getattr open link unlink };
+#line 1 "system/sepolicy/public/toolbox.te"
+# Any toolbox command run by init.
+# Do NOT use this domain for toolbox when run by any other domain.
+type toolbox, domain;
+type toolbox_exec, system_file_type, exec_type, file_type;
+
+# /dev/__null__ created by init prior to policy load,
+# open fd inherited by fsck.
+allow toolbox tmpfs:chr_file { read write ioctl };
+
+# Inherit and use pty created by android_fork_execvp_ext().
+allow toolbox devpts:chr_file { read write getattr ioctl };
+
+# mkswap-specific.
+# Read/write block devices used for swap partitions.
+# Assign swap_block_device type any such partition in your
+# device/<vendor>/<product>/sepolicy/file_contexts file.
+allow toolbox block_device:dir search;
+allow toolbox swap_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Only allow entry from init via the toolbox binary.
+neverallow { domain -init } toolbox:process transition;
+neverallow * toolbox:process dyntransition;
+neverallow toolbox { file_type fs_type -toolbox_exec}:file entrypoint;
+
+# rm -rf /data/per_boot
+allow toolbox system_data_root_file:dir { remove_name write };
+allow toolbox system_data_file:dir { rmdir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow toolbox system_data_file:file { getattr unlink };
+
+# chattr +F /data/media in init
+allow toolbox media_userdir_file:dir { { open getattr read search ioctl lock watch watch_reads } setattr };
+allowxperm toolbox media_userdir_file:dir ioctl { 0x40086602 0x80086601 };
+#line 1 "system/sepolicy/public/traced.te"
+type traced, domain, coredomain, mlstrustedsubject;
+type traced_tmpfs, file_type;
+
+
+#line 1 "system/sepolicy/public/traced_perf.te"
+type traced_perf, domain;
+#line 1 "system/sepolicy/public/traced_probes.te"
+type traced_probes, domain, coredomain, mlstrustedsubject;
+#line 1 "system/sepolicy/public/traceur_app.te"
+type traceur_app, domain;
+
+allow traceur_app servicemanager:service_manager list;
+allow traceur_app hwservicemanager:hwservice_manager list;
+
+allow traceur_app {
+  service_manager_type
+  -apex_service
+  -dnsresolver_service
+  -gatekeeper_service
+  -incident_service
+  -installd_service
+  -lpdump_service
+  -mdns_service
+  -netd_service
+  -virtual_touchpad_service
+  -vold_service
+  -default_android_service
+}:service_manager find;
+
+# Allow traceur_app to use atrace HAL
+
+#line 22
+typeattribute traceur_app halclientdomain;
+#line 22
+typeattribute traceur_app hal_atrace_client;
+#line 22
+
+#line 22
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 22
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 22
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 22
+
+#line 22
+typeattribute traceur_app hal_atrace;
+#line 22
+# Find passthrough HAL implementations
+#line 22
+allow hal_atrace system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow hal_atrace vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow hal_atrace vendor_file:file { read open getattr execute map };
+#line 22
+
+#line 22
+
+
+dontaudit traceur_app service_manager_type:service_manager find;
+dontaudit traceur_app hwservice_manager_type:hwservice_manager find;
+dontaudit traceur_app domain:binder call;
+#line 1 "system/sepolicy/public/ueventd.te"
+# ueventd seclabel is specified in init.rc since
+# it lives in the rootfs and has no unique file type.
+type ueventd, domain;
+type ueventd_tmpfs, file_type;
+
+# Write to /dev/kmsg.
+allow ueventd kmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+allow ueventd self:{ capability cap_userns } { chown mknod net_admin setgid fsetid sys_rawio dac_override dac_read_search fowner setuid };
+allow ueventd device:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+
+#line 12
+allow ueventd rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow ueventd rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 12
+
+
+# ueventd needs write access to files in /sys to regenerate uevents
+allow ueventd sysfs_type:file { open append write lock map };
+
+#line 16
+allow ueventd sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 16
+allow ueventd sysfs_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 16
+
+allow ueventd sysfs_type:{ file lnk_file } { relabelfrom relabelto setattr };
+allow ueventd sysfs_type:dir { relabelfrom relabelto setattr };
+allow ueventd tmpfs:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow ueventd dev_type:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow ueventd dev_type:lnk_file { create unlink };
+allow ueventd dev_type:chr_file { getattr create setattr unlink };
+allow ueventd dev_type:blk_file { getattr relabelfrom relabelto create setattr unlink };
+allow ueventd self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow ueventd efs_file:dir search;
+allow ueventd efs_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Get SELinux enforcing status.
+
+#line 29
+allow ueventd selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 29
+allow ueventd selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 29
+
+
+# Access for /vendor/ueventd.rc and /vendor/firmware
+
+#line 32
+allow ueventd { vendor_file_type -vendor_app_file -vendor_overlay_file }:dir { open getattr read search ioctl lock watch watch_reads };
+#line 32
+allow ueventd { vendor_file_type -vendor_app_file -vendor_overlay_file }:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 32
+
+
+# Access for /apex/*/firmware
+allow ueventd apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Get file contexts for new device nodes
+allow ueventd file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Use setfscreatecon() to label /dev directories and files.
+allow ueventd self:process setfscreate;
+
+# Allow ueventd to read androidboot.android_dt_dir from kernel cmdline or bootconfig.
+allow ueventd proc_cmdline:file { getattr open read ioctl lock map watch watch_reads };
+allow ueventd proc_bootconfig:file { getattr open read ioctl lock map watch watch_reads };
+
+# Everything is labeled as rootfs in recovery mode. ueventd has to execute
+# the dynamic linker and shared libraries.
+#line 51
+
+
+# Suppress denials for ueventd to getattr /postinstall. This occurs when the
+# linker tries to resolve paths in ld.config.txt.
+dontaudit ueventd postinstall_mnt_dir:dir getattr;
+
+# ueventd loads modules in response to modalias events.
+allow ueventd self:{ capability cap_userns } sys_module;
+allow ueventd vendor_file:system module_load;
+allow ueventd kernel:key search;
+
+# ueventd is using bootstrap bionic
+
+#line 63
+  allow ueventd system_bootstrap_lib_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 63
+  allow ueventd system_bootstrap_lib_file:file { execute read open getattr map };
+#line 63
+
+
+# Allow ueventd to run shell scripts from vendor
+allow ueventd vendor_shell_exec:file execute;
+
+# Query device-mapper to extract name/uuid in response to uevents.
+allow ueventd dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow ueventd self:capability sys_admin;
+
+# Allow ueventd to read apexd property
+
+#line 73
+allow ueventd apexd_prop:file { getattr open read map };
+#line 73
+
+
+#####
+##### neverallow rules
+#####
+
+# Restrict ueventd access on block devices to maintenence operations.
+neverallow ueventd dev_type:blk_file ~{ getattr relabelfrom relabelto create setattr unlink };
+
+# Only relabelto as we would never want to relabelfrom port_device
+neverallow ueventd port_device:chr_file ~{ getattr create setattr unlink relabelto };
+
+# Nobody should be able to ptrace ueventd
+neverallow * ueventd:process ptrace;
+
+# ueventd should never execute a program without changing to another domain.
+neverallow ueventd { file_type fs_type }:file execute_no_trans;
+#line 1 "system/sepolicy/public/uncrypt.te"
+# uncrypt
+type uncrypt, domain, mlstrustedsubject;
+type uncrypt_exec, system_file_type, exec_type, file_type;
+
+allow uncrypt self:{ capability cap_userns } { dac_override dac_read_search };
+
+#line 10
+
+
+# Read /cache/recovery/command
+# Read /cache/recovery/uncrypt_file
+allow uncrypt cache_file:dir search;
+allow uncrypt cache_recovery_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow uncrypt cache_recovery_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Read and write(for f2fs_pin_file) on OTA zip file at /data/ota_package/.
+allow uncrypt ota_package_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow uncrypt ota_package_file:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Write to /dev/socket/uncrypt
+
+#line 23
+allow uncrypt uncrypt_socket:sock_file write;
+#line 23
+allow uncrypt uncrypt:unix_stream_socket connectto;
+#line 23
+
+
+# Raw writes to block device
+allow uncrypt self:{ capability cap_userns } sys_rawio;
+allow uncrypt misc_block_device:blk_file { open append write lock map };
+allow uncrypt block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Access userdata block device.
+allow uncrypt userdata_block_device:blk_file { open append write lock map };
+
+
+#line 33
+allow uncrypt rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow uncrypt rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 33
+
+
+# Access to bootconfig is needed when calling ReadDefaultFstab.
+allow uncrypt {
+  proc_bootconfig
+  proc_cmdline
+
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read files in /sys
+
+#line 43
+allow uncrypt sysfs_dt_firmware_android:dir { open getattr read search ioctl lock watch watch_reads };
+#line 43
+allow uncrypt sysfs_dt_firmware_android:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 43
+
+
+# Allow ReadDefaultFstab().
+
+#line 46
+  allow uncrypt { metadata_file gsi_metadata_file_type }:dir search;
+#line 46
+  allow uncrypt gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 46
+  allow uncrypt { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 46
+
+#line 1 "system/sepolicy/public/untrusted_app.te"
+###
+### Untrusted apps.
+###
+### Apps are labeled based on mac_permissions.xml (maps signer and
+### optionally package name to seinfo value) and seapp_contexts (maps UID
+### and optionally seinfo value to domain for process and type for data
+### directory).  The untrusted_app domain is the default assignment in
+### seapp_contexts for any app with UID between APP_AID (10000)
+### and AID_ISOLATED_START (99000) if the app has no specific seinfo
+### value as determined from mac_permissions.xml.  In current AOSP, this
+### domain is assigned to all non-system apps as well as to any system apps
+### that are not signed by the platform key.  To move
+### a system app into a specific domain, add a signer entry for it to
+### mac_permissions.xml and assign it one of the pre-existing seinfo values
+### or define and use a new seinfo value in both mac_permissions.xml and
+### seapp_contexts.
+###
+
+# This file defines the rules for untrusted apps running with
+# targetSdkVersion >= 34.
+type untrusted_app, domain;
+# This file defines the rules for untrusted apps running with
+# 31 < targetSdkVersion <= 33.
+type untrusted_app_32, domain;
+# This file defines the rules for untrusted apps running with
+# 29 < targetSdkVersion <= 31.
+type untrusted_app_30, domain;
+# This file defines the rules for untrusted apps running with
+# targetSdkVersion = 29.
+type untrusted_app_29, domain;
+# This file defines the rules for untrusted apps running with
+# 25 < targetSdkVersion <= 28.
+type untrusted_app_27, domain;
+# This file defines the rules for untrusted apps running with
+# targetSdkVersion <= 25.
+type untrusted_app_25, domain;
+#line 1 "system/sepolicy/public/update_engine.te"
+# Domain for update_engine daemon.
+type update_engine, domain, update_engine_common;
+type update_engine_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+typeattribute update_engine netdomain;
+#line 5
+;
+
+# Following permissions are needed for update_engine.
+allow update_engine self:process { setsched };
+allow update_engine self:{ capability cap_userns } { fowner sys_admin };
+# Note: fsetid checks are triggered when creating a file in a directory with
+# the setgid bit set to determine if the file should inherit setgid. In this
+# case, setgid on the file is undesirable so we should just suppress the
+# denial.
+dontaudit update_engine self:{ capability cap_userns } fsetid;
+
+allow update_engine kmsg_device:chr_file { getattr { open append write lock map } };
+allow update_engine update_engine_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 18
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 18
+# deprecated.
+#line 18
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 18
+allow update_engine sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 18
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 18
+allow update_engine self:{ capability2 cap2_userns } block_suspend;
+#line 18
+# system_suspend permissions
+#line 18
+
+#line 18
+# Call the server domain and optionally transfer references to it.
+#line 18
+allow update_engine system_suspend_server:binder { call transfer };
+#line 18
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 18
+allow system_suspend_server update_engine:binder transfer;
+#line 18
+# Receive and use open files from the server.
+#line 18
+allow update_engine system_suspend_server:fd use;
+#line 18
+
+#line 18
+allow update_engine system_suspend_hwservice:hwservice_manager find;
+#line 18
+# halclientdomain permissions
+#line 18
+
+#line 18
+# Call the hwservicemanager and transfer references to it.
+#line 18
+allow update_engine hwservicemanager:binder { call transfer };
+#line 18
+# Allow hwservicemanager to send out callbacks
+#line 18
+allow hwservicemanager update_engine:binder { call transfer };
+#line 18
+# hwservicemanager performs getpidcon on clients.
+#line 18
+allow hwservicemanager update_engine:dir search;
+#line 18
+allow hwservicemanager update_engine:file { read open map };
+#line 18
+allow hwservicemanager update_engine:process getattr;
+#line 18
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 18
+# all domains in domain.te.
+#line 18
+
+#line 18
+
+#line 18
+allow update_engine hwservicemanager_prop:file { getattr open read map };
+#line 18
+
+#line 18
+allow update_engine hidl_manager_hwservice:hwservice_manager find;
+#line 18
+# AIDL suspend hal permissions
+#line 18
+allow update_engine hal_system_suspend_service:service_manager find;
+#line 18
+
+#line 18
+# Call the servicemanager and transfer references to it.
+#line 18
+allow update_engine servicemanager:binder { call transfer };
+#line 18
+# Allow servicemanager to send out callbacks
+#line 18
+allow servicemanager update_engine:binder { call transfer };
+#line 18
+# servicemanager performs getpidcon on clients.
+#line 18
+allow servicemanager update_engine:dir search;
+#line 18
+allow servicemanager update_engine:file { read open };
+#line 18
+allow servicemanager update_engine:process getattr;
+#line 18
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 18
+# all domains in domain.te.
+#line 18
+
+#line 18
+;
+
+# Ignore these denials.
+dontaudit update_engine kernel:process setsched;
+dontaudit update_engine self:{ capability cap_userns } sys_rawio;
+
+# Allow using persistent storage in /data/misc/update_engine.
+allow update_engine update_engine_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow update_engine update_engine_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow using persistent storage in /data/misc/update_engine_log.
+allow update_engine update_engine_log_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow update_engine update_engine_log_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Register the service to perform Binder IPC.
+
+#line 33
+# Call the servicemanager and transfer references to it.
+#line 33
+allow update_engine servicemanager:binder { call transfer };
+#line 33
+# Allow servicemanager to send out callbacks
+#line 33
+allow servicemanager update_engine:binder { call transfer };
+#line 33
+# servicemanager performs getpidcon on clients.
+#line 33
+allow servicemanager update_engine:dir search;
+#line 33
+allow servicemanager update_engine:file { read open };
+#line 33
+allow servicemanager update_engine:process getattr;
+#line 33
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 33
+# all domains in domain.te.
+#line 33
+
+
+#line 34
+  allow update_engine update_engine_service:service_manager { add find };
+#line 34
+  neverallow { domain -update_engine } update_engine_service:service_manager add;
+#line 34
+
+#line 34
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 34
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 34
+  
+#line 34
+
+
+#line 35
+  allow update_engine update_engine_stable_service:service_manager { add find };
+#line 35
+  neverallow { domain -update_engine } update_engine_stable_service:service_manager add;
+#line 35
+
+#line 35
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 35
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 35
+  
+#line 35
+
+
+# Allow update_engine to call the callback function provided by priv_app/GMS core.
+
+#line 38
+# Call the server domain and optionally transfer references to it.
+#line 38
+allow update_engine priv_app:binder { call transfer };
+#line 38
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 38
+allow priv_app update_engine:binder transfer;
+#line 38
+# Receive and use open files from the server.
+#line 38
+allow update_engine priv_app:fd use;
+#line 38
+
+# b/142672293: No other priv-app should need this rule now that GMS core runs in its own domain.
+#line 44
+
+
+
+#line 46
+# Call the server domain and optionally transfer references to it.
+#line 46
+allow update_engine gmscore_app:binder { call transfer };
+#line 46
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 46
+allow gmscore_app update_engine:binder transfer;
+#line 46
+# Receive and use open files from the server.
+#line 46
+allow update_engine gmscore_app:fd use;
+#line 46
+
+
+# Allow update_engine to call the callback function provided by system_server.
+
+#line 49
+# Call the server domain and optionally transfer references to it.
+#line 49
+allow update_engine system_server:binder { call transfer };
+#line 49
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 49
+allow system_server update_engine:binder transfer;
+#line 49
+# Receive and use open files from the server.
+#line 49
+allow update_engine system_server:fd use;
+#line 49
+
+
+# Read OTA zip file at /data/ota_package/.
+allow update_engine ota_package_file:file { getattr open read ioctl lock map watch watch_reads };
+allow update_engine ota_package_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Use Boot Control HAL
+
+#line 56
+typeattribute update_engine halclientdomain;
+#line 56
+typeattribute update_engine hal_bootctl_client;
+#line 56
+
+#line 56
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 56
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 56
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 56
+
+#line 56
+typeattribute update_engine hal_bootctl;
+#line 56
+# Find passthrough HAL implementations
+#line 56
+allow hal_bootctl system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 56
+allow hal_bootctl vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 56
+allow hal_bootctl vendor_file:file { read open getattr execute map };
+#line 56
+
+#line 56
+
+
+# access /proc/misc
+allow update_engine proc_misc:file { getattr open read ioctl lock map watch watch_reads };
+
+# read directories on /system and /vendor
+allow update_engine system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow ReadDefaultFstab().
+# update_engine tries to determine the parent path for all devices (e.g.
+# /dev/block/by-name) by reading the default fstab and looking for the misc
+# device.
+
+#line 68
+  allow update_engine { metadata_file gsi_metadata_file_type }:dir search;
+#line 68
+  allow update_engine gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 68
+  allow update_engine { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 68
+
+
+# Allow to write to snapshotctl_log logs.
+# TODO(b/148818798) revert when parent bug is fixed.
+#line 75
+
+
+# Allow determining filesystems available on system.
+# Needed for checking if overlayfs is enabled
+allow update_engine proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/public/update_engine_common.te"
+# update_engine payload application permissions. These are shared between the
+# background daemon and the recovery tool to sideload an update.
+
+# Allow update_engine to reach block devices in /dev/block.
+allow update_engine_common block_device:dir search;
+
+# Allow read/write on system and boot partitions.
+allow update_engine_common boot_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow update_engine_common system_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Where ioctls are granted via standard allow rules to block devices,
+# automatically allow common ioctls that are generally needed by
+# update_engine.
+allowxperm update_engine_common dev_type:blk_file ioctl {
+  0x00001277
+  0x0000127c
+  0x0000125e
+  0x0000125d
+  0x0000127d
+  0x0000127f
+};
+
+# Allow to set recovery options in the BCB. Used to trigger factory reset when
+# the update to an older version (channel change) or incompatible version
+# requires it.
+allow update_engine_common misc_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# read fstab
+allow update_engine_common rootfs:dir getattr;
+allow update_engine_common rootfs:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow update_engine_common to mount on the /postinstall directory and reset the
+# labels on the mounted filesystem to postinstall_file.
+allow update_engine_common postinstall_mnt_dir:dir { mounton getattr search };
+allow update_engine_common postinstall_file:filesystem { mount unmount relabelfrom relabelto };
+allow update_engine_common labeledfs:filesystem { mount unmount relabelfrom };
+
+# Allow update_engine_common to read and execute postinstall_file.
+allow update_engine_common postinstall_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow update_engine_common postinstall_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow update_engine_common postinstall_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# install update.zip from cache
+
+#line 44
+allow update_engine_common cache_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 44
+allow update_engine_common cache_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 44
+
+
+# A postinstall program is typically a shell script (with a #!), so we allow
+# to execute those.
+allow update_engine_common shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow update_engine_common to suspend, resume and kill the postinstall program.
+allow update_engine_common postinstall:process { signal sigstop sigkill };
+
+# access /proc/cmdline
+allow update_engine_common proc_cmdline:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read files in /sys/firmware/devicetree/base/firmware/android/
+
+#line 57
+allow update_engine_common sysfs_dt_firmware_android:dir { open getattr read search ioctl lock watch watch_reads };
+#line 57
+allow update_engine_common sysfs_dt_firmware_android:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 57
+
+
+# Needed because libdm reads sysfs to validate when a dm path is ready.
+
+#line 60
+allow update_engine_common sysfs_dm:dir { open getattr read search ioctl lock watch watch_reads };
+#line 60
+allow update_engine_common sysfs_dm:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 60
+
+
+# Scan files in /sys/fs/ext4 and /sys/fs/f2fs for device-mapper diagnostics.
+allow update_engine_common sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow update_engine_common sysfs_fs_f2fs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# read / write on /dev/device-mapper to map / unmap devices
+allow update_engine_common dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# apply / verify updates on devices mapped via device mapper
+allow update_engine_common dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# read /dev/dm-user, so that we can inotify wait for control devices to be
+# asynchronously created by ueventd.
+allow update_engine dm_user_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow update_engine dm_user_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# read / write metadata on super device to resize partitions
+allow update_engine_common super_block_device_type:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# ioctl on super device to get block device alignment and alignment offset
+allowxperm update_engine_common super_block_device_type:blk_file ioctl { 0x00001278 0x0000127a };
+
+# get physical block device to map logical partitions on device mapper
+allow update_engine_common block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow update_engine_common to write to statsd socket.
+
+#line 87
+allow update_engine_common statsdw_socket:sock_file write;
+#line 87
+allow update_engine_common statsd:unix_dgram_socket sendto;
+#line 87
+
+
+# Allow to read Virtual A/B feature flags.
+
+#line 90
+allow update_engine_common virtual_ab_prop:file { getattr open read map };
+#line 90
+
+
+# Allow to read GKI related flags.
+
+#line 93
+allow update_engine_common ab_update_gki_prop:file { getattr open read map };
+#line 93
+
+
+#line 94
+allow update_engine_common build_bootimage_prop:file { getattr open read map };
+#line 94
+
+
+# Allow to read/write/create OTA metadata files for snapshot status and COW file status.
+allow update_engine_common metadata_file:dir search;
+allow update_engine_common ota_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow update_engine_common ota_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+#line 1 "system/sepolicy/public/update_verifier.te"
+# update_verifier
+type update_verifier, domain;
+type update_verifier_exec, system_file_type, exec_type, file_type;
+
+# Allow update_verifier to reach block devices in /dev/block.
+allow update_verifier block_device:dir search;
+
+# Read care map in /data/ota_package/.
+allow update_verifier ota_package_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow update_verifier ota_package_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read /sys/block to find all the DM directories like (/sys/block/dm-X).
+allow update_verifier sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Read /sys/block/dm-X/dm/name (which is a symlink to
+# /sys/devices/virtual/block/dm-X/dm/name) to identify the mapping between
+# dm-X and system/vendor partitions.
+allow update_verifier sysfs_dm:dir { open getattr read search ioctl lock watch watch_reads };
+allow update_verifier sysfs_dm:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read all blocks in DM wrapped system partition.
+allow update_verifier dm_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Write to kernel message.
+allow update_verifier kmsg_device:chr_file { getattr { open append write lock map } };
+
+# Use Boot Control HAL
+
+#line 28
+typeattribute update_verifier halclientdomain;
+#line 28
+typeattribute update_verifier hal_bootctl_client;
+#line 28
+
+#line 28
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 28
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 28
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 28
+
+#line 28
+typeattribute update_verifier hal_bootctl;
+#line 28
+# Find passthrough HAL implementations
+#line 28
+allow hal_bootctl system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 28
+allow hal_bootctl vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 28
+allow hal_bootctl vendor_file:file { read open getattr execute map };
+#line 28
+
+#line 28
+
+
+# Access Checkpoint commands over binder
+allow update_verifier vold_service:service_manager find;
+
+#line 32
+# Call the server domain and optionally transfer references to it.
+#line 32
+allow update_verifier servicemanager:binder { call transfer };
+#line 32
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 32
+allow servicemanager update_verifier:binder transfer;
+#line 32
+# Receive and use open files from the server.
+#line 32
+allow update_verifier servicemanager:fd use;
+#line 32
+
+
+#line 33
+# Call the server domain and optionally transfer references to it.
+#line 33
+allow update_verifier vold:binder { call transfer };
+#line 33
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 33
+allow vold update_verifier:binder transfer;
+#line 33
+# Receive and use open files from the server.
+#line 33
+allow update_verifier vold:fd use;
+#line 33
+
+#line 1 "system/sepolicy/public/usbd.te"
+type usbd, domain;
+type usbd_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+# Call the server domain and optionally transfer references to it.
+#line 4
+allow usbd servicemanager:binder { call transfer };
+#line 4
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 4
+allow servicemanager usbd:binder transfer;
+#line 4
+# Receive and use open files from the server.
+#line 4
+allow usbd servicemanager:fd use;
+#line 4
+
+#line 1 "system/sepolicy/public/userdata_sysdev.te"
+allow userdata_sysdev sysfs:filesystem associate;
+#line 1 "system/sepolicy/public/vdc.te"
+# vdc is a helper program for making Binder calls to vold.  It is spawned from
+# init for various reasons, such as initializing file-based encryption and
+# metadata encryption, and managing userdata checkpointing.
+#
+# We also transition into this domain from dumpstate, when
+# collecting bug reports.
+
+type vdc, domain;
+type vdc_exec, system_file_type, exec_type, file_type;
+
+# vdc can be invoked with logwrapper, so let it write to pty
+allow vdc devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# vdc writes directly to kmsg during the boot process
+allow vdc kmsg_device:chr_file { getattr { open append write lock map } };
+
+# vdc talks to vold over Binder
+
+#line 18
+# Call the servicemanager and transfer references to it.
+#line 18
+allow vdc servicemanager:binder { call transfer };
+#line 18
+# Allow servicemanager to send out callbacks
+#line 18
+allow servicemanager vdc:binder { call transfer };
+#line 18
+# servicemanager performs getpidcon on clients.
+#line 18
+allow servicemanager vdc:dir search;
+#line 18
+allow servicemanager vdc:file { read open };
+#line 18
+allow servicemanager vdc:process getattr;
+#line 18
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 18
+# all domains in domain.te.
+#line 18
+
+
+#line 19
+# Call the server domain and optionally transfer references to it.
+#line 19
+allow vdc vold:binder { call transfer };
+#line 19
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 19
+allow vold vdc:binder transfer;
+#line 19
+# Receive and use open files from the server.
+#line 19
+allow vdc vold:fd use;
+#line 19
+
+allow vdc vold_service:service_manager find;
+#line 1 "system/sepolicy/public/vendor_init.te"
+# vendor_init is its own domain.
+type vendor_init, domain, mlstrustedsubject;
+
+# Communication to the main init process
+allow vendor_init init:unix_stream_socket { read write };
+
+# Logging to kmsg
+allow vendor_init kmsg_device:chr_file { open getattr write };
+
+# Mount on /dev/usb-ffs/adb.
+allow vendor_init device:dir mounton;
+
+# Create and remove symlinks in /.
+allow vendor_init rootfs:lnk_file { create unlink };
+
+# Create cgroups mount points in tmpfs and mount cgroups on them.
+allow vendor_init cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vendor_init cgroup:file { open append write lock map };
+allow vendor_init cgroup_v2:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vendor_init cgroup_v2:file { open append write lock map };
+
+# /config
+allow vendor_init configfs:dir mounton;
+allow vendor_init configfs:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vendor_init configfs:{ file lnk_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Create directories under /dev/cpuctl after chowning it to system.
+allow vendor_init self:{ capability cap_userns } { dac_override dac_read_search };
+
+# mkdir, symlink, write, rm/rmdir, chown/chmod, restorecon/restorecon_recursive from init.rc files.
+# chown/chmod require open+read+setattr required for open()+fchown/fchmod().
+# system/core/init.rc requires at least cache_file and data_file_type.
+# init.<board>.rc files often include device-specific types, so
+# we just allow all file types except /system files here.
+allow vendor_init self:{ capability cap_userns } { chown fowner fsetid };
+
+# mkdir with FBE requires reading /data/unencrypted/{ref,mode}.
+allow vendor_init unencrypted_data_file:dir search;
+allow vendor_init unencrypted_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Set encryption policy on dirs in /data
+allowxperm vendor_init data_file_type:dir ioctl {
+  0x400c6615
+  0x800c6613
+};
+
+allow vendor_init system_data_file:dir getattr;
+
+allow vendor_init {
+  file_type
+  -bpffs_type
+  -core_data_file_type
+  -exec_type
+  -system_dlkm_file_type
+  -system_file_type
+  -mnt_product_file
+  -password_slot_metadata_file
+  -ota_metadata_file
+  -unlabeled
+  -vendor_file_type
+  -vold_metadata_file
+  -gsi_metadata_file_type
+  -apex_metadata_file
+  -userspace_reboot_metadata_file
+  -aconfig_storage_metadata_file
+  -aconfig_storage_flags_metadata_file
+}:dir { create search getattr open read setattr ioctl write add_name remove_name rmdir relabelfrom };
+
+allow vendor_init unlabeled:{ dir { file lnk_file sock_file fifo_file } } { getattr relabelfrom };
+
+allow vendor_init {
+  file_type
+  -bpffs_type
+  -core_data_file_type
+  -exec_type
+  -password_slot_metadata_file
+  -ota_metadata_file
+  -runtime_event_log_tags_file
+  -system_dlkm_file_type
+  -system_file_type
+  -unlabeled
+  -vendor_file_type
+  -vold_metadata_file
+  -gsi_metadata_file_type
+  -apex_metadata_file
+  -apex_info_file
+  -userspace_reboot_metadata_file
+  -aconfig_storage_metadata_file
+  -aconfig_storage_flags_metadata_file
+  # BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 90
+-debugfs_type
+#line 90
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 90
+
+}:file { create getattr open read write setattr relabelfrom unlink map };
+
+allow vendor_init {
+  file_type
+  -bpffs_type
+  -core_data_file_type
+  -exec_type
+  -password_slot_metadata_file
+  -ota_metadata_file
+  -system_dlkm_file_type
+  -system_file_type
+  -unlabeled
+  -vendor_file_type
+  -vold_metadata_file
+  -gsi_metadata_file_type
+  -apex_metadata_file
+  -userspace_reboot_metadata_file
+  -aconfig_storage_metadata_file
+  -aconfig_storage_flags_metadata_file
+}:{ sock_file fifo_file } { create getattr open read setattr relabelfrom unlink };
+
+allow vendor_init {
+  file_type
+  -apex_mnt_dir
+  -bpffs_type
+  -core_data_file_type
+  -exec_type
+  -password_slot_metadata_file
+  -ota_metadata_file
+  -system_dlkm_file_type
+  -system_file_type
+  -unlabeled
+  -vendor_file_type
+  -vold_metadata_file
+  -gsi_metadata_file_type
+  -apex_metadata_file
+  -userspace_reboot_metadata_file
+  -aconfig_storage_metadata_file
+  -aconfig_storage_flags_metadata_file
+}:lnk_file { create getattr setattr relabelfrom unlink };
+
+allow vendor_init {
+  file_type
+  -bpffs_type
+  -core_data_file_type
+  -exec_type
+  -mnt_product_file
+  -password_slot_metadata_file
+  -ota_metadata_file
+  -system_dlkm_file_type
+  -system_file_type
+  -vendor_file_type
+  -vold_metadata_file
+  -gsi_metadata_file_type
+  -apex_metadata_file
+  -userspace_reboot_metadata_file
+  -aconfig_storage_metadata_file
+  -aconfig_storage_flags_metadata_file
+}:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } relabelto;
+
+allow vendor_init dev_type:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vendor_init dev_type:lnk_file create;
+
+# Disable tracing by writing to /sys/kernel/debug/tracing/tracing_on
+allow vendor_init debugfs_tracing:file { open append write lock map };
+
+# chown/chmod on pseudo files.
+allow vendor_init {
+  fs_type
+  -bpffs_type
+  -contextmount_type
+  -keychord_device
+  -sdcard_type
+  -fusefs_type
+  -rootfs
+  -proc_uid_time_in_state
+  -proc_uid_concurrent_active_time
+  -proc_uid_concurrent_policy_time
+  # BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 169
+-debugfs_type
+#line 169
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 169
+
+}:file { open read setattr map };
+
+allow vendor_init tracefs_type:file { open read setattr map };
+
+allow vendor_init {
+  fs_type
+  -bpffs_type
+  -contextmount_type
+  -sdcard_type
+  -fusefs_type
+  -rootfs
+  -proc_uid_time_in_state
+  -proc_uid_concurrent_active_time
+  -proc_uid_concurrent_policy_time
+}:dir { open read setattr search };
+
+allow vendor_init dev_type:blk_file getattr;
+
+# Write to /proc/sys/net/ping_group_range and other /proc/sys/net files.
+
+#line 189
+allow vendor_init proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 189
+allow vendor_init proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 189
+
+allow vendor_init proc_net_type:file { open append write lock map };
+allow vendor_init self:{ capability cap_userns } net_admin;
+
+# Write to /proc/sys/vm/page-cluster
+allow vendor_init proc_page_cluster:file { open append write lock map };
+
+# Write to sysfs nodes.
+allow vendor_init sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+allow vendor_init sysfs_type:lnk_file read;
+allow vendor_init { sysfs_type -sysfs_usermodehelper }:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# setfscreatecon() for labeling directories and socket files.
+allow vendor_init self:process { setfscreate };
+
+
+#line 204
+allow vendor_init vendor_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 204
+allow vendor_init vendor_file_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 204
+
+
+# Vendor init can read properties
+allow vendor_init serialno_prop:file { getattr open read map };
+
+# Vendor init can perform operations on trusted and security Extended Attributes
+allow vendor_init self:{ capability cap_userns } sys_admin;
+
+# Raw writes to misc block device
+allow vendor_init misc_block_device:blk_file { open append write lock map };
+
+# vendor_init is using bootstrap bionic
+
+#line 216
+  allow vendor_init system_bootstrap_lib_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 216
+  allow vendor_init system_bootstrap_lib_file:file { execute read open getattr map };
+#line 216
+
+
+# allow filesystem tuning
+allow vendor_init userdata_sysdev:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Everything is labeled as rootfs in recovery mode. Vendor init has to execute
+# the dynamic linker and shared libraries.
+#line 225
+
+
+
+#line 227
+    
+#line 227
+
+#line 227
+allow vendor_init property_socket:sock_file write;
+#line 227
+allow vendor_init init:unix_stream_socket connectto;
+#line 227
+
+#line 227
+allow vendor_init {
+#line 227
+      property_type
+#line 227
+      -system_internal_property_type
+#line 227
+      -system_restricted_property_type
+#line 227
+    }:property_service set;
+#line 227
+
+#line 227
+allow vendor_init {
+#line 227
+      property_type
+#line 227
+      -system_internal_property_type
+#line 227
+      -system_restricted_property_type
+#line 227
+    }:file { getattr open read map };
+#line 227
+
+#line 227
+
+#line 233
+
+
+# Get file context
+allow vendor_init file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow vendor_init to (re)set nice
+allow vendor_init self:capability sys_nice;
+
+
+#line 241
+
+#line 241
+allow vendor_init property_socket:sock_file write;
+#line 241
+allow vendor_init init:unix_stream_socket connectto;
+#line 241
+
+#line 241
+allow vendor_init apk_verity_prop:property_service set;
+#line 241
+
+#line 241
+allow vendor_init apk_verity_prop:file { getattr open read map };
+#line 241
+
+#line 241
+
+
+#line 242
+
+#line 242
+allow vendor_init property_socket:sock_file write;
+#line 242
+allow vendor_init init:unix_stream_socket connectto;
+#line 242
+
+#line 242
+allow vendor_init bluetooth_a2dp_offload_prop:property_service set;
+#line 242
+
+#line 242
+allow vendor_init bluetooth_a2dp_offload_prop:file { getattr open read map };
+#line 242
+
+#line 242
+
+
+#line 243
+
+#line 243
+allow vendor_init property_socket:sock_file write;
+#line 243
+allow vendor_init init:unix_stream_socket connectto;
+#line 243
+
+#line 243
+allow vendor_init bluetooth_audio_hal_prop:property_service set;
+#line 243
+
+#line 243
+allow vendor_init bluetooth_audio_hal_prop:file { getattr open read map };
+#line 243
+
+#line 243
+
+
+#line 244
+
+#line 244
+allow vendor_init property_socket:sock_file write;
+#line 244
+allow vendor_init init:unix_stream_socket connectto;
+#line 244
+
+#line 244
+allow vendor_init bluetooth_config_prop:property_service set;
+#line 244
+
+#line 244
+allow vendor_init bluetooth_config_prop:file { getattr open read map };
+#line 244
+
+#line 244
+
+
+#line 245
+
+#line 245
+allow vendor_init property_socket:sock_file write;
+#line 245
+allow vendor_init init:unix_stream_socket connectto;
+#line 245
+
+#line 245
+allow vendor_init camera2_extensions_prop:property_service set;
+#line 245
+
+#line 245
+allow vendor_init camera2_extensions_prop:file { getattr open read map };
+#line 245
+
+#line 245
+
+
+#line 246
+
+#line 246
+allow vendor_init property_socket:sock_file write;
+#line 246
+allow vendor_init init:unix_stream_socket connectto;
+#line 246
+
+#line 246
+allow vendor_init camerax_extensions_prop:property_service set;
+#line 246
+
+#line 246
+allow vendor_init camerax_extensions_prop:file { getattr open read map };
+#line 246
+
+#line 246
+
+
+#line 247
+
+#line 247
+allow vendor_init property_socket:sock_file write;
+#line 247
+allow vendor_init init:unix_stream_socket connectto;
+#line 247
+
+#line 247
+allow vendor_init cpu_variant_prop:property_service set;
+#line 247
+
+#line 247
+allow vendor_init cpu_variant_prop:file { getattr open read map };
+#line 247
+
+#line 247
+
+
+#line 248
+
+#line 248
+allow vendor_init property_socket:sock_file write;
+#line 248
+allow vendor_init init:unix_stream_socket connectto;
+#line 248
+
+#line 248
+allow vendor_init dalvik_config_prop:property_service set;
+#line 248
+
+#line 248
+allow vendor_init dalvik_config_prop:file { getattr open read map };
+#line 248
+
+#line 248
+
+
+#line 249
+
+#line 249
+allow vendor_init property_socket:sock_file write;
+#line 249
+allow vendor_init init:unix_stream_socket connectto;
+#line 249
+
+#line 249
+allow vendor_init dalvik_dynamic_config_prop:property_service set;
+#line 249
+
+#line 249
+allow vendor_init dalvik_dynamic_config_prop:file { getattr open read map };
+#line 249
+
+#line 249
+
+
+#line 250
+
+#line 250
+allow vendor_init property_socket:sock_file write;
+#line 250
+allow vendor_init init:unix_stream_socket connectto;
+#line 250
+
+#line 250
+allow vendor_init dalvik_runtime_prop:property_service set;
+#line 250
+
+#line 250
+allow vendor_init dalvik_runtime_prop:file { getattr open read map };
+#line 250
+
+#line 250
+
+
+#line 251
+
+#line 251
+allow vendor_init property_socket:sock_file write;
+#line 251
+allow vendor_init init:unix_stream_socket connectto;
+#line 251
+
+#line 251
+allow vendor_init debug_prop:property_service set;
+#line 251
+
+#line 251
+allow vendor_init debug_prop:file { getattr open read map };
+#line 251
+
+#line 251
+
+
+#line 252
+
+#line 252
+allow vendor_init property_socket:sock_file write;
+#line 252
+allow vendor_init init:unix_stream_socket connectto;
+#line 252
+
+#line 252
+allow vendor_init exported_bluetooth_prop:property_service set;
+#line 252
+
+#line 252
+allow vendor_init exported_bluetooth_prop:file { getattr open read map };
+#line 252
+
+#line 252
+
+
+#line 253
+
+#line 253
+allow vendor_init property_socket:sock_file write;
+#line 253
+allow vendor_init init:unix_stream_socket connectto;
+#line 253
+
+#line 253
+allow vendor_init exported_camera_prop:property_service set;
+#line 253
+
+#line 253
+allow vendor_init exported_camera_prop:file { getattr open read map };
+#line 253
+
+#line 253
+
+
+#line 254
+
+#line 254
+allow vendor_init property_socket:sock_file write;
+#line 254
+allow vendor_init init:unix_stream_socket connectto;
+#line 254
+
+#line 254
+allow vendor_init exported_config_prop:property_service set;
+#line 254
+
+#line 254
+allow vendor_init exported_config_prop:file { getattr open read map };
+#line 254
+
+#line 254
+
+
+#line 255
+
+#line 255
+allow vendor_init property_socket:sock_file write;
+#line 255
+allow vendor_init init:unix_stream_socket connectto;
+#line 255
+
+#line 255
+allow vendor_init exported_default_prop:property_service set;
+#line 255
+
+#line 255
+allow vendor_init exported_default_prop:file { getattr open read map };
+#line 255
+
+#line 255
+
+
+#line 256
+
+#line 256
+allow vendor_init property_socket:sock_file write;
+#line 256
+allow vendor_init init:unix_stream_socket connectto;
+#line 256
+
+#line 256
+allow vendor_init exported_overlay_prop:property_service set;
+#line 256
+
+#line 256
+allow vendor_init exported_overlay_prop:file { getattr open read map };
+#line 256
+
+#line 256
+
+
+#line 257
+
+#line 257
+allow vendor_init property_socket:sock_file write;
+#line 257
+allow vendor_init init:unix_stream_socket connectto;
+#line 257
+
+#line 257
+allow vendor_init exported_pm_prop:property_service set;
+#line 257
+
+#line 257
+allow vendor_init exported_pm_prop:file { getattr open read map };
+#line 257
+
+#line 257
+
+
+#line 258
+
+#line 258
+allow vendor_init property_socket:sock_file write;
+#line 258
+allow vendor_init init:unix_stream_socket connectto;
+#line 258
+
+#line 258
+allow vendor_init ffs_control_prop:property_service set;
+#line 258
+
+#line 258
+allow vendor_init ffs_control_prop:file { getattr open read map };
+#line 258
+
+#line 258
+
+
+#line 259
+
+#line 259
+allow vendor_init property_socket:sock_file write;
+#line 259
+allow vendor_init init:unix_stream_socket connectto;
+#line 259
+
+#line 259
+allow vendor_init hw_timeout_multiplier_prop:property_service set;
+#line 259
+
+#line 259
+allow vendor_init hw_timeout_multiplier_prop:file { getattr open read map };
+#line 259
+
+#line 259
+
+
+#line 260
+
+#line 260
+allow vendor_init property_socket:sock_file write;
+#line 260
+allow vendor_init init:unix_stream_socket connectto;
+#line 260
+
+#line 260
+allow vendor_init incremental_prop:property_service set;
+#line 260
+
+#line 260
+allow vendor_init incremental_prop:file { getattr open read map };
+#line 260
+
+#line 260
+
+
+#line 261
+
+#line 261
+allow vendor_init property_socket:sock_file write;
+#line 261
+allow vendor_init init:unix_stream_socket connectto;
+#line 261
+
+#line 261
+allow vendor_init lmkd_prop:property_service set;
+#line 261
+
+#line 261
+allow vendor_init lmkd_prop:file { getattr open read map };
+#line 261
+
+#line 261
+
+
+#line 262
+
+#line 262
+allow vendor_init property_socket:sock_file write;
+#line 262
+allow vendor_init init:unix_stream_socket connectto;
+#line 262
+
+#line 262
+allow vendor_init logd_prop:property_service set;
+#line 262
+
+#line 262
+allow vendor_init logd_prop:file { getattr open read map };
+#line 262
+
+#line 262
+
+
+#line 263
+
+#line 263
+allow vendor_init property_socket:sock_file write;
+#line 263
+allow vendor_init init:unix_stream_socket connectto;
+#line 263
+
+#line 263
+allow vendor_init log_tag_prop:property_service set;
+#line 263
+
+#line 263
+allow vendor_init log_tag_prop:file { getattr open read map };
+#line 263
+
+#line 263
+
+
+#line 264
+
+#line 264
+allow vendor_init property_socket:sock_file write;
+#line 264
+allow vendor_init init:unix_stream_socket connectto;
+#line 264
+
+#line 264
+allow vendor_init log_prop:property_service set;
+#line 264
+
+#line 264
+allow vendor_init log_prop:file { getattr open read map };
+#line 264
+
+#line 264
+
+
+#line 265
+
+#line 265
+allow vendor_init property_socket:sock_file write;
+#line 265
+allow vendor_init init:unix_stream_socket connectto;
+#line 265
+
+#line 265
+allow vendor_init graphics_config_writable_prop:property_service set;
+#line 265
+
+#line 265
+allow vendor_init graphics_config_writable_prop:file { getattr open read map };
+#line 265
+
+#line 265
+
+
+#line 266
+
+#line 266
+allow vendor_init property_socket:sock_file write;
+#line 266
+allow vendor_init init:unix_stream_socket connectto;
+#line 266
+
+#line 266
+allow vendor_init qemu_hw_prop:property_service set;
+#line 266
+
+#line 266
+allow vendor_init qemu_hw_prop:file { getattr open read map };
+#line 266
+
+#line 266
+
+
+#line 267
+
+#line 267
+allow vendor_init property_socket:sock_file write;
+#line 267
+allow vendor_init init:unix_stream_socket connectto;
+#line 267
+
+#line 267
+allow vendor_init radio_control_prop:property_service set;
+#line 267
+
+#line 267
+allow vendor_init radio_control_prop:file { getattr open read map };
+#line 267
+
+#line 267
+
+
+#line 268
+
+#line 268
+allow vendor_init property_socket:sock_file write;
+#line 268
+allow vendor_init init:unix_stream_socket connectto;
+#line 268
+
+#line 268
+allow vendor_init rebootescrow_hal_prop:property_service set;
+#line 268
+
+#line 268
+allow vendor_init rebootescrow_hal_prop:file { getattr open read map };
+#line 268
+
+#line 268
+
+
+#line 269
+
+#line 269
+allow vendor_init property_socket:sock_file write;
+#line 269
+allow vendor_init init:unix_stream_socket connectto;
+#line 269
+
+#line 269
+allow vendor_init serialno_prop:property_service set;
+#line 269
+
+#line 269
+allow vendor_init serialno_prop:file { getattr open read map };
+#line 269
+
+#line 269
+
+
+#line 270
+
+#line 270
+allow vendor_init property_socket:sock_file write;
+#line 270
+allow vendor_init init:unix_stream_socket connectto;
+#line 270
+
+#line 270
+allow vendor_init soc_prop:property_service set;
+#line 270
+
+#line 270
+allow vendor_init soc_prop:file { getattr open read map };
+#line 270
+
+#line 270
+
+
+#line 271
+
+#line 271
+allow vendor_init property_socket:sock_file write;
+#line 271
+allow vendor_init init:unix_stream_socket connectto;
+#line 271
+
+#line 271
+allow vendor_init surfaceflinger_color_prop:property_service set;
+#line 271
+
+#line 271
+allow vendor_init surfaceflinger_color_prop:file { getattr open read map };
+#line 271
+
+#line 271
+
+
+#line 272
+
+#line 272
+allow vendor_init property_socket:sock_file write;
+#line 272
+allow vendor_init init:unix_stream_socket connectto;
+#line 272
+
+#line 272
+allow vendor_init usb_control_prop:property_service set;
+#line 272
+
+#line 272
+allow vendor_init usb_control_prop:file { getattr open read map };
+#line 272
+
+#line 272
+
+
+#line 273
+
+#line 273
+allow vendor_init property_socket:sock_file write;
+#line 273
+allow vendor_init init:unix_stream_socket connectto;
+#line 273
+
+#line 273
+allow vendor_init userspace_reboot_config_prop:property_service set;
+#line 273
+
+#line 273
+allow vendor_init userspace_reboot_config_prop:file { getattr open read map };
+#line 273
+
+#line 273
+
+
+#line 274
+
+#line 274
+allow vendor_init property_socket:sock_file write;
+#line 274
+allow vendor_init init:unix_stream_socket connectto;
+#line 274
+
+#line 274
+allow vendor_init vehicle_hal_prop:property_service set;
+#line 274
+
+#line 274
+allow vendor_init vehicle_hal_prop:file { getattr open read map };
+#line 274
+
+#line 274
+
+
+#line 275
+
+#line 275
+allow vendor_init property_socket:sock_file write;
+#line 275
+allow vendor_init init:unix_stream_socket connectto;
+#line 275
+
+#line 275
+allow vendor_init vendor_default_prop:property_service set;
+#line 275
+
+#line 275
+allow vendor_init vendor_default_prop:file { getattr open read map };
+#line 275
+
+#line 275
+
+
+#line 276
+
+#line 276
+allow vendor_init property_socket:sock_file write;
+#line 276
+allow vendor_init init:unix_stream_socket connectto;
+#line 276
+
+#line 276
+allow vendor_init keystore_config_prop:property_service set;
+#line 276
+
+#line 276
+allow vendor_init keystore_config_prop:file { getattr open read map };
+#line 276
+
+#line 276
+
+
+#line 277
+
+#line 277
+allow vendor_init property_socket:sock_file write;
+#line 277
+allow vendor_init init:unix_stream_socket connectto;
+#line 277
+
+#line 277
+allow vendor_init vendor_security_patch_level_prop:property_service set;
+#line 277
+
+#line 277
+allow vendor_init vendor_security_patch_level_prop:file { getattr open read map };
+#line 277
+
+#line 277
+
+
+#line 278
+
+#line 278
+allow vendor_init property_socket:sock_file write;
+#line 278
+allow vendor_init init:unix_stream_socket connectto;
+#line 278
+
+#line 278
+allow vendor_init vndk_prop:property_service set;
+#line 278
+
+#line 278
+allow vendor_init vndk_prop:file { getattr open read map };
+#line 278
+
+#line 278
+
+
+#line 279
+
+#line 279
+allow vendor_init property_socket:sock_file write;
+#line 279
+allow vendor_init init:unix_stream_socket connectto;
+#line 279
+
+#line 279
+allow vendor_init virtual_ab_prop:property_service set;
+#line 279
+
+#line 279
+allow vendor_init virtual_ab_prop:file { getattr open read map };
+#line 279
+
+#line 279
+
+
+#line 280
+
+#line 280
+allow vendor_init property_socket:sock_file write;
+#line 280
+allow vendor_init init:unix_stream_socket connectto;
+#line 280
+
+#line 280
+allow vendor_init vold_post_fs_data_prop:property_service set;
+#line 280
+
+#line 280
+allow vendor_init vold_post_fs_data_prop:file { getattr open read map };
+#line 280
+
+#line 280
+
+
+#line 281
+
+#line 281
+allow vendor_init property_socket:sock_file write;
+#line 281
+allow vendor_init init:unix_stream_socket connectto;
+#line 281
+
+#line 281
+allow vendor_init wifi_hal_prop:property_service set;
+#line 281
+
+#line 281
+allow vendor_init wifi_hal_prop:file { getattr open read map };
+#line 281
+
+#line 281
+
+
+#line 282
+
+#line 282
+allow vendor_init property_socket:sock_file write;
+#line 282
+allow vendor_init init:unix_stream_socket connectto;
+#line 282
+
+#line 282
+allow vendor_init wifi_log_prop:property_service set;
+#line 282
+
+#line 282
+allow vendor_init wifi_log_prop:file { getattr open read map };
+#line 282
+
+#line 282
+
+
+#line 283
+
+#line 283
+allow vendor_init property_socket:sock_file write;
+#line 283
+allow vendor_init init:unix_stream_socket connectto;
+#line 283
+
+#line 283
+allow vendor_init zram_control_prop:property_service set;
+#line 283
+
+#line 283
+allow vendor_init zram_control_prop:file { getattr open read map };
+#line 283
+
+#line 283
+
+
+
+#line 285
+allow vendor_init boot_status_prop:file { getattr open read map };
+#line 285
+
+
+#line 286
+allow vendor_init exported3_system_prop:file { getattr open read map };
+#line 286
+
+
+#line 287
+allow vendor_init ota_prop:file { getattr open read map };
+#line 287
+
+
+#line 288
+allow vendor_init power_debug_prop:file { getattr open read map };
+#line 288
+
+
+#line 289
+allow vendor_init provisioned_prop:file { getattr open read map };
+#line 289
+
+
+#line 290
+allow vendor_init retaildemo_prop:file { getattr open read map };
+#line 290
+
+
+#line 291
+allow vendor_init surfaceflinger_display_prop:file { getattr open read map };
+#line 291
+
+
+#line 292
+allow vendor_init test_harness_prop:file { getattr open read map };
+#line 292
+
+
+#line 293
+allow vendor_init theme_prop:file { getattr open read map };
+#line 293
+
+
+#line 294
+
+#line 294
+allow vendor_init property_socket:sock_file write;
+#line 294
+allow vendor_init init:unix_stream_socket connectto;
+#line 294
+
+#line 294
+allow vendor_init dck_prop:property_service set;
+#line 294
+
+#line 294
+allow vendor_init dck_prop:file { getattr open read map };
+#line 294
+
+#line 294
+
+
+# Allow vendor_init to read vendor_system_native device config changes
+
+#line 297
+allow vendor_init device_config_vendor_system_native_prop:file { getattr open read map };
+#line 297
+
+
+#line 298
+allow vendor_init device_config_vendor_system_native_boot_prop:file { getattr open read map };
+#line 298
+
+
+###
+### neverallow rules
+###
+
+# Vendor init shouldn't communicate with any vendor process, nor most system processes.
+
+#line 305
+  neverallow vendor_init {
+#line 305
+    domain -init -logd -prng_seeder -su -vendor_init }:{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket xdp_socket } { connect sendto };
+#line 305
+  neverallow vendor_init {
+#line 305
+    domain -init -logd -prng_seeder -su -vendor_init }:unix_stream_socket connectto;
+;
+
+# The vendor_init domain is only entered via an exec based transition from the
+# init domain, never via setcon().
+neverallow domain vendor_init:process dyntransition;
+neverallow { domain -init } vendor_init:process transition;
+neverallow vendor_init { file_type fs_type -init_exec }:file entrypoint;
+
+# Never read/follow symlinks created by shell or untrusted apps.
+neverallow vendor_init app_data_file_type:lnk_file read;
+neverallow vendor_init shell_data_file:lnk_file read;
+# Init should not be creating subdirectories in /data/local/tmp
+neverallow vendor_init shell_data_file:dir { write add_name remove_name };
+
+# init should never execute a program without changing to another domain.
+neverallow vendor_init { file_type fs_type }:file execute_no_trans;
+
+# Init never adds or uses services via service_manager.
+neverallow vendor_init service_manager_type:service_manager { add find };
+neverallow vendor_init servicemanager:service_manager list;
+
+# vendor_init should never be ptraced
+neverallow * vendor_init:process ptrace;
+#line 1 "system/sepolicy/public/vendor_misc_writer.te"
+# vendor_misc_writer
+type vendor_misc_writer, domain;
+type vendor_misc_writer_exec, vendor_file_type, exec_type, file_type;
+
+# Raw writes to misc_block_device
+allow vendor_misc_writer misc_block_device:blk_file { open append write lock map };
+allow vendor_misc_writer block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Silence the denial when calling libfstab's ReadDefaultFstab, which tries to
+# load DT fstab.
+dontaudit vendor_misc_writer proc_cmdline:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit vendor_misc_writer sysfs_dt_firmware_android:dir search;
+dontaudit vendor_misc_writer proc_bootconfig:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow ReadDefaultFstab().
+
+#line 16
+  allow vendor_misc_writer { metadata_file gsi_metadata_file_type }:dir search;
+#line 16
+  allow vendor_misc_writer gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 16
+  allow vendor_misc_writer { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 16
+
+#line 1 "system/sepolicy/public/vendor_modprobe.te"
+type vendor_modprobe, domain;
+#line 1 "system/sepolicy/public/vendor_shell.te"
+type vendor_shell, domain;
+type vendor_shell_exec, exec_type, vendor_file_type, file_type;
+
+allow vendor_shell vendor_shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow vendor_shell vendor_toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Use fd from shell when vendor_shell is started from shell
+allow vendor_shell shell:fd use;
+
+# adbd: allow `adb shell /vendor/bin/sh` and `adb shell` then `/vendor/bin/sh`
+allow vendor_shell adbd:fd use;
+allow vendor_shell adbd:process sigchld;
+allow vendor_shell adbd:unix_stream_socket { getattr ioctl read write };
+
+allow vendor_shell devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vendor_shell tty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vendor_shell console_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vendor_shell input_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow vendor_shell input_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+
+#line 1 "system/sepolicy/public/vendor_toolbox.te"
+# Toolbox installation for vendor binaries / scripts
+# Non-vendor processes are not allowed to execute the binary
+# and is always executed without transition.
+type vendor_toolbox_exec, exec_type, vendor_file_type, file_type;
+
+# Do not allow domains to transition to vendor toolbox
+# or read, execute the vendor_toolbox file.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 8
+
+#line 8
+    # Do not allow non-vendor domains to transition
+#line 8
+    # to vendor toolbox except for the allowlisted domains.
+#line 8
+    neverallow {
+#line 8
+        coredomain
+#line 8
+        -init
+#line 8
+        -modprobe
+#line 8
+    } vendor_toolbox_exec:file { entrypoint execute execute_no_trans };
+#line 8
+
+#line 8
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 16
+
+#line 1 "system/sepolicy/public/virtual_touchpad.te"
+type virtual_touchpad, domain;
+type virtual_touchpad_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+# Call the servicemanager and transfer references to it.
+#line 4
+allow virtual_touchpad servicemanager:binder { call transfer };
+#line 4
+# Allow servicemanager to send out callbacks
+#line 4
+allow servicemanager virtual_touchpad:binder { call transfer };
+#line 4
+# servicemanager performs getpidcon on clients.
+#line 4
+allow servicemanager virtual_touchpad:dir search;
+#line 4
+allow servicemanager virtual_touchpad:file { read open };
+#line 4
+allow servicemanager virtual_touchpad:process getattr;
+#line 4
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 4
+# all domains in domain.te.
+#line 4
+
+
+#line 5
+typeattribute virtual_touchpad binderservicedomain;
+#line 5
+
+
+#line 6
+  allow virtual_touchpad virtual_touchpad_service:service_manager { add find };
+#line 6
+  neverallow { domain -virtual_touchpad } virtual_touchpad_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+
+# Needed to check app permissions.
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow virtual_touchpad system_server:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow system_server virtual_touchpad:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow virtual_touchpad system_server:fd use;
+#line 9
+
+
+# Requires access to /dev/uinput to create and feed the virtual device.
+allow virtual_touchpad uhid_device:chr_file { { open append write lock map } ioctl };
+
+# Requires access to the permission service to validate that clients have the
+# appropriate VR permissions.
+allow virtual_touchpad permission_service:service_manager find;
+#line 1 "system/sepolicy/public/vndservice.te"
+type service_manager_vndservice, vndservice_manager_type;
+type default_android_vndservice, vndservice_manager_type;
+#line 1 "system/sepolicy/public/vndservicemanager.te"
+# vndservicemanager - the Binder context manager for vendor processes
+type vndservicemanager, domain;
+#line 1 "system/sepolicy/public/vold.te"
+# volume manager
+type vold, domain;
+type vold_exec, exec_type, file_type, system_file_type;
+
+# Read already opened /cache files.
+allow vold cache_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow vold cache_file:file { getattr read };
+allow vold cache_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 10
+allow vold { sysfs_type -sysfs_batteryinfo }:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow vold { sysfs_type -sysfs_batteryinfo }:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 10
+
+# XXX Label sysfs files with a specific type?
+allow vold {
+  sysfs # writing to /sys/*/uevent during coldboot.
+  sysfs_devices_block
+  sysfs_dm
+  sysfs_loop # writing to /sys/block/loop*/uevent during coldboot.
+  sysfs_usb
+  sysfs_zram_uevent
+  sysfs_fs_f2fs
+}:file { open append write lock map };
+
+
+#line 22
+allow vold rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow vold rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 22
+
+
+#line 23
+allow vold metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 23
+allow vold metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 23
+
+allow vold {
+  proc # b/67049235 processes /proc/<pid>/* files are mislabeled.
+  proc_bootconfig
+  proc_cmdline
+  proc_drop_caches
+  proc_filesystems
+  proc_meminfo
+  proc_mounts
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+#Get file contexts
+allow vold file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow us to jump into execution domains of above tools
+allow vold self:process setexec;
+
+# For formatting adoptable storage devices
+allow vold e2fs_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Run fstrim on mounted partitions
+# allowxperm still requires the ioctl permission for the individual type
+allowxperm vold { fs_type file_type }:dir ioctl 0xc0185879;
+
+# Get/set file-based encryption policies on dirs in /data and adoptable storage,
+# and add/remove file-based encryption keys.
+allowxperm vold data_file_type:dir ioctl {
+  0x400c6615
+  0x800c6613
+  0xc0506617
+  0xc0406618
+  0xc080661a
+};
+
+# Only vold and init should ever set file-based encryption policies.
+neverallowxperm {
+  domain
+  -vold
+  -init
+  -vendor_init
+} data_file_type:dir ioctl { 0x800c6613 };
+
+# Only vold should ever add/remove file-based encryption keys.
+neverallowxperm {
+  domain
+  -vold
+} data_file_type:dir ioctl { 0xc0506617 0xc0406618 0xc080661a };
+
+# Allow securely erasing crypto key files. F2FS_IOC_SEC_TRIM_FILE is
+# tried first. Otherwise, FS_IOC_FIEMAP is needed to get the
+# location of the file's blocks on the raw block device to erase.
+allowxperm vold {
+  vold_data_file
+  vold_metadata_file
+}:file ioctl {
+  0xf514
+  0xc020660b
+};
+
+typeattribute vold mlstrustedsubject;
+allow vold self:process setfscreate;
+allow vold system_file:file { getattr execute execute_no_trans map };
+allow vold vendor_file:file { getattr execute execute_no_trans map };
+allow vold block_device:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vold device:dir write;
+allow vold devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vold rootfs:dir mounton;
+allow vold { sdcard_type fuse }:dir mounton; # TODO: deprecated in M
+allow vold { sdcard_type fuse }:filesystem { mount remount unmount }; # TODO: deprecated in M
+
+# Manage locations where storage is mounted
+allow vold { mnt_media_rw_file storage_file sdcard_type fuse }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vold { mnt_media_rw_file storage_file sdcard_type fuse }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access to storage that backs emulated FUSE daemons for migration optimization
+allow vold media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vold media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# Allow mounting (lower filesystem) on parts of media for performance
+allow vold media_rw_data_file:dir mounton;
+
+# Allow setting project quota IDs and enabling project ID inheritance on
+# /data/media/$userId/* and /mnt/expand/$volume/media/$userId/*
+allowxperm vold media_rw_data_file:{ dir file } ioctl {
+  0x801c581f
+  0x401c5820
+  0x80086601
+  0x40086602
+};
+
+# Allow mounting of storage devices
+allow vold { mnt_media_rw_stub_file storage_stub_file }:dir { mounton create rmdir getattr setattr };
+
+# Manage per-user primary symlinks
+allow vold mnt_user_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+allow vold mnt_user_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow vold mnt_user_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage per-user pass_through primary symlinks
+allow vold mnt_pass_through_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+allow vold mnt_pass_through_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow to create and mount expanded storage
+allow vold mnt_expand_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+allow vold apk_data_file:dir { create getattr setattr };
+allow vold shell_data_file:dir { create getattr setattr };
+allow vold system_userdir_file:dir { create getattr setattr };
+allow vold media_userdir_file:dir { create getattr setattr open read ioctl };
+# Needed to set the casefold flag on /mnt/expand/$volume/media
+allowxperm vold media_userdir_file:dir ioctl { 0x80086601 0x40086602 };
+
+# Allow to mount incremental file system on /data/incremental and create files
+allow vold apk_data_file:dir { mounton { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+# Allow to create and write files in /data/incremental
+allow vold apk_data_file:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } unlink };
+# Allow to bind-mount incremental file system on /data/app/vmdl*.tmp and read files
+allow vold apk_tmp_file:dir { mounton { open getattr read search ioctl lock watch watch_reads } };
+# Allow to read incremental control file and call selinux restorecon on it
+allow vold incremental_control_file:file { { getattr open read ioctl lock map watch watch_reads } relabelto };
+
+allow vold tmpfs:filesystem { mount unmount };
+allow vold tmpfs:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vold tmpfs:dir mounton;
+allow vold self:{ capability cap_userns } { net_admin dac_override dac_read_search mknod sys_admin chown fowner fsetid };
+allow vold self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow vold loop_control_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vold loop_device:blk_file { create setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allowxperm vold loop_device:blk_file ioctl {
+  0x00004c01
+  0x00004c82
+  0x00004c05
+  0x00004c00
+  0x00004c04
+};
+allow vold vold_device:blk_file { create setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allowxperm vold vold_device:blk_file ioctl { 0x00001277 0x00001260 };
+allow vold dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vold dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm vold dm_device:blk_file ioctl { 0x00001277 0x0000127d 0xc0101282 0x40101283 };
+# For vold Process::killProcessesWithOpenFiles function.
+allow vold domain:dir { open getattr read search ioctl lock watch watch_reads };
+allow vold domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+allow vold domain:process { signal sigkill };
+allow vold self:{ capability cap_userns } { sys_ptrace kill };
+
+allow vold kmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Run fsck in the fsck domain.
+allow vold fsck_exec:file { { getattr open read ioctl lock map watch watch_reads } execute };
+
+# Log fsck results
+allow vold fscklogs:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow vold fscklogs:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Mount and unmount filesystems.
+allow vold labeledfs:filesystem { mount unmount remount };
+
+# Create and mount on /data/tmp_mnt and management of expansion mounts
+#
+# Also rename per-user encrypted directories such as /data/user/10 from their
+# temporary name ("10.new") to their final name ("10").
+allow vold {
+    system_data_file
+    system_data_root_file
+}:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+allow vold system_data_file:lnk_file getattr;
+
+# Vold create users in /data/vendor_{ce,de}/[0-9]+
+allow vold vendor_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+# for secdiscard
+allow vold system_data_file:file read;
+
+# Set scheduling policy of kernel processes
+allow vold kernel:process setsched;
+
+# ASEC
+allow vold asec_image_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow vold asec_image_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow vold asec_apk_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton relabelfrom relabelto };
+allow vold asec_public_file:dir { relabelto setattr };
+allow vold asec_apk_file:file { { getattr open read ioctl lock map watch watch_reads } setattr relabelfrom relabelto };
+allow vold asec_public_file:file { relabelto setattr };
+# restorecon files in asec containers created on 4.2 or earlier.
+allow vold unlabeled:dir { { open getattr read search ioctl lock watch watch_reads } setattr relabelfrom };
+allow vold unlabeled:file { { getattr open read ioctl lock map watch watch_reads } setattr relabelfrom };
+
+# Access to FUSE control filesystem to hard-abort FUSE mounts
+allow vold fusectlfs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vold fusectlfs:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Allow vold to use wake locks.  Needed for idle maintenance and moving storage.
+
+#line 214
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 214
+# deprecated.
+#line 214
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 214
+allow vold sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 214
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 214
+allow vold self:{ capability2 cap2_userns } block_suspend;
+#line 214
+# system_suspend permissions
+#line 214
+
+#line 214
+# Call the server domain and optionally transfer references to it.
+#line 214
+allow vold system_suspend_server:binder { call transfer };
+#line 214
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 214
+allow system_suspend_server vold:binder transfer;
+#line 214
+# Receive and use open files from the server.
+#line 214
+allow vold system_suspend_server:fd use;
+#line 214
+
+#line 214
+allow vold system_suspend_hwservice:hwservice_manager find;
+#line 214
+# halclientdomain permissions
+#line 214
+
+#line 214
+# Call the hwservicemanager and transfer references to it.
+#line 214
+allow vold hwservicemanager:binder { call transfer };
+#line 214
+# Allow hwservicemanager to send out callbacks
+#line 214
+allow hwservicemanager vold:binder { call transfer };
+#line 214
+# hwservicemanager performs getpidcon on clients.
+#line 214
+allow hwservicemanager vold:dir search;
+#line 214
+allow hwservicemanager vold:file { read open map };
+#line 214
+allow hwservicemanager vold:process getattr;
+#line 214
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 214
+# all domains in domain.te.
+#line 214
+
+#line 214
+
+#line 214
+allow vold hwservicemanager_prop:file { getattr open read map };
+#line 214
+
+#line 214
+allow vold hidl_manager_hwservice:hwservice_manager find;
+#line 214
+# AIDL suspend hal permissions
+#line 214
+allow vold hal_system_suspend_service:service_manager find;
+#line 214
+
+#line 214
+# Call the servicemanager and transfer references to it.
+#line 214
+allow vold servicemanager:binder { call transfer };
+#line 214
+# Allow servicemanager to send out callbacks
+#line 214
+allow servicemanager vold:binder { call transfer };
+#line 214
+# servicemanager performs getpidcon on clients.
+#line 214
+allow servicemanager vold:dir search;
+#line 214
+allow servicemanager vold:file { read open };
+#line 214
+allow servicemanager vold:process getattr;
+#line 214
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 214
+# all domains in domain.te.
+#line 214
+
+#line 214
+
+
+# Allow vold to publish a binder service and make binder calls.
+
+#line 217
+# Call the servicemanager and transfer references to it.
+#line 217
+allow vold servicemanager:binder { call transfer };
+#line 217
+# Allow servicemanager to send out callbacks
+#line 217
+allow servicemanager vold:binder { call transfer };
+#line 217
+# servicemanager performs getpidcon on clients.
+#line 217
+allow servicemanager vold:dir search;
+#line 217
+allow servicemanager vold:file { read open };
+#line 217
+allow servicemanager vold:process getattr;
+#line 217
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 217
+# all domains in domain.te.
+#line 217
+
+
+#line 218
+  allow vold vold_service:service_manager { add find };
+#line 218
+  neverallow { domain -vold } vold_service:service_manager add;
+#line 218
+
+#line 218
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 218
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 218
+  
+#line 218
+
+
+# Allow vold to call into the system server so it can check permissions.
+
+#line 221
+# Call the server domain and optionally transfer references to it.
+#line 221
+allow vold system_server:binder { call transfer };
+#line 221
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 221
+allow system_server vold:binder transfer;
+#line 221
+# Receive and use open files from the server.
+#line 221
+allow vold system_server:fd use;
+#line 221
+
+allow vold permission_service:service_manager find;
+
+# talk to health storage HAL
+
+#line 225
+typeattribute vold halclientdomain;
+#line 225
+typeattribute vold hal_health_storage_client;
+#line 225
+
+#line 225
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 225
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 225
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 225
+
+#line 225
+typeattribute vold hal_health_storage;
+#line 225
+# Find passthrough HAL implementations
+#line 225
+allow hal_health_storage system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 225
+allow hal_health_storage vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 225
+allow hal_health_storage vendor_file:file { read open getattr execute map };
+#line 225
+
+#line 225
+
+
+# talk to bootloader HAL
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 228
+
+#line 228
+typeattribute vold halclientdomain;
+#line 228
+typeattribute vold hal_bootctl_client;
+#line 228
+
+#line 228
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 228
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 228
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 228
+
+#line 228
+typeattribute vold hal_bootctl;
+#line 228
+# Find passthrough HAL implementations
+#line 228
+allow hal_bootctl system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 228
+allow hal_bootctl vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 228
+allow hal_bootctl vendor_file:file { read open getattr execute map };
+#line 228
+
+#line 228
+
+#line 228
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 228
+
+
+# Access userdata block device.
+allow vold userdata_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm vold userdata_block_device:blk_file ioctl 0x0000127d;
+
+# Access zoned block device.
+allow vold zoned_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access metadata block device used for encryption meta-data.
+allow vold metadata_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm vold metadata_block_device:blk_file ioctl 0x0000127d;
+
+# Allow vold to manipulate /data/unencrypted
+allow vold unencrypted_data_file:{ file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow vold unencrypted_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+# Write to /proc/sys/vm/drop_caches
+allow vold proc_drop_caches:file { open append write lock map };
+
+# Give vold a place where only vold can store files; everyone else is off limits
+allow vold vold_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vold vold_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# And a similar place in the metadata partition
+allow vold vold_metadata_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow vold vold_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# linux keyring configuration
+allow vold init:key { write search setattr };
+allow vold vold:key { write search setattr };
+
+# vold temporarily changes its priority when running benchmarks
+allow vold self:{ capability cap_userns } sys_nice;
+
+# vold needs to chroot into app namespaces to remount when runtime permissions change
+allow vold self:{ capability cap_userns } sys_chroot;
+allow vold storage_file:dir mounton;
+
+# For AppFuse.
+allow vold fuse_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vold fuse:filesystem { relabelfrom };
+allow vold app_fusefs:filesystem { relabelfrom relabelto };
+allow vold app_fusefs:filesystem { mount unmount };
+allow vold app_fuse_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow vold app_fuse_file:file { read write open getattr append };
+
+# MoveStorage.cpp executes cp and rm
+allow vold toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Prepare profile dir for users.
+allow vold { user_profile_data_file user_profile_root_file }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+# Raw writes to misc block device
+allow vold misc_block_device:blk_file { open append write lock map };
+
+# vold might need to search or mount /mnt/vendor/*
+allow vold mnt_vendor_file:dir search;
+
+dontaudit vold self:{ capability cap_userns } sys_resource;
+
+# Allow ReadDefaultFstab().
+
+#line 290
+  allow vold { metadata_file gsi_metadata_file_type }:dir search;
+#line 290
+  allow vold gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 290
+  allow vold { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 290
+
+
+# vold might need to search loopback apex files
+allow vold vendor_apex_file:file { getattr open read ioctl lock map watch watch_reads };
+
+neverallow {
+    domain
+    -vold
+    -vold_prepare_subdirs
+} vold_data_file:dir ~{ open create read getattr setattr search relabelfrom relabelto ioctl };
+
+neverallow {
+    domain
+    -init
+    -vold
+    -vold_prepare_subdirs
+} vold_data_file:dir *;
+
+neverallow {
+    domain
+    -init
+    -vold
+} vold_metadata_file:dir *;
+
+neverallow {
+    domain
+    -kernel
+    -vold
+    -vold_prepare_subdirs
+} vold_data_file:{ file lnk_file sock_file fifo_file } ~{ relabelto getattr };
+
+neverallow {
+    domain
+    -init
+    -vold
+    -vold_prepare_subdirs
+} vold_metadata_file:{ file lnk_file sock_file fifo_file } ~{ relabelto getattr };
+
+neverallow {
+    domain
+    -init
+    -kernel
+    -vold
+    -vold_prepare_subdirs
+} { vold_data_file vold_metadata_file }:{ file lnk_file sock_file fifo_file } *;
+
+neverallow { domain -vold -init } restorecon_prop:property_service set;
+
+neverallow vold {
+  domain
+  -hal_health_storage_server
+  -hal_keymaster_server
+  -system_suspend_server
+  -hal_bootctl_server
+  -hwservicemanager
+  -keystore
+  -servicemanager
+  -system_server
+  
+}:binder call;
+
+neverallow vold fsck_exec:file execute_no_trans;
+neverallow { domain -init } vold:process { transition dyntransition };
+neverallow vold *:process ptrace;
+neverallow vold *:rawip_socket *;
+#line 1 "system/sepolicy/public/vold_prepare_subdirs.te"
+# SELinux directory creation and labelling for vold-managed directories
+
+type vold_prepare_subdirs, domain;
+type vold_prepare_subdirs_exec, system_file_type, exec_type, file_type;
+
+typeattribute vold_prepare_subdirs coredomain;
+#line 1 "system/sepolicy/public/watchdogd.te"
+# watchdogd seclabel is specified in init.<board>.rc
+type watchdogd, domain;
+type watchdogd_exec, system_file_type, exec_type, file_type;
+
+allow watchdogd watchdog_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow watchdogd kmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/public/webview_zygote.te"
+# webview_zygote is an auxiliary zygote process that is used to spawn
+# isolated_app processes for rendering untrusted web content.
+
+type webview_zygote, domain;
+type webview_zygote_exec, exec_type, file_type;
+type webview_zygote_tmpfs, file_type;
+#line 1 "system/sepolicy/public/wificond.te"
+# wificond
+type wificond, domain;
+type wificond_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+# Call the servicemanager and transfer references to it.
+#line 5
+allow wificond servicemanager:binder { call transfer };
+#line 5
+# Allow servicemanager to send out callbacks
+#line 5
+allow servicemanager wificond:binder { call transfer };
+#line 5
+# servicemanager performs getpidcon on clients.
+#line 5
+allow servicemanager wificond:dir search;
+#line 5
+allow servicemanager wificond:file { read open };
+#line 5
+allow servicemanager wificond:process getattr;
+#line 5
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 5
+# all domains in domain.te.
+#line 5
+
+
+#line 6
+# Call the server domain and optionally transfer references to it.
+#line 6
+allow wificond system_server:binder { call transfer };
+#line 6
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 6
+allow system_server wificond:binder transfer;
+#line 6
+# Receive and use open files from the server.
+#line 6
+allow wificond system_server:fd use;
+#line 6
+
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow wificond keystore:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow keystore wificond:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow wificond keystore:fd use;
+#line 7
+
+
+
+#line 9
+  allow wificond wifinl80211_service:service_manager { add find };
+#line 9
+  neverallow { domain -wificond } wifinl80211_service:service_manager add;
+#line 9
+
+#line 9
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 9
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 9
+  
+#line 9
+
+
+#line 10
+typeattribute wificond halclientdomain;
+#line 10
+typeattribute wificond hal_nlinterceptor_client;
+#line 10
+
+#line 10
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 10
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 10
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 10
+
+#line 10
+typeattribute wificond hal_nlinterceptor;
+#line 10
+# Find passthrough HAL implementations
+#line 10
+allow hal_nlinterceptor system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow hal_nlinterceptor vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow hal_nlinterceptor vendor_file:file { read open getattr execute map };
+#line 10
+
+#line 10
+
+
+# create sockets to set interfaces up and down
+allow wificond self:udp_socket { create { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+# setting interface state up/down is a privileged ioctl
+allowxperm wificond self:udp_socket ioctl { 0x00008914 0x00008924 };
+allow wificond self:{ capability cap_userns } { net_admin net_raw };
+# allow wificond to speak to nl80211 in the kernel
+allow wificond self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets
+allow wificond self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+
+#line 22
+allow wificond proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow wificond proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 22
+
+
+# allow wificond to check permission for dumping logs
+allow wificond permission_service:service_manager find;
+
+# dumpstate support
+allow wificond dumpstate:fd use;
+allow wificond dumpstate:fifo_file write;
+
+#### Offer the Wifi Keystore HwBinder service ###
+
+#line 32
+# Call the hwservicemanager and transfer references to it.
+#line 32
+allow wificond hwservicemanager:binder { call transfer };
+#line 32
+# Allow hwservicemanager to send out callbacks
+#line 32
+allow hwservicemanager wificond:binder { call transfer };
+#line 32
+# hwservicemanager performs getpidcon on clients.
+#line 32
+allow hwservicemanager wificond:dir search;
+#line 32
+allow hwservicemanager wificond:file { read open map };
+#line 32
+allow hwservicemanager wificond:process getattr;
+#line 32
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 32
+# all domains in domain.te.
+#line 32
+
+typeattribute wificond wifi_keystore_service_server;
+
+#line 34
+  allow wificond system_wifi_keystore_hwservice:hwservice_manager { add find };
+#line 34
+  allow wificond hidl_base_hwservice:hwservice_manager add;
+#line 34
+  neverallow { domain -wificond } system_wifi_keystore_hwservice:hwservice_manager add;
+#line 34
+
+
+# Allow keystore2 binder access to serve the HwBinder service.
+allow wificond keystore_service:service_manager find;
+allow wificond wifi_key:keystore2_key {
+    get_info
+    use
+};
+#line 1 "system/sepolicy/public/zygote.te"
+# zygote
+type zygote, domain;
+type zygote_tmpfs, file_type;
+type zygote_exec, system_file_type, exec_type, file_type;
+#line 1 "system/sepolicy/private/attributes"
+
+#line 1
+attribute hal_lazy_test;
+#line 1
+expandattribute hal_lazy_test true;
+#line 1
+attribute hal_lazy_test_client;
+#line 1
+expandattribute hal_lazy_test_client true;
+#line 1
+attribute hal_lazy_test_server;
+#line 1
+expandattribute hal_lazy_test_server false;
+#line 1
+
+#line 1
+neverallow { hal_lazy_test_server -halserverdomain } domain:process fork;
+#line 1
+# hal_*_client and halclientdomain attributes are always expanded for
+#line 1
+# performance reasons. Neverallow rules targeting expanded attributes can not be
+#line 1
+# verified by CTS since these attributes are already expanded by that time.
+#line 1
+
+#line 1
+;
+
+# This is applied to apps on vendor images with SDK <=30 only,
+# to exempt them from recent mls changes. It must not be applied
+# to any domain on newer system or vendor image.
+attribute mlsvendorcompat;
+
+# Attributes for property types having both system_property_type
+# and vendor_property_type. Such types are ill-formed because
+# property owner attributes must be exclusive.
+attribute system_and_vendor_property_type;
+expandattribute system_and_vendor_property_type false;
+
+# All SDK sandbox domains
+attribute sdk_sandbox_all;
+# The SDK sandbox domains for the current SDK level.
+attribute sdk_sandbox_current;
+#line 1 "system/sepolicy/private/aconfigd.te"
+# aconfigd -- manager for aconfig flags
+type aconfigd, domain;
+type aconfigd_exec, exec_type, file_type, system_file_type;
+
+typeattribute aconfigd coredomain;
+
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init aconfigd_exec:file { getattr open read execute map };
+#line 7
+allow init aconfigd:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow aconfigd aconfigd_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init aconfigd:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init aconfigd:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init aconfigd_exec:process aconfigd;
+#line 7
+
+#line 7
+
+
+# only init is allowed to enter the aconfigd domain
+neverallow { domain -init } aconfigd:process transition;
+neverallow * aconfigd:process dyntransition;
+
+allow aconfigd metadata_file:dir search;
+
+allow aconfigd {
+    aconfig_storage_metadata_file
+    aconfig_storage_flags_metadata_file
+}:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+allow aconfigd {
+    aconfig_storage_metadata_file
+    aconfig_storage_flags_metadata_file
+}:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow aconfigd aconfigd_socket:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# allow aconfigd to log to the kernel.
+allow aconfigd kmsg_device:chr_file { open append write lock map };
+
+# allow aconfigd to read system/system_ext/product partition storage files
+allow aconfigd system_aconfig_storage_file:file { getattr open read ioctl lock map watch watch_reads };
+allow aconfigd system_aconfig_storage_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# allow aconfigd to read vendor partition storage files
+allow aconfigd vendor_aconfig_storage_file:file { getattr open read ioctl lock map watch watch_reads };
+allow aconfigd vendor_aconfig_storage_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1 "system/sepolicy/private/adbd.te"
+### ADB daemon
+
+typeattribute adbd coredomain;
+typeattribute adbd mlstrustedsubject;
+
+
+#line 6
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init adbd_exec:file { getattr open read execute map };
+#line 6
+allow init adbd:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow adbd adbd_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init adbd:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init adbd:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition init adbd_exec:process adbd;
+#line 6
+
+#line 6
+
+
+
+#line 8
+# Allow the necessary permissions.
+#line 8
+
+#line 8
+# Old domain may exec the file and transition to the new domain.
+#line 8
+allow adbd shell_exec:file { getattr open read execute map };
+#line 8
+allow adbd shell:process transition;
+#line 8
+# New domain is entered by executing the file.
+#line 8
+allow shell shell_exec:file { entrypoint open read execute getattr map };
+#line 8
+# New domain can send SIGCHLD to its caller.
+#line 8
+allow shell adbd:process sigchld;
+#line 8
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 8
+dontaudit adbd shell:process noatsecure;
+#line 8
+# XXX dontaudit candidate but requires further study.
+#line 8
+allow adbd shell:process { siginh rlimitinh };
+#line 8
+
+#line 8
+# Make the transition occur by default.
+#line 8
+type_transition adbd shell_exec:process shell;
+#line 8
+
+
+#line 13
+
+
+# When 'adb shell' is executed in recovery mode, adbd explicitly
+# switches into shell domain using setcon() because the shell executable
+# is not labeled as shell but as rootfs.
+#line 24
+
+
+# Control Perfetto traced and obtain traces from it.
+# Needed to allow port forwarding directly to traced.
+
+#line 28
+allow adbd traced_consumer_socket:sock_file write;
+#line 28
+allow adbd traced:unix_stream_socket connectto;
+#line 28
+
+
+# Do not sanitize the environment or open fds of the shell. Allow signaling
+# created processes.
+allow adbd shell:process { noatsecure signal };
+
+# Set UID and GID to shell.  Set supplementary groups.
+allow adbd self:{ capability cap_userns } { setuid setgid };
+
+# Drop capabilities from bounding set on user builds.
+allow adbd self:{ capability cap_userns } setpcap;
+
+# ignore spurious denials for adbd when disk space is low.
+dontaudit adbd self:{ capability cap_userns } sys_resource;
+
+# adbd probes for vsock support. Do not generate denials when
+# this occurs. (b/123569840)
+dontaudit adbd self:{ socket vsock_socket } create;
+
+# Allow adbd inside vm to forward vm's vsock.
+allow adbd self:vsock_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } listen accept };
+
+# Create and use network sockets.
+
+#line 51
+typeattribute adbd netdomain;
+#line 51
+
+# Connect to mdnsd via mdnsd socket.
+
+#line 53
+allow adbd mdnsd_socket:sock_file write;
+#line 53
+allow adbd mdnsd:unix_stream_socket connectto;
+#line 53
+
+
+# Access /dev/usb-ffs/adb/ep0
+allow adbd functionfs:dir search;
+allow adbd functionfs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm adbd functionfs:file ioctl {
+  0x80096782
+  0x00006703
+};
+
+# Use a pseudo tty.
+allow adbd devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# adb push/pull /data/local/tmp.
+allow adbd shell_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow adbd shell_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# adb pull /data/local/traces/*
+allow adbd trace_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd trace_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# adb pull /data/misc/profman.
+allow adbd profman_dump_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd profman_dump_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# adb push/pull sdcard.
+allow adbd tmpfs:dir search;
+allow adbd rootfs:lnk_file { getattr open read ioctl lock map watch watch_reads };  # /sdcard symlink
+allow adbd tmpfs:lnk_file { getattr open read ioctl lock map watch watch_reads };   # /mnt/sdcard symlink
+allow adbd { sdcard_type fuse }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow adbd { sdcard_type fuse }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# adb pull /data/anr/traces.txt
+allow adbd anr_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd anr_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# adb pull /vendor/framework/*
+allow adbd vendor_framework_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd vendor_framework_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Set service.adb.*, sys.powerctl, and sys.usb.ffs.ready properties.
+
+#line 94
+
+#line 94
+allow adbd property_socket:sock_file write;
+#line 94
+allow adbd init:unix_stream_socket connectto;
+#line 94
+
+#line 94
+allow adbd shell_prop:property_service set;
+#line 94
+
+#line 94
+allow adbd shell_prop:file { getattr open read map };
+#line 94
+
+#line 94
+
+
+#line 95
+
+#line 95
+allow adbd property_socket:sock_file write;
+#line 95
+allow adbd init:unix_stream_socket connectto;
+#line 95
+
+#line 95
+allow adbd powerctl_prop:property_service set;
+#line 95
+
+#line 95
+allow adbd powerctl_prop:file { getattr open read map };
+#line 95
+
+#line 95
+
+
+#line 96
+allow adbd ffs_config_prop:file { getattr open read map };
+#line 96
+
+
+#line 97
+
+#line 97
+allow adbd property_socket:sock_file write;
+#line 97
+allow adbd init:unix_stream_socket connectto;
+#line 97
+
+#line 97
+allow adbd ffs_control_prop:property_service set;
+#line 97
+
+#line 97
+allow adbd ffs_control_prop:file { getattr open read map };
+#line 97
+
+#line 97
+
+
+# Set service.adb.tcp.port, service.adb.tls.port, persist.adb.wifi.* properties
+
+#line 100
+
+#line 100
+allow adbd property_socket:sock_file write;
+#line 100
+allow adbd init:unix_stream_socket connectto;
+#line 100
+
+#line 100
+allow adbd adbd_prop:property_service set;
+#line 100
+
+#line 100
+allow adbd adbd_prop:file { getattr open read map };
+#line 100
+
+#line 100
+
+
+#line 101
+
+#line 101
+allow adbd property_socket:sock_file write;
+#line 101
+allow adbd init:unix_stream_socket connectto;
+#line 101
+
+#line 101
+allow adbd adbd_config_prop:property_service set;
+#line 101
+
+#line 101
+allow adbd adbd_config_prop:file { getattr open read map };
+#line 101
+
+#line 101
+
+
+# Allow adbd start/stop mdnsd via ctl.start
+
+#line 104
+
+#line 104
+allow adbd property_socket:sock_file write;
+#line 104
+allow adbd init:unix_stream_socket connectto;
+#line 104
+
+#line 104
+allow adbd ctl_mdnsd_prop:property_service set;
+#line 104
+
+#line 104
+allow adbd ctl_mdnsd_prop:file { getattr open read map };
+#line 104
+
+#line 104
+
+
+# Access device logging gating property
+
+#line 107
+allow adbd device_logging_prop:file { getattr open read map };
+#line 107
+
+
+# Read device's serial number from system properties
+
+#line 110
+allow adbd serialno_prop:file { getattr open read map };
+#line 110
+
+
+# Read whether or not Test Harness Mode is enabled
+
+#line 113
+allow adbd test_harness_prop:file { getattr open read map };
+#line 113
+
+
+# Read persist.adb.tls_server.enable property
+
+#line 116
+allow adbd system_adbd_prop:file { getattr open read map };
+#line 116
+
+
+# Read device's overlayfs related properties and files
+#line 122
+
+
+# Run /system/bin/bu
+allow adbd system_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Perform binder IPC to surfaceflinger (screencap)
+# XXX Run screencap in a separate domain?
+
+#line 129
+# Call the servicemanager and transfer references to it.
+#line 129
+allow adbd servicemanager:binder { call transfer };
+#line 129
+# Allow servicemanager to send out callbacks
+#line 129
+allow servicemanager adbd:binder { call transfer };
+#line 129
+# servicemanager performs getpidcon on clients.
+#line 129
+allow servicemanager adbd:dir search;
+#line 129
+allow servicemanager adbd:file { read open };
+#line 129
+allow servicemanager adbd:process getattr;
+#line 129
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 129
+# all domains in domain.te.
+#line 129
+
+
+#line 130
+# Call the server domain and optionally transfer references to it.
+#line 130
+allow adbd surfaceflinger:binder { call transfer };
+#line 130
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 130
+allow surfaceflinger adbd:binder transfer;
+#line 130
+# Receive and use open files from the server.
+#line 130
+allow adbd surfaceflinger:fd use;
+#line 130
+
+
+#line 131
+# Call the server domain and optionally transfer references to it.
+#line 131
+allow adbd gpuservice:binder { call transfer };
+#line 131
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 131
+allow gpuservice adbd:binder transfer;
+#line 131
+# Receive and use open files from the server.
+#line 131
+allow adbd gpuservice:fd use;
+#line 131
+
+# b/13188914
+allow adbd gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow adbd gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd ion_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+#line 136
+allow adbd system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 136
+allow adbd system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 136
+
+
+# Needed for various screenshots
+
+#line 139
+typeattribute adbd halclientdomain;
+#line 139
+typeattribute adbd hal_graphics_allocator_client;
+#line 139
+
+#line 139
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 139
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 139
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 139
+
+#line 139
+typeattribute adbd hal_graphics_allocator;
+#line 139
+# Find passthrough HAL implementations
+#line 139
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 139
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 139
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 139
+
+#line 139
+
+
+# Read /data/misc/adb/adb_keys.
+allow adbd adb_keys_file:dir search;
+allow adbd adb_keys_file:file { getattr open read ioctl lock map watch watch_reads };
+
+#line 151
+
+
+# ndk-gdb invokes adb forward to forward the gdbserver socket.
+allow adbd app_data_file:dir search;
+allow adbd app_data_file:sock_file write;
+allow adbd appdomain:unix_stream_socket connectto;
+
+# ndk-gdb invokes adb pull of app_process, linker, and libc.so.
+allow adbd zygote_exec:file { getattr open read ioctl lock map watch watch_reads };
+allow adbd system_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow pulling the SELinux policy for CTS purposes
+allow adbd selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd selinuxfs:file { getattr open read ioctl lock map watch watch_reads };
+allow adbd kernel:security read_policy;
+allow adbd service_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow adbd file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow adbd seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow adbd property_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow adbd sepolicy_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow pulling config.gz for CTS purposes
+allow adbd config_gz:file { getattr open read ioctl lock map watch watch_reads };
+
+# For CTS listening ports test.
+allow adbd proc_net_tcp_udp:file { getattr open read ioctl lock map watch watch_reads };
+
+allow adbd gpu_service:service_manager find;
+allow adbd surfaceflinger_service:service_manager find;
+allow adbd bootchart_data_file:dir search;
+allow adbd bootchart_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow access to external storage; we have several visible mount points under /storage
+# and symlinks to primary storage at places like /storage/sdcard0 and /mnt/user/0/primary
+allow adbd storage_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd storage_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow adbd mnt_user_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd mnt_user_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Access to /data/media.
+# This should be removed if sdcardfs is modified to alter the secontext for its
+# accesses to the underlying FS.
+allow adbd media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow adbd media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+
+#line 196
+allow adbd apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 196
+allow adbd apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 196
+
+
+allow adbd rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow killing child "perfetto" binary processes, which auto-transition to
+# their own domain. Allows propagating termination of "adb shell perfetto ..."
+# invocations.
+allow adbd perfetto:process signal;
+
+# Allow to pull Perfetto traces.
+allow adbd perfetto_traces_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow adbd perfetto_traces_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow to push and manage configs in /data/misc/perfetto-configs.
+allow adbd perfetto_configs_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow adbd perfetto_configs_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Connect to shell and use a socket transferred from it.
+# Used for e.g. abb.
+allow adbd shell:unix_stream_socket { read write shutdown };
+allow adbd shell:fd use;
+
+# Allow pull /vendor/apex files for CTS tests
+allow adbd vendor_apex_file:dir search;
+allow adbd vendor_apex_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow adb pull of updated apex files in /data/apex/active.
+allow adbd apex_data_file:dir search;
+allow adbd staging_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow adbd to pull /apex/apex-info-list.xml for CTS tests.
+allow adbd apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# allow reading tombstones. users can already use bugreports to get those.
+allow adbd tombstone_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow adbd tombstone_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+###
+### Neverallow rules
+###
+
+# No transitions from adbd to non-shell, non-crash_dump domains. adbd only ever
+# transitions to the shell domain (except when it crashes). In particular, we
+# never want to see a transition from adbd to su (aka "adb root")
+neverallow adbd { domain -crash_dump -shell }:process transition;
+neverallow adbd { domain   }:process dyntransition;
+#line 5 "system/sepolicy/private/aidl_lazy_test_server.te"
+
+#line 1 "system/sepolicy/private/apex_test_prepostinstall.te"
+# APEX pre- & post-install test.
+#
+# Allow to run pre- and post-install hooks for APEX test modules
+# in debuggable builds.
+
+type apex_test_prepostinstall, domain, coredomain;
+type apex_test_prepostinstall_exec, system_file_type, exec_type, file_type;
+
+#line 20
+
+#line 1 "system/sepolicy/private/apexd.te"
+typeattribute apexd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init apexd_exec:file { getattr open read execute map };
+#line 3
+allow init apexd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow apexd apexd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init apexd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init apexd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init apexd_exec:process apexd;
+#line 3
+
+#line 3
+
+
+# Allow creating, reading and writing of APEX files/dirs in the APEX data dir
+allow apexd apex_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow apexd apex_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# Allow relabeling file created in /data/apex/decompressed
+allow apexd apex_data_file:file relabelfrom;
+
+# Allow creating, reading and writing of APEX files/dirs in the APEX metadata dir
+allow apexd metadata_file:dir search;
+allow apexd apex_metadata_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow apexd apex_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow reserving space on /data/apex/ota_reserved for apex decompression
+allow apexd apex_ota_reserved_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow apexd apex_ota_reserved_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow apexd to create files and directories for snapshots of apex data
+allow apexd apex_data_file_type:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow apexd apex_data_file_type:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelto };
+allow apexd apex_module_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom };
+allow apexd apex_module_data_file:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom };
+allow apexd apex_rollback_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow apexd apex_rollback_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow apexd to read /data/misc_de and the directories under it, in order to
+# snapshot and restore apex data for all users.
+allow apexd {
+    system_userdir_file
+    system_data_file
+}:dir { open getattr read search ioctl lock watch watch_reads };
+
+# allow apexd to create loop devices with /dev/loop-control
+allow apexd loop_control_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+# allow apexd to access loop devices
+allow apexd loop_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm apexd loop_device:blk_file ioctl {
+  0x00004c05
+  0x00004c04
+  0x00004c00
+  0x00004c09
+  0x00004c08
+  0x00004c01
+  0x00001261
+  0x00004c0a
+};
+# Allow apexd to access /dev/block
+allow apexd dev_type:dir { open getattr read search ioctl lock watch watch_reads };
+allow apexd dev_type:blk_file getattr;
+
+#allow apexd to access virtual disks
+allow apexd vd_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# allow apexd to access /dev/block/dm-* (device-mapper entries)
+allow apexd dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow apexd dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# sys_admin is required to access the device-mapper and mount
+# dac_override, chown, and fowner are needed for snapshot and restore
+allow apexd self:{ capability cap_userns } { sys_admin chown dac_override dac_read_search fowner };
+
+# Note: fsetid is deliberately not included above. fsetid checks are
+# triggered by chmod on a directory or file owned by a group other
+# than one of the groups assigned to the current process to see if
+# the setgid bit should be cleared, regardless of whether the setgid
+# bit was even set.  We do not appear to truly need this capability
+# for apexd to operate.
+dontaudit apexd self:{ capability cap_userns } fsetid;
+
+# allow apexd to create a mount point in /apex
+allow apexd apex_mnt_dir:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+# allow apexd to mount in /apex
+allow apexd apex_mnt_dir:filesystem { mount unmount };
+allow apexd apex_mnt_dir:dir mounton;
+# allow apexd to create symlinks in /apex
+allow apexd apex_mnt_dir:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# allow apexd to create /apex/apex-info-list.xml and relabel to apex_info_file
+allow apexd apex_mnt_dir:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom mounton };
+allow apexd apex_info_file:file relabelto;
+# apexd needs to update /apex/apex-info-list.xml after non-staged APEX update.
+allow apexd apex_info_file:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# allow apexd to unlink apex files in /data/apex/active
+# note that apexd won't be able to unlink files in /data/app-staging/session_XXXX,
+# because it doesn't have write permission for staging_data_file object.
+allow apexd staging_data_file:file unlink;
+
+# allow apexd to read files from /data/app-staging and hardlink them to /data/apex.
+allow apexd staging_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow apexd staging_data_file:file { { getattr open read ioctl lock map watch watch_reads } link };
+# # Allow relabeling file created in /data/apex/decompressed
+allow apexd staging_data_file:file relabelto;
+
+# allow apexd to read files from /vendor/apex
+
+#line 97
+allow apexd vendor_apex_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 97
+allow apexd vendor_apex_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 97
+
+
+#line 98
+allow apexd vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 98
+allow apexd vendor_apex_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 98
+
+
+# Unmount and mount filesystems
+allow apexd labeledfs:filesystem { mount unmount };
+
+# /sys directory tree traversal
+allow apexd sysfs_type:dir search;
+# Access to /sys/class/block
+allow apexd sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+allow apexd sysfs_type:file { getattr open read ioctl lock map watch watch_reads };
+# Configure read-ahead of dm-verity and loop devices
+# for dm-X
+allow apexd sysfs_dm:dir { open getattr read search ioctl lock watch watch_reads };
+allow apexd sysfs_dm:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+# for loopX
+allow apexd sysfs_loop:dir { open getattr read search ioctl lock watch watch_reads };
+allow apexd sysfs_loop:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow apexd to log to the kernel.
+allow apexd kmsg_device:chr_file { open append write lock map };
+
+# Allow apexd to reboot device. Required for rollbacks of apexes that are
+# not covered by rollback manager.
+
+#line 121
+
+#line 121
+allow apexd property_socket:sock_file write;
+#line 121
+allow apexd init:unix_stream_socket connectto;
+#line 121
+
+#line 121
+allow apexd powerctl_prop:property_service set;
+#line 121
+
+#line 121
+allow apexd powerctl_prop:file { getattr open read map };
+#line 121
+
+#line 121
+
+
+# Allow apexd to stop itself
+
+#line 124
+
+#line 124
+allow apexd property_socket:sock_file write;
+#line 124
+allow apexd init:unix_stream_socket connectto;
+#line 124
+
+#line 124
+allow apexd ctl_apexd_prop:property_service set;
+#line 124
+
+#line 124
+allow apexd ctl_apexd_prop:file { getattr open read map };
+#line 124
+
+#line 124
+
+
+# Allow apexd to send control messages to load/unload apex from init
+
+#line 127
+
+#line 127
+allow apexd property_socket:sock_file write;
+#line 127
+allow apexd init:unix_stream_socket connectto;
+#line 127
+
+#line 127
+allow apexd ctl_apex_load_prop:property_service set;
+#line 127
+
+#line 127
+allow apexd ctl_apex_load_prop:file { getattr open read map };
+#line 127
+
+#line 127
+
+
+# Find the vold service, and call into vold to manage FS checkpoints
+allow apexd vold_service:service_manager find;
+
+#line 131
+# Call the server domain and optionally transfer references to it.
+#line 131
+allow apexd vold:binder { call transfer };
+#line 131
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 131
+allow vold apexd:binder transfer;
+#line 131
+# Receive and use open files from the server.
+#line 131
+allow apexd vold:fd use;
+#line 131
+
+
+# apexd is using bootstrap bionic
+
+#line 134
+  allow apexd system_bootstrap_lib_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 134
+  allow apexd system_bootstrap_lib_file:file { execute read open getattr map };
+#line 134
+
+
+# Allow apexd to be invoked with logwrapper from init during userspace reboot.
+allow apexd devpts:chr_file { read write };
+
+# Allow apexd to create pts files via logwrap_fork_exec for its own use, to pass to
+# other processes
+
+#line 141
+# Each domain gets a unique devpts type.
+#line 141
+type apexd_devpts, fs_type;
+#line 141
+# Label the pty with the unique type when created.
+#line 141
+type_transition apexd devpts:chr_file apexd_devpts;
+#line 141
+# Allow use of the pty after creation.
+#line 141
+allow apexd apexd_devpts:chr_file { open getattr read write ioctl };
+#line 141
+allowxperm apexd apexd_devpts:chr_file ioctl {
+#line 141
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 141
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 141
+};
+#line 141
+# TIOCSTI is only ever used for exploits. Block it.
+#line 141
+# b/33073072, b/7530569
+#line 141
+# http://www.openwall.com/lists/oss-security/2016/09/26/14
+#line 141
+neverallowxperm * apexd_devpts:chr_file ioctl 0x00005412;
+#line 141
+# Note: devpts:dir search and ptmx_device:chr_file rw_file_perms
+#line 141
+# allowed to everyone via domain.te.
+#line 141
+
+
+# Allow apexd to read file contexts when performing restorecon of snapshots.
+allow apexd file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow apexd to execute toybox for snapshot & restore
+allow apexd toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow apexd to release compressed blocks in case /data is f2fs-compressed fs.
+allowxperm apexd staging_data_file:file ioctl {
+  0x80086601
+  0xf512
+};
+
+# Allow apexd to read ro.cold_boot_done prop.
+# apexd uses it to decide whether it needs to keep retrying polling for loop device.
+
+#line 157
+allow apexd cold_boot_done_prop:file { getattr open read map };
+#line 157
+
+
+# Allow apexd to read per-device configuration properties.
+
+#line 160
+allow apexd apexd_config_prop:file { getattr open read map };
+#line 160
+
+
+# Allow apexd to read apex selection properties.
+# These are used to choose between multi-installed APEXes at activation time.
+
+#line 164
+allow apexd apexd_select_prop:file { getattr open read map };
+#line 164
+
+#
+# Allow apexd to read apexd_payload_metadata_prop
+
+#line 167
+allow apexd apexd_payload_metadata_prop:file { getattr open read map };
+#line 167
+
+
+neverallow { domain -apexd -init } apex_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain -apexd -init } apex_metadata_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain -apexd -init -kernel } apex_data_file:file { append create link unlink relabelfrom rename setattr write };
+neverallow { domain -apexd -init -kernel } apex_metadata_file:file { append create link unlink relabelfrom rename setattr write };
+neverallow { domain -apexd } apex_mnt_dir:lnk_file { append create link unlink relabelfrom rename setattr write };
+
+neverallow { domain -apexd -init -vold_prepare_subdirs } apex_module_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain -apexd -init -vold_prepare_subdirs } apex_module_data_file:file { append create link unlink relabelfrom rename setattr write };
+
+neverallow { domain -apexd -init -vold_prepare_subdirs } apex_rollback_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain -apexd -init -vold_prepare_subdirs } apex_rollback_data_file:file { append create link unlink relabelfrom rename setattr write };
+
+# only apexd can set apexd sysprop
+
+#line 182
+
+#line 182
+allow apexd property_socket:sock_file write;
+#line 182
+allow apexd init:unix_stream_socket connectto;
+#line 182
+
+#line 182
+allow apexd apexd_prop:property_service set;
+#line 182
+
+#line 182
+allow apexd apexd_prop:file { getattr open read map };
+#line 182
+
+#line 182
+
+neverallow { domain -apexd -init } apexd_prop:property_service set;
+
+# only apexd can write apex-info-list.xml
+neverallow { domain -apexd } apex_info_file:file { append create link unlink relabelfrom rename setattr write };
+
+# Only apexd and init should be allowed to manage /apex mounts
+# A note on otapreopt_chroot. It used to mount APEXes during postainstall stage of A/B OTAs,
+# but starting from S it just calls into apexd to prepare /apex for otapreoprt. Once the sepolicies
+# around otapreopt_chroot are cleaned up we should be able to remove it from the lists below.
+neverallow { domain -apexd -init -otapreopt_chroot } apex_mnt_dir:filesystem { mount unmount };
+neverallow { domain -apexd -init -otapreopt_chroot } apex_mnt_dir:dir { mounton };
+
+# Allow for use in postinstall
+allow apexd otapreopt_chroot:fd use;
+allow apexd postinstall_apex_mnt_dir:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+allow apexd postinstall_apex_mnt_dir:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom };
+allow apexd postinstall_apex_mnt_dir:lnk_file create;
+allow apexd proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow calling derive_classpath to gather BCP information for staged sessions
+
+#line 203
+# Allow the necessary permissions.
+#line 203
+
+#line 203
+# Old domain may exec the file and transition to the new domain.
+#line 203
+allow apexd derive_classpath_exec:file { getattr open read execute map };
+#line 203
+allow apexd apexd_derive_classpath:process transition;
+#line 203
+# New domain is entered by executing the file.
+#line 203
+allow apexd_derive_classpath derive_classpath_exec:file { entrypoint open read execute getattr map };
+#line 203
+# New domain can send SIGCHLD to its caller.
+#line 203
+allow apexd_derive_classpath apexd:process sigchld;
+#line 203
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 203
+dontaudit apexd apexd_derive_classpath:process noatsecure;
+#line 203
+# XXX dontaudit candidate but requires further study.
+#line 203
+allow apexd apexd_derive_classpath:process { siginh rlimitinh };
+#line 203
+
+#line 203
+# Make the transition occur by default.
+#line 203
+type_transition apexd derive_classpath_exec:process apexd_derive_classpath;
+#line 203
+;
+
+# Allow set apex ready property
+
+#line 206
+
+#line 206
+allow apexd property_socket:sock_file write;
+#line 206
+allow apexd init:unix_stream_socket connectto;
+#line 206
+
+#line 206
+allow apexd apex_ready_prop:property_service set;
+#line 206
+
+#line 206
+allow apexd apex_ready_prop:file { getattr open read map };
+#line 206
+
+#line 206
+
+#line 1 "system/sepolicy/private/apexd_derive_classpath.te"
+# Exclusive domain for apexd calling into derive_classpath binary
+type apexd_derive_classpath, domain, coredomain;
+
+# Allow the binary to write into output file at location /apex/derive_classpath_temp
+allow apexd_derive_classpath apexd:fd use;
+allow apexd_derive_classpath apex_mnt_dir:file { write open };
+# Allow the binary to log using logwrap
+allow apexd_derive_classpath apexd_devpts:chr_file { read write };
+
+#line 1 "system/sepolicy/private/app.te"
+# /proc/net access.
+# TODO(b/9496886) Audit access for removal.
+# proc_net access for the negated domains below is granted (or not) in their
+# individual .te files.
+
+#line 5
+allow {
+#line 5
+  appdomain
+#line 5
+  -ephemeral_app
+#line 5
+  -isolated_app_all
+#line 5
+  -platform_app
+#line 5
+  -priv_app
+#line 5
+  -shell
+#line 5
+  -sdk_sandbox_all
+#line 5
+  -system_app
+#line 5
+  -untrusted_app_all
+#line 5
+} proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 5
+allow {
+#line 5
+  appdomain
+#line 5
+  -ephemeral_app
+#line 5
+  -isolated_app_all
+#line 5
+  -platform_app
+#line 5
+  -priv_app
+#line 5
+  -shell
+#line 5
+  -sdk_sandbox_all
+#line 5
+  -system_app
+#line 5
+  -untrusted_app_all
+#line 5
+} proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 15
+
+# audit access for all these non-core app domains.
+#line 30
+
+
+# Allow apps to read the Test Harness Mode property. This property is used in
+# the implementation of ActivityManager.isDeviceInTestHarnessMode()
+
+#line 34
+allow appdomain test_harness_prop:file { getattr open read map };
+#line 34
+
+
+
+#line 36
+allow appdomain boot_status_prop:file { getattr open read map };
+#line 36
+
+
+#line 37
+allow appdomain dalvik_config_prop_type:file { getattr open read map };
+#line 37
+
+
+#line 38
+allow appdomain media_config_prop:file { getattr open read map };
+#line 38
+
+
+#line 39
+allow appdomain packagemanager_config_prop:file { getattr open read map };
+#line 39
+
+
+#line 40
+allow appdomain radio_control_prop:file { getattr open read map };
+#line 40
+
+
+#line 41
+allow appdomain surfaceflinger_color_prop:file { getattr open read map };
+#line 41
+
+
+#line 42
+allow appdomain systemsound_config_prop:file { getattr open read map };
+#line 42
+
+
+#line 43
+allow appdomain telephony_config_prop:file { getattr open read map };
+#line 43
+
+
+#line 44
+allow appdomain userspace_reboot_config_prop:file { getattr open read map };
+#line 44
+
+
+#line 45
+allow appdomain vold_config_prop:file { getattr open read map };
+#line 45
+
+
+#line 46
+allow appdomain adbd_config_prop:file { getattr open read map };
+#line 46
+
+
+#line 47
+allow appdomain dck_prop:file { getattr open read map };
+#line 47
+
+
+#line 48
+allow appdomain persist_wm_debug_prop:file { getattr open read map };
+#line 48
+
+
+#line 49
+allow appdomain persist_sysui_builder_extras_prop:file { getattr open read map };
+#line 49
+
+
+#line 50
+allow appdomain persist_sysui_ranking_update_prop:file { getattr open read map };
+#line 50
+
+
+# Allow the heap dump ART plugin to the count of sessions waiting for OOME
+
+#line 53
+allow appdomain traced_oome_heap_session_count_prop:file { getattr open read map };
+#line 53
+
+
+# Allow to read ro.vendor.camera.extensions.enabled
+
+#line 56
+allow appdomain camera2_extensions_prop:file { getattr open read map };
+#line 56
+
+
+# Allow to ro.camerax.extensions.enabled
+
+#line 59
+allow appdomain camerax_extensions_prop:file { getattr open read map };
+#line 59
+
+
+# Prevent apps from causing presubmit failures.
+# Apps can cause selinux denials by accessing CE storage
+# and/or external storage. In either case, the selinux denial is
+# not the cause of the failure, but just a symptom that
+# storage isn't ready. Many apps handle the failure appropriately.
+#
+# Apps cannot access external storage before it becomes available.
+dontaudit appdomain storage_stub_file:dir getattr;
+# Attempts to write to system_data_file is generally a sign
+# that apps are attempting to access encrypted storage before
+# the ACTION_USER_UNLOCKED intent is delivered. Apps are not
+# allowed to write to CE storage before it's available.
+# Attempting to do so will be blocked by both selinux and unix
+# permissions.
+dontaudit appdomain system_data_file:dir write;
+# Apps should not be reading vendor-defined properties.
+dontaudit appdomain vendor_default_prop:file read;
+
+# Access to /mnt/media_rw/<vol> (limited by DAC to apps with external_storage gid)
+allow { appdomain -sdk_sandbox_all } mnt_media_rw_file:dir search;
+
+# allow apps to use UDP sockets provided by the system server but not
+# modify them other than to connect
+allow appdomain system_server:udp_socket {
+        connect getattr read recvfrom sendto write getopt setopt };
+
+neverallow appdomain system_server:udp_socket {
+        accept append bind create ioctl listen lock name_bind
+        relabelfrom relabelto setattr shutdown };
+
+# Transition to a non-app domain.
+# Exception for the shell and su domains, can transition to runas, etc.
+# Exception for crash_dump to allow for app crash reporting.
+# Exception for renderscript binaries (/system/bin/bcc, /system/bin/ld.mc)
+# to allow renderscript to create privileged executable files.
+# Exception for virtualizationmanager to allow running VMs as child processes.
+neverallow { appdomain -shell  }
+    { domain -appdomain -crash_dump -rs -virtualizationmanager }:process { transition };
+neverallow { appdomain -shell  }
+    { domain -appdomain }:process { dyntransition };
+
+# Don't allow regular apps access to storage configuration properties.
+neverallow { appdomain -mediaprovider_app } storage_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Don't allow apps reading /system/etc/font_fallback.xml
+dontaudit appdomain system_font_fallback_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow appdomain system_font_fallback_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Allow to read sendbug.preferred.domain
+
+#line 110
+allow appdomain sendbug_config_prop:file { getattr open read map };
+#line 110
+
+
+# Allow to read graphics related properties.
+
+#line 113
+allow appdomain graphics_config_prop:file { getattr open read map };
+#line 113
+
+
+# Allow to read persist.config.calibration_fac
+
+#line 116
+allow appdomain camera_calibration_prop:file { getattr open read map };
+#line 116
+
+
+# Allow to read db.log.detailed, db.log.slow_query_threshold*
+
+#line 119
+allow appdomain sqlite_log_prop:file { getattr open read map };
+#line 119
+
+
+# Allow to read system_user_mode_emulation_prop, which is used by UserManager.java
+
+
+# Allow font file read by apps.
+allow appdomain font_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow appdomain font_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Enter /data/misc/apexdata/
+allow appdomain apex_module_data_file:dir search;
+# Read /data/misc/apexdata/com.android.art, execute signed AOT artifacts.
+allow appdomain apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow appdomain apex_art_data_file:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow access to tombstones if an fd to one is given to you.
+# An app cannot open the tombstone itself because it lacks `open`.
+allow appdomain tombstone_data_file:file { getattr read };
+neverallow { appdomain -shell } tombstone_data_file:file ~{ getattr read };
+
+# Execute the shell or other system executables.
+allow { appdomain -ephemeral_app -sdk_sandbox_all } shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow { appdomain -ephemeral_app -sdk_sandbox_all } toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow { appdomain -ephemeral_app -sdk_sandbox_all } vendor_file:file { getattr execute execute_no_trans map };
+
+# Allow apps access to /vendor/app except for privileged
+# apps which cannot be in /vendor.
+
+#line 146
+allow { appdomain -ephemeral_app -sdk_sandbox_all } vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 146
+allow { appdomain -ephemeral_app -sdk_sandbox_all } vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 146
+
+allow { appdomain -ephemeral_app -sdk_sandbox_all } vendor_app_file:file execute;
+
+# Allow apps to read microdroid related files in vendor partition for CTS purpose.
+
+#line 150
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } vendor_microdroid_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 150
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } vendor_microdroid_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 150
+
+
+# Perform binder IPC to sdk sandbox.
+
+#line 153
+# Call the server domain and optionally transfer references to it.
+#line 153
+allow appdomain sdk_sandbox_all:binder { call transfer };
+#line 153
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 153
+allow sdk_sandbox_all appdomain:binder transfer;
+#line 153
+# Receive and use open files from the server.
+#line 153
+allow appdomain sdk_sandbox_all:fd use;
+#line 153
+
+
+# Allow apps to communicate via binder with virtual camera service.
+
+#line 156
+# Call the server domain and optionally transfer references to it.
+#line 156
+allow appdomain virtual_camera:binder { call transfer };
+#line 156
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 156
+allow virtual_camera appdomain:binder transfer;
+#line 156
+# Receive and use open files from the server.
+#line 156
+allow appdomain virtual_camera:fd use;
+#line 156
+
+
+# Allow access to external storage; we have several visible mount points under /storage
+# and symlinks to primary storage at places like /storage/sdcard0 and /mnt/user/0/primary
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } storage_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } storage_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } mnt_user_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } mnt_user_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Read/write visible storage
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } { sdcard_type fuse }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } { sdcard_type fuse }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# This should be removed if sdcardfs is modified to alter the secontext for its
+# accesses to the underlying FS.
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow apps to use the USB Accessory interface.
+# http://developer.android.com/guide/topics/connectivity/usb/accessory.html
+#
+# USB devices are first opened by the system server (USBDeviceManagerService)
+# and the file descriptor is passed to the right Activity via binder.
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } usb_device:chr_file { read write getattr ioctl };
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } usbaccessory_device:chr_file { read write getattr };
+
+#logd access
+
+#line 182
+# Group AID_LOG checked by filesystem & logd
+#line 182
+# to permit control commands
+#line 182
+
+#line 182
+allow { appdomain -ephemeral_app -sdk_sandbox_all } logd_socket:sock_file write;
+#line 182
+allow { appdomain -ephemeral_app -sdk_sandbox_all } logd:unix_stream_socket connectto;
+#line 182
+
+#line 182
+
+
+# application inherit logd write socket (urge is to deprecate this long term)
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } keystore:keystore2_key { delete use get_info rebind update };
+
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } keystore_maintenance_service:service_manager find;
+
+
+#line 189
+  allow keystore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:dir search;
+#line 189
+  allow keystore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:file { read open };
+#line 189
+  allow keystore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:process getattr;
+#line 189
+  allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } apc_service:service_manager find;
+#line 189
+  allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } keystore_service:service_manager find;
+#line 189
+  allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } legacykeystore_service:service_manager find;
+#line 189
+  
+#line 189
+# Call the server domain and optionally transfer references to it.
+#line 189
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } keystore:binder { call transfer };
+#line 189
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 189
+allow keystore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:binder transfer;
+#line 189
+# Receive and use open files from the server.
+#line 189
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } keystore:fd use;
+#line 189
+
+#line 189
+  
+#line 189
+# Call the server domain and optionally transfer references to it.
+#line 189
+allow keystore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:binder { call transfer };
+#line 189
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 189
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } keystore:binder transfer;
+#line 189
+# Receive and use open files from the server.
+#line 189
+allow keystore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:fd use;
+#line 189
+
+#line 189
+
+
+
+#line 191
+  allow credstore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:dir search;
+#line 191
+  allow credstore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:file { read open };
+#line 191
+  allow credstore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:process getattr;
+#line 191
+  allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } credstore_service:service_manager find;
+#line 191
+  
+#line 191
+# Call the server domain and optionally transfer references to it.
+#line 191
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } credstore:binder { call transfer };
+#line 191
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 191
+allow credstore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:binder transfer;
+#line 191
+# Receive and use open files from the server.
+#line 191
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } credstore:fd use;
+#line 191
+
+#line 191
+  
+#line 191
+# Call the server domain and optionally transfer references to it.
+#line 191
+allow credstore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:binder { call transfer };
+#line 191
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 191
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } credstore:binder transfer;
+#line 191
+# Receive and use open files from the server.
+#line 191
+allow credstore { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:fd use;
+#line 191
+
+#line 191
+
+
+# For app fuse.
+
+#line 194
+
+#line 194
+# Allow client to open the service endpoint file.
+#line 194
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_client_endpoint_dir_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 194
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_client_endpoint_socket_type:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 194
+# Allow the client to connect to endpoint socket.
+#line 194
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_client_endpoint_socket_type:unix_stream_socket { connectto read write shutdown };
+#line 194
+
+#line 194
+
+#line 194
+# Allow the client to use the PDX channel socket.
+#line 194
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 194
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 194
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_client_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 194
+# Client needs to use an channel event fd from the server.
+#line 194
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_client_server_type:fd use;
+#line 194
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 194
+# This could be tightened on a per-server basis, but keeping track of service
+#line 194
+# clients is error prone.
+#line 194
+allow pdx_display_client_server_type { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:fd use;
+#line 194
+
+#line 194
+
+
+#line 195
+
+#line 195
+# Allow client to open the service endpoint file.
+#line 195
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_manager_endpoint_dir_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 195
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_manager_endpoint_socket_type:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 195
+# Allow the client to connect to endpoint socket.
+#line 195
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_manager_endpoint_socket_type:unix_stream_socket { connectto read write shutdown };
+#line 195
+
+#line 195
+
+#line 195
+# Allow the client to use the PDX channel socket.
+#line 195
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 195
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 195
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_manager_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 195
+# Client needs to use an channel event fd from the server.
+#line 195
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_manager_server_type:fd use;
+#line 195
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 195
+# This could be tightened on a per-server basis, but keeping track of service
+#line 195
+# clients is error prone.
+#line 195
+allow pdx_display_manager_server_type { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:fd use;
+#line 195
+
+#line 195
+
+
+#line 196
+
+#line 196
+# Allow client to open the service endpoint file.
+#line 196
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_vsync_endpoint_dir_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 196
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_vsync_endpoint_socket_type:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 196
+# Allow the client to connect to endpoint socket.
+#line 196
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_vsync_endpoint_socket_type:unix_stream_socket { connectto read write shutdown };
+#line 196
+
+#line 196
+
+#line 196
+# Allow the client to use the PDX channel socket.
+#line 196
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 196
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 196
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_vsync_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 196
+# Client needs to use an channel event fd from the server.
+#line 196
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_display_vsync_server_type:fd use;
+#line 196
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 196
+# This could be tightened on a per-server basis, but keeping track of service
+#line 196
+# clients is error prone.
+#line 196
+allow pdx_display_vsync_server_type { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:fd use;
+#line 196
+
+#line 196
+
+
+#line 197
+
+#line 197
+# Allow client to open the service endpoint file.
+#line 197
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_performance_client_endpoint_dir_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 197
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_performance_client_endpoint_socket_type:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 197
+# Allow the client to connect to endpoint socket.
+#line 197
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_performance_client_endpoint_socket_type:unix_stream_socket { connectto read write shutdown };
+#line 197
+
+#line 197
+
+#line 197
+# Allow the client to use the PDX channel socket.
+#line 197
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 197
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 197
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_performance_client_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 197
+# Client needs to use an channel event fd from the server.
+#line 197
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_performance_client_server_type:fd use;
+#line 197
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 197
+# This could be tightened on a per-server basis, but keeping track of service
+#line 197
+# clients is error prone.
+#line 197
+allow pdx_performance_client_server_type { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:fd use;
+#line 197
+
+#line 197
+
+# Apps do not directly open the IPC socket for bufferhubd.
+
+#line 199
+# Allow the client to use the PDX channel socket.
+#line 199
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 199
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 199
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_bufferhub_client_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 199
+# Client needs to use an channel event fd from the server.
+#line 199
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } pdx_bufferhub_client_server_type:fd use;
+#line 199
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 199
+# This could be tightened on a per-server basis, but keeping track of service
+#line 199
+# clients is error prone.
+#line 199
+allow pdx_bufferhub_client_server_type { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all }:fd use;
+#line 199
+
+
+# Apps receive an open tun fd from the framework for
+# device traffic. Do not allow untrusted app to directly open tun_device
+allow { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } tun_device:chr_file { read write getattr append ioctl };
+allowxperm { appdomain -isolated_app_all -ephemeral_app -sdk_sandbox_all } tun_device:chr_file ioctl 0x800454d2;
+
+
+# WebView and other application-specific JIT compilers
+allow appdomain self:process execmem;
+
+allow appdomain { ashmem_device ashmem_libcutils_device }:chr_file execute;
+
+# Receive and use open file descriptors inherited from zygote.
+allow appdomain zygote:fd use;
+
+# Receive and use open file descriptors inherited from app zygote.
+allow appdomain app_zygote:fd use;
+
+# gdbserver for ndk-gdb reads the zygote.
+# valgrind needs mmap exec for zygote
+allow appdomain zygote_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Notify zygote of death;
+allow appdomain zygote:process sigchld;
+
+# Read /data/dalvik-cache.
+allow appdomain dalvikcache_data_file:dir { search getattr };
+allow appdomain dalvikcache_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read the /sdcard and /mnt/sdcard symlinks
+allow { appdomain -isolated_app_all -sdk_sandbox_all } rootfs:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow { appdomain -isolated_app_all -sdk_sandbox_all } tmpfs:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Search /storage/emulated tmpfs mount.
+allow { appdomain -sdk_sandbox_all } tmpfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Notify zygote of the wrapped process PID when using --invoke-with.
+allow appdomain zygote:fifo_file write;
+
+#line 243
+
+
+# Notify shell and adbd of death when spawned via runas for ndk-gdb.
+allow appdomain shell:process sigchld;
+allow appdomain adbd:process sigchld;
+
+# child shell or gdbserver pty access for runas.
+allow appdomain devpts:chr_file { getattr read write ioctl };
+
+# Use pipes and sockets provided by system_server via binder or local socket.
+allow appdomain system_server:fd use;
+allow appdomain system_server:fifo_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow appdomain system_server:unix_stream_socket { read write setopt getattr getopt shutdown };
+allow appdomain system_server:tcp_socket { read write getattr getopt shutdown };
+
+# For AppFuse.
+allow appdomain vold:fd use;
+
+# Communication with other apps via fifos
+allow appdomain appdomain:fifo_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Communicate with surfaceflinger.
+allow appdomain surfaceflinger:unix_stream_socket { read write setopt getattr getopt shutdown };
+
+# App sandbox file accesses.
+allow { appdomain -isolated_app_all -mlstrustedsubject -sdk_sandbox_all } { app_data_file privapp_data_file }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow { appdomain -isolated_app_all -mlstrustedsubject -sdk_sandbox_all } { app_data_file privapp_data_file }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allowxperm { appdomain -isolated_app_all -mlstrustedsubject -sdk_sandbox_all } { app_data_file privapp_data_file }:file ioctl 0x6686;
+
+# Access via already open fds is ok even for mlstrustedsubject.
+allow { appdomain -isolated_app_all -sdk_sandbox_all } { app_data_file privapp_data_file system_app_data_file }:file { getattr map read write };
+
+# Access open fds from SDK sandbox
+allow appdomain sdk_sandbox_data_file:file { getattr read };
+
+# Traverse into expanded storage
+allow appdomain mnt_expand_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Keychain and user-trusted credentials
+
+#line 282
+allow appdomain keychain_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 282
+allow appdomain keychain_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 282
+
+allow appdomain misc_user_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow appdomain misc_user_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# TextClassifier
+
+#line 287
+allow { appdomain -isolated_app_all } textclassifier_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 287
+allow { appdomain -isolated_app_all } textclassifier_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 287
+
+
+# Access to OEM provided data and apps
+allow appdomain oemfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow appdomain oemfs:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+allow appdomain system_file:file { getattr execute execute_no_trans map };
+
+# Renderscript needs the ability to read directories on /system
+allow appdomain system_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow appdomain system_file:lnk_file { getattr open read };
+# Renderscript specific permissions to open /system/vendor/lib64.
+
+#line 299
+    allow appdomain vendor_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 299
+    allow appdomain vendor_file_type:lnk_file { getattr open read };
+#line 302
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 304
+
+#line 304
+    # For looking up Renderscript vendor drivers
+#line 304
+    allow { appdomain -isolated_app_all } vendor_file:dir { open read };
+#line 304
+
+#line 304
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 307
+
+
+# Allow apps access to /vendor/overlay
+
+#line 310
+allow appdomain vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 310
+allow appdomain vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 310
+
+
+# Allow apps access to /vendor/framework
+# for vendor provided libraries.
+
+#line 314
+allow appdomain vendor_framework_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 314
+allow appdomain vendor_framework_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 314
+
+
+# Allow apps read / execute access to vendor public libraries.
+allow appdomain {vendor_public_framework_file vendor_public_lib_file}:dir { open getattr read search ioctl lock watch watch_reads };
+allow appdomain {vendor_public_framework_file vendor_public_lib_file}:file { execute read open getattr map };
+
+# Read/write wallpaper file (opened by system).
+allow appdomain wallpaper_file:file { getattr read write map };
+
+# Read/write cached ringtones (opened by system).
+allow appdomain ringtone_file:file { getattr read write map };
+
+# Read ShortcutManager icon files (opened by system).
+allow appdomain shortcut_manager_icons:file { getattr read map };
+
+# Read icon file (opened by system).
+allow appdomain icon_file:file { getattr read map };
+
+# Old stack dumping scheme : append to a global trace file (/data/anr/traces.txt).
+#
+# TODO: All of these permissions except for anr_data_file:file append can be
+# withdrawn once we've switched to the new stack dumping mechanism, see b/32064548
+# and the rules below.
+allow appdomain anr_data_file:dir search;
+allow appdomain anr_data_file:file { open append };
+
+# New stack dumping scheme : request an output FD from tombstoned via a unix
+# domain socket.
+#
+# Allow apps to connect and write to the tombstoned java trace socket in
+# order to dump their traces. Also allow them to append traces to pipes
+# created by dumptrace. (Also see the rules below where they are given
+# additional permissions to dumpstate pipes for other aspects of bug report
+# creation).
+
+#line 348
+allow appdomain tombstoned_java_trace_socket:sock_file write;
+#line 348
+allow appdomain tombstoned:unix_stream_socket connectto;
+#line 348
+
+allow appdomain tombstoned:fd use;
+allow appdomain dumpstate:fifo_file append;
+allow appdomain incidentd:fifo_file append;
+
+# Allow apps to send dump information to dumpstate
+allow appdomain dumpstate:fd use;
+allow appdomain dumpstate:unix_stream_socket { read write getopt getattr shutdown };
+allow appdomain dumpstate:fifo_file { write getattr };
+allow appdomain shell_data_file:file { write getattr };
+
+# Allow apps to send dump information to incidentd
+allow appdomain incidentd:fd use;
+allow appdomain incidentd:fifo_file { write getattr };
+
+# Allow apps to send information to statsd socket.
+
+#line 364
+allow appdomain statsdw_socket:sock_file write;
+#line 364
+allow appdomain statsd:unix_dgram_socket sendto;
+#line 364
+
+
+# Write profiles /data/misc/profiles
+allow appdomain user_profile_root_file:dir search;
+allow appdomain user_profile_data_file:dir { open search write add_name remove_name lock };
+allow appdomain user_profile_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow writing performance tracing data into the perfetto traced daemon.
+# Needed for java heap graph ART plugin (perfetto_hprof).
+# The perfetto profiling daemon will check for the specific application's
+# opt-in/opt-out.
+
+#line 375
+  allow appdomain traced:fd use;
+#line 375
+  allow appdomain traced_tmpfs:file { read write getattr map };
+#line 375
+  
+#line 375
+allow appdomain traced_producer_socket:sock_file write;
+#line 375
+allow appdomain traced:unix_stream_socket connectto;
+#line 375
+
+#line 375
+
+#line 375
+  # Also allow the service to use the producer file descriptors. This is
+#line 375
+  # necessary when the producer is creating the shared memory, as it will be
+#line 375
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 375
+  allow traced appdomain:fd use;
+#line 375
+
+
+# Send heap dumps to system_server via an already open file descriptor
+# % adb shell am set-watch-heap com.android.systemui 1048576
+# % adb shell dumpsys procstats --start-testing
+# debuggable builds only.
+#line 383
+
+
+# Grant GPU access to all processes started by Zygote.
+# They need that to render the standard UI.
+allow { appdomain -isolated_app_all } gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow { appdomain -isolated_app_all } gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow { appdomain -isolated_app_all } sysfs_gpu:file { getattr open read ioctl lock map watch watch_reads };
+
+
+# Use the Binder.
+
+#line 393
+# Call the servicemanager and transfer references to it.
+#line 393
+allow appdomain servicemanager:binder { call transfer };
+#line 393
+# Allow servicemanager to send out callbacks
+#line 393
+allow servicemanager appdomain:binder { call transfer };
+#line 393
+# servicemanager performs getpidcon on clients.
+#line 393
+allow servicemanager appdomain:dir search;
+#line 393
+allow servicemanager appdomain:file { read open };
+#line 393
+allow servicemanager appdomain:process getattr;
+#line 393
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 393
+# all domains in domain.te.
+#line 393
+
+# Perform binder IPC to binder services.
+
+#line 395
+# Call the server domain and optionally transfer references to it.
+#line 395
+allow appdomain binderservicedomain:binder { call transfer };
+#line 395
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 395
+allow binderservicedomain appdomain:binder transfer;
+#line 395
+# Receive and use open files from the server.
+#line 395
+allow appdomain binderservicedomain:fd use;
+#line 395
+
+# Perform binder IPC to other apps.
+
+#line 397
+# Call the server domain and optionally transfer references to it.
+#line 397
+allow appdomain appdomain:binder { call transfer };
+#line 397
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 397
+allow appdomain appdomain:binder transfer;
+#line 397
+# Receive and use open files from the server.
+#line 397
+allow appdomain appdomain:fd use;
+#line 397
+
+# Perform binder IPC to ephemeral apps.
+
+#line 399
+# Call the server domain and optionally transfer references to it.
+#line 399
+allow appdomain ephemeral_app:binder { call transfer };
+#line 399
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 399
+allow ephemeral_app appdomain:binder transfer;
+#line 399
+# Receive and use open files from the server.
+#line 399
+allow appdomain ephemeral_app:fd use;
+#line 399
+
+# Perform binder IPC to gpuservice.
+
+#line 401
+# Call the server domain and optionally transfer references to it.
+#line 401
+allow { appdomain -isolated_app_all } gpuservice:binder { call transfer };
+#line 401
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 401
+allow gpuservice { appdomain -isolated_app_all }:binder transfer;
+#line 401
+# Receive and use open files from the server.
+#line 401
+allow { appdomain -isolated_app_all } gpuservice:fd use;
+#line 401
+
+
+# Talk with graphics composer fences
+allow appdomain hal_graphics_composer:fd use;
+
+# Already connected, unnamed sockets being passed over some other IPC
+# hence no sock_file or connectto permission. This appears to be how
+# Chrome works, may need to be updated as more apps using isolated services
+# are examined.
+allow appdomain appdomain:unix_stream_socket { getopt getattr read write shutdown };
+
+# Backup ability for every app. BMS opens and passes the fd
+# to any app that has backup ability. Hence, no open permissions here.
+allow appdomain backup_data_file:file { read write getattr map };
+allow appdomain cache_backup_file:file { read write getattr map };
+allow appdomain cache_backup_file:dir getattr;
+# Backup ability using 'adb backup'
+allow appdomain system_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow appdomain system_data_file:file { getattr read map };
+
+# Allow read/stat of /data/media files passed by Binder or local socket IPC.
+allow { appdomain -isolated_app_all -sdk_sandbox_all } media_rw_data_file:file { read getattr };
+
+# Read and write /data/data/com.android.providers.telephony files passed over Binder.
+allow { appdomain -isolated_app_all } radio_data_file:file { read write getattr };
+
+# For art.
+allow appdomain dalvikcache_data_file:file execute;
+allow appdomain dalvikcache_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow any app to read shared RELRO files.
+allow appdomain shared_relro_file:dir search;
+allow appdomain shared_relro_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow apps to read/execute installed binaries
+allow appdomain apk_data_file:dir { open getattr read search ioctl lock };
+allow appdomain apk_data_file:file { getattr open read ioctl lock map { getattr execute execute_no_trans map } };
+
+# /data/resource-cache
+allow appdomain resourcecache_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow appdomain resourcecache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# logd access
+
+#line 444
+allow appdomain logcat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 444
+
+#line 444
+allow appdomain logdr_socket:sock_file write;
+#line 444
+allow appdomain logd:unix_stream_socket connectto;
+#line 444
+
+#line 444
+
+
+allow appdomain zygote:unix_dgram_socket write;
+
+allow appdomain console_device:chr_file { read write };
+
+# only allow unprivileged socket ioctl commands
+allowxperm { appdomain -bluetooth } self:{ rawip_socket tcp_socket udp_socket }
+  ioctl { 
+#line 452
+{
+#line 452
+# Socket ioctls for gathering information about the interface
+#line 452
+0x00008906 0x00008907
+#line 452
+0x00008910 0x00008912 0x00008913 0x00008915 0x00008917 0x00008919
+#line 452
+0x0000891b 0x00008921 0x00008933 0x00008938 0x00008942
+#line 452
+# Wireless extension ioctls. Primarily get functions.
+#line 452
+0x00008b01 0x00008b05 0x00008b07 0x00008b09 0x00008b0b 0x00008b0d
+#line 452
+0x00008b0f 0x00008b11 0x00008b12 0x00008b13 0x00008b21 0x00008b23
+#line 452
+0x00008b25 0x00008b27 0x00008b29 0x00008b2d
+#line 452
+} {
+#line 452
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 452
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 452
+} };
+
+allow { appdomain -isolated_app_all } ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow { appdomain -isolated_app_all } dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow { appdomain -isolated_app_all } dmabuf_system_secure_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow AAudio apps to use shared memory file descriptors from the HAL
+allow { appdomain -isolated_app_all } hal_audio:fd use;
+
+# Allow app to access shared memory created by camera HAL1
+allow { appdomain -isolated_app_all } hal_camera:fd use;
+
+# Allow apps to access shared memory file descriptor from the tuner HAL
+allow {appdomain -isolated_app_all} hal_tv_tuner_server:fd use;
+
+# RenderScript always-passthrough HAL
+allow { appdomain -isolated_app_all } hal_renderscript_hwservice:hwservice_manager find;
+allow appdomain same_process_hal_file:file { execute read open getattr map };
+
+# TODO: switch to meminfo service
+allow appdomain proc_meminfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# For app fuse.
+allow appdomain app_fuse_file:file { getattr read append write map };
+
+###
+### CTS-specific rules
+###
+
+# For cts/tests/tests/permission/src/android/permission/cts/FileSystemPermissionTest.java.
+# testRunAsHasCorrectCapabilities
+allow appdomain runas_exec:file getattr;
+# Others are either allowed elsewhere or not desired.
+
+# Connect to adbd and use a socket transferred from it.
+# This is used for e.g. adb backup/restore.
+allow appdomain adbd:unix_stream_socket connectto;
+allow appdomain adbd:fd use;
+allow appdomain adbd:unix_stream_socket { getattr getopt ioctl read write shutdown };
+
+allow appdomain cache_file:dir getattr;
+
+# Allow apps to run with asanwrapper.
+
+
+# Read access to FDs from the DropboxManagerService.
+allow appdomain dropbox_data_file:file { getattr read };
+
+# Read tmpfs types from these processes.
+allow appdomain audioserver_tmpfs:file { getattr map read write };
+allow appdomain system_server_tmpfs:file { getattr map read write };
+allow appdomain zygote_tmpfs:file { map read };
+
+# Sensitive app domains are not allowed to execute from /data
+# to prevent persistence attacks and ensure all code is executed
+# from read-only locations.
+neverallow {
+  bluetooth
+  isolated_app_all
+  nfc
+  radio
+  shared_relro
+  sdk_sandbox_all
+  system_app
+} {
+  data_file_type
+  -apex_art_data_file
+  -dalvikcache_data_file
+  -system_data_file # shared libs in apks
+  -apk_data_file
+}:file { execute execute_no_trans };
+
+# Don't allow apps access to any of the following character devices.
+neverallow appdomain {
+    audio_device
+    camera_device
+    dm_device
+    radio_device
+    rpmsg_device
+}:chr_file { read write };
+
+# Block video device access for all apps except the DeviceAsWebcam Service which
+# needs access to /dev/video* for interfacing with the host
+neverallow {
+    appdomain
+    -device_as_webcam
+} video_device:chr_file { read write };
+
+# Prevent calling inotify on APKs. This can be used as a side channel
+# to observer app launches, so it must be disallowed. b/231587164
+# Gate by targetSdkVersion to avoid breaking existing apps.
+neverallow {
+  appdomain
+  -untrusted_app_25
+  -untrusted_app_27
+  -untrusted_app_29
+  -untrusted_app_30
+  -untrusted_app_32
+} apk_data_file:dir { watch watch_reads };
+neverallow {
+  appdomain
+  -untrusted_app_25
+  -untrusted_app_27
+  -untrusted_app_29
+  -untrusted_app_30
+  -untrusted_app_32
+} apk_data_file:file { watch watch_reads };
+#line 1 "system/sepolicy/private/app_neverallows.te"
+###
+### neverallow rules for untrusted app domains
+###
+
+#line 18
+
+# Receive or send uevent messages.
+neverallow {
+#line 20
+  ephemeral_app
+#line 20
+  isolated_app
+#line 20
+  isolated_app_all
+#line 20
+  isolated_compute_app
+#line 20
+  mediaprovider
+#line 20
+  mediaprovider_app
+#line 20
+  untrusted_app
+#line 20
+  untrusted_app_25
+#line 20
+  untrusted_app_27
+#line 20
+  untrusted_app_29
+#line 20
+  untrusted_app_30
+#line 20
+  untrusted_app_all
+#line 20
+} domain:netlink_kobject_uevent_socket *;
+
+# Receive or send generic netlink messages
+neverallow {
+#line 23
+  ephemeral_app
+#line 23
+  isolated_app
+#line 23
+  isolated_app_all
+#line 23
+  isolated_compute_app
+#line 23
+  mediaprovider
+#line 23
+  mediaprovider_app
+#line 23
+  untrusted_app
+#line 23
+  untrusted_app_25
+#line 23
+  untrusted_app_27
+#line 23
+  untrusted_app_29
+#line 23
+  untrusted_app_30
+#line 23
+  untrusted_app_all
+#line 23
+} domain:netlink_socket *;
+
+# Read or write kernel printk buffer
+neverallow {
+#line 26
+  ephemeral_app
+#line 26
+  isolated_app
+#line 26
+  isolated_app_all
+#line 26
+  isolated_compute_app
+#line 26
+  mediaprovider
+#line 26
+  mediaprovider_app
+#line 26
+  untrusted_app
+#line 26
+  untrusted_app_25
+#line 26
+  untrusted_app_27
+#line 26
+  untrusted_app_29
+#line 26
+  untrusted_app_30
+#line 26
+  untrusted_app_all
+#line 26
+} kmsg_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Too much leaky information in debugfs. It's a security
+# best practice to ensure these files aren't readable.
+neverallow {
+#line 30
+  ephemeral_app
+#line 30
+  isolated_app
+#line 30
+  isolated_app_all
+#line 30
+  isolated_compute_app
+#line 30
+  mediaprovider
+#line 30
+  mediaprovider_app
+#line 30
+  untrusted_app
+#line 30
+  untrusted_app_25
+#line 30
+  untrusted_app_27
+#line 30
+  untrusted_app_29
+#line 30
+  untrusted_app_30
+#line 30
+  untrusted_app_all
+#line 30
+} { debugfs_type -debugfs_kcov }:file read;
+neverallow {{
+#line 31
+  ephemeral_app
+#line 31
+  isolated_app
+#line 31
+  isolated_app_all
+#line 31
+  isolated_compute_app
+#line 31
+  mediaprovider
+#line 31
+  mediaprovider_app
+#line 31
+  untrusted_app
+#line 31
+  untrusted_app_25
+#line 31
+  untrusted_app_27
+#line 31
+  untrusted_app_29
+#line 31
+  untrusted_app_30
+#line 31
+  untrusted_app_all
+#line 31
+} } debugfs_type:{ file lnk_file } read;
+
+# Do not allow untrusted apps to register services.
+# Only trusted components of Android should be registering
+# services.
+neverallow {
+#line 36
+  ephemeral_app
+#line 36
+  isolated_app
+#line 36
+  isolated_app_all
+#line 36
+  isolated_compute_app
+#line 36
+  mediaprovider
+#line 36
+  mediaprovider_app
+#line 36
+  untrusted_app
+#line 36
+  untrusted_app_25
+#line 36
+  untrusted_app_27
+#line 36
+  untrusted_app_29
+#line 36
+  untrusted_app_30
+#line 36
+  untrusted_app_all
+#line 36
+} service_manager_type:service_manager add;
+
+# Do not allow untrusted apps to use VendorBinder
+neverallow {
+#line 39
+  ephemeral_app
+#line 39
+  isolated_app
+#line 39
+  isolated_app_all
+#line 39
+  isolated_compute_app
+#line 39
+  mediaprovider
+#line 39
+  mediaprovider_app
+#line 39
+  untrusted_app
+#line 39
+  untrusted_app_25
+#line 39
+  untrusted_app_27
+#line 39
+  untrusted_app_29
+#line 39
+  untrusted_app_30
+#line 39
+  untrusted_app_all
+#line 39
+} vndbinder_device:chr_file *;
+neverallow {
+#line 40
+  ephemeral_app
+#line 40
+  isolated_app
+#line 40
+  isolated_app_all
+#line 40
+  isolated_compute_app
+#line 40
+  mediaprovider
+#line 40
+  mediaprovider_app
+#line 40
+  untrusted_app
+#line 40
+  untrusted_app_25
+#line 40
+  untrusted_app_27
+#line 40
+  untrusted_app_29
+#line 40
+  untrusted_app_30
+#line 40
+  untrusted_app_all
+#line 40
+} vndservice_manager_type:service_manager *;
+
+# Do not allow untrusted apps to connect to the property service
+# or set properties. b/10243159
+neverallow { {
+#line 44
+  ephemeral_app
+#line 44
+  isolated_app
+#line 44
+  isolated_app_all
+#line 44
+  isolated_compute_app
+#line 44
+  mediaprovider
+#line 44
+  mediaprovider_app
+#line 44
+  untrusted_app
+#line 44
+  untrusted_app_25
+#line 44
+  untrusted_app_27
+#line 44
+  untrusted_app_29
+#line 44
+  untrusted_app_30
+#line 44
+  untrusted_app_all
+#line 44
+} -mediaprovider } property_socket:sock_file write;
+neverallow { {
+#line 45
+  ephemeral_app
+#line 45
+  isolated_app
+#line 45
+  isolated_app_all
+#line 45
+  isolated_compute_app
+#line 45
+  mediaprovider
+#line 45
+  mediaprovider_app
+#line 45
+  untrusted_app
+#line 45
+  untrusted_app_25
+#line 45
+  untrusted_app_27
+#line 45
+  untrusted_app_29
+#line 45
+  untrusted_app_30
+#line 45
+  untrusted_app_all
+#line 45
+} -mediaprovider } init:unix_stream_socket connectto;
+neverallow { {
+#line 46
+  ephemeral_app
+#line 46
+  isolated_app
+#line 46
+  isolated_app_all
+#line 46
+  isolated_compute_app
+#line 46
+  mediaprovider
+#line 46
+  mediaprovider_app
+#line 46
+  untrusted_app
+#line 46
+  untrusted_app_25
+#line 46
+  untrusted_app_27
+#line 46
+  untrusted_app_29
+#line 46
+  untrusted_app_30
+#line 46
+  untrusted_app_all
+#line 46
+} -mediaprovider } property_type:property_service set;
+
+# net.dns properties are not a public API. Disallow untrusted apps from reading this property.
+neverallow { {
+#line 49
+  ephemeral_app
+#line 49
+  isolated_app
+#line 49
+  isolated_app_all
+#line 49
+  isolated_compute_app
+#line 49
+  mediaprovider
+#line 49
+  mediaprovider_app
+#line 49
+  untrusted_app
+#line 49
+  untrusted_app_25
+#line 49
+  untrusted_app_27
+#line 49
+  untrusted_app_29
+#line 49
+  untrusted_app_30
+#line 49
+  untrusted_app_all
+#line 49
+} } net_dns_prop:file read;
+
+# radio_cdma_ecm_prop properties are not a public API. Disallow untrusted apps from reading this property.
+neverallow { {
+#line 52
+  ephemeral_app
+#line 52
+  isolated_app
+#line 52
+  isolated_app_all
+#line 52
+  isolated_compute_app
+#line 52
+  mediaprovider
+#line 52
+  mediaprovider_app
+#line 52
+  untrusted_app
+#line 52
+  untrusted_app_25
+#line 52
+  untrusted_app_27
+#line 52
+  untrusted_app_29
+#line 52
+  untrusted_app_30
+#line 52
+  untrusted_app_all
+#line 52
+} } radio_cdma_ecm_prop:file read;
+
+# Shared libraries created by trusted components within an app home
+# directory can be dlopen()ed. To maintain the W^X property, these files
+# must never be writable to the app.
+neverallow {
+#line 57
+  ephemeral_app
+#line 57
+  isolated_app
+#line 57
+  isolated_app_all
+#line 57
+  isolated_compute_app
+#line 57
+  mediaprovider
+#line 57
+  mediaprovider_app
+#line 57
+  untrusted_app
+#line 57
+  untrusted_app_25
+#line 57
+  untrusted_app_27
+#line 57
+  untrusted_app_29
+#line 57
+  untrusted_app_30
+#line 57
+  untrusted_app_all
+#line 57
+} app_exec_data_file:file
+  { append create link relabelfrom relabelto rename setattr write };
+
+# Block calling execve() on files in an apps home directory.
+# This is a W^X violation (loading executable code from a writable
+# home directory). For compatibility, allow for targetApi <= 28.
+# b/112357170
+neverallow {
+  {
+#line 65
+  ephemeral_app
+#line 65
+  isolated_app
+#line 65
+  isolated_app_all
+#line 65
+  isolated_compute_app
+#line 65
+  mediaprovider
+#line 65
+  mediaprovider_app
+#line 65
+  untrusted_app
+#line 65
+  untrusted_app_25
+#line 65
+  untrusted_app_27
+#line 65
+  untrusted_app_29
+#line 65
+  untrusted_app_30
+#line 65
+  untrusted_app_all
+#line 65
+}
+  -untrusted_app_25
+  -untrusted_app_27
+  -runas_app
+} { app_data_file privapp_data_file }:file execute_no_trans;
+
+# Do not allow untrusted apps to invoke dex2oat. This was historically required
+# by ART for compiling secondary dex files but has been removed in Q.
+# Exempt legacy apps (targetApi<=28) for compatibility.
+neverallow {
+  {
+#line 75
+  ephemeral_app
+#line 75
+  isolated_app
+#line 75
+  isolated_app_all
+#line 75
+  isolated_compute_app
+#line 75
+  mediaprovider
+#line 75
+  mediaprovider_app
+#line 75
+  untrusted_app
+#line 75
+  untrusted_app_25
+#line 75
+  untrusted_app_27
+#line 75
+  untrusted_app_29
+#line 75
+  untrusted_app_30
+#line 75
+  untrusted_app_all
+#line 75
+}
+  -untrusted_app_25
+  -untrusted_app_27
+} dex2oat_exec:file { execute execute_no_trans };
+
+# Do not allow untrusted apps to be assigned mlstrustedsubject.
+# This would undermine the per-user isolation model being
+# enforced via levelFrom=user in seapp_contexts and the mls
+# constraints.  As there is no direct way to specify a neverallow
+# on attribute assignment, this relies on the fact that fork
+# permission only makes sense within a domain (hence should
+# never be granted to any other domain within mlstrustedsubject)
+# and an untrusted app is allowed fork permission to itself.
+neverallow {
+#line 88
+  ephemeral_app
+#line 88
+  isolated_app
+#line 88
+  isolated_app_all
+#line 88
+  isolated_compute_app
+#line 88
+  mediaprovider
+#line 88
+  mediaprovider_app
+#line 88
+  untrusted_app
+#line 88
+  untrusted_app_25
+#line 88
+  untrusted_app_27
+#line 88
+  untrusted_app_29
+#line 88
+  untrusted_app_30
+#line 88
+  untrusted_app_all
+#line 88
+} mlstrustedsubject:process fork;
+
+# Do not allow untrusted apps to hard link to any files.
+# In particular, if an untrusted app links to other app data
+# files, installd will not be able to guarantee the deletion
+# of the linked to file. Hard links also contribute to security
+# bugs, so we want to ensure untrusted apps never have this
+# capability.
+neverallow {
+#line 96
+  ephemeral_app
+#line 96
+  isolated_app
+#line 96
+  isolated_app_all
+#line 96
+  isolated_compute_app
+#line 96
+  mediaprovider
+#line 96
+  mediaprovider_app
+#line 96
+  untrusted_app
+#line 96
+  untrusted_app_25
+#line 96
+  untrusted_app_27
+#line 96
+  untrusted_app_29
+#line 96
+  untrusted_app_30
+#line 96
+  untrusted_app_all
+#line 96
+} file_type:file link;
+
+# Do not allow untrusted apps to access network MAC address file
+neverallow {
+#line 99
+  ephemeral_app
+#line 99
+  isolated_app
+#line 99
+  isolated_app_all
+#line 99
+  isolated_compute_app
+#line 99
+  mediaprovider
+#line 99
+  mediaprovider_app
+#line 99
+  untrusted_app
+#line 99
+  untrusted_app_25
+#line 99
+  untrusted_app_27
+#line 99
+  untrusted_app_29
+#line 99
+  untrusted_app_30
+#line 99
+  untrusted_app_all
+#line 99
+} sysfs_net:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Do not allow any write access to files in /sys
+neverallow {
+#line 102
+  ephemeral_app
+#line 102
+  isolated_app
+#line 102
+  isolated_app_all
+#line 102
+  isolated_compute_app
+#line 102
+  mediaprovider
+#line 102
+  mediaprovider_app
+#line 102
+  untrusted_app
+#line 102
+  untrusted_app_25
+#line 102
+  untrusted_app_27
+#line 102
+  untrusted_app_29
+#line 102
+  untrusted_app_30
+#line 102
+  untrusted_app_all
+#line 102
+} sysfs_type:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } };
+
+# Apps may never access the default sysfs label.
+neverallow {
+#line 105
+  ephemeral_app
+#line 105
+  isolated_app
+#line 105
+  isolated_app_all
+#line 105
+  isolated_compute_app
+#line 105
+  mediaprovider
+#line 105
+  mediaprovider_app
+#line 105
+  untrusted_app
+#line 105
+  untrusted_app_25
+#line 105
+  untrusted_app_27
+#line 105
+  untrusted_app_29
+#line 105
+  untrusted_app_30
+#line 105
+  untrusted_app_all
+#line 105
+} sysfs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Restrict socket ioctls. Either 1. disallow privileged ioctls, 2. disallow the
+# ioctl permission, or 3. disallow the socket class.
+neverallowxperm {
+#line 109
+  ephemeral_app
+#line 109
+  isolated_app
+#line 109
+  isolated_app_all
+#line 109
+  isolated_compute_app
+#line 109
+  mediaprovider
+#line 109
+  mediaprovider_app
+#line 109
+  untrusted_app
+#line 109
+  untrusted_app_25
+#line 109
+  untrusted_app_27
+#line 109
+  untrusted_app_29
+#line 109
+  untrusted_app_30
+#line 109
+  untrusted_app_all
+#line 109
+} domain:{ icmp_socket rawip_socket tcp_socket udp_socket } ioctl 
+#line 109
+{
+#line 109
+# qualcomm rmnet ioctls
+#line 109
+0x00006900 0x00006902
+#line 109
+# socket ioctls
+#line 109
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 109
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 109
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 109
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 109
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 109
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 109
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 109
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 109
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 109
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 109
+# device and protocol specific ioctls
+#line 109
+0x000089f0-0x000089ff
+#line 109
+0x000089e0-0x000089ef
+#line 109
+# Wireless extension ioctls
+#line 109
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 109
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 109
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 109
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 109
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 109
+0x00008b34 0x00008b35 0x00008b36
+#line 109
+# Dev private ioctl i.e. hardware specific ioctls
+#line 109
+0x00008be0-0x00008bff
+#line 109
+};
+neverallow {
+#line 110
+  ephemeral_app
+#line 110
+  isolated_app
+#line 110
+  isolated_app_all
+#line 110
+  isolated_compute_app
+#line 110
+  mediaprovider
+#line 110
+  mediaprovider_app
+#line 110
+  untrusted_app
+#line 110
+  untrusted_app_25
+#line 110
+  untrusted_app_27
+#line 110
+  untrusted_app_29
+#line 110
+  untrusted_app_30
+#line 110
+  untrusted_app_all
+#line 110
+} *:{ netlink_route_socket netlink_selinux_socket } ioctl;
+neverallow {
+#line 111
+  ephemeral_app
+#line 111
+  isolated_app
+#line 111
+  isolated_app_all
+#line 111
+  isolated_compute_app
+#line 111
+  mediaprovider
+#line 111
+  mediaprovider_app
+#line 111
+  untrusted_app
+#line 111
+  untrusted_app_25
+#line 111
+  untrusted_app_27
+#line 111
+  untrusted_app_29
+#line 111
+  untrusted_app_30
+#line 111
+  untrusted_app_all
+#line 111
+} *:{
+  socket netlink_socket packet_socket key_socket appletalk_socket
+  netlink_tcpdiag_socket netlink_nflog_socket
+  netlink_xfrm_socket netlink_audit_socket
+  netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket
+  netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket
+  netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket
+  netlink_rdma_socket netlink_crypto_socket sctp_socket
+  ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket
+  atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket
+  bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket
+  alg_socket nfc_socket kcm_socket qipcrtr_socket smc_socket xdp_socket
+} *;
+
+# Apps can read/write an already open vsock (e.g. created by
+# virtualizationservice) but nothing more than that (e.g. creating a
+# new vsock, etc.)
+neverallow {
+#line 128
+  ephemeral_app
+#line 128
+  isolated_app
+#line 128
+  isolated_app_all
+#line 128
+  isolated_compute_app
+#line 128
+  mediaprovider
+#line 128
+  mediaprovider_app
+#line 128
+  untrusted_app
+#line 128
+  untrusted_app_25
+#line 128
+  untrusted_app_27
+#line 128
+  untrusted_app_29
+#line 128
+  untrusted_app_30
+#line 128
+  untrusted_app_all
+#line 128
+} *:vsock_socket ~{ getattr getopt read write };
+
+# Disallow sending RTM_GETLINK messages on netlink sockets.
+neverallow {
+#line 131
+  ephemeral_app
+#line 131
+  isolated_app
+#line 131
+  isolated_app_all
+#line 131
+  isolated_compute_app
+#line 131
+  mediaprovider
+#line 131
+  mediaprovider_app
+#line 131
+  untrusted_app
+#line 131
+  untrusted_app_25
+#line 131
+  untrusted_app_27
+#line 131
+  untrusted_app_29
+#line 131
+  untrusted_app_30
+#line 131
+  untrusted_app_all
+#line 131
+} domain:netlink_route_socket { bind nlmsg_readpriv };
+neverallow priv_app domain:netlink_route_socket { bind nlmsg_readpriv };
+
+# Disallow sending RTM_GETNEIGH{TBL} messages on netlink sockets.
+neverallow {
+  {
+#line 136
+  ephemeral_app
+#line 136
+  isolated_app
+#line 136
+  isolated_app_all
+#line 136
+  isolated_compute_app
+#line 136
+  mediaprovider
+#line 136
+  mediaprovider_app
+#line 136
+  untrusted_app
+#line 136
+  untrusted_app_25
+#line 136
+  untrusted_app_27
+#line 136
+  untrusted_app_29
+#line 136
+  untrusted_app_30
+#line 136
+  untrusted_app_all
+#line 136
+}
+  -untrusted_app_25
+  -untrusted_app_27
+  -untrusted_app_29
+  -untrusted_app_30
+} domain:netlink_route_socket nlmsg_getneigh;
+
+# Do not allow untrusted apps access to /cache
+neverallow { {
+#line 144
+  ephemeral_app
+#line 144
+  isolated_app
+#line 144
+  isolated_app_all
+#line 144
+  isolated_compute_app
+#line 144
+  mediaprovider
+#line 144
+  mediaprovider_app
+#line 144
+  untrusted_app
+#line 144
+  untrusted_app_25
+#line 144
+  untrusted_app_27
+#line 144
+  untrusted_app_29
+#line 144
+  untrusted_app_30
+#line 144
+  untrusted_app_all
+#line 144
+} -mediaprovider } { cache_file cache_recovery_file }:dir ~{ { open getattr read search ioctl lock watch watch_reads } };
+neverallow { {
+#line 145
+  ephemeral_app
+#line 145
+  isolated_app
+#line 145
+  isolated_app_all
+#line 145
+  isolated_compute_app
+#line 145
+  mediaprovider
+#line 145
+  mediaprovider_app
+#line 145
+  untrusted_app
+#line 145
+  untrusted_app_25
+#line 145
+  untrusted_app_27
+#line 145
+  untrusted_app_29
+#line 145
+  untrusted_app_30
+#line 145
+  untrusted_app_all
+#line 145
+} -mediaprovider } { cache_file cache_recovery_file }:file ~{ read getattr };
+
+# Do not allow untrusted apps to create/unlink files outside of its sandbox,
+# internal storage or sdcard.
+# World accessible data locations allow application to fill the device
+# with unaccounted for data. This data will not get removed during
+# application un-installation.
+neverallow { {
+#line 152
+  ephemeral_app
+#line 152
+  isolated_app
+#line 152
+  isolated_app_all
+#line 152
+  isolated_compute_app
+#line 152
+  mediaprovider
+#line 152
+  mediaprovider_app
+#line 152
+  untrusted_app
+#line 152
+  untrusted_app_25
+#line 152
+  untrusted_app_27
+#line 152
+  untrusted_app_29
+#line 152
+  untrusted_app_30
+#line 152
+  untrusted_app_all
+#line 152
+} -mediaprovider } {
+  fs_type
+  -sdcard_type
+  -fuse
+  file_type
+  -app_data_file            # The apps sandbox itself
+  -privapp_data_file
+  -app_exec_data_file       # stored within the app sandbox directory
+  -media_rw_data_file       # Internal storage. Known that apps can
+                            # leave artfacts here after uninstall.
+  -user_profile_data_file   # Access to profile files
+  
+#line 167
+}:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create unlink };
+
+# No untrusted component except mediaprovider_app should be touching /dev/fuse
+neverallow { {
+#line 170
+  ephemeral_app
+#line 170
+  isolated_app
+#line 170
+  isolated_app_all
+#line 170
+  isolated_compute_app
+#line 170
+  mediaprovider
+#line 170
+  mediaprovider_app
+#line 170
+  untrusted_app
+#line 170
+  untrusted_app_25
+#line 170
+  untrusted_app_27
+#line 170
+  untrusted_app_29
+#line 170
+  untrusted_app_30
+#line 170
+  untrusted_app_all
+#line 170
+} -mediaprovider_app } fuse_device:chr_file *;
+
+# Do not allow untrusted apps to directly open the tun_device
+neverallow {
+#line 173
+  ephemeral_app
+#line 173
+  isolated_app
+#line 173
+  isolated_app_all
+#line 173
+  isolated_compute_app
+#line 173
+  mediaprovider
+#line 173
+  mediaprovider_app
+#line 173
+  untrusted_app
+#line 173
+  untrusted_app_25
+#line 173
+  untrusted_app_27
+#line 173
+  untrusted_app_29
+#line 173
+  untrusted_app_30
+#line 173
+  untrusted_app_all
+#line 173
+} tun_device:chr_file open;
+# The tun_device ioctls below are not allowed, to prove equivalence
+# to the kernel patch at
+# https://android.googlesource.com/kernel/common/+/11cee2be0c2062ba88f04eb51196506f870a3b5d%5E%21
+neverallowxperm {
+#line 177
+  ephemeral_app
+#line 177
+  isolated_app
+#line 177
+  isolated_app_all
+#line 177
+  isolated_compute_app
+#line 177
+  mediaprovider
+#line 177
+  mediaprovider_app
+#line 177
+  untrusted_app
+#line 177
+  untrusted_app_25
+#line 177
+  untrusted_app_27
+#line 177
+  untrusted_app_29
+#line 177
+  untrusted_app_30
+#line 177
+  untrusted_app_all
+#line 177
+} tun_device:chr_file ioctl ~{ 0x00005451 0x00005450 0x800454d2 };
+
+# Only allow appending to /data/anr/traces.txt (b/27853304, b/18340553)
+neverallow {
+#line 180
+  ephemeral_app
+#line 180
+  isolated_app
+#line 180
+  isolated_app_all
+#line 180
+  isolated_compute_app
+#line 180
+  mediaprovider
+#line 180
+  mediaprovider_app
+#line 180
+  untrusted_app
+#line 180
+  untrusted_app_25
+#line 180
+  untrusted_app_27
+#line 180
+  untrusted_app_29
+#line 180
+  untrusted_app_30
+#line 180
+  untrusted_app_all
+#line 180
+} anr_data_file:file ~{ open append };
+neverallow {
+#line 181
+  ephemeral_app
+#line 181
+  isolated_app
+#line 181
+  isolated_app_all
+#line 181
+  isolated_compute_app
+#line 181
+  mediaprovider
+#line 181
+  mediaprovider_app
+#line 181
+  untrusted_app
+#line 181
+  untrusted_app_25
+#line 181
+  untrusted_app_27
+#line 181
+  untrusted_app_29
+#line 181
+  untrusted_app_30
+#line 181
+  untrusted_app_all
+#line 181
+} anr_data_file:dir ~search;
+
+# Avoid reads from generically labeled /proc files
+# Create a more specific label if needed
+neverallow {
+#line 185
+  ephemeral_app
+#line 185
+  isolated_app
+#line 185
+  isolated_app_all
+#line 185
+  isolated_compute_app
+#line 185
+  mediaprovider
+#line 185
+  mediaprovider_app
+#line 185
+  untrusted_app
+#line 185
+  untrusted_app_25
+#line 185
+  untrusted_app_27
+#line 185
+  untrusted_app_29
+#line 185
+  untrusted_app_30
+#line 185
+  untrusted_app_all
+#line 185
+} {
+  proc
+  proc_asound
+  proc_kmsg
+  proc_loadavg
+  proc_mounts
+  proc_pagetypeinfo
+  proc_slabinfo
+  proc_stat
+  proc_swaps
+  proc_uptime
+  proc_version
+  proc_vmallocinfo
+  proc_vmstat
+}:file { { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads } { execute execute_no_trans } };
+
+# /proc/filesystems is accessible to mediaprovider_app only since it handles
+# external storage
+neverallow { {
+#line 203
+  ephemeral_app
+#line 203
+  isolated_app
+#line 203
+  isolated_app_all
+#line 203
+  isolated_compute_app
+#line 203
+  mediaprovider
+#line 203
+  mediaprovider_app
+#line 203
+  untrusted_app
+#line 203
+  untrusted_app_25
+#line 203
+  untrusted_app_27
+#line 203
+  untrusted_app_29
+#line 203
+  untrusted_app_30
+#line 203
+  untrusted_app_all
+#line 203
+} - mediaprovider_app } proc_filesystems:file { { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads } { execute execute_no_trans } };
+
+# Avoid all access to kernel configuration
+neverallow {
+#line 206
+  ephemeral_app
+#line 206
+  isolated_app
+#line 206
+  isolated_app_all
+#line 206
+  isolated_compute_app
+#line 206
+  mediaprovider
+#line 206
+  mediaprovider_app
+#line 206
+  untrusted_app
+#line 206
+  untrusted_app_25
+#line 206
+  untrusted_app_27
+#line 206
+  untrusted_app_29
+#line 206
+  untrusted_app_30
+#line 206
+  untrusted_app_all
+#line 206
+} config_gz:file { { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads } { execute execute_no_trans } };
+
+# Do not allow untrusted apps access to preloads data files
+neverallow {
+#line 209
+  ephemeral_app
+#line 209
+  isolated_app
+#line 209
+  isolated_app_all
+#line 209
+  isolated_compute_app
+#line 209
+  mediaprovider
+#line 209
+  mediaprovider_app
+#line 209
+  untrusted_app
+#line 209
+  untrusted_app_25
+#line 209
+  untrusted_app_27
+#line 209
+  untrusted_app_29
+#line 209
+  untrusted_app_30
+#line 209
+  untrusted_app_all
+#line 209
+} preloads_data_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Locking of files on /system could lead to denial of service attacks
+# against privileged system components
+neverallow {
+#line 213
+  ephemeral_app
+#line 213
+  isolated_app
+#line 213
+  isolated_app_all
+#line 213
+  isolated_compute_app
+#line 213
+  mediaprovider
+#line 213
+  mediaprovider_app
+#line 213
+  untrusted_app
+#line 213
+  untrusted_app_25
+#line 213
+  untrusted_app_27
+#line 213
+  untrusted_app_29
+#line 213
+  untrusted_app_30
+#line 213
+  untrusted_app_all
+#line 213
+} system_file:file lock;
+
+# Do not permit untrusted apps to perform actions on HwBinder service_manager
+# other than find actions for services listed below
+neverallow {
+#line 217
+  ephemeral_app
+#line 217
+  isolated_app
+#line 217
+  isolated_app_all
+#line 217
+  isolated_compute_app
+#line 217
+  mediaprovider
+#line 217
+  mediaprovider_app
+#line 217
+  untrusted_app
+#line 217
+  untrusted_app_25
+#line 217
+  untrusted_app_27
+#line 217
+  untrusted_app_29
+#line 217
+  untrusted_app_30
+#line 217
+  untrusted_app_all
+#line 217
+} *:hwservice_manager ~find;
+
+# Do not permit access from apps which host arbitrary code to the protected services
+# The two main reasons for this are:
+# 1. Protected HwBinder servers do not perform client authentication because
+#    vendor code does not have a way to understand apps or their relation to
+#    caller UID information and, even if it did, those services either operate
+#    at a level below that of apps (e.g., HALs) or must not rely on app identity
+#    for authorization. Thus, to be safe, the default assumption for all added
+#    vendor services is that they treat all their clients as equally authorized
+#    to perform operations offered by the service.
+# 2. HAL servers contain code with higher incidence rate of security issues
+#    than system/core components and have access to lower layes of the stack
+#    (all the way down to hardware) thus increasing opportunities for bypassing
+#    the Android security model.
+neverallow {
+#line 232
+  ephemeral_app
+#line 232
+  isolated_app
+#line 232
+  isolated_app_all
+#line 232
+  isolated_compute_app
+#line 232
+  mediaprovider
+#line 232
+  mediaprovider_app
+#line 232
+  untrusted_app
+#line 232
+  untrusted_app_25
+#line 232
+  untrusted_app_27
+#line 232
+  untrusted_app_29
+#line 232
+  untrusted_app_30
+#line 232
+  untrusted_app_all
+#line 232
+} protected_hwservice:hwservice_manager find;
+neverallow {
+#line 233
+  ephemeral_app
+#line 233
+  isolated_app
+#line 233
+  isolated_app_all
+#line 233
+  isolated_compute_app
+#line 233
+  mediaprovider
+#line 233
+  mediaprovider_app
+#line 233
+  untrusted_app
+#line 233
+  untrusted_app_25
+#line 233
+  untrusted_app_27
+#line 233
+  untrusted_app_29
+#line 233
+  untrusted_app_30
+#line 233
+  untrusted_app_all
+#line 233
+} protected_service:service_manager find;
+
+# SELinux is not an API for untrusted apps to use
+neverallow {
+#line 236
+  ephemeral_app
+#line 236
+  isolated_app
+#line 236
+  isolated_app_all
+#line 236
+  isolated_compute_app
+#line 236
+  mediaprovider
+#line 236
+  mediaprovider_app
+#line 236
+  untrusted_app
+#line 236
+  untrusted_app_25
+#line 236
+  untrusted_app_27
+#line 236
+  untrusted_app_29
+#line 236
+  untrusted_app_30
+#line 236
+  untrusted_app_all
+#line 236
+} selinuxfs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Access to /proc/tty/drivers, to allow apps to determine if they
+# are running in an emulated environment.
+# b/33214085 b/33814662 b/33791054 b/33211769
+# https://github.com/strazzere/anti-emulator/blob/master/AntiEmulator/src/diff/strazzere/anti/emulator/FindEmulator.java
+# This will go away in a future Android release
+neverallow { {
+#line 243
+  ephemeral_app
+#line 243
+  isolated_app
+#line 243
+  isolated_app_all
+#line 243
+  isolated_compute_app
+#line 243
+  mediaprovider
+#line 243
+  mediaprovider_app
+#line 243
+  untrusted_app
+#line 243
+  untrusted_app_25
+#line 243
+  untrusted_app_27
+#line 243
+  untrusted_app_29
+#line 243
+  untrusted_app_30
+#line 243
+  untrusted_app_all
+#line 243
+} -untrusted_app_25 } proc_tty_drivers:file { getattr open read ioctl lock map watch watch_reads };
+neverallow {
+#line 244
+  ephemeral_app
+#line 244
+  isolated_app
+#line 244
+  isolated_app_all
+#line 244
+  isolated_compute_app
+#line 244
+  mediaprovider
+#line 244
+  mediaprovider_app
+#line 244
+  untrusted_app
+#line 244
+  untrusted_app_25
+#line 244
+  untrusted_app_27
+#line 244
+  untrusted_app_29
+#line 244
+  untrusted_app_30
+#line 244
+  untrusted_app_all
+#line 244
+} proc_tty_drivers:file ~{ getattr open read ioctl lock map watch watch_reads };
+
+# Untrusted apps are not allowed to use cgroups.
+neverallow {
+#line 247
+  ephemeral_app
+#line 247
+  isolated_app
+#line 247
+  isolated_app_all
+#line 247
+  isolated_compute_app
+#line 247
+  mediaprovider
+#line 247
+  mediaprovider_app
+#line 247
+  untrusted_app
+#line 247
+  untrusted_app_25
+#line 247
+  untrusted_app_27
+#line 247
+  untrusted_app_29
+#line 247
+  untrusted_app_30
+#line 247
+  untrusted_app_all
+#line 247
+} cgroup:file *;
+neverallow {
+#line 248
+  ephemeral_app
+#line 248
+  isolated_app
+#line 248
+  isolated_app_all
+#line 248
+  isolated_compute_app
+#line 248
+  mediaprovider
+#line 248
+  mediaprovider_app
+#line 248
+  untrusted_app
+#line 248
+  untrusted_app_25
+#line 248
+  untrusted_app_27
+#line 248
+  untrusted_app_29
+#line 248
+  untrusted_app_30
+#line 248
+  untrusted_app_all
+#line 248
+} cgroup_v2:file *;
+
+# /mnt/sdcard symlink was supposed to have been removed in Gingerbread. Apps
+# must not use it.
+neverallow {
+  {
+#line 253
+  ephemeral_app
+#line 253
+  isolated_app
+#line 253
+  isolated_app_all
+#line 253
+  isolated_compute_app
+#line 253
+  mediaprovider
+#line 253
+  mediaprovider_app
+#line 253
+  untrusted_app
+#line 253
+  untrusted_app_25
+#line 253
+  untrusted_app_27
+#line 253
+  untrusted_app_29
+#line 253
+  untrusted_app_30
+#line 253
+  untrusted_app_all
+#line 253
+}
+  -untrusted_app_25
+  -untrusted_app_27
+} mnt_sdcard_file:lnk_file *;
+
+# Only privileged apps may find the incident service
+neverallow {
+#line 259
+  ephemeral_app
+#line 259
+  isolated_app
+#line 259
+  isolated_app_all
+#line 259
+  isolated_compute_app
+#line 259
+  mediaprovider
+#line 259
+  mediaprovider_app
+#line 259
+  untrusted_app
+#line 259
+  untrusted_app_25
+#line 259
+  untrusted_app_27
+#line 259
+  untrusted_app_29
+#line 259
+  untrusted_app_30
+#line 259
+  untrusted_app_all
+#line 259
+} incident_service:service_manager find;
+
+# Only privileged apps may find stats service
+neverallow {
+#line 262
+  ephemeral_app
+#line 262
+  isolated_app
+#line 262
+  isolated_app_all
+#line 262
+  isolated_compute_app
+#line 262
+  mediaprovider
+#line 262
+  mediaprovider_app
+#line 262
+  untrusted_app
+#line 262
+  untrusted_app_25
+#line 262
+  untrusted_app_27
+#line 262
+  untrusted_app_29
+#line 262
+  untrusted_app_30
+#line 262
+  untrusted_app_all
+#line 262
+} stats_service:service_manager find;
+
+# Do not allow untrusted app to read hidden system proprerties.
+# We do not include in the exclusions other normally untrusted applications such as mediaprovider
+#  due to the specific logging use cases.
+# Context: b/193912100
+neverallow {
+  {
+#line 269
+  ephemeral_app
+#line 269
+  isolated_app
+#line 269
+  isolated_app_all
+#line 269
+  isolated_compute_app
+#line 269
+  mediaprovider
+#line 269
+  mediaprovider_app
+#line 269
+  untrusted_app
+#line 269
+  untrusted_app_25
+#line 269
+  untrusted_app_27
+#line 269
+  untrusted_app_29
+#line 269
+  untrusted_app_30
+#line 269
+  untrusted_app_all
+#line 269
+}
+  -mediaprovider
+  -mediaprovider_app
+} { userdebug_or_eng_prop }:file read;
+
+# Do not allow untrusted app to access /dev/socket/mdnsd since U. The socket is
+# used to communicate to the mdnsd responder. The mdnsd responder will be
+# replaced by a java implementation which is integrated into the system server.
+# For untrusted apps running with API level 33-, they still have access to
+# /dev/socket/mdnsd for backward compatibility.
+neverallow {
+  {
+#line 280
+  ephemeral_app
+#line 280
+  isolated_app
+#line 280
+  isolated_app_all
+#line 280
+  isolated_compute_app
+#line 280
+  mediaprovider
+#line 280
+  mediaprovider_app
+#line 280
+  untrusted_app
+#line 280
+  untrusted_app_25
+#line 280
+  untrusted_app_27
+#line 280
+  untrusted_app_29
+#line 280
+  untrusted_app_30
+#line 280
+  untrusted_app_all
+#line 280
+}
+  -untrusted_app_25
+  -untrusted_app_27
+  -untrusted_app_29
+  -untrusted_app_30
+  -untrusted_app_32
+} mdnsd_socket:sock_file write;
+neverallow {
+  {
+#line 288
+  ephemeral_app
+#line 288
+  isolated_app
+#line 288
+  isolated_app_all
+#line 288
+  isolated_compute_app
+#line 288
+  mediaprovider
+#line 288
+  mediaprovider_app
+#line 288
+  untrusted_app
+#line 288
+  untrusted_app_25
+#line 288
+  untrusted_app_27
+#line 288
+  untrusted_app_29
+#line 288
+  untrusted_app_30
+#line 288
+  untrusted_app_all
+#line 288
+}
+  -untrusted_app_25
+  -untrusted_app_27
+  -untrusted_app_29
+  -untrusted_app_30
+  -untrusted_app_32
+} mdnsd:unix_stream_socket connectto;
+
+# Do not allow untrusted apps to use anonymous inodes. At the moment,
+# type transitions are the only way to distinguish between different
+# anon_inode usages like userfaultfd and io_uring. This prevents us from
+# creating a more fine-grained neverallow policy for each anon_inode usage.
+neverallow {
+#line 300
+  ephemeral_app
+#line 300
+  isolated_app
+#line 300
+  isolated_app_all
+#line 300
+  isolated_compute_app
+#line 300
+  mediaprovider
+#line 300
+  mediaprovider_app
+#line 300
+  untrusted_app
+#line 300
+  untrusted_app_25
+#line 300
+  untrusted_app_27
+#line 300
+  untrusted_app_29
+#line 300
+  untrusted_app_30
+#line 300
+  untrusted_app_all
+#line 300
+} domain:anon_inode *;
+
+# Do not allow untrusted app access to hidraw devices.
+neverallow {
+#line 303
+  ephemeral_app
+#line 303
+  isolated_app
+#line 303
+  isolated_app_all
+#line 303
+  isolated_compute_app
+#line 303
+  mediaprovider
+#line 303
+  mediaprovider_app
+#line 303
+  untrusted_app
+#line 303
+  untrusted_app_25
+#line 303
+  untrusted_app_27
+#line 303
+  untrusted_app_29
+#line 303
+  untrusted_app_30
+#line 303
+  untrusted_app_all
+#line 303
+} hidraw_device:chr_file *;
+#line 1 "system/sepolicy/private/app_zygote.te"
+typeattribute app_zygote coredomain;
+
+######
+###### Policy below is different from regular zygote-spawned apps
+######
+
+# Allow access to temporary files, which is normally permitted through
+# a domain macro.
+
+#line 9
+type_transition app_zygote tmpfs:file app_zygote_tmpfs;
+#line 9
+allow app_zygote app_zygote_tmpfs:file { read write getattr map };
+#line 9
+;
+
+# Set the UID/GID of the process.
+# This will be further limited to a range of isolated UIDs with seccomp.
+allow app_zygote self:{ capability cap_userns } { setgid setuid };
+# Drop capabilities from bounding set.
+allow app_zygote self:{ capability cap_userns } setpcap;
+# Switch SELinux context to isolated app domain.
+allow app_zygote self:process setcurrent;
+allow app_zygote isolated_app:process dyntransition;
+
+# For JIT
+allow app_zygote self:process execmem;
+
+# Allow exec mapping from tmpfs (memfds) for binary translation
+allow app_zygote app_zygote_tmpfs:file execute;
+
+# Allow app_zygote to stat the files that it opens. It must
+# be able to inspect them so that it can reopen them on fork
+# if necessary: b/30963384.
+allow app_zygote debugfs_trace_marker:file getattr;
+
+# get system_server process group
+allow app_zygote system_server:process getpgid;
+
+# Interaction between the app_zygote and its children.
+allow app_zygote isolated_app:process setpgid;
+
+# TODO (b/63631799) fix this access
+dontaudit app_zygote mnt_expand_file:dir getattr;
+
+# Get seapp_contexts
+allow app_zygote seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+# Check validity of SELinux context before use.
+
+#line 43
+
+#line 43
+allow app_zygote selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 43
+allow app_zygote selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 43
+
+#line 43
+allow app_zygote selinuxfs:file { open append write lock map };
+#line 43
+allow app_zygote kernel:security check_context;
+#line 43
+
+# Check SELinux permissions.
+
+#line 45
+
+#line 45
+allow app_zygote selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 45
+allow app_zygote selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 45
+
+#line 45
+allow app_zygote selinuxfs:file { open append write lock map };
+#line 45
+allow app_zygote kernel:security compute_av;
+#line 45
+allow app_zygote self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 45
+
+
+# Read and inspect temporary files managed by zygote.
+allow app_zygote zygote_tmpfs:file { read getattr };
+
+######
+###### Policy below is shared with regular zygote-spawned apps
+######
+
+# Child of zygote.
+allow app_zygote zygote:fd use;
+allow app_zygote zygote:process sigchld;
+
+# For ART (read /data/dalvik-cache).
+
+#line 59
+allow app_zygote dalvikcache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 59
+allow app_zygote dalvikcache_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 59
+;
+allow app_zygote dalvikcache_data_file:file execute;
+
+# For ART (allow userfaultfd and related ioctls)
+
+#line 63
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 63
+type app_zygote_userfaultfd;
+#line 63
+type_transition app_zygote app_zygote:anon_inode app_zygote_userfaultfd "[userfaultfd]";
+#line 63
+# Allow domain to create/use userfaultfd anon_inode.
+#line 63
+allow app_zygote app_zygote_userfaultfd:anon_inode { create ioctl read };
+#line 63
+# Suppress errors generate during bugreport
+#line 63
+dontaudit su app_zygote_userfaultfd:anon_inode *;
+#line 63
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 63
+neverallow { domain -app_zygote } app_zygote_userfaultfd:anon_inode *;
+#line 63
+
+
+# Read /data/misc/apexdata/ to (get to com.android.art/dalvik-cache).
+allow app_zygote apex_module_data_file:dir search;
+# For ART APEX (read /data/misc/apexdata/com.android.art/dalvik-cache).
+
+#line 68
+allow app_zygote apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 68
+allow app_zygote apex_art_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 68
+
+
+# Allow reading/executing installed binaries to enable preloading
+# application data
+allow app_zygote apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow app_zygote apk_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+
+# /oem accesses.
+allow app_zygote oemfs:dir search;
+
+# Allow app_zygote access to /vendor/overlay
+
+#line 79
+allow app_zygote vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 79
+allow app_zygote vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 79
+
+# Allow app_zygote to read vendor_overlay_file from vendor apex as well
+allow app_zygote vendor_apex_metadata_file:dir { getattr search };
+
+allow app_zygote system_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow app_zygote system_data_file:file { getattr read map };
+
+# Send unsolicited message to system_server
+
+#line 87
+allow app_zygote system_unsolzygote_socket:sock_file write;
+#line 87
+allow app_zygote system_server:unix_dgram_socket sendto;
+#line 87
+
+
+# Allow the app_zygote to access the runtime feature flag properties.
+
+#line 90
+allow app_zygote device_config_runtime_native_prop:file { getattr open read map };
+#line 90
+
+
+#line 91
+allow app_zygote device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 91
+
+
+# Allow app_zygote to access odsign verification status
+
+#line 94
+allow app_zygote odsign_prop:file { getattr open read map };
+#line 94
+
+
+# /data/resource-cache
+allow app_zygote resourcecache_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow app_zygote resourcecache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+#####
+##### Neverallow
+#####
+
+# Only permit transition to isolated_app.
+neverallow app_zygote { domain -isolated_app }:process dyntransition;
+
+# Only setcon() transitions, no exec() based transitions, except for crash_dump.
+neverallow app_zygote { domain -crash_dump }:process transition;
+
+# Must not exec() a program without changing domains.
+# Having said that, exec() above is not allowed.
+neverallow app_zygote *:file execute_no_trans;
+
+# The only way to enter this domain is for the zygote to fork a new
+# app_zygote child.
+neverallow { domain -zygote } app_zygote:process dyntransition;
+
+# Disallow write access to properties.
+neverallow app_zygote property_socket:sock_file write;
+neverallow app_zygote property_type:property_service set;
+
+# Should not have any access to data files.
+neverallow app_zygote app_data_file_type:file { { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } { getattr execute execute_no_trans map } } };
+
+neverallow app_zygote {
+    service_manager_type
+    -activity_service
+    -webviewupdate_service
+}:service_manager find;
+
+# Isolated apps should not be able to access the driver directly.
+neverallow app_zygote gpu_device:chr_file { { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } { getattr execute execute_no_trans map } } };
+
+# Do not allow app_zygote access to /cache.
+neverallow app_zygote cache_file:dir ~{ { open getattr read search ioctl lock watch watch_reads } };
+neverallow app_zygote cache_file:file ~{ read getattr };
+
+# Do not allow most socket access. This is socket_class_set, excluding unix_dgram_socket,
+# unix_stream_socket, and netlink_selinux_socket.
+neverallow app_zygote domain:{
+  socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket
+  appletalk_socket netlink_route_socket netlink_tcpdiag_socket
+  netlink_nflog_socket netlink_xfrm_socket netlink_audit_socket
+  netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket
+  netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket
+  netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket
+  sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket
+  x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket
+  pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket
+  rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket
+  alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket
+} *;
+
+# Only allow app_zygote to talk to the logd socket, and su on eng/userdebug.
+# This is because cap_setuid/cap_setgid allow to forge uid/gid in
+# SCM_CREDENTIALS. Think twice before changing.
+neverallow app_zygote {
+  domain
+  -app_zygote
+  -logd
+  -system_server
+  
+}:unix_dgram_socket *;
+
+neverallow app_zygote {
+  domain
+  -app_zygote
+  -prng_seeder
+  
+}:unix_stream_socket *;
+
+# Never allow ptrace
+neverallow app_zygote *:process ptrace;
+
+# Do not allow access to Bluetooth-related system properties.
+# neverallow rules for Bluetooth-related data files are listed above.
+neverallow app_zygote {
+  bluetooth_a2dp_offload_prop
+  bluetooth_audio_hal_prop
+  bluetooth_prop
+  exported_bluetooth_prop
+}:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+#line 1 "system/sepolicy/private/art_boot.te"
+# ART boot oneshot service
+type art_boot, domain, coredomain;
+type art_boot_exec, exec_type, file_type, system_file_type;
+
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init art_boot_exec:file { getattr open read execute map };
+#line 5
+allow init art_boot:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow art_boot art_boot_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init art_boot:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init art_boot:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init art_boot_exec:process art_boot;
+#line 5
+
+#line 5
+
+
+# Allow query of device config properties, typically experiment flags.
+
+#line 8
+allow art_boot device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 8
+
+
+#line 9
+allow art_boot device_config_runtime_native_prop:file { getattr open read map };
+#line 9
+
+
+# Allow ART to set its config properties at boot, mainly to be able to propagate
+# experiment flags to properties that only may change at boot.
+
+#line 13
+
+#line 13
+allow art_boot property_socket:sock_file write;
+#line 13
+allow art_boot init:unix_stream_socket connectto;
+#line 13
+
+#line 13
+allow art_boot dalvik_config_prop_type:property_service set;
+#line 13
+
+#line 13
+allow art_boot dalvik_config_prop_type:file { getattr open read map };
+#line 13
+
+#line 13
+
+#line 1 "system/sepolicy/private/artd.te"
+# ART service daemon.
+typeattribute artd coredomain;
+typeattribute artd mlstrustedsubject;
+type artd_exec, system_file_type, exec_type, file_type;
+type artd_tmpfs, file_type;
+
+# Allow artd to publish a binder service and make binder calls.
+
+#line 8
+# Call the servicemanager and transfer references to it.
+#line 8
+allow artd servicemanager:binder { call transfer };
+#line 8
+# Allow servicemanager to send out callbacks
+#line 8
+allow servicemanager artd:binder { call transfer };
+#line 8
+# servicemanager performs getpidcon on clients.
+#line 8
+allow servicemanager artd:dir search;
+#line 8
+allow servicemanager artd:file { read open };
+#line 8
+allow servicemanager artd:process getattr;
+#line 8
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 8
+# all domains in domain.te.
+#line 8
+
+
+#line 9
+  allow artd artd_service:service_manager { add find };
+#line 9
+  neverallow { domain -artd } artd_service:service_manager add;
+#line 9
+
+#line 9
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 9
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 9
+  
+#line 9
+
+
+#line 10
+  allow artd artd_pre_reboot_service:service_manager { add find };
+#line 10
+  neverallow { domain -artd } artd_pre_reboot_service:service_manager add;
+#line 10
+
+#line 10
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 10
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 10
+  
+#line 10
+
+allow artd dumpstate:fifo_file { getattr write };
+allow artd dumpstate:fd use;
+
+
+#line 14
+
+#line 14
+# Allow the necessary permissions.
+#line 14
+
+#line 14
+# Old domain may exec the file and transition to the new domain.
+#line 14
+allow init artd_exec:file { getattr open read execute map };
+#line 14
+allow init artd:process transition;
+#line 14
+# New domain is entered by executing the file.
+#line 14
+allow artd artd_exec:file { entrypoint open read execute getattr map };
+#line 14
+# New domain can send SIGCHLD to its caller.
+#line 14
+
+#line 14
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 14
+dontaudit init artd:process noatsecure;
+#line 14
+# XXX dontaudit candidate but requires further study.
+#line 14
+allow init artd:process { siginh rlimitinh };
+#line 14
+
+#line 14
+# Make the transition occur by default.
+#line 14
+type_transition init artd_exec:process artd;
+#line 14
+
+#line 14
+
+
+# Allow query ART device config properties
+
+#line 17
+allow artd device_config_runtime_native_prop:file { getattr open read map };
+#line 17
+
+
+#line 18
+allow artd device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 18
+
+
+# Access to "odsign.verification.success" for deciding whether to deny files in
+# the ART APEX data directory.
+
+#line 22
+allow artd odsign_prop:file { getattr open read map };
+#line 22
+
+
+# Reading an APK opens a ZipArchive, which unpack to tmpfs.
+# Use tmpfs_domain() which will give tmpfs files created by artd their
+# own label, which differs from other labels created by other processes.
+# This allows to distinguish in policy files created by artd vs other
+# processes.
+
+#line 29
+type_transition artd tmpfs:file artd_tmpfs;
+#line 29
+allow artd artd_tmpfs:file { read write getattr map };
+#line 29
+
+
+# Allow testing userfaultfd support.
+
+#line 32
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 32
+type artd_userfaultfd;
+#line 32
+type_transition artd artd:anon_inode artd_userfaultfd "[userfaultfd]";
+#line 32
+# Allow domain to create/use userfaultfd anon_inode.
+#line 32
+allow artd artd_userfaultfd:anon_inode { create ioctl read };
+#line 32
+# Suppress errors generate during bugreport
+#line 32
+dontaudit su artd_userfaultfd:anon_inode *;
+#line 32
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 32
+neverallow { domain -artd } artd_userfaultfd:anon_inode *;
+#line 32
+
+
+# Read access to primary dex'es on writable partitions
+# ({/data,/mnt/expand/<volume-uuid>}/app/...).
+# Also allow creating the "oat" directory before restorecon.
+allow artd mnt_expand_file:dir { getattr search };
+allow artd apk_data_file:dir { { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } create setattr relabelfrom };
+allow artd apk_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read access to vendor APKs ({/vendor,/odm}/{app,priv-app}/...).
+
+#line 42
+allow artd vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 42
+allow artd vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 42
+
+
+# Read access to vendor overlay APKs ({/vendor,/odm,/oem,/apex/*}/overlay/...).
+allow artd oemfs:dir { getattr search };
+
+#line 46
+allow artd vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 46
+allow artd vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 46
+
+# Vendor overlay can be found in vendor apex
+allow artd vendor_apex_metadata_file:dir { getattr search };
+
+# Read access to vendor shared libraries ({/vendor,/odm}/framework/...).
+
+#line 51
+allow artd vendor_framework_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 51
+allow artd vendor_framework_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 51
+
+
+# Read/write access to all compilation artifacts generated on device for apps'
+# primary dex'es. (/data/dalvik-cache/..., /data/app/.../oat/..., etc.)
+allow artd dalvikcache_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow artd dalvikcache_data_file:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelto };
+
+# Read access to the ART APEX data directory.
+# Needed for reading the boot image generated on device.
+allow artd apex_module_data_file:dir { getattr search };
+
+#line 61
+allow artd apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 61
+allow artd apex_art_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 61
+
+
+# Read access to /apex/apex-info-list.xml
+# Needed for getting APEX versions.
+allow artd apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow getting root capabilities to bypass permission checks.
+# - "dac_override" and "dac_read_search" are for
+#   - reading secondary dex'es in app data directories (reading primary dex'es
+#     doesn't need root capabilities)
+#   - managing (CRUD) compilation artifacts in both APK directories for primary
+#     dex'es and in app data directories for secondary dex'es
+#   - managing (CRUD) profile files for both primary dex'es and secondary dex'es
+# - "fowner" is for adjusting the file permissions of compilation artifacts and
+#   profile files based on whether they include user data or not.
+# - "chown" is for transferring the ownership of compilation artifacts and
+#   profile files to the system or apps.
+allow artd self:{ capability cap_userns } { dac_override dac_read_search fowner chown };
+
+# Read/write access to profiles (/data/misc/profiles/{ref,cur}/...). Also allow
+# scanning /data/misc/profiles/cur, for cleaning up obsolete managed files.
+allow artd user_profile_root_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow artd user_profile_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow artd user_profile_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Read/write access to secondary dex files, their profiles, and their
+# compilation artifacts
+# ({/data,/mnt/expand/<volume-uuid>}/{user,user_de}/<user-id>/<package-name>/...).
+allow artd app_data_file_type:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom relabelto };
+allow artd app_data_file_type:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } relabelfrom relabelto };
+
+# Allow symlinks for secondary dex files. This has be to restricted because
+# symlinks can cause various security issues. We allow "privapp_data_file" just
+# for GMS because so far we only see GMS using symlinks.
+allow artd privapp_data_file:lnk_file { getattr read };
+
+# Read access to SELinux context files, for restorecon.
+allow artd file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow artd seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Check validity of SELinux context, for restorecon.
+
+#line 102
+
+#line 102
+allow artd selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 102
+allow artd selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 102
+
+#line 102
+allow artd selinuxfs:file { open append write lock map };
+#line 102
+allow artd kernel:security check_context;
+#line 102
+
+
+# Allow scanning /, for cleaning up obsolete managed files.
+allow artd rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow scanning /data, for cleaning up obsolete managed files.
+allow artd system_data_root_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow scanning /mnt, for cleaning up obsolete managed files.
+allow artd tmpfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow scanning /mnt/expand, for cleaning up obsolete managed files.
+allow artd mnt_expand_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow scanning {/data,/mnt/expand/<volume-uuid>}/{user,user_de}, for cleaning
+# up obsolete managed files.
+allow artd system_userdir_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow scanning {/data,/mnt/expand/<volume-uuid>}/{user,user_de}/<user-id> and
+# /mnt/expand/<volume-uuid>, for cleaning up obsolete managed files.
+allow artd system_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Never allow running other binaries without a domain transition.
+# The only exception is art_exec. It is allowed to use the artd domain because
+# it is a thin wrapper that executes other binaries on behalf of artd.
+neverallow artd ~{art_exec_exec}:file execute_no_trans;
+allow artd art_exec_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow running other binaries in their own domains.
+
+#line 131
+# Allow the necessary permissions.
+#line 131
+
+#line 131
+# Old domain may exec the file and transition to the new domain.
+#line 131
+allow artd profman_exec:file { getattr open read execute map };
+#line 131
+allow artd profman:process transition;
+#line 131
+# New domain is entered by executing the file.
+#line 131
+allow profman profman_exec:file { entrypoint open read execute getattr map };
+#line 131
+# New domain can send SIGCHLD to its caller.
+#line 131
+allow profman artd:process sigchld;
+#line 131
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 131
+dontaudit artd profman:process noatsecure;
+#line 131
+# XXX dontaudit candidate but requires further study.
+#line 131
+allow artd profman:process { siginh rlimitinh };
+#line 131
+
+#line 131
+# Make the transition occur by default.
+#line 131
+type_transition artd profman_exec:process profman;
+#line 131
+
+
+#line 132
+# Allow the necessary permissions.
+#line 132
+
+#line 132
+# Old domain may exec the file and transition to the new domain.
+#line 132
+allow artd dex2oat_exec:file { getattr open read execute map };
+#line 132
+allow artd dex2oat:process transition;
+#line 132
+# New domain is entered by executing the file.
+#line 132
+allow dex2oat dex2oat_exec:file { entrypoint open read execute getattr map };
+#line 132
+# New domain can send SIGCHLD to its caller.
+#line 132
+allow dex2oat artd:process sigchld;
+#line 132
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 132
+dontaudit artd dex2oat:process noatsecure;
+#line 132
+# XXX dontaudit candidate but requires further study.
+#line 132
+allow artd dex2oat:process { siginh rlimitinh };
+#line 132
+
+#line 132
+# Make the transition occur by default.
+#line 132
+type_transition artd dex2oat_exec:process dex2oat;
+#line 132
+
+
+# Allow sending sigkill to subprocesses.
+allow artd { profman dex2oat }:process sigkill;
+
+# Allow reading process info (/proc/<pid>/...).
+# This is needed for getting CPU time and wall time spent on subprocesses.
+
+#line 139
+allow artd profman:dir { open getattr read search ioctl lock watch watch_reads };
+#line 139
+allow artd profman:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 139
+;
+
+#line 140
+allow artd dex2oat:dir { open getattr read search ioctl lock watch watch_reads };
+#line 140
+allow artd dex2oat:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 140
+;
+
+# Allow artd to reopen its own memfd.
+# artd needs to reopen a memfd with readonly in order to pass it to subprocesses
+# that don't have write permissions on memfds.
+allow artd artd_tmpfs:file open;
+#line 1 "system/sepolicy/private/asan_extract.te"
+# type_transition must be private policy the domain_trans rules could stay
+# public, but conceptually should go with this
+# Technically not a daemon but we do want the transition from init domain to
+# asan_extract to occur.
+#line 11
+
+#line 1 "system/sepolicy/private/atrace.te"
+# Domain for atrace process.
+# It is spawned either by traced_probes or by init for the boottrace service.
+
+type atrace_exec, exec_type, file_type, system_file_type;
+
+# boottrace services uses /data/misc/boottrace/categories
+allow atrace boottrace_data_file:dir search;
+allow atrace boottrace_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow atrace to access tracefs.
+allow atrace debugfs_tracing:dir { open getattr read search ioctl lock watch watch_reads };
+allow atrace debugfs_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow atrace debugfs_trace_marker:file getattr;
+
+# Allow atrace to write data when a pipe is used for stdout/stderr.
+# This is used by Perfetto to capture atrace stdout/stderr.
+allow atrace traced_probes:fd use;
+allow atrace traced_probes:fifo_file { getattr write };
+
+# atrace sets debug.atrace.* properties
+
+#line 21
+
+#line 21
+allow atrace property_socket:sock_file write;
+#line 21
+allow atrace init:unix_stream_socket connectto;
+#line 21
+
+#line 21
+allow atrace debug_prop:property_service set;
+#line 21
+
+#line 21
+allow atrace debug_prop:file { getattr open read map };
+#line 21
+
+#line 21
+
+
+# atrace pokes all the binder-enabled processes at startup with a
+# SYSPROPS_TRANSACTION, to tell them to reload the debug.atrace.* properties.
+
+# Allow discovery of binder services.
+allow atrace {
+  service_manager_type
+  -apex_service
+  -dnsresolver_service
+  -dumpstate_service
+  -incident_service
+  -installd_service
+  -lpdump_service
+  -mdns_service
+  -netd_service
+  -stats_service
+  -tracingproxy_service
+  -vold_service
+  -default_android_service
+}:service_manager { find };
+allow atrace servicemanager:service_manager list;
+
+# Allow notifying the processes hosting specific binder services that
+# trace-related system properties have changed.
+
+#line 46
+# Call the servicemanager and transfer references to it.
+#line 46
+allow atrace servicemanager:binder { call transfer };
+#line 46
+# Allow servicemanager to send out callbacks
+#line 46
+allow servicemanager atrace:binder { call transfer };
+#line 46
+# servicemanager performs getpidcon on clients.
+#line 46
+allow servicemanager atrace:dir search;
+#line 46
+allow servicemanager atrace:file { read open };
+#line 46
+allow servicemanager atrace:process getattr;
+#line 46
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 46
+# all domains in domain.te.
+#line 46
+
+allow atrace surfaceflinger:binder call;
+allow atrace system_server:binder call;
+allow atrace cameraserver:binder call;
+
+# Similarly, on debug builds, allow specific HALs to be notified that
+# trace-related system properties have changed.
+#line 59
+
+
+# Remove logspam from notification attempts to non-allowlisted services.
+dontaudit atrace hwservice_manager_type:hwservice_manager find;
+dontaudit atrace service_manager_type:service_manager find;
+dontaudit atrace domain:binder call;
+
+# atrace can call atrace HAL
+
+#line 67
+typeattribute atrace halclientdomain;
+#line 67
+typeattribute atrace hal_atrace_client;
+#line 67
+
+#line 67
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 67
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 67
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 67
+
+#line 67
+typeattribute atrace hal_atrace;
+#line 67
+# Find passthrough HAL implementations
+#line 67
+allow hal_atrace system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 67
+allow hal_atrace vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 67
+allow hal_atrace vendor_file:file { read open getattr execute map };
+#line 67
+
+#line 67
+
+
+
+#line 69
+allow atrace hwservicemanager_prop:file { getattr open read map };
+#line 69
+
+
+#line 79
+
+
+dontaudit atrace debugfs_tracing_debug:file audit_access;
+#line 1 "system/sepolicy/private/audioserver.te"
+# audioserver - audio services daemon
+
+typeattribute audioserver coredomain;
+
+type audioserver_exec, exec_type, file_type, system_file_type;
+
+#line 6
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init audioserver_exec:file { getattr open read execute map };
+#line 6
+allow init audioserver:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow audioserver audioserver_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init audioserver:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init audioserver:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition init audioserver_exec:process audioserver;
+#line 6
+
+#line 6
+
+
+#line 7
+type_transition audioserver tmpfs:file audioserver_tmpfs;
+#line 7
+allow audioserver audioserver_tmpfs:file { read write getattr map };
+#line 7
+
+
+
+#line 9
+allow audioserver sdcard_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow audioserver sdcard_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 9
+
+
+#line 10
+allow audioserver fuse:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow audioserver fuse:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 10
+
+
+
+#line 12
+# Call the servicemanager and transfer references to it.
+#line 12
+allow audioserver servicemanager:binder { call transfer };
+#line 12
+# Allow servicemanager to send out callbacks
+#line 12
+allow servicemanager audioserver:binder { call transfer };
+#line 12
+# servicemanager performs getpidcon on clients.
+#line 12
+allow servicemanager audioserver:dir search;
+#line 12
+allow servicemanager audioserver:file { read open };
+#line 12
+allow servicemanager audioserver:process getattr;
+#line 12
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 12
+# all domains in domain.te.
+#line 12
+
+
+#line 13
+# Call the server domain and optionally transfer references to it.
+#line 13
+allow audioserver binderservicedomain:binder { call transfer };
+#line 13
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 13
+allow binderservicedomain audioserver:binder transfer;
+#line 13
+# Receive and use open files from the server.
+#line 13
+allow audioserver binderservicedomain:fd use;
+#line 13
+
+
+#line 14
+# Call the server domain and optionally transfer references to it.
+#line 14
+allow audioserver appdomain:binder { call transfer };
+#line 14
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 14
+allow appdomain audioserver:binder transfer;
+#line 14
+# Receive and use open files from the server.
+#line 14
+allow audioserver appdomain:fd use;
+#line 14
+
+
+#line 15
+typeattribute audioserver binderservicedomain;
+#line 15
+
+
+
+#line 17
+typeattribute audioserver halclientdomain;
+#line 17
+typeattribute audioserver hal_allocator_client;
+#line 17
+
+#line 17
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 17
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 17
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 17
+
+#line 17
+typeattribute audioserver hal_allocator;
+#line 17
+# Find passthrough HAL implementations
+#line 17
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 17
+
+#line 17
+
+# /system/lib64/hw for always-passthrough Allocator HAL ashmem / mapper .so
+
+#line 19
+allow audioserver system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow audioserver system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 19
+
+
+
+#line 21
+typeattribute audioserver halclientdomain;
+#line 21
+typeattribute audioserver hal_audio_client;
+#line 21
+
+#line 21
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 21
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 21
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 21
+
+#line 21
+typeattribute audioserver hal_audio;
+#line 21
+# Find passthrough HAL implementations
+#line 21
+allow hal_audio system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_audio vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_audio vendor_file:file { read open getattr execute map };
+#line 21
+
+#line 21
+
+
+#line 31
+
+
+
+#line 33
+  allow audioserver audioserver_service:service_manager { add find };
+#line 33
+  neverallow { domain -audioserver } audioserver_service:service_manager add;
+#line 33
+
+#line 33
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 33
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 33
+  
+#line 33
+
+allow audioserver activity_service:service_manager find;
+allow audioserver appops_service:service_manager find;
+allow audioserver batterystats_service:service_manager find;
+allow audioserver external_vibrator_service:service_manager find;
+allow audioserver package_native_service:service_manager find;
+allow audioserver permission_service:service_manager find;
+allow audioserver permission_checker_service:service_manager find;
+allow audioserver power_service:service_manager find;
+allow audioserver scheduling_policy_service:service_manager find;
+allow audioserver mediametrics_service:service_manager find;
+allow audioserver sensor_privacy_service:service_manager find;
+allow audioserver soundtrigger_middleware_service:service_manager find;
+allow audioserver audio_service:service_manager find;
+
+# Allow read/write access to bluetooth-specific properties
+
+#line 49
+
+#line 49
+allow audioserver property_socket:sock_file write;
+#line 49
+allow audioserver init:unix_stream_socket connectto;
+#line 49
+
+#line 49
+allow audioserver bluetooth_a2dp_offload_prop:property_service set;
+#line 49
+
+#line 49
+allow audioserver bluetooth_a2dp_offload_prop:file { getattr open read map };
+#line 49
+
+#line 49
+
+
+#line 50
+
+#line 50
+allow audioserver property_socket:sock_file write;
+#line 50
+allow audioserver init:unix_stream_socket connectto;
+#line 50
+
+#line 50
+allow audioserver bluetooth_audio_hal_prop:property_service set;
+#line 50
+
+#line 50
+allow audioserver bluetooth_audio_hal_prop:file { getattr open read map };
+#line 50
+
+#line 50
+
+
+#line 51
+
+#line 51
+allow audioserver property_socket:sock_file write;
+#line 51
+allow audioserver init:unix_stream_socket connectto;
+#line 51
+
+#line 51
+allow audioserver bluetooth_prop:property_service set;
+#line 51
+
+#line 51
+allow audioserver bluetooth_prop:file { getattr open read map };
+#line 51
+
+#line 51
+
+
+#line 52
+
+#line 52
+allow audioserver property_socket:sock_file write;
+#line 52
+allow audioserver init:unix_stream_socket connectto;
+#line 52
+
+#line 52
+allow audioserver exported_bluetooth_prop:property_service set;
+#line 52
+
+#line 52
+allow audioserver exported_bluetooth_prop:file { getattr open read map };
+#line 52
+
+#line 52
+
+
+# Grant access to audio files to audioserver
+allow audioserver audio_data_file:dir { { open getattr read search ioctl lock watch watch_reads } add_name write };
+allow audioserver audio_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# allow access to ALSA MMAP FDs for AAudio API
+allow audioserver audio_device:chr_file { read write };
+
+allow audioserver audio_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow audioserver audio_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# For A2DP bridge which is loaded directly into audioserver
+
+#line 65
+allow audioserver bluetooth_socket:sock_file write;
+#line 65
+allow audioserver bluetooth:unix_stream_socket connectto;
+#line 65
+
+
+# Allow shell commands from ADB and shell for CTS testing/dumping
+allow audioserver adbd:fd use;
+allow audioserver adbd:unix_stream_socket { read write };
+allow audioserver shell:fifo_file { read write };
+
+# Allow shell commands from ADB for CTS testing/dumping
+#line 77
+
+
+# Allow write access to log tag property
+
+#line 80
+
+#line 80
+allow audioserver property_socket:sock_file write;
+#line 80
+allow audioserver init:unix_stream_socket connectto;
+#line 80
+
+#line 80
+allow audioserver log_tag_prop:property_service set;
+#line 80
+
+#line 80
+allow audioserver log_tag_prop:file { getattr open read map };
+#line 80
+
+#line 80
+;
+
+###
+### neverallow rules
+###
+
+# audioserver should never execute any executable without a
+# domain transition
+neverallow audioserver { file_type fs_type }:file execute_no_trans;
+
+# The goal of the mediaserver split is to place media processing code into
+# restrictive sandboxes with limited responsibilities and thus limited
+# permissions. Example: Audioserver is only responsible for controlling audio
+# hardware and processing audio content. Cameraserver does the same for camera
+# hardware/content. Etc.
+#
+# Media processing code is inherently risky and thus should have limited
+# permissions and be isolated from the rest of the system and network.
+# Lengthier explanation here:
+# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
+neverallow audioserver domain:{ udp_socket rawip_socket } *;
+neverallow audioserver { domain  }:tcp_socket *;
+
+# Allow using wake locks
+
+#line 104
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 104
+# deprecated.
+#line 104
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 104
+allow audioserver sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 104
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 104
+allow audioserver self:{ capability2 cap2_userns } block_suspend;
+#line 104
+# system_suspend permissions
+#line 104
+
+#line 104
+# Call the server domain and optionally transfer references to it.
+#line 104
+allow audioserver system_suspend_server:binder { call transfer };
+#line 104
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 104
+allow system_suspend_server audioserver:binder transfer;
+#line 104
+# Receive and use open files from the server.
+#line 104
+allow audioserver system_suspend_server:fd use;
+#line 104
+
+#line 104
+allow audioserver system_suspend_hwservice:hwservice_manager find;
+#line 104
+# halclientdomain permissions
+#line 104
+
+#line 104
+# Call the hwservicemanager and transfer references to it.
+#line 104
+allow audioserver hwservicemanager:binder { call transfer };
+#line 104
+# Allow hwservicemanager to send out callbacks
+#line 104
+allow hwservicemanager audioserver:binder { call transfer };
+#line 104
+# hwservicemanager performs getpidcon on clients.
+#line 104
+allow hwservicemanager audioserver:dir search;
+#line 104
+allow hwservicemanager audioserver:file { read open map };
+#line 104
+allow hwservicemanager audioserver:process getattr;
+#line 104
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 104
+# all domains in domain.te.
+#line 104
+
+#line 104
+
+#line 104
+allow audioserver hwservicemanager_prop:file { getattr open read map };
+#line 104
+
+#line 104
+allow audioserver hidl_manager_hwservice:hwservice_manager find;
+#line 104
+# AIDL suspend hal permissions
+#line 104
+allow audioserver hal_system_suspend_service:service_manager find;
+#line 104
+
+#line 104
+# Call the servicemanager and transfer references to it.
+#line 104
+allow audioserver servicemanager:binder { call transfer };
+#line 104
+# Allow servicemanager to send out callbacks
+#line 104
+allow servicemanager audioserver:binder { call transfer };
+#line 104
+# servicemanager performs getpidcon on clients.
+#line 104
+allow servicemanager audioserver:dir search;
+#line 104
+allow servicemanager audioserver:file { read open };
+#line 104
+allow servicemanager audioserver:process getattr;
+#line 104
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 104
+# all domains in domain.te.
+#line 104
+
+#line 104
+
+
+# Allow reading audio config props, e.g. af.fast_track_multiplier
+
+#line 107
+allow audioserver audio_config_prop:file { getattr open read map };
+#line 107
+
+
+#line 108
+allow audioserver system_audio_config_prop:file { getattr open read map };
+#line 108
+
+#line 1 "system/sepolicy/private/auditctl.te"
+#
+# /system/bin/auditctl executed for logd
+#
+# Performs maintenance of the kernel auditing system, including
+# setting rate limits on SELinux denials.
+#
+
+type auditctl, domain, coredomain;
+type auditctl_exec, file_type, system_file_type, exec_type;
+
+# Uncomment the line below to put this domain into permissive
+# mode. This helps speed SELinux policy development.
+# userdebug_or_eng(`permissive auditctl;')
+
+
+#line 15
+
+#line 15
+# Allow the necessary permissions.
+#line 15
+
+#line 15
+# Old domain may exec the file and transition to the new domain.
+#line 15
+allow init auditctl_exec:file { getattr open read execute map };
+#line 15
+allow init auditctl:process transition;
+#line 15
+# New domain is entered by executing the file.
+#line 15
+allow auditctl auditctl_exec:file { entrypoint open read execute getattr map };
+#line 15
+# New domain can send SIGCHLD to its caller.
+#line 15
+
+#line 15
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 15
+dontaudit init auditctl:process noatsecure;
+#line 15
+# XXX dontaudit candidate but requires further study.
+#line 15
+allow init auditctl:process { siginh rlimitinh };
+#line 15
+
+#line 15
+# Make the transition occur by default.
+#line 15
+type_transition init auditctl_exec:process auditctl;
+#line 15
+
+#line 15
+
+
+allow auditctl self:{ capability cap_userns } audit_control;
+allow auditctl self:netlink_audit_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_write };
+#line 1 "system/sepolicy/private/automotive_display_service.te"
+# Display proxy service for Automotive
+type automotive_display_service, domain, coredomain;
+type automotive_display_service_exec, system_file_type, exec_type, file_type;
+
+typeattribute automotive_display_service automotive_display_service_server;
+
+# Allow to add a display service to the hwservicemanager
+
+#line 8
+  allow automotive_display_service fwk_automotive_display_hwservice:hwservice_manager { add find };
+#line 8
+  allow automotive_display_service hidl_base_hwservice:hwservice_manager add;
+#line 8
+  neverallow { domain -automotive_display_service } fwk_automotive_display_hwservice:hwservice_manager add;
+#line 8
+;
+
+# Allow init to launch automotive display service
+
+#line 11
+
+#line 11
+# Allow the necessary permissions.
+#line 11
+
+#line 11
+# Old domain may exec the file and transition to the new domain.
+#line 11
+allow init automotive_display_service_exec:file { getattr open read execute map };
+#line 11
+allow init automotive_display_service:process transition;
+#line 11
+# New domain is entered by executing the file.
+#line 11
+allow automotive_display_service automotive_display_service_exec:file { entrypoint open read execute getattr map };
+#line 11
+# New domain can send SIGCHLD to its caller.
+#line 11
+
+#line 11
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 11
+dontaudit init automotive_display_service:process noatsecure;
+#line 11
+# XXX dontaudit candidate but requires further study.
+#line 11
+allow init automotive_display_service:process { siginh rlimitinh };
+#line 11
+
+#line 11
+# Make the transition occur by default.
+#line 11
+type_transition init automotive_display_service_exec:process automotive_display_service;
+#line 11
+
+#line 11
+
+
+# Allow to use Binder IPC for SurfaceFlinger.
+
+#line 14
+# Call the servicemanager and transfer references to it.
+#line 14
+allow automotive_display_service servicemanager:binder { call transfer };
+#line 14
+# Allow servicemanager to send out callbacks
+#line 14
+allow servicemanager automotive_display_service:binder { call transfer };
+#line 14
+# servicemanager performs getpidcon on clients.
+#line 14
+allow servicemanager automotive_display_service:dir search;
+#line 14
+allow servicemanager automotive_display_service:file { read open };
+#line 14
+allow servicemanager automotive_display_service:process getattr;
+#line 14
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 14
+# all domains in domain.te.
+#line 14
+
+
+# Allow to use HwBinder IPC for HAL implementations.
+
+#line 17
+# Call the hwservicemanager and transfer references to it.
+#line 17
+allow automotive_display_service hwservicemanager:binder { call transfer };
+#line 17
+# Allow hwservicemanager to send out callbacks
+#line 17
+allow hwservicemanager automotive_display_service:binder { call transfer };
+#line 17
+# hwservicemanager performs getpidcon on clients.
+#line 17
+allow hwservicemanager automotive_display_service:dir search;
+#line 17
+allow hwservicemanager automotive_display_service:file { read open map };
+#line 17
+allow hwservicemanager automotive_display_service:process getattr;
+#line 17
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 17
+# all domains in domain.te.
+#line 17
+
+
+#line 18
+typeattribute automotive_display_service halclientdomain;
+#line 18
+typeattribute automotive_display_service hal_graphics_composer_client;
+#line 18
+
+#line 18
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 18
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 18
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 18
+
+#line 18
+typeattribute automotive_display_service hal_graphics_composer;
+#line 18
+# Find passthrough HAL implementations
+#line 18
+allow hal_graphics_composer system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow hal_graphics_composer vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow hal_graphics_composer vendor_file:file { read open getattr execute map };
+#line 18
+
+#line 18
+
+
+#line 19
+typeattribute automotive_display_service halclientdomain;
+#line 19
+typeattribute automotive_display_service hal_graphics_allocator_client;
+#line 19
+
+#line 19
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 19
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 19
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 19
+
+#line 19
+typeattribute automotive_display_service hal_graphics_allocator;
+#line 19
+# Find passthrough HAL implementations
+#line 19
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 19
+
+#line 19
+
+
+# Allow to read the target property.
+
+#line 22
+allow automotive_display_service hwservicemanager_prop:file { getattr open read map };
+#line 22
+
+
+# Allow to find SurfaceFlinger.
+allow automotive_display_service surfaceflinger_service:service_manager find;
+
+# Allow client domain to do binder IPC to serverdomain.
+
+#line 28
+# Call the server domain and optionally transfer references to it.
+#line 28
+allow automotive_display_service surfaceflinger:binder { call transfer };
+#line 28
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 28
+allow surfaceflinger automotive_display_service:binder transfer;
+#line 28
+# Receive and use open files from the server.
+#line 28
+allow automotive_display_service surfaceflinger:fd use;
+#line 28
+
+
+# Allow to use a graphics mapper
+allow automotive_display_service hal_graphics_mapper_hwservice:hwservice_manager find;
+
+# Allow to use hidl token service
+allow automotive_display_service hidl_token_hwservice:hwservice_manager find;
+
+# Allow to access EGL files
+allow automotive_display_service gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow automotive_display_service gpu_device:dir search;
+
+# Allow to add a service to the servicemanager
+
+#line 41
+  allow automotive_display_service fwk_automotive_display_service:service_manager { add find };
+#line 41
+  neverallow { domain -automotive_display_service } fwk_automotive_display_service:service_manager add;
+#line 41
+
+#line 41
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 41
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 41
+  
+#line 41
+;
+
+# Allow to communicate with EVS services
+
+#line 44
+# Call the server domain and optionally transfer references to it.
+#line 44
+allow automotive_display_service hal_evs:binder { call transfer };
+#line 44
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 44
+allow hal_evs automotive_display_service:binder transfer;
+#line 44
+# Receive and use open files from the server.
+#line 44
+allow automotive_display_service hal_evs:fd use;
+#line 44
+
+#line 1 "system/sepolicy/private/binderservicedomain.te"
+# Rules common to some specific binder service domains.
+# Deprecated. Consider granting the exact permissions required by your service.
+
+# Allow dumpstate and incidentd to collect information from binder services
+allow binderservicedomain { dumpstate incidentd }:fd use;
+allow binderservicedomain { dumpstate incidentd }:unix_stream_socket { read write getopt getattr };
+allow binderservicedomain { dumpstate incidentd }:fifo_file  { getattr write };
+allow binderservicedomain shell_data_file:file { getattr write };
+
+# Allow dumpsys to work from adb shell or the serial console
+allow binderservicedomain devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow binderservicedomain console_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Receive and write to a pipe received over Binder from an app.
+allow binderservicedomain appdomain:fd use;
+allow binderservicedomain appdomain:fifo_file write;
+
+# allow all services to run permission checks
+allow binderservicedomain permission_service:service_manager find;
+
+allow binderservicedomain keystore:keystore2_key { delete get_info rebind use };
+
+
+#line 23
+  allow keystore binderservicedomain:dir search;
+#line 23
+  allow keystore binderservicedomain:file { read open };
+#line 23
+  allow keystore binderservicedomain:process getattr;
+#line 23
+  allow binderservicedomain apc_service:service_manager find;
+#line 23
+  allow binderservicedomain keystore_service:service_manager find;
+#line 23
+  allow binderservicedomain legacykeystore_service:service_manager find;
+#line 23
+  
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow binderservicedomain keystore:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow keystore binderservicedomain:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow binderservicedomain keystore:fd use;
+#line 23
+
+#line 23
+  
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow keystore binderservicedomain:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow binderservicedomain keystore:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow keystore binderservicedomain:fd use;
+#line 23
+
+#line 23
+
+# binderservicedomain is using apex_info via libvintf
+
+#line 25
+  allow binderservicedomain apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+#line 25
+  allow binderservicedomain apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 25
+  
+#line 25
+allow binderservicedomain vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 25
+allow binderservicedomain vendor_apex_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 25
+
+#line 25
+
+#line 1 "system/sepolicy/private/blank_screen.te"
+type blank_screen, domain, coredomain;
+type blank_screen_exec, exec_type, file_type, system_file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init blank_screen_exec:file { getattr open read execute map };
+#line 4
+allow init blank_screen:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow blank_screen blank_screen_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init blank_screen:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init blank_screen:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init blank_screen_exec:process blank_screen;
+#line 4
+
+#line 4
+
+
+# hal_light_client has access to hal_light_server
+
+#line 7
+typeattribute blank_screen halclientdomain;
+#line 7
+typeattribute blank_screen hal_light_client;
+#line 7
+
+#line 7
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 7
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 7
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 7
+
+#line 7
+typeattribute blank_screen hal_light;
+#line 7
+# Find passthrough HAL implementations
+#line 7
+allow hal_light system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow hal_light vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow hal_light vendor_file:file { read open getattr execute map };
+#line 7
+
+#line 7
+
+#line 1 "system/sepolicy/private/blkid.te"
+# blkid called from vold
+
+typeattribute blkid coredomain;
+
+type blkid_exec, system_file_type, exec_type, file_type;
+
+# Allowed read-only access to encrypted devices to extract UUID/label
+allow blkid block_device:dir search;
+allow blkid userdata_block_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+allow blkid dm_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow stdin/out back to vold
+allow blkid vold:fd use;
+allow blkid vold:fifo_file { read write getattr };
+
+# For blkid launched through popen()
+allow blkid blkid_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Only allow entry from vold
+neverallow { domain -vold } blkid:process transition;
+neverallow * blkid:process dyntransition;
+neverallow blkid { file_type fs_type -blkid_exec -shell_exec }:file entrypoint;
+#line 1 "system/sepolicy/private/blkid_untrusted.te"
+# blkid for untrusted block devices
+
+typeattribute blkid_untrusted coredomain;
+
+# Allowed read-only access to vold block devices to extract UUID/label
+allow blkid_untrusted block_device:dir search;
+allow blkid_untrusted vold_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow stdin/out back to vold
+allow blkid_untrusted vold:fd use;
+allow blkid_untrusted vold:fifo_file { read write getattr };
+
+# For blkid launched through popen()
+allow blkid_untrusted blkid_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+###
+### neverallow rules
+###
+
+# Untrusted blkid should never be run on block devices holding sensitive data
+neverallow blkid_untrusted {
+  boot_block_device
+  frp_block_device
+  metadata_block_device
+  recovery_block_device
+  root_block_device
+  swap_block_device
+  system_block_device
+  userdata_block_device
+  cache_block_device
+  dm_device
+}:blk_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Only allow entry from vold via blkid binary
+neverallow { domain -vold } blkid_untrusted:process transition;
+neverallow * blkid_untrusted:process dyntransition;
+neverallow blkid_untrusted { file_type fs_type -blkid_exec -shell_exec }:file entrypoint;
+#line 1 "system/sepolicy/private/bluetooth.te"
+# bluetooth app
+
+typeattribute bluetooth coredomain, mlstrustedsubject;
+
+
+#line 5
+typeattribute bluetooth appdomain;
+#line 5
+# Label tmpfs objects for all apps.
+#line 5
+type_transition bluetooth tmpfs:file appdomain_tmpfs;
+#line 5
+
+#line 5
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 5
+type bluetooth_userfaultfd;
+#line 5
+type_transition bluetooth bluetooth:anon_inode bluetooth_userfaultfd "[userfaultfd]";
+#line 5
+# Allow domain to create/use userfaultfd anon_inode.
+#line 5
+allow bluetooth bluetooth_userfaultfd:anon_inode { create ioctl read };
+#line 5
+# Suppress errors generate during bugreport
+#line 5
+dontaudit su bluetooth_userfaultfd:anon_inode *;
+#line 5
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 5
+neverallow { domain -bluetooth } bluetooth_userfaultfd:anon_inode *;
+#line 5
+
+#line 5
+allow bluetooth appdomain_tmpfs:file { execute getattr map read write };
+#line 5
+neverallow { bluetooth -runas_app -shell -simpleperf } { domain -bluetooth }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 5
+neverallow { appdomain -runas_app -shell -simpleperf -bluetooth } bluetooth:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 5
+# The Android security model guarantees the confidentiality and integrity
+#line 5
+# of application data and execution state. Ptrace bypasses those
+#line 5
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 5
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 5
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 5
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 5
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 5
+# live lock conditions.
+#line 5
+neverallow { domain -bluetooth -crash_dump  -runas_app -simpleperf } bluetooth:process ptrace;
+#line 5
+
+
+#line 6
+typeattribute bluetooth netdomain;
+#line 6
+
+
+# Socket creation under /data/misc/bluedroid.
+type_transition bluetooth bluetooth_data_file:sock_file bluetooth_socket;
+
+# Allow access to net_admin ioctls
+allowxperm bluetooth self:udp_socket ioctl 
+#line 12
+{
+#line 12
+# qualcomm rmnet ioctls
+#line 12
+0x00006900 0x00006902
+#line 12
+# socket ioctls
+#line 12
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 12
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 12
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 12
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 12
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 12
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 12
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 12
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 12
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 12
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 12
+# device and protocol specific ioctls
+#line 12
+0x000089f0-0x000089ff
+#line 12
+0x000089e0-0x000089ef
+#line 12
+# Wireless extension ioctls
+#line 12
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 12
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 12
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 12
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 12
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 12
+0x00008b34 0x00008b35 0x00008b36
+#line 12
+# Dev private ioctl i.e. hardware specific ioctls
+#line 12
+0x00008be0-0x00008bff
+#line 12
+};
+
+
+#line 14
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 14
+# deprecated.
+#line 14
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 14
+allow bluetooth sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 14
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 14
+allow bluetooth self:{ capability2 cap2_userns } block_suspend;
+#line 14
+# system_suspend permissions
+#line 14
+
+#line 14
+# Call the server domain and optionally transfer references to it.
+#line 14
+allow bluetooth system_suspend_server:binder { call transfer };
+#line 14
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 14
+allow system_suspend_server bluetooth:binder transfer;
+#line 14
+# Receive and use open files from the server.
+#line 14
+allow bluetooth system_suspend_server:fd use;
+#line 14
+
+#line 14
+allow bluetooth system_suspend_hwservice:hwservice_manager find;
+#line 14
+# halclientdomain permissions
+#line 14
+
+#line 14
+# Call the hwservicemanager and transfer references to it.
+#line 14
+allow bluetooth hwservicemanager:binder { call transfer };
+#line 14
+# Allow hwservicemanager to send out callbacks
+#line 14
+allow hwservicemanager bluetooth:binder { call transfer };
+#line 14
+# hwservicemanager performs getpidcon on clients.
+#line 14
+allow hwservicemanager bluetooth:dir search;
+#line 14
+allow hwservicemanager bluetooth:file { read open map };
+#line 14
+allow hwservicemanager bluetooth:process getattr;
+#line 14
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 14
+# all domains in domain.te.
+#line 14
+
+#line 14
+
+#line 14
+allow bluetooth hwservicemanager_prop:file { getattr open read map };
+#line 14
+
+#line 14
+allow bluetooth hidl_manager_hwservice:hwservice_manager find;
+#line 14
+# AIDL suspend hal permissions
+#line 14
+allow bluetooth hal_system_suspend_service:service_manager find;
+#line 14
+
+#line 14
+# Call the servicemanager and transfer references to it.
+#line 14
+allow bluetooth servicemanager:binder { call transfer };
+#line 14
+# Allow servicemanager to send out callbacks
+#line 14
+allow servicemanager bluetooth:binder { call transfer };
+#line 14
+# servicemanager performs getpidcon on clients.
+#line 14
+allow servicemanager bluetooth:dir search;
+#line 14
+allow servicemanager bluetooth:file { read open };
+#line 14
+allow servicemanager bluetooth:process getattr;
+#line 14
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 14
+# all domains in domain.te.
+#line 14
+
+#line 14
+;
+
+# Data file accesses.
+allow bluetooth bluetooth_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow bluetooth bluetooth_data_file:{ file lnk_file sock_file fifo_file } { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } link };
+allow bluetooth bluetooth_logs_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow bluetooth bluetooth_logs_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Socket creation under /data/misc/bluedroid.
+allow bluetooth bluetooth_socket:sock_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow bluetooth self:{ capability cap_userns } net_admin;
+allow bluetooth self:{ capability2 cap2_userns } wake_alarm;
+
+# tethering
+allow bluetooth self:packet_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow bluetooth self:{ capability cap_userns } { net_admin net_raw net_bind_service };
+allow bluetooth self:tun_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow bluetooth tun_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm bluetooth tun_device:chr_file ioctl { 0x800454d2 0x400454ca };
+allow bluetooth efs_file:dir search;
+
+# allow Bluetooth to access uhid device for HID profile
+allow bluetooth uhid_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+allow bluetooth gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow bluetooth gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# proc access.
+allow bluetooth proc_bluetooth_writable:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# For Bluetooth to check what profile are available
+allow bluetooth proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+#line 47
+allow bluetooth incremental_prop:file { getattr open read map };
+#line 47
+
+
+# For Bluetooth to check security logging state
+
+#line 50
+allow bluetooth device_logging_prop:file { getattr open read map };
+#line 50
+
+
+# Allow write access to bluetooth specific properties
+
+#line 53
+
+#line 53
+allow bluetooth property_socket:sock_file write;
+#line 53
+allow bluetooth init:unix_stream_socket connectto;
+#line 53
+
+#line 53
+allow bluetooth binder_cache_bluetooth_server_prop:property_service set;
+#line 53
+
+#line 53
+allow bluetooth binder_cache_bluetooth_server_prop:file { getattr open read map };
+#line 53
+
+#line 53
+;
+neverallow { domain -bluetooth -init }
+    binder_cache_bluetooth_server_prop:property_service set;
+
+#line 56
+
+#line 56
+allow bluetooth property_socket:sock_file write;
+#line 56
+allow bluetooth init:unix_stream_socket connectto;
+#line 56
+
+#line 56
+allow bluetooth bluetooth_a2dp_offload_prop:property_service set;
+#line 56
+
+#line 56
+allow bluetooth bluetooth_a2dp_offload_prop:file { getattr open read map };
+#line 56
+
+#line 56
+
+
+#line 57
+
+#line 57
+allow bluetooth property_socket:sock_file write;
+#line 57
+allow bluetooth init:unix_stream_socket connectto;
+#line 57
+
+#line 57
+allow bluetooth bluetooth_audio_hal_prop:property_service set;
+#line 57
+
+#line 57
+allow bluetooth bluetooth_audio_hal_prop:file { getattr open read map };
+#line 57
+
+#line 57
+
+
+#line 58
+
+#line 58
+allow bluetooth property_socket:sock_file write;
+#line 58
+allow bluetooth init:unix_stream_socket connectto;
+#line 58
+
+#line 58
+allow bluetooth bluetooth_prop:property_service set;
+#line 58
+
+#line 58
+allow bluetooth bluetooth_prop:file { getattr open read map };
+#line 58
+
+#line 58
+
+
+#line 59
+
+#line 59
+allow bluetooth property_socket:sock_file write;
+#line 59
+allow bluetooth init:unix_stream_socket connectto;
+#line 59
+
+#line 59
+allow bluetooth exported_bluetooth_prop:property_service set;
+#line 59
+
+#line 59
+allow bluetooth exported_bluetooth_prop:file { getattr open read map };
+#line 59
+
+#line 59
+
+
+#line 60
+
+#line 60
+allow bluetooth property_socket:sock_file write;
+#line 60
+allow bluetooth init:unix_stream_socket connectto;
+#line 60
+
+#line 60
+allow bluetooth pan_result_prop:property_service set;
+#line 60
+
+#line 60
+allow bluetooth pan_result_prop:file { getattr open read map };
+#line 60
+
+#line 60
+
+
+allow bluetooth audioserver_service:service_manager find;
+allow bluetooth bluetooth_service:service_manager find;
+allow bluetooth drmserver_service:service_manager find;
+allow bluetooth mediaserver_service:service_manager find;
+allow bluetooth radio_service:service_manager find;
+allow bluetooth app_api_service:service_manager find;
+allow bluetooth system_api_service:service_manager find;
+allow bluetooth network_stack_service:service_manager find;
+allow bluetooth system_suspend_control_service:service_manager find;
+allow bluetooth hal_audio_service:service_manager find;
+
+# already open bugreport file descriptors may be shared with
+# the bluetooth process, from a file in
+# /data/data/com.android.shell/files/bugreports/bugreport-*.
+allow bluetooth shell_data_file:file read;
+
+# Bluetooth audio needs RT scheduling to meet deadlines, allow sys_nice
+allow bluetooth self:{ capability cap_userns } sys_nice;
+
+
+#line 81
+typeattribute bluetooth halclientdomain;
+#line 81
+typeattribute bluetooth hal_bluetooth_client;
+#line 81
+
+#line 81
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 81
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 81
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 81
+
+#line 81
+typeattribute bluetooth hal_bluetooth;
+#line 81
+# Find passthrough HAL implementations
+#line 81
+allow hal_bluetooth system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 81
+allow hal_bluetooth vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 81
+allow hal_bluetooth vendor_file:file { read open getattr execute map };
+#line 81
+
+#line 81
+
+
+#line 82
+typeattribute bluetooth halclientdomain;
+#line 82
+typeattribute bluetooth hal_telephony_client;
+#line 82
+
+#line 82
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 82
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 82
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 82
+
+#line 82
+typeattribute bluetooth hal_telephony;
+#line 82
+# Find passthrough HAL implementations
+#line 82
+allow hal_telephony system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 82
+allow hal_telephony vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 82
+allow hal_telephony vendor_file:file { read open getattr execute map };
+#line 82
+
+#line 82
+
+
+# Bluetooth A2DP offload requires binding with audio HAL
+
+#line 85
+typeattribute bluetooth halclientdomain;
+#line 85
+typeattribute bluetooth hal_audio_client;
+#line 85
+
+#line 85
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 85
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 85
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 85
+
+#line 85
+typeattribute bluetooth hal_audio;
+#line 85
+# Find passthrough HAL implementations
+#line 85
+allow hal_audio system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 85
+allow hal_audio vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 85
+allow hal_audio vendor_file:file { read open getattr execute map };
+#line 85
+
+#line 85
+
+
+
+#line 87
+allow bluetooth runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 87
+
+
+###
+### Neverallow rules
+###
+### These are things that the bluetooth app should NEVER be able to do
+###
+
+# Superuser capabilities.
+# Bluetooth requires net_{admin,raw,bind_service} and wake_alarm and block_suspend and sys_nice.
+neverallow bluetooth self:{ capability cap_userns } ~{ net_admin net_raw net_bind_service sys_nice};
+neverallow bluetooth self:{ capability2 cap2_userns } ~{ wake_alarm block_suspend };
+#line 1 "system/sepolicy/private/bluetoothdomain.te"
+# Allow clients to use a socket provided by the bluetooth app.
+allow bluetoothdomain bluetooth:unix_stream_socket { getopt setopt getattr read write ioctl shutdown };
+#line 1 "system/sepolicy/private/bootanim.te"
+typeattribute bootanim coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init bootanim_exec:file { getattr open read execute map };
+#line 3
+allow init bootanim:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow bootanim bootanim_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init bootanim:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init bootanim:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init bootanim_exec:process bootanim;
+#line 3
+
+#line 3
+
+
+# b/68864350
+dontaudit bootanim unlabeled:dir search;
+
+# Bootanim should not be reading default vendor-defined properties.
+dontaudit bootanim vendor_default_prop:file read;
+
+# Read ro.boot.bootreason b/30654343
+
+#line 12
+allow bootanim bootloader_boot_reason_prop:file { getattr open read map };
+#line 12
+
+
+
+#line 14
+allow bootanim bootanim_config_prop:file { getattr open read map };
+#line 14
+
+
+# Allow updating boot animation status.
+
+#line 17
+
+#line 17
+allow bootanim property_socket:sock_file write;
+#line 17
+allow bootanim init:unix_stream_socket connectto;
+#line 17
+
+#line 17
+allow bootanim bootanim_system_prop:property_service set;
+#line 17
+
+#line 17
+allow bootanim bootanim_system_prop:file { getattr open read map };
+#line 17
+
+#line 17
+
+
+# Allow accessing /data/misc/bootanim
+
+#line 20
+allow bootanim bootanim_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow bootanim bootanim_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 20
+
+
+# Allow accessing vendor apex for EGL/GLES
+allow bootanim vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1 "system/sepolicy/private/bootstat.te"
+typeattribute bootstat coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init bootstat_exec:file { getattr open read execute map };
+#line 3
+allow init bootstat:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow bootstat bootstat_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init bootstat:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init bootstat:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init bootstat_exec:process bootstat;
+#line 3
+
+#line 3
+
+
+# Collect metrics on boot time created by init
+
+#line 6
+allow bootstat boottime_prop:file { getattr open read map };
+#line 6
+
+
+# Read/Write [persist.]sys.boot.reason and ro.boot.bootreason (write if empty)
+
+#line 9
+
+#line 9
+allow bootstat property_socket:sock_file write;
+#line 9
+allow bootstat init:unix_stream_socket connectto;
+#line 9
+
+#line 9
+allow bootstat bootloader_boot_reason_prop:property_service set;
+#line 9
+
+#line 9
+allow bootstat bootloader_boot_reason_prop:file { getattr open read map };
+#line 9
+
+#line 9
+
+
+#line 10
+
+#line 10
+allow bootstat property_socket:sock_file write;
+#line 10
+allow bootstat init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow bootstat system_boot_reason_prop:property_service set;
+#line 10
+
+#line 10
+allow bootstat system_boot_reason_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+#line 11
+
+#line 11
+allow bootstat property_socket:sock_file write;
+#line 11
+allow bootstat init:unix_stream_socket connectto;
+#line 11
+
+#line 11
+allow bootstat last_boot_reason_prop:property_service set;
+#line 11
+
+#line 11
+allow bootstat last_boot_reason_prop:file { getattr open read map };
+#line 11
+
+#line 11
+
+
+neverallow {
+  domain
+  -bootanim
+  -bootstat
+  -dumpstate
+  
+  -init
+  -platform_app
+  -recovery
+  -shell
+  -system_server
+} { bootloader_boot_reason_prop last_boot_reason_prop }:file { getattr open read ioctl lock map watch watch_reads };
+# ... and refine, as these components should not set the last boot reason
+neverallow { bootanim recovery } last_boot_reason_prop:file { getattr open read ioctl lock map watch watch_reads };
+
+neverallow {
+  domain
+  -bootstat
+  -init
+  -system_server
+} { bootloader_boot_reason_prop last_boot_reason_prop }:property_service set;
+# ... and refine ... for a ro propertly no less ... keep this _tight_
+neverallow system_server bootloader_boot_reason_prop:property_service set;
+#line 1 "system/sepolicy/private/boringssl_self_test.te"
+# System and vendor domains for BoringSSL self test binaries.
+#
+# For FIPS compliance, all processes linked against libcrypto perform a startup
+# self test which computes a hash of the BoringSSL Crypto Module (BCM) and, at least once
+# per device boot, also run a series of Known Answer Tests (KAT) to verify functionality.
+#
+# The KATs are expensive, and to ensure they are run as few times as possible, they
+# are skipped if a marker file exists in /dev/boringssl/selftest whose name is
+# the hash of the BCM that was computed earlier.  The files are zero length and their contents
+# should never be read or written.  To avoid giving arbitrary processes access to /dev/boringssl
+# to create these marker files, there are dedicated self test binaries which this policy
+# gives access to and which are run during early-init.
+#
+# Due to build skew, the version of libcrypto in /vendor may have a different hash than
+# the system one.  To cater for this there are vendor variants of the self test binaries
+# which also have permission to write to the same files in /dev/boringssl.  In the case where
+# vendor and system libcrypto have the same hash, there will be a race to create the file,
+# but this is harmless.
+#
+# If the self tests fail, then the device should reboot into firmware and for this reason
+# the system boringssl_self_test domain needs to be in coredomain.  As vendor domains
+# are not allowed in coredomain, this means that the vendor self tests cannot trigger a
+# reboot.  However every binary linked against the vendor libcrypto will abort on startup,
+# so in practice the device will crash anyway in this unlikely scenario.
+
+# System boringssl_self_test domain
+type boringssl_self_test, domain, coredomain;
+type boringssl_self_test_exec, system_file_type, exec_type, file_type;
+
+# Vendor boringssl_self_test domain
+type vendor_boringssl_self_test, domain;
+type vendor_boringssl_self_test_exec, vendor_file_type, exec_type, file_type;
+
+# Switch to boringssl_self_test security domain when running boringssl_self_test_exec
+
+#line 35
+
+#line 35
+# Allow the necessary permissions.
+#line 35
+
+#line 35
+# Old domain may exec the file and transition to the new domain.
+#line 35
+allow init boringssl_self_test_exec:file { getattr open read execute map };
+#line 35
+allow init boringssl_self_test:process transition;
+#line 35
+# New domain is entered by executing the file.
+#line 35
+allow boringssl_self_test boringssl_self_test_exec:file { entrypoint open read execute getattr map };
+#line 35
+# New domain can send SIGCHLD to its caller.
+#line 35
+
+#line 35
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 35
+dontaudit init boringssl_self_test:process noatsecure;
+#line 35
+# XXX dontaudit candidate but requires further study.
+#line 35
+allow init boringssl_self_test:process { siginh rlimitinh };
+#line 35
+
+#line 35
+# Make the transition occur by default.
+#line 35
+type_transition init boringssl_self_test_exec:process boringssl_self_test;
+#line 35
+
+#line 35
+
+
+# Switch to vendor_boringssl_self_test security domain when running vendor_boringssl_self_test_exec
+
+#line 38
+
+#line 38
+# Allow the necessary permissions.
+#line 38
+
+#line 38
+# Old domain may exec the file and transition to the new domain.
+#line 38
+allow init vendor_boringssl_self_test_exec:file { getattr open read execute map };
+#line 38
+allow init vendor_boringssl_self_test:process transition;
+#line 38
+# New domain is entered by executing the file.
+#line 38
+allow vendor_boringssl_self_test vendor_boringssl_self_test_exec:file { entrypoint open read execute getattr map };
+#line 38
+# New domain can send SIGCHLD to its caller.
+#line 38
+
+#line 38
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 38
+dontaudit init vendor_boringssl_self_test:process noatsecure;
+#line 38
+# XXX dontaudit candidate but requires further study.
+#line 38
+allow init vendor_boringssl_self_test:process { siginh rlimitinh };
+#line 38
+
+#line 38
+# Make the transition occur by default.
+#line 38
+type_transition init vendor_boringssl_self_test_exec:process vendor_boringssl_self_test;
+#line 38
+
+#line 38
+
+
+# Marker files, common to both domains, indicating KAT have been performed on a particular libcrypto
+#
+# The files are zero length so there is no issue if both vendor and system code
+# try to create the same file simultaneously. One will succeed and the other will fail
+# silently, i.e. still indicate success.  Similar harmless naming collisions will happen in the
+# system domain e.g. when system and APEX copies of libcrypto are identical.
+type boringssl_self_test_marker, file_type;
+
+# Allow self test binaries to create/check for the existence of boringssl_self_test_marker files
+allow { boringssl_self_test vendor_boringssl_self_test }
+  boringssl_self_test_marker:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow { boringssl_self_test vendor_boringssl_self_test }
+  boringssl_self_test_marker:dir { { open getattr read search ioctl lock watch watch_reads } add_name write };
+
+# Allow self test binaries to write their stdout/stderr messages to kmsg_debug
+allow { boringssl_self_test vendor_boringssl_self_test }
+  kmsg_debug_device:chr_file { { open append write lock map } getattr ioctl };
+
+# No other process should be able to create marker files because their existence causes the
+# boringssl KAT to be skipped.
+neverallow {
+  domain
+  -vendor_boringssl_self_test
+  -boringssl_self_test
+  -init
+  -vendor_init
+} boringssl_self_test_marker:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -vendor_boringssl_self_test
+  -boringssl_self_test
+  -init
+  -vendor_init
+} boringssl_self_test_marker:dir write;
+#line 1 "system/sepolicy/private/bpfdomain.te"
+# platform should have ownership of network attachpoints for BPF
+neverallow {
+  bpfdomain
+  -bpfloader
+  -netd
+  -netutils_wrapper
+  -network_stack
+  -system_server
+} self:{ capability cap_userns } { net_admin net_raw };
+
+# any domain which uses bpf is a bpfdomain
+neverallow { domain -bpfdomain } *:bpf *;
+
+allow bpfdomain fs_bpf:dir search;
+
+# genfscon doesn't seem to trigger during symlink creation,
+# and thus any created symlinks end up as 'fs_bpf:lnk_type',
+# however this feels like a kernel bug / missing feature,
+# so let's allow all bpffs_type's instead,
+# this will keep things working even if this is fixed.
+allow bpfdomain bpffs_type:lnk_file read;
+
+# Needed for //frameworks/libs/net:
+# common/native/bpf_headers/include/bpf/WaitForProgsLoaded.h
+
+#line 25
+allow bpfdomain bpf_progs_loaded_prop:file { getattr open read map };
+#line 25
+
+#line 1 "system/sepolicy/private/bpfloader.te"
+type bpfloader_exec, system_file_type, exec_type, file_type;
+
+typeattribute bpfloader bpfdomain;
+
+# allow bpfloader to write to the kernel log (starts early)
+allow bpfloader kmsg_device:chr_file { open append write lock map };
+
+# These permissions are required to pin ebpf maps & programs.
+allow bpfloader bpffs_type:dir { add_name create remove_name search write };
+allow bpfloader bpffs_type:file { create getattr read rename setattr };
+allow bpfloader bpffs_type:lnk_file { create getattr read };
+allow { bpffs_type -fs_bpf } fs_bpf:filesystem associate;
+
+# Allow bpfloader to create bpf maps and programs.
+allow bpfloader self:bpf { map_create map_read map_write prog_load prog_run };
+
+allow bpfloader self:capability { chown sys_admin net_admin };
+
+allow bpfloader sysfs_fs_fuse_bpf:file { getattr open read ioctl lock map watch watch_reads };
+
+allow bpfloader proc_bpf:file { open append write lock map };
+
+
+#line 23
+
+#line 23
+allow bpfloader property_socket:sock_file write;
+#line 23
+allow bpfloader init:unix_stream_socket connectto;
+#line 23
+
+#line 23
+allow bpfloader bpf_progs_loaded_prop:property_service set;
+#line 23
+
+#line 23
+allow bpfloader bpf_progs_loaded_prop:file { getattr open read map };
+#line 23
+
+#line 23
+
+
+allow bpfloader bpfloader_exec:file execute_no_trans;
+
+###
+### Neverallow rules
+###
+
+# Note: we don't care about getattr/mounton/search
+neverallow { domain            } bpffs_type:dir ~{ add_name create getattr mounton remove_name search write };
+neverallow { domain -bpfloader } bpffs_type:dir { add_name create remove_name write };
+
+neverallow { domain            } bpffs_type:file ~{ create getattr map open read rename setattr write };
+neverallow { domain -bpfloader } bpffs_type:file { create map open rename setattr };
+neverallow { domain -bpfloader -gpuservice -lmkd -mediaprovider_app -netd -netutils_wrapper                -system_server } fs_bpf:file               { getattr read };
+neverallow { domain -bpfloader                                                                                            } fs_bpf_loader:file        { getattr read };
+neverallow { domain -bpfloader                                                              -network_stack                } fs_bpf_net_private:file   { getattr read };
+neverallow { domain -bpfloader                                                              -network_stack -system_server } fs_bpf_net_shared:file    { getattr read };
+neverallow { domain -bpfloader                                      -netd                   -network_stack -system_server } fs_bpf_netd_readonly:file { getattr read };
+neverallow { domain -bpfloader                                      -netd -netutils_wrapper -network_stack -system_server } fs_bpf_netd_shared:file   { getattr read };
+neverallow { domain -bpfloader                                                              -network_stack                } fs_bpf_tethering:file     { getattr read };
+neverallow { domain -bpfloader                                                                                            -uprobestats } fs_bpf_uprobestats:file   { getattr read };
+neverallow { domain -bpfloader -gpuservice                          -netd -netutils_wrapper -network_stack -system_server -uprobestats } { bpffs_type -fs_bpf_vendor }:file write;
+
+neverallow { domain -bpfloader } bpffs_type:lnk_file ~read;
+neverallow { domain -bpfdomain } bpffs_type:lnk_file read;
+
+neverallow { domain -bpfloader } *:bpf { map_create prog_load };
+
+# 'fs_bpf_loader' is for internal use of the BpfLoader oneshot boot time process.
+neverallow { domain -bpfloader } fs_bpf_loader:bpf *;
+neverallow { domain -bpfloader } fs_bpf_loader:file *;
+
+neverallow {
+  domain
+  -bpfloader
+  -gpuservice
+  -hal_health_server
+  -mediaprovider_app
+  -netd
+  -netutils_wrapper
+  -network_stack
+  -system_server
+  -uprobestats
+} *:bpf prog_run;
+neverallow { domain -bpfloader -gpuservice -lmkd -mediaprovider_app -netd -network_stack -system_server -uprobestats } *:bpf { map_read map_write };
+neverallow { domain -bpfloader -init } bpfloader_exec:file { execute execute_no_trans };
+
+neverallow { coredomain -bpfloader -netd -netutils_wrapper } fs_bpf_vendor:file *;
+
+neverallow bpfloader *:{ tcp_socket udp_socket rawip_socket } *;
+
+# No domain should be allowed to ptrace bpfloader
+neverallow { domain  } bpfloader:process ptrace;
+
+neverallow { domain -bpfloader } proc_bpf:file write;
+#line 1 "system/sepolicy/private/bufferhubd.te"
+typeattribute bufferhubd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init bufferhubd_exec:file { getattr open read execute map };
+#line 3
+allow init bufferhubd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow bufferhubd bufferhubd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init bufferhubd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init bufferhubd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init bufferhubd_exec:process bufferhubd;
+#line 3
+
+#line 3
+
+#line 1 "system/sepolicy/private/cameraserver.te"
+typeattribute cameraserver coredomain;
+
+typeattribute cameraserver camera_service_server;
+
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init cameraserver_exec:file { getattr open read execute map };
+#line 5
+allow init cameraserver:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow cameraserver cameraserver_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init cameraserver:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init cameraserver:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init cameraserver_exec:process cameraserver;
+#line 5
+
+#line 5
+
+
+#line 6
+type_transition cameraserver tmpfs:file cameraserver_tmpfs;
+#line 6
+allow cameraserver cameraserver_tmpfs:file { read write getattr map };
+#line 6
+
+
+allow cameraserver gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow cameraserver gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow cameraserver virtual_camera:binder call;
+#line 1 "system/sepolicy/private/canhalconfigurator.te"
+type canhalconfigurator, domain, coredomain;
+type canhalconfigurator_exec, exec_type, system_file_type, file_type;
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init canhalconfigurator_exec:file { getattr open read execute map };
+#line 3
+allow init canhalconfigurator:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow canhalconfigurator canhalconfigurator_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init canhalconfigurator:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init canhalconfigurator:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init canhalconfigurator_exec:process canhalconfigurator;
+#line 3
+
+#line 3
+
+
+# This allows the configurator to look up the CAN HAL controller via
+# hwservice_manager and communicate with it.
+
+#line 7
+typeattribute canhalconfigurator halclientdomain;
+#line 7
+typeattribute canhalconfigurator hal_can_controller_client;
+#line 7
+
+#line 7
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 7
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 7
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 7
+
+#line 7
+typeattribute canhalconfigurator hal_can_controller;
+#line 7
+# Find passthrough HAL implementations
+#line 7
+allow hal_can_controller system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow hal_can_controller vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow hal_can_controller vendor_file:file { read open getattr execute map };
+#line 7
+
+#line 7
+
+
+
+#line 9
+# Call the servicemanager and transfer references to it.
+#line 9
+allow canhalconfigurator servicemanager:binder { call transfer };
+#line 9
+# Allow servicemanager to send out callbacks
+#line 9
+allow servicemanager canhalconfigurator:binder { call transfer };
+#line 9
+# servicemanager performs getpidcon on clients.
+#line 9
+allow servicemanager canhalconfigurator:dir search;
+#line 9
+allow servicemanager canhalconfigurator:file { read open };
+#line 9
+allow servicemanager canhalconfigurator:process getattr;
+#line 9
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 9
+# all domains in domain.te.
+#line 9
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow hal_can_controller canhalconfigurator:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow canhalconfigurator hal_can_controller:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow hal_can_controller canhalconfigurator:fd use;
+#line 10
+
+#line 1 "system/sepolicy/private/charger.te"
+typeattribute charger coredomain;
+
+# charger needs to tell init to continue the boot
+# process when running in charger mode.
+# The system charger needs to be allowed to set these properties on legacy devices.
+
+#line 6
+
+#line 6
+allow charger property_socket:sock_file write;
+#line 6
+allow charger init:unix_stream_socket connectto;
+#line 6
+
+#line 6
+allow charger system_prop:property_service set;
+#line 6
+
+#line 6
+allow charger system_prop:file { getattr open read map };
+#line 6
+
+#line 6
+
+
+#line 7
+
+#line 7
+allow charger property_socket:sock_file write;
+#line 7
+allow charger init:unix_stream_socket connectto;
+#line 7
+
+#line 7
+allow charger exported_system_prop:property_service set;
+#line 7
+
+#line 7
+allow charger exported_system_prop:file { getattr open read map };
+#line 7
+
+#line 7
+
+
+#line 8
+
+#line 8
+allow charger property_socket:sock_file write;
+#line 8
+allow charger init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow charger exported3_system_prop:property_service set;
+#line 8
+
+#line 8
+allow charger exported3_system_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+
+# The system charger can read ro.charger.*
+
+#line 11
+allow charger charger_prop:file { getattr open read map };
+#line 11
+
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 13
+
+#line 13
+    neverallow {
+#line 13
+        domain
+#line 13
+        -init
+#line 13
+        -dumpstate
+#line 13
+        -charger
+#line 13
+    } charger_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+
+#line 13
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 20
+
+#line 1 "system/sepolicy/private/charger_type.te"
+# charger needs to tell init to continue the boot
+# process when running in charger mode.
+
+#line 3
+
+#line 3
+allow charger_type property_socket:sock_file write;
+#line 3
+allow charger_type init:unix_stream_socket connectto;
+#line 3
+
+#line 3
+allow charger_type charger_status_prop:property_service set;
+#line 3
+
+#line 3
+allow charger_type charger_status_prop:file { getattr open read map };
+#line 3
+
+#line 3
+
+
+#line 4
+allow charger_type charger_config_prop:file { getattr open read map };
+#line 4
+
+
+# get minui properties
+
+#line 7
+allow charger_type recovery_config_prop:file { getattr open read map };
+#line 7
+
+
+### Neverallow rules for charger properties
+
+# charger_config_prop: Only init and vendor_init is allowed to set it
+neverallow {
+    domain
+    -init
+    -vendor_init
+} charger_config_prop:property_service set;
+
+# charger_status_prop: Only init, vendor_init, charger, and charger_vendor
+# are allowed to set it
+neverallow {
+    domain
+    -init
+    -vendor_init
+    -charger
+    -charger_vendor
+} charger_status_prop:property_service set;
+
+# Both charger_config_prop and charger_status_prop:
+# Only init, vendor_init, dumpstate, charger, and charger_vendor
+# are allowed to read it
+neverallow {
+    domain
+    -init
+    -dumpstate
+    -vendor_init
+    -charger
+    -charger_vendor
+} { charger_config_prop charger_status_prop }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 1 "system/sepolicy/private/clatd.te"
+# 464xlat daemon
+type clatd, domain, coredomain;
+type clatd_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+typeattribute clatd netdomain;
+#line 5
+
+
+# Access objects inherited from system_server.
+allow clatd system_server:fd use;
+allow clatd system_server:packet_socket { read write };
+allow clatd system_server:rawip_socket { read write };
+
+allow clatd tun_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/private/compos_fd_server.te"
+# Make ART inputs and outputs available to the CompOS VM
+type compos_fd_server, domain, coredomain;
+
+# Allow access to open fds inherited from composd
+allow compos_fd_server composd:fd use;
+
+# Allow creating new files and directories in the staging directory.
+allow compos_fd_server apex_art_staging_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow compos_fd_server apex_art_staging_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow creating new files and directories in the artifacts directory.
+allow compos_fd_server apex_art_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow compos_fd_server apex_art_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Use a pipe to signal readiness
+allow compos_fd_server composd:fifo_file write;
+
+# TODO(b/196109647) - remove this when no longer needed by minijail
+allow compos_fd_server composd:fifo_file read;
+
+# Create a listening vsock for the VM to connect back to
+allow compos_fd_server self:vsock_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } listen accept };
+
+# Only composd can enter the domain via exec
+neverallow { domain -composd } compos_fd_server:process transition;
+neverallow * compos_fd_server:process dyntransition;
+#line 1 "system/sepolicy/private/compos_verify.te"
+# Run by odsign to verify a CompOS signature
+type compos_verify, domain, coredomain;
+type compos_verify_exec, exec_type, file_type, system_file_type;
+
+# Start a VM
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow compos_verify servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager compos_verify:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager compos_verify:dir search;
+#line 6
+allow servicemanager compos_verify:file { read open };
+#line 6
+allow servicemanager compos_verify:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+;
+
+#line 7
+# Transition to virtualizationmanager when the client executes it.
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow compos_verify virtualizationmanager_exec:file { getattr open read execute map };
+#line 7
+allow compos_verify virtualizationmanager:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow virtualizationmanager virtualizationmanager_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+allow virtualizationmanager compos_verify:process sigchld;
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit compos_verify virtualizationmanager:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow compos_verify virtualizationmanager:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition compos_verify virtualizationmanager_exec:process virtualizationmanager;
+#line 7
+
+#line 7
+# Allow virtualizationmanager to communicate over UDS with the client.
+#line 7
+allow { virtualizationmanager crosvm } compos_verify:unix_stream_socket { ioctl getattr read write };
+#line 7
+# Let the client pass file descriptors to virtualizationmanager and on to crosvm.
+#line 7
+allow { virtualizationmanager crosvm } compos_verify:fd use;
+#line 7
+# Let the client use file descriptors created by virtualizationmanager.
+#line 7
+allow compos_verify virtualizationmanager:fd use;
+#line 7
+# Allow piping console log to the client
+#line 7
+allow { virtualizationmanager crosvm } compos_verify:fifo_file { ioctl getattr read write };
+#line 7
+# Allow client to read/write vsock created by virtualizationmanager to communicate with the VM
+#line 7
+# that it created. Notice that we do not grant permission to create a vsock;
+#line 7
+# the client can only connect to VMs that it owns.
+#line 7
+allow compos_verify virtualizationmanager:vsock_socket { getattr getopt read write };
+#line 7
+# Allow client to inspect hypervisor capabilities
+#line 7
+
+#line 7
+allow compos_verify hypervisor_prop:file { getattr open read map };
+#line 7
+
+#line 7
+# Allow client to read (but not open) the crashdump provided by virtualizationmanager
+#line 7
+allow compos_verify virtualizationservice_data_file:file { getattr read };
+#line 7
+;
+
+# Read instance image & write VM logs
+allow compos_verify apex_module_data_file:dir search;
+allow compos_verify apex_compos_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow compos_verify apex_compos_data_file:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } create };
+
+# Read CompOS info & signature files
+allow compos_verify apex_art_data_file:dir search;
+allow compos_verify apex_art_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow odsign to redirect our stdout/stderr to log
+allow compos_verify odsign:fd use;
+allow compos_verify odsign_devpts:chr_file { read write };
+
+# Only odsign can enter the domain via exec
+neverallow { domain -odsign } compos_verify:process transition;
+neverallow * compos_verify:process dyntransition;
+#line 1 "system/sepolicy/private/composd.te"
+type composd, domain, coredomain;
+type composd_exec, system_file_type, exec_type, file_type;
+
+# Host dynamic AIDL services
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init composd_exec:file { getattr open read execute map };
+#line 5
+allow init composd:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow composd composd_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init composd:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init composd:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init composd_exec:process composd;
+#line 5
+
+#line 5
+
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow composd servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager composd:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager composd:dir search;
+#line 6
+allow servicemanager composd:file { read open };
+#line 6
+allow servicemanager composd:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+  allow composd compos_service:service_manager { add find };
+#line 7
+  neverallow { domain -composd } compos_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+
+# Call back into system server
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow composd system_server:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow system_server composd:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow composd system_server:fd use;
+#line 10
+
+
+# Start a VM
+
+#line 13
+# Transition to virtualizationmanager when the client executes it.
+#line 13
+
+#line 13
+# Allow the necessary permissions.
+#line 13
+
+#line 13
+# Old domain may exec the file and transition to the new domain.
+#line 13
+allow composd virtualizationmanager_exec:file { getattr open read execute map };
+#line 13
+allow composd virtualizationmanager:process transition;
+#line 13
+# New domain is entered by executing the file.
+#line 13
+allow virtualizationmanager virtualizationmanager_exec:file { entrypoint open read execute getattr map };
+#line 13
+# New domain can send SIGCHLD to its caller.
+#line 13
+allow virtualizationmanager composd:process sigchld;
+#line 13
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 13
+dontaudit composd virtualizationmanager:process noatsecure;
+#line 13
+# XXX dontaudit candidate but requires further study.
+#line 13
+allow composd virtualizationmanager:process { siginh rlimitinh };
+#line 13
+
+#line 13
+# Make the transition occur by default.
+#line 13
+type_transition composd virtualizationmanager_exec:process virtualizationmanager;
+#line 13
+
+#line 13
+# Allow virtualizationmanager to communicate over UDS with the client.
+#line 13
+allow { virtualizationmanager crosvm } composd:unix_stream_socket { ioctl getattr read write };
+#line 13
+# Let the client pass file descriptors to virtualizationmanager and on to crosvm.
+#line 13
+allow { virtualizationmanager crosvm } composd:fd use;
+#line 13
+# Let the client use file descriptors created by virtualizationmanager.
+#line 13
+allow composd virtualizationmanager:fd use;
+#line 13
+# Allow piping console log to the client
+#line 13
+allow { virtualizationmanager crosvm } composd:fifo_file { ioctl getattr read write };
+#line 13
+# Allow client to read/write vsock created by virtualizationmanager to communicate with the VM
+#line 13
+# that it created. Notice that we do not grant permission to create a vsock;
+#line 13
+# the client can only connect to VMs that it owns.
+#line 13
+allow composd virtualizationmanager:vsock_socket { getattr getopt read write };
+#line 13
+# Allow client to inspect hypervisor capabilities
+#line 13
+
+#line 13
+allow composd hypervisor_prop:file { getattr open read map };
+#line 13
+
+#line 13
+# Allow client to read (but not open) the crashdump provided by virtualizationmanager
+#line 13
+allow composd virtualizationservice_data_file:file { getattr read };
+#line 13
+
+
+# Prepare staging directory for odrefresh
+allow composd apex_art_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom };
+allow composd apex_art_staging_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow composd apex_art_staging_data_file:file { getattr unlink };
+
+# Delete files or enable fs-verity in the odrefresh target directory
+allow composd apex_art_data_file:file { open ioctl read unlink write };
+allowxperm composd apex_art_data_file:file ioctl 0x6685;
+
+# Access our APEX data files
+allow composd apex_module_data_file:dir search;
+allow composd apex_compos_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow composd apex_compos_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Run fd_server in its own domain, and send SIGTERM when finished.
+
+#line 30
+# Allow the necessary permissions.
+#line 30
+
+#line 30
+# Old domain may exec the file and transition to the new domain.
+#line 30
+allow composd fd_server_exec:file { getattr open read execute map };
+#line 30
+allow composd compos_fd_server:process transition;
+#line 30
+# New domain is entered by executing the file.
+#line 30
+allow compos_fd_server fd_server_exec:file { entrypoint open read execute getattr map };
+#line 30
+# New domain can send SIGCHLD to its caller.
+#line 30
+allow compos_fd_server composd:process sigchld;
+#line 30
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 30
+dontaudit composd compos_fd_server:process noatsecure;
+#line 30
+# XXX dontaudit candidate but requires further study.
+#line 30
+allow composd compos_fd_server:process { siginh rlimitinh };
+#line 30
+
+#line 30
+# Make the transition occur by default.
+#line 30
+type_transition composd fd_server_exec:process compos_fd_server;
+#line 30
+
+allow composd compos_fd_server:process signal;
+
+# Read properties used to configure the CompOS VM
+
+#line 34
+allow composd composd_vm_art_prop:file { getattr open read map };
+#line 34
+
+
+#line 35
+allow composd composd_vm_vendor_prop:file { getattr open read map };
+#line 35
+
+
+# Read ART's properties
+
+#line 38
+allow composd dalvik_config_prop_type:file { getattr open read map };
+#line 38
+
+
+#line 39
+allow composd device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 39
+
+
+# We never create any artifact files directly
+neverallow composd apex_art_data_file:file create;
+
+# ART sets these properties via init script, nothing else should
+neverallow { domain -init } composd_vm_art_prop:property_service set;
+#line 1 "system/sepolicy/private/coredomain.te"
+
+#line 1
+allow coredomain apex_ready_prop:file { getattr open read map };
+#line 1
+
+
+#line 2
+allow coredomain boot_status_prop:file { getattr open read map };
+#line 2
+
+
+#line 3
+allow coredomain camera_config_prop:file { getattr open read map };
+#line 3
+
+
+#line 4
+allow coredomain dalvik_config_prop_type:file { getattr open read map };
+#line 4
+
+
+#line 5
+allow coredomain dalvik_runtime_prop:file { getattr open read map };
+#line 5
+
+
+#line 6
+allow coredomain exported_pm_prop:file { getattr open read map };
+#line 6
+
+
+#line 7
+allow coredomain ffs_config_prop:file { getattr open read map };
+#line 7
+
+
+#line 8
+allow coredomain graphics_config_prop:file { getattr open read map };
+#line 8
+
+
+#line 9
+allow coredomain graphics_config_writable_prop:file { getattr open read map };
+#line 9
+
+
+#line 10
+allow coredomain hdmi_config_prop:file { getattr open read map };
+#line 10
+
+
+#line 11
+allow coredomain init_service_status_private_prop:file { getattr open read map };
+#line 11
+
+
+#line 12
+allow coredomain lmkd_config_prop:file { getattr open read map };
+#line 12
+
+
+#line 13
+allow coredomain localization_prop:file { getattr open read map };
+#line 13
+
+
+#line 14
+allow coredomain pm_prop:file { getattr open read map };
+#line 14
+
+
+#line 15
+allow coredomain radio_control_prop:file { getattr open read map };
+#line 15
+
+
+#line 16
+allow coredomain rollback_test_prop:file { getattr open read map };
+#line 16
+
+
+#line 17
+allow coredomain setupwizard_prop:file { getattr open read map };
+#line 17
+
+
+#line 18
+allow coredomain setupwizard_mode_prop:file { getattr open read map };
+#line 18
+
+
+#line 19
+allow coredomain sqlite_log_prop:file { getattr open read map };
+#line 19
+
+
+#line 20
+allow coredomain storagemanager_config_prop:file { getattr open read map };
+#line 20
+
+
+#line 21
+allow coredomain surfaceflinger_color_prop:file { getattr open read map };
+#line 21
+
+
+#line 22
+allow coredomain systemsound_config_prop:file { getattr open read map };
+#line 22
+
+
+#line 23
+allow coredomain telephony_config_prop:file { getattr open read map };
+#line 23
+
+
+#line 24
+allow coredomain usb_config_prop:file { getattr open read map };
+#line 24
+
+
+#line 25
+allow coredomain usb_control_prop:file { getattr open read map };
+#line 25
+
+
+#line 26
+allow coredomain userspace_reboot_config_prop:file { getattr open read map };
+#line 26
+
+
+#line 27
+allow coredomain vold_config_prop:file { getattr open read map };
+#line 27
+
+
+#line 28
+allow coredomain vts_status_prop:file { getattr open read map };
+#line 28
+
+
+#line 29
+allow coredomain zygote_config_prop:file { getattr open read map };
+#line 29
+
+
+#line 30
+allow coredomain zygote_wrap_prop:file { getattr open read map };
+#line 30
+
+
+# TODO(b/170590987): remove this after cleaning up default_prop
+
+#line 33
+allow coredomain default_prop:file { getattr open read map };
+#line 33
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 35
+
+#line 35
+neverallow {
+#line 35
+    coredomain
+#line 35
+
+#line 35
+    # for chowning
+#line 35
+    -init
+#line 35
+
+#line 35
+    # generic access to sysfs_type
+#line 35
+    -apexd
+#line 35
+    -ueventd
+#line 35
+    -vold
+#line 35
+} sysfs_leds:file *;
+#line 35
+
+#line 35
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 47
+
+
+# On TREBLE devices, a limited set of files in /vendor are accessible to
+# only a few allowlisted coredomains to keep system/vendor separation.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 51
+
+#line 51
+    # Limit access to /vendor/app
+#line 51
+    neverallow {
+#line 51
+        coredomain
+#line 51
+        -appdomain
+#line 51
+        -artd
+#line 51
+        -dex2oat
+#line 51
+        -dexoptanalyzer
+#line 51
+        -idmap
+#line 51
+        -init
+#line 51
+        -installd
+#line 51
+        -heapprofd
+#line 51
+        -postinstall_dexopt
+#line 51
+        -rs # spawned by appdomain, so carryover the exception above
+#line 51
+        -system_server
+#line 51
+        -traced_perf
+#line 51
+    } vendor_app_file:dir { open read getattr search };
+#line 51
+
+#line 51
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 68
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 70
+
+#line 70
+    neverallow {
+#line 70
+        coredomain
+#line 70
+        -appdomain
+#line 70
+        -artd
+#line 70
+        -dex2oat
+#line 70
+        -dexoptanalyzer
+#line 70
+        -idmap
+#line 70
+        -init
+#line 70
+        -installd
+#line 70
+        -heapprofd
+#line 70
+        
+#line 70
+        -postinstall_dexopt
+#line 70
+        -profman
+#line 70
+        -rs # spawned by appdomain, so carryover the exception above
+#line 70
+        
+#line 70
+        -system_server
+#line 70
+        -traced_perf
+#line 70
+        -mediaserver
+#line 70
+    } vendor_app_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 70
+
+#line 70
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 90
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 92
+
+#line 92
+    # Limit access to /vendor/overlay
+#line 92
+    neverallow {
+#line 92
+        coredomain
+#line 92
+        -appdomain
+#line 92
+        -artd
+#line 92
+        -dex2oat
+#line 92
+        -dexoptanalyzer
+#line 92
+        -idmap
+#line 92
+        -init
+#line 92
+        -installd
+#line 92
+        -postinstall_dexopt
+#line 92
+        -rs # spawned by appdomain, so carryover the exception above
+#line 92
+        -system_server
+#line 92
+        -traced_perf
+#line 92
+        -app_zygote
+#line 92
+        -webview_zygote
+#line 92
+        -zygote
+#line 92
+        -heapprofd
+#line 92
+    } vendor_overlay_file:dir { getattr open read search };
+#line 92
+
+#line 92
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 112
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 114
+
+#line 114
+    neverallow {
+#line 114
+        coredomain
+#line 114
+        -appdomain
+#line 114
+        -artd
+#line 114
+        -dex2oat
+#line 114
+        -dexoptanalyzer
+#line 114
+        -idmap
+#line 114
+        -init
+#line 114
+        -installd
+#line 114
+        -postinstall_dexopt
+#line 114
+        -rs # spawned by appdomain, so carryover the exception above
+#line 114
+        -system_server
+#line 114
+        -traced_perf
+#line 114
+        -app_zygote
+#line 114
+        -webview_zygote
+#line 114
+        -zygote
+#line 114
+        -heapprofd
+#line 114
+        
+#line 114
+        
+#line 114
+    } vendor_overlay_file:file open;
+#line 114
+
+#line 114
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 135
+
+
+# Core domains are not permitted to use kernel interfaces which are not
+# explicitly labeled.
+# TODO(b/65643247): Apply these neverallow rules to all coredomain.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 140
+
+#line 140
+  # /proc
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -init
+#line 140
+    -vold
+#line 140
+  } proc:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # /sys
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -apexd
+#line 140
+    -init
+#line 140
+    -ueventd
+#line 140
+    
+#line 140
+    -vold
+#line 140
+  } sysfs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # /dev
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -apexd
+#line 140
+    -fsck
+#line 140
+    -init
+#line 140
+    -ueventd
+#line 140
+  } device:{ blk_file file } { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # debugfs
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    
+#line 140
+      -dumpstate
+#line 140
+      -init
+#line 140
+      -system_server
+#line 140
+    
+#line 140
+  } debugfs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # tracefs
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -atrace
+#line 140
+    -dumpstate
+#line 140
+    -gpuservice
+#line 140
+    -init
+#line 140
+    -traced_perf
+#line 140
+    -traced_probes
+#line 140
+    -shell
+#line 140
+    -system_server
+#line 140
+    -traceur_app
+#line 140
+    
+#line 140
+    
+#line 140
+  } debugfs_tracing:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # inotifyfs
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -init
+#line 140
+  } inotify:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # pstorefs
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -bootstat
+#line 140
+    -charger
+#line 140
+    -dumpstate
+#line 140
+    
+#line 140
+    -init
+#line 140
+    -logd
+#line 140
+    -logpersist
+#line 140
+    -recovery_persist
+#line 140
+    -recovery_refresh
+#line 140
+    -shell
+#line 140
+    -system_server
+#line 140
+  } pstorefs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # configfs
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -init
+#line 140
+    -system_server
+#line 140
+  } configfs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # functionfs
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -adbd
+#line 140
+    -init
+#line 140
+    -mediaprovider
+#line 140
+    -system_server
+#line 140
+  } functionfs:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # usbfs and binfmt_miscfs
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -init
+#line 140
+  }{ usbfs binfmt_miscfs }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+  # dmabuf heaps
+#line 140
+  neverallow {
+#line 140
+    coredomain
+#line 140
+    -init
+#line 140
+    -ueventd
+#line 140
+  }{
+#line 140
+    dmabuf_heap_device_type
+#line 140
+    -dmabuf_system_heap_device
+#line 140
+    -dmabuf_system_secure_heap_device
+#line 140
+  }:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 140
+
+#line 140
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 247
+
+
+# Following /dev nodes must not be directly accessed by coredomain, but should
+# instead be wrapped by HALs.
+neverallow coredomain {
+  iio_device
+  radio_device
+}:chr_file { open read append write ioctl };
+
+# TODO(b/120243891): HAL permission to tee_device is included into coredomain
+# on non-Treble devices.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 258
+
+#line 258
+  neverallow coredomain tee_device:chr_file { open read append write ioctl };
+#line 258
+
+#line 258
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 260
+
+#line 1 "system/sepolicy/private/cppreopts.te"
+# cppreopts
+#
+# This command copies preopted files from the system_b partition to the data
+# partition. This domain ensures that we are only copying into specific
+# directories.
+
+type cppreopts, domain, mlstrustedsubject, coredomain;
+type cppreopts_exec, system_file_type, exec_type, file_type;
+
+# Technically not a daemon but we do want the transition from init domain to
+# cppreopts to occur.
+
+#line 12
+
+#line 12
+# Allow the necessary permissions.
+#line 12
+
+#line 12
+# Old domain may exec the file and transition to the new domain.
+#line 12
+allow init cppreopts_exec:file { getattr open read execute map };
+#line 12
+allow init cppreopts:process transition;
+#line 12
+# New domain is entered by executing the file.
+#line 12
+allow cppreopts cppreopts_exec:file { entrypoint open read execute getattr map };
+#line 12
+# New domain can send SIGCHLD to its caller.
+#line 12
+
+#line 12
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 12
+dontaudit init cppreopts:process noatsecure;
+#line 12
+# XXX dontaudit candidate but requires further study.
+#line 12
+allow init cppreopts:process { siginh rlimitinh };
+#line 12
+
+#line 12
+# Make the transition occur by default.
+#line 12
+type_transition init cppreopts_exec:process cppreopts;
+#line 12
+
+#line 12
+
+
+#line 13
+# Allow the necessary permissions.
+#line 13
+
+#line 13
+# Old domain may exec the file and transition to the new domain.
+#line 13
+allow cppreopts preopt2cachename_exec:file { getattr open read execute map };
+#line 13
+allow cppreopts preopt2cachename:process transition;
+#line 13
+# New domain is entered by executing the file.
+#line 13
+allow preopt2cachename preopt2cachename_exec:file { entrypoint open read execute getattr map };
+#line 13
+# New domain can send SIGCHLD to its caller.
+#line 13
+allow preopt2cachename cppreopts:process sigchld;
+#line 13
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 13
+dontaudit cppreopts preopt2cachename:process noatsecure;
+#line 13
+# XXX dontaudit candidate but requires further study.
+#line 13
+allow cppreopts preopt2cachename:process { siginh rlimitinh };
+#line 13
+
+#line 13
+# Make the transition occur by default.
+#line 13
+type_transition cppreopts preopt2cachename_exec:process preopt2cachename;
+#line 13
+;
+
+# Allow cppreopts copy files into the dalvik-cache
+allow cppreopts dalvikcache_data_file:dir { add_name remove_name search write };
+allow cppreopts dalvikcache_data_file:file { create getattr open read rename write unlink };
+
+# Allow cppreopts to execute itself using #!/system/bin/sh
+allow cppreopts shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow us to run find on /postinstall
+allow cppreopts system_file:dir { open read };
+
+# Allow running the cp command using cppreopts permissions. Needed so we can
+# write into dalvik-cache
+allow cppreopts toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Silence the denial when /postinstall cannot be mounted, e.g., system_other
+# is wiped, but cppreopts.sh still runs.
+dontaudit cppreopts postinstall_mnt_dir:dir search;
+#line 1 "system/sepolicy/private/crash_dump.te"
+typeattribute crash_dump coredomain;
+
+# Crash dump does not need to access devices passed across exec().
+dontaudit crash_dump { devpts dev_type }:chr_file { read write };
+
+allow crash_dump {
+  domain
+  -apexd
+  -bpfloader
+  -crash_dump
+  -init
+  -kernel
+  -keystore
+  -llkd
+  -logd
+  -ueventd
+  -vendor_init
+  -vold
+}:process { ptrace signal sigchld sigstop sigkill };
+
+#line 29
+
+
+# Read ART APEX data directory
+allow crash_dump apex_art_data_file:dir { getattr search };
+allow crash_dump apex_art_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow crash dump to read bootstrap libraries
+allow crash_dump system_bootstrap_lib_file:dir { getattr search };
+allow crash_dump system_bootstrap_lib_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read Vendor APEX directories
+allow crash_dump vendor_apex_metadata_file:dir { getattr search };
+
+###
+### neverallow assertions
+###
+
+# sigchld not explicitly forbidden since it's part of the
+# domain-transition-on-exec macros, and is by itself not sensitive
+neverallow crash_dump {
+  apexd
+  
+  bpfloader
+  init
+  kernel
+  keystore
+  
+  llkd
+  
+  logd
+  
+  ueventd
+  vendor_init
+  vold
+  
+}:process { ptrace signal sigstop sigkill };
+
+neverallow crash_dump self:process ptrace;
+neverallow crash_dump gpu_device:chr_file *;
+#line 1 "system/sepolicy/private/credstore.te"
+typeattribute credstore coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init credstore_exec:file { getattr open read execute map };
+#line 3
+allow init credstore:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow credstore credstore_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init credstore:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init credstore:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init credstore_exec:process credstore;
+#line 3
+
+#line 3
+
+
+# talk to Identity Credential
+
+#line 6
+typeattribute credstore halclientdomain;
+#line 6
+typeattribute credstore hal_identity_client;
+#line 6
+
+#line 6
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 6
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 6
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 6
+
+#line 6
+typeattribute credstore hal_identity;
+#line 6
+# Find passthrough HAL implementations
+#line 6
+allow hal_identity system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_identity vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_identity vendor_file:file { read open getattr execute map };
+#line 6
+
+#line 6
+
+
+# talk to keymint, specifically for IRemotelyProvisionedComponent/default
+
+#line 9
+typeattribute credstore halclientdomain;
+#line 9
+typeattribute credstore hal_keymint_client;
+#line 9
+
+#line 9
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 9
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 9
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 9
+
+#line 9
+typeattribute credstore hal_keymint;
+#line 9
+# Find passthrough HAL implementations
+#line 9
+allow hal_keymint system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_keymint vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_keymint vendor_file:file { read open getattr execute map };
+#line 9
+
+#line 9
+
+
+# credstore needs to get keys from the RKPD
+
+#line 12
+allow credstore remote_prov_prop:file { getattr open read map };
+#line 12
+
+allow credstore remote_provisioning_service:service_manager find;
+#line 1 "system/sepolicy/private/crosvm.te"
+type crosvm, domain, coredomain;
+type crosvm_exec, system_file_type, exec_type, file_type;
+type crosvm_tmpfs, file_type;
+
+# Let crosvm open VM manager devices such as /dev/kvm.
+allow crosvm vm_manager_device_type:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Most other domains shouldn't access /dev/kvm.
+neverallow { domain -crosvm -ueventd -shell } kvm_device:chr_file getattr;
+neverallow { domain -crosvm -ueventd } kvm_device:chr_file ~getattr;
+neverallowxperm { domain -crosvm } kvm_device:chr_file ioctl ~{ 0x0000ae03 };
+
+# Most other domains shouldn't access other vm managers either.
+# These restrictions need to be slightly looser than for kvm_device to allow
+# for different implementations.
+neverallow { coredomain appdomain -crosvm -ueventd -shell } vm_manager_device_type:chr_file getattr;
+neverallow { coredomain appdomain -crosvm -ueventd } vm_manager_device_type:chr_file ~getattr;
+
+# Let crosvm create temporary files.
+
+#line 20
+type_transition crosvm tmpfs:file crosvm_tmpfs;
+#line 20
+allow crosvm crosvm_tmpfs:file { read write getattr map };
+#line 20
+
+
+# Let crosvm receive file descriptors from VirtualizationService.
+allow crosvm virtualizationmanager:fd use;
+
+# Allow sending VirtualizationService the failure reason and console/log from the VM via pipe.
+allow crosvm virtualizationmanager:fifo_file write;
+
+# Let crosvm read the composite disk images (virtualizationservice_data_file), APEXes
+# (staging_data_file), APKs (apk_data_file and shell_data_file where the latter is for test apks in
+# /data/local/tmp), instance.img (app_data_file), and microdroid vendor image (vendor_microdroid_file).
+# Allow crosvm to read the instance image of the service VM saved in apex_virt_data_file.
+# Note that the open permission is not given as the files are passed as file descriptors.
+allow crosvm {
+  virtualizationservice_data_file
+  staging_data_file
+  apk_data_file
+  app_data_file
+  privapp_data_file
+  apex_compos_data_file
+  apex_virt_data_file
+  shell_data_file
+  vendor_microdroid_file
+}:file { getattr read ioctl lock };
+
+# Allow searching the directory where the composite disk images are.
+allow crosvm virtualizationservice_data_file:dir search;
+
+# When running a VM as root we get spurious capability denials.
+# Suppress them.
+#line 52
+
+
+# Allow crosvm to tune for performance.
+allow crosvm self:{ capability cap_userns } sys_nice;
+
+# Let crosvm access its control socket as created by VS.
+#   read, write, getattr: listener socket polling
+#   accept: listener socket accepting new connection
+# Note that the open permission is not given as the socket is passed by FD.
+allow crosvm virtualizationmanager:unix_stream_socket { accept read write getattr getopt };
+
+# Let crosvm open test artifacts under /data/local/tmp with file path. (e.g. custom pvmfw.img)
+#line 67
+
+
+# The instance image and the composite image should be writable as well because they could represent
+# mutable disks.
+allow crosvm {
+  virtualizationservice_data_file
+  app_data_file
+  privapp_data_file
+  apex_compos_data_file
+  apex_virt_data_file
+}:file write;
+
+# Allow crosvm to pipe console log to shell or app which could be the owner of a VM.
+allow crosvm adbd:fd use;
+allow crosvm adbd:unix_stream_socket { read write };
+allow crosvm devpts:chr_file { read write getattr ioctl };
+
+# crosvm tries to use netlink sockets as part its APCI implementation, but we don't need it for AVF (b/228077254)
+dontaudit crosvm self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# crosvm can write files in /data/local/tmp which are usually used for instance.img and logging by
+# compliance tests and demo apps. Write access to instance.img is particularily important because
+# the VM has to initialize the disk image on its first boot. Note that open access is still not
+# granted because the files are expected to be opened by the owner of the VM (apps or shell in case
+# when the vm is created by the `vm` tool) and handed over to crosvm as FD.
+allow crosvm shell_data_file:file write;
+
+# crosvm tries to read serial device, including the write-only pipe from virtualizationmanager (to
+# forward console/log to the host logcat).
+# crosvm only needs write permission, so dontaudit read
+dontaudit crosvm virtualizationmanager:fifo_file { read getattr };
+
+# Required for crosvm to start gdb-server to enable debugging of guest kernel.
+allow crosvm self:tcp_socket { bind create read setopt write accept listen };
+allow crosvm port:tcp_socket name_bind;
+allow crosvm adbd:unix_stream_socket ioctl;
+allow crosvm node:tcp_socket node_bind;
+
+# Allow crosvm to interact to VFIO device
+allow crosvm vfio_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow crosvm vfio_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow crosvm to access VM DTBO via a file created by virtualizationmanager.
+allow crosvm virtualizationmanager:fd use;
+allow crosvm virtualizationservice_data_file:file read;
+
+# Don't allow crosvm to open files that it doesn't own.
+# This is important because a malicious application could try to start a VM with a composite disk
+# image referring by name to files which it doesn't have permission to open, trying to get crosvm to
+# open them on its behalf. By preventing crosvm from opening any other files we prevent this
+# potential privilege escalation. See http://b/192453819 for more discussion.
+neverallow crosvm {
+  virtualizationservice_data_file
+  staging_data_file
+  apk_data_file
+  app_data_file
+  privapp_data_file
+  
+}:file open;
+
+# Don't allow crosvm to have access to ordinary vendor files that are not for VMs.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 128
+
+#line 128
+  neverallow crosvm {
+#line 128
+    vendor_file_type
+#line 128
+    -vendor_vm_file
+#line 128
+    -vendor_vm_data_file
+#line 128
+    # These types are not required for crosvm, but the access is granted to globally in domain.te
+#line 128
+    # thus should be exempted here.
+#line 128
+    -vendor_configs_file
+#line 128
+    -vendor_microdroid_file
+#line 128
+    -vndk_sp_file
+#line 128
+    -vendor_task_profiles_file
+#line 128
+  }:file *;
+#line 128
+
+#line 128
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 140
+
+
+# Only allow crosvm to read app data files for clients that can start
+# VMs. Note that the use of app data files is further restricted
+# inside the virtualizationservice by checking the label of all disk
+# image files.
+neverallow crosvm {
+  app_data_file_type
+  -app_data_file
+  -privapp_data_file
+  -shell_data_file
+}:file read;
+
+# Only virtualizationmanager can run crosvm
+neverallow {
+  domain
+  -crosvm
+  -virtualizationmanager
+} crosvm_exec:file { execute execute_no_trans };
+#line 1 "system/sepolicy/private/derive_classpath.te"
+
+# Domain for derive_classpath
+type derive_classpath, domain, coredomain;
+type derive_classpath_exec, system_file_type, exec_type, file_type;
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init derive_classpath_exec:file { getattr open read execute map };
+#line 5
+allow init derive_classpath:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow derive_classpath derive_classpath_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init derive_classpath:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init derive_classpath:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init derive_classpath_exec:process derive_classpath;
+#line 5
+
+#line 5
+
+
+# Read /apex
+allow derive_classpath apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+allow derive_classpath vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Create /data/system/environ/classpath file
+allow derive_classpath environ_system_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow derive_classpath environ_system_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# b/183079517 fails on gphone targets otherwise
+allow derive_classpath unlabeled:dir search;
+
+# Allow derive_classpath to write the classpath into ota dexopt
+# - Read the ota's apex dir
+allow derive_classpath postinstall_apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+# - Report the BCP to the ota's dexopt
+allow derive_classpath postinstall_dexopt:dir search;
+allow derive_classpath postinstall_dexopt:fd use;
+allow derive_classpath postinstall_dexopt:file read;
+allow derive_classpath postinstall_dexopt:lnk_file read;
+allow derive_classpath postinstall_dexopt_tmpfs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/private/derive_sdk.te"
+
+# Domain for derive_sdk
+type derive_sdk, domain, coredomain;
+type derive_sdk_exec, system_file_type, exec_type, file_type;
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init derive_sdk_exec:file { getattr open read execute map };
+#line 5
+allow init derive_sdk:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow derive_sdk derive_sdk_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init derive_sdk:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init derive_sdk:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init derive_sdk_exec:process derive_sdk;
+#line 5
+
+#line 5
+
+
+# Read /apex
+allow derive_sdk apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+allow derive_sdk vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Prop rules: writable by derive_sdk, readable by bootclasspath (apps)
+
+#line 12
+
+#line 12
+allow derive_sdk property_socket:sock_file write;
+#line 12
+allow derive_sdk init:unix_stream_socket connectto;
+#line 12
+
+#line 12
+allow derive_sdk module_sdkextensions_prop:property_service set;
+#line 12
+
+#line 12
+allow derive_sdk module_sdkextensions_prop:file { getattr open read map };
+#line 12
+
+#line 12
+
+neverallow { domain -init -derive_sdk } module_sdkextensions_prop:property_service set;
+
+# Allow derive_sdk to write data back to dumpstate when forked from dumpstate.
+# The shell_data_file permissions are needed when a bugreport is taken:
+# dumpstate will redirect its stdout to a temporary shell_data_file:file, and
+# this makes derive_sdk append to that file.
+allow derive_sdk dumpstate:fd use;
+allow derive_sdk dumpstate:unix_stream_socket { read write };
+allow derive_sdk shell_data_file:file { getattr append read write };
+#line 1 "system/sepolicy/private/device_as_webcam.te"
+# Domain for DeviceAsWebcam Service
+type device_as_webcam, domain, coredomain, mlstrustedsubject;
+
+
+#line 4
+typeattribute device_as_webcam appdomain;
+#line 4
+# Label tmpfs objects for all apps.
+#line 4
+type_transition device_as_webcam tmpfs:file appdomain_tmpfs;
+#line 4
+
+#line 4
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 4
+type device_as_webcam_userfaultfd;
+#line 4
+type_transition device_as_webcam device_as_webcam:anon_inode device_as_webcam_userfaultfd "[userfaultfd]";
+#line 4
+# Allow domain to create/use userfaultfd anon_inode.
+#line 4
+allow device_as_webcam device_as_webcam_userfaultfd:anon_inode { create ioctl read };
+#line 4
+# Suppress errors generate during bugreport
+#line 4
+dontaudit su device_as_webcam_userfaultfd:anon_inode *;
+#line 4
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 4
+neverallow { domain -device_as_webcam } device_as_webcam_userfaultfd:anon_inode *;
+#line 4
+
+#line 4
+allow device_as_webcam appdomain_tmpfs:file { execute getattr map read write };
+#line 4
+neverallow { device_as_webcam -runas_app -shell -simpleperf } { domain -device_as_webcam }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 4
+neverallow { appdomain -runas_app -shell -simpleperf -device_as_webcam } device_as_webcam:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 4
+# The Android security model guarantees the confidentiality and integrity
+#line 4
+# of application data and execution state. Ptrace bypasses those
+#line 4
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 4
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 4
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 4
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 4
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 4
+# live lock conditions.
+#line 4
+neverallow { domain -device_as_webcam -crash_dump  -runas_app -simpleperf } device_as_webcam:process ptrace;
+#line 4
+
+
+allow device_as_webcam system_app_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow device_as_webcam system_app_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow device_as_webcam { app_api_service cameraserver_service }:service_manager find;
+
+# Allow DeviceAsWebcam Service needs to access ro.usb.uvc.enabled property to
+# enale/disable itself
+
+#line 13
+allow device_as_webcam usb_uvc_enabled_prop:file { getattr open read map };
+#line 13
+
+
+# need to access /dev to list all devices
+allow device_as_webcam device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# UVC nodes are mounted as V4L2 nodes (/dev/video*) on the device. These need to
+# be accessed by the DeviceAsWebcam Service.
+allow device_as_webcam video_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow device_as_webcam video_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/private/dex2oat.te"
+# dex2oat
+type dex2oat, domain, coredomain;
+type dex2oat_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 5
+type dex2oat_userfaultfd;
+#line 5
+type_transition dex2oat dex2oat:anon_inode dex2oat_userfaultfd "[userfaultfd]";
+#line 5
+# Allow domain to create/use userfaultfd anon_inode.
+#line 5
+allow dex2oat dex2oat_userfaultfd:anon_inode { create ioctl read };
+#line 5
+# Suppress errors generate during bugreport
+#line 5
+dontaudit su dex2oat_userfaultfd:anon_inode *;
+#line 5
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 5
+neverallow { domain -dex2oat } dex2oat_userfaultfd:anon_inode *;
+#line 5
+
+
+
+#line 7
+allow dex2oat apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 7
+allow dex2oat apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 7
+
+# Access to /vendor/app
+
+#line 9
+allow dex2oat vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow dex2oat vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 9
+
+# Access /vendor/framework
+allow dex2oat vendor_framework_file:dir { getattr search };
+allow dex2oat vendor_framework_file:file { getattr open read map };
+# Access /vendor/overlay
+
+#line 14
+allow dex2oat vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 14
+allow dex2oat vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 14
+;
+# Vendor overlay can be found in vendor apex
+allow dex2oat vendor_apex_metadata_file:dir { getattr search };
+
+allow dex2oat tmpfs:file { read getattr map };
+
+
+#line 20
+allow dex2oat dalvikcache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow dex2oat dalvikcache_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 20
+
+allow dex2oat dalvikcache_data_file:file write;
+
+# Acquire advisory lock on /system/framework/arm/*
+allow dex2oat system_file:file lock;
+allow dex2oat postinstall_file:file lock;
+
+# Read already open asec_apk_file file descriptors passed by installd.
+# Also allow reading unlabeled files, to allow for upgrading forward
+# locked APKs.
+allow dex2oat asec_apk_file:file { read map };
+allow dex2oat unlabeled:file { read map };
+allow dex2oat oemfs:file { read map };
+allow dex2oat apk_tmp_file:dir search;
+allow dex2oat apk_tmp_file:file { getattr open read ioctl lock map watch watch_reads };
+allow dex2oat user_profile_data_file:file { getattr read lock map };
+
+# Allow dex2oat to compile app's secondary dex files which were reported back to
+# the framework.
+allow dex2oat { privapp_data_file app_data_file }:file { getattr read write lock map };
+
+# Allow dex2oat to find files and directories under /data/misc/apexdata/com.android.runtime.
+allow dex2oat apex_module_data_file:dir search;
+
+# Allow dex2oat to use devpts passed from odsign.
+allow dex2oat odsign_devpts:chr_file { read write };
+
+# Allow dex2oat to write to file descriptors from odrefresh for files
+# in the staging area.
+allow dex2oat apex_art_staging_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dex2oat apex_art_staging_data_file:file { getattr map read write unlink };
+
+# Allow dex2oat to read artifacts from odrefresh.
+allow dex2oat apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dex2oat apex_art_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dex2oat to read runtime native flag properties.
+
+#line 57
+allow dex2oat device_config_runtime_native_prop:file { getattr open read map };
+#line 57
+
+
+#line 58
+allow dex2oat device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 58
+
+
+# Allow dex2oat to read /apex/apex-info-list.xml
+allow dex2oat apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dex2oat to use file descriptors passed from privileged programs.
+allow dex2oat { artd installd odrefresh odsign }:fd use;
+
+# Allow dex2oat to read the /proc filesystem for CPU features, etc.
+allow dex2oat proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+##################
+# A/B OTA Dexopt #
+##################
+
+# Allow dex2oat to use file descriptors from otapreopt.
+allow dex2oat postinstall_dexopt:fd use;
+
+# Allow dex2oat to read files under /postinstall (e.g. APKs under /system, /system/bin/linker).
+allow dex2oat postinstall_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow dex2oat postinstall_file:filesystem getattr;
+allow dex2oat postinstall_file:lnk_file { getattr read };
+allow dex2oat postinstall_file:file read;
+# Allow dex2oat to use libraries under /postinstall/system (e.g. /system/lib/libc.so).
+# TODO(b/120266448): Remove when Bionic libraries are part of the Runtime APEX.
+allow dex2oat postinstall_file:file { execute getattr open };
+
+# Allow dex2oat access to /postinstall/apex.
+allow dex2oat postinstall_apex_mnt_dir:dir { getattr search };
+allow dex2oat postinstall_apex_mnt_dir:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dex2oat access to files in /data/ota.
+allow dex2oat ota_data_file:dir { { open getattr read search ioctl lock watch watch_reads } add_name write };
+allow dex2oat ota_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Create and read symlinks in /data/ota/dalvik-cache. This is required for PIC mode boot images,
+# where the oat file is symlinked to the original file in /system.
+allow dex2oat ota_data_file:lnk_file { create read };
+
+# It would be nice to tie this down, but currently, because of how images are written, we can't
+# pass file descriptors for the preopted boot image to dex2oat. So dex2oat needs to be able to
+# create them itself (and make them world-readable).
+allow dex2oat ota_data_file:file { create { open append write lock map } setattr };
+
+###############
+# APEX Update #
+###############
+
+# /dev/zero is inherited.
+allow dex2oat apexd:fd use;
+
+# Allow dex2oat to use file descriptors from preinstall.
+
+##############
+# Neverallow #
+##############
+
+neverallow dex2oat app_data_file_type:{ file lnk_file sock_file fifo_file } open;
+#line 1 "system/sepolicy/private/dexopt_chroot_setup.te"
+type dexopt_chroot_setup, domain, coredomain;
+type dexopt_chroot_setup_exec, system_file_type, exec_type, file_type;
+type dexopt_chroot_setup_tmpfs, file_type;
+
+# Allow dexopt_chroot_setup to publish a binder service and make binder calls.
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow dexopt_chroot_setup servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager dexopt_chroot_setup:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager dexopt_chroot_setup:dir search;
+#line 6
+allow servicemanager dexopt_chroot_setup:file { read open };
+#line 6
+allow servicemanager dexopt_chroot_setup:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+  allow dexopt_chroot_setup dexopt_chroot_setup_service:service_manager { add find };
+#line 7
+  neverallow { domain -dexopt_chroot_setup } dexopt_chroot_setup_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+allow dexopt_chroot_setup dumpstate:fifo_file { getattr write };
+allow dexopt_chroot_setup dumpstate:fd use;
+
+
+#line 11
+
+#line 11
+# Allow the necessary permissions.
+#line 11
+
+#line 11
+# Old domain may exec the file and transition to the new domain.
+#line 11
+allow init dexopt_chroot_setup_exec:file { getattr open read execute map };
+#line 11
+allow init dexopt_chroot_setup:process transition;
+#line 11
+# New domain is entered by executing the file.
+#line 11
+allow dexopt_chroot_setup dexopt_chroot_setup_exec:file { entrypoint open read execute getattr map };
+#line 11
+# New domain can send SIGCHLD to its caller.
+#line 11
+
+#line 11
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 11
+dontaudit init dexopt_chroot_setup:process noatsecure;
+#line 11
+# XXX dontaudit candidate but requires further study.
+#line 11
+allow init dexopt_chroot_setup:process { siginh rlimitinh };
+#line 11
+
+#line 11
+# Make the transition occur by default.
+#line 11
+type_transition init dexopt_chroot_setup_exec:process dexopt_chroot_setup;
+#line 11
+
+#line 11
+
+
+# Use tmpfs_domain() which will give tmpfs files created by dexopt_chroot_setup their
+# own label, which differs from other labels created by other processes.
+# This allows to distinguish in policy files created by dexopt_chroot_setup vs other
+# processes.
+
+#line 17
+type_transition dexopt_chroot_setup tmpfs:file dexopt_chroot_setup_tmpfs;
+#line 17
+allow dexopt_chroot_setup dexopt_chroot_setup_tmpfs:file { read write getattr map };
+#line 17
+
+
+# libart (mark_compact.cc) has some intialization code that touches the cache
+# info file and userfaultfd.
+allow dexopt_chroot_setup apex_module_data_file:dir { getattr search };
+
+#line 22
+allow dexopt_chroot_setup apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow dexopt_chroot_setup apex_art_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 22
+
+
+#line 23
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 23
+type dexopt_chroot_setup_userfaultfd;
+#line 23
+type_transition dexopt_chroot_setup dexopt_chroot_setup:anon_inode dexopt_chroot_setup_userfaultfd "[userfaultfd]";
+#line 23
+# Allow domain to create/use userfaultfd anon_inode.
+#line 23
+allow dexopt_chroot_setup dexopt_chroot_setup_userfaultfd:anon_inode { create ioctl read };
+#line 23
+# Suppress errors generate during bugreport
+#line 23
+dontaudit su dexopt_chroot_setup_userfaultfd:anon_inode *;
+#line 23
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 23
+neverallow { domain -dexopt_chroot_setup } dexopt_chroot_setup_userfaultfd:anon_inode *;
+#line 23
+
+#line 1 "system/sepolicy/private/dexoptanalyzer.te"
+# dexoptanalyzer
+type dexoptanalyzer, domain, coredomain, mlstrustedsubject;
+type dexoptanalyzer_exec, system_file_type, exec_type, file_type;
+type dexoptanalyzer_tmpfs, file_type;
+
+
+#line 6
+allow dexoptanalyzer apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow dexoptanalyzer apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 6
+
+# Access to /vendor/app
+
+#line 8
+allow dexoptanalyzer vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow dexoptanalyzer vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 8
+
+
+# Reading an APK opens a ZipArchive, which unpack to tmpfs.
+# Use tmpfs_domain() which will give tmpfs files created by dexoptanalyzer their
+# own label, which differs from other labels created by other processes.
+# This allows to distinguish in policy files created by dexoptanalyzer vs other
+# processes.
+
+#line 15
+type_transition dexoptanalyzer tmpfs:file dexoptanalyzer_tmpfs;
+#line 15
+allow dexoptanalyzer dexoptanalyzer_tmpfs:file { read write getattr map };
+#line 15
+
+
+
+#line 17
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 17
+type dexoptanalyzer_userfaultfd;
+#line 17
+type_transition dexoptanalyzer dexoptanalyzer:anon_inode dexoptanalyzer_userfaultfd "[userfaultfd]";
+#line 17
+# Allow domain to create/use userfaultfd anon_inode.
+#line 17
+allow dexoptanalyzer dexoptanalyzer_userfaultfd:anon_inode { create ioctl read };
+#line 17
+# Suppress errors generate during bugreport
+#line 17
+dontaudit su dexoptanalyzer_userfaultfd:anon_inode *;
+#line 17
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 17
+neverallow { domain -dexoptanalyzer } dexoptanalyzer_userfaultfd:anon_inode *;
+#line 17
+
+
+# Allow dexoptanalyzer to read files in the dalvik cache.
+allow dexoptanalyzer dalvikcache_data_file:dir { getattr search };
+allow dexoptanalyzer dalvikcache_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read symlinks in /data/dalvik-cache. This is required for PIC mode boot
+# app_data_file the oat file is symlinked to the original file in /system.
+allow dexoptanalyzer dalvikcache_data_file:lnk_file read;
+
+# Allow dexoptanalyzer to read files in the ART APEX data directory.
+allow dexoptanalyzer { apex_art_data_file apex_module_data_file }:dir { getattr search };
+allow dexoptanalyzer apex_art_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow dexoptanalyzer to use file descriptors from odrefresh.
+allow dexoptanalyzer odrefresh:fd use;
+
+# Use devpts and fd from odsign (which exec()'s odrefresh)
+allow dexoptanalyzer odsign:fd use;
+allow dexoptanalyzer odsign_devpts:chr_file { read write };
+
+allow dexoptanalyzer installd:fd use;
+allow dexoptanalyzer installd:fifo_file { getattr write };
+
+# Acquire advisory lock on /system/framework/arm/*
+allow dexoptanalyzer system_file:file lock;
+
+# Allow reading secondary dex files that were reported by the app to the
+# package manager.
+allow dexoptanalyzer { privapp_data_file app_data_file }:file { getattr read map };
+
+# dexoptanalyzer checks the DM files next to dex files. We don't need this check
+# for secondary dex files, but it's not harmful. Just deny it and ignore it.
+dontaudit dexoptanalyzer { privapp_data_file app_data_file }:dir search;
+
+# Allow testing /data/user/0 which symlinks to /data/data
+allow dexoptanalyzer system_data_file:lnk_file { getattr };
+
+# Allow query ART device config properties
+
+#line 56
+allow dexoptanalyzer device_config_runtime_native_prop:file { getattr open read map };
+#line 56
+
+
+#line 57
+allow dexoptanalyzer device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 57
+
+
+# Allow dexoptanalyzer to read /apex/apex-info-list.xml
+allow dexoptanalyzer apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/private/dhcp.te"
+typeattribute dhcp coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init dhcp_exec:file { getattr open read execute map };
+#line 3
+allow init dhcp:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow dhcp dhcp_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init dhcp:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init dhcp:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init dhcp_exec:process dhcp;
+#line 3
+
+#line 3
+
+type_transition dhcp system_data_file:{ dir file } dhcp_data_file;
+
+
+#line 6
+
+#line 6
+allow dhcp property_socket:sock_file write;
+#line 6
+allow dhcp init:unix_stream_socket connectto;
+#line 6
+
+#line 6
+allow dhcp dhcp_prop:property_service set;
+#line 6
+
+#line 6
+allow dhcp dhcp_prop:file { getattr open read map };
+#line 6
+
+#line 6
+
+
+#line 7
+
+#line 7
+allow dhcp property_socket:sock_file write;
+#line 7
+allow dhcp init:unix_stream_socket connectto;
+#line 7
+
+#line 7
+allow dhcp pan_result_prop:property_service set;
+#line 7
+
+#line 7
+allow dhcp pan_result_prop:file { getattr open read map };
+#line 7
+
+#line 7
+
+#line 1 "system/sepolicy/private/dmesgd.te"
+type dmesgd, domain, coredomain;
+type dmesgd_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init dmesgd_exec:file { getattr open read execute map };
+#line 4
+allow init dmesgd:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow dmesgd dmesgd_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init dmesgd:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init dmesgd:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init dmesgd_exec:process dmesgd;
+#line 4
+
+#line 4
+
+
+allow dmesgd dmesgd_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow dmesgd dmesgd_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow dmesgd kernel:system syslog_read;
+allow dmesgd shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow dmesgd toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 12
+# Call the servicemanager and transfer references to it.
+#line 12
+allow dmesgd servicemanager:binder { call transfer };
+#line 12
+# Allow servicemanager to send out callbacks
+#line 12
+allow servicemanager dmesgd:binder { call transfer };
+#line 12
+# servicemanager performs getpidcon on clients.
+#line 12
+allow servicemanager dmesgd:dir search;
+#line 12
+allow servicemanager dmesgd:file { read open };
+#line 12
+allow servicemanager dmesgd:process getattr;
+#line 12
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 12
+# all domains in domain.te.
+#line 12
+
+
+#line 13
+# Call the server domain and optionally transfer references to it.
+#line 13
+allow dmesgd system_server:binder { call transfer };
+#line 13
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 13
+allow system_server dmesgd:binder transfer;
+#line 13
+# Receive and use open files from the server.
+#line 13
+allow dmesgd system_server:fd use;
+#line 13
+
+allow dmesgd dropbox_service:service_manager find;
+allow dmesgd proc_version:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/private/dnsmasq.te"
+typeattribute dnsmasq coredomain;
+#line 1 "system/sepolicy/private/domain.te"
+# Transition to crash_dump when /system/bin/crash_dump* is executed.
+# This occurs when the process crashes.
+# We do not apply this to the su domain to avoid interfering with
+# tests (b/114136122)
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow { domain  } crash_dump_exec:file { getattr open read execute map };
+#line 5
+allow { domain  } crash_dump:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow crash_dump crash_dump_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+allow crash_dump { domain  }:process sigchld;
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit { domain  } crash_dump:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow { domain  } crash_dump:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition { domain  } crash_dump_exec:process crash_dump;
+#line 5
+;
+allow domain crash_dump:process sigchld;
+
+# Allow every process to check the heapprofd.enable properties to determine
+# whether to load the heap profiling library. This does not necessarily enable
+# heap profiling, as initialization will fail if it does not have the
+# necessary SELinux permissions.
+
+#line 12
+allow domain heapprofd_prop:file { getattr open read map };
+#line 12
+;
+
+# See private/crash_dump.te
+#line 29
+
+
+# Allow heap profiling by heapprofd.
+# Zygotes are excluded due to potential issues with holding open file
+# descriptors or other state across forks. Other exclusions conflict with
+# neverallows, and are not considered important to profile.
+
+#line 35
+  # Allow central daemon to send signal for client initialization.
+#line 35
+  allow heapprofd {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+}:process signal;
+#line 35
+  # Allow connecting to the daemon.
+#line 35
+  
+#line 35
+allow {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+} heapprofd_socket:sock_file write;
+#line 35
+allow {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+} heapprofd:unix_stream_socket connectto;
+#line 35
+
+#line 35
+  # Allow daemon to use the passed fds.
+#line 35
+  allow heapprofd {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+}:fd use;
+#line 35
+  # Allow to read and write to heapprofd shmem.
+#line 35
+  # The client needs to read the read and write pointers in order to write.
+#line 35
+  allow {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+} heapprofd_tmpfs:file { read write getattr map };
+#line 35
+  # Use shared memory received over the unix socket.
+#line 35
+  allow {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+} heapprofd:fd use;
+#line 35
+
+#line 35
+  # To read and write from the received file descriptors.
+#line 35
+  # /proc/[pid]/maps and /proc/[pid]/mem have the same SELinux label as the
+#line 35
+  # process they relate to.
+#line 35
+  # We need to write to /proc/$PID/page_idle to find idle allocations.
+#line 35
+  # The client only opens /proc/self/page_idle with RDWR, everything else
+#line 35
+  # with RDONLY.
+#line 35
+  # heapprofd cannot open /proc/$PID/mem itself, as it does not have
+#line 35
+  # sys_ptrace.
+#line 35
+  allow heapprofd {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+}:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 35
+  # Allow searching the /proc/[pid] directory for cmdline.
+#line 35
+  allow heapprofd {
+#line 35
+  {
+#line 35
+  domain
+#line 35
+  -apexd
+#line 35
+  -bpfloader
+#line 35
+  -crash_dump
+#line 35
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 35
+  -init
+#line 35
+  -kernel
+#line 35
+  -keystore
+#line 35
+  -llkd
+#line 35
+  -logd
+#line 35
+  -ueventd
+#line 35
+  -vendor_init
+#line 35
+  -vold
+#line 35
+}
+#line 35
+  -app_zygote
+#line 35
+  -hal_configstore_server
+#line 35
+  -logpersist
+#line 35
+  -recovery
+#line 35
+  -recovery_persist
+#line 35
+  -recovery_refresh
+#line 35
+  -webview_zygote
+#line 35
+  -zygote
+#line 35
+}:dir { open getattr read search ioctl lock watch watch_reads };
+#line 45
+
+
+# Allow profiling using perf_event_open by traced_perf.
+
+#line 48
+  # Allow directory & file read to traced_perf, as it stat(2)s /proc/[pid], and
+#line 48
+  # reads /proc/[pid]/cmdline.
+#line 48
+  allow traced_perf {
+#line 48
+  {
+#line 48
+  domain
+#line 48
+  -apexd
+#line 48
+  -bpfloader
+#line 48
+  -crash_dump
+#line 48
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 48
+  -init
+#line 48
+  -kernel
+#line 48
+  -keystore
+#line 48
+  -llkd
+#line 48
+  -logd
+#line 48
+  -ueventd
+#line 48
+  -vendor_init
+#line 48
+  -vold
+#line 48
+}
+#line 48
+  -app_zygote
+#line 48
+  -hal_configstore_server
+#line 48
+  -webview_zygote
+#line 48
+  -zygote
+#line 48
+}:file { getattr open read ioctl lock map watch watch_reads };
+#line 48
+  allow traced_perf {
+#line 48
+  {
+#line 48
+  domain
+#line 48
+  -apexd
+#line 48
+  -bpfloader
+#line 48
+  -crash_dump
+#line 48
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 48
+  -init
+#line 48
+  -kernel
+#line 48
+  -keystore
+#line 48
+  -llkd
+#line 48
+  -logd
+#line 48
+  -ueventd
+#line 48
+  -vendor_init
+#line 48
+  -vold
+#line 48
+}
+#line 48
+  -app_zygote
+#line 48
+  -hal_configstore_server
+#line 48
+  -webview_zygote
+#line 48
+  -zygote
+#line 48
+}:dir { open getattr read search ioctl lock watch watch_reads };
+#line 48
+
+#line 48
+  # Allow central daemon to send signal to request /proc/[pid]/maps and
+#line 48
+  # /proc/[pid]/mem fds from this process.
+#line 48
+  allow traced_perf {
+#line 48
+  {
+#line 48
+  domain
+#line 48
+  -apexd
+#line 48
+  -bpfloader
+#line 48
+  -crash_dump
+#line 48
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 48
+  -init
+#line 48
+  -kernel
+#line 48
+  -keystore
+#line 48
+  -llkd
+#line 48
+  -logd
+#line 48
+  -ueventd
+#line 48
+  -vendor_init
+#line 48
+  -vold
+#line 48
+}
+#line 48
+  -app_zygote
+#line 48
+  -hal_configstore_server
+#line 48
+  -webview_zygote
+#line 48
+  -zygote
+#line 48
+}:process signal;
+#line 48
+
+#line 48
+  # Allow connecting to the daemon.
+#line 48
+  
+#line 48
+allow {
+#line 48
+  {
+#line 48
+  domain
+#line 48
+  -apexd
+#line 48
+  -bpfloader
+#line 48
+  -crash_dump
+#line 48
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 48
+  -init
+#line 48
+  -kernel
+#line 48
+  -keystore
+#line 48
+  -llkd
+#line 48
+  -logd
+#line 48
+  -ueventd
+#line 48
+  -vendor_init
+#line 48
+  -vold
+#line 48
+}
+#line 48
+  -app_zygote
+#line 48
+  -hal_configstore_server
+#line 48
+  -webview_zygote
+#line 48
+  -zygote
+#line 48
+} traced_perf_socket:sock_file write;
+#line 48
+allow {
+#line 48
+  {
+#line 48
+  domain
+#line 48
+  -apexd
+#line 48
+  -bpfloader
+#line 48
+  -crash_dump
+#line 48
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 48
+  -init
+#line 48
+  -kernel
+#line 48
+  -keystore
+#line 48
+  -llkd
+#line 48
+  -logd
+#line 48
+  -ueventd
+#line 48
+  -vendor_init
+#line 48
+  -vold
+#line 48
+}
+#line 48
+  -app_zygote
+#line 48
+  -hal_configstore_server
+#line 48
+  -webview_zygote
+#line 48
+  -zygote
+#line 48
+} traced_perf:unix_stream_socket connectto;
+#line 48
+
+#line 48
+  # Allow daemon to use the passed fds.
+#line 48
+  allow traced_perf {
+#line 48
+  {
+#line 48
+  domain
+#line 48
+  -apexd
+#line 48
+  -bpfloader
+#line 48
+  -crash_dump
+#line 48
+  -crosvm # TODO(b/236672526): Remove exception for crosvm
+#line 48
+  -init
+#line 48
+  -kernel
+#line 48
+  -keystore
+#line 48
+  -llkd
+#line 48
+  -logd
+#line 48
+  -ueventd
+#line 48
+  -vendor_init
+#line 48
+  -vold
+#line 48
+}
+#line 48
+  -app_zygote
+#line 48
+  -hal_configstore_server
+#line 48
+  -webview_zygote
+#line 48
+  -zygote
+#line 48
+}:fd use;
+#line 54
+
+
+# Everyone can access the IncFS list of features.
+
+#line 57
+allow domain sysfs_fs_incfs_features:dir { open getattr read search ioctl lock watch watch_reads };
+#line 57
+allow domain sysfs_fs_incfs_features:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 57
+;
+
+# Everyone can access the fuse list of features.
+
+#line 60
+allow domain sysfs_fs_fuse_features:dir { open getattr read search ioctl lock watch watch_reads };
+#line 60
+allow domain sysfs_fs_fuse_features:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 60
+;
+
+# Path resolution access in cgroups.
+allow domain cgroup:dir search;
+allow { domain -appdomain -rs } cgroup:dir { open search write add_name remove_name lock };
+allow { domain -appdomain -rs } cgroup:file { open append write lock map };
+
+allow domain cgroup_v2:dir search;
+allow { domain -appdomain -rs } cgroup_v2:dir { open search write add_name remove_name lock };
+allow { domain -appdomain -rs } cgroup_v2:file { open append write lock map };
+
+allow domain cgroup_rc_file:dir search;
+allow domain cgroup_rc_file:file { getattr open read ioctl lock map watch watch_reads };
+allow domain task_profiles_file:file { getattr open read ioctl lock map watch watch_reads };
+allow domain task_profiles_api_file:file { getattr open read ioctl lock map watch watch_reads };
+allow domain vendor_task_profiles_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow all domains to read sys.use_memfd to determine
+# if memfd support can be used if device supports it
+
+#line 79
+allow domain use_memfd_prop:file { getattr open read map };
+#line 79
+;
+
+# Read access to sdkextensions props
+
+#line 82
+allow domain module_sdkextensions_prop:file { getattr open read map };
+#line 82
+
+
+# Read access to bq configuration values
+
+#line 85
+allow domain bq_config_prop:file { getattr open read map };
+#line 85
+;
+
+# Allow all domains to check whether MTE is set to permissive mode.
+
+#line 88
+allow domain permissive_mte_prop:file { getattr open read map };
+#line 88
+;
+
+# Allow ART to be configurable via device_config properties
+# (ART "runs" inside the app process), and MTE bootloader override to be
+# observed by everything
+
+#line 93
+allow domain device_config_memory_safety_native_boot_prop:file { getattr open read map };
+#line 93
+;
+
+#line 94
+allow domain device_config_memory_safety_native_prop:file { getattr open read map };
+#line 94
+;
+
+#line 95
+allow domain device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 95
+;
+
+#line 96
+allow domain device_config_runtime_native_prop:file { getattr open read map };
+#line 96
+;
+
+# For now, everyone can access core property files
+# Device specific properties are not granted by default
+
+#line 100
+    # DO NOT ADD ANY PROPERTIES HERE
+#line 100
+    
+#line 100
+allow domain core_property_type:file { getattr open read map };
+#line 100
+
+#line 100
+    
+#line 100
+allow domain exported3_system_prop:file { getattr open read map };
+#line 100
+
+#line 100
+    
+#line 100
+allow domain vendor_default_prop:file { getattr open read map };
+#line 100
+
+#line 105
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 106
+
+#line 106
+    # DO NOT ADD ANY PROPERTIES HERE
+#line 106
+    
+#line 106
+allow {coredomain appdomain shell} core_property_type:file { getattr open read map };
+#line 106
+
+#line 106
+    
+#line 106
+allow {coredomain appdomain shell} exported3_system_prop:file { getattr open read map };
+#line 106
+
+#line 106
+    
+#line 106
+allow {coredomain appdomain shell} exported_camera_prop:file { getattr open read map };
+#line 106
+
+#line 106
+    
+#line 106
+allow {coredomain shell} userspace_reboot_exported_prop:file { getattr open read map };
+#line 106
+
+#line 106
+    
+#line 106
+allow {coredomain shell} userspace_reboot_log_prop:file { getattr open read map };
+#line 106
+
+#line 106
+    
+#line 106
+allow {coredomain shell} userspace_reboot_test_prop:file { getattr open read map };
+#line 106
+
+#line 106
+    
+#line 106
+allow {domain -coredomain -appdomain} vendor_default_prop:file { getattr open read map };
+#line 106
+
+#line 106
+
+#line 106
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 115
+
+
+# Public readable properties
+
+#line 118
+allow domain aaudio_config_prop:file { getattr open read map };
+#line 118
+
+
+#line 119
+allow domain apexd_select_prop:file { getattr open read map };
+#line 119
+
+
+#line 120
+allow domain arm64_memtag_prop:file { getattr open read map };
+#line 120
+
+
+#line 121
+allow domain bluetooth_config_prop:file { getattr open read map };
+#line 121
+
+
+#line 122
+allow domain bootloader_prop:file { getattr open read map };
+#line 122
+
+
+#line 123
+allow domain build_odm_prop:file { getattr open read map };
+#line 123
+
+
+#line 124
+allow domain build_prop:file { getattr open read map };
+#line 124
+
+
+#line 125
+allow domain build_vendor_prop:file { getattr open read map };
+#line 125
+
+
+#line 126
+allow domain debug_prop:file { getattr open read map };
+#line 126
+
+
+#line 127
+allow domain exported_config_prop:file { getattr open read map };
+#line 127
+
+
+#line 128
+allow domain exported_default_prop:file { getattr open read map };
+#line 128
+
+
+#line 129
+allow domain exported_dumpstate_prop:file { getattr open read map };
+#line 129
+
+
+#line 130
+allow domain exported_secure_prop:file { getattr open read map };
+#line 130
+
+
+#line 131
+allow domain exported_system_prop:file { getattr open read map };
+#line 131
+
+
+#line 132
+allow domain fingerprint_prop:file { getattr open read map };
+#line 132
+
+
+#line 133
+allow domain framework_status_prop:file { getattr open read map };
+#line 133
+
+
+#line 134
+allow domain gwp_asan_prop:file { getattr open read map };
+#line 134
+
+
+#line 135
+allow domain hal_instrumentation_prop:file { getattr open read map };
+#line 135
+
+
+#line 136
+allow domain hw_timeout_multiplier_prop:file { getattr open read map };
+#line 136
+
+
+#line 137
+allow domain init_service_status_prop:file { getattr open read map };
+#line 137
+
+
+#line 138
+allow domain libc_debug_prop:file { getattr open read map };
+#line 138
+
+
+#line 139
+allow domain locale_prop:file { getattr open read map };
+#line 139
+
+
+#line 140
+allow domain logd_prop:file { getattr open read map };
+#line 140
+
+
+#line 141
+allow domain mediadrm_config_prop:file { getattr open read map };
+#line 141
+
+
+#line 142
+allow domain property_service_version_prop:file { getattr open read map };
+#line 142
+
+
+#line 143
+allow domain soc_prop:file { getattr open read map };
+#line 143
+
+
+#line 144
+allow domain socket_hook_prop:file { getattr open read map };
+#line 144
+
+
+#line 145
+allow domain surfaceflinger_prop:file { getattr open read map };
+#line 145
+
+
+#line 146
+allow domain telephony_status_prop:file { getattr open read map };
+#line 146
+
+
+#line 147
+allow domain timezone_prop:file { getattr open read map };
+#line 147
+
+
+#line 148
+allow {domain -untrusted_app_all -isolated_app_all -ephemeral_app } userdebug_or_eng_prop:file { getattr open read map };
+#line 148
+
+
+#line 149
+allow domain vendor_socket_hook_prop:file { getattr open read map };
+#line 149
+
+
+#line 150
+allow domain vndk_prop:file { getattr open read map };
+#line 150
+
+
+#line 151
+allow domain vold_status_prop:file { getattr open read map };
+#line 151
+
+
+#line 152
+allow domain vts_config_prop:file { getattr open read map };
+#line 152
+
+
+# Binder cache properties are world-readable
+
+#line 155
+allow domain binder_cache_bluetooth_server_prop:file { getattr open read map };
+#line 155
+
+
+#line 156
+allow domain binder_cache_system_server_prop:file { getattr open read map };
+#line 156
+
+
+#line 157
+allow domain binder_cache_telephony_server_prop:file { getattr open read map };
+#line 157
+
+
+# Allow access to fsverity keyring.
+allow domain kernel:key search;
+# Allow access to keys in the fsverity keyring that were installed at boot.
+allow domain fsverity_init:key search;
+# For testing purposes, allow access to keys installed with su.
+#line 166
+
+
+# Allow access to linkerconfig file
+allow domain linkerconfig_file:dir search;
+allow domain linkerconfig_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow all processes to check for the existence of the boringssl_self_test_marker files.
+allow domain boringssl_self_test_marker:dir search;
+
+# Allow all processes to read the file_logger property that liblog uses to check if file_logger
+# should be used.
+
+#line 177
+allow domain log_file_logger_prop:file { getattr open read map };
+#line 177
+
+
+# Allow all processes to connect to PRNG seeder daemon.
+
+#line 180
+allow domain prng_seeder_socket:sock_file write;
+#line 180
+allow domain prng_seeder:unix_stream_socket connectto;
+#line 180
+
+
+# Allow calls to system(3), popen(3), ...
+allow {
+  domain
+  # Except domains that explicitly neverallow it.
+  -kernel
+  -init
+  -vendor_init
+  -app_zygote
+  -webview_zygote
+  -system_server
+  -artd
+  -audioserver
+  -cameraserver
+  -mediadrmserver
+  -mediaextractor
+  -mediametrics
+  -mediaserver
+  -mediatuner
+  -mediatranscoding
+  -ueventd
+  -hal_audio_server
+  -hal_camera_server
+  -hal_cas_server
+  -hal_codec2_server
+  -hal_configstore_server
+  -hal_drm_server
+  -hal_omx_server
+} {shell_exec toolbox_exec}:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# No domains other than a select few can access the misc_block_device. This
+# block device is reserved for OTA use.
+# Do not assert this rule on userdebug/eng builds, due to some devices using
+# this partition for testing purposes.
+neverallow {
+  domain
+   # exclude debuggable builds
+  -fastbootd
+  -hal_bootctl_server
+  -init
+  -uncrypt
+  -update_engine
+  -vendor_init
+  -vendor_misc_writer
+  -vold
+  -recovery
+  -ueventd
+  -mtectrl
+  -misctrl
+} misc_block_device:blk_file { append link relabelfrom rename write open read ioctl lock };
+
+# Limit ability to ptrace or read sensitive /proc/pid files of processes
+# with other UIDs to these allowlisted domains.
+neverallow {
+  domain
+  -vold
+  
+  -dumpstate
+  
+  
+  
+  -storaged
+  -system_server
+} self:{ capability cap_userns } sys_ptrace;
+
+# Limit ability to generate hardware unique device ID attestations to priv_apps
+neverallow { domain -priv_app -gmscore_app } *:keystore2_key gen_unique_id;
+neverallow { domain -system_server } *:keystore2_key use_dev_id;
+neverallow { domain -system_server } keystore:keystore2 { clear_ns lock reset unlock };
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+  
+} debugfs_tracing_debug:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# System_server owns dropbox data, and init creates/restorecons the directory
+# Disallow direct access by other processes.
+neverallow {
+  domain
+  -init
+  -system_server
+  
+} dropbox_data_file:dir *;
+neverallow {
+  domain
+  -init
+  -system_server
+  
+} dropbox_data_file:file ~{ getattr read };
+
+###
+# Services should respect app sandboxes
+neverallow {
+  domain
+  -appdomain
+  -artd # compile secondary dex files
+  -installd # creation of sandbox
+} { privapp_data_file app_data_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create unlink };
+
+# Only the following processes should be directly accessing private app
+# directories.
+neverallow {
+  domain
+  -adbd
+  -appdomain
+  -app_zygote
+  -artd # compile secondary dex files
+  -dexoptanalyzer
+  -installd
+  -profman
+  -rs # spawned by appdomain, so carryover the exception above
+  -runas
+  -system_server
+  -viewcompiler
+  -zygote
+} { privapp_data_file app_data_file }:dir *;
+
+# Only apps should be modifying app data. installd is exempted for
+# restorecon and package install/uninstall.
+neverallow {
+  domain
+  -appdomain
+  -artd # compile secondary dex files
+  -installd
+  -rs # spawned by appdomain, so carryover the exception above
+} { privapp_data_file app_data_file }:dir ~{ open getattr read search ioctl lock watch watch_reads };
+
+neverallow {
+  domain
+  -appdomain
+  -app_zygote
+  -artd # compile secondary dex files
+  -installd
+  -rs # spawned by appdomain, so carryover the exception above
+} { privapp_data_file app_data_file }:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } open;
+
+neverallow {
+  domain
+  -appdomain
+  -artd # compile secondary dex files
+  -installd # creation of sandbox
+} { privapp_data_file app_data_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create unlink };
+
+neverallow {
+  domain
+  -artd # compile secondary dex files
+  -installd
+} { privapp_data_file app_data_file }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { relabelfrom relabelto };
+
+# The staging directory contains APEX and APK files. It is important to ensure
+# that these files cannot be accessed by other domains to ensure that the files
+# do not change between system_server staging the files and apexd processing
+# the files.
+neverallow {
+  domain
+  -init
+  -system_server
+  -apexd
+  -installd
+  -priv_app
+  -virtualizationmanager
+} staging_data_file:dir *;
+neverallow {
+  domain
+  -init
+  -system_app
+  -system_server
+  -apexd
+  -adbd
+  -kernel
+  -installd
+  -priv_app
+  -shell
+  -virtualizationmanager
+  -crosvm
+} staging_data_file:file *;
+neverallow { domain -init -system_server -installd} staging_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+# apexd needs the link and unlink permissions, so list every `no_w_file_perms`
+# except for `link` and `unlink`.
+neverallow { domain -init -system_server } staging_data_file:file
+  { append create relabelfrom rename setattr write { execute execute_no_trans } };
+
+neverallow {
+    domain
+    -appdomain # for oemfs
+    -bootanim # for oemfs
+    -recovery # for /tmp/update_binary in tmpfs
+} { fs_type -rootfs }:file execute;
+
+#
+# Assert that, to the extent possible, we're not loading executable content from
+# outside the rootfs or /system partition except for a few allowlisted domains.
+# Executable files loaded from /data is a persistence vector
+# we want to avoid. See
+# https://bugs.chromium.org/p/project-zero/issues/detail?id=955 for example.
+#
+neverallow {
+    domain
+    -appdomain
+    
+    -shell
+    
+    -system_server_startup # for memfd backed executable regions
+    -app_zygote
+    -webview_zygote
+    -zygote
+    
+    
+} {
+    file_type
+    -system_file_type
+    -system_lib_file
+    -system_linker_exec
+    -vendor_file_type
+    -exec_type
+    -postinstall_file
+}:file execute;
+
+# Only init is allowed to write cgroup.rc file
+neverallow {
+  domain
+  -init
+  -vendor_init
+} cgroup_rc_file:file { append create link unlink relabelfrom rename setattr write };
+
+# Only authorized processes should be writing to files in /data/dalvik-cache
+neverallow {
+  domain
+  -init # TODO: limit init to relabelfrom for files
+  -zygote
+  -installd
+  -postinstall_dexopt
+  -cppreopts
+  -dex2oat
+  -otapreopt_slot
+  -artd
+} dalvikcache_data_file:file { append create link unlink relabelfrom rename setattr write };
+
+neverallow {
+  domain
+  -init
+  -installd
+  -postinstall_dexopt
+  -cppreopts
+  -dex2oat
+  -zygote
+  -otapreopt_slot
+  -artd
+} dalvikcache_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+
+# Only authorized processes should be writing to /data/misc/apexdata/com.android.art as it
+# contains boot class path and system server AOT artifacts following an ART APEX Mainline update.
+neverallow {
+  domain
+  # art-related processes
+  -composd
+  -compos_fd_server
+  -odrefresh
+  -odsign
+  # others
+  -apexd
+  -init
+  -vold_prepare_subdirs
+} apex_art_data_file:file { append create link unlink relabelfrom rename setattr write };
+
+neverallow {
+  domain
+  # art-related processes
+  -composd
+  -compos_fd_server
+  -odrefresh
+  -odsign
+  # others
+  -apexd
+  -init
+  -vold_prepare_subdirs
+} apex_art_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+
+# Protect most domains from executing arbitrary content from /data.
+neverallow {
+  domain
+  -appdomain
+} {
+  data_file_type
+  -apex_art_data_file
+  -dalvikcache_data_file
+  -system_data_file # shared libs in apks
+  -apk_data_file
+}:file { execute execute_no_trans };
+
+# Minimize dac_override and dac_read_search.
+# Instead of granting them it is usually better to add the domain to
+# a Unix group or change the permissions of a file.
+#line 498
+
+neverallow ~{
+#line 499
+  apexd
+#line 499
+  artd
+#line 499
+  dnsmasq
+#line 499
+  dumpstate
+#line 499
+  init
+#line 499
+  installd
+#line 499
+  
+#line 499
+  lmkd
+#line 499
+  migrate_legacy_obb_data
+#line 499
+  netd
+#line 499
+  postinstall_dexopt
+#line 499
+  recovery
+#line 499
+  rss_hwm_reset
+#line 499
+  sdcardd
+#line 499
+  tee
+#line 499
+  ueventd
+#line 499
+  uncrypt
+#line 499
+  vendor_init
+#line 499
+  vold
+#line 499
+  vold_prepare_subdirs
+#line 499
+  zygote
+#line 499
+} self:{ capability cap_userns } dac_override;
+# Since the kernel checks dac_read_search before dac_override, domains that
+# have dac_override should also have dac_read_search to eliminate spurious
+# denials.  Some domains have dac_read_search without having dac_override, so
+# this list should be a superset of the one above.
+neverallow ~{
+  {
+#line 505
+  apexd
+#line 505
+  artd
+#line 505
+  dnsmasq
+#line 505
+  dumpstate
+#line 505
+  init
+#line 505
+  installd
+#line 505
+  
+#line 505
+  lmkd
+#line 505
+  migrate_legacy_obb_data
+#line 505
+  netd
+#line 505
+  postinstall_dexopt
+#line 505
+  recovery
+#line 505
+  rss_hwm_reset
+#line 505
+  sdcardd
+#line 505
+  tee
+#line 505
+  ueventd
+#line 505
+  uncrypt
+#line 505
+  vendor_init
+#line 505
+  vold
+#line 505
+  vold_prepare_subdirs
+#line 505
+  zygote
+#line 505
+}
+  traced_perf
+  traced_probes
+  heapprofd
+} self:{ capability cap_userns } dac_read_search;
+
+# Limit what domains can mount filesystems or change their mount flags.
+# sdcard_type (including vfat and exfat) and fusefs_type are exempt as a larger
+# set of domains need this capability, including device-specific domains.
+neverallow {
+    domain
+    -apexd
+    
+    -init
+    -kernel
+    -otapreopt_chroot
+    -recovery
+    -update_engine
+    -vold
+    -zygote
+} { fs_type
+    -sdcard_type
+    -fusefs_type
+}:filesystem { mount remount relabelfrom relabelto };
+
+# BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 530
+
+#line 530
+  neverallow {
+#line 530
+    domain 
+#line 530
+  } { debugfs_type -debugfs_tracing_debug }:filesystem { mount remount relabelfrom relabelto };
+#line 530
+
+#line 530
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 534
+
+
+# Limit raw I/O to these allowlisted domains. Do not apply to debug builds.
+neverallow {
+  domain
+  
+  -kernel
+  -gsid
+  -init
+  -recovery
+  -ueventd
+  -uncrypt
+  -tee
+  -hal_bootctl_server
+  -fastbootd
+} self:{ capability cap_userns } sys_rawio;
+
+# Limit directory operations that doesn't need to do app data isolation.
+neverallow {
+  domain
+  -fsck
+  -init
+  -installd
+  -zygote
+} mirror_data_file:dir *;
+
+# This property is being removed. Remove remaining access.
+neverallow { domain -init -system_server -vendor_init } net_dns_prop:property_service set;
+neverallow { domain -dumpstate -init -system_server -vendor_init } net_dns_prop:file read;
+
+# Only core domains are allowed to access package_manager properties
+neverallow { domain -init -system_server } pm_prop:property_service set;
+neverallow { domain -coredomain } pm_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Do not allow reading the last boot timestamp from system properties
+neverallow { domain -init -system_server -dumpstate } firstboot_prop:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow ART to set its config properties in its oneshot boot service, in
+# addition to the common init and vendor_init access.
+neverallow { domain -art_boot -init -vendor_init } dalvik_config_prop:property_service set;
+
+# Kprobes should only be used by adb root
+neverallow { domain -init -vendor_init } debugfs_kprobes:file *;
+
+# On TREBLE devices, most coredomains should not access vendor_files.
+# TODO(b/71553434): Remove exceptions here.
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 580
+
+#line 580
+  neverallow {
+#line 580
+    coredomain
+#line 580
+    -appdomain
+#line 580
+    -bootanim
+#line 580
+    -crash_dump
+#line 580
+    -heapprofd
+#line 580
+    
+#line 580
+    -init
+#line 580
+    -kernel
+#line 580
+    
+#line 580
+    -traced_perf
+#line 580
+    -ueventd
+#line 580
+  } vendor_file:file { { append create link unlink relabelfrom rename setattr write } { execute execute_no_trans } open };
+#line 580
+
+#line 580
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 594
+
+
+# Vendor domains are not permitted to initiate communications to core domain sockets
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 597
+
+#line 597
+  
+#line 597
+  neverallow {
+#line 597
+    domain
+#line 597
+    -coredomain
+#line 597
+    -appdomain
+#line 597
+    -socket_between_core_and_vendor_violators
+#line 597
+  } {
+#line 597
+    coredomain
+#line 597
+    -logd # Logging by writing to logd Unix domain socket is public API
+#line 597
+    -netd # netdomain needs this
+#line 597
+    -mdnsd # netdomain needs this
+#line 597
+    -prng_seeder # Any process using libcrypto needs this
+#line 597
+     # communications with su are permitted only on userdebug or eng builds
+#line 597
+    -init
+#line 597
+    -tombstoned # linker to tombstoned
+#line 597
+    -heapprofd
+#line 597
+    -traced
+#line 597
+    -traced_perf
+#line 597
+  }:{ socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket appletalk_socket netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket xdp_socket } { connect sendto };
+#line 597
+  neverallow {
+#line 597
+    domain
+#line 597
+    -coredomain
+#line 597
+    -appdomain
+#line 597
+    -socket_between_core_and_vendor_violators
+#line 597
+  } {
+#line 597
+    coredomain
+#line 597
+    -logd # Logging by writing to logd Unix domain socket is public API
+#line 597
+    -netd # netdomain needs this
+#line 597
+    -mdnsd # netdomain needs this
+#line 597
+    -prng_seeder # Any process using libcrypto needs this
+#line 597
+     # communications with su are permitted only on userdebug or eng builds
+#line 597
+    -init
+#line 597
+    -tombstoned # linker to tombstoned
+#line 597
+    -heapprofd
+#line 597
+    -traced
+#line 597
+    -traced_perf
+#line 597
+  }:unix_stream_socket connectto;
+#line 597
+;
+#line 597
+
+#line 597
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 616
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 618
+
+#line 618
+  # Do not allow system components access to /vendor files except for the
+#line 618
+  # ones allowed here.
+#line 618
+  neverallow {
+#line 618
+    coredomain
+#line 618
+    # TODO(b/37168747): clean up fwk access to /vendor
+#line 618
+    -crash_dump
+#line 618
+    -crosvm # loads vendor-specific disk images
+#line 618
+    -init # starts vendor executables
+#line 618
+    -kernel # loads /vendor/firmware
+#line 618
+    -heapprofd
+#line 618
+    
+#line 618
+    -shell
+#line 618
+    
+#line 618
+    -system_executes_vendor_violators
+#line 618
+    -traced_perf # library/binary access for symbolization
+#line 618
+    -ueventd # reads /vendor/ueventd.rc
+#line 618
+    -vold # loads incremental fs driver
+#line 618
+  } {
+#line 618
+    vendor_file_type
+#line 618
+    -same_process_hal_file
+#line 618
+    -vendor_app_file
+#line 618
+    -vendor_apex_file
+#line 618
+    -vendor_apex_metadata_file
+#line 618
+    -vendor_configs_file
+#line 618
+    -vendor_microdroid_file
+#line 618
+    -vendor_service_contexts_file
+#line 618
+    -vendor_framework_file
+#line 618
+    -vendor_idc_file
+#line 618
+    -vendor_keychars_file
+#line 618
+    -vendor_keylayout_file
+#line 618
+    -vendor_overlay_file
+#line 618
+    -vendor_public_framework_file
+#line 618
+    -vendor_public_lib_file
+#line 618
+    -vendor_task_profiles_file
+#line 618
+    -vendor_uuid_mapping_config_file
+#line 618
+    -vndk_sp_file
+#line 618
+    -vendor_aconfig_storage_file
+#line 618
+  }:file *;
+#line 618
+
+#line 618
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 657
+
+
+# mlsvendorcompat is only for compatibility support for older vendor
+# images, and should not be granted to any domain in current policy.
+# (Every domain is allowed self:fork, so this will trigger if the
+# intsersection of domain & mlsvendorcompat is not empty.)
+neverallow domain mlsvendorcompat:process fork;
+
+# Only init and otapreopt_chroot should be mounting filesystems on locations
+# labeled system or vendor (/product and /vendor respectively).
+neverallow { domain -init -otapreopt_chroot } { system_file_type vendor_file_type }:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } mounton;
+
+# Only allow init and vendor_init to read/write mm_events properties
+# NOTE: dumpstate is allowed to read any system property
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -dumpstate
+} mm_events_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Allow the tracing daemon and callstack sampler to use kallsyms to symbolize
+# kernel traces. Addresses are not disclosed, they are repalced with symbol
+# names (if available). Traces don't disclose KASLR.
+neverallow {
+  domain
+  -init
+  
+  -vendor_init
+  
+  -traced_probes
+  -traced_perf
+} proc_kallsyms:file { open read };
+
+# debugfs_kcov type is not included in this neverallow statement since the KCOV
+# tool uses it for kernel fuzzing.
+# vendor_modprobe is also exempted since the kernel modules it loads may create
+# debugfs files in its context.
+# BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 695
+
+#line 695
+  neverallow {
+#line 695
+    domain
+#line 695
+    -vendor_modprobe
+#line 695
+    
+#line 695
+  } { debugfs_type
+#line 695
+      
+#line 695
+      -tracefs_type
+#line 695
+  }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 695
+
+#line 695
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 708
+
+
+# Restrict write access to etm sysfs interface.
+neverallow { domain -ueventd -vendor_init } sysfs_devices_cs_etm:file { append create link unlink relabelfrom rename setattr write };
+
+# Restrict CAP_PERFMON.
+neverallow {
+  domain
+  -init
+  -vendor_modprobe
+  
+  -kernel
+  -uprobestats
+} self:capability2 perfmon;
+
+# Restrict direct access to shell owned files. The /data/local/tmp directory is
+# untrustworthy, and non-allowed domains should not be trusting any content in
+# those directories. We allow shell files to be passed around by file
+# descriptor, but not directly opened.
+# artd doesn't need to access /data/local/tmp, but it needs to access
+# /data/{user,user_de}/<user-id>/com.android.shell/... for compiling secondary
+# dex files.
+neverallow {
+  domain
+  -adbd
+  -appdomain
+  -artd
+  -dumpstate
+  -installd
+  
+  
+  
+  
+} shell_data_file:file open;
+
+# In addition to the symlink reading restrictions above, restrict
+# write access to shell owned directories. The /data/local/tmp
+# directory is untrustworthy, and non-allowed domains should
+# not be trusting any content in those directories.
+# artd doesn't need to access /data/local/tmp, but it needs to access
+# /data/{user,user_de}/<user-id>/com.android.shell/... for compiling secondary
+# dex files.
+neverallow {
+  domain
+  -adbd
+  -artd
+  -dumpstate
+  -installd
+  -init
+  -shell
+  -vold
+} shell_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+
+neverallow {
+  domain
+  -adbd
+  -appdomain
+  -artd
+  -dumpstate
+  -init
+  -installd
+  -simpleperf_app_runner
+  -system_server # why?
+  
+} shell_data_file:dir open;
+
+neverallow {
+  domain
+  -adbd
+  -appdomain
+  -artd
+  -dumpstate
+  -init
+  -installd
+  -simpleperf_app_runner
+  -system_server # why?
+  
+  
+  
+} shell_data_file:dir search;
+
+# respect system_app sandboxes
+neverallow {
+  domain
+  -appdomain
+  -artd # compile secondary dex files
+  -system_server #populate com.android.providers.settings/databases/settings.db.
+  -installd # creation of app sandbox
+  -traced_probes # resolve inodes for i/o tracing.
+                 # only needs open and read, the rest is neverallow in
+                 # traced_probes.te.
+} system_app_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create unlink open };
+neverallow {
+  isolated_app_all
+  ephemeral_app
+  priv_app
+  sdk_sandbox_all
+  untrusted_app_all
+} system_app_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } { create unlink open };
+
+neverallow { domain -init } mtectrl:process { dyntransition transition };
+
+# For now, don't allow processes other than gmscore to access /data/misc_ce/<userid>/checkin
+neverallow { domain -gmscore_app -init -vold_prepare_subdirs } checkin_data_file:{dir file} *;
+
+# Do not allow write access to aconfig flag value files except init and aconfigd
+neverallow { domain -init -aconfigd } aconfig_storage_metadata_file:dir *;
+neverallow { domain -init -aconfigd } aconfig_storage_metadata_file:file { append create link unlink relabelfrom rename setattr write };
+#line 1 "system/sepolicy/private/drmserver.te"
+typeattribute drmserver coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init drmserver_exec:file { getattr open read execute map };
+#line 3
+allow init drmserver:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow drmserver drmserver_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init drmserver:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init drmserver:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init drmserver_exec:process drmserver;
+#line 3
+
+#line 3
+
+
+type_transition drmserver apk_data_file:sock_file drmserver_socket;
+
+typeattribute drmserver_socket coredomain_socket;
+
+
+#line 9
+allow drmserver drm_service_config_prop:file { getattr open read map };
+#line 9
+
+#line 1 "system/sepolicy/private/dumpstate.te"
+typeattribute dumpstate coredomain;
+type dumpstate_tmpfs, file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init dumpstate_exec:file { getattr open read execute map };
+#line 4
+allow init dumpstate:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow dumpstate dumpstate_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init dumpstate:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init dumpstate:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init dumpstate_exec:process dumpstate;
+#line 4
+
+#line 4
+
+
+# Execute and transition to the vdc domain
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow dumpstate vdc_exec:file { getattr open read execute map };
+#line 7
+allow dumpstate vdc:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow vdc vdc_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+allow vdc dumpstate:process sigchld;
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit dumpstate vdc:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow dumpstate vdc:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition dumpstate vdc_exec:process vdc;
+#line 7
+
+
+# Create tmpfs files for using memfd descriptors to get output from child
+# processes.
+
+#line 11
+type_transition dumpstate tmpfs:file dumpstate_tmpfs;
+#line 11
+allow dumpstate dumpstate_tmpfs:file { read write getattr map };
+#line 11
+
+
+# Acquire advisory lock on /system/etc/xtables.lock from ip[6]tables
+allow dumpstate system_file:file lock;
+
+allow dumpstate storaged_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# /data/misc/a11ytrace for accessibility traces
+#line 22
+
+
+# /data/misc/wmtrace for wm traces
+#line 28
+
+
+# /data/system/dropbox for dropbox entries
+#line 34
+
+
+# Allow dumpstate to make binder calls to incidentd
+
+#line 37
+# Call the server domain and optionally transfer references to it.
+#line 37
+allow dumpstate incidentd:binder { call transfer };
+#line 37
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 37
+allow incidentd dumpstate:binder transfer;
+#line 37
+# Receive and use open files from the server.
+#line 37
+allow dumpstate incidentd:fd use;
+#line 37
+
+
+# Kill incident in case of a timeout
+allow dumpstate incident:process { signal sigkill };
+
+# Allow dumpstate to make binder calls to storaged service
+
+#line 43
+# Call the server domain and optionally transfer references to it.
+#line 43
+allow dumpstate storaged:binder { call transfer };
+#line 43
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 43
+allow storaged dumpstate:binder transfer;
+#line 43
+# Receive and use open files from the server.
+#line 43
+allow dumpstate storaged:fd use;
+#line 43
+
+
+# Allow dumpstate to make binder calls to statsd
+
+#line 46
+# Call the server domain and optionally transfer references to it.
+#line 46
+allow dumpstate statsd:binder { call transfer };
+#line 46
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 46
+allow statsd dumpstate:binder transfer;
+#line 46
+# Receive and use open files from the server.
+#line 46
+allow dumpstate statsd:fd use;
+#line 46
+
+
+# Allow dumpstate to talk to gpuservice over binder
+
+#line 49
+# Call the server domain and optionally transfer references to it.
+#line 49
+allow dumpstate gpuservice:binder { call transfer };
+#line 49
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 49
+allow gpuservice dumpstate:binder transfer;
+#line 49
+# Receive and use open files from the server.
+#line 49
+allow dumpstate gpuservice:fd use;
+#line 49
+;
+
+# Allow dumpstate to talk to idmap over binder
+
+#line 52
+# Call the server domain and optionally transfer references to it.
+#line 52
+allow dumpstate idmap:binder { call transfer };
+#line 52
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 52
+allow idmap dumpstate:binder transfer;
+#line 52
+# Receive and use open files from the server.
+#line 52
+allow dumpstate idmap:fd use;
+#line 52
+;
+
+# Allow dumpstate to talk to profcollectd over binder
+#line 57
+
+
+# Allow dumpstate to talk to automotive_display_service over binder
+
+#line 60
+# Call the server domain and optionally transfer references to it.
+#line 60
+allow dumpstate automotive_display_service:binder { call transfer };
+#line 60
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 60
+allow automotive_display_service dumpstate:binder transfer;
+#line 60
+# Receive and use open files from the server.
+#line 60
+allow dumpstate automotive_display_service:fd use;
+#line 60
+
+
+# Allow dumpstate to talk to virtual_camera service over binder
+
+#line 63
+# Call the server domain and optionally transfer references to it.
+#line 63
+allow dumpstate virtual_camera:binder { call transfer };
+#line 63
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 63
+allow virtual_camera dumpstate:binder transfer;
+#line 63
+# Receive and use open files from the server.
+#line 63
+allow dumpstate virtual_camera:fd use;
+#line 63
+
+
+# Allow dumpstate to talk to ot_daemon service over binder
+
+#line 66
+# Call the server domain and optionally transfer references to it.
+#line 66
+allow dumpstate ot_daemon:binder { call transfer };
+#line 66
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 66
+allow ot_daemon dumpstate:binder transfer;
+#line 66
+# Receive and use open files from the server.
+#line 66
+allow dumpstate ot_daemon:fd use;
+#line 66
+
+
+# Collect metrics on boot time created by init
+
+#line 69
+allow dumpstate boottime_prop:file { getattr open read map };
+#line 69
+
+
+
+#line 71
+allow dumpstate misctrl_prop:file { getattr open read map };
+#line 71
+
+
+# Signal native processes to dump their stack.
+allow dumpstate {
+  mediatranscoding
+  statsd
+  netd
+  virtual_camera
+  ot_daemon
+}:process signal;
+
+# Only allow dumpstate to dump Keystore on debuggable builds.
+#line 85
+
+dontaudit dumpstate keystore:process { signal };
+
+# For collecting bugreports.
+
+#line 89
+  allow dumpstate debugfs_wakeup_sources:file { getattr open read ioctl lock map watch watch_reads };
+#line 91
+
+
+allow dumpstate dev_type:blk_file getattr;
+allow dumpstate webview_zygote:process signal;
+allow dumpstate sysfs_dmabuf_stats:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit dumpstate update_engine:binder call;
+
+# Read files in /proc
+allow dumpstate {
+  config_gz
+  proc_net_tcp_udp
+  proc_pid_max
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# For comminucating with the system process to do confirmation ui.
+
+#line 106
+# Call the server domain and optionally transfer references to it.
+#line 106
+allow dumpstate incidentcompanion_service:binder { call transfer };
+#line 106
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 106
+allow incidentcompanion_service dumpstate:binder transfer;
+#line 106
+# Receive and use open files from the server.
+#line 106
+allow dumpstate incidentcompanion_service:fd use;
+#line 106
+
+
+# Set properties.
+# dumpstate_prop is used to share state with the Shell app.
+
+#line 110
+
+#line 110
+allow dumpstate property_socket:sock_file write;
+#line 110
+allow dumpstate init:unix_stream_socket connectto;
+#line 110
+
+#line 110
+allow dumpstate dumpstate_prop:property_service set;
+#line 110
+
+#line 110
+allow dumpstate dumpstate_prop:file { getattr open read map };
+#line 110
+
+#line 110
+
+
+#line 111
+
+#line 111
+allow dumpstate property_socket:sock_file write;
+#line 111
+allow dumpstate init:unix_stream_socket connectto;
+#line 111
+
+#line 111
+allow dumpstate exported_dumpstate_prop:property_service set;
+#line 111
+
+#line 111
+allow dumpstate exported_dumpstate_prop:file { getattr open read map };
+#line 111
+
+#line 111
+
+
+# dumpstate_options_prop is used to pass extra command-line args.
+
+#line 114
+
+#line 114
+allow dumpstate property_socket:sock_file write;
+#line 114
+allow dumpstate init:unix_stream_socket connectto;
+#line 114
+
+#line 114
+allow dumpstate dumpstate_options_prop:property_service set;
+#line 114
+
+#line 114
+allow dumpstate dumpstate_options_prop:file { getattr open read map };
+#line 114
+
+#line 114
+
+
+# Allow dumpstate to kill vendor dumpstate service by init
+
+#line 117
+
+#line 117
+allow dumpstate property_socket:sock_file write;
+#line 117
+allow dumpstate init:unix_stream_socket connectto;
+#line 117
+
+#line 117
+allow dumpstate ctl_dumpstate_prop:property_service set;
+#line 117
+
+#line 117
+allow dumpstate ctl_dumpstate_prop:file { getattr open read map };
+#line 117
+
+#line 117
+
+
+# For dumping dynamic partition information.
+
+#line 120
+
+#line 120
+allow dumpstate property_socket:sock_file write;
+#line 120
+allow dumpstate init:unix_stream_socket connectto;
+#line 120
+
+#line 120
+allow dumpstate lpdumpd_prop:property_service set;
+#line 120
+
+#line 120
+allow dumpstate lpdumpd_prop:file { getattr open read map };
+#line 120
+
+#line 120
+
+
+#line 121
+# Call the server domain and optionally transfer references to it.
+#line 121
+allow dumpstate lpdumpd:binder { call transfer };
+#line 121
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 121
+allow lpdumpd dumpstate:binder transfer;
+#line 121
+# Receive and use open files from the server.
+#line 121
+allow dumpstate lpdumpd:fd use;
+#line 121
+
+
+# For dumping hypervisor information.
+
+#line 124
+allow dumpstate hypervisor_prop:file { getattr open read map };
+#line 124
+
+
+# For dumping device-mapper and snapshot information.
+allow dumpstate gsid_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 128
+
+#line 128
+allow dumpstate property_socket:sock_file write;
+#line 128
+allow dumpstate init:unix_stream_socket connectto;
+#line 128
+
+#line 128
+allow dumpstate ctl_gsid_prop:property_service set;
+#line 128
+
+#line 128
+allow dumpstate ctl_gsid_prop:file { getattr open read map };
+#line 128
+
+#line 128
+
+
+#line 129
+# Call the server domain and optionally transfer references to it.
+#line 129
+allow dumpstate gsid:binder { call transfer };
+#line 129
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 129
+allow gsid dumpstate:binder transfer;
+#line 129
+# Receive and use open files from the server.
+#line 129
+allow dumpstate gsid:fd use;
+#line 129
+
+
+
+#line 131
+allow dumpstate ota_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 131
+allow dumpstate ota_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 131
+
+
+# For starting (and killing) perfetto --save-for-bugreport. If a labelled trace
+# is being recorded, the command above will serialize it into
+# /data/misc/perfetto-traces/bugreport/*.pftrace .
+
+#line 136
+# Allow the necessary permissions.
+#line 136
+
+#line 136
+# Old domain may exec the file and transition to the new domain.
+#line 136
+allow dumpstate perfetto_exec:file { getattr open read execute map };
+#line 136
+allow dumpstate perfetto:process transition;
+#line 136
+# New domain is entered by executing the file.
+#line 136
+allow perfetto perfetto_exec:file { entrypoint open read execute getattr map };
+#line 136
+# New domain can send SIGCHLD to its caller.
+#line 136
+allow perfetto dumpstate:process sigchld;
+#line 136
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 136
+dontaudit dumpstate perfetto:process noatsecure;
+#line 136
+# XXX dontaudit candidate but requires further study.
+#line 136
+allow dumpstate perfetto:process { siginh rlimitinh };
+#line 136
+
+#line 136
+# Make the transition occur by default.
+#line 136
+type_transition dumpstate perfetto_exec:process perfetto;
+#line 136
+
+allow dumpstate perfetto:process signal;
+allow dumpstate perfetto_traces_data_file:dir { search };
+allow dumpstate perfetto_traces_bugreport_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow dumpstate perfetto_traces_bugreport_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+
+# When exec-ing /system/bin/perfetto, dumpstates redirects stdio to /dev/null
+# (which is labelled as dumpstate_tmpfs) to avoid leaking a FD to the bugreport
+# zip file. These rules are to allow perfetto.te to inherit dumpstate's
+# /dev/null.
+allow perfetto dumpstate_tmpfs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow perfetto dumpstate:fd use;
+
+# system_dlkm_file for /system_dlkm partition
+allow dumpstate system_dlkm_file:dir getattr;
+
+# Allow dumpstate to execute derive_sdk in its own domain
+
+#line 153
+# Allow the necessary permissions.
+#line 153
+
+#line 153
+# Old domain may exec the file and transition to the new domain.
+#line 153
+allow dumpstate derive_sdk_exec:file { getattr open read execute map };
+#line 153
+allow dumpstate derive_sdk:process transition;
+#line 153
+# New domain is entered by executing the file.
+#line 153
+allow derive_sdk derive_sdk_exec:file { entrypoint open read execute getattr map };
+#line 153
+# New domain can send SIGCHLD to its caller.
+#line 153
+allow derive_sdk dumpstate:process sigchld;
+#line 153
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 153
+dontaudit dumpstate derive_sdk:process noatsecure;
+#line 153
+# XXX dontaudit candidate but requires further study.
+#line 153
+allow dumpstate derive_sdk:process { siginh rlimitinh };
+#line 153
+
+#line 153
+# Make the transition occur by default.
+#line 153
+type_transition dumpstate derive_sdk_exec:process derive_sdk;
+#line 153
+
+#line 1 "system/sepolicy/private/ephemeral_app.te"
+###
+### Ephemeral apps.
+###
+### This file defines the security policy for apps with the ephemeral
+### feature.
+###
+### The ephemeral_app domain is a reduced permissions sandbox allowing
+### ephemeral applications to be safely installed and run. Non ephemeral
+### applications may also opt-in to ephemeral to take advantage of the
+### additional security features.
+###
+### PackageManager flags an app as ephemeral at install time.
+
+typeattribute ephemeral_app coredomain;
+
+
+#line 16
+typeattribute ephemeral_app netdomain;
+#line 16
+
+
+#line 17
+typeattribute ephemeral_app appdomain;
+#line 17
+# Label tmpfs objects for all apps.
+#line 17
+type_transition ephemeral_app tmpfs:file appdomain_tmpfs;
+#line 17
+
+#line 17
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 17
+type ephemeral_app_userfaultfd;
+#line 17
+type_transition ephemeral_app ephemeral_app:anon_inode ephemeral_app_userfaultfd "[userfaultfd]";
+#line 17
+# Allow domain to create/use userfaultfd anon_inode.
+#line 17
+allow ephemeral_app ephemeral_app_userfaultfd:anon_inode { create ioctl read };
+#line 17
+# Suppress errors generate during bugreport
+#line 17
+dontaudit su ephemeral_app_userfaultfd:anon_inode *;
+#line 17
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 17
+neverallow { domain -ephemeral_app } ephemeral_app_userfaultfd:anon_inode *;
+#line 17
+
+#line 17
+allow ephemeral_app appdomain_tmpfs:file { execute getattr map read write };
+#line 17
+neverallow { ephemeral_app -runas_app -shell -simpleperf } { domain -ephemeral_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 17
+neverallow { appdomain -runas_app -shell -simpleperf -ephemeral_app } ephemeral_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 17
+# The Android security model guarantees the confidentiality and integrity
+#line 17
+# of application data and execution state. Ptrace bypasses those
+#line 17
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 17
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 17
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 17
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 17
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 17
+# live lock conditions.
+#line 17
+neverallow { domain -ephemeral_app -crash_dump  -runas_app -simpleperf } ephemeral_app:process ptrace;
+#line 17
+
+
+# Allow ephemeral apps to read/write files in visible storage if provided fds
+allow ephemeral_app { sdcard_type fuse media_rw_data_file }:file {read write getattr ioctl lock append};
+
+# Some apps ship with shared libraries and binaries that they write out
+# to their sandbox directory and then execute.
+allow ephemeral_app privapp_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+allow ephemeral_app app_data_file:file     { { getattr open read ioctl lock map watch watch_reads } execute };
+
+# Follow priv-app symlinks. This is used for dynamite functionality.
+allow ephemeral_app privapp_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow the renderscript compiler to be run.
+
+#line 31
+# Allow the necessary permissions.
+#line 31
+
+#line 31
+# Old domain may exec the file and transition to the new domain.
+#line 31
+allow ephemeral_app rs_exec:file { getattr open read execute map };
+#line 31
+allow ephemeral_app rs:process transition;
+#line 31
+# New domain is entered by executing the file.
+#line 31
+allow rs rs_exec:file { entrypoint open read execute getattr map };
+#line 31
+# New domain can send SIGCHLD to its caller.
+#line 31
+allow rs ephemeral_app:process sigchld;
+#line 31
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 31
+dontaudit ephemeral_app rs:process noatsecure;
+#line 31
+# XXX dontaudit candidate but requires further study.
+#line 31
+allow ephemeral_app rs:process { siginh rlimitinh };
+#line 31
+
+#line 31
+# Make the transition occur by default.
+#line 31
+type_transition ephemeral_app rs_exec:process rs;
+#line 31
+
+
+# Allow loading and deleting shared libraries created by trusted system
+# components within an application home directory.
+allow ephemeral_app app_exec_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute unlink };
+
+# services
+allow ephemeral_app audioserver_service:service_manager find;
+allow ephemeral_app cameraserver_service:service_manager find;
+allow ephemeral_app mediaserver_service:service_manager find;
+allow ephemeral_app mediaextractor_service:service_manager find;
+allow ephemeral_app mediametrics_service:service_manager find;
+allow ephemeral_app mediadrmserver_service:service_manager find;
+allow ephemeral_app drmserver_service:service_manager find;
+allow ephemeral_app radio_service:service_manager find;
+allow ephemeral_app ephemeral_app_api_service:service_manager find;
+
+# allow ephemeral apps to use UDP sockets provided by the system server but not
+# modify them other than to connect
+allow ephemeral_app system_server:udp_socket {
+        connect getattr read recvfrom sendto write getopt setopt };
+
+allow ephemeral_app ashmem_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+###
+### neverallow rules
+###
+
+neverallow ephemeral_app app_data_file_type:file execute_no_trans;
+
+# Receive or send uevent messages.
+neverallow ephemeral_app domain:netlink_kobject_uevent_socket *;
+
+# Receive or send generic netlink messages
+neverallow ephemeral_app domain:netlink_socket *;
+
+# Too much leaky information in debugfs. It's a security
+# best practice to ensure these files aren't readable.
+neverallow ephemeral_app debugfs_type:file read;
+
+# execute gpu_device
+neverallow ephemeral_app gpu_device:chr_file execute;
+
+# access files in /sys with the default sysfs label
+neverallow ephemeral_app sysfs:file *;
+
+# Avoid reads from generically labeled /proc files
+# Create a more specific label if needed
+neverallow ephemeral_app proc:file { { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads } { execute execute_no_trans } };
+
+# Directly access external storage
+neverallow ephemeral_app { sdcard_type fuse media_rw_data_file }:file {open create};
+neverallow ephemeral_app { sdcard_type fuse media_rw_data_file }:dir search;
+
+# Avoid reads to proc_net, it contains too much device wide information about
+# ongoing connections.
+neverallow ephemeral_app proc_net:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 1 "system/sepolicy/private/evsmanagerd.te"
+# evsmanager
+typeattribute evsmanagerd coredomain;
+typeattribute evsmanagerd evsmanager_service_server;
+
+type evsmanagerd_exec, system_file_type, exec_type, file_type;
+
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init evsmanagerd_exec:file { getattr open read execute map };
+#line 7
+allow init evsmanagerd:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow evsmanagerd evsmanagerd_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init evsmanagerd:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init evsmanagerd:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init evsmanagerd_exec:process evsmanagerd;
+#line 7
+
+#line 7
+;
+
+# Declares as a binder service
+
+#line 10
+typeattribute evsmanagerd binderservicedomain;
+#line 10
+
+
+# Allows to add a service to service_manager
+
+#line 13
+  allow evsmanagerd evsmanagerd_service:service_manager { add find };
+#line 13
+  neverallow { domain -evsmanagerd } evsmanagerd_service:service_manager add;
+#line 13
+
+#line 13
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 13
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 13
+  
+#line 13
+
+
+# Allows to use the binder IPC
+
+#line 16
+# Call the servicemanager and transfer references to it.
+#line 16
+allow evsmanagerd servicemanager:binder { call transfer };
+#line 16
+# Allow servicemanager to send out callbacks
+#line 16
+allow servicemanager evsmanagerd:binder { call transfer };
+#line 16
+# servicemanager performs getpidcon on clients.
+#line 16
+allow servicemanager evsmanagerd:dir search;
+#line 16
+allow servicemanager evsmanagerd:file { read open };
+#line 16
+allow servicemanager evsmanagerd:process getattr;
+#line 16
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 16
+# all domains in domain.te.
+#line 16
+
+
+# Allows binder IPCs to the various system services
+
+#line 19
+# Call the server domain and optionally transfer references to it.
+#line 19
+allow evsmanagerd system_server:binder { call transfer };
+#line 19
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 19
+allow system_server evsmanagerd:binder transfer;
+#line 19
+# Receive and use open files from the server.
+#line 19
+allow evsmanagerd system_server:fd use;
+#line 19
+
+
+# Allows to use EVS HAL implementations
+
+#line 22
+typeattribute evsmanagerd halclientdomain;
+#line 22
+typeattribute evsmanagerd hal_evs_client;
+#line 22
+
+#line 22
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 22
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 22
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 22
+
+#line 22
+typeattribute evsmanagerd hal_evs;
+#line 22
+# Find passthrough HAL implementations
+#line 22
+allow hal_evs system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow hal_evs vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow hal_evs vendor_file:file { read open getattr execute map };
+#line 22
+
+#line 22
+
+
+# Allows to write messages to the shell
+allow evsmanagerd shell:fd use;
+allow evsmanagerd shell:fifo_file write;
+
+# Allows to use the graphics allocator
+allow evsmanagerd hal_graphics_allocator:fd use;
+
+# Allows to use a bootstrap statsd
+allow evsmanagerd statsbootstrap_service:service_manager find;
+
+# Allows binder IPCs to the CarService
+
+#line 35
+# Call the server domain and optionally transfer references to it.
+#line 35
+allow evsmanagerd appdomain:binder { call transfer };
+#line 35
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 35
+allow appdomain evsmanagerd:binder transfer;
+#line 35
+# Receive and use open files from the server.
+#line 35
+allow evsmanagerd appdomain:fd use;
+#line 35
+
+
+# For HIDL evs manager implementation
+allow evsmanagerd hal_evs_hwservice:hwservice_manager add;
+allow evsmanagerd hidl_base_hwservice:hwservice_manager add;
+#line 1 "system/sepolicy/private/extra_free_kbytes.te"
+typeattribute extra_free_kbytes coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init extra_free_kbytes_exec:file { getattr open read execute map };
+#line 3
+allow init extra_free_kbytes:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow extra_free_kbytes extra_free_kbytes_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init extra_free_kbytes:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init extra_free_kbytes:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init extra_free_kbytes_exec:process extra_free_kbytes;
+#line 3
+
+#line 3
+
+
+# Only extra_free_kbytes script is allowed to store these properties
+
+#line 6
+
+#line 6
+allow extra_free_kbytes property_socket:sock_file write;
+#line 6
+allow extra_free_kbytes init:unix_stream_socket connectto;
+#line 6
+
+#line 6
+allow extra_free_kbytes init_storage_prop:property_service set;
+#line 6
+
+#line 6
+allow extra_free_kbytes init_storage_prop:file { getattr open read map };
+#line 6
+
+#line 6
+
+#line 1 "system/sepolicy/private/fastbootd.te"
+typeattribute fastbootd coredomain;
+
+# The allow rules are only included in the recovery policy.
+# Otherwise fastbootd is only allowed the domain rules.
+#line 52
+
+
+# This capability allows fastbootd to circumvent memlock rlimits while using
+# io_uring. An Alternative would be to up the memlock rlimit for the fastbootd service.
+allow fastbootd self:capability ipc_lock;
+
+#line 57
+# Set up a type_transition to "io_uring" named anonymous inode object.
+#line 57
+type fastbootd_iouring;
+#line 57
+type_transition fastbootd fastbootd:anon_inode fastbootd_iouring "[io_uring]";
+#line 57
+# Allow domain to create/use io_uring anon_inode.
+#line 57
+allow fastbootd fastbootd_iouring:anon_inode { create map read write };
+#line 57
+allow fastbootd self:io_uring sqpoll;
+#line 57
+# Other domains may not use iouring anon_inodes created by this domain.
+#line 57
+neverallow { domain -fastbootd } fastbootd_iouring:anon_inode *;
+#line 57
+# io_uring checks for CAP_IPC_LOCK to determine whether or not to track
+#line 57
+# memory usage per uid against RLIMIT_MEMLOCK. This can lead folks to
+#line 57
+# grant CAP_IPC_LOCK to silence avc denials, which is undesireable.
+#line 57
+dontaudit fastbootd self:{ capability cap_userns } ipc_lock;
+#line 57
+
+#line 1 "system/sepolicy/private/file.te"
+# /proc/config.gz
+type config_gz, fs_type, proc_type;
+
+# /sys/fs/bpf/<dir> for mainline tethering use
+# TODO: move S+ fs_bpf_tethering here from public/file.te
+type fs_bpf_net_private, fs_type, bpffs_type;
+type fs_bpf_net_shared, fs_type, bpffs_type;
+type fs_bpf_netd_readonly, fs_type, bpffs_type;
+type fs_bpf_netd_shared, fs_type, bpffs_type;
+type fs_bpf_loader, fs_type, bpffs_type;
+type fs_bpf_uprobestats, fs_type, bpffs_type;
+
+# /data/misc/storaged
+type storaged_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/wmtrace for wm traces
+type wm_trace_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+
+# /data/misc/a11ytrace for accessibility traces
+type accessibility_trace_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/perfetto-traces for perfetto traces
+type perfetto_traces_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/perfetto-traces/bugreport for perfetto traces for bugreports.
+type perfetto_traces_bugreport_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/perfetto-traces/profiling for perfetto traces from profiling apis.
+type perfetto_traces_profiling_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/perfetto-configs for perfetto configs
+type perfetto_configs_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/uprobestats-configs for uprobestats configs
+type uprobestats_configs_data_file, file_type, data_file_type, core_data_file_type;
+
+# /apex/com.android.art/bin/oatdump
+type oatdump_exec, system_file_type, exec_type, file_type;
+
+# /data/misc_{ce/de}/<user>/sdksandbox root data directory for sdk sandbox processes
+type sdk_sandbox_system_data_file, file_type, data_file_type, core_data_file_type;
+# /data/misc_{ce/de}/<user>/sdksandbox/<app-name>/* subdirectory for sdk sandbox processes
+type sdk_sandbox_data_file, file_type, data_file_type, core_data_file_type, app_data_file_type;
+
+# /sys/kernel/debug/kcov for coverage guided kernel fuzzing in userdebug builds.
+type debugfs_kcov, fs_type, debugfs_type;
+
+# App executable files in /data/data directories
+type app_exec_data_file, file_type, data_file_type, core_data_file_type;
+typealias app_exec_data_file alias rs_data_file;
+
+# /data/misc_[ce|de]/rollback : Used by installd to store snapshots
+# of application data.
+type rollback_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc_ce/checkin for checkin apps.
+type checkin_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/gsi/ota
+type ota_image_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/gsi_persistent_data
+type gsi_persistent_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/emergencynumberdb
+type emergency_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/profcollectd
+type profcollectd_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/apexdata/com.android.art
+type apex_art_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+
+# /data/misc/apexdata/com.android.art/staging
+type apex_art_staging_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/apexdata/com.android.compos
+type apex_compos_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+
+# /data/misc/apexdata/com.android.virt
+type apex_virt_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+
+# /data/misc/apexdata/com.android.tethering
+type apex_tethering_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+
+# legacy labels for various /data/misc[_ce|_de]/*/apexdata directories - retained
+# for backward compatibility b/217581286
+type apex_appsearch_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+type apex_permission_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+type apex_scheduling_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+type apex_wifi_data_file, file_type, data_file_type, core_data_file_type, apex_data_file_type;
+
+# /data/font/files
+type font_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/dmesgd
+type dmesgd_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/odrefresh
+type odrefresh_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/odsign
+type odsign_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/odsign_metrics
+type odsign_metrics_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/virtualizationservice
+# The type needs to be mlstrustedobject to allow for being accessed from
+# virtualizationmanager, which runs at a more constrained MLS level.
+type virtualizationservice_data_file, file_type, data_file_type, core_data_file_type, mlstrustedobject;
+
+# /data/system/environ
+type environ_system_data_file, file_type, data_file_type, core_data_file_type;
+
+# /data/misc/bootanim
+type bootanim_data_file, file_type, data_file_type, core_data_file_type;
+
+# /dev/kvm
+# The type needs to be mlstrustedobject to allow for being accessed from
+# crosvm, which runs at a more constrained MLS level.
+type kvm_device, dev_type, mlstrustedobject, vm_manager_device_type;
+
+# /apex/com.android.virt/bin/fd_server
+type fd_server_exec, system_file_type, exec_type, file_type;
+
+# /apex/com.android.compos/bin/compsvc
+type compos_exec, exec_type, file_type, system_file_type;
+# /apex/com.android.compos/bin/compos_key_helper
+type compos_key_helper_exec, exec_type, file_type, system_file_type;
+
+# /apex/com.android.art/bin/art_exec
+# This executable does not have its own domain because it is executed in the caller's domain. For
+# example, it is executed in the `artd` domain when artd calls it.
+type art_exec_exec, system_file_type, exec_type, file_type;
+
+# Filesystem entry for for PRNG seeder socket.  Processes require
+# write permission on this to connect, and needs to be mlstrustedobject
+# in to satisfy MLS constraints for trusted domains.
+type prng_seeder_socket, file_type, coredomain_socket, mlstrustedobject;
+
+# /proc/device-tree/avf and /sys/firmware/devicetree/base/avf
+type sysfs_dt_avf, fs_type, sysfs_type;
+type proc_dt_avf, fs_type, proc_type;
+
+# Type for /system/fonts/font_fallback.xm
+type system_font_fallback_file, system_file_type, file_type;
+
+# Type for /sys/devices/uprobe.
+type sysfs_uprobe, fs_type, sysfs_type;
+
+# Type for aconfig daemon socket
+type aconfigd_socket, file_type, coredomain_socket;
+
+# Type for /(system|system_ext|product)/etc/aconfig
+type system_aconfig_storage_file, system_file_type, file_type;
+
+# Type for /vendor/etc/aconfig
+type vendor_aconfig_storage_file, vendor_file_type, file_type;
+#line 1 "system/sepolicy/private/fingerprintd.te"
+typeattribute fingerprintd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init fingerprintd_exec:file { getattr open read execute map };
+#line 3
+allow init fingerprintd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow fingerprintd fingerprintd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init fingerprintd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init fingerprintd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init fingerprintd_exec:process fingerprintd;
+#line 3
+
+#line 3
+
+#line 1 "system/sepolicy/private/flags_health_check.te"
+typeattribute flags_health_check coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init flags_health_check_exec:file { getattr open read execute map };
+#line 3
+allow init flags_health_check:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow flags_health_check flags_health_check_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init flags_health_check:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init flags_health_check:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init flags_health_check_exec:process flags_health_check;
+#line 3
+
+#line 3
+
+
+
+#line 5
+
+#line 5
+allow flags_health_check property_socket:sock_file write;
+#line 5
+allow flags_health_check init:unix_stream_socket connectto;
+#line 5
+
+#line 5
+allow flags_health_check device_config_boot_count_prop:property_service set;
+#line 5
+
+#line 5
+allow flags_health_check device_config_boot_count_prop:file { getattr open read map };
+#line 5
+
+#line 5
+
+
+#line 6
+
+#line 6
+allow flags_health_check property_socket:sock_file write;
+#line 6
+allow flags_health_check init:unix_stream_socket connectto;
+#line 6
+
+#line 6
+allow flags_health_check device_config_core_experiments_team_internal_prop:property_service set;
+#line 6
+
+#line 6
+allow flags_health_check device_config_core_experiments_team_internal_prop:file { getattr open read map };
+#line 6
+
+#line 6
+
+
+#line 7
+
+#line 7
+allow flags_health_check property_socket:sock_file write;
+#line 7
+allow flags_health_check init:unix_stream_socket connectto;
+#line 7
+
+#line 7
+allow flags_health_check device_config_edgetpu_native_prop:property_service set;
+#line 7
+
+#line 7
+allow flags_health_check device_config_edgetpu_native_prop:file { getattr open read map };
+#line 7
+
+#line 7
+
+
+#line 8
+
+#line 8
+allow flags_health_check property_socket:sock_file write;
+#line 8
+allow flags_health_check init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow flags_health_check device_config_reset_performed_prop:property_service set;
+#line 8
+
+#line 8
+allow flags_health_check device_config_reset_performed_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+
+#line 9
+
+#line 9
+allow flags_health_check property_socket:sock_file write;
+#line 9
+allow flags_health_check init:unix_stream_socket connectto;
+#line 9
+
+#line 9
+allow flags_health_check device_config_runtime_native_boot_prop:property_service set;
+#line 9
+
+#line 9
+allow flags_health_check device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 9
+
+#line 9
+
+
+#line 10
+
+#line 10
+allow flags_health_check property_socket:sock_file write;
+#line 10
+allow flags_health_check init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow flags_health_check device_config_runtime_native_prop:property_service set;
+#line 10
+
+#line 10
+allow flags_health_check device_config_runtime_native_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+#line 11
+
+#line 11
+allow flags_health_check property_socket:sock_file write;
+#line 11
+allow flags_health_check init:unix_stream_socket connectto;
+#line 11
+
+#line 11
+allow flags_health_check device_config_input_native_boot_prop:property_service set;
+#line 11
+
+#line 11
+allow flags_health_check device_config_input_native_boot_prop:file { getattr open read map };
+#line 11
+
+#line 11
+
+
+#line 12
+
+#line 12
+allow flags_health_check property_socket:sock_file write;
+#line 12
+allow flags_health_check init:unix_stream_socket connectto;
+#line 12
+
+#line 12
+allow flags_health_check device_config_lmkd_native_prop:property_service set;
+#line 12
+
+#line 12
+allow flags_health_check device_config_lmkd_native_prop:file { getattr open read map };
+#line 12
+
+#line 12
+
+
+#line 13
+
+#line 13
+allow flags_health_check property_socket:sock_file write;
+#line 13
+allow flags_health_check init:unix_stream_socket connectto;
+#line 13
+
+#line 13
+allow flags_health_check device_config_netd_native_prop:property_service set;
+#line 13
+
+#line 13
+allow flags_health_check device_config_netd_native_prop:file { getattr open read map };
+#line 13
+
+#line 13
+
+
+#line 14
+
+#line 14
+allow flags_health_check property_socket:sock_file write;
+#line 14
+allow flags_health_check init:unix_stream_socket connectto;
+#line 14
+
+#line 14
+allow flags_health_check device_config_nnapi_native_prop:property_service set;
+#line 14
+
+#line 14
+allow flags_health_check device_config_nnapi_native_prop:file { getattr open read map };
+#line 14
+
+#line 14
+
+
+#line 15
+
+#line 15
+allow flags_health_check property_socket:sock_file write;
+#line 15
+allow flags_health_check init:unix_stream_socket connectto;
+#line 15
+
+#line 15
+allow flags_health_check device_config_activity_manager_native_boot_prop:property_service set;
+#line 15
+
+#line 15
+allow flags_health_check device_config_activity_manager_native_boot_prop:file { getattr open read map };
+#line 15
+
+#line 15
+
+
+#line 16
+
+#line 16
+allow flags_health_check property_socket:sock_file write;
+#line 16
+allow flags_health_check init:unix_stream_socket connectto;
+#line 16
+
+#line 16
+allow flags_health_check device_config_media_native_prop:property_service set;
+#line 16
+
+#line 16
+allow flags_health_check device_config_media_native_prop:file { getattr open read map };
+#line 16
+
+#line 16
+
+
+#line 17
+
+#line 17
+allow flags_health_check property_socket:sock_file write;
+#line 17
+allow flags_health_check init:unix_stream_socket connectto;
+#line 17
+
+#line 17
+allow flags_health_check device_config_mglru_native_prop:property_service set;
+#line 17
+
+#line 17
+allow flags_health_check device_config_mglru_native_prop:file { getattr open read map };
+#line 17
+
+#line 17
+
+
+#line 18
+
+#line 18
+allow flags_health_check property_socket:sock_file write;
+#line 18
+allow flags_health_check init:unix_stream_socket connectto;
+#line 18
+
+#line 18
+allow flags_health_check device_config_profcollect_native_boot_prop:property_service set;
+#line 18
+
+#line 18
+allow flags_health_check device_config_profcollect_native_boot_prop:file { getattr open read map };
+#line 18
+
+#line 18
+
+
+#line 19
+
+#line 19
+allow flags_health_check property_socket:sock_file write;
+#line 19
+allow flags_health_check init:unix_stream_socket connectto;
+#line 19
+
+#line 19
+allow flags_health_check device_config_statsd_native_prop:property_service set;
+#line 19
+
+#line 19
+allow flags_health_check device_config_statsd_native_prop:file { getattr open read map };
+#line 19
+
+#line 19
+
+
+#line 20
+
+#line 20
+allow flags_health_check property_socket:sock_file write;
+#line 20
+allow flags_health_check init:unix_stream_socket connectto;
+#line 20
+
+#line 20
+allow flags_health_check device_config_statsd_native_boot_prop:property_service set;
+#line 20
+
+#line 20
+allow flags_health_check device_config_statsd_native_boot_prop:file { getattr open read map };
+#line 20
+
+#line 20
+
+
+#line 21
+
+#line 21
+allow flags_health_check property_socket:sock_file write;
+#line 21
+allow flags_health_check init:unix_stream_socket connectto;
+#line 21
+
+#line 21
+allow flags_health_check device_config_storage_native_boot_prop:property_service set;
+#line 21
+
+#line 21
+allow flags_health_check device_config_storage_native_boot_prop:file { getattr open read map };
+#line 21
+
+#line 21
+
+
+#line 22
+
+#line 22
+allow flags_health_check property_socket:sock_file write;
+#line 22
+allow flags_health_check init:unix_stream_socket connectto;
+#line 22
+
+#line 22
+allow flags_health_check device_config_swcodec_native_prop:property_service set;
+#line 22
+
+#line 22
+allow flags_health_check device_config_swcodec_native_prop:file { getattr open read map };
+#line 22
+
+#line 22
+
+
+#line 23
+
+#line 23
+allow flags_health_check property_socket:sock_file write;
+#line 23
+allow flags_health_check init:unix_stream_socket connectto;
+#line 23
+
+#line 23
+allow flags_health_check device_config_sys_traced_prop:property_service set;
+#line 23
+
+#line 23
+allow flags_health_check device_config_sys_traced_prop:file { getattr open read map };
+#line 23
+
+#line 23
+
+
+#line 24
+
+#line 24
+allow flags_health_check property_socket:sock_file write;
+#line 24
+allow flags_health_check init:unix_stream_socket connectto;
+#line 24
+
+#line 24
+allow flags_health_check device_config_window_manager_native_boot_prop:property_service set;
+#line 24
+
+#line 24
+allow flags_health_check device_config_window_manager_native_boot_prop:file { getattr open read map };
+#line 24
+
+#line 24
+
+
+#line 25
+
+#line 25
+allow flags_health_check property_socket:sock_file write;
+#line 25
+allow flags_health_check init:unix_stream_socket connectto;
+#line 25
+
+#line 25
+allow flags_health_check device_config_configuration_prop:property_service set;
+#line 25
+
+#line 25
+allow flags_health_check device_config_configuration_prop:file { getattr open read map };
+#line 25
+
+#line 25
+
+
+#line 26
+
+#line 26
+allow flags_health_check property_socket:sock_file write;
+#line 26
+allow flags_health_check init:unix_stream_socket connectto;
+#line 26
+
+#line 26
+allow flags_health_check device_config_connectivity_prop:property_service set;
+#line 26
+
+#line 26
+allow flags_health_check device_config_connectivity_prop:file { getattr open read map };
+#line 26
+
+#line 26
+
+
+#line 27
+
+#line 27
+allow flags_health_check property_socket:sock_file write;
+#line 27
+allow flags_health_check init:unix_stream_socket connectto;
+#line 27
+
+#line 27
+allow flags_health_check device_config_surface_flinger_native_boot_prop:property_service set;
+#line 27
+
+#line 27
+allow flags_health_check device_config_surface_flinger_native_boot_prop:file { getattr open read map };
+#line 27
+
+#line 27
+
+
+#line 28
+
+#line 28
+allow flags_health_check property_socket:sock_file write;
+#line 28
+allow flags_health_check init:unix_stream_socket connectto;
+#line 28
+
+#line 28
+allow flags_health_check device_config_aconfig_flags_prop:property_service set;
+#line 28
+
+#line 28
+allow flags_health_check device_config_aconfig_flags_prop:file { getattr open read map };
+#line 28
+
+#line 28
+
+
+#line 29
+
+#line 29
+allow flags_health_check property_socket:sock_file write;
+#line 29
+allow flags_health_check init:unix_stream_socket connectto;
+#line 29
+
+#line 29
+allow flags_health_check device_config_vendor_system_native_prop:property_service set;
+#line 29
+
+#line 29
+allow flags_health_check device_config_vendor_system_native_prop:file { getattr open read map };
+#line 29
+
+#line 29
+
+
+#line 30
+
+#line 30
+allow flags_health_check property_socket:sock_file write;
+#line 30
+allow flags_health_check init:unix_stream_socket connectto;
+#line 30
+
+#line 30
+allow flags_health_check device_config_vendor_system_native_boot_prop:property_service set;
+#line 30
+
+#line 30
+allow flags_health_check device_config_vendor_system_native_boot_prop:file { getattr open read map };
+#line 30
+
+#line 30
+
+
+#line 31
+
+#line 31
+allow flags_health_check property_socket:sock_file write;
+#line 31
+allow flags_health_check init:unix_stream_socket connectto;
+#line 31
+
+#line 31
+allow flags_health_check device_config_virtualization_framework_native_prop:property_service set;
+#line 31
+
+#line 31
+allow flags_health_check device_config_virtualization_framework_native_prop:file { getattr open read map };
+#line 31
+
+#line 31
+
+
+#line 32
+
+#line 32
+allow flags_health_check property_socket:sock_file write;
+#line 32
+allow flags_health_check init:unix_stream_socket connectto;
+#line 32
+
+#line 32
+allow flags_health_check device_config_memory_safety_native_boot_prop:property_service set;
+#line 32
+
+#line 32
+allow flags_health_check device_config_memory_safety_native_boot_prop:file { getattr open read map };
+#line 32
+
+#line 32
+
+
+#line 33
+
+#line 33
+allow flags_health_check property_socket:sock_file write;
+#line 33
+allow flags_health_check init:unix_stream_socket connectto;
+#line 33
+
+#line 33
+allow flags_health_check device_config_memory_safety_native_prop:property_service set;
+#line 33
+
+#line 33
+allow flags_health_check device_config_memory_safety_native_prop:file { getattr open read map };
+#line 33
+
+#line 33
+
+
+#line 34
+
+#line 34
+allow flags_health_check property_socket:sock_file write;
+#line 34
+allow flags_health_check init:unix_stream_socket connectto;
+#line 34
+
+#line 34
+allow flags_health_check device_config_remote_key_provisioning_native_prop:property_service set;
+#line 34
+
+#line 34
+allow flags_health_check device_config_remote_key_provisioning_native_prop:file { getattr open read map };
+#line 34
+
+#line 34
+
+
+#line 35
+
+#line 35
+allow flags_health_check property_socket:sock_file write;
+#line 35
+allow flags_health_check init:unix_stream_socket connectto;
+#line 35
+
+#line 35
+allow flags_health_check device_config_camera_native_prop:property_service set;
+#line 35
+
+#line 35
+allow flags_health_check device_config_camera_native_prop:file { getattr open read map };
+#line 35
+
+#line 35
+
+
+#line 36
+
+#line 36
+allow flags_health_check property_socket:sock_file write;
+#line 36
+allow flags_health_check init:unix_stream_socket connectto;
+#line 36
+
+#line 36
+allow flags_health_check device_config_tethering_u_or_later_native_prop:property_service set;
+#line 36
+
+#line 36
+allow flags_health_check device_config_tethering_u_or_later_native_prop:file { getattr open read map };
+#line 36
+
+#line 36
+
+
+#line 37
+
+#line 37
+allow flags_health_check property_socket:sock_file write;
+#line 37
+allow flags_health_check init:unix_stream_socket connectto;
+#line 37
+
+#line 37
+allow flags_health_check next_boot_prop:property_service set;
+#line 37
+
+#line 37
+allow flags_health_check next_boot_prop:file { getattr open read map };
+#line 37
+
+#line 37
+
+
+# system property device_config_boot_count_prop is used for deciding when to perform server
+# configurable flags related disaster recovery. Mistakenly set up by unrelated components can, at a
+# wrong timing, trigger server configurable flag related disaster recovery, which will override
+# server configured values of all flags with default values.
+neverallow { domain -init -flags_health_check } device_config_boot_count_prop:property_service set;
+
+# system property device_config_reset_performed_prop is used for indicating whether server
+# configurable flags have been reset during booting. Mistakenly modified by unrelated components can
+# cause bad server configurable flags synced back to device.
+neverallow { domain -init -flags_health_check } device_config_reset_performed_prop:property_service set;
+#line 1 "system/sepolicy/private/fsck.te"
+typeattribute fsck coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init fsck_exec:file { getattr open read execute map };
+#line 3
+allow init fsck:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow fsck fsck_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init fsck:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init fsck:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init fsck_exec:process fsck;
+#line 3
+
+#line 3
+
+
+allow fsck metadata_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1 "system/sepolicy/private/fsck_untrusted.te"
+typeattribute fsck_untrusted coredomain;
+#line 1 "system/sepolicy/private/fsverity_init.te"
+type fsverity_init, domain, coredomain;
+type fsverity_init_exec, exec_type, file_type, system_file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init fsverity_init_exec:file { getattr open read execute map };
+#line 4
+allow init fsverity_init:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow fsverity_init fsverity_init_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init fsverity_init:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init fsverity_init:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init fsverity_init_exec:process fsverity_init;
+#line 4
+
+#line 4
+
+
+# Allow to read /proc/keys for searching key id.
+allow fsverity_init proc_keys:file { getattr open read ioctl lock map watch watch_reads };
+
+# Ignore denials to access irrelevant keys, as a side effect to access /proc/keys.
+dontaudit fsverity_init domain:key view;
+allow fsverity_init kernel:key { view search write setattr };
+allow fsverity_init fsverity_init:key { view search write };
+
+# Read the on-device signing certificate, to be able to add it to the keyring
+allow fsverity_init odsign:fd use;
+allow fsverity_init odsign_data_file:file { getattr read };
+#line 1 "system/sepolicy/private/fuseblkd.te"
+# Compartmentalized domain specifically for mounting fuseblk filesystems.
+# We need this to not grant fuseblkd_untrusted sys_admin permissions.
+type fuseblkd_exec, system_file_type, exec_type, file_type;
+type fuseblkd, domain;
+
+typeattribute fuseblkd coredomain;
+
+# Required for mount and unmounting. We can't minimize this permission,
+# even though we only allow mount/unmount.
+allow fuseblkd self:{ capability cap_userns } sys_admin;
+
+# Permissions for the fuseblk filesystem.
+allow fuseblkd fuse_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow fuseblkd fuseblk:filesystem { mount unmount };
+allow fuseblkd fuseblkd_untrusted:fd use;
+
+# Look through block devices to find the correct one.
+allow fuseblkd block_device:dir search;
+
+# Permissions to mount on the media_rw directory for USB drives.
+allow fuseblkd mnt_media_rw_file:dir search;
+allow fuseblkd mnt_media_rw_stub_file:dir mounton;
+
+###
+### neverallow rules
+###
+
+# Only allow entry from fuseblkd_untrusted, and only through fuseblkd_exec binary.
+neverallow { domain -fuseblkd_untrusted } fuseblkd:process transition;
+neverallow * fuseblkd:process dyntransition;
+neverallow fuseblkd { file_type fs_type -fuseblkd_exec }:file entrypoint;
+#line 1 "system/sepolicy/private/fuseblkd_untrusted.te"
+# Fuseblk is a Filesystem in USErspace for block device. It should only be used
+# to mount untrusted blocks like USB drives.
+type fuseblkd_untrusted_exec, system_file_type, exec_type, file_type;
+type fuseblkd_untrusted, domain;
+
+typeattribute fuseblkd_untrusted coredomain;
+
+
+#line 8
+# Allow the necessary permissions.
+#line 8
+
+#line 8
+# Old domain may exec the file and transition to the new domain.
+#line 8
+allow fuseblkd_untrusted fuseblkd_exec:file { getattr open read execute map };
+#line 8
+allow fuseblkd_untrusted fuseblkd:process transition;
+#line 8
+# New domain is entered by executing the file.
+#line 8
+allow fuseblkd fuseblkd_exec:file { entrypoint open read execute getattr map };
+#line 8
+# New domain can send SIGCHLD to its caller.
+#line 8
+allow fuseblkd fuseblkd_untrusted:process sigchld;
+#line 8
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 8
+dontaudit fuseblkd_untrusted fuseblkd:process noatsecure;
+#line 8
+# XXX dontaudit candidate but requires further study.
+#line 8
+allow fuseblkd_untrusted fuseblkd:process { siginh rlimitinh };
+#line 8
+
+#line 8
+# Make the transition occur by default.
+#line 8
+type_transition fuseblkd_untrusted fuseblkd_exec:process fuseblkd;
+#line 8
+;
+
+# Allow stdin/out back to vold.
+allow fuseblkd_untrusted vold:fd use;
+
+# Allows fuseblk to read block devices.
+allow fuseblkd_untrusted block_device:dir search;
+
+# Permissions to read dynamic partitions blocks.
+allow fuseblkd_untrusted super_block_device:blk_file getattr;
+
+# Permissions to access FUSE character devices.
+allow fuseblkd_untrusted fuse_device:chr_file { getattr open read write };
+
+# Permissions to access /mnt/media_rw/.
+allow fuseblkd_untrusted mnt_media_rw_file:dir { getattr search };
+allow fuseblkd_untrusted mnt_media_rw_stub_file:dir getattr;
+
+# Permissions to read device mappers.
+allow fuseblkd_untrusted sysfs_dm:dir search;
+allow fuseblkd_untrusted sysfs_dm:file { getattr open read };
+allow fuseblkd_untrusted dm_device:blk_file getattr;
+
+# Permissions to read links in tmpfs.
+allow fuseblkd_untrusted tmpfs:lnk_file read;
+
+# Permissions to read loop device blocks.
+allow fuseblkd_untrusted loop_device:blk_file getattr;
+
+# Permissions to access the /proc/filesystems file.
+allow fuseblkd_untrusted proc_filesystems:file { open read getattr };
+
+###
+### dontaudit rules
+###
+
+# ntfs-3g wants this permission to read a fork return code, for some reason.
+# It's unclear why, because it still reads the fork return code correctly,
+# and nothing breaks. If enforce is set to permissive, the audit goes away.
+dontaudit fuseblkd_untrusted self:capability sys_admin;
+
+###
+### neverallow rules
+###
+
+# Fuseblk should never be run on block devices holding sensitive data.
+neverallow fuseblkd_untrusted {
+  boot_block_device
+  frp_block_device
+  metadata_block_device
+  recovery_block_device
+  root_block_device
+  swap_block_device
+  system_block_device
+  userdata_block_device
+  cache_block_device
+  dm_device
+}:blk_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Only allow entry from vold, and only through fuseblkd_untrusted_exec binaries.
+neverallow { domain -vold } fuseblkd_untrusted:process transition;
+neverallow * fuseblkd_untrusted:process dyntransition;
+neverallow fuseblkd_untrusted { file_type fs_type -fuseblkd_untrusted_exec }:file entrypoint;
+
+# Under no circumstances should fuseblkd_untrusted or any other fuseblk filesystem be
+# given sys_admin access. They are fundementally untrusted, insecure filesystems.
+# The correct solution here is to compartmentalize permissions correctly so that
+# a smaller binary can get the required permissions. See fuseblkd.te.
+# Similar to above, we don't need setgid or setuid permissions.
+neverallow fuseblkd_untrusted self:capability { setgid setuid sys_admin };
+neverallow fuseblkd_untrusted self:{ capability cap_userns } { setgid setuid sys_admin };
+
+# Since we can't have sys_admin permissions, we definitely can't have mount/unmount
+# permissions, since we won't be able to use them. Same with relabel permissions.
+neverallow fuseblkd_untrusted fuseblk:filesystem { mount unmount relabelto relabelfrom};
+#line 1 "system/sepolicy/private/fwk_bufferhub.te"
+type fwk_bufferhub, domain, coredomain;
+type fwk_bufferhub_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+typeattribute fwk_bufferhub halclientdomain;
+#line 4
+typeattribute fwk_bufferhub hal_graphics_allocator_client;
+#line 4
+
+#line 4
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 4
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 4
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 4
+
+#line 4
+typeattribute fwk_bufferhub hal_graphics_allocator;
+#line 4
+# Find passthrough HAL implementations
+#line 4
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 4
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 4
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 4
+
+#line 4
+
+allow fwk_bufferhub ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init fwk_bufferhub_exec:file { getattr open read execute map };
+#line 7
+allow init fwk_bufferhub:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow fwk_bufferhub fwk_bufferhub_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init fwk_bufferhub:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init fwk_bufferhub:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init fwk_bufferhub_exec:process fwk_bufferhub;
+#line 7
+
+#line 7
+
+#line 1 "system/sepolicy/private/gatekeeperd.te"
+typeattribute gatekeeperd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init gatekeeperd_exec:file { getattr open read execute map };
+#line 3
+allow init gatekeeperd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow gatekeeperd gatekeeperd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init gatekeeperd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init gatekeeperd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init gatekeeperd_exec:process gatekeeperd;
+#line 3
+
+#line 3
+
+
+# For checking whether GSI is running
+
+#line 6
+allow gatekeeperd gsid_prop:file { getattr open read map };
+#line 6
+
+#line 1 "system/sepolicy/private/gki_apex_prepostinstall.te"
+# GKI pre- & post-install hooks.
+#
+# Allow to run pre- and post-install hooks for GKI APEXes
+
+type gki_apex_prepostinstall, domain, coredomain;
+type gki_apex_prepostinstall_exec, system_file_type, exec_type, file_type;
+
+# Execute /system/bin/sh.
+allow gki_apex_prepostinstall shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Execute various toolsbox utilities.
+allow gki_apex_prepostinstall toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow preinstall.sh to execute update_engine_stable_client binary.
+allow gki_apex_prepostinstall gki_apex_prepostinstall_exec:file execute_no_trans;
+
+# Allow preinstall hook to communicate with update_engine to execute update.
+
+#line 18
+# Call the servicemanager and transfer references to it.
+#line 18
+allow gki_apex_prepostinstall servicemanager:binder { call transfer };
+#line 18
+# Allow servicemanager to send out callbacks
+#line 18
+allow servicemanager gki_apex_prepostinstall:binder { call transfer };
+#line 18
+# servicemanager performs getpidcon on clients.
+#line 18
+allow servicemanager gki_apex_prepostinstall:dir search;
+#line 18
+allow servicemanager gki_apex_prepostinstall:file { read open };
+#line 18
+allow servicemanager gki_apex_prepostinstall:process getattr;
+#line 18
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 18
+# all domains in domain.te.
+#line 18
+
+allow gki_apex_prepostinstall update_engine_stable_service:service_manager find;
+
+#line 20
+# Call the server domain and optionally transfer references to it.
+#line 20
+allow gki_apex_prepostinstall update_engine:binder { call transfer };
+#line 20
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 20
+allow update_engine gki_apex_prepostinstall:binder transfer;
+#line 20
+# Receive and use open files from the server.
+#line 20
+allow gki_apex_prepostinstall update_engine:fd use;
+#line 20
+
+
+# /dev/zero is inherited although it is not used. See b/126787589.
+allow gki_apex_prepostinstall apexd:fd use;
+#line 1 "system/sepolicy/private/gmscore_app.te"
+###
+### A domain for further sandboxing the PrebuiltGMSCore app.
+###
+typeattribute gmscore_app coredomain;
+
+
+#line 6
+typeattribute gmscore_app appdomain;
+#line 6
+# Label tmpfs objects for all apps.
+#line 6
+type_transition gmscore_app tmpfs:file appdomain_tmpfs;
+#line 6
+
+#line 6
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 6
+type gmscore_app_userfaultfd;
+#line 6
+type_transition gmscore_app gmscore_app:anon_inode gmscore_app_userfaultfd "[userfaultfd]";
+#line 6
+# Allow domain to create/use userfaultfd anon_inode.
+#line 6
+allow gmscore_app gmscore_app_userfaultfd:anon_inode { create ioctl read };
+#line 6
+# Suppress errors generate during bugreport
+#line 6
+dontaudit su gmscore_app_userfaultfd:anon_inode *;
+#line 6
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 6
+neverallow { domain -gmscore_app } gmscore_app_userfaultfd:anon_inode *;
+#line 6
+
+#line 6
+allow gmscore_app appdomain_tmpfs:file { execute getattr map read write };
+#line 6
+neverallow { gmscore_app -runas_app -shell -simpleperf } { domain -gmscore_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+neverallow { appdomain -runas_app -shell -simpleperf -gmscore_app } gmscore_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+# The Android security model guarantees the confidentiality and integrity
+#line 6
+# of application data and execution state. Ptrace bypasses those
+#line 6
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 6
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 6
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 6
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 6
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 6
+# live lock conditions.
+#line 6
+neverallow { domain -gmscore_app -crash_dump  -runas_app -simpleperf } gmscore_app:process ptrace;
+#line 6
+
+
+allow gmscore_app sysfs_type:dir search;
+# Read access to /sys/block/zram*/mm_stat
+
+#line 10
+allow gmscore_app sysfs_zram:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow gmscore_app sysfs_zram:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 10
+
+
+
+#line 12
+allow gmscore_app rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow gmscore_app rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 12
+
+
+# Allow GMS core to open kernel config for OTA matching through libvintf
+allow gmscore_app config_gz:file { open read getattr };
+
+# Allow GMS core to communicate with update_engine for A/B update.
+
+#line 18
+# Call the server domain and optionally transfer references to it.
+#line 18
+allow gmscore_app update_engine:binder { call transfer };
+#line 18
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 18
+allow update_engine gmscore_app:binder transfer;
+#line 18
+# Receive and use open files from the server.
+#line 18
+allow gmscore_app update_engine:fd use;
+#line 18
+
+allow gmscore_app update_engine_service:service_manager find;
+
+# Allow GMS core to communicate with dumpsys storaged.
+
+#line 22
+# Call the server domain and optionally transfer references to it.
+#line 22
+allow gmscore_app storaged:binder { call transfer };
+#line 22
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 22
+allow storaged gmscore_app:binder transfer;
+#line 22
+# Receive and use open files from the server.
+#line 22
+allow gmscore_app storaged:fd use;
+#line 22
+
+allow gmscore_app storaged_service:service_manager find;
+
+# Allow GMS core to access system_update_service (e.g. to publish pending
+# system update info).
+allow gmscore_app system_update_service:service_manager find;
+
+# Allow GMS core to communicate with statsd.
+
+#line 30
+# Call the server domain and optionally transfer references to it.
+#line 30
+allow gmscore_app statsd:binder { call transfer };
+#line 30
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 30
+allow statsd gmscore_app:binder transfer;
+#line 30
+# Receive and use open files from the server.
+#line 30
+allow gmscore_app statsd:fd use;
+#line 30
+
+
+# Allow GMS core to receive Perfetto traces through the framework
+# (i.e. TracingServiceProxy) and sendfile them into its private directory
+# for reporting when network and battery conditions are appropriate.
+allow gmscore_app perfetto:fd use;
+allow gmscore_app perfetto_traces_data_file:file { read getattr };
+
+# Allow GMS core to generate unique hardware IDs
+allow gmscore_app keystore:keystore2_key gen_unique_id;
+
+# Allow GMS core to access /sys/fs/selinux/policyvers for compatibility check
+allow gmscore_app selinuxfs:file { getattr open read ioctl lock map watch watch_reads };
+
+# suppress denials for non-API accesses.
+dontaudit gmscore_app exec_type:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app device:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit gmscore_app fs_bpf:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit gmscore_app kernel:security *;
+dontaudit gmscore_app net_dns_prop:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app proc:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app proc_interrupts:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app proc_modules:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app proc_net:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app proc_stat:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app proc_version:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit gmscore_app sysfs:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app sysfs_android_usb:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app sysfs_dm:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app sysfs_loop:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app sysfs_net:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app sysfs_net:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit gmscore_app { wifi_prop wifi_hal_prop }:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit gmscore_app mirror_data_file:dir search;
+dontaudit gmscore_app mnt_vendor_file:dir search;
+
+# Access the network
+
+#line 68
+typeattribute gmscore_app netdomain;
+#line 68
+
+
+# webview crash handling depends on self ptrace (b/27697529, b/20150694, b/19277529#comment7)
+allow gmscore_app self:process ptrace;
+
+# Allow loading executable code from writable priv-app home
+# directories. This is a W^X violation, however, it needs
+# to be supported for now for the following reasons.
+# * /data/user_*/0/*/code_cache/* POSSIBLE uses (b/117841367)
+#   1) com.android.opengl.shaders_cache
+#   2) com.android.skia.shaders_cache
+#   3) com.android.renderscript.cache
+# * /data/user_de/0/com.google.android.gms/app_chimera
+# TODO: Tighten (b/112357170)
+allow gmscore_app privapp_data_file:file execute;
+
+# Chrome Crashpad uses the the dynamic linker to load native executables
+# from an APK (b/112050209, crbug.com/928422)
+allow gmscore_app system_linker_exec:file execute_no_trans;
+
+allow gmscore_app privapp_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# /proc access
+allow gmscore_app proc_vmstat:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow interaction with gpuservice
+
+#line 94
+# Call the server domain and optionally transfer references to it.
+#line 94
+allow gmscore_app gpuservice:binder { call transfer };
+#line 94
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 94
+allow gpuservice gmscore_app:binder transfer;
+#line 94
+# Receive and use open files from the server.
+#line 94
+allow gmscore_app gpuservice:fd use;
+#line 94
+
+allow gmscore_app gpu_service:service_manager find;
+
+# find services that expose both @SystemAPI and normal APIs.
+allow gmscore_app app_api_service:service_manager find;
+allow gmscore_app system_api_service:service_manager find;
+allow gmscore_app audioserver_service:service_manager find;
+allow gmscore_app cameraserver_service:service_manager find;
+allow gmscore_app drmserver_service:service_manager find;
+allow gmscore_app mediadrmserver_service:service_manager find;
+allow gmscore_app mediaextractor_service:service_manager find;
+allow gmscore_app mediametrics_service:service_manager find;
+allow gmscore_app mediaserver_service:service_manager find;
+allow gmscore_app network_watchlist_service:service_manager find;
+allow gmscore_app nfc_service:service_manager find;
+allow gmscore_app oem_lock_service:service_manager find;
+allow gmscore_app persistent_data_block_service:service_manager find;
+allow gmscore_app radio_service:service_manager find;
+allow gmscore_app recovery_service:service_manager find;
+allow gmscore_app stats_service:service_manager find;
+
+# Used by Finsky / Android "Verify Apps" functionality when
+# running "adb install foo.apk".
+allow gmscore_app shell_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow gmscore_app shell_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Write to /cache.
+allow gmscore_app { cache_file cache_recovery_file }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow gmscore_app { cache_file cache_recovery_file }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# /cache is a symlink to /data/cache on some devices. Allow reading the link.
+allow gmscore_app cache_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Write to /data/ota_package for OTA packages.
+allow gmscore_app ota_package_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow gmscore_app ota_package_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Write the checkin metadata to /data/misc_ce/<userid>/checkin
+allow gmscore_app checkin_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow gmscore_app checkin_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Used by Finsky / Android "Verify Apps" functionality when
+# running "adb install foo.apk".
+allow gmscore_app shell_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow gmscore_app shell_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# b/18504118: Allow reads from /data/anr/traces.txt
+allow gmscore_app anr_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# b/148974132: com.android.vending needs this
+allow gmscore_app priv_app:tcp_socket { read write };
+
+# b/168059475 Allow GMSCore to read Virtual AB properties to determine
+# if device supports VAB.
+
+#line 147
+allow gmscore_app virtual_ab_prop:file { getattr open read map };
+#line 147
+
+
+# b/186488185: Allow GMSCore to read dck properties
+
+#line 150
+allow gmscore_app dck_prop:file { getattr open read map };
+#line 150
+
+
+# Allow GMSCore to read RKP properties for the purpose of GTS testing.
+
+#line 153
+allow gmscore_app remote_prov_prop:file { getattr open read map };
+#line 153
+
+
+# Allow GmsCore to read Quick Start properties and prevent access from other
+# policies.
+
+#line 157
+allow gmscore_app quick_start_prop:file { getattr open read map };
+#line 157
+
+neverallow { domain -init -dumpstate -vendor_init -gmscore_app } quick_start_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Do not allow getting permission-protected network information from sysfs.
+neverallow gmscore_app sysfs_net:file *;
+
+# Restrict socket ioctls. Either 1. disallow privileged ioctls, 2. disallow the
+# ioctl permission, or 3. disallow the socket class.
+neverallowxperm gmscore_app domain:{ icmp_socket rawip_socket tcp_socket udp_socket } ioctl 
+#line 165
+{
+#line 165
+# qualcomm rmnet ioctls
+#line 165
+0x00006900 0x00006902
+#line 165
+# socket ioctls
+#line 165
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 165
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 165
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 165
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 165
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 165
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 165
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 165
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 165
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 165
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 165
+# device and protocol specific ioctls
+#line 165
+0x000089f0-0x000089ff
+#line 165
+0x000089e0-0x000089ef
+#line 165
+# Wireless extension ioctls
+#line 165
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 165
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 165
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 165
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 165
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 165
+0x00008b34 0x00008b35 0x00008b36
+#line 165
+# Dev private ioctl i.e. hardware specific ioctls
+#line 165
+0x00008be0-0x00008bff
+#line 165
+};
+neverallow gmscore_app *:{ netlink_route_socket netlink_selinux_socket } ioctl;
+neverallow gmscore_app *:{
+  socket netlink_socket packet_socket key_socket appletalk_socket
+  netlink_tcpdiag_socket netlink_nflog_socket
+  netlink_xfrm_socket netlink_audit_socket
+  netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket
+  netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket
+  netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket
+  netlink_rdma_socket netlink_crypto_socket sctp_socket
+  ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket
+  atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket
+  bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket
+  alg_socket nfc_socket kcm_socket qipcrtr_socket smc_socket xdp_socket
+} *;
+#line 1 "system/sepolicy/private/gpuservice.te"
+# gpuservice - server for gpu stats and other gpu related services
+typeattribute gpuservice coredomain;
+typeattribute gpuservice bpfdomain;
+
+type gpuservice_exec, system_file_type, exec_type, file_type;
+
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init gpuservice_exec:file { getattr open read execute map };
+#line 7
+allow init gpuservice:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow gpuservice gpuservice_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init gpuservice:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init gpuservice:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init gpuservice_exec:process gpuservice;
+#line 7
+
+#line 7
+
+
+
+#line 9
+# Call the server domain and optionally transfer references to it.
+#line 9
+allow gpuservice adbd:binder { call transfer };
+#line 9
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 9
+allow adbd gpuservice:binder transfer;
+#line 9
+# Receive and use open files from the server.
+#line 9
+allow gpuservice adbd:fd use;
+#line 9
+
+
+#line 10
+# Call the server domain and optionally transfer references to it.
+#line 10
+allow gpuservice shell:binder { call transfer };
+#line 10
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 10
+allow shell gpuservice:binder transfer;
+#line 10
+# Receive and use open files from the server.
+#line 10
+allow gpuservice shell:fd use;
+#line 10
+
+
+#line 11
+# Call the server domain and optionally transfer references to it.
+#line 11
+allow gpuservice system_server:binder { call transfer };
+#line 11
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 11
+allow system_server gpuservice:binder transfer;
+#line 11
+# Receive and use open files from the server.
+#line 11
+allow gpuservice system_server:fd use;
+#line 11
+
+
+#line 12
+# Call the servicemanager and transfer references to it.
+#line 12
+allow gpuservice servicemanager:binder { call transfer };
+#line 12
+# Allow servicemanager to send out callbacks
+#line 12
+allow servicemanager gpuservice:binder { call transfer };
+#line 12
+# servicemanager performs getpidcon on clients.
+#line 12
+allow servicemanager gpuservice:dir search;
+#line 12
+allow servicemanager gpuservice:file { read open };
+#line 12
+allow servicemanager gpuservice:process getattr;
+#line 12
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 12
+# all domains in domain.te.
+#line 12
+
+
+# Access the GPU.
+allow gpuservice gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# GPU service will need to load GPU driver, for example Vulkan driver in order
+# to get the capability of the driver.
+allow gpuservice same_process_hal_file:file { open read getattr execute map };
+allow gpuservice ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+#line 21
+allow gpuservice hwservicemanager_prop:file { getattr open read map };
+#line 21
+
+
+#line 22
+# Call the hwservicemanager and transfer references to it.
+#line 22
+allow gpuservice hwservicemanager:binder { call transfer };
+#line 22
+# Allow hwservicemanager to send out callbacks
+#line 22
+allow hwservicemanager gpuservice:binder { call transfer };
+#line 22
+# hwservicemanager performs getpidcon on clients.
+#line 22
+allow hwservicemanager gpuservice:dir search;
+#line 22
+allow hwservicemanager gpuservice:file { read open map };
+#line 22
+allow hwservicemanager gpuservice:process getattr;
+#line 22
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 22
+# all domains in domain.te.
+#line 22
+
+
+# Access /dev/graphics/fb0.
+allow gpuservice graphics_device:dir search;
+allow gpuservice graphics_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow shell access
+allow gpuservice adbd:fd use;
+allow gpuservice adbd:unix_stream_socket { getattr read write };
+allow gpuservice shell:fifo_file { getattr read write };
+
+# Needed for perfetto producer.
+
+#line 34
+  allow gpuservice traced:fd use;
+#line 34
+  allow gpuservice traced_tmpfs:file { read write getattr map };
+#line 34
+  
+#line 34
+allow gpuservice traced_producer_socket:sock_file write;
+#line 34
+allow gpuservice traced:unix_stream_socket connectto;
+#line 34
+
+#line 34
+
+#line 34
+  # Also allow the service to use the producer file descriptors. This is
+#line 34
+  # necessary when the producer is creating the shared memory, as it will be
+#line 34
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 34
+  allow traced gpuservice:fd use;
+#line 34
+
+
+# Needed for interactive shell
+allow gpuservice devpts:chr_file { read write getattr };
+
+# Needed for dumpstate to dumpsys gpu.
+allow gpuservice dumpstate:fd use;
+allow gpuservice dumpstate:fifo_file write;
+
+# Needed for stats callback registration to statsd.
+allow gpuservice stats_service:service_manager find;
+allow gpuservice statsmanager_service:service_manager find;
+# TODO(b/146461633): remove this once native pullers talk to StatsManagerService
+
+#line 47
+# Call the server domain and optionally transfer references to it.
+#line 47
+allow gpuservice statsd:binder { call transfer };
+#line 47
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 47
+allow statsd gpuservice:binder transfer;
+#line 47
+# Receive and use open files from the server.
+#line 47
+allow gpuservice statsd:fd use;
+#line 47
+;
+
+# Needed for reading tracepoint ids in order to attach bpf programs.
+allow gpuservice debugfs_tracing:file { getattr open read ioctl lock map watch watch_reads };
+allow gpuservice self:perf_event { cpu kernel open write };
+neverallow gpuservice self:perf_event ~{ cpu kernel open write };
+
+# Needed for interact with bpf fs.
+# Write is needed to open read/write bpf maps.
+allow gpuservice fs_bpf:file { read write };
+
+# Needed for enabling bpf programs and accessing bpf maps (read-only and read/write).
+allow gpuservice bpfloader:bpf { map_read map_write prog_run };
+
+
+#line 61
+  allow gpuservice gpu_service:service_manager { add find };
+#line 61
+  neverallow { domain -gpuservice } gpu_service:service_manager add;
+#line 61
+
+#line 61
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 61
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 61
+  
+#line 61
+
+
+# Needed for enabling write access to persist.graphics.egl from developer option switch UI, through gpuservice.
+
+#line 64
+
+#line 64
+allow gpuservice property_socket:sock_file write;
+#line 64
+allow gpuservice init:unix_stream_socket connectto;
+#line 64
+
+#line 64
+allow gpuservice graphics_config_writable_prop:property_service set;
+#line 64
+
+#line 64
+allow gpuservice graphics_config_writable_prop:file { getattr open read map };
+#line 64
+
+#line 64
+
+
+neverallow { domain -init -vendor_init -gpuservice } graphics_config_writable_prop:property_service set;
+
+# Needed for querying permission
+allow gpuservice permission_service:service_manager find;
+
+# Only uncomment below line when in development
+# userdebug_or_eng(`permissive gpuservice;')
+#line 1 "system/sepolicy/private/gsid.te"
+# gsid - Manager for GSI Installation
+
+type gsid, domain;
+type gsid_exec, exec_type, file_type, system_file_type;
+typeattribute gsid coredomain;
+
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init gsid_exec:file { getattr open read execute map };
+#line 7
+allow init gsid:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow gsid gsid_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init gsid:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init gsid:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init gsid_exec:process gsid;
+#line 7
+
+#line 7
+
+
+
+#line 9
+# Call the servicemanager and transfer references to it.
+#line 9
+allow gsid servicemanager:binder { call transfer };
+#line 9
+# Allow servicemanager to send out callbacks
+#line 9
+allow servicemanager gsid:binder { call transfer };
+#line 9
+# servicemanager performs getpidcon on clients.
+#line 9
+allow servicemanager gsid:dir search;
+#line 9
+allow servicemanager gsid:file { read open };
+#line 9
+allow servicemanager gsid:process getattr;
+#line 9
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 9
+# all domains in domain.te.
+#line 9
+
+
+#line 10
+typeattribute gsid binderservicedomain;
+#line 10
+
+
+#line 11
+  allow gsid gsi_service:service_manager { add find };
+#line 11
+  neverallow { domain -gsid } gsi_service:service_manager add;
+#line 11
+
+#line 11
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 11
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 11
+  
+#line 11
+
+
+# Manage DSU metadata encryption key through vold.
+allow gsid vold_service:service_manager find;
+
+#line 15
+# Call the server domain and optionally transfer references to it.
+#line 15
+allow gsid vold:binder { call transfer };
+#line 15
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 15
+allow vold gsid:binder transfer;
+#line 15
+# Receive and use open files from the server.
+#line 15
+allow gsid vold:fd use;
+#line 15
+
+
+
+#line 17
+
+#line 17
+allow gsid property_socket:sock_file write;
+#line 17
+allow gsid init:unix_stream_socket connectto;
+#line 17
+
+#line 17
+allow gsid gsid_prop:property_service set;
+#line 17
+
+#line 17
+allow gsid gsid_prop:file { getattr open read map };
+#line 17
+
+#line 17
+
+
+# Needed to create/delete device-mapper nodes, and read/write to them.
+allow gsid dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow gsid dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow gsid self:{ capability cap_userns } sys_admin;
+dontaudit gsid self:{ capability cap_userns } dac_override;
+
+# On FBE devices (not using dm-default-key), gsid will use loop devices to map
+# images rather than device-mapper.
+allow gsid loop_control_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow gsid loop_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm gsid loop_device:blk_file ioctl {
+  0x00004c05
+  0x00004c04
+  0x00004c00
+  0x00004c09
+  0x00004c08
+  0x00004c01
+  0x00001261
+};
+
+# libfiemap_writer uses sysfs to derive the bottom of a device-mapper stacking.
+# This requires traversing /sys/block/dm-N/slaves/* and reading the list of
+# file names.
+
+#line 42
+allow gsid sysfs_dm:dir { open getattr read search ioctl lock watch watch_reads };
+#line 42
+allow gsid sysfs_dm:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 42
+
+
+# libfiemap_writer needs to read /sys/fs/f2fs/<dev>/features to determine
+# whether pin_file support is enabled.
+
+#line 46
+allow gsid sysfs_fs_f2fs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 46
+allow gsid sysfs_fs_f2fs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 46
+
+
+# Needed to read fstab, which is used to validate that system verity does not
+# use check_once_at_most for sdcard installs. (Note: proc_cmdline is needed
+# to get the A/B slot suffix).
+
+#line 51
+  allow gsid { metadata_file gsi_metadata_file_type }:dir search;
+#line 51
+  allow gsid gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 51
+  allow gsid { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 51
+
+allow gsid sysfs_dt_firmware_android:dir { open getattr read search ioctl lock watch watch_reads };
+allow gsid sysfs_dt_firmware_android:file { getattr open read ioctl lock map watch watch_reads };
+
+# Needed to stat /data/gsi/* and realpath on /dev/block/by-name/*
+allow gsid block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow querying the size of super_block_device_type.
+allow gsid super_block_device_type:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# liblp queries these block alignment properties.
+allowxperm gsid {
+  userdata_block_device
+  sdcard_block_device
+  super_block_device_type
+}:blk_file ioctl {
+  0x00001278
+  0x0000127a
+};
+
+# When installing images to an sdcard, gsid needs to be able to stat() the
+# block device. gsid also calls realpath() to remove symlinks.
+allow gsid mnt_media_rw_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow gsid mnt_media_rw_stub_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# When installing images to an sdcard, gsid must bypass sdcardfs and install
+# directly to vfat, which supports the FIBMAP ioctl.
+allow gsid vfat:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow gsid vfat:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow gsid sdcard_block_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+# This is needed for FIBMAP unfortunately. Oddly FIEMAP does not carry this
+# requirement, but the kernel does not implement FIEMAP support for VFAT.
+allow gsid self:{ capability cap_userns } sys_rawio;
+
+# Allow rules for gsi_tool.
+#line 95
+
+
+neverallow {
+  domain
+  -gsid
+  -init
+  -update_engine_common
+  -recovery
+  -fastbootd
+} gsid_prop:property_service set;
+
+# gsid needs to store images on /data, but cannot use file I/O. If it did, the
+# underlying blocks would be encrypted, and we couldn't mount the GSI image in
+# first-stage init. So instead of directly writing to /data, we:
+#
+#   1. fallocate a file large enough to hold the signed GSI
+#   2. extract its block layout with FIEMAP
+#   3. create a dm-linear device using the FIEMAP, targeting /dev/block/by-name/userdata
+#   4. write system_gsi into that dm device
+#
+# To make this process work, we need to unwrap the device-mapper stacking for
+# userdata to reach the underlying block device. To verify the result we use
+# stat(), which requires read access.
+allow gsid userdata_block_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# gsid uses /metadata/gsi to communicate GSI boot information to first-stage
+# init. It cannot use userdata since data cannot be decrypted during this
+# stage.
+#
+# gsid uses /metadata/gsi to store three files:
+#   install_status - A short string indicating whether a GSI image is bootable.
+#   lp_metadata    - LpMetadata blob describing the block ranges on userdata
+#                    where system_gsi resides.
+#   booted         - An empty file that, if exists, indicates that a GSI is
+#                    currently running.
+#
+allow gsid metadata_file:dir { search getattr };
+allow gsid {
+    gsi_metadata_file_type
+}:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+allow gsid {
+    ota_metadata_file
+}:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+allow gsid {
+    gsi_metadata_file_type
+    ota_metadata_file
+}:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow restorecon to fix context of gsi_public_metadata_file.
+allow gsid file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow gsid gsi_metadata_file:file relabelfrom;
+allow gsid gsi_public_metadata_file:file relabelto;
+
+allow gsid {
+      gsi_data_file
+      ota_image_data_file
+}:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow gsid {
+      gsi_data_file
+      ota_image_data_file
+}:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allowxperm gsid {
+      gsi_data_file
+      ota_image_data_file
+}:file ioctl {
+      0xc020660b
+      0x80086601
+};
+
+allow gsid system_server:binder call;
+
+# Prevent most processes from writing to gsi_metadata_file_type, but allow
+# adding rules for path resolution of gsi_public_metadata_file and reading
+# gsi_public_metadata_file.
+neverallow {
+    domain
+    -init
+    -gsid
+    -fastbootd
+} gsi_metadata_file_type:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+
+neverallow {
+    domain
+    -init
+    -gsid
+    -fastbootd
+} { gsi_metadata_file_type -gsi_public_metadata_file }:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } *;
+
+neverallow {
+    domain
+    -init
+    -gsid
+    -fastbootd
+} gsi_public_metadata_file:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } ~{ { getattr open read ioctl lock map watch watch_reads } };
+
+# Prevent apps from accessing gsi_metadata_file_type.
+neverallow {
+    appdomain
+    -shell
+} gsi_metadata_file_type:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } *;
+
+neverallow {
+    domain
+    -init
+    -gsid
+} gsi_data_file:{ dir { { chr_file blk_file } { file lnk_file sock_file fifo_file } } } *;
+
+neverallow {
+    domain
+    -gsid
+} gsi_data_file:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } ~{ relabelto getattr };
+#line 1 "system/sepolicy/private/hal_allocator_default.te"
+type hal_allocator_default, domain, coredomain;
+
+#line 2
+typeattribute hal_allocator_default halserverdomain;
+#line 2
+typeattribute hal_allocator_default hal_allocator_server;
+#line 2
+typeattribute hal_allocator_default hal_allocator;
+#line 2
+
+
+type hal_allocator_default_exec, system_file_type, exec_type, file_type;
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init hal_allocator_default_exec:file { getattr open read execute map };
+#line 5
+allow init hal_allocator_default:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow hal_allocator_default hal_allocator_default_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init hal_allocator_default:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init hal_allocator_default:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init hal_allocator_default_exec:process hal_allocator_default;
+#line 5
+
+#line 5
+
+
+# to force stop the service when it's not supported
+
+#line 8
+
+#line 8
+allow hal_allocator_default property_socket:sock_file write;
+#line 8
+allow hal_allocator_default init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow hal_allocator_default hidl_memory_prop:property_service set;
+#line 8
+
+#line 8
+allow hal_allocator_default hidl_memory_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+#line 3 "system/sepolicy/private/hal_lazy_test.te"
+
+#line 1 "system/sepolicy/private/halclientdomain.te"
+###
+### Rules for all domains which are clients of a HAL
+###
+
+# Find out whether a HAL in passthrough/in-process mode or
+# binderized/out-of-process mode
+
+#line 7
+# Call the hwservicemanager and transfer references to it.
+#line 7
+allow halclientdomain hwservicemanager:binder { call transfer };
+#line 7
+# Allow hwservicemanager to send out callbacks
+#line 7
+allow hwservicemanager halclientdomain:binder { call transfer };
+#line 7
+# hwservicemanager performs getpidcon on clients.
+#line 7
+allow hwservicemanager halclientdomain:dir search;
+#line 7
+allow hwservicemanager halclientdomain:file { read open map };
+#line 7
+allow hwservicemanager halclientdomain:process getattr;
+#line 7
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+
+# Used to wait for hwservicemanager
+
+#line 10
+allow halclientdomain hwservicemanager_prop:file { getattr open read map };
+#line 10
+
+
+# Wait for HAL server to be up (used by getService)
+allow halclientdomain hidl_manager_hwservice:hwservice_manager find;
+#line 1 "system/sepolicy/private/halserverdomain.te"
+###
+### Rules for all domains which offer a HAL service over HwBinder
+###
+
+# Register the HAL service with hwservicemanager
+
+#line 6
+# Call the hwservicemanager and transfer references to it.
+#line 6
+allow halserverdomain hwservicemanager:binder { call transfer };
+#line 6
+# Allow hwservicemanager to send out callbacks
+#line 6
+allow hwservicemanager halserverdomain:binder { call transfer };
+#line 6
+# hwservicemanager performs getpidcon on clients.
+#line 6
+allow hwservicemanager halserverdomain:dir search;
+#line 6
+allow hwservicemanager halserverdomain:file { read open map };
+#line 6
+allow hwservicemanager halserverdomain:process getattr;
+#line 6
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+# Find HAL implementations
+allow halserverdomain system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Used to wait for hwservicemanager
+
+#line 12
+allow halserverdomain hwservicemanager_prop:file { getattr open read map };
+#line 12
+
+#line 1 "system/sepolicy/private/healthd.te"
+typeattribute healthd coredomain;
+#line 1 "system/sepolicy/private/heapprofd.te"
+# Android heap profiling daemon. go/heapprofd.
+type heapprofd_exec, exec_type, file_type, system_file_type;
+type heapprofd_tmpfs, file_type;
+
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init heapprofd_exec:file { getattr open read execute map };
+#line 5
+allow init heapprofd:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow heapprofd heapprofd_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init heapprofd:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init heapprofd:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init heapprofd_exec:process heapprofd;
+#line 5
+
+#line 5
+
+
+#line 6
+type_transition heapprofd tmpfs:file heapprofd_tmpfs;
+#line 6
+allow heapprofd heapprofd_tmpfs:file { read write getattr map };
+#line 6
+
+
+# Allow apps in other MLS contexts (for multi-user) to access
+# shared memory buffers created by heapprofd.
+typeattribute heapprofd_tmpfs mlstrustedobject;
+
+
+#line 12
+
+#line 12
+allow heapprofd property_socket:sock_file write;
+#line 12
+allow heapprofd init:unix_stream_socket connectto;
+#line 12
+
+#line 12
+allow heapprofd heapprofd_prop:property_service set;
+#line 12
+
+#line 12
+allow heapprofd heapprofd_prop:file { getattr open read map };
+#line 12
+
+#line 12
+;
+
+# Necessary for /proc/[pid]/cmdline access & sending signals.
+typeattribute heapprofd mlstrustedsubject;
+
+# Allow sending signals to processes. This excludes SIGKILL, SIGSTOP and
+# SIGCHLD, which are controlled by separate permissions.
+allow heapprofd self:capability kill;
+
+# When scanning /proc/[pid]/cmdline to find matching processes for by-name
+# profiling, only allowlisted domains will be allowed by SELinux. Avoid
+# spamming logs with denials for entries that we can not access.
+dontaudit heapprofd domain:dir { search open };
+
+# Write trace data to the Perfetto traced daemon. This requires connecting to
+# its producer socket and obtaining a (per-process) tmpfs fd.
+
+#line 28
+  allow heapprofd traced:fd use;
+#line 28
+  allow heapprofd traced_tmpfs:file { read write getattr map };
+#line 28
+  
+#line 28
+allow heapprofd traced_producer_socket:sock_file write;
+#line 28
+allow heapprofd traced:unix_stream_socket connectto;
+#line 28
+
+#line 28
+
+#line 28
+  # Also allow the service to use the producer file descriptors. This is
+#line 28
+  # necessary when the producer is creating the shared memory, as it will be
+#line 28
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 28
+  allow traced heapprofd:fd use;
+#line 28
+
+
+# When handling profiling for all processes, heapprofd needs to read
+# executables/libraries/etc to do stack unwinding.
+
+#line 32
+allow heapprofd nativetest_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 32
+allow heapprofd nativetest_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 32
+
+
+#line 33
+allow heapprofd system_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow heapprofd system_file_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 33
+
+
+#line 34
+allow heapprofd apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 34
+allow heapprofd apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 34
+
+
+#line 35
+allow heapprofd dalvikcache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 35
+allow heapprofd dalvikcache_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 35
+
+
+#line 36
+allow heapprofd vendor_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 36
+allow heapprofd vendor_file_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 36
+
+
+#line 37
+allow heapprofd shell_test_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 37
+allow heapprofd shell_test_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 37
+
+# ART apex files and directory access to the containing /data/misc/apexdata.
+
+#line 39
+allow heapprofd apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 39
+allow heapprofd apex_art_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 39
+
+allow heapprofd apex_module_data_file:dir { getattr search };
+
+# Some dex files are not world-readable.
+# We are still constrained by the SELinux rules above.
+allow heapprofd self:{ capability cap_userns } dac_read_search;
+
+# For checking profileability.
+allow heapprofd packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Never allow profiling privileged or otherwise incompatible domains.
+# Corresponding allow-rule is in private/domain.te.
+
+#line 51
+  neverallow heapprofd {
+#line 51
+  apexd
+#line 51
+  app_zygote
+#line 51
+  bpfloader
+#line 51
+  hal_configstore_server
+#line 51
+  init
+#line 51
+  kernel
+#line 51
+  keystore
+#line 51
+  llkd
+#line 51
+  logd
+#line 51
+  logpersist
+#line 51
+  recovery
+#line 51
+  recovery_persist
+#line 51
+  recovery_refresh
+#line 51
+  ueventd
+#line 51
+  vendor_init
+#line 51
+  vold
+#line 51
+  webview_zygote
+#line 51
+  zygote
+#line 51
+}:file read;
+#line 51
+  neverallow heapprofd {
+#line 51
+  apexd
+#line 51
+  app_zygote
+#line 51
+  bpfloader
+#line 51
+  hal_configstore_server
+#line 51
+  init
+#line 51
+  kernel
+#line 51
+  keystore
+#line 51
+  llkd
+#line 51
+  logd
+#line 51
+  logpersist
+#line 51
+  recovery
+#line 51
+  recovery_persist
+#line 51
+  recovery_refresh
+#line 51
+  ueventd
+#line 51
+  vendor_init
+#line 51
+  vold
+#line 51
+  webview_zygote
+#line 51
+  zygote
+#line 51
+}:process signal;
+#line 70
+
+
+# BEGIN_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 72
+
+#line 72
+  neverallow heapprofd vendor_file_type:file { append create link unlink relabelfrom rename setattr write };
+#line 72
+  neverallow heapprofd { vendor_file_type -vndk_sp_file }:file { execute execute_no_trans };
+#line 72
+
+#line 72
+# END_TREBLE_ONLY -- this marker is used by CTS -- do not modify
+#line 75
+
+#line 1 "system/sepolicy/private/hidl_lazy_test_server.te"
+type hidl_lazy_test_server, domain;
+type hidl_lazy_test_server_exec, exec_type, file_type, system_file_type;
+
+#line 8
+
+#line 1 "system/sepolicy/private/hwservice.te"
+type hal_lazy_test_hwservice, hwservice_manager_type, protected_hwservice;
+#line 1 "system/sepolicy/private/hwservicemanager.te"
+typeattribute hwservicemanager coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init hwservicemanager_exec:file { getattr open read execute map };
+#line 3
+allow init hwservicemanager:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow hwservicemanager hwservicemanager_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init hwservicemanager:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init hwservicemanager:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init hwservicemanager_exec:process hwservicemanager;
+#line 3
+
+#line 3
+
+
+
+#line 5
+  allow hwservicemanager hidl_manager_hwservice:hwservice_manager { add find };
+#line 5
+  allow hwservicemanager hidl_base_hwservice:hwservice_manager add;
+#line 5
+  neverallow { domain -hwservicemanager } hidl_manager_hwservice:hwservice_manager add;
+#line 5
+
+
+#line 6
+  allow hwservicemanager hidl_token_hwservice:hwservice_manager { add find };
+#line 6
+  allow hwservicemanager hidl_base_hwservice:hwservice_manager add;
+#line 6
+  neverallow { domain -hwservicemanager } hidl_token_hwservice:hwservice_manager add;
+#line 6
+
+
+
+#line 8
+
+#line 8
+allow hwservicemanager property_socket:sock_file write;
+#line 8
+allow hwservicemanager init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow hwservicemanager ctl_interface_start_prop:property_service set;
+#line 8
+
+#line 8
+allow hwservicemanager ctl_interface_start_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+
+#line 9
+
+#line 9
+allow hwservicemanager property_socket:sock_file write;
+#line 9
+allow hwservicemanager init:unix_stream_socket connectto;
+#line 9
+
+#line 9
+allow hwservicemanager hwservicemanager_prop:property_service set;
+#line 9
+
+#line 9
+allow hwservicemanager hwservicemanager_prop:file { getattr open read map };
+#line 9
+
+#line 9
+
+
+# hwservicemanager is using bootstrap bionic
+
+#line 12
+  allow hwservicemanager system_bootstrap_lib_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+  allow hwservicemanager system_bootstrap_lib_file:file { execute read open getattr map };
+#line 12
+
+
+# hwservicemanager is using apex_info via libvintf
+
+#line 15
+  allow hwservicemanager apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+  allow hwservicemanager apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 15
+  
+#line 15
+allow hwservicemanager vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow hwservicemanager vendor_apex_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 15
+
+#line 15
+
+#line 1 "system/sepolicy/private/idmap.te"
+typeattribute idmap coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init idmap_exec:file { getattr open read execute map };
+#line 3
+allow init idmap:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow idmap idmap_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init idmap:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init idmap:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init idmap_exec:process idmap;
+#line 3
+
+#line 3
+
+#line 1 "system/sepolicy/private/incident.te"
+typeattribute incident coredomain;
+
+type incident_exec, system_file_type, exec_type, file_type;
+
+# switch to incident domain for incident command
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow shell incident_exec:file { getattr open read execute map };
+#line 6
+allow shell incident:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow incident incident_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+allow incident shell:process sigchld;
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit shell incident:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow shell incident:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition shell incident_exec:process incident;
+#line 6
+
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow dumpstate incident_exec:file { getattr open read execute map };
+#line 7
+allow dumpstate incident:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow incident incident_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+allow incident dumpstate:process sigchld;
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit dumpstate incident:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow dumpstate incident:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition dumpstate incident_exec:process incident;
+#line 7
+
+
+# allow incident access to stdout from its parent shell.
+allow incident shell:fd use;
+
+# allow incident to communicate with dumpstate, and write incident report to
+# /data/data/com.android.shell/files/bugreports/tmp_incident_report
+allow incident dumpstate:fd use;
+allow incident dumpstate:unix_stream_socket { read write };
+allow incident shell_data_file:file write;
+
+# allow incident be able to output data for CTS to fetch.
+allow incident devpts:chr_file { read write };
+
+# allow incident to communicate use, read and write over the adb
+# connection.
+allow incident adbd:fd use;
+allow incident adbd:unix_stream_socket { read write };
+
+# allow adbd to reap incident
+allow incident adbd:process { sigchld };
+
+# Allow the incident command to talk to the incidentd over the binder, and get
+# back the incident report data from a ParcelFileDescriptor.
+
+#line 31
+# Call the servicemanager and transfer references to it.
+#line 31
+allow incident servicemanager:binder { call transfer };
+#line 31
+# Allow servicemanager to send out callbacks
+#line 31
+allow servicemanager incident:binder { call transfer };
+#line 31
+# servicemanager performs getpidcon on clients.
+#line 31
+allow servicemanager incident:dir search;
+#line 31
+allow servicemanager incident:file { read open };
+#line 31
+allow servicemanager incident:process getattr;
+#line 31
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 31
+# all domains in domain.te.
+#line 31
+
+allow incident incident_service:service_manager find;
+
+#line 33
+# Call the server domain and optionally transfer references to it.
+#line 33
+allow incident incidentd:binder { call transfer };
+#line 33
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 33
+allow incidentd incident:binder transfer;
+#line 33
+# Receive and use open files from the server.
+#line 33
+allow incident incidentd:fd use;
+#line 33
+
+allow incident incidentd:fifo_file write;
+
+# only allow incident being called by shell or dumpstate
+neverallow { domain -su -shell -incident -dumpstate} incident_exec:file { execute execute_no_trans };
+#line 1 "system/sepolicy/private/incident_helper.te"
+typeattribute incident_helper coredomain;
+
+type incident_helper_exec, system_file_type, exec_type, file_type;
+
+# switch to incident_helper domain for incident_helper command
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow incidentd incident_helper_exec:file { getattr open read execute map };
+#line 6
+allow incidentd incident_helper:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow incident_helper incident_helper_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+allow incident_helper incidentd:process sigchld;
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit incidentd incident_helper:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow incidentd incident_helper:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition incidentd incident_helper_exec:process incident_helper;
+#line 6
+
+
+# use pipe to transmit data from/to incidentd/incident_helper for parsing
+allow incident_helper { shell incident incidentd dumpstate }:fd use;
+allow incident_helper { shell incident incidentd dumpstate }:fifo_file { getattr read write };
+allow incident_helper incidentd:unix_stream_socket { read write };
+
+# only allow incidentd and shell to call incident_helper
+neverallow { domain -incidentd -incident_helper -shell } incident_helper_exec:file { execute execute_no_trans };
+#line 1 "system/sepolicy/private/incidentd.te"
+typeattribute incidentd coredomain;
+typeattribute incidentd mlstrustedsubject;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init incidentd_exec:file { getattr open read execute map };
+#line 4
+allow init incidentd:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow incidentd incidentd_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init incidentd:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init incidentd:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init incidentd_exec:process incidentd;
+#line 4
+
+#line 4
+
+type incidentd_exec, system_file_type, exec_type, file_type;
+
+#line 6
+# Call the servicemanager and transfer references to it.
+#line 6
+allow incidentd servicemanager:binder { call transfer };
+#line 6
+# Allow servicemanager to send out callbacks
+#line 6
+allow servicemanager incidentd:binder { call transfer };
+#line 6
+# servicemanager performs getpidcon on clients.
+#line 6
+allow servicemanager incidentd:dir search;
+#line 6
+allow servicemanager incidentd:file { read open };
+#line 6
+allow servicemanager incidentd:process getattr;
+#line 6
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 6
+# all domains in domain.te.
+#line 6
+
+
+#line 7
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 7
+# deprecated.
+#line 7
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 7
+allow incidentd sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 7
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 7
+allow incidentd self:{ capability2 cap2_userns } block_suspend;
+#line 7
+# system_suspend permissions
+#line 7
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow incidentd system_suspend_server:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow system_suspend_server incidentd:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow incidentd system_suspend_server:fd use;
+#line 7
+
+#line 7
+allow incidentd system_suspend_hwservice:hwservice_manager find;
+#line 7
+# halclientdomain permissions
+#line 7
+
+#line 7
+# Call the hwservicemanager and transfer references to it.
+#line 7
+allow incidentd hwservicemanager:binder { call transfer };
+#line 7
+# Allow hwservicemanager to send out callbacks
+#line 7
+allow hwservicemanager incidentd:binder { call transfer };
+#line 7
+# hwservicemanager performs getpidcon on clients.
+#line 7
+allow hwservicemanager incidentd:dir search;
+#line 7
+allow hwservicemanager incidentd:file { read open map };
+#line 7
+allow hwservicemanager incidentd:process getattr;
+#line 7
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+#line 7
+
+#line 7
+allow incidentd hwservicemanager_prop:file { getattr open read map };
+#line 7
+
+#line 7
+allow incidentd hidl_manager_hwservice:hwservice_manager find;
+#line 7
+# AIDL suspend hal permissions
+#line 7
+allow incidentd hal_system_suspend_service:service_manager find;
+#line 7
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow incidentd servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager incidentd:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager incidentd:dir search;
+#line 7
+allow servicemanager incidentd:file { read open };
+#line 7
+allow servicemanager incidentd:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+#line 7
+
+
+# Allow incidentd to scan through /proc/pid for all processes
+
+#line 10
+allow incidentd domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow incidentd domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 10
+
+
+# Allow incidentd to kill incident_helper when timeout
+allow incidentd incident_helper:process sigkill;
+
+# Allow executing files on system, such as:
+#   /system/bin/toolbox
+#   /system/bin/logcat
+#   /system/bin/dumpsys
+allow incidentd system_file:file execute_no_trans;
+allow incidentd toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# section id 1002, allow reading kernel version /proc/version
+allow incidentd proc_version:file { getattr open read ioctl lock map watch watch_reads };
+
+# section id 1116, allow accessing statsd socket
+
+#line 26
+allow incidentd statsdw_socket:sock_file write;
+#line 26
+allow incidentd statsd:unix_dgram_socket sendto;
+#line 26
+
+
+# section id 2001, allow reading /proc/pagetypeinfo
+allow incidentd proc_pagetypeinfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# section id 2002, allow reading /d/wakeup_sources
+;
+
+# section id 2003, allow executing top
+allow incidentd proc_meminfo:file { open read };
+
+# section id 2004, allow reading /sys/devices/system/cpu/cpufreq/all_time_in_state
+allow incidentd sysfs_devices_system_cpu:file { getattr open read ioctl lock map watch watch_reads };
+
+# section id 2005, allow reading ps dump in full
+allow incidentd domain:process getattr;
+
+# section id 2006, allow reading /sys/class/power_supply/bms/battery_type
+allow incidentd sysfs_batteryinfo:dir { search };
+allow incidentd sysfs_batteryinfo:file { getattr open read ioctl lock map watch watch_reads };
+
+# section id 2007, allow reading LAST_KMSG /sys/fs/pstore/console-ramoops
+;
+;
+
+# section id 3023, allow obtaining stats report
+allow incidentd stats_service:service_manager find;
+
+#line 53
+# Call the server domain and optionally transfer references to it.
+#line 53
+allow incidentd statsd:binder { call transfer };
+#line 53
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 53
+allow statsd incidentd:binder transfer;
+#line 53
+# Receive and use open files from the server.
+#line 53
+allow incidentd statsd:fd use;
+#line 53
+
+
+# section id 3026, allow reading /data/misc/perfetto-traces.
+allow incidentd perfetto_traces_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow incidentd perfetto_traces_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# section id 3052, allow accessing nfc_service
+allow incidentd nfc_service:service_manager find;
+
+# Create and write into /data/misc/incidents
+allow incidentd incident_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow incidentd incident_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Enable incidentd to get stack traces.
+
+#line 67
+# Call the servicemanager and transfer references to it.
+#line 67
+allow incidentd servicemanager:binder { call transfer };
+#line 67
+# Allow servicemanager to send out callbacks
+#line 67
+allow servicemanager incidentd:binder { call transfer };
+#line 67
+# servicemanager performs getpidcon on clients.
+#line 67
+allow servicemanager incidentd:dir search;
+#line 67
+allow servicemanager incidentd:file { read open };
+#line 67
+allow servicemanager incidentd:process getattr;
+#line 67
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 67
+# all domains in domain.te.
+#line 67
+
+
+#line 68
+# Call the hwservicemanager and transfer references to it.
+#line 68
+allow incidentd hwservicemanager:binder { call transfer };
+#line 68
+# Allow hwservicemanager to send out callbacks
+#line 68
+allow hwservicemanager incidentd:binder { call transfer };
+#line 68
+# hwservicemanager performs getpidcon on clients.
+#line 68
+allow hwservicemanager incidentd:dir search;
+#line 68
+allow hwservicemanager incidentd:file { read open map };
+#line 68
+allow hwservicemanager incidentd:process getattr;
+#line 68
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 68
+# all domains in domain.te.
+#line 68
+
+allow incidentd hwservicemanager:hwservice_manager { list };
+
+#line 70
+allow incidentd hwservicemanager_prop:file { getattr open read map };
+#line 70
+
+allow incidentd hidl_manager_hwservice:hwservice_manager { find };
+
+# Read files in /proc
+allow incidentd {
+  proc_cmdline
+  proc_pid_max
+  proc_pipe_conf
+  proc_stat
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# Signal java processes to dump their stack and get the results
+allow incidentd { appdomain ephemeral_app system_server }:process signal;
+
+# Signal native processes to dump their stack.
+# This list comes from native_processes_to_dump in incidentd/utils.c
+allow incidentd {
+  # This list comes from native_processes_to_dump in dumputils/dump_utils.cpp
+  audioserver
+  cameraserver
+  drmserver
+  inputflinger
+  mediadrmserver
+  mediaextractor
+  mediametrics
+  mediaserver
+  sdcardd
+  statsd
+  surfaceflinger
+
+  # This list comes from hal_interfaces_to_dump in dumputils/dump_utils.cpp
+  hal_audio_server
+  hal_bluetooth_server
+  hal_camera_server
+  hal_codec2_server
+  hal_face_server
+  hal_graphics_allocator_server
+  hal_graphics_composer_server
+  hal_health_server
+  hal_omx_server
+  hal_sensors_server
+  hal_vr_server
+}:process signal;
+
+# Allow incidentd to make binder calls to any binder service
+
+#line 115
+# Call the server domain and optionally transfer references to it.
+#line 115
+allow incidentd system_server:binder { call transfer };
+#line 115
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 115
+allow system_server incidentd:binder transfer;
+#line 115
+# Receive and use open files from the server.
+#line 115
+allow incidentd system_server:fd use;
+#line 115
+
+
+#line 116
+# Call the server domain and optionally transfer references to it.
+#line 116
+allow incidentd appdomain:binder { call transfer };
+#line 116
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 116
+allow appdomain incidentd:binder transfer;
+#line 116
+# Receive and use open files from the server.
+#line 116
+allow incidentd appdomain:fd use;
+#line 116
+
+
+# Reading /proc/PID/maps of other processes
+;
+# incidentd has capability sys_ptrace, but should only use that capability for
+# accessing sensitive /proc/PID files, never for using ptrace attach.
+neverallow incidentd *:process ptrace;
+
+allow incidentd self:{ capability cap_userns } {
+    # Send signals to processes
+    kill
+};
+
+# Connect to tombstoned to intercept dumps.
+
+#line 130
+allow incidentd tombstoned_intercept_socket:sock_file write;
+#line 130
+allow incidentd tombstoned:unix_stream_socket connectto;
+#line 130
+
+
+# Run a shell.
+allow incidentd shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# For running am, incident-helper-cmd and similar framework commands.
+# Run /system/bin/app_process.
+allow incidentd zygote_exec:file { { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } } };
+# Access the runtime feature flag properties.
+
+#line 139
+allow incidentd device_config_runtime_native_prop:file { getattr open read map };
+#line 139
+
+
+#line 140
+allow incidentd device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 140
+
+# Access odsign verification status.
+
+#line 142
+allow incidentd odsign_prop:file { getattr open read map };
+#line 142
+
+# ART locks profile files.
+allow incidentd system_file:file lock;
+# Incidentd should never exec from the memory (e.g. JIT cache). These denials are expected.
+dontaudit incidentd dalvikcache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit incidentd apex_module_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit incidentd apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit incidentd tmpfs:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } { getattr execute execute_no_trans map } };
+
+# Allow incidentd to read /apex/apex-info-list.xml
+allow incidentd apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# logd access - work to be done is a PII safe log (possibly an event log?)
+
+# TODO control_logd(incidentd)
+
+# Access /data/misc/logd
+
+#line 159
+allow incidentd misc_logd_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 159
+allow incidentd misc_logd_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 159
+
+
+# Allow incidentd to find these standard groups of services.
+# Others can be allowlisted individually.
+allow incidentd {
+  system_server_service
+  app_api_service
+  system_api_service
+  -tracingproxy_service
+}:service_manager find;
+
+# Only incidentd can publish the binder service
+
+#line 171
+  allow incidentd incident_service:service_manager { add find };
+#line 171
+  neverallow { domain -incidentd } incident_service:service_manager add;
+#line 171
+
+#line 171
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 171
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 171
+  
+#line 171
+
+
+# Allow pipes only from dumpstate and incident
+allow incidentd { dumpstate incident }:fd use;
+allow incidentd { dumpstate incident }:fifo_file write;
+
+# Allow incident to call back to incident with status updates.
+
+#line 178
+# Call the server domain and optionally transfer references to it.
+#line 178
+allow incidentd incident:binder { call transfer };
+#line 178
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 178
+allow incident incidentd:binder transfer;
+#line 178
+# Receive and use open files from the server.
+#line 178
+allow incidentd incident:fd use;
+#line 178
+
+
+# Read device serial number from system properties
+# This is used to track reports from lab testing devices
+#line 184
+
+
+# Read ro.boot.bootreason, persist.sys.boot.bootreason
+# This is used to track reports from lab testing devices
+#line 192
+
+
+# Allow incident to read the build properties for attestation feature
+
+#line 195
+allow incidentd build_attestation_prop:file { getattr open read map };
+#line 195
+;
+
+###
+### neverallow rules
+###
+# only incidentd and the other root services in limited circumstances
+# can get to the files in /data/misc/incidents
+#
+# write, execute, append are forbidden almost everywhere
+neverallow { domain -incidentd -init -vold } incident_data_file:file {
+  { open append write lock map }
+  { getattr execute execute_no_trans map }
+  create
+  rename
+  setattr
+  unlink
+  append
+};
+# read is also allowed by system_server, for when the file is handed to dropbox
+neverallow { domain -incidentd -init -vold -system_server } incident_data_file:file { getattr open read ioctl lock map watch watch_reads };
+# limited access to the directory itself
+neverallow { domain -incidentd -init -vold } incident_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+#line 1 "system/sepolicy/private/init.te"
+typeattribute init coredomain;
+
+
+#line 3
+type_transition init tmpfs:file init_tmpfs;
+#line 3
+allow init init_tmpfs:file { read write getattr map };
+#line 3
+
+
+# Transitions to seclabel processes in init.rc
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init rootfs:file { getattr open read execute map };
+#line 6
+allow init slideshow:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow slideshow rootfs:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init slideshow:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init slideshow:process { siginh rlimitinh };
+#line 6
+
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init charger_exec:file { getattr open read execute map };
+#line 7
+allow init charger:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow charger charger_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init charger:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init charger:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init charger_exec:process charger;
+#line 7
+
+
+#line 8
+# Allow the necessary permissions.
+#line 8
+
+#line 8
+# Old domain may exec the file and transition to the new domain.
+#line 8
+allow init e2fs_exec:file { getattr open read execute map };
+#line 8
+allow init e2fs:process transition;
+#line 8
+# New domain is entered by executing the file.
+#line 8
+allow e2fs e2fs_exec:file { entrypoint open read execute getattr map };
+#line 8
+# New domain can send SIGCHLD to its caller.
+#line 8
+
+#line 8
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 8
+dontaudit init e2fs:process noatsecure;
+#line 8
+# XXX dontaudit candidate but requires further study.
+#line 8
+allow init e2fs:process { siginh rlimitinh };
+#line 8
+
+#line 8
+# Make the transition occur by default.
+#line 8
+type_transition init e2fs_exec:process e2fs;
+#line 8
+
+
+#line 9
+# Allow the necessary permissions.
+#line 9
+
+#line 9
+# Old domain may exec the file and transition to the new domain.
+#line 9
+allow init bpfloader_exec:file { getattr open read execute map };
+#line 9
+allow init bpfloader:process transition;
+#line 9
+# New domain is entered by executing the file.
+#line 9
+allow bpfloader bpfloader_exec:file { entrypoint open read execute getattr map };
+#line 9
+# New domain can send SIGCHLD to its caller.
+#line 9
+
+#line 9
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 9
+dontaudit init bpfloader:process noatsecure;
+#line 9
+# XXX dontaudit candidate but requires further study.
+#line 9
+allow init bpfloader:process { siginh rlimitinh };
+#line 9
+
+#line 9
+# Make the transition occur by default.
+#line 9
+type_transition init bpfloader_exec:process bpfloader;
+#line 9
+
+
+#line 23
+
+
+#line 24
+# Old domain may exec the file and transition to the new domain.
+#line 24
+allow init shell_exec:file { getattr open read execute map };
+#line 24
+allow init shell:process transition;
+#line 24
+# New domain is entered by executing the file.
+#line 24
+allow shell shell_exec:file { entrypoint open read execute getattr map };
+#line 24
+# New domain can send SIGCHLD to its caller.
+#line 24
+
+#line 24
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 24
+dontaudit init shell:process noatsecure;
+#line 24
+# XXX dontaudit candidate but requires further study.
+#line 24
+allow init shell:process { siginh rlimitinh };
+#line 24
+
+
+#line 25
+# Old domain may exec the file and transition to the new domain.
+#line 25
+allow init init_exec:file { getattr open read execute map };
+#line 25
+allow init ueventd:process transition;
+#line 25
+# New domain is entered by executing the file.
+#line 25
+allow ueventd init_exec:file { entrypoint open read execute getattr map };
+#line 25
+# New domain can send SIGCHLD to its caller.
+#line 25
+
+#line 25
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 25
+dontaudit init ueventd:process noatsecure;
+#line 25
+# XXX dontaudit candidate but requires further study.
+#line 25
+allow init ueventd:process { siginh rlimitinh };
+#line 25
+
+
+#line 26
+# Old domain may exec the file and transition to the new domain.
+#line 26
+allow init init_exec:file { getattr open read execute map };
+#line 26
+allow init vendor_init:process transition;
+#line 26
+# New domain is entered by executing the file.
+#line 26
+allow vendor_init init_exec:file { entrypoint open read execute getattr map };
+#line 26
+# New domain can send SIGCHLD to its caller.
+#line 26
+
+#line 26
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 26
+dontaudit init vendor_init:process noatsecure;
+#line 26
+# XXX dontaudit candidate but requires further study.
+#line 26
+allow init vendor_init:process { siginh rlimitinh };
+#line 26
+
+
+#line 27
+# Old domain may exec the file and transition to the new domain.
+#line 27
+allow init { rootfs toolbox_exec }:file { getattr open read execute map };
+#line 27
+allow init modprobe:process transition;
+#line 27
+# New domain is entered by executing the file.
+#line 27
+allow modprobe { rootfs toolbox_exec }:file { entrypoint open read execute getattr map };
+#line 27
+# New domain can send SIGCHLD to its caller.
+#line 27
+
+#line 27
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 27
+dontaudit init modprobe:process noatsecure;
+#line 27
+# XXX dontaudit candidate but requires further study.
+#line 27
+allow init modprobe:process { siginh rlimitinh };
+#line 27
+
+#line 36
+
+
+# Allow init to figure out name of dm-device from it's /dev/block/dm-XX path.
+# This is useful in case of remounting ext4 userdata into checkpointing mode,
+# since it potentially requires tearing down dm-devices (e.g. dm-bow, dm-crypto)
+# that userdata is mounted onto.
+allow init sysfs_dm:file read;
+
+# Allow init to modify the properties of loop devices.
+allow init sysfs_loop:dir { open getattr read search ioctl lock watch watch_reads };
+allow init sysfs_loop:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow init to examine the properties of block devices.
+allow init sysfs_type:file { getattr read };
+# Allow init get the attributes of block devices in /dev/block.
+allow init dev_type:dir { open getattr read search ioctl lock watch watch_reads };
+allow init dev_type:blk_file getattr;
+
+# Allow init to write to the drop_caches file.
+allow init proc_drop_caches:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow the BoringSSL self test to request a reboot upon failure
+
+#line 58
+
+#line 58
+allow init property_socket:sock_file write;
+#line 58
+allow init init:unix_stream_socket connectto;
+#line 58
+
+#line 58
+allow init powerctl_prop:property_service set;
+#line 58
+
+#line 58
+allow init powerctl_prop:file { getattr open read map };
+#line 58
+
+#line 58
+
+
+# Only init is allowed to set userspace reboot related properties.
+
+#line 61
+
+#line 61
+allow init property_socket:sock_file write;
+#line 61
+allow init init:unix_stream_socket connectto;
+#line 61
+
+#line 61
+allow init userspace_reboot_exported_prop:property_service set;
+#line 61
+
+#line 61
+allow init userspace_reboot_exported_prop:file { getattr open read map };
+#line 61
+
+#line 61
+
+neverallow { domain -init } userspace_reboot_exported_prop:property_service set;
+
+# Second-stage init performs a test for whether the kernel has SELinux hooks
+# for the perf_event_open() syscall. This is done by testing for the syscall
+# outcomes corresponding to this policy.
+# TODO(b/137092007): this can be removed once the platform stops supporting
+# kernels that precede the perf_event_open hooks (Android common kernels 4.4
+# and 4.9).
+allow init self:perf_event { open cpu };
+allow init self:{ capability2 cap2_userns } perfmon;
+neverallow init self:perf_event { kernel tracepoint read write };
+dontaudit init self:perf_event { kernel tracepoint read write };
+
+# Allow init to communicate with snapuserd to transition Virtual A/B devices
+# from the first-stage daemon to the second-stage.
+allow init snapuserd_socket:sock_file write;
+allow init snapuserd:unix_stream_socket connectto;
+# Allow for libsnapshot's use of flock() on /metadata/ota.
+allow init ota_metadata_file:dir lock;
+
+# Allow init to restore contexts of vd_device(/dev/block/vd[..]) when labeling
+# /dev/block.
+allow init vd_device:blk_file relabelto;
+
+# Only init is allowed to set the sysprop indicating whether perf_event_open()
+# SELinux hooks were detected.
+
+#line 88
+
+#line 88
+allow init property_socket:sock_file write;
+#line 88
+allow init init:unix_stream_socket connectto;
+#line 88
+
+#line 88
+allow init init_perf_lsm_hooks_prop:property_service set;
+#line 88
+
+#line 88
+allow init init_perf_lsm_hooks_prop:file { getattr open read map };
+#line 88
+
+#line 88
+
+neverallow { domain -init } init_perf_lsm_hooks_prop:property_service set;
+
+# Only init can write vts.native_server.on
+
+#line 92
+
+#line 92
+allow init property_socket:sock_file write;
+#line 92
+allow init init:unix_stream_socket connectto;
+#line 92
+
+#line 92
+allow init vts_status_prop:property_service set;
+#line 92
+
+#line 92
+allow init vts_status_prop:file { getattr open read map };
+#line 92
+
+#line 92
+
+neverallow { domain -init } vts_status_prop:property_service set;
+
+# Only init can write normal ro.boot. properties
+neverallow { domain -init } bootloader_prop:property_service set;
+
+# Only init can write hal.instrumentation.enable
+neverallow { domain -init } hal_instrumentation_prop:property_service set;
+
+# Only init can write ro.property_service.version
+neverallow { domain -init } property_service_version_prop:property_service set;
+
+# Only init can set keystore.boot_level
+neverallow { domain -init } keystore_listen_prop:property_service set;
+
+# Allow accessing /sys/kernel/tracing/instances/bootreceiver to set up tracing.
+allow init debugfs_bootreceiver_tracing:file { open append write lock map };
+
+# PRNG seeder daemon socket is created and listened on by init before forking.
+allow init prng_seeder:unix_stream_socket { create bind listen };
+
+# Devices with kernels where CONFIG_HIST_TRIGGERS isn't enabled will
+# attempt to write a non exisiting 'synthetic_events' file, when setting
+# up synthetic events. This is a no-op in tracefs.
+dontaudit init debugfs_tracing_debug:dir { write add_name };
+
+# chown/chmod on devices.
+allow init {
+  dev_type
+  -hw_random_device
+  -keychord_device
+  -vm_manager_device_type
+  -port_device
+}:chr_file setattr;
+#line 1 "system/sepolicy/private/inputflinger.te"
+typeattribute inputflinger coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init inputflinger_exec:file { getattr open read execute map };
+#line 3
+allow init inputflinger:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow inputflinger inputflinger_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init inputflinger:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init inputflinger:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init inputflinger_exec:process inputflinger;
+#line 3
+
+#line 3
+
+#line 1 "system/sepolicy/private/installd.te"
+typeattribute installd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init installd_exec:file { getattr open read execute map };
+#line 3
+allow init installd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow installd installd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init installd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init installd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init installd_exec:process installd;
+#line 3
+
+#line 3
+
+
+# Run migrate_legacy_obb_data.sh in its own sandbox.
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow installd migrate_legacy_obb_data_exec:file { getattr open read execute map };
+#line 6
+allow installd migrate_legacy_obb_data:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow migrate_legacy_obb_data migrate_legacy_obb_data_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+allow migrate_legacy_obb_data installd:process sigchld;
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit installd migrate_legacy_obb_data:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow installd migrate_legacy_obb_data:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition installd migrate_legacy_obb_data_exec:process migrate_legacy_obb_data;
+#line 6
+
+allow installd shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Run dex2oat in its own sandbox.
+
+#line 10
+# Allow the necessary permissions.
+#line 10
+
+#line 10
+# Old domain may exec the file and transition to the new domain.
+#line 10
+allow installd dex2oat_exec:file { getattr open read execute map };
+#line 10
+allow installd dex2oat:process transition;
+#line 10
+# New domain is entered by executing the file.
+#line 10
+allow dex2oat dex2oat_exec:file { entrypoint open read execute getattr map };
+#line 10
+# New domain can send SIGCHLD to its caller.
+#line 10
+allow dex2oat installd:process sigchld;
+#line 10
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 10
+dontaudit installd dex2oat:process noatsecure;
+#line 10
+# XXX dontaudit candidate but requires further study.
+#line 10
+allow installd dex2oat:process { siginh rlimitinh };
+#line 10
+
+#line 10
+# Make the transition occur by default.
+#line 10
+type_transition installd dex2oat_exec:process dex2oat;
+#line 10
+
+
+# Run dexoptanalyzer in its own sandbox.
+
+#line 13
+# Allow the necessary permissions.
+#line 13
+
+#line 13
+# Old domain may exec the file and transition to the new domain.
+#line 13
+allow installd dexoptanalyzer_exec:file { getattr open read execute map };
+#line 13
+allow installd dexoptanalyzer:process transition;
+#line 13
+# New domain is entered by executing the file.
+#line 13
+allow dexoptanalyzer dexoptanalyzer_exec:file { entrypoint open read execute getattr map };
+#line 13
+# New domain can send SIGCHLD to its caller.
+#line 13
+allow dexoptanalyzer installd:process sigchld;
+#line 13
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 13
+dontaudit installd dexoptanalyzer:process noatsecure;
+#line 13
+# XXX dontaudit candidate but requires further study.
+#line 13
+allow installd dexoptanalyzer:process { siginh rlimitinh };
+#line 13
+
+#line 13
+# Make the transition occur by default.
+#line 13
+type_transition installd dexoptanalyzer_exec:process dexoptanalyzer;
+#line 13
+
+
+# Run viewcompiler in its own sandbox.
+
+#line 16
+# Allow the necessary permissions.
+#line 16
+
+#line 16
+# Old domain may exec the file and transition to the new domain.
+#line 16
+allow installd viewcompiler_exec:file { getattr open read execute map };
+#line 16
+allow installd viewcompiler:process transition;
+#line 16
+# New domain is entered by executing the file.
+#line 16
+allow viewcompiler viewcompiler_exec:file { entrypoint open read execute getattr map };
+#line 16
+# New domain can send SIGCHLD to its caller.
+#line 16
+allow viewcompiler installd:process sigchld;
+#line 16
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 16
+dontaudit installd viewcompiler:process noatsecure;
+#line 16
+# XXX dontaudit candidate but requires further study.
+#line 16
+allow installd viewcompiler:process { siginh rlimitinh };
+#line 16
+
+#line 16
+# Make the transition occur by default.
+#line 16
+type_transition installd viewcompiler_exec:process viewcompiler;
+#line 16
+
+
+# Run profman in its own sandbox.
+
+#line 19
+# Allow the necessary permissions.
+#line 19
+
+#line 19
+# Old domain may exec the file and transition to the new domain.
+#line 19
+allow installd profman_exec:file { getattr open read execute map };
+#line 19
+allow installd profman:process transition;
+#line 19
+# New domain is entered by executing the file.
+#line 19
+allow profman profman_exec:file { entrypoint open read execute getattr map };
+#line 19
+# New domain can send SIGCHLD to its caller.
+#line 19
+allow profman installd:process sigchld;
+#line 19
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 19
+dontaudit installd profman:process noatsecure;
+#line 19
+# XXX dontaudit candidate but requires further study.
+#line 19
+allow installd profman:process { siginh rlimitinh };
+#line 19
+
+#line 19
+# Make the transition occur by default.
+#line 19
+type_transition installd profman_exec:process profman;
+#line 19
+
+
+# Run idmap in its own sandbox.
+
+#line 22
+# Allow the necessary permissions.
+#line 22
+
+#line 22
+# Old domain may exec the file and transition to the new domain.
+#line 22
+allow installd idmap_exec:file { getattr open read execute map };
+#line 22
+allow installd idmap:process transition;
+#line 22
+# New domain is entered by executing the file.
+#line 22
+allow idmap idmap_exec:file { entrypoint open read execute getattr map };
+#line 22
+# New domain can send SIGCHLD to its caller.
+#line 22
+allow idmap installd:process sigchld;
+#line 22
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 22
+dontaudit installd idmap:process noatsecure;
+#line 22
+# XXX dontaudit candidate but requires further study.
+#line 22
+allow installd idmap:process { siginh rlimitinh };
+#line 22
+
+#line 22
+# Make the transition occur by default.
+#line 22
+type_transition installd idmap_exec:process idmap;
+#line 22
+
+
+# For collecting bugreports.
+allow installd dumpstate:fd use;
+allow installd dumpstate:fifo_file { getattr open read ioctl lock map watch watch_reads };
+
+# Delete /system/bin/bcc generated artifacts
+allow installd app_exec_data_file:file unlink;
+
+# Capture userdata snapshots to /data/misc_[ce|de]/rollback and
+# subsequently restore them.
+allow installd rollback_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow installd rollback_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow installd to access the runtime feature flag properties.
+
+#line 37
+allow installd device_config_runtime_native_prop:file { getattr open read map };
+#line 37
+
+
+#line 38
+allow installd device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 38
+
+
+# Allow installd to access apk verity feature flag (for legacy case).
+
+#line 41
+allow installd apk_verity_prop:file { getattr open read map };
+#line 41
+
+
+# Allow installd to access odsign verification status
+
+#line 44
+allow installd odsign_prop:file { getattr open read map };
+#line 44
+
+
+# Allow installd to delete files in /data/staging
+allow installd staging_data_file:file unlink;
+allow installd staging_data_file:dir { open read remove_name rmdir search write getattr };
+
+allow installd { dex2oat dexoptanalyzer }:process signal;
+
+# installd kills subprocesses if they time out.
+allow installd { dex2oat dexoptanalyzer profman }:process sigkill;
+
+# Allow installd manage dirs in /data/misc_ce/0/sdksandbox
+allow installd sdk_sandbox_system_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom };
+
+# Allow installd to enable fs-verity for app file passed as FD;
+allow installd { untrusted_app_all priv_app gmscore_app }:fd use;
+allowxperm installd app_data_file_type:file ioctl 0x6685;
+#line 1 "system/sepolicy/private/isolated_app.te"
+###
+### isolated_apps.
+###
+### This file defines the rules for isolated apps that does not wish to use
+### service managers and does not require extra computational resources.
+###
+
+typeattribute isolated_app coredomain;
+
+
+#line 10
+typeattribute isolated_app appdomain;
+#line 10
+# Label tmpfs objects for all apps.
+#line 10
+type_transition isolated_app tmpfs:file appdomain_tmpfs;
+#line 10
+
+#line 10
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 10
+type isolated_app_userfaultfd;
+#line 10
+type_transition isolated_app isolated_app:anon_inode isolated_app_userfaultfd "[userfaultfd]";
+#line 10
+# Allow domain to create/use userfaultfd anon_inode.
+#line 10
+allow isolated_app isolated_app_userfaultfd:anon_inode { create ioctl read };
+#line 10
+# Suppress errors generate during bugreport
+#line 10
+dontaudit su isolated_app_userfaultfd:anon_inode *;
+#line 10
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 10
+neverallow { domain -isolated_app } isolated_app_userfaultfd:anon_inode *;
+#line 10
+
+#line 10
+allow isolated_app appdomain_tmpfs:file { execute getattr map read write };
+#line 10
+neverallow { isolated_app -runas_app -shell -simpleperf } { domain -isolated_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 10
+neverallow { appdomain -runas_app -shell -simpleperf -isolated_app } isolated_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 10
+# The Android security model guarantees the confidentiality and integrity
+#line 10
+# of application data and execution state. Ptrace bypasses those
+#line 10
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 10
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 10
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 10
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 10
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 10
+# live lock conditions.
+#line 10
+neverallow { domain -isolated_app -crash_dump  -runas_app -simpleperf } isolated_app:process ptrace;
+#line 10
+
+
+#line 11
+typeattribute isolated_app isolated_app_all;
+#line 11
+
+
+allow isolated_app webviewupdate_service:service_manager find;
+
+# Allow access to network sockets received over IPC. New socket creation is not
+# permitted.
+allow isolated_app { ephemeral_app priv_app untrusted_app_all }:{ tcp_socket udp_socket } { { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# b/32896414: Allow accessing sdcard file descriptors passed to isolated_apps
+# by other processes. Open should never be allowed, and is blocked by
+# neverallow rules in isolated_app_all attribute.
+# media_rw_data_file is included for sdcardfs, and can be removed if sdcardfs
+# is modified to change the secontext when accessing the lower filesystem.
+allow isolated_app { sdcard_type fuse media_rw_data_file }:file { read write append getattr lock map };
+
+# For webviews, isolated_app processes can be forked from the webview_zygote
+# in addition to the zygote. Allow access to resources inherited from the
+# webview_zygote process. These rules are specialized copies of the ones in app.te.
+# Inherit FDs from the webview_zygote.
+allow isolated_app webview_zygote:fd use;
+# Notify webview_zygote of child death.
+allow isolated_app webview_zygote:process sigchld;
+# Inherit logd write socket.
+allow isolated_app webview_zygote:unix_dgram_socket write;
+# Read system properties managed by webview_zygote.
+allow isolated_app webview_zygote_tmpfs:file read;
+#line 1 "system/sepolicy/private/isolated_app_all.te"
+###
+### isolated_app_all.
+###
+### Services with isolatedProcess=true in their manifest.
+###
+### This file defines the rules shared by all isolated apps. An "isolated
+### app" is an APP with UID between AID_ISOLATED_START (99000)
+### and AID_ISOLATED_END (99999).
+###
+
+# Access already open app data files received over Binder or local socket IPC.
+allow isolated_app_all { app_data_file privapp_data_file sdk_sandbox_data_file}:file { append read write getattr lock map };
+
+allow isolated_app_all activity_service:service_manager find;
+allow isolated_app_all display_service:service_manager find;
+
+# Google Breakpad (crash reporter for Chrome) relies on ptrace
+# functionality. Without the ability to ptrace, the crash reporter
+# tool is broken.
+# b/20150694
+# https://code.google.com/p/chromium/issues/detail?id=475270
+allow isolated_app_all self:process ptrace;
+
+# Inherit FDs from the app_zygote.
+allow isolated_app_all app_zygote:fd use;
+# Notify app_zygote of child death.
+allow isolated_app_all app_zygote:process sigchld;
+# Inherit logd write socket.
+allow isolated_app_all app_zygote:unix_dgram_socket write;
+
+# TODO (b/63631799) fix this access
+# suppress denials to /data/local/tmp
+dontaudit isolated_app_all shell_data_file:dir search;
+
+# Allow to read (but not open) staged apks.
+allow isolated_app_all { apk_tmp_file apk_private_tmp_file }:file { read getattr };
+
+#####
+##### Neverallow
+#####
+
+# Isolated apps should not directly open app data files themselves.
+neverallow isolated_app_all app_data_file_type:file open;
+
+# Only allow appending to /data/anr/traces.txt (b/27853304, b/18340553)
+# TODO: are there situations where isolated_apps write to this file?
+# TODO: should we tighten these restrictions further?
+neverallow isolated_app_all anr_data_file:file ~{ open append };
+neverallow isolated_app_all anr_data_file:dir ~search;
+
+# Isolated apps must not be permitted to use HwBinder
+neverallow { isolated_app_all -isolated_compute_app } hwbinder_device:chr_file *;
+neverallow { isolated_app_all -isolated_compute_app } *:hwservice_manager *;
+
+# Isolated apps must not be permitted to use VndBinder
+neverallow isolated_app_all vndbinder_device:chr_file *;
+
+# Isolated apps must not be permitted to perform actions on Binder and VndBinder service_manager
+# except the find actions for services allowlisted below.
+neverallow { isolated_app_all -isolated_compute_app } *:service_manager ~find;
+
+# b/17487348
+# Isolated apps can only access three services,
+# activity_service, display_service, webviewupdate_service.
+neverallow { isolated_app_all -isolated_compute_app } {
+    service_manager_type
+    -activity_service
+    -display_service
+    -webviewupdate_service
+}:service_manager find;
+
+# Isolated apps shouldn't be able to access the driver directly.
+neverallow isolated_app_all gpu_device:chr_file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } execute };
+
+# Do not allow isolated_apps access to /cache
+neverallow isolated_app_all cache_file:dir ~{ { open getattr read search ioctl lock watch watch_reads } };
+neverallow isolated_app_all cache_file:file ~{ read getattr };
+
+# Do not allow isolated_app_all to access external storage, except for files passed
+# via file descriptors (b/32896414).
+neverallow isolated_app_all { storage_file mnt_user_file sdcard_type fuse }:dir ~getattr;
+neverallow isolated_app_all { storage_file mnt_user_file }:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } *;
+neverallow isolated_app_all { sdcard_type fuse }:{ { chr_file blk_file } lnk_file sock_file fifo_file } *;
+neverallow isolated_app_all { sdcard_type fuse }:file ~{ read write append getattr lock map };
+
+# Do not allow USB access
+neverallow isolated_app_all { usb_device usbaccessory_device }:chr_file *;
+
+# Restrict the webview_zygote control socket.
+neverallow isolated_app_all webview_zygote:sock_file write;
+
+# Limit the /sys files which isolated_app_all can access. This is important
+# for controlling isolated_app_all attack surface.
+# TODO (b/266555480): The permission should be guarded by compliance test.
+# Remove the negation for member domains when refactorization is done.
+neverallow { isolated_app_all -isolated_compute_app } {
+  sysfs_type
+  -sysfs_devices_system_cpu
+  -sysfs_transparent_hugepage
+  -sysfs_usb # TODO: check with audio team if needed for isolated_apps (b/28417852)
+  -sysfs_fs_fuse_features
+  -sysfs_fs_incfs_features
+}:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# No creation of sockets families other than AF_UNIX sockets.
+# List taken from system/sepolicy/public/global_macros - socket_class_set
+# excluding unix_stream_socket and unix_dgram_socket.
+# Many of these are socket families which have never and will never
+# be compiled into the Android kernel.
+neverallow isolated_app_all { self ephemeral_app priv_app sdk_sandbox_all untrusted_app_all }:{
+  socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket
+  key_socket appletalk_socket netlink_route_socket
+  netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket
+  netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket
+  netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket
+  netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket
+  netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket
+  netlink_crypto_socket sctp_socket icmp_socket ax25_socket ipx_socket
+  netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket
+  rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket
+  bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket
+  ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket
+  qipcrtr_socket smc_socket xdp_socket
+} create;
+#line 1 "system/sepolicy/private/isolated_compute_app.te"
+###
+### isolated_compute_apps.
+###
+### This file defines the rules for isolated apps that requires the permission
+### to gather data with service manager and require computational resources to
+### improve the performance to process data under a sandbox. This
+### isolated_compute_app restricts data egress to protect the privacy.
+###
+### TODO(b/266923392): Clean rules for isolated_compute_app characteristics
+###
+
+typeattribute isolated_compute_app coredomain;
+
+
+#line 14
+typeattribute isolated_compute_app appdomain;
+#line 14
+# Label tmpfs objects for all apps.
+#line 14
+type_transition isolated_compute_app tmpfs:file appdomain_tmpfs;
+#line 14
+
+#line 14
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 14
+type isolated_compute_app_userfaultfd;
+#line 14
+type_transition isolated_compute_app isolated_compute_app:anon_inode isolated_compute_app_userfaultfd "[userfaultfd]";
+#line 14
+# Allow domain to create/use userfaultfd anon_inode.
+#line 14
+allow isolated_compute_app isolated_compute_app_userfaultfd:anon_inode { create ioctl read };
+#line 14
+# Suppress errors generate during bugreport
+#line 14
+dontaudit su isolated_compute_app_userfaultfd:anon_inode *;
+#line 14
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 14
+neverallow { domain -isolated_compute_app } isolated_compute_app_userfaultfd:anon_inode *;
+#line 14
+
+#line 14
+allow isolated_compute_app appdomain_tmpfs:file { execute getattr map read write };
+#line 14
+neverallow { isolated_compute_app -runas_app -shell -simpleperf } { domain -isolated_compute_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 14
+neverallow { appdomain -runas_app -shell -simpleperf -isolated_compute_app } isolated_compute_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 14
+# The Android security model guarantees the confidentiality and integrity
+#line 14
+# of application data and execution state. Ptrace bypasses those
+#line 14
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 14
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 14
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 14
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 14
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 14
+# live lock conditions.
+#line 14
+neverallow { domain -isolated_compute_app -crash_dump  -runas_app -simpleperf } isolated_compute_app:process ptrace;
+#line 14
+
+
+#line 15
+typeattribute isolated_compute_app isolated_app_all;
+#line 15
+
+
+allow isolated_compute_app isolated_compute_allowed_service:service_manager find;
+allow isolated_compute_app isolated_compute_allowed_device:chr_file { read write ioctl map };
+
+# Enable access to hardware services for camera functionalilites
+
+#line 21
+typeattribute isolated_compute_app halclientdomain;
+#line 21
+typeattribute isolated_compute_app hal_allocator_client;
+#line 21
+
+#line 21
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 21
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 21
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 21
+
+#line 21
+typeattribute isolated_compute_app hal_allocator;
+#line 21
+# Find passthrough HAL implementations
+#line 21
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 21
+
+#line 21
+
+
+#line 22
+# Call the hwservicemanager and transfer references to it.
+#line 22
+allow isolated_compute_app hwservicemanager:binder { call transfer };
+#line 22
+# Allow hwservicemanager to send out callbacks
+#line 22
+allow hwservicemanager isolated_compute_app:binder { call transfer };
+#line 22
+# hwservicemanager performs getpidcon on clients.
+#line 22
+allow hwservicemanager isolated_compute_app:dir search;
+#line 22
+allow hwservicemanager isolated_compute_app:file { read open map };
+#line 22
+allow hwservicemanager isolated_compute_app:process getattr;
+#line 22
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 22
+# all domains in domain.te.
+#line 22
+
+
+
+#line 24
+typeattribute isolated_compute_app halclientdomain;
+#line 24
+typeattribute isolated_compute_app hal_codec2_client;
+#line 24
+
+#line 24
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 24
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 24
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 24
+
+#line 24
+typeattribute isolated_compute_app hal_codec2;
+#line 24
+# Find passthrough HAL implementations
+#line 24
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 24
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 24
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 24
+
+#line 24
+
+
+allow isolated_compute_app dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow access to network sockets received over IPC. New socket creation is not
+# permitted.
+allow isolated_compute_app { ephemeral_app priv_app untrusted_app_all }:{ tcp_socket udp_socket } { { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Allow access to the toybox: b/275024392
+allow isolated_compute_app toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#####
+##### Neverallow
+#####
+
+# Do not allow isolated_compute_app to access hardware service except for the
+# ones necessary for camera service.
+# TODO (b/266555480): The permission should be guarded by compliance test.
+# Remove the negation for member domains when refactorization is done.
+# neverallow isolated_compute_app {
+# hwservice_manager_type
+#  -hal_graphics_allocator_hwservice
+#  -hal_graphics_mapper_hwservice
+#  -hidl_allocator_hwservice
+#  -hidl_manager_hwservice
+#  -hidl_memory_hwservice
+# }:hwservice_manager *;
+#line 1 "system/sepolicy/private/iw.te"
+type iw, domain, coredomain;
+type iw_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init iw_exec:file { getattr open read execute map };
+#line 4
+allow init iw:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow iw iw_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init iw:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init iw:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init iw_exec:process iw;
+#line 4
+
+#line 4
+
+#line 1 "system/sepolicy/private/kernel.te"
+typeattribute kernel coredomain;
+
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow kernel init_exec:file { getattr open read execute map };
+#line 3
+allow kernel init:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow init init_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+allow init kernel:process sigchld;
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit kernel init:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow kernel init:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition kernel init_exec:process init;
+#line 3
+
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow kernel snapuserd_exec:file { getattr open read execute map };
+#line 4
+allow kernel snapuserd:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow snapuserd snapuserd_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+allow snapuserd kernel:process sigchld;
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit kernel snapuserd:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow kernel snapuserd:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition kernel snapuserd_exec:process snapuserd;
+#line 4
+
+
+# Allow the kernel to read otapreopt_chroot's file descriptors and files under
+# /postinstall, as it uses apexd logic to mount APEX packages in /postinstall/apex.
+allow kernel otapreopt_chroot:fd use;
+allow kernel postinstall_file:file read;
+
+# The following sections are for the transition period during a Virtual A/B
+# OTA. Once sepolicy is loaded, snapuserd must be re-launched in the correct
+# context, and with properly labelled devices. This must be done before
+# enabling enforcement, eg, in permissive mode while still in the kernel
+# context.
+allow kernel tmpfs:blk_file { getattr relabelfrom };
+allow kernel tmpfs:chr_file { getattr relabelfrom };
+allow kernel tmpfs:lnk_file { getattr relabelfrom };
+allow kernel tmpfs:dir { open read relabelfrom };
+
+allow kernel block_device:blk_file relabelto;
+allow kernel block_device:lnk_file relabelto;
+allow kernel dm_device:chr_file relabelto;
+allow kernel dm_device:blk_file relabelto;
+allow kernel dm_user_device:dir { read open search relabelto };
+allow kernel dm_user_device:chr_file relabelto;
+allow kernel kmsg_device:chr_file relabelto;
+allow kernel null_device:chr_file relabelto;
+allow kernel random_device:chr_file relabelto;
+allow kernel snapuserd_exec:file relabelto;
+
+allow kernel kmsg_device:chr_file write;
+allow kernel gsid:fd use;
+
+dontaudit kernel metadata_file:dir search;
+dontaudit kernel ota_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+dontaudit kernel sysfs:dir { open getattr read search ioctl lock watch watch_reads };
+dontaudit kernel sysfs:file { open read write };
+dontaudit kernel sysfs:chr_file { open read write };
+dontaudit kernel dm_device:chr_file ioctl;
+dontaudit kernel self:capability { sys_admin setgid mknod };
+
+dontaudit kernel dm_user_device:dir { write add_name };
+dontaudit kernel dm_user_device:chr_file { create setattr };
+dontaudit kernel tmpfs:lnk_file read;
+dontaudit kernel tmpfs:blk_file { open read };
+#line 1 "system/sepolicy/private/keystore.te"
+typeattribute keystore coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init keystore_exec:file { getattr open read execute map };
+#line 3
+allow init keystore:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow keystore keystore_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init keystore:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init keystore:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init keystore_exec:process keystore;
+#line 3
+
+#line 3
+
+
+# talk to keymaster
+
+#line 6
+typeattribute keystore halclientdomain;
+#line 6
+typeattribute keystore hal_keymaster_client;
+#line 6
+
+#line 6
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 6
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 6
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 6
+
+#line 6
+typeattribute keystore hal_keymaster;
+#line 6
+# Find passthrough HAL implementations
+#line 6
+allow hal_keymaster system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_keymaster vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_keymaster vendor_file:file { read open getattr execute map };
+#line 6
+
+#line 6
+
+
+# talk to confirmationui
+
+#line 9
+typeattribute keystore halclientdomain;
+#line 9
+typeattribute keystore hal_confirmationui_client;
+#line 9
+
+#line 9
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 9
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 9
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 9
+
+#line 9
+typeattribute keystore hal_confirmationui;
+#line 9
+# Find passthrough HAL implementations
+#line 9
+allow hal_confirmationui system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_confirmationui vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_confirmationui vendor_file:file { read open getattr execute map };
+#line 9
+
+#line 9
+
+
+# talk to keymint
+
+#line 12
+typeattribute keystore halclientdomain;
+#line 12
+typeattribute keystore hal_keymint_client;
+#line 12
+
+#line 12
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 12
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 12
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 12
+
+#line 12
+typeattribute keystore hal_keymint;
+#line 12
+# Find passthrough HAL implementations
+#line 12
+allow hal_keymint system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_keymint vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_keymint vendor_file:file { read open getattr execute map };
+#line 12
+
+#line 12
+
+
+# Ignore keystore attempts to access the AVF RKP Hal but keystore is not suppose to
+# access it.
+# TODO(b/312427637): Investigate the reason and fix the denial.
+dontaudit keystore hal_remotelyprovisionedcomponent_avf_service:service_manager { find };
+
+# This is used for the ConfirmationUI async callback.
+allow keystore platform_app:binder call;
+
+# Allow to check whether security logging is enabled.
+
+#line 23
+allow keystore device_logging_prop:file { getattr open read map };
+#line 23
+
+
+# Allow keystore to check if the system is rkp only.
+
+#line 26
+allow keystore remote_prov_prop:file { getattr open read map };
+#line 26
+
+
+# Allow keystore to check rkpd feature flags
+
+#line 29
+allow keystore device_config_remote_key_provisioning_native_prop:file { getattr open read map };
+#line 29
+
+
+# Allow keystore to write to statsd.
+
+#line 32
+allow keystore statsdw_socket:sock_file write;
+#line 32
+allow keystore statsd:unix_dgram_socket sendto;
+#line 32
+
+
+# Keystore need access to the keystore2_key_contexts file to load the keystore key backend.
+allow keystore keystore2_key_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow keystore to listen to changing boot levels
+
+#line 38
+allow keystore keystore_listen_prop:file { getattr open read map };
+#line 38
+
+
+# Keystore needs to transfer binder references to vold so that it
+# can call keystore methods on those references.
+allow keystore vold:binder transfer;
+
+# Only keystore can set keystore.crash_count system property. Since init is allowed to set any
+# system property, an exception is added for init as well.
+
+#line 46
+
+#line 46
+allow keystore property_socket:sock_file write;
+#line 46
+allow keystore init:unix_stream_socket connectto;
+#line 46
+
+#line 46
+allow keystore keystore_crash_prop:property_service set;
+#line 46
+
+#line 46
+allow keystore keystore_crash_prop:file { getattr open read map };
+#line 46
+
+#line 46
+
+neverallow { domain -keystore -init } keystore_crash_prop:property_service set;
+
+# keystore is using apex_info via libvintf
+
+#line 50
+  allow keystore apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+#line 50
+  allow keystore apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 50
+  
+#line 50
+allow keystore vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 50
+allow keystore vendor_apex_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 50
+
+#line 50
+
+#line 1 "system/sepolicy/private/keystore_keys.te"
+# Specify keystore2_key namespaces in this file.
+# Please keep the names in alphabetical order and comment each new entry.
+
+# A keystore2_key namespace for the shell domain. Mainly used for native tests.
+type shell_key, keystore2_key_type;
+
+# A keystore2 namespace for the su domain. Mainly used for native tests.
+type su_key, keystore2_key_type;
+
+# A keystore2 namespace for vold. Vold need special permission to handle
+# its own Keymint blobs.
+type vold_key, keystore2_key_type;
+
+# A keystore2 namespace for the on-device signing daemon.
+type odsign_key, keystore2_key_type;
+
+# A keystore2 namespace for LockSettingsService.
+type locksettings_key, keystore2_key_type;
+
+# A keystore2 namespace for resume on reboot.
+type resume_on_reboot_key, keystore2_key_type;
+
+#line 1 "system/sepolicy/private/linkerconfig.te"
+type linkerconfig, domain, coredomain;
+type linkerconfig_exec, exec_type, file_type, system_file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init linkerconfig_exec:file { getattr open read execute map };
+#line 4
+allow init linkerconfig:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow linkerconfig linkerconfig_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init linkerconfig:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init linkerconfig:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init linkerconfig_exec:process linkerconfig;
+#line 4
+
+#line 4
+
+
+## Read and write linkerconfig subdirectory.
+allow linkerconfig linkerconfig_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow linkerconfig linkerconfig_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow linkerconfig to log to the kernel.
+allow linkerconfig kmsg_device:chr_file { open append write lock map };
+
+# Allow linkerconfig to be invoked with logwrapper from init.
+allow linkerconfig devpts:chr_file { getattr ioctl read write };
+
+# Allow linkerconfig to scan for apex modules
+allow linkerconfig apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow linkerconfig to read apex-info-list.xml
+allow linkerconfig apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow linkerconfig to read apex_manifest.pb file from vendor apex
+
+#line 23
+allow linkerconfig vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 23
+allow linkerconfig vendor_apex_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 23
+
+
+# Allow linkerconfig to be called in the otapreopt_chroot
+allow linkerconfig otapreopt_chroot:fd use;
+allow linkerconfig postinstall_apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+allow linkerconfig postinstall_apex_mnt_dir:file { getattr open read ioctl lock map watch watch_reads };
+
+neverallow { domain -init -linkerconfig -otapreopt_chroot } linkerconfig_exec:file { execute execute_no_trans };
+#line 1 "system/sepolicy/private/llkd.te"
+# llkd Live LocK Daemon
+typeattribute llkd coredomain;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init llkd_exec:file { getattr open read execute map };
+#line 4
+allow init llkd:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow llkd llkd_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init llkd:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init llkd:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init llkd_exec:process llkd;
+#line 4
+
+#line 4
+
+
+
+#line 6
+allow llkd llkd_prop:file { getattr open read map };
+#line 6
+
+
+allow llkd self:{ capability cap_userns } kill;
+#line 12
+
+
+# llkd optionally locks itself in memory, to prevent it from being
+# swapped out and unable to discover a kernel in live-lock state.
+allow llkd self:{ capability cap_userns } ipc_lock;
+
+# Send kill signals to _anyone_ suffering from Live Lock
+allow llkd domain:process sigkill;
+
+# read stack to check for Live Lock
+#line 33
+
+
+# live lock watchdog process allowed to look through /proc/
+allow llkd domain:dir { open getattr read search ioctl lock watch watch_reads };
+allow llkd domain:file { getattr open read ioctl lock map watch watch_reads };
+allow llkd domain:lnk_file read;
+# Set /proc/sys/kernel/hung_task_*
+allow llkd proc_hung_task:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# live lock watchdog process allowed to dump process trace and
+# reboot because orderly shutdown may not be possible.
+allow llkd proc_sysrq:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow llkd kmsg_device:chr_file { open append write lock map };
+
+### neverallow rules
+
+neverallow { domain -init } llkd:process { dyntransition transition };
+neverallow { domain  } llkd:process ptrace;
+
+# never honor LD_PRELOAD
+neverallow * llkd:process noatsecure;
+#line 1 "system/sepolicy/private/lmkd.te"
+typeattribute lmkd coredomain;
+typeattribute lmkd bpfdomain;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init lmkd_exec:file { getattr open read execute map };
+#line 4
+allow init lmkd:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow lmkd lmkd_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init lmkd:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init lmkd:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init lmkd_exec:process lmkd;
+#line 4
+
+#line 4
+
+
+# Set sys.lmk.* properties.
+
+#line 7
+
+#line 7
+allow lmkd property_socket:sock_file write;
+#line 7
+allow lmkd init:unix_stream_socket connectto;
+#line 7
+
+#line 7
+allow lmkd system_lmk_prop:property_service set;
+#line 7
+
+#line 7
+allow lmkd system_lmk_prop:file { getattr open read map };
+#line 7
+
+#line 7
+
+
+# Set lmkd.* properties.
+
+#line 10
+
+#line 10
+allow lmkd property_socket:sock_file write;
+#line 10
+allow lmkd init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow lmkd lmkd_prop:property_service set;
+#line 10
+
+#line 10
+allow lmkd lmkd_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+# Get persist.device_config.lmk_native.* properties.
+
+#line 13
+allow lmkd device_config_lmkd_native_prop:file { getattr open read map };
+#line 13
+
+
+allow lmkd fs_bpf:file read;
+allow lmkd bpfloader:bpf map_read;
+
+neverallow { domain -init -lmkd -vendor_init } lmkd_prop:property_service set;
+#line 1 "system/sepolicy/private/logd.te"
+typeattribute logd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init logd_exec:file { getattr open read execute map };
+#line 3
+allow init logd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow logd logd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init logd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init logd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init logd_exec:process logd;
+#line 3
+
+#line 3
+
+
+# Access device logging gating property
+
+#line 6
+allow logd device_logging_prop:file { getattr open read map };
+#line 6
+
+
+# logd is not allowed to write anywhere other than /data/misc/logd, and then
+# only on userdebug or eng builds
+neverallow logd {
+  file_type
+  -runtime_event_log_tags_file
+  # shell_data_file access is needed to dump bugreports
+  -shell_data_file
+  
+  
+}:file { create write append };
+
+# protect the event-log-tags file
+neverallow {
+  domain
+  -appdomain # covered below
+  -bootstat
+  -dumpstate
+  -init
+  -logd
+  
+  -servicemanager
+  -system_server
+  -surfaceflinger
+  -zygote
+} runtime_event_log_tags_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  appdomain
+  -bluetooth
+  -platform_app
+  -priv_app
+  -radio
+  -shell
+  
+  -system_app
+} runtime_event_log_tags_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Only binder communication between logd and system_server is allowed
+
+#line 46
+# Call the servicemanager and transfer references to it.
+#line 46
+allow logd servicemanager:binder { call transfer };
+#line 46
+# Allow servicemanager to send out callbacks
+#line 46
+allow servicemanager logd:binder { call transfer };
+#line 46
+# servicemanager performs getpidcon on clients.
+#line 46
+allow servicemanager logd:dir search;
+#line 46
+allow servicemanager logd:file { read open };
+#line 46
+allow servicemanager logd:process getattr;
+#line 46
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 46
+# all domains in domain.te.
+#line 46
+
+
+#line 47
+typeattribute logd binderservicedomain;
+#line 47
+
+
+#line 48
+# Call the server domain and optionally transfer references to it.
+#line 48
+allow logd system_server:binder { call transfer };
+#line 48
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 48
+allow system_server logd:binder transfer;
+#line 48
+# Receive and use open files from the server.
+#line 48
+allow logd system_server:fd use;
+#line 48
+
+
+
+#line 50
+  allow logd logd_service:service_manager { add find };
+#line 50
+  neverallow { domain -logd } logd_service:service_manager add;
+#line 50
+
+#line 50
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 50
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 50
+  
+#line 50
+
+allow logd logcat_service:service_manager find;
+#line 1 "system/sepolicy/private/logpersist.te"
+typeattribute logpersist coredomain;
+
+# android debug log storage in logpersist domains (eng and userdebug only)
+#line 21
+
+
+# logpersist is allowed to write to /data/misc/log for userdebug and eng builds
+neverallow logpersist {
+  file_type
+  
+  
+}:file { create write append };
+neverallow { domain -init -dumpstate -incidentd  } misc_logd_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow { domain -init  } misc_logd_file:file { append create link unlink relabelfrom rename setattr write };
+neverallow { domain -init  } misc_logd_file:dir { add_name link relabelfrom remove_name rename reparent rmdir write };
+#line 1 "system/sepolicy/private/lpdumpd.te"
+type lpdumpd, domain, coredomain;
+type lpdumpd_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init lpdumpd_exec:file { getattr open read execute map };
+#line 4
+allow init lpdumpd:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow lpdumpd lpdumpd_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init lpdumpd:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init lpdumpd:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init lpdumpd_exec:process lpdumpd;
+#line 4
+
+#line 4
+
+
+# Allow lpdumpd to register itself as a service.
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow lpdumpd servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager lpdumpd:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager lpdumpd:dir search;
+#line 7
+allow servicemanager lpdumpd:file { read open };
+#line 7
+allow servicemanager lpdumpd:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+
+#line 8
+  allow lpdumpd lpdump_service:service_manager { add find };
+#line 8
+  neverallow { domain -lpdumpd } lpdump_service:service_manager add;
+#line 8
+
+#line 8
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 8
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 8
+  
+#line 8
+
+
+# Allow lpdumpd to find the super partition block device.
+allow lpdumpd block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow lpdumpd to read super partition metadata.
+allow lpdumpd super_block_device_type:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow lpdumpd to read fstab.
+allow lpdumpd sysfs_dt_firmware_android:dir { open getattr read search ioctl lock watch watch_reads };
+allow lpdumpd sysfs_dt_firmware_android:file { getattr open read ioctl lock map watch watch_reads };
+
+#line 19
+  allow lpdumpd { metadata_file gsi_metadata_file_type }:dir search;
+#line 19
+  allow lpdumpd gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 19
+  allow lpdumpd { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 19
+
+
+# Allow to get A/B slot suffix from device tree or kernel cmdline.
+
+#line 22
+allow lpdumpd sysfs_dt_firmware_android:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow lpdumpd sysfs_dt_firmware_android:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 22
+;
+allow lpdumpd proc_cmdline:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow reading Virtual A/B status information.
+
+#line 26
+allow lpdumpd virtual_ab_prop:file { getattr open read map };
+#line 26
+
+allow lpdumpd metadata_file:dir search;
+allow lpdumpd ota_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } lock };
+allow lpdumpd ota_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+
+### Neverallow rules
+
+# Disallow other domains to get lpdump_service and call lpdumpd.
+neverallow {
+    domain
+    -dumpstate
+    -lpdumpd
+    -shell
+} lpdump_service:service_manager find;
+
+neverallow {
+    domain
+    -dumpstate
+    -lpdumpd
+    -shell
+    -servicemanager
+} lpdumpd:binder call;
+#line 1 "system/sepolicy/private/mdnsd.te"
+# mdns daemon
+
+typeattribute mdnsd coredomain;
+typeattribute mdnsd mlstrustedsubject;
+
+type mdnsd_exec, system_file_type, exec_type, file_type;
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init mdnsd_exec:file { getattr open read execute map };
+#line 7
+allow init mdnsd:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow mdnsd mdnsd_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init mdnsd:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init mdnsd:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init mdnsd_exec:process mdnsd;
+#line 7
+
+#line 7
+
+
+
+#line 9
+typeattribute mdnsd netdomain;
+#line 9
+
+
+# Read from /proc/net
+
+#line 12
+allow mdnsd proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow mdnsd proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 12
+
+#line 1 "system/sepolicy/private/mediadrmserver.te"
+typeattribute mediadrmserver coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init mediadrmserver_exec:file { getattr open read execute map };
+#line 3
+allow init mediadrmserver:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow mediadrmserver mediadrmserver_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init mediadrmserver:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init mediadrmserver:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init mediadrmserver_exec:process mediadrmserver;
+#line 3
+
+#line 3
+
+
+# allocate and use graphic buffers
+
+#line 6
+typeattribute mediadrmserver halclientdomain;
+#line 6
+typeattribute mediadrmserver hal_graphics_allocator_client;
+#line 6
+
+#line 6
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 6
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 6
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 6
+
+#line 6
+typeattribute mediadrmserver hal_graphics_allocator;
+#line 6
+# Find passthrough HAL implementations
+#line 6
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 6
+
+#line 6
+
+auditallow mediadrmserver hal_graphics_allocator_server:binder call;
+
+#line 1 "system/sepolicy/private/mediaextractor.te"
+typeattribute mediaextractor coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init mediaextractor_exec:file { getattr open read execute map };
+#line 3
+allow init mediaextractor:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow mediaextractor mediaextractor_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init mediaextractor:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init mediaextractor:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init mediaextractor_exec:process mediaextractor;
+#line 3
+
+#line 3
+
+
+#line 4
+type_transition mediaextractor tmpfs:file mediaextractor_tmpfs;
+#line 4
+allow mediaextractor mediaextractor_tmpfs:file { read write getattr map };
+#line 4
+
+allow mediaextractor appdomain_tmpfs:file { getattr map read write };
+allow mediaextractor mediaserver_tmpfs:file { getattr map read write };
+allow mediaextractor system_server_tmpfs:file { getattr map read write };
+
+
+#line 9
+allow mediaextractor device_config_media_native_prop:file { getattr open read map };
+#line 9
+
+
+#line 10
+allow mediaextractor device_config_swcodec_native_prop:file { getattr open read map };
+#line 10
+
+#line 1 "system/sepolicy/private/mediametrics.te"
+typeattribute mediametrics coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init mediametrics_exec:file { getattr open read execute map };
+#line 3
+allow init mediametrics:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow mediametrics mediametrics_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init mediametrics:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init mediametrics:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init mediametrics_exec:process mediametrics;
+#line 3
+
+#line 3
+
+
+# Needed for stats callback registration to statsd.
+allow mediametrics stats_service:service_manager find;
+allow mediametrics statsmanager_service:service_manager find;
+
+#line 8
+# Call the server domain and optionally transfer references to it.
+#line 8
+allow mediametrics statsd:binder { call transfer };
+#line 8
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 8
+allow statsd mediametrics:binder transfer;
+#line 8
+# Receive and use open files from the server.
+#line 8
+allow mediametrics statsd:fd use;
+#line 8
+
+#line 1 "system/sepolicy/private/mediaprovider.te"
+###
+### A domain for android.process.media, which contains both
+### MediaProvider and DownloadProvider and associated services.
+###
+
+typeattribute mediaprovider coredomain;
+
+#line 7
+typeattribute mediaprovider appdomain;
+#line 7
+# Label tmpfs objects for all apps.
+#line 7
+type_transition mediaprovider tmpfs:file appdomain_tmpfs;
+#line 7
+
+#line 7
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 7
+type mediaprovider_userfaultfd;
+#line 7
+type_transition mediaprovider mediaprovider:anon_inode mediaprovider_userfaultfd "[userfaultfd]";
+#line 7
+# Allow domain to create/use userfaultfd anon_inode.
+#line 7
+allow mediaprovider mediaprovider_userfaultfd:anon_inode { create ioctl read };
+#line 7
+# Suppress errors generate during bugreport
+#line 7
+dontaudit su mediaprovider_userfaultfd:anon_inode *;
+#line 7
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 7
+neverallow { domain -mediaprovider } mediaprovider_userfaultfd:anon_inode *;
+#line 7
+
+#line 7
+allow mediaprovider appdomain_tmpfs:file { execute getattr map read write };
+#line 7
+neverallow { mediaprovider -runas_app -shell -simpleperf } { domain -mediaprovider }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+neverallow { appdomain -runas_app -shell -simpleperf -mediaprovider } mediaprovider:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+# The Android security model guarantees the confidentiality and integrity
+#line 7
+# of application data and execution state. Ptrace bypasses those
+#line 7
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 7
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 7
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 7
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 7
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 7
+# live lock conditions.
+#line 7
+neverallow { domain -mediaprovider -crash_dump  -runas_app -simpleperf } mediaprovider:process ptrace;
+#line 7
+
+
+# DownloadProvider accesses the network.
+
+#line 10
+typeattribute mediaprovider netdomain;
+#line 10
+
+
+# DownloadProvider uses /cache.
+allow mediaprovider cache_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow mediaprovider cache_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# /cache is a symlink to /data/cache on some devices. Allow reading the link.
+allow mediaprovider cache_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+# mediaprovider searches through /cache looking for orphans
+# Ignore denials to /cache/recovery and /cache/backup.
+dontaudit mediaprovider cache_private_backup_file:dir getattr;
+dontaudit mediaprovider cache_recovery_file:dir getattr;
+
+# Access external sdcards through /mnt/media_rw
+allow mediaprovider { mnt_media_rw_file }:dir search;
+
+allow mediaprovider app_api_service:service_manager find;
+allow mediaprovider audioserver_service:service_manager find;
+allow mediaprovider cameraserver_service:service_manager find;
+allow mediaprovider drmserver_service:service_manager find;
+allow mediaprovider mediaextractor_service:service_manager find;
+allow mediaprovider mediaserver_service:service_manager find;
+
+# Allow MediaProvider to read/write cached ringtones (opened by system).
+allow mediaprovider ringtone_file:file { getattr read write };
+
+# MtpServer uses /dev/mtp_usb
+allow mediaprovider mtp_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# MtpServer uses /dev/usb-ffs/mtp
+allow mediaprovider functionfs:dir search;
+allow mediaprovider functionfs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm mediaprovider functionfs:file ioctl 0x80096782;
+allowxperm mediaprovider functionfs:file ioctl 0x000067e7;
+
+# MtpServer sets sys.usb.ffs.mtp.ready
+
+#line 45
+allow mediaprovider ffs_config_prop:file { getattr open read map };
+#line 45
+
+
+#line 46
+
+#line 46
+allow mediaprovider property_socket:sock_file write;
+#line 46
+allow mediaprovider init:unix_stream_socket connectto;
+#line 46
+
+#line 46
+allow mediaprovider ffs_control_prop:property_service set;
+#line 46
+
+#line 46
+allow mediaprovider ffs_control_prop:file { getattr open read map };
+#line 46
+
+#line 46
+
+
+# DownloadManager may retrieve DRM status
+
+#line 49
+allow mediaprovider drm_service_config_prop:file { getattr open read map };
+#line 49
+
+#line 1 "system/sepolicy/private/mediaprovider_app.te"
+###
+### A domain for further sandboxing the MediaProvider mainline module.
+###
+type mediaprovider_app, domain, coredomain, bpfdomain;
+
+
+#line 6
+typeattribute mediaprovider_app appdomain;
+#line 6
+# Label tmpfs objects for all apps.
+#line 6
+type_transition mediaprovider_app tmpfs:file appdomain_tmpfs;
+#line 6
+
+#line 6
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 6
+type mediaprovider_app_userfaultfd;
+#line 6
+type_transition mediaprovider_app mediaprovider_app:anon_inode mediaprovider_app_userfaultfd "[userfaultfd]";
+#line 6
+# Allow domain to create/use userfaultfd anon_inode.
+#line 6
+allow mediaprovider_app mediaprovider_app_userfaultfd:anon_inode { create ioctl read };
+#line 6
+# Suppress errors generate during bugreport
+#line 6
+dontaudit su mediaprovider_app_userfaultfd:anon_inode *;
+#line 6
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 6
+neverallow { domain -mediaprovider_app } mediaprovider_app_userfaultfd:anon_inode *;
+#line 6
+
+#line 6
+allow mediaprovider_app appdomain_tmpfs:file { execute getattr map read write };
+#line 6
+neverallow { mediaprovider_app -runas_app -shell -simpleperf } { domain -mediaprovider_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+neverallow { appdomain -runas_app -shell -simpleperf -mediaprovider_app } mediaprovider_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+# The Android security model guarantees the confidentiality and integrity
+#line 6
+# of application data and execution state. Ptrace bypasses those
+#line 6
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 6
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 6
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 6
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 6
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 6
+# live lock conditions.
+#line 6
+neverallow { domain -mediaprovider_app -crash_dump  -runas_app -simpleperf } mediaprovider_app:process ptrace;
+#line 6
+
+
+# Access to /mnt/pass_through.
+
+#line 9
+allow mediaprovider_app mnt_pass_through_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow mediaprovider_app mnt_pass_through_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 9
+
+
+# Allow MediaProvider to host a FUSE daemon for external storage
+allow mediaprovider_app fuse_device:chr_file { read write ioctl getattr };
+
+# Allow MediaProvider to access fuseblk devices for external storage.
+allow mediaprovider_app fuseblk:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow mediaprovider_app fuseblk:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow MediaProvider to read/write media_rw_data_file files and dirs
+allow mediaprovider_app media_userdir_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow mediaprovider_app media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow mediaprovider_app media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+# Talk to the DRM service
+allow mediaprovider_app drmserver_service:service_manager find;
+
+# Talk to the MediaServer service
+allow mediaprovider_app mediaserver_service:service_manager find;
+
+# Talk to the AudioServer service
+allow mediaprovider_app audioserver_service:service_manager find;
+
+# Talk to the MediaCodec APIs that log media metrics
+allow mediaprovider_app mediametrics_service:service_manager find;
+
+# Talk to regular app services
+allow mediaprovider_app app_api_service:service_manager find;
+
+# Talk to the GPU service
+
+#line 39
+# Call the server domain and optionally transfer references to it.
+#line 39
+allow mediaprovider_app gpuservice:binder { call transfer };
+#line 39
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 39
+allow gpuservice mediaprovider_app:binder transfer;
+#line 39
+# Receive and use open files from the server.
+#line 39
+allow mediaprovider_app gpuservice:fd use;
+#line 39
+
+
+# Talk to statsd
+allow mediaprovider_app statsmanager_service:service_manager find;
+
+#line 43
+# Call the server domain and optionally transfer references to it.
+#line 43
+allow mediaprovider_app statsd:binder { call transfer };
+#line 43
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 43
+allow statsd mediaprovider_app:binder transfer;
+#line 43
+# Receive and use open files from the server.
+#line 43
+allow mediaprovider_app statsd:fd use;
+#line 43
+
+
+# read pipe-max-size configuration
+allow mediaprovider_app proc_pipe_conf:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow MediaProvider to set extended attributes (such as quota project ID)
+# on media files.
+allowxperm mediaprovider_app media_rw_data_file:{ dir file } ioctl {
+  0x801c581f
+  0x401c5820
+  0x80086601
+  0x40086602
+};
+
+# Access external sdcards through /mnt/media_rw
+allow mediaprovider_app { mnt_media_rw_file }:dir search;
+
+allow mediaprovider_app proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+#Allow MediaProvider to see if sdcardfs is in use
+
+#line 63
+allow mediaprovider_app storage_config_prop:file { getattr open read map };
+#line 63
+
+
+
+#line 65
+allow mediaprovider_app drm_service_config_prop:file { getattr open read map };
+#line 65
+
+
+allow mediaprovider_app gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow mediaprovider_app gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+dontaudit mediaprovider_app sysfs_vendor_sched:dir search;
+dontaudit mediaprovider_app sysfs_vendor_sched:file { open append write lock map };
+
+# bpfprog access for FUSE BPF
+allow mediaprovider_app fs_bpf:file read;
+allow mediaprovider_app bpfloader:bpf { map_read map_write prog_run };
+
+# boot animations on oem are stored with specific label
+allow mediaprovider_app bootanim_oem_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/private/mediaserver.te"
+typeattribute mediaserver coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init mediaserver_exec:file { getattr open read execute map };
+#line 3
+allow init mediaserver:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow mediaserver mediaserver_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init mediaserver:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init mediaserver:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init mediaserver_exec:process mediaserver;
+#line 3
+
+#line 3
+
+
+#line 4
+type_transition mediaserver tmpfs:file mediaserver_tmpfs;
+#line 4
+allow mediaserver mediaserver_tmpfs:file { read write getattr map };
+#line 4
+
+allow mediaserver appdomain_tmpfs:file { getattr map read write };
+
+# allocate and use graphic buffers
+
+#line 8
+typeattribute mediaserver halclientdomain;
+#line 8
+typeattribute mediaserver hal_graphics_allocator_client;
+#line 8
+
+#line 8
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 8
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 8
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 8
+
+#line 8
+typeattribute mediaserver hal_graphics_allocator;
+#line 8
+# Find passthrough HAL implementations
+#line 8
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 8
+
+#line 8
+
+
+#line 9
+typeattribute mediaserver halclientdomain;
+#line 9
+typeattribute mediaserver hal_configstore_client;
+#line 9
+
+#line 9
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 9
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 9
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 9
+
+#line 9
+typeattribute mediaserver hal_configstore;
+#line 9
+# Find passthrough HAL implementations
+#line 9
+allow hal_configstore system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_configstore vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_configstore vendor_file:file { read open getattr execute map };
+#line 9
+
+#line 9
+
+
+#line 10
+typeattribute mediaserver halclientdomain;
+#line 10
+typeattribute mediaserver hal_drm_client;
+#line 10
+
+#line 10
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 10
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 10
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 10
+
+#line 10
+typeattribute mediaserver hal_drm;
+#line 10
+# Find passthrough HAL implementations
+#line 10
+allow hal_drm system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow hal_drm vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 10
+allow hal_drm vendor_file:file { read open getattr execute map };
+#line 10
+
+#line 10
+
+
+#line 11
+typeattribute mediaserver halclientdomain;
+#line 11
+typeattribute mediaserver hal_omx_client;
+#line 11
+
+#line 11
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 11
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 11
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 11
+
+#line 11
+typeattribute mediaserver hal_omx;
+#line 11
+# Find passthrough HAL implementations
+#line 11
+allow hal_omx system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_omx vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_omx vendor_file:file { read open getattr execute map };
+#line 11
+
+#line 11
+
+
+#line 12
+typeattribute mediaserver halclientdomain;
+#line 12
+typeattribute mediaserver hal_codec2_client;
+#line 12
+
+#line 12
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 12
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 12
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 12
+
+#line 12
+typeattribute mediaserver hal_codec2;
+#line 12
+# Find passthrough HAL implementations
+#line 12
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 12
+
+#line 12
+
+
+
+#line 14
+
+#line 14
+allow mediaserver property_socket:sock_file write;
+#line 14
+allow mediaserver init:unix_stream_socket connectto;
+#line 14
+
+#line 14
+allow mediaserver audio_prop:property_service set;
+#line 14
+
+#line 14
+allow mediaserver audio_prop:file { getattr open read map };
+#line 14
+
+#line 14
+
+
+
+#line 16
+allow mediaserver drm_service_config_prop:file { getattr open read map };
+#line 16
+
+
+#line 17
+allow mediaserver media_config_prop:file { getattr open read map };
+#line 17
+
+
+# Allow MediaCodec running on mediaserver to read media_native flags
+
+#line 20
+allow mediaserver device_config_media_native_prop:file { getattr open read map };
+#line 20
+
+
+# Allow mediaserver to start media.transcoding service via ctl.start.
+
+#line 23
+
+#line 23
+allow mediaserver property_socket:sock_file write;
+#line 23
+allow mediaserver init:unix_stream_socket connectto;
+#line 23
+
+#line 23
+allow mediaserver ctl_mediatranscoding_prop:property_service set;
+#line 23
+
+#line 23
+allow mediaserver ctl_mediatranscoding_prop:file { getattr open read map };
+#line 23
+
+#line 23
+;
+
+# Allow mediaserver to read SDK sandbox data files
+allow mediaserver sdk_sandbox_data_file:file { getattr read };
+
+# Needed for stats callback registration to statsd.
+allow mediaserver stats_service:service_manager find;
+allow mediaserver statsmanager_service:service_manager find;
+
+#line 31
+# Call the server domain and optionally transfer references to it.
+#line 31
+allow mediaserver statsd:binder { call transfer };
+#line 31
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 31
+allow statsd mediaserver:binder transfer;
+#line 31
+# Receive and use open files from the server.
+#line 31
+allow mediaserver statsd:fd use;
+#line 31
+
+
+# Allow mediaserver to communicate with Surface provided
+# by virtual camera.
+
+#line 35
+# Call the server domain and optionally transfer references to it.
+#line 35
+allow mediaserver virtual_camera:binder { call transfer };
+#line 35
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 35
+allow virtual_camera mediaserver:binder transfer;
+#line 35
+# Receive and use open files from the server.
+#line 35
+allow mediaserver virtual_camera:fd use;
+#line 35
+
+#line 1 "system/sepolicy/private/mediaswcodec.te"
+typeattribute mediaswcodec coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init mediaswcodec_exec:file { getattr open read execute map };
+#line 3
+allow init mediaswcodec:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow mediaswcodec mediaswcodec_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init mediaswcodec:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init mediaswcodec:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init mediaswcodec_exec:process mediaswcodec;
+#line 3
+
+#line 3
+
+
+
+#line 5
+allow mediaswcodec device_config_media_native_prop:file { getattr open read map };
+#line 5
+
+
+#line 6
+allow mediaswcodec device_config_swcodec_native_prop:file { getattr open read map };
+#line 6
+
+#line 1 "system/sepolicy/private/mediatranscoding.te"
+# mediatranscoding - daemon for transcoding video and image.
+type mediatranscoding_exec, system_file_type, exec_type, file_type;
+type mediatranscoding_tmpfs, file_type;
+typeattribute mediatranscoding coredomain;
+
+
+#line 6
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init mediatranscoding_exec:file { getattr open read execute map };
+#line 6
+allow init mediatranscoding:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow mediatranscoding mediatranscoding_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init mediatranscoding:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init mediatranscoding:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition init mediatranscoding_exec:process mediatranscoding;
+#line 6
+
+#line 6
+
+
+#line 7
+type_transition mediatranscoding tmpfs:file mediatranscoding_tmpfs;
+#line 7
+allow mediatranscoding mediatranscoding_tmpfs:file { read write getattr map };
+#line 7
+
+allow mediatranscoding appdomain_tmpfs:file { getattr map read write };
+
+
+#line 10
+# Call the servicemanager and transfer references to it.
+#line 10
+allow mediatranscoding servicemanager:binder { call transfer };
+#line 10
+# Allow servicemanager to send out callbacks
+#line 10
+allow servicemanager mediatranscoding:binder { call transfer };
+#line 10
+# servicemanager performs getpidcon on clients.
+#line 10
+allow servicemanager mediatranscoding:dir search;
+#line 10
+allow servicemanager mediatranscoding:file { read open };
+#line 10
+allow servicemanager mediatranscoding:process getattr;
+#line 10
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 10
+# all domains in domain.te.
+#line 10
+
+
+#line 11
+# Call the server domain and optionally transfer references to it.
+#line 11
+allow mediatranscoding binderservicedomain:binder { call transfer };
+#line 11
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 11
+allow binderservicedomain mediatranscoding:binder transfer;
+#line 11
+# Receive and use open files from the server.
+#line 11
+allow mediatranscoding binderservicedomain:fd use;
+#line 11
+
+
+#line 12
+# Call the server domain and optionally transfer references to it.
+#line 12
+allow mediatranscoding appdomain:binder { call transfer };
+#line 12
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 12
+allow appdomain mediatranscoding:binder transfer;
+#line 12
+# Receive and use open files from the server.
+#line 12
+allow mediatranscoding appdomain:fd use;
+#line 12
+
+
+#line 13
+typeattribute mediatranscoding binderservicedomain;
+#line 13
+
+
+
+#line 15
+  allow mediatranscoding mediatranscoding_service:service_manager { add find };
+#line 15
+  neverallow { domain -mediatranscoding } mediatranscoding_service:service_manager add;
+#line 15
+
+#line 15
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 15
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 15
+  
+#line 15
+
+
+
+#line 17
+typeattribute mediatranscoding halclientdomain;
+#line 17
+typeattribute mediatranscoding hal_graphics_allocator_client;
+#line 17
+
+#line 17
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 17
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 17
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 17
+
+#line 17
+typeattribute mediatranscoding hal_graphics_allocator;
+#line 17
+# Find passthrough HAL implementations
+#line 17
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 17
+
+#line 17
+
+
+#line 18
+typeattribute mediatranscoding halclientdomain;
+#line 18
+typeattribute mediatranscoding hal_configstore_client;
+#line 18
+
+#line 18
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 18
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 18
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 18
+
+#line 18
+typeattribute mediatranscoding hal_configstore;
+#line 18
+# Find passthrough HAL implementations
+#line 18
+allow hal_configstore system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow hal_configstore vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow hal_configstore vendor_file:file { read open getattr execute map };
+#line 18
+
+#line 18
+
+
+#line 19
+typeattribute mediatranscoding halclientdomain;
+#line 19
+typeattribute mediatranscoding hal_omx_client;
+#line 19
+
+#line 19
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 19
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 19
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 19
+
+#line 19
+typeattribute mediatranscoding hal_omx;
+#line 19
+# Find passthrough HAL implementations
+#line 19
+allow hal_omx system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_omx vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_omx vendor_file:file { read open getattr execute map };
+#line 19
+
+#line 19
+
+
+#line 20
+typeattribute mediatranscoding halclientdomain;
+#line 20
+typeattribute mediatranscoding hal_codec2_client;
+#line 20
+
+#line 20
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 20
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 20
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 20
+
+#line 20
+typeattribute mediatranscoding hal_codec2;
+#line 20
+# Find passthrough HAL implementations
+#line 20
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 20
+
+#line 20
+
+
+#line 21
+typeattribute mediatranscoding halclientdomain;
+#line 21
+typeattribute mediatranscoding hal_allocator_client;
+#line 21
+
+#line 21
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 21
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 21
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 21
+
+#line 21
+typeattribute mediatranscoding hal_allocator;
+#line 21
+# Find passthrough HAL implementations
+#line 21
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 21
+
+#line 21
+
+
+allow mediatranscoding mediaserver_service:service_manager find;
+allow mediatranscoding mediametrics_service:service_manager find;
+allow mediatranscoding mediaextractor_service:service_manager find;
+allow mediatranscoding package_native_service:service_manager find;
+allow mediatranscoding thermal_service:service_manager find;
+
+allow mediatranscoding system_server:fd use;
+allow mediatranscoding activity_service:service_manager find;
+
+# allow mediatranscoding service read/write permissions for file sources
+allow mediatranscoding sdcardfs:file { getattr read write };
+allow mediatranscoding media_rw_data_file:file { getattr read write };
+allow mediatranscoding apk_data_file:file { getattr read };
+allow mediatranscoding app_data_file:file { getattr read write };
+allow mediatranscoding shell_data_file:file { getattr read write };
+
+# allow mediatranscoding service write permission to statsd socket
+
+#line 40
+allow mediatranscoding statsdw_socket:sock_file write;
+#line 40
+allow mediatranscoding statsd:unix_dgram_socket sendto;
+#line 40
+
+
+# Allow mediatranscoding to access the DMA-BUF system heap
+allow mediatranscoding dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+allow mediatranscoding gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow mediatranscoding gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow mediatranscoding service to access media-related system properties
+
+#line 49
+allow mediatranscoding media_config_prop:file { getattr open read map };
+#line 49
+
+
+# mediatranscoding should never execute any executable without a
+# domain transition
+neverallow mediatranscoding { file_type fs_type }:file execute_no_trans;
+
+# The goal of the mediaserver split is to place media processing code into
+# restrictive sandboxes with limited responsibilities and thus limited
+# permissions. Example: Audioserver is only responsible for controlling audio
+# hardware and processing audio content. Cameraserver does the same for camera
+# hardware/content. Etc.
+#
+# Media processing code is inherently risky and thus should have limited
+# permissions and be isolated from the rest of the system and network.
+# Lengthier explanation here:
+# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
+neverallow mediatranscoding domain:{ udp_socket rawip_socket } *;
+neverallow mediatranscoding { domain  }:tcp_socket *;
+#line 1 "system/sepolicy/private/mediatuner.te"
+# mediatuner - mediatuner daemon
+type mediatuner, domain;
+type mediatuner_exec, system_file_type, exec_type, file_type;
+
+typeattribute mediatuner coredomain;
+
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init mediatuner_exec:file { getattr open read execute map };
+#line 7
+allow init mediatuner:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow mediatuner mediatuner_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init mediatuner:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init mediatuner:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init mediatuner_exec:process mediatuner;
+#line 7
+
+#line 7
+
+
+#line 8
+typeattribute mediatuner halclientdomain;
+#line 8
+typeattribute mediatuner hal_tv_tuner_client;
+#line 8
+
+#line 8
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 8
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 8
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 8
+
+#line 8
+typeattribute mediatuner hal_tv_tuner;
+#line 8
+# Find passthrough HAL implementations
+#line 8
+allow hal_tv_tuner system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow hal_tv_tuner vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow hal_tv_tuner vendor_file:file { read open getattr execute map };
+#line 8
+
+#line 8
+
+
+
+#line 10
+# Call the servicemanager and transfer references to it.
+#line 10
+allow mediatuner servicemanager:binder { call transfer };
+#line 10
+# Allow servicemanager to send out callbacks
+#line 10
+allow servicemanager mediatuner:binder { call transfer };
+#line 10
+# servicemanager performs getpidcon on clients.
+#line 10
+allow servicemanager mediatuner:dir search;
+#line 10
+allow servicemanager mediatuner:file { read open };
+#line 10
+allow servicemanager mediatuner:process getattr;
+#line 10
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 10
+# all domains in domain.te.
+#line 10
+
+
+#line 11
+# Call the server domain and optionally transfer references to it.
+#line 11
+allow mediatuner appdomain:binder { call transfer };
+#line 11
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 11
+allow appdomain mediatuner:binder transfer;
+#line 11
+# Receive and use open files from the server.
+#line 11
+allow mediatuner appdomain:fd use;
+#line 11
+
+
+#line 12
+typeattribute mediatuner binderservicedomain;
+#line 12
+
+
+
+#line 14
+  allow mediatuner mediatuner_service:service_manager { add find };
+#line 14
+  neverallow { domain -mediatuner } mediatuner_service:service_manager add;
+#line 14
+
+#line 14
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 14
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 14
+  
+#line 14
+
+allow mediatuner system_server:fd use;
+allow mediatuner tv_tuner_resource_mgr_service:service_manager find;
+allow mediatuner package_native_service:service_manager find;
+
+#line 18
+# Call the server domain and optionally transfer references to it.
+#line 18
+allow mediatuner system_server:binder { call transfer };
+#line 18
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 18
+allow system_server mediatuner:binder transfer;
+#line 18
+# Receive and use open files from the server.
+#line 18
+allow mediatuner system_server:fd use;
+#line 18
+
+
+# Read ro.tuner.lazyhal
+
+#line 21
+allow mediatuner tuner_config_prop:file { getattr open read map };
+#line 21
+
+
+# Read tuner.server.enable
+
+#line 24
+allow mediatuner tuner_server_ctl_prop:file { getattr open read map };
+#line 24
+
+
+###
+### neverallow rules
+###
+
+# mediatuner should never execute any executable without a
+# domain transition
+neverallow mediatuner { file_type fs_type }:file execute_no_trans;
+
+# do not allow privileged socket ioctl commands
+neverallowxperm mediatuner domain:{ rawip_socket tcp_socket udp_socket } ioctl 
+#line 35
+{
+#line 35
+# qualcomm rmnet ioctls
+#line 35
+0x00006900 0x00006902
+#line 35
+# socket ioctls
+#line 35
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 35
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 35
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 35
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 35
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 35
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 35
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 35
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 35
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 35
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 35
+# device and protocol specific ioctls
+#line 35
+0x000089f0-0x000089ff
+#line 35
+0x000089e0-0x000089ef
+#line 35
+# Wireless extension ioctls
+#line 35
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 35
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 35
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 35
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 35
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 35
+0x00008b34 0x00008b35 0x00008b36
+#line 35
+# Dev private ioctl i.e. hardware specific ioctls
+#line 35
+0x00008be0-0x00008bff
+#line 35
+};
+
+#line 1 "system/sepolicy/private/migrate_legacy_obb_data.te"
+type migrate_legacy_obb_data, domain, coredomain;
+type migrate_legacy_obb_data_exec, system_file_type, exec_type, file_type;
+
+allow migrate_legacy_obb_data media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow migrate_legacy_obb_data media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow migrate_legacy_obb_data shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+allow migrate_legacy_obb_data toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+allow migrate_legacy_obb_data self:capability { chown dac_override dac_read_search fowner fsetid };
+
+allow migrate_legacy_obb_data mnt_user_file:dir search;
+allow migrate_legacy_obb_data mnt_user_file:lnk_file read;
+allow migrate_legacy_obb_data storage_file:dir search;
+allow migrate_legacy_obb_data storage_file:lnk_file read;
+
+allow migrate_legacy_obb_data sdcard_type:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow migrate_legacy_obb_data sdcard_type:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# TODO: This should not be necessary. We don't deliberately hand over
+# any open file descriptors to this domain, so anything that triggers this
+# should be a candidate for O_CLOEXEC.
+allow migrate_legacy_obb_data installd:fd use;
+
+# This rule is required to let this process read /proc/{parent_pid}/mount.
+# TODO: Why is this required ?
+allow migrate_legacy_obb_data installd:file read;
+#line 1 "system/sepolicy/private/misctrl.te"
+# binary for generic misc partition management
+type misctrl, domain, coredomain;
+type misctrl_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init misctrl_exec:file { getattr open read execute map };
+#line 5
+allow init misctrl:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow misctrl misctrl_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init misctrl:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init misctrl:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init misctrl_exec:process misctrl;
+#line 5
+
+#line 5
+
+
+allow misctrl misc_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow misctrl block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+#line 9
+  allow misctrl { metadata_file gsi_metadata_file_type }:dir search;
+#line 9
+  allow misctrl gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 9
+  allow misctrl { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 9
+
+
+
+#line 11
+
+#line 11
+allow misctrl property_socket:sock_file write;
+#line 11
+allow misctrl init:unix_stream_socket connectto;
+#line 11
+
+#line 11
+allow misctrl misctrl_prop:property_service set;
+#line 11
+
+#line 11
+allow misctrl misctrl_prop:file { getattr open read map };
+#line 11
+
+#line 11
+
+
+# bootloader_message tries to find the fstab in the device config path first,
+# but because we've already booted up we can use the ro.boot properties instead,
+# so we can just ignore the SELinux denial.
+dontaudit misctrl sysfs_dt_firmware_android:dir search;
+dontaudit misctrl vendor_property_type:file read;
+#line 1 "system/sepolicy/private/mlstrustedsubject.te"
+# MLS override can't be used to access private app data.
+
+# Apps should not normally be mlstrustedsubject, but if they must be
+# they cannot use this to access app private data files; their own app
+# data files must use a different label.
+
+neverallow {
+  mlstrustedsubject
+  -artd # compile secondary dex files
+  -installd
+} { app_data_file privapp_data_file }:file ~{ read write map getattr ioctl lock append };
+
+neverallow {
+  mlstrustedsubject
+  -artd # compile secondary dex files
+  -installd
+} { app_data_file privapp_data_file }:dir ~{ read getattr search };
+
+neverallow {
+  mlstrustedsubject
+  -artd # compile secondary dex files
+  -installd
+  -system_server
+  -adbd
+  -runas
+  -zygote
+} { app_data_file privapp_data_file }:dir { read getattr search };
+#line 1 "system/sepolicy/private/mm_events.te"
+type mm_events, domain, coredomain;
+type mm_events_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init mm_events_exec:file { getattr open read execute map };
+#line 4
+allow init mm_events:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow mm_events mm_events_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init mm_events:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init mm_events:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init mm_events_exec:process mm_events;
+#line 4
+
+#line 4
+
+
+allow mm_events shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow running the sleep command to rate limit attempts
+# to arm mm_events on failure.
+allow mm_events toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+allow mm_events perfetto_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+
+#line 14
+# Allow the necessary permissions.
+#line 14
+
+#line 14
+# Old domain may exec the file and transition to the new domain.
+#line 14
+allow mm_events perfetto_exec:file { getattr open read execute map };
+#line 14
+allow mm_events perfetto:process transition;
+#line 14
+# New domain is entered by executing the file.
+#line 14
+allow perfetto perfetto_exec:file { entrypoint open read execute getattr map };
+#line 14
+# New domain can send SIGCHLD to its caller.
+#line 14
+allow perfetto mm_events:process sigchld;
+#line 14
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 14
+dontaudit mm_events perfetto:process noatsecure;
+#line 14
+# XXX dontaudit candidate but requires further study.
+#line 14
+allow mm_events perfetto:process { siginh rlimitinh };
+#line 14
+
+#line 14
+# Make the transition occur by default.
+#line 14
+type_transition mm_events perfetto_exec:process perfetto;
+#line 14
+
+#line 1 "system/sepolicy/private/modprobe.te"
+typeattribute modprobe coredomain;
+#line 1 "system/sepolicy/private/mtectrl.te"
+# mtectrl is a tool to request MTE (Memory Tagging Extensions) from the bootloader.
+type mtectrl, domain, coredomain;
+type mtectrl_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init mtectrl_exec:file { getattr open read execute map };
+#line 5
+allow init mtectrl:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow mtectrl mtectrl_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init mtectrl:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init mtectrl:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init mtectrl_exec:process mtectrl;
+#line 5
+
+#line 5
+
+
+# to set the sys prop to match the bootloader message state.
+
+#line 8
+
+#line 8
+allow mtectrl property_socket:sock_file write;
+#line 8
+allow mtectrl init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow mtectrl arm64_memtag_prop:property_service set;
+#line 8
+
+#line 8
+allow mtectrl arm64_memtag_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+
+# mtectrl communicates the request to the bootloader via the misc partition.
+# needs to write to update the request in misc partition, and read to sync
+# back to the property.
+allow mtectrl misc_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow mtectrl block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+#line 15
+  allow mtectrl { metadata_file gsi_metadata_file_type }:dir search;
+#line 15
+  allow mtectrl gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 15
+  allow mtectrl { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 15
+
+
+# bootloader_message tries to find the fstab in the device config path first,
+# but because we've already booted up we can use the ro.boot properties instead,
+# so we can just ignore the SELinux denial.
+dontaudit mtectrl sysfs_dt_firmware_android:dir search;
+dontaudit mtectrl vendor_property_type:file read;
+#line 1 "system/sepolicy/private/net.te"
+# Bind to ports.
+allow {netdomain -ephemeral_app -sdk_sandbox_all} node_type:{ icmp_socket rawip_socket tcp_socket udp_socket } node_bind;
+allow {netdomain -ephemeral_app -sdk_sandbox_all} port_type:udp_socket name_bind;
+allow {netdomain -ephemeral_app -sdk_sandbox_all} port_type:tcp_socket name_bind;
+
+# b/141455849 gate RTM_GETLINK with a new permission nlmsg_readpriv and block access from
+# untrusted_apps.
+# b/171572148 gate RTM_GETNEIGH{TBL} with a new permission nlmsg_getneigh and block access from
+# untrusted_apps. Some untrusted apps (e.g. untrusted_app_25-30) are granted access elsewhere
+# to avoid app-compat breakage.
+allow {
+  netdomain
+  -ephemeral_app
+  -mediaprovider
+  -priv_app
+  -sdk_sandbox_all
+  -untrusted_app_all
+} self:netlink_route_socket { bind nlmsg_readpriv nlmsg_getneigh };
+
+#line 1 "system/sepolicy/private/netd.te"
+typeattribute netd coredomain;
+typeattribute netd bpfdomain;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init netd_exec:file { getattr open read execute map };
+#line 4
+allow init netd:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow netd netd_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init netd:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init netd:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init netd_exec:process netd;
+#line 4
+
+#line 4
+
+
+# Allow netd to spawn dnsmasq in it's own domain
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow netd dnsmasq_exec:file { getattr open read execute map };
+#line 7
+allow netd dnsmasq:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow dnsmasq dnsmasq_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+allow dnsmasq netd:process sigchld;
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit netd dnsmasq:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow netd dnsmasq:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition netd dnsmasq_exec:process dnsmasq;
+#line 7
+
+
+allow netd { fs_bpf fs_bpf_netd_readonly fs_bpf_netd_shared fs_bpf_vendor }:dir search;
+allow netd { fs_bpf fs_bpf_netd_readonly fs_bpf_netd_shared fs_bpf_vendor }:file { getattr read };
+allow netd { fs_bpf                      fs_bpf_netd_shared               }:file write;
+
+# give netd permission to setup iptables rule with xt_bpf, attach program to cgroup, and read/write
+# the map created by bpfloader
+allow netd bpfloader:bpf { prog_run map_read map_write };
+
+# in order to invoke side effect of close() on such a socket calling synchronize_rcu()
+# TODO: Remove this permission when 4.9 kernel is deprecated.
+# TODO: Remove this after we remove all bpf interactions from netd.
+allow netd self:key_socket create;
+
+
+#line 22
+
+#line 22
+allow netd property_socket:sock_file write;
+#line 22
+allow netd init:unix_stream_socket connectto;
+#line 22
+
+#line 22
+allow netd ctl_mdnsd_prop:property_service set;
+#line 22
+
+#line 22
+allow netd ctl_mdnsd_prop:file { getattr open read map };
+#line 22
+
+#line 22
+
+
+#line 23
+
+#line 23
+allow netd property_socket:sock_file write;
+#line 23
+allow netd init:unix_stream_socket connectto;
+#line 23
+
+#line 23
+allow netd netd_stable_secret_prop:property_service set;
+#line 23
+
+#line 23
+allow netd netd_stable_secret_prop:file { getattr open read map };
+#line 23
+
+#line 23
+
+
+
+#line 25
+allow netd adbd_config_prop:file { getattr open read map };
+#line 25
+
+
+#line 26
+allow netd hwservicemanager_prop:file { getattr open read map };
+#line 26
+
+
+#line 27
+allow netd device_config_netd_native_prop:file { getattr open read map };
+#line 27
+
+
+# Allow netd to write to statsd.
+
+#line 30
+allow netd statsdw_socket:sock_file write;
+#line 30
+allow netd statsd:unix_dgram_socket sendto;
+#line 30
+
+
+# Allow netd to send callbacks to network_stack
+
+#line 33
+# Call the server domain and optionally transfer references to it.
+#line 33
+allow netd network_stack:binder { call transfer };
+#line 33
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 33
+allow network_stack netd:binder transfer;
+#line 33
+# Receive and use open files from the server.
+#line 33
+allow netd network_stack:fd use;
+#line 33
+
+
+# Allow netd to send dump info to dumpstate
+allow netd dumpstate:fd use;
+allow netd dumpstate:fifo_file { getattr write };
+
+# persist.netd.stable_secret contains RFC 7217 secret key which should never be
+# leaked to other processes. Make sure it never leaks.
+neverallow { domain -netd -init -dumpstate } netd_stable_secret_prop:file { getattr open read ioctl lock map watch watch_reads };
+
+# We want to ensure that no other process ever tries tampering with persist.netd.stable_secret,
+# the RFC 7217 secret key managed by netd. Doing so could compromise user privacy.
+neverallow { domain -netd -init } netd_stable_secret_prop:property_service set;
+#line 1 "system/sepolicy/private/netutils_wrapper.te"
+typeattribute netutils_wrapper coredomain;
+typeattribute netutils_wrapper bpfdomain;
+
+
+#line 4
+allow netutils_wrapper system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 4
+allow netutils_wrapper system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 4
+;
+
+# For netutils (ip, iptables, tc)
+allow netutils_wrapper self:{ capability cap_userns } net_raw;
+
+allow netutils_wrapper system_file:file { execute execute_no_trans };
+allow netutils_wrapper proc_net_type:file { open read getattr };
+allow netutils_wrapper self:rawip_socket { create { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow netutils_wrapper self:udp_socket { create { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow netutils_wrapper self:{ capability cap_userns } net_admin;
+# ip utils need everything but ioctl
+allow netutils_wrapper self:netlink_route_socket ~ioctl;
+allow netutils_wrapper self:netlink_xfrm_socket ~ioctl;
+
+# For netutils (ndc) to be able to talk to netd
+allow netutils_wrapper netd_service:service_manager find;
+allow netutils_wrapper dnsresolver_service:service_manager find;
+allow netutils_wrapper mdns_service:service_manager find;
+
+#line 22
+# Call the servicemanager and transfer references to it.
+#line 22
+allow netutils_wrapper servicemanager:binder { call transfer };
+#line 22
+# Allow servicemanager to send out callbacks
+#line 22
+allow servicemanager netutils_wrapper:binder { call transfer };
+#line 22
+# servicemanager performs getpidcon on clients.
+#line 22
+allow servicemanager netutils_wrapper:dir search;
+#line 22
+allow servicemanager netutils_wrapper:file { read open };
+#line 22
+allow servicemanager netutils_wrapper:process getattr;
+#line 22
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 22
+# all domains in domain.te.
+#line 22
+;
+
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow netutils_wrapper netd:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow netd netutils_wrapper:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow netutils_wrapper netd:fd use;
+#line 23
+;
+
+# For vendor code that update the iptables rules at runtime. They need to reload
+# the whole chain including the xt_bpf rules. They need to access to the pinned
+# program when reloading the rule.
+allow netutils_wrapper { fs_bpf fs_bpf_netd_shared fs_bpf_vendor }:dir search;
+allow netutils_wrapper { fs_bpf fs_bpf_netd_shared fs_bpf_vendor }:file { getattr read };
+allow netutils_wrapper { fs_bpf                                  }:file write;
+allow netutils_wrapper bpfloader:bpf prog_run;
+
+# For /data/misc/net access to ndc and ip
+
+#line 34
+allow netutils_wrapper net_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 34
+allow netutils_wrapper net_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 34
+
+
+
+#line 36
+# Allow the necessary permissions.
+#line 36
+
+#line 36
+# Old domain may exec the file and transition to the new domain.
+#line 36
+allow {
+#line 36
+    domain
+#line 36
+    -coredomain
+#line 36
+    -appdomain
+#line 36
+} netutils_wrapper_exec:file { getattr open read execute map };
+#line 36
+allow {
+#line 36
+    domain
+#line 36
+    -coredomain
+#line 36
+    -appdomain
+#line 36
+} netutils_wrapper:process transition;
+#line 36
+# New domain is entered by executing the file.
+#line 36
+allow netutils_wrapper netutils_wrapper_exec:file { entrypoint open read execute getattr map };
+#line 36
+# New domain can send SIGCHLD to its caller.
+#line 36
+allow netutils_wrapper {
+#line 36
+    domain
+#line 36
+    -coredomain
+#line 36
+    -appdomain
+#line 36
+}:process sigchld;
+#line 36
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 36
+dontaudit {
+#line 36
+    domain
+#line 36
+    -coredomain
+#line 36
+    -appdomain
+#line 36
+} netutils_wrapper:process noatsecure;
+#line 36
+# XXX dontaudit candidate but requires further study.
+#line 36
+allow {
+#line 36
+    domain
+#line 36
+    -coredomain
+#line 36
+    -appdomain
+#line 36
+} netutils_wrapper:process { siginh rlimitinh };
+#line 36
+
+#line 36
+# Make the transition occur by default.
+#line 36
+type_transition {
+#line 36
+    domain
+#line 36
+    -coredomain
+#line 36
+    -appdomain
+#line 36
+} netutils_wrapper_exec:process netutils_wrapper;
+#line 40
+
+
+# suppress spurious denials
+dontaudit netutils_wrapper self:{ capability cap_userns } sys_resource;
+dontaudit netutils_wrapper sysfs_type:file read;
+
+# netutils wrapper may only use the following capabilities.
+neverallow netutils_wrapper self:{ capability cap_userns } ~{ net_admin net_raw };
+#line 1 "system/sepolicy/private/network_stack.te"
+# Networking service app
+typeattribute network_stack coredomain;
+typeattribute network_stack mlstrustedsubject;
+typeattribute network_stack bpfdomain;
+
+
+#line 6
+typeattribute network_stack appdomain;
+#line 6
+# Label tmpfs objects for all apps.
+#line 6
+type_transition network_stack tmpfs:file appdomain_tmpfs;
+#line 6
+
+#line 6
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 6
+type network_stack_userfaultfd;
+#line 6
+type_transition network_stack network_stack:anon_inode network_stack_userfaultfd "[userfaultfd]";
+#line 6
+# Allow domain to create/use userfaultfd anon_inode.
+#line 6
+allow network_stack network_stack_userfaultfd:anon_inode { create ioctl read };
+#line 6
+# Suppress errors generate during bugreport
+#line 6
+dontaudit su network_stack_userfaultfd:anon_inode *;
+#line 6
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 6
+neverallow { domain -network_stack } network_stack_userfaultfd:anon_inode *;
+#line 6
+
+#line 6
+allow network_stack appdomain_tmpfs:file { execute getattr map read write };
+#line 6
+neverallow { network_stack -runas_app -shell -simpleperf } { domain -network_stack }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+neverallow { appdomain -runas_app -shell -simpleperf -network_stack } network_stack:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+# The Android security model guarantees the confidentiality and integrity
+#line 6
+# of application data and execution state. Ptrace bypasses those
+#line 6
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 6
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 6
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 6
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 6
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 6
+# live lock conditions.
+#line 6
+neverallow { domain -network_stack -crash_dump  -runas_app -simpleperf } network_stack:process ptrace;
+#line 6
+;
+
+#line 7
+typeattribute network_stack netdomain;
+#line 7
+;
+
+allow network_stack self:{ capability cap_userns } {
+    net_admin
+    net_bind_service
+    net_broadcast
+    net_raw
+};
+
+allow network_stack self:{ capability2 cap2_userns } wake_alarm;
+
+# Allow access to net_admin ioctl, DHCP server uses SIOCSARP
+allowxperm network_stack self:udp_socket ioctl 
+#line 19
+{
+#line 19
+# qualcomm rmnet ioctls
+#line 19
+0x00006900 0x00006902
+#line 19
+# socket ioctls
+#line 19
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 19
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 19
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 19
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 19
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 19
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 19
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 19
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 19
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 19
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 19
+# device and protocol specific ioctls
+#line 19
+0x000089f0-0x000089ff
+#line 19
+0x000089e0-0x000089ef
+#line 19
+# Wireless extension ioctls
+#line 19
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 19
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 19
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 19
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 19
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 19
+0x00008b34 0x00008b35 0x00008b36
+#line 19
+# Dev private ioctl i.e. hardware specific ioctls
+#line 19
+0x00008be0-0x00008bff
+#line 19
+};
+
+# The DhcpClient uses packet_sockets
+allow network_stack self:packet_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Monitor neighbors via netlink.
+allow network_stack self:netlink_route_socket nlmsg_write;
+
+# Use netlink uevent sockets.
+allow network_stack self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# give network_stack the same netlink permissions as netd
+allow network_stack self:netlink_nflog_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow network_stack self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow network_stack self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+allow network_stack app_api_service:service_manager find;
+allow network_stack dnsresolver_service:service_manager find;
+allow network_stack mdns_service:service_manager find;
+allow network_stack netd_service:service_manager find;
+allow network_stack network_watchlist_service:service_manager find;
+allow network_stack radio_service:service_manager find;
+allow network_stack system_config_service:service_manager find;
+allow network_stack radio_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow network_stack radio_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+
+#line 45
+# Call the server domain and optionally transfer references to it.
+#line 45
+allow network_stack netd:binder { call transfer };
+#line 45
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 45
+allow netd network_stack:binder transfer;
+#line 45
+# Receive and use open files from the server.
+#line 45
+allow network_stack netd:fd use;
+#line 45
+;
+
+# in order to invoke side effect of close() on such a socket calling synchronize_rcu()
+allow network_stack self:key_socket create;
+# Java's Os.close() in libcore/luni/src/main/java/libcore/io/BlockGuardOs.java;l=100
+# calls if (fd.isSocket$()) if (isLingerSocket(fd)) ...
+dontaudit network_stack self:key_socket getopt;
+
+# Grant read permission of connectivity namespace system property prefix.
+
+#line 54
+allow network_stack device_config_connectivity_prop:file { getattr open read map };
+#line 54
+
+
+# Create/use netlink_tcpdiag_socket to get tcp info
+allow network_stack self:netlink_tcpdiag_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_read nlmsg_write };
+############### Tethering Service app - Tethering.apk ##############
+
+#line 59
+typeattribute network_stack halclientdomain;
+#line 59
+typeattribute network_stack hal_tetheroffload_client;
+#line 59
+
+#line 59
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 59
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 59
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 59
+
+#line 59
+typeattribute network_stack hal_tetheroffload;
+#line 59
+# Find passthrough HAL implementations
+#line 59
+allow hal_tetheroffload system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 59
+allow hal_tetheroffload vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 59
+allow hal_tetheroffload vendor_file:file { read open getattr execute map };
+#line 59
+
+#line 59
+
+# Create and share netlink_netfilter_sockets for tetheroffload.
+allow network_stack self:netlink_netfilter_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow network_stack network_stack_service:service_manager find;
+# allow Tethering(network_stack process) to run/update/read the eBPF maps to offload tethering traffic by eBPF.
+allow network_stack { fs_bpf_net_private fs_bpf_net_shared fs_bpf_netd_readonly fs_bpf_netd_shared fs_bpf_tethering }:dir search;
+allow network_stack { fs_bpf_net_private fs_bpf_net_shared fs_bpf_netd_readonly fs_bpf_netd_shared fs_bpf_tethering }:file { getattr read write };
+allow network_stack bpfloader:bpf { map_read map_write prog_run };
+# allow Tethering(network_stack process) to read flag value in tethering_u_or_later_native namespace
+
+#line 68
+allow network_stack device_config_tethering_u_or_later_native_prop:file { getattr open read map };
+#line 68
+
+
+# Use XFRM (IPsec) netlink sockets
+allow network_stack self:netlink_xfrm_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_write nlmsg_read };
+
+# tun device used for 3rd party vpn apps and test network manager
+allow network_stack tun_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm network_stack tun_device:chr_file ioctl { 0x800454d2 0x400454ca 0x400454cd 0x400454e2 };
+
+############### NEVER ALLOW RULES
+# This place is as good as any for these rules,
+# and it is probably the most appropriate because
+# network_stack itself is entirely mainline code.
+
+# T+: Only the bpfloader and the network_stack should ever touch 'fs_bpf_net_private' programs/maps.
+neverallow { domain -bpfloader -network_stack } fs_bpf_net_private:dir ~getattr;
+neverallow { domain -bpfloader -network_stack } fs_bpf_net_private:file *;
+
+# T+: Only the bpfloader, network_stack and system_server should ever touch 'fs_bpf_net_shared' programs/maps.
+neverallow { domain -bpfloader -network_stack -system_server } fs_bpf_net_shared:dir ~getattr;
+neverallow { domain -bpfloader -network_stack -system_server } fs_bpf_net_shared:file *;
+
+# T+: Only the bpfloader, netd, network_stack and system_server should ever touch 'fs_bpf_netd_readonly' programs/maps.
+# netd's access should be readonly
+neverallow { domain -bpfloader -netd -network_stack -system_server } fs_bpf_netd_readonly:dir ~getattr;
+neverallow { domain -bpfloader -netd -network_stack -system_server } fs_bpf_netd_readonly:file *;
+neverallow netd fs_bpf_netd_readonly:file write;
+
+# T+: Only the bpfloader, netd, netutils_wrapper, network_stack and system_server should ever touch 'fs_bpf_netd_shared' programs/maps.
+# netutils_wrapper requires access to be able to run iptables and only needs readonly access
+neverallow { domain -bpfloader -netd -netutils_wrapper -network_stack -system_server } fs_bpf_netd_shared:dir ~getattr;
+neverallow { domain -bpfloader -netd -netutils_wrapper -network_stack -system_server } fs_bpf_netd_shared:file *;
+neverallow netutils_wrapper fs_bpf_netd_shared:file write;
+
+# S+: Only the bpfloader and the network_stack should ever touch 'fs_bpf_tethering' programs/maps.
+neverallow { domain -bpfloader -network_stack } fs_bpf_tethering:dir ~getattr;
+neverallow { domain -bpfloader -network_stack } fs_bpf_tethering:file *;
+#line 1 "system/sepolicy/private/nfc.te"
+# nfc subsystem
+typeattribute nfc coredomain, mlstrustedsubject;
+
+#line 3
+typeattribute nfc appdomain;
+#line 3
+# Label tmpfs objects for all apps.
+#line 3
+type_transition nfc tmpfs:file appdomain_tmpfs;
+#line 3
+
+#line 3
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 3
+type nfc_userfaultfd;
+#line 3
+type_transition nfc nfc:anon_inode nfc_userfaultfd "[userfaultfd]";
+#line 3
+# Allow domain to create/use userfaultfd anon_inode.
+#line 3
+allow nfc nfc_userfaultfd:anon_inode { create ioctl read };
+#line 3
+# Suppress errors generate during bugreport
+#line 3
+dontaudit su nfc_userfaultfd:anon_inode *;
+#line 3
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 3
+neverallow { domain -nfc } nfc_userfaultfd:anon_inode *;
+#line 3
+
+#line 3
+allow nfc appdomain_tmpfs:file { execute getattr map read write };
+#line 3
+neverallow { nfc -runas_app -shell -simpleperf } { domain -nfc }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+neverallow { appdomain -runas_app -shell -simpleperf -nfc } nfc:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+# The Android security model guarantees the confidentiality and integrity
+#line 3
+# of application data and execution state. Ptrace bypasses those
+#line 3
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 3
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 3
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 3
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 3
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 3
+# live lock conditions.
+#line 3
+neverallow { domain -nfc -crash_dump  -runas_app -simpleperf } nfc:process ptrace;
+#line 3
+
+
+#line 4
+typeattribute nfc netdomain;
+#line 4
+
+
+
+#line 6
+typeattribute nfc binderservicedomain;
+#line 6
+
+
+#line 7
+  allow nfc nfc_service:service_manager { add find };
+#line 7
+  neverallow { domain -nfc } nfc_service:service_manager add;
+#line 7
+
+#line 7
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 7
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 7
+  
+#line 7
+
+
+
+#line 9
+typeattribute nfc halclientdomain;
+#line 9
+typeattribute nfc hal_nfc_client;
+#line 9
+
+#line 9
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 9
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 9
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 9
+
+#line 9
+typeattribute nfc hal_nfc;
+#line 9
+# Find passthrough HAL implementations
+#line 9
+allow hal_nfc system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_nfc vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_nfc vendor_file:file { read open getattr execute map };
+#line 9
+
+#line 9
+
+
+# Data file accesses.
+allow nfc nfc_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow nfc nfc_data_file:{ file lnk_file sock_file fifo_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow nfc nfc_logs_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow nfc nfc_logs_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# SoundPool loading and playback
+allow nfc audioserver_service:service_manager find;
+allow nfc drmserver_service:service_manager find;
+allow nfc mediametrics_service:service_manager find;
+allow nfc mediaextractor_service:service_manager find;
+allow nfc mediaserver_service:service_manager find;
+
+allow nfc radio_service:service_manager find;
+allow nfc app_api_service:service_manager find;
+allow nfc system_api_service:service_manager find;
+allow nfc vr_manager_service:service_manager find;
+allow nfc secure_element_service:service_manager find;
+
+
+#line 30
+
+#line 30
+allow nfc property_socket:sock_file write;
+#line 30
+allow nfc init:unix_stream_socket connectto;
+#line 30
+
+#line 30
+allow nfc nfc_prop:property_service set;
+#line 30
+
+#line 30
+allow nfc nfc_prop:file { getattr open read map };
+#line 30
+
+#line 30
+;
+
+# already open bugreport file descriptors may be shared with
+# the nfc process, from a file in
+# /data/data/com.android.shell/files/bugreports/bugreport-*.
+allow nfc shell_data_file:file read;
+#line 1 "system/sepolicy/private/odrefresh.te"
+# odrefresh
+type odrefresh, domain, coredomain;
+type odrefresh_exec, system_file_type, exec_type, file_type;
+
+# Allow odrefresh to create files and directories for on device signing.
+allow odrefresh apex_module_data_file:dir { getattr search };
+allow odrefresh apex_art_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelfrom };
+allow odrefresh apex_art_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow odrefresh to create data files (typically for metrics before statsd starts).
+allow odrefresh odrefresh_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow odrefresh odrefresh_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+
+#line 14
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 14
+type odrefresh_userfaultfd;
+#line 14
+type_transition odrefresh odrefresh:anon_inode odrefresh_userfaultfd "[userfaultfd]";
+#line 14
+# Allow domain to create/use userfaultfd anon_inode.
+#line 14
+allow odrefresh odrefresh_userfaultfd:anon_inode { create ioctl read };
+#line 14
+# Suppress errors generate during bugreport
+#line 14
+dontaudit su odrefresh_userfaultfd:anon_inode *;
+#line 14
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 14
+neverallow { domain -odrefresh } odrefresh_userfaultfd:anon_inode *;
+#line 14
+
+
+# Staging area labels (/data/misc/apexdata/com.android.art/staging). odrefresh
+# sets up files here and passes file descriptors for dex2oat to write to.
+allow odrefresh apex_art_staging_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow odrefresh apex_art_staging_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Run dex2oat in its own sandbox.
+
+#line 22
+# Allow the necessary permissions.
+#line 22
+
+#line 22
+# Old domain may exec the file and transition to the new domain.
+#line 22
+allow odrefresh dex2oat_exec:file { getattr open read execute map };
+#line 22
+allow odrefresh dex2oat:process transition;
+#line 22
+# New domain is entered by executing the file.
+#line 22
+allow dex2oat dex2oat_exec:file { entrypoint open read execute getattr map };
+#line 22
+# New domain can send SIGCHLD to its caller.
+#line 22
+allow dex2oat odrefresh:process sigchld;
+#line 22
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 22
+dontaudit odrefresh dex2oat:process noatsecure;
+#line 22
+# XXX dontaudit candidate but requires further study.
+#line 22
+allow odrefresh dex2oat:process { siginh rlimitinh };
+#line 22
+
+#line 22
+# Make the transition occur by default.
+#line 22
+type_transition odrefresh dex2oat_exec:process dex2oat;
+#line 22
+
+
+# Allow odrefresh to kill dex2oat if compilation times out.
+allow odrefresh dex2oat:process sigkill;
+
+# Run dexoptanalyzer in its own sandbox.
+
+#line 28
+# Allow the necessary permissions.
+#line 28
+
+#line 28
+# Old domain may exec the file and transition to the new domain.
+#line 28
+allow odrefresh dexoptanalyzer_exec:file { getattr open read execute map };
+#line 28
+allow odrefresh dexoptanalyzer:process transition;
+#line 28
+# New domain is entered by executing the file.
+#line 28
+allow dexoptanalyzer dexoptanalyzer_exec:file { entrypoint open read execute getattr map };
+#line 28
+# New domain can send SIGCHLD to its caller.
+#line 28
+allow dexoptanalyzer odrefresh:process sigchld;
+#line 28
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 28
+dontaudit odrefresh dexoptanalyzer:process noatsecure;
+#line 28
+# XXX dontaudit candidate but requires further study.
+#line 28
+allow odrefresh dexoptanalyzer:process { siginh rlimitinh };
+#line 28
+
+#line 28
+# Make the transition occur by default.
+#line 28
+type_transition odrefresh dexoptanalyzer_exec:process dexoptanalyzer;
+#line 28
+
+
+# Allow odrefresh to kill dexoptanalyzer if analysis times out.
+allow odrefresh dexoptanalyzer:process sigkill;
+
+# Use devpts and fd from odsign (which exec()'s odrefresh)
+allow odrefresh odsign_devpts:chr_file { read write };
+allow odrefresh odsign:fd use;
+
+# Allow odrefresh to read /apex/apex-info-list.xml to determine
+# whether current apex is in /system or /data.
+allow odrefresh apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow updating boot animation status.
+
+#line 42
+
+#line 42
+allow odrefresh property_socket:sock_file write;
+#line 42
+allow odrefresh init:unix_stream_socket connectto;
+#line 42
+
+#line 42
+allow odrefresh bootanim_system_prop:property_service set;
+#line 42
+
+#line 42
+allow odrefresh bootanim_system_prop:file { getattr open read map };
+#line 42
+
+#line 42
+
+
+# Allow query ART device config properties
+
+#line 45
+allow odrefresh device_config_runtime_native_prop:file { getattr open read map };
+#line 45
+
+
+#line 46
+allow odrefresh device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 46
+
+
+# Do not audit unused resources from parent processes (adb, shell, su).
+# These appear to be unnecessary for odrefresh.
+dontaudit odrefresh { adbd shell }:fd use;
+dontaudit odrefresh devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+dontaudit odrefresh adbd:unix_stream_socket { getattr read write };
+
+# No other processes should be creating files in the staging area.
+neverallow { domain -init -odrefresh -compos_fd_server } apex_art_staging_data_file:file open;
+
+# No processes other than init, odrefresh and system_server access
+# odrefresh_data_files.
+neverallow { domain -init -odrefresh -system_server } odrefresh_data_file:dir *;
+neverallow { domain -init -odrefresh -system_server } odrefresh_data_file:file *;
+#line 1 "system/sepolicy/private/odsign.te"
+# odsign - on-device signing.
+type odsign, domain;
+
+# odsign - Binary for signing ART artifacts.
+typeattribute odsign coredomain;
+
+type odsign_exec, exec_type, file_type, system_file_type;
+
+# Allow init to start odsign
+
+#line 10
+
+#line 10
+# Allow the necessary permissions.
+#line 10
+
+#line 10
+# Old domain may exec the file and transition to the new domain.
+#line 10
+allow init odsign_exec:file { getattr open read execute map };
+#line 10
+allow init odsign:process transition;
+#line 10
+# New domain is entered by executing the file.
+#line 10
+allow odsign odsign_exec:file { entrypoint open read execute getattr map };
+#line 10
+# New domain can send SIGCHLD to its caller.
+#line 10
+
+#line 10
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 10
+dontaudit init odsign:process noatsecure;
+#line 10
+# XXX dontaudit candidate but requires further study.
+#line 10
+allow init odsign:process { siginh rlimitinh };
+#line 10
+
+#line 10
+# Make the transition occur by default.
+#line 10
+type_transition init odsign_exec:process odsign;
+#line 10
+
+#line 10
+
+
+# Allow using persistent storage in /data/odsign
+allow odsign odsign_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow odsign odsign_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow using persistent storage in /data/odsign/metrics - to add metrics related files
+allow odsign odsign_metrics_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow odsign odsign_metrics_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Create and use pty created by android_fork_execvp().
+
+#line 21
+# Each domain gets a unique devpts type.
+#line 21
+type odsign_devpts, fs_type;
+#line 21
+# Label the pty with the unique type when created.
+#line 21
+type_transition odsign devpts:chr_file odsign_devpts;
+#line 21
+# Allow use of the pty after creation.
+#line 21
+allow odsign odsign_devpts:chr_file { open getattr read write ioctl };
+#line 21
+allowxperm odsign odsign_devpts:chr_file ioctl {
+#line 21
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 21
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 21
+};
+#line 21
+# TIOCSTI is only ever used for exploits. Block it.
+#line 21
+# b/33073072, b/7530569
+#line 21
+# http://www.openwall.com/lists/oss-security/2016/09/26/14
+#line 21
+neverallowxperm * odsign_devpts:chr_file ioctl 0x00005412;
+#line 21
+# Note: devpts:dir search and ptmx_device:chr_file rw_file_perms
+#line 21
+# allowed to everyone via domain.te.
+#line 21
+
+
+# FS_IOC_ENABLE_VERITY and FS_IOC_MEASURE_VERITY on ART data files
+allowxperm odsign apex_art_data_file:file ioctl {
+  0x6685 0x6686 0x80086601
+};
+
+# talk to binder services (for keystore)
+
+#line 29
+# Call the servicemanager and transfer references to it.
+#line 29
+allow odsign servicemanager:binder { call transfer };
+#line 29
+# Allow servicemanager to send out callbacks
+#line 29
+allow servicemanager odsign:binder { call transfer };
+#line 29
+# servicemanager performs getpidcon on clients.
+#line 29
+allow servicemanager odsign:dir search;
+#line 29
+allow servicemanager odsign:file { read open };
+#line 29
+allow servicemanager odsign:process getattr;
+#line 29
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 29
+# all domains in domain.te.
+#line 29
+;
+
+# talk to keystore specifically
+
+#line 32
+  allow keystore odsign:dir search;
+#line 32
+  allow keystore odsign:file { read open };
+#line 32
+  allow keystore odsign:process getattr;
+#line 32
+  allow odsign apc_service:service_manager find;
+#line 32
+  allow odsign keystore_service:service_manager find;
+#line 32
+  allow odsign legacykeystore_service:service_manager find;
+#line 32
+  
+#line 32
+# Call the server domain and optionally transfer references to it.
+#line 32
+allow odsign keystore:binder { call transfer };
+#line 32
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 32
+allow keystore odsign:binder transfer;
+#line 32
+# Receive and use open files from the server.
+#line 32
+allow odsign keystore:fd use;
+#line 32
+
+#line 32
+  
+#line 32
+# Call the server domain and optionally transfer references to it.
+#line 32
+allow keystore odsign:binder { call transfer };
+#line 32
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 32
+allow odsign keystore:binder transfer;
+#line 32
+# Receive and use open files from the server.
+#line 32
+allow keystore odsign:fd use;
+#line 32
+
+#line 32
+;
+
+# Use our dedicated keystore key
+allow odsign odsign_key:keystore2_key {
+    delete
+    get_info
+    rebind
+    use
+};
+
+# talk to keymaster
+
+#line 43
+typeattribute odsign halclientdomain;
+#line 43
+typeattribute odsign hal_keymaster_client;
+#line 43
+
+#line 43
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 43
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 43
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 43
+
+#line 43
+typeattribute odsign hal_keymaster;
+#line 43
+# Find passthrough HAL implementations
+#line 43
+allow hal_keymaster system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 43
+allow hal_keymaster vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 43
+allow hal_keymaster vendor_file:file { read open getattr execute map };
+#line 43
+
+#line 43
+
+
+# For ART apex data dir access
+allow odsign apex_module_data_file:dir { getattr search };
+
+allow odsign apex_art_data_file:dir { { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } rmdir rename };
+allow odsign apex_art_data_file:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } unlink };
+
+# Run odrefresh to refresh ART artifacts
+
+#line 52
+# Allow the necessary permissions.
+#line 52
+
+#line 52
+# Old domain may exec the file and transition to the new domain.
+#line 52
+allow odsign odrefresh_exec:file { getattr open read execute map };
+#line 52
+allow odsign odrefresh:process transition;
+#line 52
+# New domain is entered by executing the file.
+#line 52
+allow odrefresh odrefresh_exec:file { entrypoint open read execute getattr map };
+#line 52
+# New domain can send SIGCHLD to its caller.
+#line 52
+allow odrefresh odsign:process sigchld;
+#line 52
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 52
+dontaudit odsign odrefresh:process noatsecure;
+#line 52
+# XXX dontaudit candidate but requires further study.
+#line 52
+allow odsign odrefresh:process { siginh rlimitinh };
+#line 52
+
+#line 52
+# Make the transition occur by default.
+#line 52
+type_transition odsign odrefresh_exec:process odrefresh;
+#line 52
+
+
+# Run fsverity_init to add key to fsverity keyring
+
+#line 55
+# Allow the necessary permissions.
+#line 55
+
+#line 55
+# Old domain may exec the file and transition to the new domain.
+#line 55
+allow odsign fsverity_init_exec:file { getattr open read execute map };
+#line 55
+allow odsign fsverity_init:process transition;
+#line 55
+# New domain is entered by executing the file.
+#line 55
+allow fsverity_init fsverity_init_exec:file { entrypoint open read execute getattr map };
+#line 55
+# New domain can send SIGCHLD to its caller.
+#line 55
+allow fsverity_init odsign:process sigchld;
+#line 55
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 55
+dontaudit odsign fsverity_init:process noatsecure;
+#line 55
+# XXX dontaudit candidate but requires further study.
+#line 55
+allow odsign fsverity_init:process { siginh rlimitinh };
+#line 55
+
+#line 55
+# Make the transition occur by default.
+#line 55
+type_transition odsign fsverity_init_exec:process fsverity_init;
+#line 55
+
+
+# Run compos_verify to verify CompOs signatures
+
+#line 58
+# Allow the necessary permissions.
+#line 58
+
+#line 58
+# Old domain may exec the file and transition to the new domain.
+#line 58
+allow odsign compos_verify_exec:file { getattr open read execute map };
+#line 58
+allow odsign compos_verify:process transition;
+#line 58
+# New domain is entered by executing the file.
+#line 58
+allow compos_verify compos_verify_exec:file { entrypoint open read execute getattr map };
+#line 58
+# New domain can send SIGCHLD to its caller.
+#line 58
+allow compos_verify odsign:process sigchld;
+#line 58
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 58
+dontaudit odsign compos_verify:process noatsecure;
+#line 58
+# XXX dontaudit candidate but requires further study.
+#line 58
+allow odsign compos_verify:process { siginh rlimitinh };
+#line 58
+
+#line 58
+# Make the transition occur by default.
+#line 58
+type_transition odsign compos_verify_exec:process compos_verify;
+#line 58
+
+
+# only odsign can set odsign sysprop
+
+#line 61
+
+#line 61
+allow odsign property_socket:sock_file write;
+#line 61
+allow odsign init:unix_stream_socket connectto;
+#line 61
+
+#line 61
+allow odsign odsign_prop:property_service set;
+#line 61
+
+#line 61
+allow odsign odsign_prop:file { getattr open read map };
+#line 61
+
+#line 61
+
+neverallow { domain -odsign -init } odsign_prop:property_service set;
+
+# Allow odsign to stop itself
+
+#line 65
+
+#line 65
+allow odsign property_socket:sock_file write;
+#line 65
+allow odsign init:unix_stream_socket connectto;
+#line 65
+
+#line 65
+allow odsign ctl_odsign_prop:property_service set;
+#line 65
+
+#line 65
+allow odsign ctl_odsign_prop:file { getattr open read map };
+#line 65
+
+#line 65
+
+
+# Neverallows
+neverallow { domain -odsign -init -fsverity_init} odsign_data_file:dir ~search;
+neverallow { domain -odsign -init -fsverity_init} odsign_data_file:file *;
+#line 1 "system/sepolicy/private/ot_daemon.te"
+#
+# ot_daemon is the native Thread network stack on the host (Android) side.
+# Refer to https://www.threadgroup.org for Thread network knowledge.
+#
+
+# ot_daemon
+type ot_daemon, domain, coredomain;
+type ot_daemon_exec, exec_type, file_type, system_file_type;
+
+# Allow init ot_daemon
+
+#line 11
+
+#line 11
+# Allow the necessary permissions.
+#line 11
+
+#line 11
+# Old domain may exec the file and transition to the new domain.
+#line 11
+allow init ot_daemon_exec:file { getattr open read execute map };
+#line 11
+allow init ot_daemon:process transition;
+#line 11
+# New domain is entered by executing the file.
+#line 11
+allow ot_daemon ot_daemon_exec:file { entrypoint open read execute getattr map };
+#line 11
+# New domain can send SIGCHLD to its caller.
+#line 11
+
+#line 11
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 11
+dontaudit init ot_daemon:process noatsecure;
+#line 11
+# XXX dontaudit candidate but requires further study.
+#line 11
+allow init ot_daemon:process { siginh rlimitinh };
+#line 11
+
+#line 11
+# Make the transition occur by default.
+#line 11
+type_transition init ot_daemon_exec:process ot_daemon;
+#line 11
+
+#line 11
+
+# Allow the ot_daemon to use the net domain.
+
+#line 13
+typeattribute ot_daemon netdomain;
+#line 13
+
+
+# Allow ot_daemon to find /data/misc/apexdata/com.android.tethering
+allow ot_daemon apex_module_data_file:dir search;
+
+# Allow the ot_daemon to access files and subdirectories under
+# /data/misc/apexdata/com\.android\.tethering
+allow ot_daemon apex_tethering_data_file:dir {create { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } }};
+allow ot_daemon apex_tethering_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow OT daemon to read/write the Thread tunnel interface
+allow ot_daemon tun_device:chr_file {read write};
+
+# Allow OT daemon to read/write on the socket created by System Server
+allow ot_daemon system_server:rawip_socket { read getattr write setattr lock append bind connect getopt setopt shutdown map };
+
+
+#line 29
+typeattribute ot_daemon halclientdomain;
+#line 29
+typeattribute ot_daemon hal_threadnetwork_client;
+#line 29
+
+#line 29
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 29
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 29
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 29
+
+#line 29
+typeattribute ot_daemon hal_threadnetwork;
+#line 29
+# Find passthrough HAL implementations
+#line 29
+allow hal_threadnetwork system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 29
+allow hal_threadnetwork vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 29
+allow hal_threadnetwork vendor_file:file { read open getattr execute map };
+#line 29
+
+#line 29
+
+
+# Only ot_daemon can publish the binder service
+
+#line 32
+# Call the servicemanager and transfer references to it.
+#line 32
+allow ot_daemon servicemanager:binder { call transfer };
+#line 32
+# Allow servicemanager to send out callbacks
+#line 32
+allow servicemanager ot_daemon:binder { call transfer };
+#line 32
+# servicemanager performs getpidcon on clients.
+#line 32
+allow servicemanager ot_daemon:dir search;
+#line 32
+allow servicemanager ot_daemon:file { read open };
+#line 32
+allow servicemanager ot_daemon:process getattr;
+#line 32
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 32
+# all domains in domain.te.
+#line 32
+
+
+#line 33
+  allow ot_daemon ot_daemon_service:service_manager { add find };
+#line 33
+  neverallow { domain -ot_daemon } ot_daemon_service:service_manager add;
+#line 33
+
+#line 33
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 33
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 33
+  
+#line 33
+
+
+#line 34
+# Call the server domain and optionally transfer references to it.
+#line 34
+allow ot_daemon system_server:binder { call transfer };
+#line 34
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 34
+allow system_server ot_daemon:binder transfer;
+#line 34
+# Receive and use open files from the server.
+#line 34
+allow ot_daemon system_server:fd use;
+#line 34
+
+
+# Allow OT daemon to write to statsd
+
+#line 37
+allow ot_daemon statsdw_socket:sock_file write;
+#line 37
+allow ot_daemon statsd:unix_dgram_socket sendto;
+#line 37
+
+
+# For collecting bugreports.
+allow ot_daemon dumpstate:fd use;
+allow ot_daemon dumpstate:fifo_file write;
+#line 1 "system/sepolicy/private/otapreopt_chroot.te"
+# otapreopt_chroot executable
+typeattribute otapreopt_chroot coredomain;
+type otapreopt_chroot_exec, exec_type, file_type, system_file_type;
+
+# Chroot preparation and execution.
+# We need to create an unshared mount namespace, and then mount /data.
+allow otapreopt_chroot postinstall_file:dir { search mounton };
+allow otapreopt_chroot apex_mnt_dir:dir mounton;
+allow otapreopt_chroot device:dir mounton;
+allow otapreopt_chroot linkerconfig_file:dir mounton;
+allow otapreopt_chroot rootfs:dir mounton;
+allow otapreopt_chroot sysfs:dir mounton;
+allow otapreopt_chroot system_data_root_file:dir mounton;
+allow otapreopt_chroot system_file:dir mounton;
+allow otapreopt_chroot vendor_file:dir mounton;
+allow otapreopt_chroot self:{ capability cap_userns } { sys_admin sys_chroot };
+
+# This is required to mount /vendor and mount/unmount ext4 images from
+# APEX packages in /postinstall/apex.
+allow otapreopt_chroot block_device:dir search;
+allow otapreopt_chroot labeledfs:filesystem { mount unmount };
+# This is required for dynamic partitions.
+allow otapreopt_chroot dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# This is required to unmount flattened APEX packages under
+# /postinstall/system/apex (which are bind-mounted in /postinstall/apex).
+allow otapreopt_chroot postinstall_file:filesystem unmount;
+# Mounting /vendor can have this side-effect. Ignore denial.
+dontaudit otapreopt_chroot kernel:process setsched;
+
+# Allow otapreopt_chroot to read SELinux policy files.
+allow otapreopt_chroot file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow otapreopt_chroot to open and read the contents of /postinstall/system/apex.
+allow otapreopt_chroot postinstall_file:dir { open getattr read search ioctl lock watch watch_reads };
+# Allow otapreopt_chroot to read the persist.apexd.verity_on_system system property.
+
+#line 37
+allow otapreopt_chroot apexd_prop:file { getattr open read map };
+#line 37
+
+
+# Allow otapreopt to use file descriptors from update-engine and the postinstall
+# script. It will read dexopt commands from stdin and write progress to stdout.
+allow otapreopt_chroot postinstall:fd use;
+allow otapreopt_chroot postinstall:fifo_file { read write getattr };
+allow otapreopt_chroot update_engine:fd use;
+allow otapreopt_chroot update_engine:fifo_file write;
+
+# Allow to transition to postinstall_dexopt, to run otapreopt in its own sandbox.
+
+#line 47
+# Allow the necessary permissions.
+#line 47
+
+#line 47
+# Old domain may exec the file and transition to the new domain.
+#line 47
+allow otapreopt_chroot postinstall_dexopt_exec:file { getattr open read execute map };
+#line 47
+allow otapreopt_chroot postinstall_dexopt:process transition;
+#line 47
+# New domain is entered by executing the file.
+#line 47
+allow postinstall_dexopt postinstall_dexopt_exec:file { entrypoint open read execute getattr map };
+#line 47
+# New domain can send SIGCHLD to its caller.
+#line 47
+allow postinstall_dexopt otapreopt_chroot:process sigchld;
+#line 47
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 47
+dontaudit otapreopt_chroot postinstall_dexopt:process noatsecure;
+#line 47
+# XXX dontaudit candidate but requires further study.
+#line 47
+allow otapreopt_chroot postinstall_dexopt:process { siginh rlimitinh };
+#line 47
+
+#line 47
+# Make the transition occur by default.
+#line 47
+type_transition otapreopt_chroot postinstall_dexopt_exec:process postinstall_dexopt;
+#line 47
+
+
+#line 48
+# Allow the necessary permissions.
+#line 48
+
+#line 48
+# Old domain may exec the file and transition to the new domain.
+#line 48
+allow otapreopt_chroot linkerconfig_exec:file { getattr open read execute map };
+#line 48
+allow otapreopt_chroot linkerconfig:process transition;
+#line 48
+# New domain is entered by executing the file.
+#line 48
+allow linkerconfig linkerconfig_exec:file { entrypoint open read execute getattr map };
+#line 48
+# New domain can send SIGCHLD to its caller.
+#line 48
+allow linkerconfig otapreopt_chroot:process sigchld;
+#line 48
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 48
+dontaudit otapreopt_chroot linkerconfig:process noatsecure;
+#line 48
+# XXX dontaudit candidate but requires further study.
+#line 48
+allow otapreopt_chroot linkerconfig:process { siginh rlimitinh };
+#line 48
+
+#line 48
+# Make the transition occur by default.
+#line 48
+type_transition otapreopt_chroot linkerconfig_exec:process linkerconfig;
+#line 48
+
+
+#line 49
+# Allow the necessary permissions.
+#line 49
+
+#line 49
+# Old domain may exec the file and transition to the new domain.
+#line 49
+allow otapreopt_chroot apexd_exec:file { getattr open read execute map };
+#line 49
+allow otapreopt_chroot apexd:process transition;
+#line 49
+# New domain is entered by executing the file.
+#line 49
+allow apexd apexd_exec:file { entrypoint open read execute getattr map };
+#line 49
+# New domain can send SIGCHLD to its caller.
+#line 49
+allow apexd otapreopt_chroot:process sigchld;
+#line 49
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 49
+dontaudit otapreopt_chroot apexd:process noatsecure;
+#line 49
+# XXX dontaudit candidate but requires further study.
+#line 49
+allow otapreopt_chroot apexd:process { siginh rlimitinh };
+#line 49
+
+#line 49
+# Make the transition occur by default.
+#line 49
+type_transition otapreopt_chroot apexd_exec:process apexd;
+#line 49
+
+
+# Allow otapreopt_chroot to control linkerconfig
+allow otapreopt_chroot linkerconfig_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow otapreopt_chroot linkerconfig_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow otapreopt_chroot to create loop devices with /dev/loop-control.
+allow otapreopt_chroot loop_control_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+# Allow otapreopt_chroot to access loop devices.
+allow otapreopt_chroot loop_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm otapreopt_chroot loop_device:blk_file ioctl {
+  0x00004c0a
+  0x00004c05
+  0x00004c04
+  0x00004c00
+  0x00004c09
+  0x00004c08
+  0x00004c01
+  0x00001261
+};
+
+# Allow otapreopt_chroot to configure read-ahead of loop devices.
+allow otapreopt_chroot sysfs_loop:dir { open getattr read search ioctl lock watch watch_reads };
+allow otapreopt_chroot sysfs_loop:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow otapreopt_chroot to mount a tmpfs filesystem in /postinstall/apex.
+allow otapreopt_chroot tmpfs:filesystem mount;
+# Allow otapreopt_chroot to restore the security context of /postinstall/apex.
+allow otapreopt_chroot tmpfs:dir relabelfrom;
+allow otapreopt_chroot postinstall_apex_mnt_dir:dir relabelto;
+
+# Allow otapreopt_chroot to manipulate directory /postinstall/apex.
+allow otapreopt_chroot postinstall_apex_mnt_dir:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow otapreopt_chroot postinstall_apex_mnt_dir:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# Allow otapreopt_chroot to mount APEX packages in /postinstall/apex.
+allow otapreopt_chroot postinstall_apex_mnt_dir:dir mounton;
+
+# Allow otapreopt_chroot to access /dev/block (needed to detach loop
+# devices used by ext4 images from APEX packages).
+allow otapreopt_chroot block_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow to access the linker through the symlink.
+allow otapreopt_chroot postinstall_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow otapreopt_chroot to read ro.cold_boot_done prop.
+# This is a temporary solution to make sure that otapreopt_chroot doesn't block indefinetelly.
+# TODO(b/165948777): remove this once otapreopt_chroot is migrated to libapexmount.
+
+#line 96
+allow otapreopt_chroot cold_boot_done_prop:file { getattr open read map };
+#line 96
+
+
+# allow otapreopt_chroot to run the linkerconfig from the new image.
+allow otapreopt_chroot linkerconfig_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 1 "system/sepolicy/private/otapreopt_slot.te"
+# This command set moves the artifact corresponding to the current slot
+# from /data/ota to /data/dalvik-cache.
+
+type otapreopt_slot, domain, mlstrustedsubject, coredomain;
+type otapreopt_slot_exec, system_file_type, exec_type, file_type;
+
+# Technically not a daemon but we do want the transition from init domain to
+# cppreopts to occur.
+
+#line 9
+
+#line 9
+# Allow the necessary permissions.
+#line 9
+
+#line 9
+# Old domain may exec the file and transition to the new domain.
+#line 9
+allow init otapreopt_slot_exec:file { getattr open read execute map };
+#line 9
+allow init otapreopt_slot:process transition;
+#line 9
+# New domain is entered by executing the file.
+#line 9
+allow otapreopt_slot otapreopt_slot_exec:file { entrypoint open read execute getattr map };
+#line 9
+# New domain can send SIGCHLD to its caller.
+#line 9
+
+#line 9
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 9
+dontaudit init otapreopt_slot:process noatsecure;
+#line 9
+# XXX dontaudit candidate but requires further study.
+#line 9
+allow init otapreopt_slot:process { siginh rlimitinh };
+#line 9
+
+#line 9
+# Make the transition occur by default.
+#line 9
+type_transition init otapreopt_slot_exec:process otapreopt_slot;
+#line 9
+
+#line 9
+
+
+# The otapreopt_slot renames the OTA dalvik-cache to the regular dalvik-cache, and cleans up
+# the directory afterwards. For logging of aggregate size, we need getattr.
+allow otapreopt_slot ota_data_file:dir { { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } rename reparent rmdir };
+allow otapreopt_slot ota_data_file:{ file lnk_file } getattr;
+# (du follows symlinks)
+allow otapreopt_slot ota_data_file:lnk_file read;
+
+# Delete old content of the dalvik-cache.
+allow otapreopt_slot dalvikcache_data_file:dir { add_name getattr open read remove_name rmdir search write };
+allow otapreopt_slot dalvikcache_data_file:file { getattr unlink };
+allow otapreopt_slot dalvikcache_data_file:lnk_file { getattr read unlink };
+
+# Allow cppreopts to execute itself using #!/system/bin/sh
+allow otapreopt_slot shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow running the mv and rm/rmdir commands using otapreopt_slot  permissions.
+# Needed so we can move artifacts into /data/dalvik-cache/dalvik-cache.
+allow otapreopt_slot toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 1 "system/sepolicy/private/perfetto.te"
+# Perfetto command-line client. Can be used only from the domains that are
+# explicitly allowlisted with a domain_auto_trans(X, perfetto_exec, perfetto).
+# This command line client accesses the privileged socket of the traced
+# daemon.
+
+type perfetto_exec, system_file_type, exec_type, file_type;
+type perfetto_tmpfs, file_type;
+
+
+#line 9
+type_transition perfetto tmpfs:file perfetto_tmpfs;
+#line 9
+allow perfetto perfetto_tmpfs:file { read write getattr map };
+#line 9
+;
+
+# Allow init to start a trace (for perfetto_boottrace).
+
+#line 12
+
+#line 12
+# Allow the necessary permissions.
+#line 12
+
+#line 12
+# Old domain may exec the file and transition to the new domain.
+#line 12
+allow init perfetto_exec:file { getattr open read execute map };
+#line 12
+allow init perfetto:process transition;
+#line 12
+# New domain is entered by executing the file.
+#line 12
+allow perfetto perfetto_exec:file { entrypoint open read execute getattr map };
+#line 12
+# New domain can send SIGCHLD to its caller.
+#line 12
+
+#line 12
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 12
+dontaudit init perfetto:process noatsecure;
+#line 12
+# XXX dontaudit candidate but requires further study.
+#line 12
+allow init perfetto:process { siginh rlimitinh };
+#line 12
+
+#line 12
+# Make the transition occur by default.
+#line 12
+type_transition init perfetto_exec:process perfetto;
+#line 12
+
+#line 12
+
+
+# Allow to access traced's privileged consumer socket.
+
+#line 15
+allow perfetto traced_consumer_socket:sock_file write;
+#line 15
+allow perfetto traced:unix_stream_socket connectto;
+#line 15
+
+
+# Connect to the Perfetto traced daemon as a producer. This requires
+# connecting to its producer socket and obtaining a (per-process) tmpfs fd.
+
+#line 19
+  allow perfetto traced:fd use;
+#line 19
+  allow perfetto traced_tmpfs:file { read write getattr map };
+#line 19
+  
+#line 19
+allow perfetto traced_producer_socket:sock_file write;
+#line 19
+allow perfetto traced:unix_stream_socket connectto;
+#line 19
+
+#line 19
+
+#line 19
+  # Also allow the service to use the producer file descriptors. This is
+#line 19
+  # necessary when the producer is creating the shared memory, as it will be
+#line 19
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 19
+  allow traced perfetto:fd use;
+#line 19
+
+
+# Allow to write and unlink traces into /data/misc/perfetto-traces.
+allow perfetto perfetto_traces_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow perfetto perfetto_traces_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow to write and unlink trace into /data/misc/perfetto-traces/bugreport*
+allow perfetto perfetto_traces_bugreport_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow perfetto perfetto_traces_bugreport_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Allow to write and unlink traces into /data/misc/perfetto-traces/profiling.
+allow perfetto perfetto_traces_profiling_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow perfetto perfetto_traces_profiling_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow perfetto to access the proxy service for reporting traces.
+allow perfetto tracingproxy_service:service_manager find;
+
+#line 35
+# Call the servicemanager and transfer references to it.
+#line 35
+allow perfetto servicemanager:binder { call transfer };
+#line 35
+# Allow servicemanager to send out callbacks
+#line 35
+allow servicemanager perfetto:binder { call transfer };
+#line 35
+# servicemanager performs getpidcon on clients.
+#line 35
+allow servicemanager perfetto:dir search;
+#line 35
+allow servicemanager perfetto:file { read open };
+#line 35
+allow servicemanager perfetto:process getattr;
+#line 35
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 35
+# all domains in domain.te.
+#line 35
+
+
+#line 36
+# Call the server domain and optionally transfer references to it.
+#line 36
+allow perfetto system_server:binder { call transfer };
+#line 36
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 36
+allow system_server perfetto:binder transfer;
+#line 36
+# Receive and use open files from the server.
+#line 36
+allow perfetto system_server:fd use;
+#line 36
+
+
+# Allow perfetto to read the trace config from /data/misc/perfetto-configs.
+# shell and adb can write files into that directory.
+allow perfetto perfetto_configs_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow perfetto perfetto_configs_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow perfetto to read the trace config from statsd, mm_events and shell
+# (both root and non-root) on stdin and also to write the resulting trace to
+# stdout.
+allow perfetto { statsd mm_events shell su }:fd use;
+allow perfetto { statsd mm_events shell su system_server }:fifo_file { getattr read write ioctl };
+
+# Allow to communicate use, read and write over the adb connection.
+allow perfetto adbd:fd use;
+allow perfetto adbd:unix_stream_socket { read write };
+
+# Allow adbd to reap perfetto.
+allow perfetto adbd:process { sigchld };
+
+# Allow perfetto to write to statsd.
+
+#line 57
+allow perfetto statsdw_socket:sock_file write;
+#line 57
+allow perfetto statsd:unix_dgram_socket sendto;
+#line 57
+
+
+# Allow to access /dev/pts when launched in an adb shell.
+allow perfetto devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow perfetto to ask incidentd to start a report.
+# TODO(lalitm): remove all incidentd rules when proxy service is stable.
+allow perfetto incident_service:service_manager find;
+
+#line 65
+# Call the server domain and optionally transfer references to it.
+#line 65
+allow perfetto incidentd:binder { call transfer };
+#line 65
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 65
+allow incidentd perfetto:binder transfer;
+#line 65
+# Receive and use open files from the server.
+#line 65
+allow perfetto incidentd:fd use;
+#line 65
+
+
+# perfetto log formatter calls isatty() on its stderr. Denial when running
+# under adbd is harmless. Avoid generating denial logs.
+dontaudit perfetto adbd:unix_stream_socket getattr;
+dontauditxperm perfetto adbd:unix_stream_socket ioctl {
+#line 70
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 70
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 70
+};
+# As above, when adbd is running in "su" domain (only the ioctl is denied in
+# practice).
+dontauditxperm perfetto su:unix_stream_socket ioctl {
+#line 73
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 73
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 73
+};
+# Similarly, CTS tests end up hitting a denial on shell pipes.
+dontauditxperm perfetto shell:fifo_file ioctl {
+#line 75
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 75
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 75
+};
+
+###
+### Neverallow rules
+###
+
+# Disallow anyone else from being able to handle traces except selected system
+# components.
+neverallow {
+  domain
+  -init      # The creator of the folder.
+  -perfetto  # The owner of the folder.
+  -adbd      # For pulling traces.
+  -shell     # For devepment purposes.
+  -traced    # For write_into_file traces.
+  -dumpstate # For attaching traces to bugreports.
+  -incidentd # For receiving reported traces. TODO(lalitm): remove this.
+  -priv_app  # For stating traces for bug-report UI.
+  -system_server # For accessing traces started by profiling apis.
+} perfetto_traces_data_file:dir *;
+neverallow {
+  domain
+  -init      # The creator of the folder.
+  -perfetto  # The owner of the folder.
+  -adbd      # For pulling traces.
+  -shell     # For devepment purposes.
+  -traced    # For write_into_file traces.
+  -incidentd      # For receiving reported traces. TODO(lalitm): remove this.
+} perfetto_traces_data_file:file ~{ getattr read };
+
+### perfetto should NEVER do any of the following
+
+# Disallow mapping executable memory (execstack and exec are already disallowed
+# globally in domain.te).
+neverallow perfetto self:process execmem;
+
+# Block device access.
+neverallow perfetto dev_type:blk_file { read write };
+
+# ptrace any other process
+neverallow perfetto domain:process ptrace;
+
+# Disallows access to other /data files.
+neverallow perfetto {
+  data_file_type
+  -system_data_file
+  -system_data_root_file
+  -media_userdir_file
+  -system_userdir_file
+  -vendor_userdir_file
+  # TODO(b/72998741) Remove exemption. Further restricted in a subsequent
+  # neverallow. Currently only getattr and search are allowed.
+  -vendor_data_file
+  -perfetto_traces_data_file
+  -perfetto_traces_bugreport_data_file
+  -perfetto_traces_profiling_data_file
+  -perfetto_configs_data_file
+  
+}:dir *;
+neverallow perfetto {
+  system_data_file
+  -perfetto_traces_data_file
+  -perfetto_traces_profiling_data_file
+}:dir ~{ getattr search };
+neverallow perfetto {
+  data_file_type
+  -perfetto_traces_data_file
+  -perfetto_traces_bugreport_data_file
+  -perfetto_traces_profiling_data_file
+  -perfetto_configs_data_file
+  
+}:file ~write;
+#line 1 "system/sepolicy/private/performanced.te"
+typeattribute performanced coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init performanced_exec:file { getattr open read execute map };
+#line 3
+allow init performanced:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow performanced performanced_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init performanced:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init performanced:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init performanced_exec:process performanced;
+#line 3
+
+#line 3
+
+#line 1 "system/sepolicy/private/permissioncontroller_app.te"
+###
+### A domain for further sandboxing the GooglePermissionController app.
+###
+type permissioncontroller_app, domain, coredomain;
+
+
+#line 6
+typeattribute permissioncontroller_app appdomain;
+#line 6
+# Label tmpfs objects for all apps.
+#line 6
+type_transition permissioncontroller_app tmpfs:file appdomain_tmpfs;
+#line 6
+
+#line 6
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 6
+type permissioncontroller_app_userfaultfd;
+#line 6
+type_transition permissioncontroller_app permissioncontroller_app:anon_inode permissioncontroller_app_userfaultfd "[userfaultfd]";
+#line 6
+# Allow domain to create/use userfaultfd anon_inode.
+#line 6
+allow permissioncontroller_app permissioncontroller_app_userfaultfd:anon_inode { create ioctl read };
+#line 6
+# Suppress errors generate during bugreport
+#line 6
+dontaudit su permissioncontroller_app_userfaultfd:anon_inode *;
+#line 6
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 6
+neverallow { domain -permissioncontroller_app } permissioncontroller_app_userfaultfd:anon_inode *;
+#line 6
+
+#line 6
+allow permissioncontroller_app appdomain_tmpfs:file { execute getattr map read write };
+#line 6
+neverallow { permissioncontroller_app -runas_app -shell -simpleperf } { domain -permissioncontroller_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+neverallow { appdomain -runas_app -shell -simpleperf -permissioncontroller_app } permissioncontroller_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+# The Android security model guarantees the confidentiality and integrity
+#line 6
+# of application data and execution state. Ptrace bypasses those
+#line 6
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 6
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 6
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 6
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 6
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 6
+# live lock conditions.
+#line 6
+neverallow { domain -permissioncontroller_app -crash_dump  -runas_app -simpleperf } permissioncontroller_app:process ptrace;
+#line 6
+
+
+allow permissioncontroller_app app_api_service:service_manager find;
+allow permissioncontroller_app system_api_service:service_manager find;
+
+# Allow interaction with gpuservice
+
+#line 12
+# Call the server domain and optionally transfer references to it.
+#line 12
+allow permissioncontroller_app gpuservice:binder { call transfer };
+#line 12
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 12
+allow gpuservice permissioncontroller_app:binder transfer;
+#line 12
+# Receive and use open files from the server.
+#line 12
+allow permissioncontroller_app gpuservice:fd use;
+#line 12
+
+
+allow permissioncontroller_app radio_service:service_manager find;
+
+# Allow the app to request and collect incident reports.
+# (Also requires DUMP and PACKAGE_USAGE_STATS permissions)
+allow permissioncontroller_app incident_service:service_manager find;
+
+#line 19
+# Call the server domain and optionally transfer references to it.
+#line 19
+allow permissioncontroller_app incidentd:binder { call transfer };
+#line 19
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 19
+allow incidentd permissioncontroller_app:binder transfer;
+#line 19
+# Receive and use open files from the server.
+#line 19
+allow permissioncontroller_app incidentd:fd use;
+#line 19
+
+allow permissioncontroller_app incidentd:fifo_file { read write };
+
+allow permissioncontroller_app gpu_device:dir search;
+#line 1 "system/sepolicy/private/platform_app.te"
+###
+### Apps signed with the platform key.
+###
+
+typeattribute platform_app coredomain;
+
+
+#line 7
+typeattribute platform_app appdomain;
+#line 7
+# Label tmpfs objects for all apps.
+#line 7
+type_transition platform_app tmpfs:file appdomain_tmpfs;
+#line 7
+
+#line 7
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 7
+type platform_app_userfaultfd;
+#line 7
+type_transition platform_app platform_app:anon_inode platform_app_userfaultfd "[userfaultfd]";
+#line 7
+# Allow domain to create/use userfaultfd anon_inode.
+#line 7
+allow platform_app platform_app_userfaultfd:anon_inode { create ioctl read };
+#line 7
+# Suppress errors generate during bugreport
+#line 7
+dontaudit su platform_app_userfaultfd:anon_inode *;
+#line 7
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 7
+neverallow { domain -platform_app } platform_app_userfaultfd:anon_inode *;
+#line 7
+
+#line 7
+allow platform_app appdomain_tmpfs:file { execute getattr map read write };
+#line 7
+neverallow { platform_app -runas_app -shell -simpleperf } { domain -platform_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+neverallow { appdomain -runas_app -shell -simpleperf -platform_app } platform_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+# The Android security model guarantees the confidentiality and integrity
+#line 7
+# of application data and execution state. Ptrace bypasses those
+#line 7
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 7
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 7
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 7
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 7
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 7
+# live lock conditions.
+#line 7
+neverallow { domain -platform_app -crash_dump  -runas_app -simpleperf } platform_app:process ptrace;
+#line 7
+
+
+# Access the network.
+
+#line 10
+typeattribute platform_app netdomain;
+#line 10
+
+# Access bluetooth.
+
+#line 12
+typeattribute platform_app bluetoothdomain;
+#line 12
+
+# Read from /data/local/tmp or /data/data/com.android.shell.
+allow platform_app shell_data_file:dir search;
+allow platform_app shell_data_file:file { open getattr read };
+allow platform_app icon_file:file { open getattr read };
+# Populate /data/app/vmdl*.tmp, /data/app-private/vmdl*.tmp files
+# created by system server.
+allow platform_app { apk_tmp_file apk_private_tmp_file }:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow platform_app { apk_tmp_file apk_private_tmp_file }:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow platform_app apk_private_data_file:dir search;
+# ASEC
+allow platform_app asec_apk_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow platform_app asec_apk_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access to /data/media.
+allow platform_app media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow platform_app media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Write to /cache.
+allow platform_app cache_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow platform_app cache_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Direct access to vold-mounted storage under /mnt/media_rw
+# This is a performance optimization that allows platform apps to bypass the FUSE layer
+allow platform_app mnt_media_rw_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow platform_app sdcard_type:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow platform_app sdcard_type:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# com.android.systemui
+allow platform_app rootfs:dir getattr;
+
+#line 42
+allow platform_app radio_cdma_ecm_prop:file { getattr open read map };
+#line 42
+
+#line 45
+
+neverallow { domain -init -dumpstate  } persist_wm_debug_prop:property_service set;
+
+#line 50
+
+#line 53
+
+
+# com.android.captiveportallogin reads /proc/vmstat
+allow platform_app {
+  proc_vmstat
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# /proc/net access.
+# TODO(b/9496886) Audit access for removal.
+
+#line 62
+allow platform_app proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 62
+allow platform_app proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 62
+
+#line 65
+
+
+# Allow writing and removing wmshell protolog in /data/misc/wmtrace.
+#line 71
+
+
+allow platform_app audioserver_service:service_manager find;
+allow platform_app cameraserver_service:service_manager find;
+allow platform_app drmserver_service:service_manager find;
+allow platform_app mediaserver_service:service_manager find;
+allow platform_app mediametrics_service:service_manager find;
+allow platform_app mediaextractor_service:service_manager find;
+allow platform_app mediadrmserver_service:service_manager find;
+allow platform_app persistent_data_block_service:service_manager find;
+allow platform_app radio_service:service_manager find;
+allow platform_app thermal_service:service_manager find;
+allow platform_app app_api_service:service_manager find;
+allow platform_app system_api_service:service_manager find;
+allow platform_app vr_manager_service:service_manager find;
+allow platform_app stats_service:service_manager find;
+
+# Allow platform apps to log via statsd.
+
+#line 89
+# Call the server domain and optionally transfer references to it.
+#line 89
+allow platform_app statsd:binder { call transfer };
+#line 89
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 89
+allow statsd platform_app:binder transfer;
+#line 89
+# Receive and use open files from the server.
+#line 89
+allow platform_app statsd:fd use;
+#line 89
+
+
+# Allow platform applications to find and call artd for testing
+#line 95
+
+
+# Access to /data/preloads
+allow platform_app preloads_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow platform_app preloads_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow platform_app preloads_media_file:file { getattr open read ioctl lock map watch watch_reads };
+allow platform_app preloads_media_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+
+#line 103
+allow platform_app runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 103
+
+
+# allow platform apps to use UDP sockets provided by the system server but not
+# modify them other than to connect
+allow platform_app system_server:udp_socket {
+        connect getattr read recvfrom sendto write getopt setopt };
+
+# allow platform apps to connect to the property service
+
+#line 111
+
+#line 111
+allow platform_app property_socket:sock_file write;
+#line 111
+allow platform_app init:unix_stream_socket connectto;
+#line 111
+
+#line 111
+allow platform_app test_boot_reason_prop:property_service set;
+#line 111
+
+#line 111
+allow platform_app test_boot_reason_prop:file { getattr open read map };
+#line 111
+
+#line 111
+
+
+# allow platform apps to read keyguard.no_require_sim
+
+#line 114
+allow platform_app keyguard_config_prop:file { getattr open read map };
+#line 114
+
+
+# allow platform apps to read qemu.hw.mainkeys
+
+#line 117
+allow platform_app qemu_hw_prop:file { getattr open read map };
+#line 117
+
+
+# allow platform apps to read sys.boot.reason.last
+
+#line 120
+allow platform_app last_boot_reason_prop:file { getattr open read map };
+#line 120
+
+
+# allow platform apps to create symbolic link
+allow platform_app app_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# suppress denials caused by debugfs_tracing
+dontaudit platform_app debugfs_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow platform apps to create VMs
+
+#line 129
+# Transition to virtualizationmanager when the client executes it.
+#line 129
+
+#line 129
+# Allow the necessary permissions.
+#line 129
+
+#line 129
+# Old domain may exec the file and transition to the new domain.
+#line 129
+allow platform_app virtualizationmanager_exec:file { getattr open read execute map };
+#line 129
+allow platform_app virtualizationmanager:process transition;
+#line 129
+# New domain is entered by executing the file.
+#line 129
+allow virtualizationmanager virtualizationmanager_exec:file { entrypoint open read execute getattr map };
+#line 129
+# New domain can send SIGCHLD to its caller.
+#line 129
+allow virtualizationmanager platform_app:process sigchld;
+#line 129
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 129
+dontaudit platform_app virtualizationmanager:process noatsecure;
+#line 129
+# XXX dontaudit candidate but requires further study.
+#line 129
+allow platform_app virtualizationmanager:process { siginh rlimitinh };
+#line 129
+
+#line 129
+# Make the transition occur by default.
+#line 129
+type_transition platform_app virtualizationmanager_exec:process virtualizationmanager;
+#line 129
+
+#line 129
+# Allow virtualizationmanager to communicate over UDS with the client.
+#line 129
+allow { virtualizationmanager crosvm } platform_app:unix_stream_socket { ioctl getattr read write };
+#line 129
+# Let the client pass file descriptors to virtualizationmanager and on to crosvm.
+#line 129
+allow { virtualizationmanager crosvm } platform_app:fd use;
+#line 129
+# Let the client use file descriptors created by virtualizationmanager.
+#line 129
+allow platform_app virtualizationmanager:fd use;
+#line 129
+# Allow piping console log to the client
+#line 129
+allow { virtualizationmanager crosvm } platform_app:fifo_file { ioctl getattr read write };
+#line 129
+# Allow client to read/write vsock created by virtualizationmanager to communicate with the VM
+#line 129
+# that it created. Notice that we do not grant permission to create a vsock;
+#line 129
+# the client can only connect to VMs that it owns.
+#line 129
+allow platform_app virtualizationmanager:vsock_socket { getattr getopt read write };
+#line 129
+# Allow client to inspect hypervisor capabilities
+#line 129
+
+#line 129
+allow platform_app hypervisor_prop:file { getattr open read map };
+#line 129
+
+#line 129
+# Allow client to read (but not open) the crashdump provided by virtualizationmanager
+#line 129
+allow platform_app virtualizationservice_data_file:file { getattr read };
+#line 129
+
+
+###
+### Neverallow rules
+###
+
+neverallow { domain -init  } persist_sysui_builder_extras_prop:property_service set;
+
+# app domains which access /dev/fuse should not run as platform_app
+neverallow platform_app fuse_device:chr_file *;
+#line 1 "system/sepolicy/private/postinstall.te"
+typeattribute postinstall coredomain;
+type postinstall_exec, system_file_type, exec_type, file_type;
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow postinstall otapreopt_chroot_exec:file { getattr open read execute map };
+#line 3
+allow postinstall otapreopt_chroot:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow otapreopt_chroot otapreopt_chroot_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+allow otapreopt_chroot postinstall:process sigchld;
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit postinstall otapreopt_chroot:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow postinstall otapreopt_chroot:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition postinstall otapreopt_chroot_exec:process otapreopt_chroot;
+#line 3
+
+
+allow postinstall rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1 "system/sepolicy/private/postinstall_dexopt.te"
+# Domain for the otapreopt executable, running under postinstall_dexopt
+#
+# Note: otapreopt is a driver for dex2oat, and reuses parts of installd. As such,
+# this is derived and adapted from installd.te.
+
+type postinstall_dexopt, domain, coredomain, mlstrustedsubject;
+type postinstall_dexopt_exec, system_file_type, exec_type, file_type;
+type postinstall_dexopt_tmpfs, file_type;
+
+# Run dex2oat/patchoat in its own sandbox.
+# We have to manually transition, as we don't have an entrypoint.
+# - Case where dex2oat is in a non-flattened APEX, which has retained
+#   the correct type (`dex2oat_exec`).
+
+#line 14
+# Allow the necessary permissions.
+#line 14
+
+#line 14
+# Old domain may exec the file and transition to the new domain.
+#line 14
+allow postinstall_dexopt dex2oat_exec:file { getattr open read execute map };
+#line 14
+allow postinstall_dexopt dex2oat:process transition;
+#line 14
+# New domain is entered by executing the file.
+#line 14
+allow dex2oat dex2oat_exec:file { entrypoint open read execute getattr map };
+#line 14
+# New domain can send SIGCHLD to its caller.
+#line 14
+allow dex2oat postinstall_dexopt:process sigchld;
+#line 14
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 14
+dontaudit postinstall_dexopt dex2oat:process noatsecure;
+#line 14
+# XXX dontaudit candidate but requires further study.
+#line 14
+allow postinstall_dexopt dex2oat:process { siginh rlimitinh };
+#line 14
+
+#line 14
+# Make the transition occur by default.
+#line 14
+type_transition postinstall_dexopt dex2oat_exec:process dex2oat;
+#line 14
+
+# - Case where dex2oat is in a flattened APEX, which has been tagged
+#   with the `postinstall_file` type by update_engine.
+
+#line 17
+# Allow the necessary permissions.
+#line 17
+
+#line 17
+# Old domain may exec the file and transition to the new domain.
+#line 17
+allow postinstall_dexopt postinstall_file:file { getattr open read execute map };
+#line 17
+allow postinstall_dexopt dex2oat:process transition;
+#line 17
+# New domain is entered by executing the file.
+#line 17
+allow dex2oat postinstall_file:file { entrypoint open read execute getattr map };
+#line 17
+# New domain can send SIGCHLD to its caller.
+#line 17
+allow dex2oat postinstall_dexopt:process sigchld;
+#line 17
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 17
+dontaudit postinstall_dexopt dex2oat:process noatsecure;
+#line 17
+# XXX dontaudit candidate but requires further study.
+#line 17
+allow postinstall_dexopt dex2oat:process { siginh rlimitinh };
+#line 17
+
+#line 17
+# Make the transition occur by default.
+#line 17
+type_transition postinstall_dexopt postinstall_file:process dex2oat;
+#line 17
+
+
+# Run derive_classpath to get the current BCP.
+
+#line 20
+# Allow the necessary permissions.
+#line 20
+
+#line 20
+# Old domain may exec the file and transition to the new domain.
+#line 20
+allow postinstall_dexopt derive_classpath_exec:file { getattr open read execute map };
+#line 20
+allow postinstall_dexopt derive_classpath:process transition;
+#line 20
+# New domain is entered by executing the file.
+#line 20
+allow derive_classpath derive_classpath_exec:file { entrypoint open read execute getattr map };
+#line 20
+# New domain can send SIGCHLD to its caller.
+#line 20
+allow derive_classpath postinstall_dexopt:process sigchld;
+#line 20
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 20
+dontaudit postinstall_dexopt derive_classpath:process noatsecure;
+#line 20
+# XXX dontaudit candidate but requires further study.
+#line 20
+allow postinstall_dexopt derive_classpath:process { siginh rlimitinh };
+#line 20
+
+#line 20
+# Make the transition occur by default.
+#line 20
+type_transition postinstall_dexopt derive_classpath_exec:process derive_classpath;
+#line 20
+
+# Allow postinstall_dexopt to make a tempfile for derive_classpath to write into
+
+#line 22
+type_transition postinstall_dexopt tmpfs:file postinstall_dexopt_tmpfs;
+#line 22
+allow postinstall_dexopt postinstall_dexopt_tmpfs:file { read write getattr map };
+#line 22
+;
+allow postinstall_dexopt postinstall_dexopt_tmpfs:file open;
+
+allow postinstall_dexopt self:{ capability cap_userns } { chown dac_override dac_read_search fowner fsetid setgid setuid };
+
+allow postinstall_dexopt postinstall_file:filesystem getattr;
+allow postinstall_dexopt postinstall_file:dir { getattr read search };
+allow postinstall_dexopt postinstall_file:lnk_file { getattr read };
+allow postinstall_dexopt proc_filesystems:file { getattr open read };
+allow postinstall_dexopt rootfs:file { getattr open read ioctl lock map watch watch_reads };
+
+allow postinstall_dexopt tmpfs:file read;
+
+# Allow access odsign verification status
+
+#line 36
+allow postinstall_dexopt odsign_prop:file { getattr open read map };
+#line 36
+
+
+# Allow access to /postinstall/apex.
+allow postinstall_dexopt postinstall_apex_mnt_dir:dir { getattr search };
+
+# Note: /data/ota is created by init (see system/core/rootdir/init.rc) to avoid giving access
+# here and having to relabel the directory.
+
+# Read app data (APKs) as input to dex2oat.
+
+#line 45
+allow postinstall_dexopt apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 45
+allow postinstall_dexopt apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 45
+
+# Read vendor app data (APKs) as input to dex2oat.
+
+#line 47
+allow postinstall_dexopt vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 47
+allow postinstall_dexopt vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 47
+
+# Read vendor overlay files (APKs) as input to dex2oat.
+
+#line 49
+allow postinstall_dexopt vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 49
+allow postinstall_dexopt vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 49
+
+# Vendor overlay can be found in vendor apex
+allow postinstall_dexopt vendor_apex_metadata_file:dir { getattr search };
+# Access to app oat directory.
+
+#line 53
+allow postinstall_dexopt dalvikcache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 53
+allow postinstall_dexopt dalvikcache_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 53
+
+
+# Read profile data.
+allow postinstall_dexopt { user_profile_root_file user_profile_data_file }:dir { getattr search };
+allow postinstall_dexopt user_profile_data_file:file { getattr open read ioctl lock map watch watch_reads };
+# Suppress deletion denial (we do not want to update the profile).
+dontaudit postinstall_dexopt user_profile_data_file:file { write };
+
+# Write to /data/ota(/*). Create symlinks in /data/ota(/*)
+allow postinstall_dexopt ota_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow postinstall_dexopt ota_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow postinstall_dexopt ota_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Need to write .b files, which are dalvikcache_data_file, not ota_data_file.
+# TODO: See whether we can apply ota_data_file?
+allow postinstall_dexopt dalvikcache_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow postinstall_dexopt dalvikcache_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow labeling of files under /data/app/com.example/oat/
+# TODO: Restrict to .b suffix?
+allow postinstall_dexopt dalvikcache_data_file:dir relabelto;
+allow postinstall_dexopt dalvikcache_data_file:file { relabelto link };
+
+# Check validity of SELinux context before use.
+
+#line 77
+
+#line 77
+allow postinstall_dexopt selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 77
+allow postinstall_dexopt selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 77
+
+#line 77
+allow postinstall_dexopt selinuxfs:file { open append write lock map };
+#line 77
+allow postinstall_dexopt kernel:security check_context;
+#line 77
+
+
+#line 78
+
+#line 78
+allow postinstall_dexopt selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 78
+allow postinstall_dexopt selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 78
+
+#line 78
+allow postinstall_dexopt selinuxfs:file { open append write lock map };
+#line 78
+allow postinstall_dexopt kernel:security compute_av;
+#line 78
+allow postinstall_dexopt self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 78
+
+
+
+# Postinstall wants to know about our child.
+allow postinstall_dexopt postinstall:process sigchld;
+
+# Allow otapreopt to use file descriptors from otapreopt_chroot.
+# TODO: Probably we can actually close file descriptors...
+allow postinstall_dexopt otapreopt_chroot:fd use;
+
+# Allow postinstall_dexopt to access the runtime feature flag properties.
+
+#line 89
+allow postinstall_dexopt device_config_runtime_native_prop:file { getattr open read map };
+#line 89
+
+
+#line 90
+allow postinstall_dexopt device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 90
+
+#line 1 "system/sepolicy/private/preloads_copy.te"
+type preloads_copy, domain, coredomain;
+type preloads_copy_exec, system_file_type, exec_type, file_type;
+
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init preloads_copy_exec:file { getattr open read execute map };
+#line 4
+allow init preloads_copy:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow preloads_copy preloads_copy_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init preloads_copy:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init preloads_copy:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init preloads_copy_exec:process preloads_copy;
+#line 4
+
+#line 4
+
+
+allow preloads_copy shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow preloads_copy toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow preloads_copy preloads_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow preloads_copy preloads_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow preloads_copy preloads_media_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow preloads_copy preloads_media_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow to copy from /postinstall
+allow preloads_copy system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Silence the denial when /postinstall cannot be mounted, e.g., system_other
+# is wiped, but preloads_copy.sh still runs.
+dontaudit preloads_copy postinstall_mnt_dir:dir search;
+#line 1 "system/sepolicy/private/preopt2cachename.te"
+# preopt2cachename executable
+#
+# This executable translates names from the preopted versions the build system
+# creates to the names the runtime expects in the data directory.
+
+type preopt2cachename, domain, coredomain;
+type preopt2cachename_exec, system_file_type, exec_type, file_type;
+
+# Allow write to stdout.
+allow preopt2cachename cppreopts:fd use;
+allow preopt2cachename cppreopts:fifo_file { getattr read write };
+
+# Allow write to logcat.
+allow preopt2cachename proc_net_type:file { getattr open read ioctl lock map watch watch_reads };
+#line 17
+
+#line 1 "system/sepolicy/private/priv_app.te"
+###
+### A domain for further sandboxing privileged apps.
+###
+
+typeattribute priv_app coredomain;
+
+#line 6
+typeattribute priv_app appdomain;
+#line 6
+# Label tmpfs objects for all apps.
+#line 6
+type_transition priv_app tmpfs:file appdomain_tmpfs;
+#line 6
+
+#line 6
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 6
+type priv_app_userfaultfd;
+#line 6
+type_transition priv_app priv_app:anon_inode priv_app_userfaultfd "[userfaultfd]";
+#line 6
+# Allow domain to create/use userfaultfd anon_inode.
+#line 6
+allow priv_app priv_app_userfaultfd:anon_inode { create ioctl read };
+#line 6
+# Suppress errors generate during bugreport
+#line 6
+dontaudit su priv_app_userfaultfd:anon_inode *;
+#line 6
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 6
+neverallow { domain -priv_app } priv_app_userfaultfd:anon_inode *;
+#line 6
+
+#line 6
+allow priv_app appdomain_tmpfs:file { execute getattr map read write };
+#line 6
+neverallow { priv_app -runas_app -shell -simpleperf } { domain -priv_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+neverallow { appdomain -runas_app -shell -simpleperf -priv_app } priv_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+# The Android security model guarantees the confidentiality and integrity
+#line 6
+# of application data and execution state. Ptrace bypasses those
+#line 6
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 6
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 6
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 6
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 6
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 6
+# live lock conditions.
+#line 6
+neverallow { domain -priv_app -crash_dump  -runas_app -simpleperf } priv_app:process ptrace;
+#line 6
+
+
+# Access the network.
+
+#line 9
+typeattribute priv_app netdomain;
+#line 9
+
+# Access bluetooth.
+
+#line 11
+typeattribute priv_app bluetoothdomain;
+#line 11
+
+
+# Allow the allocation and use of ptys
+# Used by: https://play.privileged.com/store/apps/details?id=jackpal.androidterm
+
+#line 15
+# Each domain gets a unique devpts type.
+#line 15
+type priv_app_devpts, fs_type;
+#line 15
+# Label the pty with the unique type when created.
+#line 15
+type_transition priv_app devpts:chr_file priv_app_devpts;
+#line 15
+# Allow use of the pty after creation.
+#line 15
+allow priv_app priv_app_devpts:chr_file { open getattr read write ioctl };
+#line 15
+allowxperm priv_app priv_app_devpts:chr_file ioctl {
+#line 15
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 15
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 15
+};
+#line 15
+# TIOCSTI is only ever used for exploits. Block it.
+#line 15
+# b/33073072, b/7530569
+#line 15
+# http://www.openwall.com/lists/oss-security/2016/09/26/14
+#line 15
+neverallowxperm * priv_app_devpts:chr_file ioctl 0x00005412;
+#line 15
+# Note: devpts:dir search and ptmx_device:chr_file rw_file_perms
+#line 15
+# allowed to everyone via domain.te.
+#line 15
+
+
+# Allow loading executable code from writable priv-app home
+# directories. This is a W^X violation, however, it needs
+# to be supported for now for the following reasons.
+# * /data/user_*/0/*/code_cache/* POSSIBLE uses (b/117841367)
+#   1) com.android.opengl.shaders_cache
+#   2) com.android.skia.shaders_cache
+#   3) com.android.renderscript.cache
+# * /data/user_de/0/com.google.android.gms/app_chimera
+# TODO: Tighten (b/112357170)
+allow priv_app privapp_data_file:file execute;
+
+# Chrome Crashpad uses the the dynamic linker to load native executables
+# from an APK (b/112050209, crbug.com/928422)
+allow priv_app system_linker_exec:file execute_no_trans;
+
+allow priv_app privapp_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Priv apps can find services that expose both @SystemAPI and normal APIs.
+allow priv_app app_api_service:service_manager find;
+allow priv_app system_api_service:service_manager find;
+
+allow priv_app audioserver_service:service_manager find;
+allow priv_app cameraserver_service:service_manager find;
+allow priv_app drmserver_service:service_manager find;
+allow priv_app mediadrmserver_service:service_manager find;
+allow priv_app mediaextractor_service:service_manager find;
+allow priv_app mediametrics_service:service_manager find;
+allow priv_app mediaserver_service:service_manager find;
+allow priv_app music_recognition_service:service_manager find;
+allow priv_app network_watchlist_service:service_manager find;
+allow priv_app nfc_service:service_manager find;
+allow priv_app oem_lock_service:service_manager find;
+allow priv_app persistent_data_block_service:service_manager find;
+allow priv_app radio_service:service_manager find;
+allow priv_app recovery_service:service_manager find;
+allow priv_app stats_service:service_manager find;
+
+# Write to /cache.
+allow priv_app { cache_file cache_recovery_file }:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow priv_app { cache_file cache_recovery_file }:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# /cache is a symlink to /data/cache on some devices. Allow reading the link.
+allow priv_app cache_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Access to /data/media.
+allow priv_app media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow priv_app media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Used by Finsky / Android "Verify Apps" functionality when
+# running "adb install foo.apk".
+allow priv_app shell_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow priv_app shell_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow traceur to pass file descriptors through a content provider to betterbug
+allow priv_app trace_data_file:file { getattr read };
+
+# Allow betterbug to read profile reports generated by profcollect.
+#line 75
+
+
+# Allow the bug reporting frontend to read the presence and timestamp of the
+# trace attached to the bugreport (but not its contents, which will go in the
+# usual bugreport .zip file). This is used by the bug reporting UI to tell if
+# the bugreport will contain a system trace or not while the bugreport is still
+# in progress.
+allow priv_app wm_trace_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow priv_app wm_trace_data_file:file getattr;
+allow priv_app perfetto_traces_bugreport_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow priv_app perfetto_traces_bugreport_data_file:file { getattr };
+# Required to traverse the parent dir (/data/misc/perfetto-traces).
+allow priv_app perfetto_traces_data_file:dir { search };
+
+# Allow priv apps (e.g. BetterBug) to receive Perfetto traces through
+# the framework (i.e. TracingServiceProxy) and sendfile them into their private
+# directories for reporting when network and battery conditions are
+# appropriate.
+allow priv_app perfetto:fd use;
+allow priv_app perfetto_traces_data_file:file { read getattr };
+
+# Allow verifier to access staged apks.
+allow priv_app { apk_tmp_file apk_private_tmp_file }:dir { open getattr read search ioctl lock watch watch_reads };
+allow priv_app { apk_tmp_file apk_private_tmp_file }:file { getattr open read ioctl lock map watch watch_reads };
+
+# For AppFuse.
+allow priv_app vold:fd use;
+allow priv_app fuse_device:chr_file { read write };
+
+# /proc access
+allow priv_app {
+  proc_vmstat
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+allow priv_app sysfs_type:dir search;
+# Read access to /sys/block/zram*/mm_stat
+
+#line 111
+allow priv_app sysfs_zram:dir { open getattr read search ioctl lock watch watch_reads };
+#line 111
+allow priv_app sysfs_zram:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 111
+
+
+
+#line 113
+allow priv_app rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 113
+allow priv_app rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 113
+
+
+# Allow com.android.vending to communicate with statsd.
+
+#line 116
+# Call the server domain and optionally transfer references to it.
+#line 116
+allow priv_app statsd:binder { call transfer };
+#line 116
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 116
+allow statsd priv_app:binder transfer;
+#line 116
+# Receive and use open files from the server.
+#line 116
+allow priv_app statsd:fd use;
+#line 116
+
+
+# Allow Phone to read/write cached ringtones (opened by system).
+allow priv_app ringtone_file:file { getattr read write };
+
+# Access to /data/preloads
+allow priv_app preloads_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow priv_app preloads_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow priv_app preloads_media_file:file { getattr open read ioctl lock map watch watch_reads };
+allow priv_app preloads_media_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+
+#line 127
+allow priv_app runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 127
+
+
+# Allow priv_apps to request and collect incident reports.
+# (Also requires DUMP and PACKAGE_USAGE_STATS permissions)
+allow priv_app incident_service:service_manager find;
+
+#line 132
+# Call the server domain and optionally transfer references to it.
+#line 132
+allow priv_app incidentd:binder { call transfer };
+#line 132
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 132
+allow incidentd priv_app:binder transfer;
+#line 132
+# Receive and use open files from the server.
+#line 132
+allow priv_app incidentd:fd use;
+#line 132
+
+allow priv_app incidentd:fifo_file { read write };
+
+# Allow priv_apps to check whether Dynamic System Update is enabled
+
+#line 136
+allow priv_app dynamic_system_prop:file { getattr open read map };
+#line 136
+
+
+# suppress denials for non-API accesses.
+dontaudit priv_app exec_type:file getattr;
+dontaudit priv_app device:dir read;
+dontaudit priv_app fs_bpf:dir search;
+dontaudit priv_app net_dns_prop:file read;
+dontaudit priv_app proc:file read;
+dontaudit priv_app proc_interrupts:file read;
+dontaudit priv_app proc_modules:file read;
+dontaudit priv_app proc_net:file read;
+dontaudit priv_app proc_stat:file read;
+dontaudit priv_app proc_version:file read;
+dontaudit priv_app sysfs:dir read;
+dontaudit priv_app sysfs:file read;
+dontaudit priv_app sysfs_android_usb:file read;
+dontaudit priv_app sysfs_dm:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit priv_app { wifi_prop wifi_config_prop wifi_hal_prop }:file read;
+
+# allow privileged apps to use UDP sockets provided by the system server but not
+# modify them other than to connect
+allow priv_app system_server:udp_socket {
+        connect getattr read recvfrom sendto write getopt setopt };
+
+# allow apps like Phonesky to check the file signature of an apk installed on
+# the Incremental File System, fill missing blocks and get the app status and loading progress
+allowxperm priv_app apk_data_file:file ioctl {
+  0x0000671f
+  0x00006720
+  0x00006724
+  0x00006722
+};
+
+# allow privileged data loader apps (e.g. com.android.vending) to read logs from Incremental File System
+allow priv_app incremental_control_file:file { read getattr ioctl };
+
+# allow apps like Phonesky to request permission to fill blocks of an apk file
+# on the Incremental File System.
+allowxperm priv_app incremental_control_file:file ioctl 0x00006721;
+
+# allow privileged apps to read the vendor property that indicates if Incremental File System is enabled
+
+#line 177
+allow priv_app incremental_prop:file { getattr open read map };
+#line 177
+
+
+# allow privileged apps to read the device config flags.
+
+#line 180
+allow priv_app device_config_aconfig_flags_prop:file { getattr open read map };
+#line 180
+
+
+# allow privileged apps to read boot reason property
+
+#line 183
+allow priv_app system_boot_reason_prop:file { getattr open read map };
+#line 183
+
+
+# Required for Phonesky to be able to read APEX files under /data/apex/active/.
+allow priv_app apex_data_file:dir search;
+allow priv_app staging_data_file:file { getattr open read ioctl lock map watch watch_reads };
+# Required for Phonesky to be able to read staged files under /data/app-staging.
+allow priv_app staging_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow com.android.vending to access files under vendor/apex as well as system apex files.
+# This is required for com.android.vending to handle APEXes for e.g. delta patch optimization.
+allow priv_app vendor_apex_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow priv_app vendor_apex_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# allow priv app to access the system app data files for ContentProvider case.
+allow priv_app system_app_data_file:file { read getattr };
+
+# Allow the renderscript compiler to be run.
+
+#line 200
+# Allow the necessary permissions.
+#line 200
+
+#line 200
+# Old domain may exec the file and transition to the new domain.
+#line 200
+allow priv_app rs_exec:file { getattr open read execute map };
+#line 200
+allow priv_app rs:process transition;
+#line 200
+# New domain is entered by executing the file.
+#line 200
+allow rs rs_exec:file { entrypoint open read execute getattr map };
+#line 200
+# New domain can send SIGCHLD to its caller.
+#line 200
+allow rs priv_app:process sigchld;
+#line 200
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 200
+dontaudit priv_app rs:process noatsecure;
+#line 200
+# XXX dontaudit candidate but requires further study.
+#line 200
+allow priv_app rs:process { siginh rlimitinh };
+#line 200
+
+#line 200
+# Make the transition occur by default.
+#line 200
+type_transition priv_app rs_exec:process rs;
+#line 200
+
+
+# Allow loading and deleting executable shared libraries
+# within an application home directory. Such shared libraries would be
+# created by things like renderscript or via other mechanisms.
+allow priv_app app_exec_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute unlink };
+
+# Allow privileged apps to create a VM. Note that access is still
+# guarded with the `android.permission.MANAGE_VIRTUAL_MACHINE`
+# permission.
+
+#line 210
+# Transition to virtualizationmanager when the client executes it.
+#line 210
+
+#line 210
+# Allow the necessary permissions.
+#line 210
+
+#line 210
+# Old domain may exec the file and transition to the new domain.
+#line 210
+allow priv_app virtualizationmanager_exec:file { getattr open read execute map };
+#line 210
+allow priv_app virtualizationmanager:process transition;
+#line 210
+# New domain is entered by executing the file.
+#line 210
+allow virtualizationmanager virtualizationmanager_exec:file { entrypoint open read execute getattr map };
+#line 210
+# New domain can send SIGCHLD to its caller.
+#line 210
+allow virtualizationmanager priv_app:process sigchld;
+#line 210
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 210
+dontaudit priv_app virtualizationmanager:process noatsecure;
+#line 210
+# XXX dontaudit candidate but requires further study.
+#line 210
+allow priv_app virtualizationmanager:process { siginh rlimitinh };
+#line 210
+
+#line 210
+# Make the transition occur by default.
+#line 210
+type_transition priv_app virtualizationmanager_exec:process virtualizationmanager;
+#line 210
+
+#line 210
+# Allow virtualizationmanager to communicate over UDS with the client.
+#line 210
+allow { virtualizationmanager crosvm } priv_app:unix_stream_socket { ioctl getattr read write };
+#line 210
+# Let the client pass file descriptors to virtualizationmanager and on to crosvm.
+#line 210
+allow { virtualizationmanager crosvm } priv_app:fd use;
+#line 210
+# Let the client use file descriptors created by virtualizationmanager.
+#line 210
+allow priv_app virtualizationmanager:fd use;
+#line 210
+# Allow piping console log to the client
+#line 210
+allow { virtualizationmanager crosvm } priv_app:fifo_file { ioctl getattr read write };
+#line 210
+# Allow client to read/write vsock created by virtualizationmanager to communicate with the VM
+#line 210
+# that it created. Notice that we do not grant permission to create a vsock;
+#line 210
+# the client can only connect to VMs that it owns.
+#line 210
+allow priv_app virtualizationmanager:vsock_socket { getattr getopt read write };
+#line 210
+# Allow client to inspect hypervisor capabilities
+#line 210
+
+#line 210
+allow priv_app hypervisor_prop:file { getattr open read map };
+#line 210
+
+#line 210
+# Allow client to read (but not open) the crashdump provided by virtualizationmanager
+#line 210
+allow priv_app virtualizationservice_data_file:file { getattr read };
+#line 210
+
+
+###
+### neverallow rules
+###
+
+# Receive or send uevent messages.
+neverallow priv_app domain:netlink_kobject_uevent_socket *;
+
+# Receive or send generic netlink messages
+neverallow priv_app domain:netlink_socket *;
+
+# Read or write kernel printk buffer
+neverallow priv_app kmsg_device:chr_file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Too much leaky information in debugfs. It's a security
+# best practice to ensure these files aren't readable.
+neverallow priv_app debugfs_type:file read;
+
+# Do not allow privileged apps to register services.
+# Only trusted components of Android should be registering
+# services.
+neverallow priv_app service_manager_type:service_manager add;
+
+# Do not allow privileged apps to connect to the property service
+# or set properties. b/10243159
+neverallow priv_app property_socket:sock_file write;
+neverallow priv_app init:unix_stream_socket connectto;
+neverallow priv_app property_type:property_service set;
+
+# Do not allow priv_app to be assigned mlstrustedsubject.
+# This would undermine the per-user isolation model being
+# enforced via levelFrom=user in seapp_contexts and the mls
+# constraints.  As there is no direct way to specify a neverallow
+# on attribute assignment, this relies on the fact that fork
+# permission only makes sense within a domain (hence should
+# never be granted to any other domain within mlstrustedsubject)
+# and priv_app is allowed fork permission to itself.
+neverallow priv_app mlstrustedsubject:process fork;
+
+# Do not allow priv_app to hard link to any files.
+# In particular, if priv_app links to other app data
+# files, installd will not be able to guarantee the deletion
+# of the linked to file. Hard links also contribute to security
+# bugs, so we want to ensure priv_app never has this
+# capability.
+neverallow priv_app file_type:file link;
+
+# priv apps should not be able to open trace data files, they should depend
+# upon traceur to pass a file descriptor which they can then read
+neverallow priv_app trace_data_file:dir *;
+neverallow priv_app trace_data_file:file { { append create link unlink relabelfrom rename setattr write } open };
+
+# Do not allow priv_app access to cgroups.
+neverallow priv_app cgroup:file *;
+neverallow priv_app cgroup_v2:file *;
+
+# Do not allow loading executable code from non-privileged
+# application home directories. Code loading across a security boundary
+# is dangerous and allows a full compromise of a privileged process
+# by an unprivileged process. b/112357170
+neverallow priv_app { app_data_file_type -privapp_data_file }:file { execute execute_no_trans };
+
+# Do not follow any app provided symlinks
+neverallow priv_app { app_data_file_type -privapp_data_file }:lnk_file { open read getattr };
+
+# Do not allow getting permission-protected network information from sysfs.
+neverallow priv_app sysfs_net:file *;
+
+# Restrict socket ioctls. Either 1. disallow privileged ioctls, 2. disallow the
+# ioctl permission, or 3. disallow the socket class.
+neverallowxperm priv_app domain:{ icmp_socket rawip_socket tcp_socket udp_socket } ioctl 
+#line 281
+{
+#line 281
+# qualcomm rmnet ioctls
+#line 281
+0x00006900 0x00006902
+#line 281
+# socket ioctls
+#line 281
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 281
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 281
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 281
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 281
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 281
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 281
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 281
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 281
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 281
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 281
+# device and protocol specific ioctls
+#line 281
+0x000089f0-0x000089ff
+#line 281
+0x000089e0-0x000089ef
+#line 281
+# Wireless extension ioctls
+#line 281
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 281
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 281
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 281
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 281
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 281
+0x00008b34 0x00008b35 0x00008b36
+#line 281
+# Dev private ioctl i.e. hardware specific ioctls
+#line 281
+0x00008be0-0x00008bff
+#line 281
+};
+neverallow priv_app *:{ netlink_route_socket netlink_selinux_socket } ioctl;
+neverallow priv_app *:{
+  socket netlink_socket packet_socket key_socket appletalk_socket
+  netlink_tcpdiag_socket netlink_nflog_socket
+  netlink_xfrm_socket netlink_audit_socket
+  netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket
+  netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket
+  netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket
+  netlink_rdma_socket netlink_crypto_socket sctp_socket
+  ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket
+  atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket
+  bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket
+  alg_socket nfc_socket kcm_socket qipcrtr_socket smc_socket xdp_socket
+} *;
+
+# Allow priv apps to report off body events to keystore2.
+allow priv_app keystore:keystore2 report_off_body;
+
+# Allow priv_apps to check if archiving is enabled
+
+#line 301
+allow priv_app pm_archiving_enabled_prop:file { getattr open read map };
+#line 301
+
+#line 1 "system/sepolicy/private/prng_seeder.te"
+# PRNG seeder daemon
+# Started from early init, maintains a FIPS approved DRBG which it periodically reseeds from
+# /dev/hw_random.  When BoringSSL (libcrypto) in other processes needs seeding data for its
+# internal DRBGs it will connect to /dev/socket/prng_seeder and the daemon will write a
+# fixed size block of entropy then disconnect.  No other IO is performed.
+typeattribute prng_seeder coredomain;
+
+# mlstrustedsubject required in order to allow connections from trusted app domains.
+typeattribute prng_seeder mlstrustedsubject;
+
+type prng_seeder_exec, system_file_type, exec_type, file_type;
+
+#line 12
+
+#line 12
+# Allow the necessary permissions.
+#line 12
+
+#line 12
+# Old domain may exec the file and transition to the new domain.
+#line 12
+allow init prng_seeder_exec:file { getattr open read execute map };
+#line 12
+allow init prng_seeder:process transition;
+#line 12
+# New domain is entered by executing the file.
+#line 12
+allow prng_seeder prng_seeder_exec:file { entrypoint open read execute getattr map };
+#line 12
+# New domain can send SIGCHLD to its caller.
+#line 12
+
+#line 12
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 12
+dontaudit init prng_seeder:process noatsecure;
+#line 12
+# XXX dontaudit candidate but requires further study.
+#line 12
+allow init prng_seeder:process { siginh rlimitinh };
+#line 12
+
+#line 12
+# Make the transition occur by default.
+#line 12
+type_transition init prng_seeder_exec:process prng_seeder;
+#line 12
+
+#line 12
+
+
+# Socket open and listen are performed by init.
+allow prng_seeder prng_seeder:unix_stream_socket { read write getattr accept };
+allow prng_seeder hw_random_device:chr_file { read open };
+allow prng_seeder kmsg_debug_device:chr_file { { open append write lock map } getattr ioctl };
+#line 1 "system/sepolicy/private/profcollectd.te"
+# profcollectd - hardware profile collection daemon
+type profcollectd, domain, coredomain, mlstrustedsubject;
+type profcollectd_exec, system_file_type, exec_type, file_type;
+
+#line 66
+
+#line 1 "system/sepolicy/private/profman.te"
+typeattribute profman coredomain;
+
+# Allow profman to read APKs and profile files next to them by FDs passed from
+# other programs. In addition, allow profman to acquire flocks on those files.
+allow profman {
+  system_file
+  apk_data_file
+  vendor_app_file
+}:file { getattr read map lock };
+
+# Allow profman to use file descriptors passed from privileged programs.
+allow profman { artd installd }:fd use;
+
+# Allow profman to read from memfd created by artd.
+# profman needs to read the embedded profile that artd extracts from an APK,
+# which is passed by a memfd.
+allow profman artd_tmpfs:file { getattr read map lock };
+#line 1 "system/sepolicy/private/property.te"
+# Properties used only in /system
+
+#line 2
+  
+#line 2
+  type adbd_prop, property_type, system_property_type, system_internal_property_type;
+#line 2
+
+#line 2
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 2
+
+#line 2
+    neverallow { domain -coredomain } adbd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 2
+  
+#line 2
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 2
+
+#line 2
+
+
+#line 3
+  
+#line 3
+  type apexd_payload_metadata_prop, property_type, system_property_type, system_internal_property_type;
+#line 3
+
+#line 3
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 3
+
+#line 3
+    neverallow { domain -coredomain } apexd_payload_metadata_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+  
+#line 3
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 3
+
+#line 3
+
+
+#line 4
+  
+#line 4
+  type ctl_snapuserd_prop, property_type, system_property_type, system_internal_property_type;
+#line 4
+
+#line 4
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 4
+
+#line 4
+    neverallow { domain -coredomain } ctl_snapuserd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 4
+  
+#line 4
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 4
+
+#line 4
+
+
+#line 5
+  
+#line 5
+  type crashrecovery_prop, property_type, system_property_type, system_internal_property_type;
+#line 5
+
+#line 5
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 5
+
+#line 5
+    neverallow { domain -coredomain } crashrecovery_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 5
+  
+#line 5
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 5
+
+#line 5
+
+
+#line 6
+  
+#line 6
+  type device_config_core_experiments_team_internal_prop, property_type, system_property_type, system_internal_property_type;
+#line 6
+
+#line 6
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 6
+
+#line 6
+    neverallow { domain -coredomain } device_config_core_experiments_team_internal_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+  
+#line 6
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 6
+
+#line 6
+
+
+#line 7
+  
+#line 7
+  type device_config_lmkd_native_prop, property_type, system_property_type, system_internal_property_type;
+#line 7
+
+#line 7
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 7
+
+#line 7
+    neverallow { domain -coredomain } device_config_lmkd_native_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+  
+#line 7
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 7
+
+#line 7
+
+
+#line 8
+  
+#line 8
+  type device_config_mglru_native_prop, property_type, system_property_type, system_internal_property_type;
+#line 8
+
+#line 8
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 8
+
+#line 8
+    neverallow { domain -coredomain } device_config_mglru_native_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 8
+  
+#line 8
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 8
+
+#line 8
+
+
+#line 9
+  
+#line 9
+  type device_config_profcollect_native_boot_prop, property_type, system_property_type, system_internal_property_type;
+#line 9
+
+#line 9
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 9
+
+#line 9
+    neverallow { domain -coredomain } device_config_profcollect_native_boot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 9
+  
+#line 9
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 9
+
+#line 9
+
+
+#line 10
+  
+#line 10
+  type device_config_remote_key_provisioning_native_prop, property_type, system_property_type, system_internal_property_type;
+#line 10
+
+#line 10
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 10
+
+#line 10
+    neverallow { domain -coredomain } device_config_remote_key_provisioning_native_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 10
+  
+#line 10
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 10
+
+#line 10
+
+
+#line 11
+  
+#line 11
+  type device_config_statsd_native_prop, property_type, system_property_type, system_internal_property_type;
+#line 11
+
+#line 11
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 11
+
+#line 11
+    neverallow { domain -coredomain } device_config_statsd_native_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 11
+  
+#line 11
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 11
+
+#line 11
+
+
+#line 12
+  
+#line 12
+  type device_config_statsd_native_boot_prop, property_type, system_property_type, system_internal_property_type;
+#line 12
+
+#line 12
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 12
+
+#line 12
+    neverallow { domain -coredomain } device_config_statsd_native_boot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 12
+  
+#line 12
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 12
+
+#line 12
+
+
+#line 13
+  
+#line 13
+  type device_config_storage_native_boot_prop, property_type, system_property_type, system_internal_property_type;
+#line 13
+
+#line 13
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 13
+
+#line 13
+    neverallow { domain -coredomain } device_config_storage_native_boot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+  
+#line 13
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 13
+
+#line 13
+
+
+#line 14
+  
+#line 14
+  type device_config_sys_traced_prop, property_type, system_property_type, system_internal_property_type;
+#line 14
+
+#line 14
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 14
+
+#line 14
+    neverallow { domain -coredomain } device_config_sys_traced_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 14
+  
+#line 14
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 14
+
+#line 14
+
+
+#line 15
+  
+#line 15
+  type device_config_window_manager_native_boot_prop, property_type, system_property_type, system_internal_property_type;
+#line 15
+
+#line 15
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+    neverallow { domain -coredomain } device_config_window_manager_native_boot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+  
+#line 15
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 15
+
+#line 15
+
+
+#line 16
+  
+#line 16
+  type device_config_configuration_prop, property_type, system_property_type, system_internal_property_type;
+#line 16
+
+#line 16
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 16
+
+#line 16
+    neverallow { domain -coredomain } device_config_configuration_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 16
+  
+#line 16
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 16
+
+#line 16
+
+
+#line 17
+  
+#line 17
+  type device_config_connectivity_prop, property_type, system_property_type, system_internal_property_type;
+#line 17
+
+#line 17
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 17
+
+#line 17
+    neverallow { domain -coredomain } device_config_connectivity_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 17
+  
+#line 17
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 17
+
+#line 17
+
+
+#line 18
+  
+#line 18
+  type device_config_swcodec_native_prop, property_type, system_property_type, system_internal_property_type;
+#line 18
+
+#line 18
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 18
+
+#line 18
+    neverallow { domain -coredomain } device_config_swcodec_native_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 18
+  
+#line 18
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 18
+
+#line 18
+
+
+#line 19
+  
+#line 19
+  type device_config_tethering_u_or_later_native_prop, property_type, system_property_type, system_internal_property_type;
+#line 19
+
+#line 19
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 19
+
+#line 19
+    neverallow { domain -coredomain } device_config_tethering_u_or_later_native_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 19
+  
+#line 19
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 19
+
+#line 19
+
+
+#line 20
+  
+#line 20
+  type dmesgd_start_prop, property_type, system_property_type, system_internal_property_type;
+#line 20
+
+#line 20
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 20
+
+#line 20
+    neverallow { domain -coredomain } dmesgd_start_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 20
+  
+#line 20
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 20
+
+#line 20
+
+
+#line 21
+  
+#line 21
+  type fastbootd_protocol_prop, property_type, system_property_type, system_internal_property_type;
+#line 21
+
+#line 21
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 21
+
+#line 21
+    neverallow { domain -coredomain } fastbootd_protocol_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 21
+  
+#line 21
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 21
+
+#line 21
+
+
+#line 22
+  
+#line 22
+  type gsid_prop, property_type, system_property_type, system_internal_property_type;
+#line 22
+
+#line 22
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 22
+
+#line 22
+    neverallow { domain -coredomain } gsid_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 22
+  
+#line 22
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 22
+
+#line 22
+
+
+#line 23
+  
+#line 23
+  type init_perf_lsm_hooks_prop, property_type, system_property_type, system_internal_property_type;
+#line 23
+
+#line 23
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 23
+
+#line 23
+    neverallow { domain -coredomain } init_perf_lsm_hooks_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 23
+  
+#line 23
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 23
+
+#line 23
+
+
+#line 24
+  
+#line 24
+  type init_service_status_private_prop, property_type, system_property_type, system_internal_property_type;
+#line 24
+
+#line 24
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 24
+
+#line 24
+    neverallow { domain -coredomain } init_service_status_private_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 24
+  
+#line 24
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 24
+
+#line 24
+
+
+#line 25
+  
+#line 25
+  type init_storage_prop, property_type, system_property_type, system_internal_property_type;
+#line 25
+
+#line 25
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 25
+
+#line 25
+    neverallow { domain -coredomain } init_storage_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 25
+  
+#line 25
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 25
+
+#line 25
+
+
+#line 26
+  
+#line 26
+  type init_svc_debug_prop, property_type, system_property_type, system_internal_property_type;
+#line 26
+
+#line 26
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 26
+
+#line 26
+    neverallow { domain -coredomain } init_svc_debug_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 26
+  
+#line 26
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 26
+
+#line 26
+
+
+#line 27
+  
+#line 27
+  type keystore_crash_prop, property_type, system_property_type, system_internal_property_type;
+#line 27
+
+#line 27
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 27
+
+#line 27
+    neverallow { domain -coredomain } keystore_crash_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 27
+  
+#line 27
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 27
+
+#line 27
+
+
+#line 28
+  
+#line 28
+  type keystore_listen_prop, property_type, system_property_type, system_internal_property_type;
+#line 28
+
+#line 28
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 28
+
+#line 28
+    neverallow { domain -coredomain } keystore_listen_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 28
+  
+#line 28
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 28
+
+#line 28
+
+
+#line 29
+  
+#line 29
+  type last_boot_reason_prop, property_type, system_property_type, system_internal_property_type;
+#line 29
+
+#line 29
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 29
+
+#line 29
+    neverallow { domain -coredomain } last_boot_reason_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 29
+  
+#line 29
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 29
+
+#line 29
+
+
+#line 30
+  
+#line 30
+  type localization_prop, property_type, system_property_type, system_internal_property_type;
+#line 30
+
+#line 30
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 30
+
+#line 30
+    neverallow { domain -coredomain } localization_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 30
+  
+#line 30
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 30
+
+#line 30
+
+
+#line 31
+  
+#line 31
+  type logd_auditrate_prop, property_type, system_property_type, system_internal_property_type;
+#line 31
+
+#line 31
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 31
+
+#line 31
+    neverallow { domain -coredomain } logd_auditrate_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 31
+  
+#line 31
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 31
+
+#line 31
+
+
+#line 32
+  
+#line 32
+  type lower_kptr_restrict_prop, property_type, system_property_type, system_internal_property_type;
+#line 32
+
+#line 32
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 32
+
+#line 32
+    neverallow { domain -coredomain } lower_kptr_restrict_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 32
+  
+#line 32
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 32
+
+#line 32
+
+
+#line 33
+  
+#line 33
+  type net_464xlat_fromvendor_prop, property_type, system_property_type, system_internal_property_type;
+#line 33
+
+#line 33
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 33
+
+#line 33
+    neverallow { domain -coredomain } net_464xlat_fromvendor_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 33
+  
+#line 33
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 33
+
+#line 33
+
+
+#line 34
+  
+#line 34
+  type net_connectivity_prop, property_type, system_property_type, system_internal_property_type;
+#line 34
+
+#line 34
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 34
+
+#line 34
+    neverallow { domain -coredomain } net_connectivity_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 34
+  
+#line 34
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 34
+
+#line 34
+
+
+#line 35
+  
+#line 35
+  type netd_stable_secret_prop, property_type, system_property_type, system_internal_property_type;
+#line 35
+
+#line 35
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 35
+
+#line 35
+    neverallow { domain -coredomain } netd_stable_secret_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 35
+  
+#line 35
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 35
+
+#line 35
+
+
+#line 36
+  
+#line 36
+  type next_boot_prop, property_type, system_property_type, system_internal_property_type;
+#line 36
+
+#line 36
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 36
+
+#line 36
+    neverallow { domain -coredomain } next_boot_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 36
+  
+#line 36
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 36
+
+#line 36
+
+
+#line 37
+  
+#line 37
+  type odsign_prop, property_type, system_property_type, system_internal_property_type;
+#line 37
+
+#line 37
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 37
+
+#line 37
+    neverallow { domain -coredomain } odsign_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 37
+  
+#line 37
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 37
+
+#line 37
+
+
+#line 38
+  
+#line 38
+  type misctrl_prop, property_type, system_property_type, system_internal_property_type;
+#line 38
+
+#line 38
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 38
+
+#line 38
+    neverallow { domain -coredomain } misctrl_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 38
+  
+#line 38
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 38
+
+#line 38
+
+
+#line 39
+  
+#line 39
+  type perf_drop_caches_prop, property_type, system_property_type, system_internal_property_type;
+#line 39
+
+#line 39
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 39
+
+#line 39
+    neverallow { domain -coredomain } perf_drop_caches_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 39
+  
+#line 39
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 39
+
+#line 39
+
+
+#line 40
+  
+#line 40
+  type pm_prop, property_type, system_property_type, system_internal_property_type;
+#line 40
+
+#line 40
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 40
+
+#line 40
+    neverallow { domain -coredomain } pm_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 40
+  
+#line 40
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 40
+
+#line 40
+
+
+#line 41
+  
+#line 41
+  type profcollectd_node_id_prop, property_type, system_property_type, system_internal_property_type;
+#line 41
+
+#line 41
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 41
+
+#line 41
+    neverallow { domain -coredomain } profcollectd_node_id_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 41
+  
+#line 41
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 41
+
+#line 41
+
+
+#line 42
+  
+#line 42
+  type radio_cdma_ecm_prop, property_type, system_property_type, system_internal_property_type;
+#line 42
+
+#line 42
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 42
+
+#line 42
+    neverallow { domain -coredomain } radio_cdma_ecm_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 42
+  
+#line 42
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 42
+
+#line 42
+
+
+#line 43
+  
+#line 43
+  type remote_prov_prop, property_type, system_property_type, system_internal_property_type;
+#line 43
+
+#line 43
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 43
+
+#line 43
+    neverallow { domain -coredomain } remote_prov_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 43
+  
+#line 43
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 43
+
+#line 43
+
+
+#line 44
+  
+#line 44
+  type rollback_test_prop, property_type, system_property_type, system_internal_property_type;
+#line 44
+
+#line 44
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 44
+
+#line 44
+    neverallow { domain -coredomain } rollback_test_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 44
+  
+#line 44
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 44
+
+#line 44
+
+
+#line 45
+  
+#line 45
+  type setupwizard_prop, property_type, system_property_type, system_internal_property_type;
+#line 45
+
+#line 45
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 45
+
+#line 45
+    neverallow { domain -coredomain } setupwizard_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 45
+  
+#line 45
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 45
+
+#line 45
+
+
+#line 46
+  
+#line 46
+  type snapuserd_prop, property_type, system_property_type, system_internal_property_type;
+#line 46
+
+#line 46
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 46
+
+#line 46
+    neverallow { domain -coredomain } snapuserd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 46
+  
+#line 46
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 46
+
+#line 46
+
+
+#line 47
+  
+#line 47
+  type system_adbd_prop, property_type, system_property_type, system_internal_property_type;
+#line 47
+
+#line 47
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 47
+
+#line 47
+    neverallow { domain -coredomain } system_adbd_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 47
+  
+#line 47
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 47
+
+#line 47
+
+
+#line 48
+  
+#line 48
+  type system_audio_config_prop, property_type, system_property_type, system_internal_property_type;
+#line 48
+
+#line 48
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 48
+
+#line 48
+    neverallow { domain -coredomain } system_audio_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 48
+  
+#line 48
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 48
+
+#line 48
+
+
+#line 49
+  
+#line 49
+  type timezone_metadata_prop, property_type, system_property_type, system_internal_property_type;
+#line 49
+
+#line 49
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 49
+
+#line 49
+    neverallow { domain -coredomain } timezone_metadata_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 49
+  
+#line 49
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 49
+
+#line 49
+
+
+#line 50
+  
+#line 50
+  type traced_perf_enabled_prop, property_type, system_property_type, system_internal_property_type;
+#line 50
+
+#line 50
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 50
+
+#line 50
+    neverallow { domain -coredomain } traced_perf_enabled_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 50
+  
+#line 50
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 50
+
+#line 50
+
+
+#line 51
+  
+#line 51
+  type uprobestats_start_with_config_prop, property_type, system_property_type, system_internal_property_type;
+#line 51
+
+#line 51
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 51
+
+#line 51
+    neverallow { domain -coredomain } uprobestats_start_with_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 51
+  
+#line 51
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 51
+
+#line 51
+
+
+#line 52
+  
+#line 52
+  type tuner_server_ctl_prop, property_type, system_property_type, system_internal_property_type;
+#line 52
+
+#line 52
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 52
+
+#line 52
+    neverallow { domain -coredomain } tuner_server_ctl_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 52
+  
+#line 52
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 52
+
+#line 52
+
+
+#line 53
+  
+#line 53
+  type userspace_reboot_log_prop, property_type, system_property_type, system_internal_property_type;
+#line 53
+
+#line 53
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 53
+
+#line 53
+    neverallow { domain -coredomain } userspace_reboot_log_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 53
+  
+#line 53
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 53
+
+#line 53
+
+
+#line 54
+  
+#line 54
+  type userspace_reboot_test_prop, property_type, system_property_type, system_internal_property_type;
+#line 54
+
+#line 54
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 54
+
+#line 54
+    neverallow { domain -coredomain } userspace_reboot_test_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 54
+  
+#line 54
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 54
+
+#line 54
+
+
+#line 55
+  
+#line 55
+  type verity_status_prop, property_type, system_property_type, system_internal_property_type;
+#line 55
+
+#line 55
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 55
+
+#line 55
+    neverallow { domain -coredomain } verity_status_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 55
+  
+#line 55
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 55
+
+#line 55
+
+
+#line 56
+  
+#line 56
+  type zygote_wrap_prop, property_type, system_property_type, system_internal_property_type;
+#line 56
+
+#line 56
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 56
+
+#line 56
+    neverallow { domain -coredomain } zygote_wrap_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 56
+  
+#line 56
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 56
+
+#line 56
+
+
+#line 57
+  
+#line 57
+  type ctl_mediatranscoding_prop, property_type, system_property_type, system_internal_property_type;
+#line 57
+
+#line 57
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 57
+
+#line 57
+    neverallow { domain -coredomain } ctl_mediatranscoding_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 57
+  
+#line 57
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 57
+
+#line 57
+
+
+#line 58
+  
+#line 58
+  type ctl_odsign_prop, property_type, system_property_type, system_internal_property_type;
+#line 58
+
+#line 58
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 58
+
+#line 58
+    neverallow { domain -coredomain } ctl_odsign_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 58
+  
+#line 58
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 58
+
+#line 58
+
+
+#line 59
+  
+#line 59
+  type virtualizationservice_prop, property_type, system_property_type, system_internal_property_type;
+#line 59
+
+#line 59
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 59
+
+#line 59
+    neverallow { domain -coredomain } virtualizationservice_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 59
+  
+#line 59
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 59
+
+#line 59
+
+
+#line 60
+  
+#line 60
+  type ctl_apex_load_prop, property_type, system_property_type, system_internal_property_type;
+#line 60
+
+#line 60
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 60
+
+#line 60
+    neverallow { domain -coredomain } ctl_apex_load_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 60
+  
+#line 60
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 60
+
+#line 60
+
+
+#line 61
+  
+#line 61
+  type enable_16k_pages_prop, property_type, system_property_type, system_internal_property_type;
+#line 61
+
+#line 61
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 61
+
+#line 61
+    neverallow { domain -coredomain } enable_16k_pages_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 61
+  
+#line 61
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 61
+
+#line 61
+
+
+#line 62
+  
+#line 62
+  type sensors_config_prop, property_type, system_property_type, system_internal_property_type;
+#line 62
+
+#line 62
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 62
+
+#line 62
+    neverallow { domain -coredomain } sensors_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 62
+  
+#line 62
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 62
+
+#line 62
+
+
+#line 63
+  
+#line 63
+  type hypervisor_pvmfw_prop, property_type, system_property_type, system_internal_property_type;
+#line 63
+
+#line 63
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 63
+
+#line 63
+    neverallow { domain -coredomain } hypervisor_pvmfw_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 63
+  
+#line 63
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 63
+
+#line 63
+
+
+#line 64
+  
+#line 64
+  type hypervisor_virtualizationmanager_prop, property_type, system_property_type, system_internal_property_type;
+#line 64
+
+#line 64
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 64
+
+#line 64
+    neverallow { domain -coredomain } hypervisor_virtualizationmanager_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 64
+  
+#line 64
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 64
+
+#line 64
+
+
+#line 65
+  
+#line 65
+  type game_manager_config_prop, property_type, system_property_type, system_internal_property_type;
+#line 65
+
+#line 65
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 65
+
+#line 65
+    neverallow { domain -coredomain } game_manager_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 65
+  
+#line 65
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 65
+
+#line 65
+
+
+#line 66
+  
+#line 66
+  type hidl_memory_prop, property_type, system_property_type, system_internal_property_type;
+#line 66
+
+#line 66
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 66
+
+#line 66
+    neverallow { domain -coredomain } hidl_memory_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 66
+  
+#line 66
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 66
+
+#line 66
+
+
+#line 67
+  
+#line 67
+  type suspend_debug_prop, property_type, system_property_type, system_internal_property_type;
+#line 67
+
+#line 67
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 67
+
+#line 67
+    neverallow { domain -coredomain } suspend_debug_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 67
+  
+#line 67
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 67
+
+#line 67
+
+
+# Properties which can't be written outside system
+
+#line 70
+  
+#line 70
+  type device_config_virtualization_framework_native_prop, property_type, system_property_type, system_restricted_property_type;
+#line 70
+
+#line 70
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 70
+
+#line 70
+    neverallow { domain -coredomain } device_config_virtualization_framework_native_prop:property_service set;
+#line 70
+  
+#line 70
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 70
+
+#line 70
+
+
+#line 71
+  
+#line 71
+  type log_file_logger_prop, property_type, system_property_type, system_restricted_property_type;
+#line 71
+
+#line 71
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 71
+
+#line 71
+    neverallow { domain -coredomain } log_file_logger_prop:property_service set;
+#line 71
+  
+#line 71
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 71
+
+#line 71
+
+
+#line 72
+  
+#line 72
+  type persist_sysui_builder_extras_prop, property_type, system_property_type, system_restricted_property_type;
+#line 72
+
+#line 72
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 72
+
+#line 72
+    neverallow { domain -coredomain } persist_sysui_builder_extras_prop:property_service set;
+#line 72
+  
+#line 72
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 72
+
+#line 72
+
+
+#line 73
+  
+#line 73
+  type persist_sysui_ranking_update_prop, property_type, system_property_type, system_restricted_property_type;
+#line 73
+
+#line 73
+  # BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 73
+
+#line 73
+    neverallow { domain -coredomain } persist_sysui_ranking_update_prop:property_service set;
+#line 73
+  
+#line 73
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 73
+
+#line 73
+
+
+###
+### Neverallow rules
+###
+
+# BEGIN_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 79
+
+#line 79
+
+#line 79
+# BEGIN_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 79
+
+#line 79
+  neverallow domain {
+#line 79
+    property_type
+#line 79
+    -system_property_type
+#line 79
+    -system_property_type
+#line 79
+    -vendor_property_type
+#line 79
+  }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 79
+
+#line 79
+# END_LAUNCHING_WITH_S_ONLY -- this marker is used by CTS -- do not modify
+#line 79
+
+#line 79
+
+#line 79
+neverallow { domain -coredomain } {
+#line 79
+  system_property_type
+#line 79
+  system_internal_property_type
+#line 79
+  -system_restricted_property_type
+#line 79
+  -system_public_property_type
+#line 79
+}:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 79
+
+#line 79
+neverallow { domain -coredomain } {
+#line 79
+  system_property_type
+#line 79
+  -system_public_property_type
+#line 79
+}:property_service set;
+#line 79
+
+#line 79
+# init is in coredomain, but should be able to read/write all props.
+#line 79
+# dumpstate is also in coredomain, but should be able to read all props.
+#line 79
+neverallow { coredomain -init -dumpstate } {
+#line 79
+  vendor_property_type
+#line 79
+  vendor_internal_property_type
+#line 79
+  -vendor_restricted_property_type
+#line 79
+  -vendor_public_property_type
+#line 79
+}:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 79
+
+#line 79
+neverallow { coredomain -init } {
+#line 79
+  vendor_property_type
+#line 79
+  -vendor_public_property_type
+#line 79
+}:property_service set;
+#line 79
+
+#line 79
+
+#line 79
+# END_LAUNCHING_WITH_R_ONLY -- this marker is used by CTS -- do not modify
+#line 116
+
+
+# There is no need to perform ioctl or advisory locking operations on
+# property files. If this neverallow is being triggered, it is
+# likely that the policy is using r_file_perms directly instead of
+# the get_prop() macro.
+neverallow domain property_type:file { ioctl lock };
+
+neverallow * {
+  core_property_type
+  -audio_prop
+  -config_prop
+  -cppreopt_prop
+  -dalvik_prop
+  -debuggerd_prop
+  -debug_prop
+  -dhcp_prop
+  -dumpstate_prop
+  -fingerprint_prop
+  -logd_prop
+  -net_radio_prop
+  -nfc_prop
+  -ota_prop
+  -pan_result_prop
+  -persist_debug_prop
+  -powerctl_prop
+  -radio_prop
+  -restorecon_prop
+  -shell_prop
+  -system_prop
+  -usb_prop
+  -vold_prop
+}:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# sigstop property is only used for debugging; should only be set by su which is permissive
+# for userdebug/eng
+neverallow {
+  domain
+  -init
+  -vendor_init
+} ctl_sigstop_prop:property_service set;
+
+# Don't audit legacy ctl. property handling.  We only want the newer permission check to appear
+# in the audit log
+dontaudit domain {
+  ctl_bootanim_prop
+  ctl_bugreport_prop
+  ctl_console_prop
+  ctl_default_prop
+  ctl_dumpstate_prop
+  ctl_fuse_prop
+  ctl_mdnsd_prop
+  ctl_rildaemon_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+  -extra_free_kbytes
+} init_storage_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+} init_svc_debug_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -dumpstate
+  
+} init_svc_debug_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# DO NOT ADD: compat risk
+neverallow {
+  domain
+  -init
+  -dumpstate
+  -misctrl
+  
+} misctrl_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow {
+  domain
+  -init
+  -misctrl
+  
+} misctrl_prop:property_service set;
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 204
+
+#line 204
+# Prevent properties from being set
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -appdomain
+#line 204
+    -vendor_init
+#line 204
+  } {
+#line 204
+    core_property_type
+#line 204
+    extended_core_property_type
+#line 204
+    exported_config_prop
+#line 204
+    exported_default_prop
+#line 204
+    exported_dumpstate_prop
+#line 204
+    exported_system_prop
+#line 204
+    exported3_system_prop
+#line 204
+    usb_control_prop
+#line 204
+    -nfc_prop
+#line 204
+    -powerctl_prop
+#line 204
+    -radio_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -appdomain
+#line 204
+    -hal_nfc_server
+#line 204
+  } {
+#line 204
+    nfc_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -appdomain
+#line 204
+    -hal_telephony_server
+#line 204
+    -vendor_init
+#line 204
+  } {
+#line 204
+    radio_control_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -appdomain
+#line 204
+    -hal_telephony_server
+#line 204
+  } {
+#line 204
+    radio_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -bluetooth
+#line 204
+    -hal_bluetooth_server
+#line 204
+  } {
+#line 204
+    bluetooth_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -bluetooth
+#line 204
+    -hal_bluetooth_server
+#line 204
+    -vendor_init
+#line 204
+  } {
+#line 204
+    exported_bluetooth_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -hal_camera_server
+#line 204
+    -cameraserver
+#line 204
+    -vendor_init
+#line 204
+  } {
+#line 204
+    exported_camera_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -hal_wifi_server
+#line 204
+    -wificond
+#line 204
+  } {
+#line 204
+    wifi_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -init
+#line 204
+    -dumpstate
+#line 204
+    -hal_wifi_server
+#line 204
+    -wificond
+#line 204
+    -vendor_init
+#line 204
+  } {
+#line 204
+    wifi_hal_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+# Prevent properties from being read
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -appdomain
+#line 204
+    -vendor_init
+#line 204
+  } {
+#line 204
+    core_property_type
+#line 204
+    dalvik_config_prop_type
+#line 204
+    extended_core_property_type
+#line 204
+    exported3_system_prop
+#line 204
+    systemsound_config_prop
+#line 204
+    -debug_prop
+#line 204
+    -logd_prop
+#line 204
+    -nfc_prop
+#line 204
+    -powerctl_prop
+#line 204
+    -radio_prop
+#line 204
+  }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -appdomain
+#line 204
+    -hal_nfc_server
+#line 204
+  } {
+#line 204
+    nfc_prop
+#line 204
+  }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -appdomain
+#line 204
+    -hal_telephony_server
+#line 204
+  } {
+#line 204
+    radio_prop
+#line 204
+  }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -bluetooth
+#line 204
+    -hal_bluetooth_server
+#line 204
+  } {
+#line 204
+    bluetooth_prop
+#line 204
+  }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -hal_wifi_server
+#line 204
+    -wificond
+#line 204
+  } {
+#line 204
+    wifi_prop
+#line 204
+  }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -coredomain
+#line 204
+    -vendor_init
+#line 204
+  } {
+#line 204
+    suspend_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -init
+#line 204
+  } {
+#line 204
+    suspend_debug_prop
+#line 204
+  }:property_service set;
+#line 204
+
+#line 204
+  neverallow {
+#line 204
+    domain
+#line 204
+    -init
+#line 204
+    -dumpstate
+#line 204
+    
+#line 204
+    } {
+#line 204
+      suspend_debug_prop
+#line 204
+    }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 204
+
+#line 204
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 380
+
+
+dontaudit system_suspend suspend_debug_prop:file { getattr open read ioctl lock map watch watch_reads };
+
+# BEGIN_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 384
+
+#line 384
+  # Neverallow coredomain to set vendor properties
+#line 384
+  neverallow {
+#line 384
+    coredomain
+#line 384
+    -init
+#line 384
+    -system_writes_vendor_properties_violators
+#line 384
+  } {
+#line 384
+    property_type
+#line 384
+    -system_property_type
+#line 384
+    -extended_core_property_type
+#line 384
+  }:property_service set;
+#line 384
+
+#line 384
+# END_COMPATIBLE_PROPERTY_ONLY -- this marker is used by CTS -- do not modify
+#line 395
+
+
+neverallow {
+  domain
+  -coredomain
+  -vendor_init
+} {
+  ffs_config_prop
+  ffs_control_prop
+}:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  -system_server
+} {
+  userspace_reboot_log_prop
+}:property_service set;
+
+neverallow {
+  # Only allow init and system_server to set system_adbd_prop
+  domain
+  -init
+  -system_server
+} {
+  system_adbd_prop
+}:property_service set;
+
+# Let (vendor_)init, adbd, and system_server set service.adb.tcp.port
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -adbd
+  -system_server
+} {
+  adbd_config_prop
+}:property_service set;
+
+neverallow {
+  # Only allow init and adbd to set adbd_prop
+  domain
+  -init
+  -adbd
+} {
+  adbd_prop
+}:property_service set;
+
+neverallow {
+  # Only allow init to set apexd_payload_metadata_prop
+  domain
+  -init
+} {
+  apexd_payload_metadata_prop
+}:property_service set;
+
+
+neverallow {
+  # Only allow init and shell to set userspace_reboot_test_prop
+  domain
+  -init
+  -shell
+} {
+  userspace_reboot_test_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+  -system_server
+  -vendor_init
+} {
+  surfaceflinger_color_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+} {
+  libc_debug_prop
+}:property_service set;
+
+# Allow the shell to set MTE & GWP-ASan props, so that non-root users with adb
+# shell access can control the settings on their device. Allow system apps to
+# set MTE props, so Developer Options can set them.
+neverallow {
+  domain
+  -init
+  -shell
+  -system_app
+  -system_server
+  -mtectrl
+} {
+  arm64_memtag_prop
+  gwp_asan_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+  -system_server
+  -vendor_init
+} zram_control_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -system_server
+  -vendor_init
+} dalvik_runtime_prop:property_service set;
+
+neverallow {
+  domain
+  -coredomain
+  -vendor_init
+} {
+  usb_config_prop
+  usb_control_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+  -system_server
+} {
+  provisioned_prop
+  retaildemo_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -coredomain
+  -vendor_init
+} {
+  provisioned_prop
+  retaildemo_prop
+}:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+} {
+  init_service_status_private_prop
+  init_service_status_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+  -radio
+  -appdomain
+  -hal_telephony_server
+  -vendor_init
+} telephony_status_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+} {
+  graphics_config_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+  -surfaceflinger
+} {
+  surfaceflinger_display_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -coredomain
+  -appdomain
+  -vendor_init
+} packagemanager_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -coredomain
+  -vendor_init
+} keyguard_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+} {
+  localization_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -dumpstate
+  -system_app
+} oem_unlock_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -coredomain
+  -vendor_init
+} storagemanager_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -dumpstate
+  -appdomain
+} sendbug_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -dumpstate
+  -appdomain
+} camera_calibration_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  -dumpstate
+  -hal_dumpstate_server
+  -vendor_init
+} hal_dumpstate_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  
+  
+  
+  
+} {
+  lower_kptr_restrict_prop
+}:property_service set;
+
+neverallow {
+  domain
+  -init
+} zygote_wrap_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+} verity_status_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+} setupwizard_mode_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+} setupwizard_prop:property_service set;
+
+# ro.product.property_source_order is useless after initialization of ro.product.* props.
+# So making it accessible only from init and vendor_init.
+neverallow {
+  domain
+  -init
+  -dumpstate
+  -vendor_init
+} build_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  -shell
+} sqlite_log_prop:property_service set;
+
+neverallow {
+  domain
+  -coredomain
+  -appdomain
+} sqlite_log_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+} default_prop:property_service set;
+
+# Only one of system_property_type and vendor_property_type can be assigned.
+# Property types having both attributes won't be accessible from anywhere.
+neverallow domain system_and_vendor_property_type:{file property_service} *;
+
+neverallow {
+  domain
+  -init
+  -shell
+  -rkpdapp
+} remote_prov_prop:property_service set;
+
+neverallow {
+  # Only allow init and shell to set rollback_test_prop
+  domain
+  -init
+  -shell
+} rollback_test_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -apexd
+} ctl_apex_load_prop:property_service set;
+
+neverallow {
+  domain
+  -coredomain
+  -init
+  -dumpstate
+  -apexd
+} ctl_apex_load_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  -apexd
+} apex_ready_prop:property_service set;
+
+neverallow {
+  domain
+  -coredomain
+  -dumpstate
+  -apexd
+  -vendor_init
+} apex_ready_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  # Only allow init and profcollectd to access profcollectd_node_id_prop
+  domain
+  -init
+  -dumpstate
+  -profcollectd
+} profcollectd_node_id_prop:file { getattr open read ioctl lock map watch watch_reads };
+
+neverallow {
+  domain
+  -init
+} log_file_logger_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+} usb_uvc_enabled_prop:property_service set;
+
+# Disallow non system apps from reading ro.usb.uvc.enabled
+neverallow {
+  appdomain
+  -system_app
+  -device_as_webcam
+} usb_uvc_enabled_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+} pm_archiving_enabled_prop:property_service set;
+
+#line 1 "system/sepolicy/private/radio.te"
+typeattribute radio coredomain, mlstrustedsubject;
+
+
+#line 3
+typeattribute radio appdomain;
+#line 3
+# Label tmpfs objects for all apps.
+#line 3
+type_transition radio tmpfs:file appdomain_tmpfs;
+#line 3
+
+#line 3
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 3
+type radio_userfaultfd;
+#line 3
+type_transition radio radio:anon_inode radio_userfaultfd "[userfaultfd]";
+#line 3
+# Allow domain to create/use userfaultfd anon_inode.
+#line 3
+allow radio radio_userfaultfd:anon_inode { create ioctl read };
+#line 3
+# Suppress errors generate during bugreport
+#line 3
+dontaudit su radio_userfaultfd:anon_inode *;
+#line 3
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 3
+neverallow { domain -radio } radio_userfaultfd:anon_inode *;
+#line 3
+
+#line 3
+allow radio appdomain_tmpfs:file { execute getattr map read write };
+#line 3
+neverallow { radio -runas_app -shell -simpleperf } { domain -radio }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+neverallow { appdomain -runas_app -shell -simpleperf -radio } radio:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+# The Android security model guarantees the confidentiality and integrity
+#line 3
+# of application data and execution state. Ptrace bypasses those
+#line 3
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 3
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 3
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 3
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 3
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 3
+# live lock conditions.
+#line 3
+neverallow { domain -radio -crash_dump  -runas_app -simpleperf } radio:process ptrace;
+#line 3
+
+
+
+#line 5
+allow radio runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 5
+
+
+# Property service
+
+#line 8
+
+#line 8
+allow radio property_socket:sock_file write;
+#line 8
+allow radio init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow radio radio_control_prop:property_service set;
+#line 8
+
+#line 8
+allow radio radio_control_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+
+#line 9
+
+#line 9
+allow radio property_socket:sock_file write;
+#line 9
+allow radio init:unix_stream_socket connectto;
+#line 9
+
+#line 9
+allow radio radio_prop:property_service set;
+#line 9
+
+#line 9
+allow radio radio_prop:file { getattr open read map };
+#line 9
+
+#line 9
+
+
+#line 10
+
+#line 10
+allow radio property_socket:sock_file write;
+#line 10
+allow radio init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow radio net_radio_prop:property_service set;
+#line 10
+
+#line 10
+allow radio net_radio_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+#line 11
+
+#line 11
+allow radio property_socket:sock_file write;
+#line 11
+allow radio init:unix_stream_socket connectto;
+#line 11
+
+#line 11
+allow radio telephony_status_prop:property_service set;
+#line 11
+
+#line 11
+allow radio telephony_status_prop:file { getattr open read map };
+#line 11
+
+#line 11
+
+
+#line 12
+
+#line 12
+allow radio property_socket:sock_file write;
+#line 12
+allow radio init:unix_stream_socket connectto;
+#line 12
+
+#line 12
+allow radio radio_cdma_ecm_prop:property_service set;
+#line 12
+
+#line 12
+allow radio radio_cdma_ecm_prop:file { getattr open read map };
+#line 12
+
+#line 12
+
+
+# ctl interface
+
+#line 15
+
+#line 15
+allow radio property_socket:sock_file write;
+#line 15
+allow radio init:unix_stream_socket connectto;
+#line 15
+
+#line 15
+allow radio ctl_rildaemon_prop:property_service set;
+#line 15
+
+#line 15
+allow radio ctl_rildaemon_prop:file { getattr open read map };
+#line 15
+
+#line 15
+
+
+# Telephony code contains time / time zone detection logic so it reads the associated properties.
+
+#line 18
+allow radio time_prop:file { getattr open read map };
+#line 18
+
+
+# allow telephony to access platform compat to log permission denials
+allow radio platform_compat_service:service_manager find;
+
+allow radio uce_service:service_manager find;
+
+# Manage /data/misc/emergencynumberdb
+allow radio emergency_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow radio emergency_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# allow telephony to access related cache properties
+
+#line 30
+
+#line 30
+allow radio property_socket:sock_file write;
+#line 30
+allow radio init:unix_stream_socket connectto;
+#line 30
+
+#line 30
+allow radio binder_cache_telephony_server_prop:property_service set;
+#line 30
+
+#line 30
+allow radio binder_cache_telephony_server_prop:file { getattr open read map };
+#line 30
+
+#line 30
+;
+neverallow { domain -radio -init }
+    binder_cache_telephony_server_prop:property_service set;
+
+# allow sending pulled atoms to statsd
+
+#line 35
+# Call the server domain and optionally transfer references to it.
+#line 35
+allow radio statsd:binder { call transfer };
+#line 35
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 35
+allow statsd radio:binder transfer;
+#line 35
+# Receive and use open files from the server.
+#line 35
+allow radio statsd:fd use;
+#line 35
+
+
+#line 1 "system/sepolicy/private/recovery.te"
+typeattribute recovery coredomain;
+
+# The allow rules are only included in the recovery policy.
+# Otherwise recovery is only allowed the domain rules.
+#line 50
+
+#line 1 "system/sepolicy/private/recovery_persist.te"
+typeattribute recovery_persist coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init recovery_persist_exec:file { getattr open read execute map };
+#line 3
+allow init recovery_persist:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow recovery_persist recovery_persist_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init recovery_persist:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init recovery_persist:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init recovery_persist_exec:process recovery_persist;
+#line 3
+
+#line 3
+
+
+# recovery_persist is not allowed to write anywhere other than recovery_data_file
+neverallow recovery_persist {
+  file_type
+  -recovery_data_file
+  
+  
+}:file write;
+#line 1 "system/sepolicy/private/recovery_refresh.te"
+typeattribute recovery_refresh coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init recovery_refresh_exec:file { getattr open read execute map };
+#line 3
+allow init recovery_refresh:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow recovery_refresh recovery_refresh_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init recovery_refresh:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init recovery_refresh:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init recovery_refresh_exec:process recovery_refresh;
+#line 3
+
+#line 3
+
+
+# recovery_refresh is not allowed to write anywhere
+neverallow recovery_refresh {
+  file_type
+  
+  
+}:file write;
+#line 1 "system/sepolicy/private/remount.te"
+type remount, domain, coredomain;
+type remount_exec, system_file_type, exec_type, file_type;
+
+#line 25
+
+#line 1 "system/sepolicy/private/rkpd.te"
+# Policies for Remote Key Provisioning Daemon (rkpd)
+type rkpd, domain;
+type rkpd_exec, system_file_type, exec_type, file_type;
+
+typeattribute rkpd coredomain;
+
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow rkpd servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager rkpd:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager rkpd:dir search;
+#line 7
+allow servicemanager rkpd:file { read open };
+#line 7
+allow servicemanager rkpd:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+
+#line 8
+typeattribute rkpd binderservicedomain;
+#line 8
+
+
+
+#line 10
+
+#line 10
+# Allow the necessary permissions.
+#line 10
+
+#line 10
+# Old domain may exec the file and transition to the new domain.
+#line 10
+allow init rkpd_exec:file { getattr open read execute map };
+#line 10
+allow init rkpd:process transition;
+#line 10
+# New domain is entered by executing the file.
+#line 10
+allow rkpd rkpd_exec:file { entrypoint open read execute getattr map };
+#line 10
+# New domain can send SIGCHLD to its caller.
+#line 10
+
+#line 10
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 10
+dontaudit init rkpd:process noatsecure;
+#line 10
+# XXX dontaudit candidate but requires further study.
+#line 10
+allow init rkpd:process { siginh rlimitinh };
+#line 10
+
+#line 10
+# Make the transition occur by default.
+#line 10
+type_transition init rkpd_exec:process rkpd;
+#line 10
+
+#line 10
+
+
+
+#line 12
+  allow rkpd rkpd_registrar_service:service_manager { add find };
+#line 12
+  neverallow { domain -rkpd } rkpd_registrar_service:service_manager add;
+#line 12
+
+#line 12
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 12
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 12
+  
+#line 12
+
+
+#line 13
+  allow rkpd rkpd_refresh_service:service_manager { add find };
+#line 13
+  neverallow { domain -rkpd } rkpd_refresh_service:service_manager add;
+#line 13
+
+#line 13
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 13
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 13
+  
+#line 13
+
+
+
+#line 15
+allow rkpd device_config_remote_key_provisioning_native_prop:file { getattr open read map };
+#line 15
+
+#line 1 "system/sepolicy/private/rkpd_app.te"
+###
+### A domain for sandboxing the remote key provisioning daemon
+### app that is shipped via mainline.
+###
+typeattribute rkpdapp coredomain;
+
+
+#line 7
+typeattribute rkpdapp appdomain;
+#line 7
+# Label tmpfs objects for all apps.
+#line 7
+type_transition rkpdapp tmpfs:file appdomain_tmpfs;
+#line 7
+
+#line 7
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 7
+type rkpdapp_userfaultfd;
+#line 7
+type_transition rkpdapp rkpdapp:anon_inode rkpdapp_userfaultfd "[userfaultfd]";
+#line 7
+# Allow domain to create/use userfaultfd anon_inode.
+#line 7
+allow rkpdapp rkpdapp_userfaultfd:anon_inode { create ioctl read };
+#line 7
+# Suppress errors generate during bugreport
+#line 7
+dontaudit su rkpdapp_userfaultfd:anon_inode *;
+#line 7
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 7
+neverallow { domain -rkpdapp } rkpdapp_userfaultfd:anon_inode *;
+#line 7
+
+#line 7
+allow rkpdapp appdomain_tmpfs:file { execute getattr map read write };
+#line 7
+neverallow { rkpdapp -runas_app -shell -simpleperf } { domain -rkpdapp }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+neverallow { appdomain -runas_app -shell -simpleperf -rkpdapp } rkpdapp:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 7
+# The Android security model guarantees the confidentiality and integrity
+#line 7
+# of application data and execution state. Ptrace bypasses those
+#line 7
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 7
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 7
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 7
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 7
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 7
+# live lock conditions.
+#line 7
+neverallow { domain -rkpdapp -crash_dump  -runas_app -simpleperf } rkpdapp:process ptrace;
+#line 7
+
+
+#line 8
+typeattribute rkpdapp netdomain;
+#line 8
+
+
+# RKPD needs to be able to call the remote provisioning HALs
+
+#line 11
+typeattribute rkpdapp halclientdomain;
+#line 11
+typeattribute rkpdapp hal_keymint_client;
+#line 11
+
+#line 11
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 11
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 11
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 11
+
+#line 11
+typeattribute rkpdapp hal_keymint;
+#line 11
+# Find passthrough HAL implementations
+#line 11
+allow hal_keymint system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_keymint vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+allow hal_keymint vendor_file:file { read open getattr execute map };
+#line 11
+
+#line 11
+
+
+#line 12
+typeattribute rkpdapp halclientdomain;
+#line 12
+typeattribute rkpdapp hal_remotelyprovisionedcomponent_avf_client;
+#line 12
+
+#line 12
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 12
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 12
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 12
+
+#line 12
+typeattribute rkpdapp hal_remotelyprovisionedcomponent_avf;
+#line 12
+# Find passthrough HAL implementations
+#line 12
+allow hal_remotelyprovisionedcomponent_avf system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_remotelyprovisionedcomponent_avf vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 12
+allow hal_remotelyprovisionedcomponent_avf vendor_file:file { read open getattr execute map };
+#line 12
+
+#line 12
+
+
+# Grant access to certain system properties related to RKP
+
+#line 15
+allow rkpdapp device_config_remote_key_provisioning_native_prop:file { getattr open read map };
+#line 15
+
+
+#line 16
+
+#line 16
+allow rkpdapp property_socket:sock_file write;
+#line 16
+allow rkpdapp init:unix_stream_socket connectto;
+#line 16
+
+#line 16
+allow rkpdapp remote_prov_prop:property_service set;
+#line 16
+
+#line 16
+allow rkpdapp remote_prov_prop:file { getattr open read map };
+#line 16
+
+#line 16
+
+
+# Grant access to the normal services that are available to all apps
+allow rkpdapp app_api_service:service_manager find;
+
+# Grant access to media.metrics service, needed for widevine. This
+# access is granted to all other apps already (e.g. untrusted_app_all).
+allow rkpdapp mediametrics_service:service_manager find;
+
+# Grant access to statsd
+allow rkpdapp statsmanager_service:service_manager find;
+
+#line 27
+# Call the server domain and optionally transfer references to it.
+#line 27
+allow rkpdapp statsd:binder { call transfer };
+#line 27
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 27
+allow statsd rkpdapp:binder transfer;
+#line 27
+# Receive and use open files from the server.
+#line 27
+allow rkpdapp statsd:fd use;
+#line 27
+
+#line 1 "system/sepolicy/private/rs.te"
+# Any files which would have been created as app_data_file and
+# privapp_data_file will be created as app_exec_data_file instead.
+allow rs { app_data_file privapp_data_file }:dir { { open getattr read search ioctl lock watch watch_reads } add_name write };
+allow rs app_exec_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+type_transition rs app_data_file:file app_exec_data_file;
+type_transition rs privapp_data_file:file app_exec_data_file;
+
+# Follow /data/user/0 symlink
+allow rs system_data_file:lnk_file read;
+
+# Read files from the app home directory.
+allow rs { app_data_file privapp_data_file }:file { getattr open read ioctl lock map watch watch_reads };
+allow rs { app_data_file privapp_data_file }:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Cleanup app_exec_data_file files in the app home directory.
+allow rs { app_data_file privapp_data_file }:dir remove_name;
+
+# Use vendor resources
+allow rs vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+#line 20
+allow rs vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow rs vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 20
+
+
+#line 21
+allow rs vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow rs vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 21
+
+# Vendor overlay can be found in vendor apex
+allow rs vendor_apex_metadata_file:dir { getattr search };
+
+# Read contents of app apks
+
+#line 26
+allow rs apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 26
+allow rs apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 26
+
+
+allow rs gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow rs ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow rs same_process_hal_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+
+# File descriptors passed from app to renderscript
+allow rs { untrusted_app_all ephemeral_app priv_app }:fd use;
+
+# See b/291211299. Since rs is deprecated, this shouldn't be too dangerous, since new
+# renderscript usages shouldn't be popping up.
+dontaudit rs { zygote surfaceflinger hal_graphics_allocator }:fd use;
+
+# rs can access app data, so ensure it can only be entered via an app domain and cannot have
+# CAP_DAC_OVERRIDE.
+neverallow rs rs:{ capability capability2 cap_userns cap2_userns } *;
+neverallow { domain -appdomain } rs:process { dyntransition transition };
+neverallow rs { domain -crash_dump }:process { dyntransition transition };
+neverallow rs app_data_file_type:{ { chr_file blk_file } { file lnk_file sock_file fifo_file } } ~{ getattr open read ioctl lock map watch watch_reads };
+# rs should never use network sockets
+neverallow rs *:{ icmp_socket rawip_socket tcp_socket udp_socket } *;
+#line 1 "system/sepolicy/private/rss_hwm_reset.te"
+type rss_hwm_reset_exec, system_file_type, exec_type, file_type;
+
+# Start rss_hwm_reset from init.
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init rss_hwm_reset_exec:file { getattr open read execute map };
+#line 4
+allow init rss_hwm_reset:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow rss_hwm_reset rss_hwm_reset_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init rss_hwm_reset:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init rss_hwm_reset:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init rss_hwm_reset_exec:process rss_hwm_reset;
+#line 4
+
+#line 4
+
+
+# Search /proc/pid directories.
+allow rss_hwm_reset domain:dir search;
+
+# Write to /proc/pid/clear_refs of other processes.
+# /proc/pid/clear_refs is S_IWUSER, see: fs/proc/base.c
+allow rss_hwm_reset self:{ capability cap_userns } { dac_override };
+
+# Write to /prc/pid/clear_refs.
+allow rss_hwm_reset domain:file { open append write lock map };
+#line 1 "system/sepolicy/private/runas.te"
+typeattribute runas coredomain;
+
+# ndk-gdb invokes adb shell run-as.
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow shell runas_exec:file { getattr open read execute map };
+#line 4
+allow shell runas:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow runas runas_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+allow runas shell:process sigchld;
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit shell runas:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow shell runas:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition shell runas_exec:process runas;
+#line 4
+
+#line 1 "system/sepolicy/private/runas_app.te"
+typeattribute runas_app coredomain;
+
+
+#line 3
+typeattribute runas_app appdomain;
+#line 3
+# Label tmpfs objects for all apps.
+#line 3
+type_transition runas_app tmpfs:file appdomain_tmpfs;
+#line 3
+
+#line 3
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 3
+type runas_app_userfaultfd;
+#line 3
+type_transition runas_app runas_app:anon_inode runas_app_userfaultfd "[userfaultfd]";
+#line 3
+# Allow domain to create/use userfaultfd anon_inode.
+#line 3
+allow runas_app runas_app_userfaultfd:anon_inode { create ioctl read };
+#line 3
+# Suppress errors generate during bugreport
+#line 3
+dontaudit su runas_app_userfaultfd:anon_inode *;
+#line 3
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 3
+neverallow { domain -runas_app } runas_app_userfaultfd:anon_inode *;
+#line 3
+
+#line 3
+allow runas_app appdomain_tmpfs:file { execute getattr map read write };
+#line 3
+neverallow { runas_app -runas_app -shell -simpleperf } { domain -runas_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+neverallow { appdomain -runas_app -shell -simpleperf -runas_app } runas_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+# The Android security model guarantees the confidentiality and integrity
+#line 3
+# of application data and execution state. Ptrace bypasses those
+#line 3
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 3
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 3
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 3
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 3
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 3
+# live lock conditions.
+#line 3
+neverallow { domain -runas_app -crash_dump  -runas_app -simpleperf } runas_app:process ptrace;
+#line 3
+
+
+#line 4
+typeattribute runas_app untrusted_app_all;
+#line 4
+
+
+#line 5
+typeattribute runas_app netdomain;
+#line 5
+
+
+#line 6
+typeattribute runas_app bluetoothdomain;
+#line 6
+
+
+# The ability to call exec() on files in the apps home directories
+# when using run-as on a debuggable app. Used to run lldb/ndk-gdb/simpleperf,
+# which are copied to the apps home directories.
+allow runas_app app_data_file:file execute_no_trans;
+
+# Allow lldb/ndk-gdb/simpleperf to read maps of debuggable app processes.
+
+#line 14
+allow runas_app untrusted_app_all:dir { open getattr read search ioctl lock watch watch_reads };
+#line 14
+allow runas_app untrusted_app_all:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 14
+
+
+# Allow lldb/ndk-gdb/simpleperf to ptrace attach to debuggable app processes.
+allow runas_app untrusted_app_all:process { ptrace sigkill signal sigstop };
+allow runas_app untrusted_app_all:unix_stream_socket connectto;
+
+# Allow executing system image simpleperf without a domain transition.
+allow runas_app simpleperf_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Suppress denial logspam when simpleperf is trying to find a matching process
+# by scanning /proc/<pid>/cmdline files. The /proc/<pid> directories are within
+# the same domain as their respective process, most of which this domain is not
+# allowed to see.
+dontaudit runas_app domain:dir search;
+
+# Allow runas_app to call perf_event_open for profiling debuggable app
+# processes, but not the whole system.
+allow runas_app self:perf_event { open read write kernel };
+neverallow runas_app self:perf_event ~{ open read write kernel };
+
+# Suppress bionic loader denial /data/local/tests directories.
+dontaudit runas_app shell_test_data_file:dir search;
+#line 1 "system/sepolicy/private/sdcardd.te"
+typeattribute sdcardd coredomain;
+
+type_transition sdcardd system_data_file:{ dir file } media_rw_data_file;
+#line 1 "system/sepolicy/private/sdk_sandbox_34.te"
+###
+### SDK Sandbox process.
+###
+### This file defines the security policy for the sdk sandbox processes
+### for targetSdkVersion=34.
+type sdk_sandbox_34, domain, coredomain, sdk_sandbox_all, sdk_sandbox_current;
+
+
+#line 8
+typeattribute sdk_sandbox_34 netdomain;
+#line 8
+
+
+#line 9
+typeattribute sdk_sandbox_34 appdomain;
+#line 9
+# Label tmpfs objects for all apps.
+#line 9
+type_transition sdk_sandbox_34 tmpfs:file appdomain_tmpfs;
+#line 9
+
+#line 9
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 9
+type sdk_sandbox_34_userfaultfd;
+#line 9
+type_transition sdk_sandbox_34 sdk_sandbox_34:anon_inode sdk_sandbox_34_userfaultfd "[userfaultfd]";
+#line 9
+# Allow domain to create/use userfaultfd anon_inode.
+#line 9
+allow sdk_sandbox_34 sdk_sandbox_34_userfaultfd:anon_inode { create ioctl read };
+#line 9
+# Suppress errors generate during bugreport
+#line 9
+dontaudit su sdk_sandbox_34_userfaultfd:anon_inode *;
+#line 9
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 9
+neverallow { domain -sdk_sandbox_34 } sdk_sandbox_34_userfaultfd:anon_inode *;
+#line 9
+
+#line 9
+allow sdk_sandbox_34 appdomain_tmpfs:file { execute getattr map read write };
+#line 9
+neverallow { sdk_sandbox_34 -runas_app -shell -simpleperf } { domain -sdk_sandbox_34 }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 9
+neverallow { appdomain -runas_app -shell -simpleperf -sdk_sandbox_34 } sdk_sandbox_34:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 9
+# The Android security model guarantees the confidentiality and integrity
+#line 9
+# of application data and execution state. Ptrace bypasses those
+#line 9
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 9
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 9
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 9
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 9
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 9
+# live lock conditions.
+#line 9
+neverallow { domain -sdk_sandbox_34 -crash_dump  -runas_app -simpleperf } sdk_sandbox_34:process ptrace;
+#line 9
+
+#line 1 "system/sepolicy/private/sdk_sandbox_all.te"
+###
+### sdk_sandbox_all
+###
+### This file defines the rules shared by all sdk_sandbox_all domains.
+### Apps are labeled based on mac_permissions.xml (maps signer and
+### optionally package name to seinfo value) and seapp_contexts (maps UID
+### and optionally seinfo value to domain for process and type for data
+### directory).  The sdk_sandbox_all_all attribute is assigned to all default
+### seapp_contexts for any app with UID between FIRST_SDK_SANDBOX_UID (20000)
+### and LAST_SDK_SANDBOX_UID (29999) if the app has no specific seinfo
+### value as determined from mac_permissions.xml.
+
+allow sdk_sandbox_all system_linker_exec:file execute_no_trans;
+
+# Required to read CTS tests data from the shell_data_file location.
+allow sdk_sandbox_all shell_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow sdk_sandbox_all shell_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# allow sdk sandbox to use UDP sockets provided by the system server but not
+# modify them other than to connect
+allow sdk_sandbox_all system_server:udp_socket {
+        connect getattr read recvfrom sendto write getopt setopt };
+
+# allow sandbox to search in sdk system server directory
+# additionally, for webview to work, getattr has been permitted
+allow sdk_sandbox_all sdk_sandbox_system_data_file:dir { getattr search };
+# allow sandbox to create files and dirs in sdk data directory
+allow sdk_sandbox_all sdk_sandbox_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow sdk_sandbox_all sdk_sandbox_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# allow apps to pass open fds to the sdk sandbox
+allow sdk_sandbox_all { app_data_file privapp_data_file }:file { getattr read };
+
+###
+### neverallow rules
+###
+
+neverallow sdk_sandbox_all app_data_file_type:file { execute execute_no_trans };
+
+# Receive or send uevent messages.
+neverallow sdk_sandbox_all domain:netlink_kobject_uevent_socket *;
+
+# Receive or send generic netlink messages
+neverallow sdk_sandbox_all domain:netlink_socket *;
+
+# Too much leaky information in debugfs. It's a security
+# best practice to ensure these files aren't readable.
+neverallow sdk_sandbox_all debugfs_type:file read;
+
+# execute gpu_device
+neverallow sdk_sandbox_all gpu_device:chr_file execute;
+
+# access files in /sys with the default sysfs label
+neverallow sdk_sandbox_all sysfs:file *;
+
+# Avoid reads from generically labeled /proc files
+# Create a more specific label if needed
+neverallow sdk_sandbox_all proc:file { { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads } { execute execute_no_trans } };
+
+# Directly access external storage
+neverallow sdk_sandbox_all { sdcard_type media_rw_data_file }:file {open create};
+neverallow sdk_sandbox_all { sdcard_type media_rw_data_file }:dir search;
+
+# Avoid reads to proc_net, it contains too much device wide information about
+# ongoing connections.
+neverallow sdk_sandbox_all proc_net:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# SDK sandbox processes have their own storage not related to app_data_file or privapp_data_file
+# TODO(b/280514080): shell_data_file shouldn't be allowed here
+neverallow sdk_sandbox_all { app_data_file_type -sdk_sandbox_data_file -shell_data_file -radio_data_file }:dir { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow sdk_sandbox_all { app_data_file_type -sdk_sandbox_data_file -shell_data_file -radio_data_file }:file ~{ getattr read };
+
+# SDK sandbox processes don't  have any access to external storage
+neverallow sdk_sandbox_all { media_rw_data_file }:dir { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+neverallow sdk_sandbox_all { media_rw_data_file }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow { sdk_sandbox_all } tmpfs:dir { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+neverallow sdk_sandbox_all hal_drm_service:service_manager find;
+
+# Only certain system components should have access to sdk_sandbox_system_data_file
+# sdk_sandbox only needs search. Restricted in follow up neverallow rule.
+neverallow {
+    domain
+    -init
+    -installd
+    -system_server
+    -vold_prepare_subdirs
+} sdk_sandbox_system_data_file:dir { relabelfrom };
+
+neverallow {
+    domain
+    -init
+    -installd
+    -sdk_sandbox_all
+    -system_server
+    -vold_prepare_subdirs
+    -zygote
+} sdk_sandbox_system_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+
+# Only certain system components should have access to sdk_sandbox_all_system_data_file
+# sdk_sandbox_all only needs search. Restricted in follow up neverallow rule.
+neverallow {
+    domain
+    -init
+    -installd
+    -system_server
+    -vold_prepare_subdirs
+} sdk_sandbox_system_data_file:dir { relabelfrom };
+
+neverallow {
+    domain
+    -init
+    -installd
+    -sdk_sandbox_all
+    -system_server
+    -vold_prepare_subdirs
+    -zygote
+} sdk_sandbox_system_data_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+
+# sdk_sandbox_all only needs to traverse through the sdk_sandbox_all_system_data_file
+neverallow sdk_sandbox_all sdk_sandbox_system_data_file:dir ~{ getattr search };
+
+# Only dirs should be created at sdk_sandbox_all_system_data_file level
+neverallow { domain -init } sdk_sandbox_system_data_file:file *;
+
+#line 1 "system/sepolicy/private/sdk_sandbox_audit.te"
+###
+### SDK Sandbox process.
+###
+### This file defines the audit sdk sandbox security policy for
+### the set of restrictions proposed for the next SDK level.
+###
+### The sdk_sandbox_audit domain has the same rules as the
+### sdk_sandbox_current domain and additional auditing rules
+### for the accesses we are considering forbidding in the upcoming
+### sdk_sandbox_next domain.
+type sdk_sandbox_audit, domain, coredomain, sdk_sandbox_all, sdk_sandbox_current;
+
+
+#line 13
+typeattribute sdk_sandbox_audit netdomain;
+#line 13
+
+
+#line 14
+typeattribute sdk_sandbox_audit appdomain;
+#line 14
+# Label tmpfs objects for all apps.
+#line 14
+type_transition sdk_sandbox_audit tmpfs:file appdomain_tmpfs;
+#line 14
+
+#line 14
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 14
+type sdk_sandbox_audit_userfaultfd;
+#line 14
+type_transition sdk_sandbox_audit sdk_sandbox_audit:anon_inode sdk_sandbox_audit_userfaultfd "[userfaultfd]";
+#line 14
+# Allow domain to create/use userfaultfd anon_inode.
+#line 14
+allow sdk_sandbox_audit sdk_sandbox_audit_userfaultfd:anon_inode { create ioctl read };
+#line 14
+# Suppress errors generate during bugreport
+#line 14
+dontaudit su sdk_sandbox_audit_userfaultfd:anon_inode *;
+#line 14
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 14
+neverallow { domain -sdk_sandbox_audit } sdk_sandbox_audit_userfaultfd:anon_inode *;
+#line 14
+
+#line 14
+allow sdk_sandbox_audit appdomain_tmpfs:file { execute getattr map read write };
+#line 14
+neverallow { sdk_sandbox_audit -runas_app -shell -simpleperf } { domain -sdk_sandbox_audit }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 14
+neverallow { appdomain -runas_app -shell -simpleperf -sdk_sandbox_audit } sdk_sandbox_audit:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 14
+# The Android security model guarantees the confidentiality and integrity
+#line 14
+# of application data and execution state. Ptrace bypasses those
+#line 14
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 14
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 14
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 14
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 14
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 14
+# live lock conditions.
+#line 14
+neverallow { domain -sdk_sandbox_audit -crash_dump  -runas_app -simpleperf } sdk_sandbox_audit:process ptrace;
+#line 14
+
+
+# Auditallow rules for accesses that are currently allowed but we
+# might remove in the future.
+
+auditallow sdk_sandbox_audit {
+    cameraserver_service
+    ephemeral_app_api_service
+    mediadrmserver_service
+    radio_service
+}:service_manager find;
+
+auditallow sdk_sandbox_audit {
+    property_type
+    -system_property_type
+}:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+auditallow sdk_sandbox_audit {
+    property_type
+    -system_property_type
+}:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+#line 1 "system/sepolicy/private/sdk_sandbox_current.te"
+###
+### SDK Sandbox process.
+###
+### This file defines the security policy for the sdk sandbox processes
+### for the current SDK level.
+
+# Allow finding services. This is different from ephemeral_app policy.
+# Adding services manually to the allowlist is preferred hence app_api_service is not used.
+allow sdk_sandbox_current {
+    activity_service
+    activity_task_service
+    appops_service
+    audio_service
+    audioserver_service
+    batteryproperties_service
+    batterystats_service
+    cameraserver_service
+    connectivity_service
+    connmetrics_service
+    deviceidle_service
+    display_service
+    dropbox_service
+    ephemeral_app_api_service
+    font_service
+    game_service
+    gpu_service
+    graphicsstats_service
+    hardware_properties_service
+    hint_service
+    imms_service
+    input_method_service
+    input_service
+    IProxyService_service
+    ipsec_service
+    launcherapps_service
+    legacy_permission_service
+    light_service
+    locale_service
+    media_communication_service
+    mediadrmserver_service
+    mediaextractor_service
+    mediametrics_service
+    media_projection_service
+    media_router_service
+    mediaserver_service
+    media_session_service
+    memtrackproxy_service
+    midi_service
+    netpolicy_service
+    netstats_service
+    network_management_service
+    notification_service
+    package_service
+    permission_checker_service
+    permission_service
+    permissionmgr_service
+    platform_compat_service
+    power_service
+    procstats_service
+    radio_service
+    registry_service
+    restrictions_service
+    rttmanager_service
+    search_service
+    selection_toolbar_service
+    sensor_privacy_service
+    sensorservice_service
+    servicediscovery_service
+    settings_service
+    speech_recognition_service
+    statusbar_service
+    storagestats_service
+    surfaceflinger_service
+    telecom_service
+    tethering_service
+    textclassification_service
+    textservices_service
+    texttospeech_service
+    thermal_service
+    translation_service
+    tv_iapp_service
+    tv_input_service
+    uimode_service
+    vcn_management_service
+    webviewupdate_service
+}:service_manager find;
+
+#line 1 "system/sepolicy/private/sdk_sandbox_next.te"
+###
+### SDK Sandbox process.
+###
+### This file defines the security policy for the sdk sandbox processes
+### for a test set of restrictions. These restrictions will be adapted
+### with modifications, into the set of restrictions for the next SDK
+### level.
+type sdk_sandbox_next, domain, coredomain, sdk_sandbox_all;
+
+
+#line 10
+typeattribute sdk_sandbox_next netdomain;
+#line 10
+
+
+#line 11
+typeattribute sdk_sandbox_next appdomain;
+#line 11
+# Label tmpfs objects for all apps.
+#line 11
+type_transition sdk_sandbox_next tmpfs:file appdomain_tmpfs;
+#line 11
+
+#line 11
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 11
+type sdk_sandbox_next_userfaultfd;
+#line 11
+type_transition sdk_sandbox_next sdk_sandbox_next:anon_inode sdk_sandbox_next_userfaultfd "[userfaultfd]";
+#line 11
+# Allow domain to create/use userfaultfd anon_inode.
+#line 11
+allow sdk_sandbox_next sdk_sandbox_next_userfaultfd:anon_inode { create ioctl read };
+#line 11
+# Suppress errors generate during bugreport
+#line 11
+dontaudit su sdk_sandbox_next_userfaultfd:anon_inode *;
+#line 11
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 11
+neverallow { domain -sdk_sandbox_next } sdk_sandbox_next_userfaultfd:anon_inode *;
+#line 11
+
+#line 11
+allow sdk_sandbox_next appdomain_tmpfs:file { execute getattr map read write };
+#line 11
+neverallow { sdk_sandbox_next -runas_app -shell -simpleperf } { domain -sdk_sandbox_next }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 11
+neverallow { appdomain -runas_app -shell -simpleperf -sdk_sandbox_next } sdk_sandbox_next:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 11
+# The Android security model guarantees the confidentiality and integrity
+#line 11
+# of application data and execution state. Ptrace bypasses those
+#line 11
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 11
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 11
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 11
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 11
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 11
+# live lock conditions.
+#line 11
+neverallow { domain -sdk_sandbox_next -crash_dump  -runas_app -simpleperf } sdk_sandbox_next:process ptrace;
+#line 11
+
+
+# Allow finding services. This is different from ephemeral_app policy.
+# Adding services manually to the allowlist is preferred hence app_api_service is not used.
+allow sdk_sandbox_next {
+    activity_service
+    activity_task_service
+    appops_service
+    audio_service
+    audioserver_service
+    batteryproperties_service
+    batterystats_service
+    connectivity_service
+    connmetrics_service
+    deviceidle_service
+    display_service
+    dropbox_service
+    font_service
+    game_service
+    gpu_service
+    graphicsstats_service
+    hardware_properties_service
+    hint_service
+    imms_service
+    input_method_service
+    input_service
+    IProxyService_service
+    ipsec_service
+    launcherapps_service
+    legacy_permission_service
+    light_service
+    locale_service
+    media_communication_service
+    mediaextractor_service
+    mediametrics_service
+    media_projection_service
+    media_router_service
+    mediaserver_service
+    media_session_service
+    memtrackproxy_service
+    midi_service
+    netpolicy_service
+    netstats_service
+    network_management_service
+    notification_service
+    package_service
+    permission_checker_service
+    permission_service
+    permissionmgr_service
+    platform_compat_service
+    power_service
+    procstats_service
+    registry_service
+    restrictions_service
+    rttmanager_service
+    search_service
+    selection_toolbar_service
+    sensor_privacy_service
+    sensorservice_service
+    servicediscovery_service
+    settings_service
+    speech_recognition_service
+    statusbar_service
+    storagestats_service
+    surfaceflinger_service
+    telecom_service
+    tethering_service
+    textclassification_service
+    textservices_service
+    texttospeech_service
+    thermal_service
+    translation_service
+    tv_iapp_service
+    tv_input_service
+    uimode_service
+    vcn_management_service
+    webviewupdate_service
+}:service_manager find;
+
+#line 1 "system/sepolicy/private/secure_element.te"
+# secure element subsystem
+typeattribute secure_element coredomain;
+
+#line 3
+typeattribute secure_element appdomain;
+#line 3
+# Label tmpfs objects for all apps.
+#line 3
+type_transition secure_element tmpfs:file appdomain_tmpfs;
+#line 3
+
+#line 3
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 3
+type secure_element_userfaultfd;
+#line 3
+type_transition secure_element secure_element:anon_inode secure_element_userfaultfd "[userfaultfd]";
+#line 3
+# Allow domain to create/use userfaultfd anon_inode.
+#line 3
+allow secure_element secure_element_userfaultfd:anon_inode { create ioctl read };
+#line 3
+# Suppress errors generate during bugreport
+#line 3
+dontaudit su secure_element_userfaultfd:anon_inode *;
+#line 3
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 3
+neverallow { domain -secure_element } secure_element_userfaultfd:anon_inode *;
+#line 3
+
+#line 3
+allow secure_element appdomain_tmpfs:file { execute getattr map read write };
+#line 3
+neverallow { secure_element -runas_app -shell -simpleperf } { domain -secure_element }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+neverallow { appdomain -runas_app -shell -simpleperf -secure_element } secure_element:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+# The Android security model guarantees the confidentiality and integrity
+#line 3
+# of application data and execution state. Ptrace bypasses those
+#line 3
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 3
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 3
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 3
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 3
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 3
+# live lock conditions.
+#line 3
+neverallow { domain -secure_element -crash_dump  -runas_app -simpleperf } secure_element:process ptrace;
+#line 3
+
+
+
+#line 5
+typeattribute secure_element binderservicedomain;
+#line 5
+
+
+#line 6
+  allow secure_element secure_element_service:service_manager { add find };
+#line 6
+  neverallow { domain -secure_element } secure_element_service:service_manager add;
+#line 6
+
+#line 6
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 6
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 6
+  
+#line 6
+
+
+allow secure_element app_api_service:service_manager find;
+
+#line 9
+typeattribute secure_element halclientdomain;
+#line 9
+typeattribute secure_element hal_secure_element_client;
+#line 9
+
+#line 9
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 9
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 9
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 9
+
+#line 9
+typeattribute secure_element hal_secure_element;
+#line 9
+# Find passthrough HAL implementations
+#line 9
+allow hal_secure_element system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_secure_element vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 9
+allow hal_secure_element vendor_file:file { read open getattr execute map };
+#line 9
+
+#line 9
+
+
+# already open bugreport file descriptors may be shared with
+# the secure element process, from a file in
+# /data/data/com.android.shell/files/bugreports/bugreport-*.
+allow secure_element shell_data_file:file read;
+
+allow secure_element vendor_uuid_mapping_config_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/private/service.te"
+type adaptive_auth_service,         system_server_service, service_manager_type;
+type ambient_context_service,       app_api_service, system_server_service, service_manager_type;
+type attention_service,             system_server_service, service_manager_type;
+type bg_install_control_service,    system_api_service, system_server_service, service_manager_type;
+type compos_service,                service_manager_type;
+type communal_service,              app_api_service, system_server_service, service_manager_type;
+type dynamic_system_service,        system_api_service, system_server_service, service_manager_type;
+type feature_flags_service,         app_api_service, system_server_service, service_manager_type;
+type gsi_service,                   service_manager_type;
+type incidentcompanion_service,     app_api_service, system_api_service, system_server_service, service_manager_type;
+type logcat_service,                system_server_service, service_manager_type;
+type logd_service,                  service_manager_type;
+type mediatuner_service,            app_api_service, service_manager_type;
+type profcollectd_service,          service_manager_type;
+type resolver_service,              system_server_service, service_manager_type;
+type rkpd_registrar_service,        service_manager_type;
+type rkpd_refresh_service,          service_manager_type;
+type safety_center_service,         app_api_service, system_api_service, system_server_service, service_manager_type;
+type stats_service,                 service_manager_type;
+type statsbootstrap_service,        system_server_service, service_manager_type;
+type statscompanion_service,        system_server_service, service_manager_type;
+type statsmanager_service,          system_api_service, system_server_service, service_manager_type;
+type tracingproxy_service,          system_server_service, service_manager_type;
+type transparency_service,          system_server_service, service_manager_type;
+
+#line 28
+
+#line 31
+
+
+type uce_service,                   service_manager_type;
+type wearable_sensing_service,      app_api_service, system_server_service, service_manager_type;
+#line 1 "system/sepolicy/private/servicemanager.te"
+typeattribute servicemanager coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init servicemanager_exec:file { getattr open read execute map };
+#line 3
+allow init servicemanager:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow servicemanager servicemanager_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init servicemanager:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init servicemanager:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init servicemanager_exec:process servicemanager;
+#line 3
+
+#line 3
+
+
+
+#line 5
+allow servicemanager runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 5
+
+
+
+#line 7
+
+#line 7
+allow servicemanager property_socket:sock_file write;
+#line 7
+allow servicemanager init:unix_stream_socket connectto;
+#line 7
+
+#line 7
+allow servicemanager ctl_interface_start_prop:property_service set;
+#line 7
+
+#line 7
+allow servicemanager ctl_interface_start_prop:file { getattr open read map };
+#line 7
+
+#line 7
+
+
+#line 8
+
+#line 8
+allow servicemanager property_socket:sock_file write;
+#line 8
+allow servicemanager init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow servicemanager servicemanager_prop:property_service set;
+#line 8
+
+#line 8
+allow servicemanager servicemanager_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+
+# servicemanager is using bootstrap bionic
+
+#line 11
+  allow servicemanager system_bootstrap_lib_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 11
+  allow servicemanager system_bootstrap_lib_file:file { execute read open getattr map };
+#line 11
+
+
+# servicemanager is using apex_info via libvintf
+
+#line 14
+  allow servicemanager apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+#line 14
+  allow servicemanager apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 14
+  
+#line 14
+allow servicemanager vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 14
+allow servicemanager vendor_apex_metadata_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 14
+
+#line 14
+
+#line 1 "system/sepolicy/private/sgdisk.te"
+typeattribute sgdisk coredomain;
+#line 1 "system/sepolicy/private/shared_relro.te"
+typeattribute shared_relro coredomain;
+
+# The shared relro process is a Java program forked from the zygote, so it
+# inherits from app to get basic permissions it needs to run.
+
+#line 5
+typeattribute shared_relro appdomain;
+#line 5
+# Label tmpfs objects for all apps.
+#line 5
+type_transition shared_relro tmpfs:file appdomain_tmpfs;
+#line 5
+
+#line 5
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 5
+type shared_relro_userfaultfd;
+#line 5
+type_transition shared_relro shared_relro:anon_inode shared_relro_userfaultfd "[userfaultfd]";
+#line 5
+# Allow domain to create/use userfaultfd anon_inode.
+#line 5
+allow shared_relro shared_relro_userfaultfd:anon_inode { create ioctl read };
+#line 5
+# Suppress errors generate during bugreport
+#line 5
+dontaudit su shared_relro_userfaultfd:anon_inode *;
+#line 5
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 5
+neverallow { domain -shared_relro } shared_relro_userfaultfd:anon_inode *;
+#line 5
+
+#line 5
+allow shared_relro appdomain_tmpfs:file { execute getattr map read write };
+#line 5
+neverallow { shared_relro -runas_app -shell -simpleperf } { domain -shared_relro }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 5
+neverallow { appdomain -runas_app -shell -simpleperf -shared_relro } shared_relro:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 5
+# The Android security model guarantees the confidentiality and integrity
+#line 5
+# of application data and execution state. Ptrace bypasses those
+#line 5
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 5
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 5
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 5
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 5
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 5
+# live lock conditions.
+#line 5
+neverallow { domain -shared_relro -crash_dump  -runas_app -simpleperf } shared_relro:process ptrace;
+#line 5
+
+
+allow shared_relro shared_relro_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow shared_relro shared_relro_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow shared_relro activity_service:service_manager find;
+allow shared_relro webviewupdate_service:service_manager find;
+allow shared_relro package_service:service_manager find;
+
+# StrictMode may attempt to find this service, failure is harmless.
+dontaudit shared_relro network_management_service:service_manager find;
+#line 1 "system/sepolicy/private/shell.te"
+typeattribute shell coredomain, mlstrustedsubject;
+
+# allow shell input injection
+allow shell uhid_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# systrace support - allow atrace to run
+allow shell debugfs_tracing_debug:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell debugfs_tracing:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell debugfs_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow shell debugfs_trace_marker:file getattr;
+allow shell atrace_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 15
+
+
+# read config.gz for CTS purposes
+allow shell config_gz:file { getattr open read ioctl lock map watch watch_reads };
+
+# allow reading tombstones. users can already use bugreports to get those.
+allow shell tombstone_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell tombstone_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Run app_process.
+# XXX Transition into its own domain?
+
+#line 26
+typeattribute shell appdomain;
+#line 26
+# Label tmpfs objects for all apps.
+#line 26
+type_transition shell tmpfs:file appdomain_tmpfs;
+#line 26
+
+#line 26
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 26
+type shell_userfaultfd;
+#line 26
+type_transition shell shell:anon_inode shell_userfaultfd "[userfaultfd]";
+#line 26
+# Allow domain to create/use userfaultfd anon_inode.
+#line 26
+allow shell shell_userfaultfd:anon_inode { create ioctl read };
+#line 26
+# Suppress errors generate during bugreport
+#line 26
+dontaudit su shell_userfaultfd:anon_inode *;
+#line 26
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 26
+neverallow { domain -shell } shell_userfaultfd:anon_inode *;
+#line 26
+
+#line 26
+allow shell appdomain_tmpfs:file { execute getattr map read write };
+#line 26
+neverallow { shell -runas_app -shell -simpleperf } { domain -shell }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 26
+neverallow { appdomain -runas_app -shell -simpleperf -shell } shell:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 26
+# The Android security model guarantees the confidentiality and integrity
+#line 26
+# of application data and execution state. Ptrace bypasses those
+#line 26
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 26
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 26
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 26
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 26
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 26
+# live lock conditions.
+#line 26
+neverallow { domain -shell -crash_dump  -runas_app -simpleperf } shell:process ptrace;
+#line 26
+
+
+# allow shell to call dumpsys storaged
+
+#line 29
+# Call the server domain and optionally transfer references to it.
+#line 29
+allow shell storaged:binder { call transfer };
+#line 29
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 29
+allow storaged shell:binder transfer;
+#line 29
+# Receive and use open files from the server.
+#line 29
+allow shell storaged:fd use;
+#line 29
+
+
+# Perform SELinux access checks, needed for CTS
+
+#line 32
+
+#line 32
+allow shell selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 32
+allow shell selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 32
+
+#line 32
+allow shell selinuxfs:file { open append write lock map };
+#line 32
+allow shell kernel:security compute_av;
+#line 32
+allow shell self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 32
+
+
+#line 33
+
+#line 33
+allow shell selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow shell selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 33
+
+#line 33
+allow shell selinuxfs:file { open append write lock map };
+#line 33
+allow shell kernel:security check_context;
+#line 33
+
+
+# Control Perfetto traced and obtain traces from it.
+# Needed for Studio and debugging.
+
+#line 37
+allow shell traced_consumer_socket:sock_file write;
+#line 37
+allow shell traced:unix_stream_socket connectto;
+#line 37
+
+
+# Allow shell binaries to write trace data to Perfetto. Used for testing and
+# cmdline utils.
+
+#line 41
+  allow shell traced:fd use;
+#line 41
+  allow shell traced_tmpfs:file { read write getattr map };
+#line 41
+  
+#line 41
+allow shell traced_producer_socket:sock_file write;
+#line 41
+allow shell traced:unix_stream_socket connectto;
+#line 41
+
+#line 41
+
+#line 41
+  # Also allow the service to use the producer file descriptors. This is
+#line 41
+  # necessary when the producer is creating the shared memory, as it will be
+#line 41
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 41
+  allow traced shell:fd use;
+#line 41
+
+
+
+#line 43
+# Allow the necessary permissions.
+#line 43
+
+#line 43
+# Old domain may exec the file and transition to the new domain.
+#line 43
+allow shell vendor_shell_exec:file { getattr open read execute map };
+#line 43
+allow shell vendor_shell:process transition;
+#line 43
+# New domain is entered by executing the file.
+#line 43
+allow vendor_shell vendor_shell_exec:file { entrypoint open read execute getattr map };
+#line 43
+# New domain can send SIGCHLD to its caller.
+#line 43
+allow vendor_shell shell:process sigchld;
+#line 43
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 43
+dontaudit shell vendor_shell:process noatsecure;
+#line 43
+# XXX dontaudit candidate but requires further study.
+#line 43
+allow shell vendor_shell:process { siginh rlimitinh };
+#line 43
+
+#line 43
+# Make the transition occur by default.
+#line 43
+type_transition shell vendor_shell_exec:process vendor_shell;
+#line 43
+
+
+# Allow shell binaries to exec the perfetto cmdline util and have that
+# transition into its own domain, so that it behaves consistently to
+# when exec()-d by statsd.
+
+#line 48
+# Allow the necessary permissions.
+#line 48
+
+#line 48
+# Old domain may exec the file and transition to the new domain.
+#line 48
+allow shell perfetto_exec:file { getattr open read execute map };
+#line 48
+allow shell perfetto:process transition;
+#line 48
+# New domain is entered by executing the file.
+#line 48
+allow perfetto perfetto_exec:file { entrypoint open read execute getattr map };
+#line 48
+# New domain can send SIGCHLD to its caller.
+#line 48
+allow perfetto shell:process sigchld;
+#line 48
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 48
+dontaudit shell perfetto:process noatsecure;
+#line 48
+# XXX dontaudit candidate but requires further study.
+#line 48
+allow shell perfetto:process { siginh rlimitinh };
+#line 48
+
+#line 48
+# Make the transition occur by default.
+#line 48
+type_transition shell perfetto_exec:process perfetto;
+#line 48
+
+# Allow to send SIGINT to perfetto when daemonized.
+allow shell perfetto:process signal;
+
+# Allow shell to run adb shell cmd stats commands. Needed for CTS.
+
+#line 53
+# Call the server domain and optionally transfer references to it.
+#line 53
+allow shell statsd:binder { call transfer };
+#line 53
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 53
+allow statsd shell:binder transfer;
+#line 53
+# Receive and use open files from the server.
+#line 53
+allow shell statsd:fd use;
+#line 53
+;
+
+# Allow shell to read and unlink traces stored in /data/misc/a11ytraces.
+#line 59
+
+
+# Allow shell to read and unlink traces stored in /data/misc/perfetto-traces.
+allow shell perfetto_traces_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow shell perfetto_traces_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+# ... and /data/misc/perfetto-traces/bugreport/ .
+allow shell perfetto_traces_bugreport_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow shell perfetto_traces_bugreport_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+
+# Allow shell to create/remove configs stored in /data/misc/perfetto-configs.
+allow shell perfetto_configs_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow shell perfetto_configs_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow shell to run adb shell cmd gpu commands.
+
+#line 73
+# Call the server domain and optionally transfer references to it.
+#line 73
+allow shell gpuservice:binder { call transfer };
+#line 73
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 73
+allow gpuservice shell:binder transfer;
+#line 73
+# Receive and use open files from the server.
+#line 73
+allow shell gpuservice:fd use;
+#line 73
+;
+
+# Allow shell to use atrace HAL
+
+#line 76
+typeattribute shell halclientdomain;
+#line 76
+typeattribute shell hal_atrace_client;
+#line 76
+
+#line 76
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 76
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 76
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 76
+
+#line 76
+typeattribute shell hal_atrace;
+#line 76
+# Find passthrough HAL implementations
+#line 76
+allow hal_atrace system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 76
+allow hal_atrace vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 76
+allow hal_atrace vendor_file:file { read open getattr execute map };
+#line 76
+
+#line 76
+
+
+# For hostside tests such as CTS listening ports test.
+allow shell proc_net_tcp_udp:file { getattr open read ioctl lock map watch watch_reads };
+
+# The dl.exec_linker* tests need to execute /system/bin/linker
+# b/124789393
+allow shell system_linker_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Renderscript host side tests depend on being able to execute
+# /system/bin/bcc (b/126388046)
+allow shell rs_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow (host-driven) ART run-tests to execute dex2oat, in order to
+# check ART's compiler.
+allow shell dex2oat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow shell dex2oat_exec:lnk_file read;
+
+# Allow shell to start and comminicate with lpdumpd.
+
+#line 95
+
+#line 95
+allow shell property_socket:sock_file write;
+#line 95
+allow shell init:unix_stream_socket connectto;
+#line 95
+
+#line 95
+allow shell lpdumpd_prop:property_service set;
+#line 95
+
+#line 95
+allow shell lpdumpd_prop:file { getattr open read map };
+#line 95
+
+#line 95
+;
+
+#line 96
+# Call the server domain and optionally transfer references to it.
+#line 96
+allow shell lpdumpd:binder { call transfer };
+#line 96
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 96
+allow lpdumpd shell:binder transfer;
+#line 96
+# Receive and use open files from the server.
+#line 96
+allow shell lpdumpd:fd use;
+#line 96
+
+
+# Allow shell to set and read value of properties used for CTS tests of
+# userspace reboot
+
+#line 100
+
+#line 100
+allow shell property_socket:sock_file write;
+#line 100
+allow shell init:unix_stream_socket connectto;
+#line 100
+
+#line 100
+allow shell userspace_reboot_test_prop:property_service set;
+#line 100
+
+#line 100
+allow shell userspace_reboot_test_prop:file { getattr open read map };
+#line 100
+
+#line 100
+
+
+# Allow shell to set this property to disable charging.
+
+#line 103
+
+#line 103
+allow shell property_socket:sock_file write;
+#line 103
+allow shell init:unix_stream_socket connectto;
+#line 103
+
+#line 103
+allow shell power_debug_prop:property_service set;
+#line 103
+
+#line 103
+allow shell power_debug_prop:file { getattr open read map };
+#line 103
+
+#line 103
+
+
+# Allow shell to set this property used for rollback tests
+
+#line 106
+
+#line 106
+allow shell property_socket:sock_file write;
+#line 106
+allow shell init:unix_stream_socket connectto;
+#line 106
+
+#line 106
+allow shell rollback_test_prop:property_service set;
+#line 106
+
+#line 106
+allow shell rollback_test_prop:file { getattr open read map };
+#line 106
+
+#line 106
+
+
+# Allow shell to set RKP properties for testing purposes
+
+#line 109
+
+#line 109
+allow shell property_socket:sock_file write;
+#line 109
+allow shell init:unix_stream_socket connectto;
+#line 109
+
+#line 109
+allow shell remote_prov_prop:property_service set;
+#line 109
+
+#line 109
+allow shell remote_prov_prop:file { getattr open read map };
+#line 109
+
+#line 109
+
+
+# Allow shell to get encryption policy of /data/local/tmp/, for CTS
+allowxperm shell shell_data_file:dir ioctl {
+  0x400c6615
+  0xc0096616
+};
+
+# Allow shell to execute simpleperf without a domain transition.
+allow shell simpleperf_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 129
+
+
+# Allow shell to run remount command.
+allow shell remount_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow shell to call perf_event_open for profiling other shell processes, but
+# not the whole system.
+allow shell self:perf_event { open read write kernel };
+neverallow shell self:perf_event ~{ open read write kernel };
+
+# Allow shell to read microdroid vendor image
+
+#line 140
+allow shell vendor_microdroid_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 140
+allow shell vendor_microdroid_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 140
+
+
+# Allow shell to read /apex/apex-info-list.xml and the vendor apexes
+allow shell apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell vendor_apex_file:file { getattr open read ioctl lock map watch watch_reads };
+allow shell vendor_apex_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow shell vendor_apex_metadata_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow shell to read updated APEXes under /data/apex
+allow shell apex_data_file:dir search;
+allow shell staging_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Set properties.
+
+#line 153
+
+#line 153
+allow shell property_socket:sock_file write;
+#line 153
+allow shell init:unix_stream_socket connectto;
+#line 153
+
+#line 153
+allow shell shell_prop:property_service set;
+#line 153
+
+#line 153
+allow shell shell_prop:file { getattr open read map };
+#line 153
+
+#line 153
+
+
+#line 154
+
+#line 154
+allow shell property_socket:sock_file write;
+#line 154
+allow shell init:unix_stream_socket connectto;
+#line 154
+
+#line 154
+allow shell ctl_bugreport_prop:property_service set;
+#line 154
+
+#line 154
+allow shell ctl_bugreport_prop:file { getattr open read map };
+#line 154
+
+#line 154
+
+
+#line 155
+
+#line 155
+allow shell property_socket:sock_file write;
+#line 155
+allow shell init:unix_stream_socket connectto;
+#line 155
+
+#line 155
+allow shell ctl_dumpstate_prop:property_service set;
+#line 155
+
+#line 155
+allow shell ctl_dumpstate_prop:file { getattr open read map };
+#line 155
+
+#line 155
+
+
+#line 156
+
+#line 156
+allow shell property_socket:sock_file write;
+#line 156
+allow shell init:unix_stream_socket connectto;
+#line 156
+
+#line 156
+allow shell dumpstate_prop:property_service set;
+#line 156
+
+#line 156
+allow shell dumpstate_prop:file { getattr open read map };
+#line 156
+
+#line 156
+
+
+#line 157
+
+#line 157
+allow shell property_socket:sock_file write;
+#line 157
+allow shell init:unix_stream_socket connectto;
+#line 157
+
+#line 157
+allow shell exported_dumpstate_prop:property_service set;
+#line 157
+
+#line 157
+allow shell exported_dumpstate_prop:file { getattr open read map };
+#line 157
+
+#line 157
+
+
+#line 158
+
+#line 158
+allow shell property_socket:sock_file write;
+#line 158
+allow shell init:unix_stream_socket connectto;
+#line 158
+
+#line 158
+allow shell debug_prop:property_service set;
+#line 158
+
+#line 158
+allow shell debug_prop:file { getattr open read map };
+#line 158
+
+#line 158
+
+
+#line 159
+
+#line 159
+allow shell property_socket:sock_file write;
+#line 159
+allow shell init:unix_stream_socket connectto;
+#line 159
+
+#line 159
+allow shell perf_drop_caches_prop:property_service set;
+#line 159
+
+#line 159
+allow shell perf_drop_caches_prop:file { getattr open read map };
+#line 159
+
+#line 159
+
+
+#line 160
+
+#line 160
+allow shell property_socket:sock_file write;
+#line 160
+allow shell init:unix_stream_socket connectto;
+#line 160
+
+#line 160
+allow shell powerctl_prop:property_service set;
+#line 160
+
+#line 160
+allow shell powerctl_prop:file { getattr open read map };
+#line 160
+
+#line 160
+
+
+#line 161
+
+#line 161
+allow shell property_socket:sock_file write;
+#line 161
+allow shell init:unix_stream_socket connectto;
+#line 161
+
+#line 161
+allow shell log_tag_prop:property_service set;
+#line 161
+
+#line 161
+allow shell log_tag_prop:file { getattr open read map };
+#line 161
+
+#line 161
+
+
+#line 162
+
+#line 162
+allow shell property_socket:sock_file write;
+#line 162
+allow shell init:unix_stream_socket connectto;
+#line 162
+
+#line 162
+allow shell wifi_log_prop:property_service set;
+#line 162
+
+#line 162
+allow shell wifi_log_prop:file { getattr open read map };
+#line 162
+
+#line 162
+
+# Allow shell to start/stop traced via the persist.traced.enable
+# property (which also takes care of /data/misc initialization).
+
+#line 165
+
+#line 165
+allow shell property_socket:sock_file write;
+#line 165
+allow shell init:unix_stream_socket connectto;
+#line 165
+
+#line 165
+allow shell traced_enabled_prop:property_service set;
+#line 165
+
+#line 165
+allow shell traced_enabled_prop:file { getattr open read map };
+#line 165
+
+#line 165
+
+# adjust SELinux audit rates
+
+#line 167
+
+#line 167
+allow shell property_socket:sock_file write;
+#line 167
+allow shell init:unix_stream_socket connectto;
+#line 167
+
+#line 167
+allow shell logd_auditrate_prop:property_service set;
+#line 167
+
+#line 167
+allow shell logd_auditrate_prop:file { getattr open read map };
+#line 167
+
+#line 167
+
+# adjust is_loggable properties
+
+# logpersist script
+
+# Allow shell to start/stop heapprofd via the persist.heapprofd.enable
+# property.
+
+#line 174
+
+#line 174
+allow shell property_socket:sock_file write;
+#line 174
+allow shell init:unix_stream_socket connectto;
+#line 174
+
+#line 174
+allow shell heapprofd_enabled_prop:property_service set;
+#line 174
+
+#line 174
+allow shell heapprofd_enabled_prop:file { getattr open read map };
+#line 174
+
+#line 174
+
+# Allow shell to start/stop traced_perf via the persist.traced_perf.enable
+# property.
+
+#line 177
+
+#line 177
+allow shell property_socket:sock_file write;
+#line 177
+allow shell init:unix_stream_socket connectto;
+#line 177
+
+#line 177
+allow shell traced_perf_enabled_prop:property_service set;
+#line 177
+
+#line 177
+allow shell traced_perf_enabled_prop:file { getattr open read map };
+#line 177
+
+#line 177
+
+# Allow shell to start/stop gsid via ctl.start|stop|restart gsid.
+
+#line 179
+
+#line 179
+allow shell property_socket:sock_file write;
+#line 179
+allow shell init:unix_stream_socket connectto;
+#line 179
+
+#line 179
+allow shell ctl_gsid_prop:property_service set;
+#line 179
+
+#line 179
+allow shell ctl_gsid_prop:file { getattr open read map };
+#line 179
+
+#line 179
+
+
+#line 180
+
+#line 180
+allow shell property_socket:sock_file write;
+#line 180
+allow shell init:unix_stream_socket connectto;
+#line 180
+
+#line 180
+allow shell ctl_snapuserd_prop:property_service set;
+#line 180
+
+#line 180
+allow shell ctl_snapuserd_prop:file { getattr open read map };
+#line 180
+
+#line 180
+
+# Allow shell to enable Dynamic System Update
+
+#line 182
+
+#line 182
+allow shell property_socket:sock_file write;
+#line 182
+allow shell init:unix_stream_socket connectto;
+#line 182
+
+#line 182
+allow shell dynamic_system_prop:property_service set;
+#line 182
+
+#line 182
+allow shell dynamic_system_prop:file { getattr open read map };
+#line 182
+
+#line 182
+
+# Allow shell to mock an OTA using persist.pm.mock-upgrade
+
+#line 184
+
+#line 184
+allow shell property_socket:sock_file write;
+#line 184
+allow shell init:unix_stream_socket connectto;
+#line 184
+
+#line 184
+allow shell mock_ota_prop:property_service set;
+#line 184
+
+#line 184
+allow shell mock_ota_prop:file { getattr open read map };
+#line 184
+
+#line 184
+
+
+# Read device's serial number from system properties
+
+#line 187
+allow shell serialno_prop:file { getattr open read map };
+#line 187
+
+
+# Allow shell to read the vendor security patch level for CTS
+
+#line 190
+allow shell vendor_security_patch_level_prop:file { getattr open read map };
+#line 190
+
+
+# Read state of logging-related properties
+
+#line 193
+allow shell device_logging_prop:file { getattr open read map };
+#line 193
+
+
+# Read state of boot reason properties
+
+#line 196
+allow shell bootloader_boot_reason_prop:file { getattr open read map };
+#line 196
+
+
+#line 197
+allow shell last_boot_reason_prop:file { getattr open read map };
+#line 197
+
+
+#line 198
+allow shell system_boot_reason_prop:file { getattr open read map };
+#line 198
+
+
+# Allow shell to execute the remote key provisioning factory tool
+
+#line 201
+# Call the server domain and optionally transfer references to it.
+#line 201
+allow shell hal_keymint:binder { call transfer };
+#line 201
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 201
+allow hal_keymint shell:binder transfer;
+#line 201
+# Receive and use open files from the server.
+#line 201
+allow shell hal_keymint:fd use;
+#line 201
+
+
+# Allow reading the outcome of perf_event_open LSM support test for CTS.
+
+#line 204
+allow shell init_perf_lsm_hooks_prop:file { getattr open read map };
+#line 204
+
+
+# Allow shell to read boot image timestamps and fingerprints.
+
+#line 207
+allow shell build_bootimage_prop:file { getattr open read map };
+#line 207
+
+
+# Allow shell to read odsign verification properties
+
+#line 210
+allow shell odsign_prop:file { getattr open read map };
+#line 210
+
+
+
+
+# Allow shell to read the keystore key contexts files. Used by native tests to test label lookup.
+allow shell keystore2_key_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow shell to access the keystore2_key namespace shell_key. Mainly used for native tests.
+allow shell shell_key:keystore2_key { delete rebind use get_info update };
+
+# Allow shell to open and execute memfd files for minijail unit tests.
+#line 223
+
+
+# Allow shell to write db.log.detailed, db.log.slow_query_threshold*
+
+#line 226
+
+#line 226
+allow shell property_socket:sock_file write;
+#line 226
+allow shell init:unix_stream_socket connectto;
+#line 226
+
+#line 226
+allow shell sqlite_log_prop:property_service set;
+#line 226
+
+#line 226
+allow shell sqlite_log_prop:file { getattr open read map };
+#line 226
+
+#line 226
+
+
+# Allow shell to write MTE properties even on user builds.
+
+#line 229
+
+#line 229
+allow shell property_socket:sock_file write;
+#line 229
+allow shell init:unix_stream_socket connectto;
+#line 229
+
+#line 229
+allow shell arm64_memtag_prop:property_service set;
+#line 229
+
+#line 229
+allow shell arm64_memtag_prop:file { getattr open read map };
+#line 229
+
+#line 229
+
+
+# Allow shell to read the dm-verity props on user builds.
+
+#line 232
+allow shell verity_status_prop:file { getattr open read map };
+#line 232
+
+
+# Allow shell to read Virtual A/B related properties
+
+#line 235
+allow shell virtual_ab_prop:file { getattr open read map };
+#line 235
+
+
+# Never allow others to set or get the perf.drop_caches property.
+neverallow { domain -shell -init } perf_drop_caches_prop:property_service set;
+neverallow { domain -shell -init -dumpstate } perf_drop_caches_prop:file read;
+
+# Allow ReadDefaultFstab() for CTS.
+
+#line 242
+  allow shell { metadata_file gsi_metadata_file_type }:dir search;
+#line 242
+  allow shell gsi_public_metadata_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 242
+  allow shell { proc_bootconfig proc_cmdline }:file { getattr open read ioctl lock map watch watch_reads };
+#line 242
+
+
+# Allow shell read access to /apex/apex-info-list.xml for CTS.
+allow shell apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Let the shell user call virtualizationservice (and
+# virtualizationservice call back to shell) for debugging.
+
+#line 249
+# Transition to virtualizationmanager when the client executes it.
+#line 249
+
+#line 249
+# Allow the necessary permissions.
+#line 249
+
+#line 249
+# Old domain may exec the file and transition to the new domain.
+#line 249
+allow shell virtualizationmanager_exec:file { getattr open read execute map };
+#line 249
+allow shell virtualizationmanager:process transition;
+#line 249
+# New domain is entered by executing the file.
+#line 249
+allow virtualizationmanager virtualizationmanager_exec:file { entrypoint open read execute getattr map };
+#line 249
+# New domain can send SIGCHLD to its caller.
+#line 249
+allow virtualizationmanager shell:process sigchld;
+#line 249
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 249
+dontaudit shell virtualizationmanager:process noatsecure;
+#line 249
+# XXX dontaudit candidate but requires further study.
+#line 249
+allow shell virtualizationmanager:process { siginh rlimitinh };
+#line 249
+
+#line 249
+# Make the transition occur by default.
+#line 249
+type_transition shell virtualizationmanager_exec:process virtualizationmanager;
+#line 249
+
+#line 249
+# Allow virtualizationmanager to communicate over UDS with the client.
+#line 249
+allow { virtualizationmanager crosvm } shell:unix_stream_socket { ioctl getattr read write };
+#line 249
+# Let the client pass file descriptors to virtualizationmanager and on to crosvm.
+#line 249
+allow { virtualizationmanager crosvm } shell:fd use;
+#line 249
+# Let the client use file descriptors created by virtualizationmanager.
+#line 249
+allow shell virtualizationmanager:fd use;
+#line 249
+# Allow piping console log to the client
+#line 249
+allow { virtualizationmanager crosvm } shell:fifo_file { ioctl getattr read write };
+#line 249
+# Allow client to read/write vsock created by virtualizationmanager to communicate with the VM
+#line 249
+# that it created. Notice that we do not grant permission to create a vsock;
+#line 249
+# the client can only connect to VMs that it owns.
+#line 249
+allow shell virtualizationmanager:vsock_socket { getattr getopt read write };
+#line 249
+# Allow client to inspect hypervisor capabilities
+#line 249
+
+#line 249
+allow shell hypervisor_prop:file { getattr open read map };
+#line 249
+
+#line 249
+# Allow client to read (but not open) the crashdump provided by virtualizationmanager
+#line 249
+allow shell virtualizationservice_data_file:file { getattr read };
+#line 249
+
+
+# Allow shell to set persist.wm.debug properties
+
+
+# Allow shell to write GWP-ASan properties even on user builds.
+
+#line 255
+
+#line 255
+allow shell property_socket:sock_file write;
+#line 255
+allow shell init:unix_stream_socket connectto;
+#line 255
+
+#line 255
+allow shell gwp_asan_prop:property_service set;
+#line 255
+
+#line 255
+allow shell gwp_asan_prop:file { getattr open read map };
+#line 255
+
+#line 255
+
+
+# Allow shell to set persist.sysui.notification.builder_extras_override property
+
+# Allow shell to set persist.sysui.notification.ranking_update_ashmem property
+
+
+# Allow shell to read the build properties for attestation feature
+
+#line 263
+allow shell build_attestation_prop:file { getattr open read map };
+#line 263
+
+
+# Allow shell to execute oatdump.
+allow shell oatdump_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 1 "system/sepolicy/private/simpleperf.te"
+# Domain used when running /system/bin/simpleperf to profile a specific app.
+# Entered either by the app itself exec-ing the binary, or through
+# simpleperf_app_runner (with shell as its origin). Certain other domains
+# (runas_app, shell) can also exec this binary without a domain transition.
+typeattribute simpleperf coredomain;
+type simpleperf_exec, system_file_type, exec_type, file_type;
+
+# Define apps that can be marked debuggable/profileable and be profiled by simpleperf.
+#line 15
+
+
+
+#line 17
+# Allow the necessary permissions.
+#line 17
+
+#line 17
+# Old domain may exec the file and transition to the new domain.
+#line 17
+allow { {
+#line 17
+  ephemeral_app
+#line 17
+  isolated_app
+#line 17
+  platform_app
+#line 17
+  priv_app
+#line 17
+  untrusted_app_all
+#line 17
+} -runas_app } simpleperf_exec:file { getattr open read execute map };
+#line 17
+allow { {
+#line 17
+  ephemeral_app
+#line 17
+  isolated_app
+#line 17
+  platform_app
+#line 17
+  priv_app
+#line 17
+  untrusted_app_all
+#line 17
+} -runas_app } simpleperf:process transition;
+#line 17
+# New domain is entered by executing the file.
+#line 17
+allow simpleperf simpleperf_exec:file { entrypoint open read execute getattr map };
+#line 17
+# New domain can send SIGCHLD to its caller.
+#line 17
+allow simpleperf { {
+#line 17
+  ephemeral_app
+#line 17
+  isolated_app
+#line 17
+  platform_app
+#line 17
+  priv_app
+#line 17
+  untrusted_app_all
+#line 17
+} -runas_app }:process sigchld;
+#line 17
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 17
+dontaudit { {
+#line 17
+  ephemeral_app
+#line 17
+  isolated_app
+#line 17
+  platform_app
+#line 17
+  priv_app
+#line 17
+  untrusted_app_all
+#line 17
+} -runas_app } simpleperf:process noatsecure;
+#line 17
+# XXX dontaudit candidate but requires further study.
+#line 17
+allow { {
+#line 17
+  ephemeral_app
+#line 17
+  isolated_app
+#line 17
+  platform_app
+#line 17
+  priv_app
+#line 17
+  untrusted_app_all
+#line 17
+} -runas_app } simpleperf:process { siginh rlimitinh };
+#line 17
+
+#line 17
+# Make the transition occur by default.
+#line 17
+type_transition { {
+#line 17
+  ephemeral_app
+#line 17
+  isolated_app
+#line 17
+  platform_app
+#line 17
+  priv_app
+#line 17
+  untrusted_app_all
+#line 17
+} -runas_app } simpleperf_exec:process simpleperf;
+#line 17
+
+
+# When running in this domain, simpleperf is scoped to profiling an individual
+# app. The necessary MAC permissions for profiling are more maintainable and
+# consistent if simpleperf is marked as an app domain as well (as, for example,
+# it will then see the same set of system libraries as the app).
+
+#line 23
+typeattribute simpleperf appdomain;
+#line 23
+# Label tmpfs objects for all apps.
+#line 23
+type_transition simpleperf tmpfs:file appdomain_tmpfs;
+#line 23
+
+#line 23
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 23
+type simpleperf_userfaultfd;
+#line 23
+type_transition simpleperf simpleperf:anon_inode simpleperf_userfaultfd "[userfaultfd]";
+#line 23
+# Allow domain to create/use userfaultfd anon_inode.
+#line 23
+allow simpleperf simpleperf_userfaultfd:anon_inode { create ioctl read };
+#line 23
+# Suppress errors generate during bugreport
+#line 23
+dontaudit su simpleperf_userfaultfd:anon_inode *;
+#line 23
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 23
+neverallow { domain -simpleperf } simpleperf_userfaultfd:anon_inode *;
+#line 23
+
+#line 23
+allow simpleperf appdomain_tmpfs:file { execute getattr map read write };
+#line 23
+neverallow { simpleperf -runas_app -shell -simpleperf } { domain -simpleperf }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 23
+neverallow { appdomain -runas_app -shell -simpleperf -simpleperf } simpleperf:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 23
+# The Android security model guarantees the confidentiality and integrity
+#line 23
+# of application data and execution state. Ptrace bypasses those
+#line 23
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 23
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 23
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 23
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 23
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 23
+# live lock conditions.
+#line 23
+neverallow { domain -simpleperf -crash_dump  -runas_app -simpleperf } simpleperf:process ptrace;
+#line 23
+
+
+#line 24
+typeattribute simpleperf untrusted_app_all;
+#line 24
+
+
+# Allow ptrace attach to the target app, for reading JIT debug info (using
+# process_vm_readv) during unwinding and symbolization.
+allow simpleperf {
+#line 28
+  ephemeral_app
+#line 28
+  isolated_app
+#line 28
+  platform_app
+#line 28
+  priv_app
+#line 28
+  untrusted_app_all
+#line 28
+}:process ptrace;
+
+# Allow using perf_event_open syscall for profiling the target app.
+allow simpleperf self:perf_event { open read write kernel };
+
+# Allow /proc/<pid> access for the target app (for example, when trying to
+# discover it by cmdline).
+
+#line 35
+allow simpleperf {
+#line 35
+  ephemeral_app
+#line 35
+  isolated_app
+#line 35
+  platform_app
+#line 35
+  priv_app
+#line 35
+  untrusted_app_all
+#line 35
+}:dir { open getattr read search ioctl lock watch watch_reads };
+#line 35
+allow simpleperf {
+#line 35
+  ephemeral_app
+#line 35
+  isolated_app
+#line 35
+  platform_app
+#line 35
+  priv_app
+#line 35
+  untrusted_app_all
+#line 35
+}:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 35
+
+
+# Allow apps signalling simpleperf domain, which is the domain that the simpleperf
+# profiler runs as when executed by the app. The signals are used to control
+# the profiler (which would be profiling the app that is sending the signal).
+allow {
+#line 40
+  ephemeral_app
+#line 40
+  isolated_app
+#line 40
+  platform_app
+#line 40
+  priv_app
+#line 40
+  untrusted_app_all
+#line 40
+} simpleperf:process signal;
+
+# Suppress denial logspam when simpleperf is trying to find a matching process
+# by scanning /proc/<pid>/cmdline files. The /proc/<pid> directories are within
+# the same domain as their respective processes, most of which this domain is
+# not allowed to see.
+dontaudit simpleperf domain:dir search;
+
+# Neverallows:
+
+# Profiling must be confined to the scope of an individual app.
+neverallow simpleperf self:perf_event ~{ open read write kernel };
+#line 1 "system/sepolicy/private/simpleperf_app_runner.te"
+typeattribute simpleperf_app_runner coredomain;
+
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow shell simpleperf_app_runner_exec:file { getattr open read execute map };
+#line 3
+allow shell simpleperf_app_runner:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow simpleperf_app_runner simpleperf_app_runner_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+allow simpleperf_app_runner shell:process sigchld;
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit shell simpleperf_app_runner:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow shell simpleperf_app_runner:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition shell simpleperf_app_runner_exec:process simpleperf_app_runner;
+#line 3
+
+
+# run simpleperf_app_runner in adb shell.
+allow simpleperf_app_runner adbd:fd use;
+allow simpleperf_app_runner shell:fd use;
+allow simpleperf_app_runner devpts:chr_file { read write ioctl };
+
+# simpleperf_app_runner reads package information.
+allow simpleperf_app_runner system_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow simpleperf_app_runner system_data_file:lnk_file getattr;
+allow simpleperf_app_runner packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# The app's data dir may be accessed through a symlink.
+allow simpleperf_app_runner system_data_file:lnk_file read;
+
+# simpleperf_app_runner switches to the app UID/GID.
+allow simpleperf_app_runner self:{ capability cap_userns } { setuid setgid };
+
+# simpleperf_app_runner switches to the app security context.
+
+#line 22
+
+#line 22
+allow simpleperf_app_runner selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow simpleperf_app_runner selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 22
+
+#line 22
+allow simpleperf_app_runner selinuxfs:file { open append write lock map };
+#line 22
+allow simpleperf_app_runner kernel:security check_context;
+#line 22
+ # validate context
+allow simpleperf_app_runner self:process setcurrent;
+allow simpleperf_app_runner { ephemeral_app isolated_app platform_app priv_app untrusted_app_all }:process dyntransition; # setcon
+
+# simpleperf_app_runner/libselinux needs access to seapp_contexts_file to
+# determine which domain to transition to.
+allow simpleperf_app_runner seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# simpleperf_app_runner passes pipe fds.
+# simpleperf_app_runner writes app type (debuggable or profileable) to pipe fds.
+allow simpleperf_app_runner shell:fifo_file { read write };
+
+# simpleperf_app_runner checks shell data paths.
+# simpleperf_app_runner passes shell data fds.
+allow simpleperf_app_runner shell_data_file:dir { getattr search };
+allow simpleperf_app_runner shell_data_file:file { getattr write };
+
+###
+### neverallow rules
+###
+
+# simpleperf_app_runner cannot have capabilities other than CAP_SETUID and CAP_SETGID
+neverallow simpleperf_app_runner self:{ capability cap_userns } ~{ setuid setgid };
+neverallow simpleperf_app_runner self:{ capability2 cap2_userns } *;
+#line 1 "system/sepolicy/private/simpleperf_boot.te"
+# Domain used when running /system/bin/simpleperf to record boot-time profiles.
+# It is started by init process. It's only available on userdebug/eng build.
+
+type simpleperf_boot, domain, coredomain, mlstrustedsubject;
+
+# /data/simpleperf_boot_data, used to store boot-time profiles.
+type simpleperf_boot_data_file, file_type;
+
+#line 59
+
+#line 1 "system/sepolicy/private/slideshow.te"
+typeattribute slideshow coredomain;
+#line 1 "system/sepolicy/private/snapshotctl.te"
+type snapshotctl, domain, coredomain;
+type snapshotctl_exec, system_file_type, exec_type, file_type;
+
+# Allow init to run snapshotctl and do auto domain transfer.
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init snapshotctl_exec:file { getattr open read execute map };
+#line 5
+allow init snapshotctl:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow snapshotctl snapshotctl_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init snapshotctl:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init snapshotctl:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init snapshotctl_exec:process snapshotctl;
+#line 5
+
+#line 5
+;
+
+# Allow to start gsid service.
+
+#line 8
+
+#line 8
+allow snapshotctl property_socket:sock_file write;
+#line 8
+allow snapshotctl init:unix_stream_socket connectto;
+#line 8
+
+#line 8
+allow snapshotctl ctl_gsid_prop:property_service set;
+#line 8
+
+#line 8
+allow snapshotctl ctl_gsid_prop:file { getattr open read map };
+#line 8
+
+#line 8
+
+
+# Allow to talk to gsid.
+
+#line 11
+# Call the servicemanager and transfer references to it.
+#line 11
+allow snapshotctl servicemanager:binder { call transfer };
+#line 11
+# Allow servicemanager to send out callbacks
+#line 11
+allow servicemanager snapshotctl:binder { call transfer };
+#line 11
+# servicemanager performs getpidcon on clients.
+#line 11
+allow servicemanager snapshotctl:dir search;
+#line 11
+allow servicemanager snapshotctl:file { read open };
+#line 11
+allow servicemanager snapshotctl:process getattr;
+#line 11
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 11
+# all domains in domain.te.
+#line 11
+
+allow snapshotctl gsi_service:service_manager find;
+
+#line 13
+# Call the server domain and optionally transfer references to it.
+#line 13
+allow snapshotctl gsid:binder { call transfer };
+#line 13
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 13
+allow gsid snapshotctl:binder transfer;
+#line 13
+# Receive and use open files from the server.
+#line 13
+allow snapshotctl gsid:fd use;
+#line 13
+
+
+# Allow to create/read/write/delete OTA metadata files for snapshot status and COW file status.
+allow snapshotctl metadata_file:dir search;
+allow snapshotctl ota_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow snapshotctl ota_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow to get A/B slot suffix from device tree or kernel cmdline.
+
+#line 21
+allow snapshotctl sysfs_dt_firmware_android:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow snapshotctl sysfs_dt_firmware_android:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 21
+;
+allow snapshotctl proc_cmdline:file { getattr open read ioctl lock map watch watch_reads };
+
+# Needed to (re-)map logical partitions.
+allow snapshotctl block_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow snapshotctl super_block_device:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Interact with device-mapper to collapse snapshots.
+allow snapshotctl dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Needed to mutate device-mapper nodes.
+allow snapshotctl self:{ capability cap_userns } sys_admin;
+
+# Snapshotctl talk to boot control HAL to set merge status.
+
+#line 35
+# Call the hwservicemanager and transfer references to it.
+#line 35
+allow snapshotctl hwservicemanager:binder { call transfer };
+#line 35
+# Allow hwservicemanager to send out callbacks
+#line 35
+allow hwservicemanager snapshotctl:binder { call transfer };
+#line 35
+# hwservicemanager performs getpidcon on clients.
+#line 35
+allow hwservicemanager snapshotctl:dir search;
+#line 35
+allow hwservicemanager snapshotctl:file { read open map };
+#line 35
+allow hwservicemanager snapshotctl:process getattr;
+#line 35
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 35
+# all domains in domain.te.
+#line 35
+
+
+#line 36
+typeattribute snapshotctl halclientdomain;
+#line 36
+typeattribute snapshotctl hal_bootctl_client;
+#line 36
+
+#line 36
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 36
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 36
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 36
+
+#line 36
+typeattribute snapshotctl hal_bootctl;
+#line 36
+# Find passthrough HAL implementations
+#line 36
+allow hal_bootctl system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 36
+allow hal_bootctl vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 36
+allow hal_bootctl vendor_file:file { read open getattr execute map };
+#line 36
+
+#line 36
+
+
+# Allow snapshotctl to write to statsd socket.
+
+#line 39
+allow snapshotctl statsdw_socket:sock_file write;
+#line 39
+allow snapshotctl statsd:unix_dgram_socket sendto;
+#line 39
+
+
+# Logging
+#line 45
+
+#line 1 "system/sepolicy/private/snapuserd.te"
+# snapuserd - Daemon for servicing dm-user requests for Virtual A/B snapshots.
+type snapuserd, domain;
+type snapuserd_exec, exec_type, file_type, system_file_type;
+
+typeattribute snapuserd coredomain;
+
+
+#line 7
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow init snapuserd_exec:file { getattr open read execute map };
+#line 7
+allow init snapuserd:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow snapuserd snapuserd_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit init snapuserd:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow init snapuserd:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition init snapuserd_exec:process snapuserd;
+#line 7
+
+#line 7
+
+
+allow snapuserd kmsg_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow snapuserd to reach block devices in /dev/block.
+allow snapuserd block_device:dir search;
+
+# Read /sys/block to find all the DM directories like (/sys/block/dm-X).
+allow snapuserd sysfs:dir { open read };
+
+# Read /sys/block/dm-X/dm/name (which is a symlink to
+# /sys/devices/virtual/block/dm-X/dm/name) to identify the mapping between
+# dm-X and dynamic partitions.
+allow snapuserd sysfs_dm:dir { open read search };
+allow snapuserd sysfs_dm:file { getattr open read ioctl lock map watch watch_reads };
+
+# Reading and writing to /dev/block/dm-* (device-mapper) nodes.
+allow snapuserd block_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow snapuserd dm_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow snapuserd dm_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Reading and writing to dm-user control nodes.
+allow snapuserd dm_user_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow snapuserd dm_user_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Reading and writing to /dev/socket/snapuserd and snapuserd_proxy.
+allow snapuserd snapuserd_socket:unix_stream_socket { accept listen getattr read write };
+allow snapuserd snapuserd_proxy_socket:sock_file write;
+
+# Required for setting GID to system while calling SetTaskProfile() API
+allow snapuserd self:{ capability cap_userns } { setgid };
+
+# This arises due to first-stage init opening /dev/null without F_CLOEXEC
+# (see SetStdioToDevNull in init). When we fork() and execveat() snapuserd
+# again, the descriptor leaks into the new process.
+allow snapuserd kernel:fd use;
+
+# snapuserd.* properties
+
+#line 45
+
+#line 45
+allow snapuserd property_socket:sock_file write;
+#line 45
+allow snapuserd init:unix_stream_socket connectto;
+#line 45
+
+#line 45
+allow snapuserd snapuserd_prop:property_service set;
+#line 45
+
+#line 45
+allow snapuserd snapuserd_prop:file { getattr open read map };
+#line 45
+
+#line 45
+
+
+#line 46
+allow snapuserd virtual_ab_prop:file { getattr open read map };
+#line 46
+
+
+# For inotify watching for /dev/socket/snapuserd_proxy to appear.
+allow snapuserd tmpfs:dir { read watch };
+
+# Forbid anything other than snapuserd and init setting snapuserd properties.
+neverallow {
+  domain
+  -snapuserd
+  -init
+} snapuserd_prop:property_service set;
+
+# Allow to read/write/create OTA metadata files
+allow snapuserd metadata_file:dir search;
+allow snapuserd ota_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow snapuserd ota_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# write to /data/misc/snapuserd_log
+allow snapuserd snapuserd_log_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow snapuserd snapuserd_log_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Read /proc/stat to determine boot time
+allow snapuserd proc_stat:file { getattr open read ioctl lock map watch watch_reads };
+
+# This capability allows snapuserd to circumvent memlock rlimits while using
+# io_uring. An Alternative would be to up the memlock rlimit for the snapuserd service.
+allow snapuserd self:capability ipc_lock;
+
+#line 73
+# Set up a type_transition to "io_uring" named anonymous inode object.
+#line 73
+type snapuserd_iouring;
+#line 73
+type_transition snapuserd snapuserd:anon_inode snapuserd_iouring "[io_uring]";
+#line 73
+# Allow domain to create/use io_uring anon_inode.
+#line 73
+allow snapuserd snapuserd_iouring:anon_inode { create map read write };
+#line 73
+allow snapuserd self:io_uring sqpoll;
+#line 73
+# Other domains may not use iouring anon_inodes created by this domain.
+#line 73
+neverallow { domain -snapuserd } snapuserd_iouring:anon_inode *;
+#line 73
+# io_uring checks for CAP_IPC_LOCK to determine whether or not to track
+#line 73
+# memory usage per uid against RLIMIT_MEMLOCK. This can lead folks to
+#line 73
+# grant CAP_IPC_LOCK to silence avc denials, which is undesireable.
+#line 73
+dontaudit snapuserd self:{ capability cap_userns } ipc_lock;
+#line 73
+
+#line 1 "system/sepolicy/private/stats.te"
+type stats, domain;
+typeattribute stats coredomain;
+type stats_exec, system_file_type, exec_type, file_type;
+
+# switch to stats domain for stats command
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow shell stats_exec:file { getattr open read execute map };
+#line 6
+allow shell stats:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow stats stats_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+allow stats shell:process sigchld;
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit shell stats:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow shell stats:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition shell stats_exec:process stats;
+#line 6
+
+
+# allow stats access to stdout from its parent shell.
+allow stats shell:fd use;
+
+# allow stats to communicate use, read and write over the adb
+# connection.
+allow stats adbd:fd use;
+allow stats adbd:unix_stream_socket { read write };
+
+# allow adbd to reap stats
+allow stats adbd:process { sigchld };
+
+# Allow the stats command to talk to the statsd over the binder, and get
+# back the stats report data from a ParcelFileDescriptor.
+
+#line 21
+# Call the servicemanager and transfer references to it.
+#line 21
+allow stats servicemanager:binder { call transfer };
+#line 21
+# Allow servicemanager to send out callbacks
+#line 21
+allow servicemanager stats:binder { call transfer };
+#line 21
+# servicemanager performs getpidcon on clients.
+#line 21
+allow servicemanager stats:dir search;
+#line 21
+allow servicemanager stats:file { read open };
+#line 21
+allow servicemanager stats:process getattr;
+#line 21
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 21
+# all domains in domain.te.
+#line 21
+
+allow stats stats_service:service_manager find;
+
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow stats statsd:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow statsd stats:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow stats statsd:fd use;
+#line 23
+
+allow stats statsd:fifo_file write;
+
+# Only statsd can publish the binder service.
+
+#line 27
+  allow statsd stats_service:service_manager { add find };
+#line 27
+  neverallow { domain -statsd } stats_service:service_manager add;
+#line 27
+
+#line 27
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 27
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 27
+  
+#line 27
+
+
+# Allow pipes from (and only from) stats.
+allow statsd stats:fd use;
+allow statsd stats:fifo_file write;
+
+# Allow statsd to call back to stats with status updates.
+
+#line 34
+# Call the server domain and optionally transfer references to it.
+#line 34
+allow statsd stats:binder { call transfer };
+#line 34
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 34
+allow stats statsd:binder transfer;
+#line 34
+# Receive and use open files from the server.
+#line 34
+allow statsd stats:fd use;
+#line 34
+
+
+#line 1 "system/sepolicy/private/statsd.te"
+typeattribute statsd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init statsd_exec:file { getattr open read execute map };
+#line 3
+allow init statsd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow statsd statsd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init statsd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init statsd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init statsd_exec:process statsd;
+#line 3
+
+#line 3
+
+
+# Allow to exec the perfetto cmdline client and pass it the trace config on
+# stdint through a pipe. It allows statsd to  capture traces and hand them
+# to Android dropbox.
+allow statsd perfetto_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+#line 9
+# Allow the necessary permissions.
+#line 9
+
+#line 9
+# Old domain may exec the file and transition to the new domain.
+#line 9
+allow statsd perfetto_exec:file { getattr open read execute map };
+#line 9
+allow statsd perfetto:process transition;
+#line 9
+# New domain is entered by executing the file.
+#line 9
+allow perfetto perfetto_exec:file { entrypoint open read execute getattr map };
+#line 9
+# New domain can send SIGCHLD to its caller.
+#line 9
+allow perfetto statsd:process sigchld;
+#line 9
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 9
+dontaudit statsd perfetto:process noatsecure;
+#line 9
+# XXX dontaudit candidate but requires further study.
+#line 9
+allow statsd perfetto:process { siginh rlimitinh };
+#line 9
+
+#line 9
+# Make the transition occur by default.
+#line 9
+type_transition statsd perfetto_exec:process perfetto;
+#line 9
+
+
+# Grant statsd with permissions to register the services.
+allow statsd {
+  statscompanion_service
+}:service_manager find;
+
+# Allow incidentd to obtain the statsd incident section.
+allow statsd incidentd:fifo_file write;
+
+# Allow StatsCompanionService to pipe data to statsd.
+allow statsd system_server:fifo_file { read write getattr };
+
+# Allow Statsd to pipe data to privileged apps.
+allow statsd priv_app:fifo_file { read write getattr };
+
+# Allow statsd to retrieve SF statistics over binder
+
+#line 26
+# Call the server domain and optionally transfer references to it.
+#line 26
+allow statsd surfaceflinger:binder { call transfer };
+#line 26
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 26
+allow surfaceflinger statsd:binder transfer;
+#line 26
+# Receive and use open files from the server.
+#line 26
+allow statsd surfaceflinger:fd use;
+#line 26
+;
+
+# Allow statsd to read its system properties
+
+#line 29
+allow statsd device_config_statsd_native_prop:file { getattr open read map };
+#line 29
+
+
+#line 30
+allow statsd device_config_statsd_native_boot_prop:file { getattr open read map };
+#line 30
+
+
+# Allow statsd to write uprobestats configs.
+allow statsd uprobestats_configs_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow statsd uprobestats_configs_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow statsd to trigger uprobestats via property.
+
+#line 37
+
+#line 37
+allow statsd property_socket:sock_file write;
+#line 37
+allow statsd init:unix_stream_socket connectto;
+#line 37
+
+#line 37
+allow statsd uprobestats_start_with_config_prop:property_service set;
+#line 37
+
+#line 37
+allow statsd uprobestats_start_with_config_prop:file { getattr open read map };
+#line 37
+
+#line 37
+;
+#line 1 "system/sepolicy/private/storaged.te"
+# storaged daemon
+type storaged, domain, coredomain, mlstrustedsubject;
+type storaged_exec, system_file_type, exec_type, file_type;
+
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init storaged_exec:file { getattr open read execute map };
+#line 5
+allow init storaged:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow storaged storaged_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init storaged:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init storaged:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init storaged_exec:process storaged;
+#line 5
+
+#line 5
+
+
+# Read access to pseudo filesystems
+
+#line 8
+allow storaged domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 8
+allow storaged domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 8
+
+
+# Read /proc/uid_io/stats
+allow storaged proc_uid_io_stats:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read /data/system/packages.list
+allow storaged system_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow storaged packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Store storaged proto file
+allow storaged storaged_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow storaged storaged_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+
+#line 21
+  
+#line 27
+
+
+# Needed to provide debug dump output via dumpsys pipes.
+allow storaged shell:fd use;
+allow storaged shell:fifo_file write;
+
+# Needed for GMScore to call dumpsys storaged
+allow storaged priv_app:fd use;
+# b/142672293: No other priv-app should need this allow rule now that GMS core runs in its own domain.
+# Remove after no logs are seen for this rule.
+#line 39
+
+allow storaged gmscore_app:fd use;
+allow storaged { privapp_data_file app_data_file }:file write;
+allow storaged permission_service:service_manager find;
+
+# Binder permissions
+
+#line 45
+  allow storaged storaged_service:service_manager { add find };
+#line 45
+  neverallow { domain -storaged } storaged_service:service_manager add;
+#line 45
+
+#line 45
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 45
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 45
+  
+#line 45
+
+
+
+#line 47
+# Call the servicemanager and transfer references to it.
+#line 47
+allow storaged servicemanager:binder { call transfer };
+#line 47
+# Allow servicemanager to send out callbacks
+#line 47
+allow servicemanager storaged:binder { call transfer };
+#line 47
+# servicemanager performs getpidcon on clients.
+#line 47
+allow servicemanager storaged:dir search;
+#line 47
+allow servicemanager storaged:file { read open };
+#line 47
+allow servicemanager storaged:process getattr;
+#line 47
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 47
+# all domains in domain.te.
+#line 47
+
+
+#line 48
+# Call the server domain and optionally transfer references to it.
+#line 48
+allow storaged system_server:binder { call transfer };
+#line 48
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 48
+allow system_server storaged:binder transfer;
+#line 48
+# Receive and use open files from the server.
+#line 48
+allow storaged system_server:fd use;
+#line 48
+
+
+
+#line 50
+typeattribute storaged halclientdomain;
+#line 50
+typeattribute storaged hal_health_client;
+#line 50
+
+#line 50
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 50
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 50
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 50
+
+#line 50
+typeattribute storaged hal_health;
+#line 50
+# Find passthrough HAL implementations
+#line 50
+allow hal_health system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 50
+allow hal_health vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 50
+allow hal_health vendor_file:file { read open getattr execute map };
+#line 50
+
+#line 50
+
+
+# Implements a dumpsys interface.
+allow storaged dumpstate:fd use;
+
+# use a subset of the package manager service
+allow storaged package_native_service:service_manager find;
+
+# Kernel does extra check on CAP_DAC_OVERRIDE for libbinder when storaged is
+# running as root. See b/35323867 #3.
+dontaudit storaged self:{ capability cap_userns } { dac_override dac_read_search };
+
+# For collecting bugreports.
+allow storaged dumpstate:fifo_file write;
+
+###
+### neverallow
+###
+neverallow storaged domain:process ptrace;
+neverallow storaged self:{ capability capability2 cap_userns cap2_userns } *;
+#line 36 "system/sepolicy/private/su.te"
+
+#line 1 "system/sepolicy/private/surfaceflinger.te"
+# surfaceflinger - display compositor service
+
+typeattribute surfaceflinger coredomain;
+
+type surfaceflinger_exec, system_file_type, exec_type, file_type;
+
+#line 6
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init surfaceflinger_exec:file { getattr open read execute map };
+#line 6
+allow init surfaceflinger:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow surfaceflinger surfaceflinger_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init surfaceflinger:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init surfaceflinger:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition init surfaceflinger_exec:process surfaceflinger;
+#line 6
+
+#line 6
+
+
+#line 7
+type_transition surfaceflinger tmpfs:file surfaceflinger_tmpfs;
+#line 7
+allow surfaceflinger surfaceflinger_tmpfs:file { read write getattr map };
+#line 7
+
+
+typeattribute surfaceflinger mlstrustedsubject;
+typeattribute surfaceflinger display_service_server;
+
+
+#line 12
+allow surfaceflinger runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 12
+
+
+# Perform HwBinder IPC.
+
+#line 15
+typeattribute surfaceflinger halclientdomain;
+#line 15
+typeattribute surfaceflinger hal_graphics_allocator_client;
+#line 15
+
+#line 15
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 15
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 15
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 15
+
+#line 15
+typeattribute surfaceflinger hal_graphics_allocator;
+#line 15
+# Find passthrough HAL implementations
+#line 15
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 15
+
+#line 15
+
+
+#line 16
+typeattribute surfaceflinger halclientdomain;
+#line 16
+typeattribute surfaceflinger hal_graphics_composer_client;
+#line 16
+
+#line 16
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 16
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 16
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 16
+
+#line 16
+typeattribute surfaceflinger hal_graphics_composer;
+#line 16
+# Find passthrough HAL implementations
+#line 16
+allow hal_graphics_composer system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 16
+allow hal_graphics_composer vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 16
+allow hal_graphics_composer vendor_file:file { read open getattr execute map };
+#line 16
+
+#line 16
+
+typeattribute surfaceflinger_tmpfs hal_graphics_composer_client_tmpfs;
+
+#line 18
+typeattribute surfaceflinger halclientdomain;
+#line 18
+typeattribute surfaceflinger hal_codec2_client;
+#line 18
+
+#line 18
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 18
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 18
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 18
+
+#line 18
+typeattribute surfaceflinger hal_codec2;
+#line 18
+# Find passthrough HAL implementations
+#line 18
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 18
+
+#line 18
+
+
+#line 19
+typeattribute surfaceflinger halclientdomain;
+#line 19
+typeattribute surfaceflinger hal_omx_client;
+#line 19
+
+#line 19
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 19
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 19
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 19
+
+#line 19
+typeattribute surfaceflinger hal_omx;
+#line 19
+# Find passthrough HAL implementations
+#line 19
+allow hal_omx system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_omx vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 19
+allow hal_omx vendor_file:file { read open getattr execute map };
+#line 19
+
+#line 19
+
+
+#line 20
+typeattribute surfaceflinger halclientdomain;
+#line 20
+typeattribute surfaceflinger hal_configstore_client;
+#line 20
+
+#line 20
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 20
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 20
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 20
+
+#line 20
+typeattribute surfaceflinger hal_configstore;
+#line 20
+# Find passthrough HAL implementations
+#line 20
+allow hal_configstore system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_configstore vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 20
+allow hal_configstore vendor_file:file { read open getattr execute map };
+#line 20
+
+#line 20
+
+
+#line 21
+typeattribute surfaceflinger halclientdomain;
+#line 21
+typeattribute surfaceflinger hal_power_client;
+#line 21
+
+#line 21
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 21
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 21
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 21
+
+#line 21
+typeattribute surfaceflinger hal_power;
+#line 21
+# Find passthrough HAL implementations
+#line 21
+allow hal_power system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_power vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 21
+allow hal_power vendor_file:file { read open getattr execute map };
+#line 21
+
+#line 21
+
+allow surfaceflinger hidl_token_hwservice:hwservice_manager find;
+
+# Perform Binder IPC.
+
+#line 25
+# Call the servicemanager and transfer references to it.
+#line 25
+allow surfaceflinger servicemanager:binder { call transfer };
+#line 25
+# Allow servicemanager to send out callbacks
+#line 25
+allow servicemanager surfaceflinger:binder { call transfer };
+#line 25
+# servicemanager performs getpidcon on clients.
+#line 25
+allow servicemanager surfaceflinger:dir search;
+#line 25
+allow servicemanager surfaceflinger:file { read open };
+#line 25
+allow servicemanager surfaceflinger:process getattr;
+#line 25
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 25
+# all domains in domain.te.
+#line 25
+
+
+#line 26
+# Call the server domain and optionally transfer references to it.
+#line 26
+allow surfaceflinger binderservicedomain:binder { call transfer };
+#line 26
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 26
+allow binderservicedomain surfaceflinger:binder transfer;
+#line 26
+# Receive and use open files from the server.
+#line 26
+allow surfaceflinger binderservicedomain:fd use;
+#line 26
+
+
+#line 27
+# Call the server domain and optionally transfer references to it.
+#line 27
+allow surfaceflinger appdomain:binder { call transfer };
+#line 27
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 27
+allow appdomain surfaceflinger:binder transfer;
+#line 27
+# Receive and use open files from the server.
+#line 27
+allow surfaceflinger appdomain:fd use;
+#line 27
+
+
+#line 28
+# Call the server domain and optionally transfer references to it.
+#line 28
+allow surfaceflinger bootanim:binder { call transfer };
+#line 28
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 28
+allow bootanim surfaceflinger:binder transfer;
+#line 28
+# Receive and use open files from the server.
+#line 28
+allow surfaceflinger bootanim:fd use;
+#line 28
+
+
+#line 29
+# Call the server domain and optionally transfer references to it.
+#line 29
+allow surfaceflinger system_server:binder { call transfer };
+#line 29
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 29
+allow system_server surfaceflinger:binder transfer;
+#line 29
+# Receive and use open files from the server.
+#line 29
+allow surfaceflinger system_server:fd use;
+#line 29
+;
+
+#line 30
+typeattribute surfaceflinger binderservicedomain;
+#line 30
+
+
+# Binder IPC to bu, presently runs in adbd domain.
+
+#line 33
+# Call the server domain and optionally transfer references to it.
+#line 33
+allow surfaceflinger adbd:binder { call transfer };
+#line 33
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 33
+allow adbd surfaceflinger:binder transfer;
+#line 33
+# Receive and use open files from the server.
+#line 33
+allow surfaceflinger adbd:fd use;
+#line 33
+
+
+# Read /proc/pid files for Binder clients.
+
+#line 36
+allow surfaceflinger binderservicedomain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 36
+allow surfaceflinger binderservicedomain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 36
+
+
+#line 37
+allow surfaceflinger appdomain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 37
+allow surfaceflinger appdomain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 37
+
+
+# Access the GPU.
+allow surfaceflinger gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow surfaceflinger gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow surfaceflinger sysfs_gpu:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access /dev/graphics/fb0.
+allow surfaceflinger graphics_device:dir search;
+allow surfaceflinger graphics_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access /dev/video1.
+allow surfaceflinger video_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow surfaceflinger video_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access the secure heap.
+allow surfaceflinger dmabuf_system_secure_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Create and use netlink kobject uevent sockets.
+allow surfaceflinger self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Set properties.
+
+#line 59
+
+#line 59
+allow surfaceflinger property_socket:sock_file write;
+#line 59
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 59
+
+#line 59
+allow surfaceflinger system_prop:property_service set;
+#line 59
+
+#line 59
+allow surfaceflinger system_prop:file { getattr open read map };
+#line 59
+
+#line 59
+
+
+#line 60
+
+#line 60
+allow surfaceflinger property_socket:sock_file write;
+#line 60
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 60
+
+#line 60
+allow surfaceflinger bootanim_system_prop:property_service set;
+#line 60
+
+#line 60
+allow surfaceflinger bootanim_system_prop:file { getattr open read map };
+#line 60
+
+#line 60
+
+
+#line 61
+
+#line 61
+allow surfaceflinger property_socket:sock_file write;
+#line 61
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 61
+
+#line 61
+allow surfaceflinger exported_system_prop:property_service set;
+#line 61
+
+#line 61
+allow surfaceflinger exported_system_prop:file { getattr open read map };
+#line 61
+
+#line 61
+
+
+#line 62
+
+#line 62
+allow surfaceflinger property_socket:sock_file write;
+#line 62
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 62
+
+#line 62
+allow surfaceflinger exported3_system_prop:property_service set;
+#line 62
+
+#line 62
+allow surfaceflinger exported3_system_prop:file { getattr open read map };
+#line 62
+
+#line 62
+
+
+#line 63
+
+#line 63
+allow surfaceflinger property_socket:sock_file write;
+#line 63
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 63
+
+#line 63
+allow surfaceflinger ctl_bootanim_prop:property_service set;
+#line 63
+
+#line 63
+allow surfaceflinger ctl_bootanim_prop:file { getattr open read map };
+#line 63
+
+#line 63
+
+
+#line 64
+
+#line 64
+allow surfaceflinger property_socket:sock_file write;
+#line 64
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 64
+
+#line 64
+allow surfaceflinger locale_prop:property_service set;
+#line 64
+
+#line 64
+allow surfaceflinger locale_prop:file { getattr open read map };
+#line 64
+
+#line 64
+
+
+#line 65
+
+#line 65
+allow surfaceflinger property_socket:sock_file write;
+#line 65
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 65
+
+#line 65
+allow surfaceflinger surfaceflinger_display_prop:property_service set;
+#line 65
+
+#line 65
+allow surfaceflinger surfaceflinger_display_prop:file { getattr open read map };
+#line 65
+
+#line 65
+
+
+#line 66
+
+#line 66
+allow surfaceflinger property_socket:sock_file write;
+#line 66
+allow surfaceflinger init:unix_stream_socket connectto;
+#line 66
+
+#line 66
+allow surfaceflinger timezone_prop:property_service set;
+#line 66
+
+#line 66
+allow surfaceflinger timezone_prop:file { getattr open read map };
+#line 66
+
+#line 66
+
+
+# Get properties.
+
+#line 69
+allow surfaceflinger qemu_sf_lcd_density_prop:file { getattr open read map };
+#line 69
+
+
+#line 70
+allow surfaceflinger device_config_surface_flinger_native_boot_prop:file { getattr open read map };
+#line 70
+
+
+# Use open files supplied by an app.
+allow surfaceflinger appdomain:fd use;
+allow surfaceflinger { app_data_file privapp_data_file }:file { read write };
+
+# Allow writing surface traces to /data/misc/wmtrace.
+#line 80
+
+
+# Needed to register as a Perfetto producer.
+
+#line 83
+  allow surfaceflinger traced:fd use;
+#line 83
+  allow surfaceflinger traced_tmpfs:file { read write getattr map };
+#line 83
+  
+#line 83
+allow surfaceflinger traced_producer_socket:sock_file write;
+#line 83
+allow surfaceflinger traced:unix_stream_socket connectto;
+#line 83
+
+#line 83
+
+#line 83
+  # Also allow the service to use the producer file descriptors. This is
+#line 83
+  # necessary when the producer is creating the shared memory, as it will be
+#line 83
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 83
+  allow traced surfaceflinger:fd use;
+#line 83
+
+
+# Use socket supplied by adbd, for cmd gpu vkjson etc.
+allow surfaceflinger adbd:unix_stream_socket { read write getattr };
+
+# Allow a dumpstate triggered screenshot
+
+#line 89
+# Call the server domain and optionally transfer references to it.
+#line 89
+allow surfaceflinger dumpstate:binder { call transfer };
+#line 89
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 89
+allow dumpstate surfaceflinger:binder transfer;
+#line 89
+# Receive and use open files from the server.
+#line 89
+allow surfaceflinger dumpstate:fd use;
+#line 89
+
+
+#line 90
+# Call the server domain and optionally transfer references to it.
+#line 90
+allow surfaceflinger shell:binder { call transfer };
+#line 90
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 90
+allow shell surfaceflinger:binder transfer;
+#line 90
+# Receive and use open files from the server.
+#line 90
+allow surfaceflinger shell:fd use;
+#line 90
+
+
+#line 91
+allow surfaceflinger dumpstate:dir { open getattr read search ioctl lock watch watch_reads };
+#line 91
+allow surfaceflinger dumpstate:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 91
+
+
+# media.player service
+
+# do not use add_service() as hal_graphics_composer_default may be the
+# provider as well
+#add_service(surfaceflinger, surfaceflinger_service)
+allow surfaceflinger surfaceflinger_service:service_manager { add find };
+
+allow surfaceflinger mediaserver_service:service_manager find;
+allow surfaceflinger permission_service:service_manager find;
+allow surfaceflinger power_service:service_manager find;
+allow surfaceflinger vr_manager_service:service_manager find;
+allow surfaceflinger window_service:service_manager find;
+allow surfaceflinger inputflinger_service:service_manager find;
+
+
+# allow self to set SCHED_FIFO
+allow surfaceflinger self:{ capability cap_userns } sys_nice;
+allow surfaceflinger proc_meminfo:file { getattr open read ioctl lock map watch watch_reads };
+
+#line 111
+allow surfaceflinger cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 111
+allow surfaceflinger cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 111
+
+
+#line 112
+allow surfaceflinger cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 112
+allow surfaceflinger cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 112
+
+
+#line 113
+allow surfaceflinger system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 113
+allow surfaceflinger system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 113
+
+allow surfaceflinger tmpfs:dir { open getattr read search ioctl lock watch watch_reads };
+allow surfaceflinger system_server:fd use;
+allow surfaceflinger system_server:unix_stream_socket { read write };
+allow surfaceflinger ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow surfaceflinger dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# pdx IPC
+
+#line 121
+# Mark the server domain as a PDX server.
+#line 121
+typeattribute surfaceflinger pdx_display_client_server_type;
+#line 121
+# Allow the init process to create the initial endpoint socket.
+#line 121
+allow init pdx_display_client_endpoint_socket_type:unix_stream_socket { create bind };
+#line 121
+# Allow the server domain to use the endpoint socket and accept connections on it.
+#line 121
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 121
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 121
+allow surfaceflinger pdx_display_client_endpoint_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown listen accept };
+#line 121
+# Allow the server domain to apply security context label to the channel socket pair (allow process to use setsockcreatecon_raw()).
+#line 121
+allow surfaceflinger self:process setsockcreate;
+#line 121
+# Allow the server domain to create a client channel socket.
+#line 121
+allow surfaceflinger pdx_display_client_channel_socket_type:unix_stream_socket { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } };
+#line 121
+# Prevent other processes from claiming to be a server for the same service.
+#line 121
+neverallow {domain -surfaceflinger} pdx_display_client_endpoint_socket_type:unix_stream_socket { listen accept };
+#line 121
+
+
+#line 122
+# Mark the server domain as a PDX server.
+#line 122
+typeattribute surfaceflinger pdx_display_manager_server_type;
+#line 122
+# Allow the init process to create the initial endpoint socket.
+#line 122
+allow init pdx_display_manager_endpoint_socket_type:unix_stream_socket { create bind };
+#line 122
+# Allow the server domain to use the endpoint socket and accept connections on it.
+#line 122
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 122
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 122
+allow surfaceflinger pdx_display_manager_endpoint_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown listen accept };
+#line 122
+# Allow the server domain to apply security context label to the channel socket pair (allow process to use setsockcreatecon_raw()).
+#line 122
+allow surfaceflinger self:process setsockcreate;
+#line 122
+# Allow the server domain to create a client channel socket.
+#line 122
+allow surfaceflinger pdx_display_manager_channel_socket_type:unix_stream_socket { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } };
+#line 122
+# Prevent other processes from claiming to be a server for the same service.
+#line 122
+neverallow {domain -surfaceflinger} pdx_display_manager_endpoint_socket_type:unix_stream_socket { listen accept };
+#line 122
+
+
+#line 123
+# Mark the server domain as a PDX server.
+#line 123
+typeattribute surfaceflinger pdx_display_screenshot_server_type;
+#line 123
+# Allow the init process to create the initial endpoint socket.
+#line 123
+allow init pdx_display_screenshot_endpoint_socket_type:unix_stream_socket { create bind };
+#line 123
+# Allow the server domain to use the endpoint socket and accept connections on it.
+#line 123
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 123
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 123
+allow surfaceflinger pdx_display_screenshot_endpoint_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown listen accept };
+#line 123
+# Allow the server domain to apply security context label to the channel socket pair (allow process to use setsockcreatecon_raw()).
+#line 123
+allow surfaceflinger self:process setsockcreate;
+#line 123
+# Allow the server domain to create a client channel socket.
+#line 123
+allow surfaceflinger pdx_display_screenshot_channel_socket_type:unix_stream_socket { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } };
+#line 123
+# Prevent other processes from claiming to be a server for the same service.
+#line 123
+neverallow {domain -surfaceflinger} pdx_display_screenshot_endpoint_socket_type:unix_stream_socket { listen accept };
+#line 123
+
+
+#line 124
+# Mark the server domain as a PDX server.
+#line 124
+typeattribute surfaceflinger pdx_display_vsync_server_type;
+#line 124
+# Allow the init process to create the initial endpoint socket.
+#line 124
+allow init pdx_display_vsync_endpoint_socket_type:unix_stream_socket { create bind };
+#line 124
+# Allow the server domain to use the endpoint socket and accept connections on it.
+#line 124
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 124
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 124
+allow surfaceflinger pdx_display_vsync_endpoint_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown listen accept };
+#line 124
+# Allow the server domain to apply security context label to the channel socket pair (allow process to use setsockcreatecon_raw()).
+#line 124
+allow surfaceflinger self:process setsockcreate;
+#line 124
+# Allow the server domain to create a client channel socket.
+#line 124
+allow surfaceflinger pdx_display_vsync_channel_socket_type:unix_stream_socket { create { { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map } listen accept } };
+#line 124
+# Prevent other processes from claiming to be a server for the same service.
+#line 124
+neverallow {domain -surfaceflinger} pdx_display_vsync_endpoint_socket_type:unix_stream_socket { listen accept };
+#line 124
+
+
+
+#line 126
+
+#line 126
+# Allow client to open the service endpoint file.
+#line 126
+allow surfaceflinger pdx_bufferhub_client_endpoint_dir_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 126
+allow surfaceflinger pdx_bufferhub_client_endpoint_socket_type:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 126
+# Allow the client to connect to endpoint socket.
+#line 126
+allow surfaceflinger pdx_bufferhub_client_endpoint_socket_type:unix_stream_socket { connectto read write shutdown };
+#line 126
+
+#line 126
+
+#line 126
+# Allow the client to use the PDX channel socket.
+#line 126
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 126
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 126
+allow surfaceflinger pdx_bufferhub_client_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 126
+# Client needs to use an channel event fd from the server.
+#line 126
+allow surfaceflinger pdx_bufferhub_client_server_type:fd use;
+#line 126
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 126
+# This could be tightened on a per-server basis, but keeping track of service
+#line 126
+# clients is error prone.
+#line 126
+allow pdx_bufferhub_client_server_type surfaceflinger:fd use;
+#line 126
+
+#line 126
+
+
+#line 127
+
+#line 127
+# Allow client to open the service endpoint file.
+#line 127
+allow surfaceflinger pdx_performance_client_endpoint_dir_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 127
+allow surfaceflinger pdx_performance_client_endpoint_socket_type:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 127
+# Allow the client to connect to endpoint socket.
+#line 127
+allow surfaceflinger pdx_performance_client_endpoint_socket_type:unix_stream_socket { connectto read write shutdown };
+#line 127
+
+#line 127
+
+#line 127
+# Allow the client to use the PDX channel socket.
+#line 127
+# Not using macro like "rw_socket_perms_no_ioctl" because it provides more rights
+#line 127
+# than we need (e.g. we don"t need "bind" or "connect").
+#line 127
+allow surfaceflinger pdx_performance_client_channel_socket_type:unix_stream_socket { read getattr write setattr lock append getopt setopt shutdown };
+#line 127
+# Client needs to use an channel event fd from the server.
+#line 127
+allow surfaceflinger pdx_performance_client_server_type:fd use;
+#line 127
+# Servers may receive sync fences, gralloc buffers, etc, from clients.
+#line 127
+# This could be tightened on a per-server basis, but keeping track of service
+#line 127
+# clients is error prone.
+#line 127
+allow pdx_performance_client_server_type surfaceflinger:fd use;
+#line 127
+
+#line 127
+
+
+# Allow supplying timestats statistics to statsd
+allow surfaceflinger stats_service:service_manager find;
+allow surfaceflinger statsmanager_service:service_manager find;
+# TODO(146461633): remove this once native pullers talk to StatsManagerService
+
+#line 133
+# Call the server domain and optionally transfer references to it.
+#line 133
+allow surfaceflinger statsd:binder { call transfer };
+#line 133
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 133
+allow statsd surfaceflinger:binder transfer;
+#line 133
+# Receive and use open files from the server.
+#line 133
+allow surfaceflinger statsd:fd use;
+#line 133
+;
+
+# Allow to use files supplied by hal_evs
+allow surfaceflinger hal_evs:fd use;
+
+# Allow to use release fence fds supplied by hal_camera
+allow surfaceflinger hal_camera:fd use;
+
+# Allow pushing jank event atoms to statsd
+#line 144
+
+
+# Surfaceflinger should not be reading default vendor-defined properties.
+dontaudit surfaceflinger vendor_default_prop:file read;
+
+###
+### Neverallow rules
+###
+### surfaceflinger should NEVER do any of this
+
+# Do not allow accessing SDcard files as unsafe ejection could
+# cause the kernel to kill the process.
+neverallow surfaceflinger { sdcard_type fuse }:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# b/68864350
+dontaudit surfaceflinger unlabeled:dir search;
+#line 1 "system/sepolicy/private/system_app.te"
+###
+### Apps that run with the system UID, e.g. com.android.system.ui,
+### com.android.settings.  These are not as privileged as the system
+### server.
+###
+
+typeattribute system_app coredomain, mlstrustedsubject;
+
+
+#line 9
+typeattribute system_app appdomain;
+#line 9
+# Label tmpfs objects for all apps.
+#line 9
+type_transition system_app tmpfs:file appdomain_tmpfs;
+#line 9
+
+#line 9
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 9
+type system_app_userfaultfd;
+#line 9
+type_transition system_app system_app:anon_inode system_app_userfaultfd "[userfaultfd]";
+#line 9
+# Allow domain to create/use userfaultfd anon_inode.
+#line 9
+allow system_app system_app_userfaultfd:anon_inode { create ioctl read };
+#line 9
+# Suppress errors generate during bugreport
+#line 9
+dontaudit su system_app_userfaultfd:anon_inode *;
+#line 9
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 9
+neverallow { domain -system_app } system_app_userfaultfd:anon_inode *;
+#line 9
+
+#line 9
+allow system_app appdomain_tmpfs:file { execute getattr map read write };
+#line 9
+neverallow { system_app -runas_app -shell -simpleperf } { domain -system_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 9
+neverallow { appdomain -runas_app -shell -simpleperf -system_app } system_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 9
+# The Android security model guarantees the confidentiality and integrity
+#line 9
+# of application data and execution state. Ptrace bypasses those
+#line 9
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 9
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 9
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 9
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 9
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 9
+# live lock conditions.
+#line 9
+neverallow { domain -system_app -crash_dump  -runas_app -simpleperf } system_app:process ptrace;
+#line 9
+
+
+#line 10
+typeattribute system_app netdomain;
+#line 10
+
+
+#line 11
+typeattribute system_app binderservicedomain;
+#line 11
+
+
+# android.ui and system.ui
+allow system_app rootfs:dir getattr;
+
+# Read and write /data/data subdirectory.
+allow system_app system_app_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_app system_app_data_file:{ file lnk_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Read and write to /data/misc/user.
+allow system_app misc_user_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_app misc_user_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access to apex files stored on /data (b/136063500)
+# Needed so that Settings can access NOTICE files inside apex
+# files located in the assets/ directory.
+allow system_app apex_data_file:dir search;
+allow system_app staging_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read wallpaper file.
+allow system_app wallpaper_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read icon file.
+allow system_app icon_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Write to properties
+
+#line 37
+
+#line 37
+allow system_app property_socket:sock_file write;
+#line 37
+allow system_app init:unix_stream_socket connectto;
+#line 37
+
+#line 37
+allow system_app adaptive_haptics_prop:property_service set;
+#line 37
+
+#line 37
+allow system_app adaptive_haptics_prop:file { getattr open read map };
+#line 37
+
+#line 37
+
+
+#line 38
+
+#line 38
+allow system_app property_socket:sock_file write;
+#line 38
+allow system_app init:unix_stream_socket connectto;
+#line 38
+
+#line 38
+allow system_app arm64_memtag_prop:property_service set;
+#line 38
+
+#line 38
+allow system_app arm64_memtag_prop:file { getattr open read map };
+#line 38
+
+#line 38
+
+
+#line 39
+
+#line 39
+allow system_app property_socket:sock_file write;
+#line 39
+allow system_app init:unix_stream_socket connectto;
+#line 39
+
+#line 39
+allow system_app bluetooth_a2dp_offload_prop:property_service set;
+#line 39
+
+#line 39
+allow system_app bluetooth_a2dp_offload_prop:file { getattr open read map };
+#line 39
+
+#line 39
+
+
+#line 40
+
+#line 40
+allow system_app property_socket:sock_file write;
+#line 40
+allow system_app init:unix_stream_socket connectto;
+#line 40
+
+#line 40
+allow system_app bluetooth_audio_hal_prop:property_service set;
+#line 40
+
+#line 40
+allow system_app bluetooth_audio_hal_prop:file { getattr open read map };
+#line 40
+
+#line 40
+
+
+#line 41
+
+#line 41
+allow system_app property_socket:sock_file write;
+#line 41
+allow system_app init:unix_stream_socket connectto;
+#line 41
+
+#line 41
+allow system_app bluetooth_prop:property_service set;
+#line 41
+
+#line 41
+allow system_app bluetooth_prop:file { getattr open read map };
+#line 41
+
+#line 41
+
+
+#line 42
+
+#line 42
+allow system_app property_socket:sock_file write;
+#line 42
+allow system_app init:unix_stream_socket connectto;
+#line 42
+
+#line 42
+allow system_app debug_prop:property_service set;
+#line 42
+
+#line 42
+allow system_app debug_prop:file { getattr open read map };
+#line 42
+
+#line 42
+
+
+#line 43
+
+#line 43
+allow system_app property_socket:sock_file write;
+#line 43
+allow system_app init:unix_stream_socket connectto;
+#line 43
+
+#line 43
+allow system_app system_prop:property_service set;
+#line 43
+
+#line 43
+allow system_app system_prop:file { getattr open read map };
+#line 43
+
+#line 43
+
+
+#line 44
+
+#line 44
+allow system_app property_socket:sock_file write;
+#line 44
+allow system_app init:unix_stream_socket connectto;
+#line 44
+
+#line 44
+allow system_app exported_bluetooth_prop:property_service set;
+#line 44
+
+#line 44
+allow system_app exported_bluetooth_prop:file { getattr open read map };
+#line 44
+
+#line 44
+
+
+#line 45
+
+#line 45
+allow system_app property_socket:sock_file write;
+#line 45
+allow system_app init:unix_stream_socket connectto;
+#line 45
+
+#line 45
+allow system_app exported_system_prop:property_service set;
+#line 45
+
+#line 45
+allow system_app exported_system_prop:file { getattr open read map };
+#line 45
+
+#line 45
+
+
+#line 46
+
+#line 46
+allow system_app property_socket:sock_file write;
+#line 46
+allow system_app init:unix_stream_socket connectto;
+#line 46
+
+#line 46
+allow system_app exported3_system_prop:property_service set;
+#line 46
+
+#line 46
+allow system_app exported3_system_prop:file { getattr open read map };
+#line 46
+
+#line 46
+
+
+#line 47
+
+#line 47
+allow system_app property_socket:sock_file write;
+#line 47
+allow system_app init:unix_stream_socket connectto;
+#line 47
+
+#line 47
+allow system_app gesture_prop:property_service set;
+#line 47
+
+#line 47
+allow system_app gesture_prop:file { getattr open read map };
+#line 47
+
+#line 47
+
+
+#line 48
+
+#line 48
+allow system_app property_socket:sock_file write;
+#line 48
+allow system_app init:unix_stream_socket connectto;
+#line 48
+
+#line 48
+allow system_app locale_prop:property_service set;
+#line 48
+
+#line 48
+allow system_app locale_prop:file { getattr open read map };
+#line 48
+
+#line 48
+
+
+#line 49
+
+#line 49
+allow system_app property_socket:sock_file write;
+#line 49
+allow system_app init:unix_stream_socket connectto;
+#line 49
+
+#line 49
+allow system_app logd_prop:property_service set;
+#line 49
+
+#line 49
+allow system_app logd_prop:file { getattr open read map };
+#line 49
+
+#line 49
+
+
+#line 50
+
+#line 50
+allow system_app property_socket:sock_file write;
+#line 50
+allow system_app init:unix_stream_socket connectto;
+#line 50
+
+#line 50
+allow system_app net_radio_prop:property_service set;
+#line 50
+
+#line 50
+allow system_app net_radio_prop:file { getattr open read map };
+#line 50
+
+#line 50
+
+
+#line 51
+
+#line 51
+allow system_app property_socket:sock_file write;
+#line 51
+allow system_app init:unix_stream_socket connectto;
+#line 51
+
+#line 51
+allow system_app timezone_prop:property_service set;
+#line 51
+
+#line 51
+allow system_app timezone_prop:file { getattr open read map };
+#line 51
+
+#line 51
+
+
+#line 52
+
+#line 52
+allow system_app property_socket:sock_file write;
+#line 52
+allow system_app init:unix_stream_socket connectto;
+#line 52
+
+#line 52
+allow system_app usb_control_prop:property_service set;
+#line 52
+
+#line 52
+allow system_app usb_control_prop:file { getattr open read map };
+#line 52
+
+#line 52
+
+
+#line 53
+
+#line 53
+allow system_app property_socket:sock_file write;
+#line 53
+allow system_app init:unix_stream_socket connectto;
+#line 53
+
+#line 53
+allow system_app usb_prop:property_service set;
+#line 53
+
+#line 53
+allow system_app usb_prop:file { getattr open read map };
+#line 53
+
+#line 53
+
+
+#line 54
+
+#line 54
+allow system_app property_socket:sock_file write;
+#line 54
+allow system_app init:unix_stream_socket connectto;
+#line 54
+
+#line 54
+allow system_app log_tag_prop:property_service set;
+#line 54
+
+#line 54
+allow system_app log_tag_prop:file { getattr open read map };
+#line 54
+
+#line 54
+
+
+#line 55
+
+#line 55
+allow system_app property_socket:sock_file write;
+#line 55
+allow system_app init:unix_stream_socket connectto;
+#line 55
+
+#line 55
+allow system_app drm_forcel3_prop:property_service set;
+#line 55
+
+#line 55
+allow system_app drm_forcel3_prop:file { getattr open read map };
+#line 55
+
+#line 55
+
+
+auditallow system_app net_radio_prop:property_service set;
+auditallow system_app usb_control_prop:property_service set;
+auditallow system_app usb_prop:property_service set;
+# Allow Settings to enable Dynamic System Update
+
+#line 61
+
+#line 61
+allow system_app property_socket:sock_file write;
+#line 61
+allow system_app init:unix_stream_socket connectto;
+#line 61
+
+#line 61
+allow system_app dynamic_system_prop:property_service set;
+#line 61
+
+#line 61
+allow system_app dynamic_system_prop:file { getattr open read map };
+#line 61
+
+#line 61
+
+
+# ctl interface
+
+#line 64
+
+#line 64
+allow system_app property_socket:sock_file write;
+#line 64
+allow system_app init:unix_stream_socket connectto;
+#line 64
+
+#line 64
+allow system_app ctl_default_prop:property_service set;
+#line 64
+
+#line 64
+allow system_app ctl_default_prop:file { getattr open read map };
+#line 64
+
+#line 64
+
+
+#line 65
+
+#line 65
+allow system_app property_socket:sock_file write;
+#line 65
+allow system_app init:unix_stream_socket connectto;
+#line 65
+
+#line 65
+allow system_app ctl_bugreport_prop:property_service set;
+#line 65
+
+#line 65
+allow system_app ctl_bugreport_prop:file { getattr open read map };
+#line 65
+
+#line 65
+
+
+# Allow developer settings to query gsid status
+
+#line 68
+allow system_app gsid_prop:file { getattr open read map };
+#line 68
+
+
+# Allow developer settings to check 16k pages boot option status
+
+#line 71
+allow system_app enable_16k_pages_prop:file { getattr open read map };
+#line 71
+
+
+# Create /data/anr/traces.txt.
+allow system_app anr_data_file:dir { { open getattr read search ioctl lock watch watch_reads } add_name write };
+allow system_app anr_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Settings need to access app name and icon from asec
+allow system_app asec_apk_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow system apps (like Settings) to interact with statsd
+
+#line 81
+# Call the server domain and optionally transfer references to it.
+#line 81
+allow system_app statsd:binder { call transfer };
+#line 81
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 81
+allow statsd system_app:binder transfer;
+#line 81
+# Receive and use open files from the server.
+#line 81
+allow system_app statsd:fd use;
+#line 81
+
+
+# Allow system apps to interact with incidentd
+
+#line 84
+# Call the server domain and optionally transfer references to it.
+#line 84
+allow system_app incidentd:binder { call transfer };
+#line 84
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 84
+allow incidentd system_app:binder transfer;
+#line 84
+# Receive and use open files from the server.
+#line 84
+allow system_app incidentd:fd use;
+#line 84
+
+
+# Allow system apps (Settings) to call into update_engine
+# in order to apply update to switch from 4k kernel to 16K and vice-versa
+
+#line 88
+# Call the servicemanager and transfer references to it.
+#line 88
+allow system_app servicemanager:binder { call transfer };
+#line 88
+# Allow servicemanager to send out callbacks
+#line 88
+allow servicemanager system_app:binder { call transfer };
+#line 88
+# servicemanager performs getpidcon on clients.
+#line 88
+allow servicemanager system_app:dir search;
+#line 88
+allow servicemanager system_app:file { read open };
+#line 88
+allow servicemanager system_app:process getattr;
+#line 88
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 88
+# all domains in domain.te.
+#line 88
+
+allow system_app update_engine_stable_service:service_manager find;
+
+#line 90
+# Call the server domain and optionally transfer references to it.
+#line 90
+allow system_app update_engine:binder { call transfer };
+#line 90
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 90
+allow update_engine system_app:binder transfer;
+#line 90
+# Receive and use open files from the server.
+#line 90
+allow system_app update_engine:fd use;
+#line 90
+
+
+# Allow system app to interact with Dumpstate HAL
+
+#line 93
+typeattribute system_app halclientdomain;
+#line 93
+typeattribute system_app hal_dumpstate_client;
+#line 93
+
+#line 93
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 93
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 93
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 93
+
+#line 93
+typeattribute system_app hal_dumpstate;
+#line 93
+# Find passthrough HAL implementations
+#line 93
+allow hal_dumpstate system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 93
+allow hal_dumpstate vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 93
+allow hal_dumpstate vendor_file:file { read open getattr execute map };
+#line 93
+
+#line 93
+
+
+allow system_app servicemanager:service_manager list;
+# TODO: scope this down? Too broad?
+allow system_app {
+  service_manager_type
+  -apex_service
+  -dnsresolver_service
+  -dumpstate_service
+  -installd_service
+  -lpdump_service
+  -mdns_service
+  -netd_service
+  -system_suspend_control_internal_service
+  -system_suspend_control_service
+  -tracingproxy_service
+  -virtual_touchpad_service
+  -vold_service
+  -default_android_service
+}:service_manager find;
+# suppress denials for services system_app should not be accessing.
+dontaudit system_app {
+  dnsresolver_service
+  dumpstate_service
+  installd_service
+  mdns_service
+  netd_service
+  virtual_touchpad_service
+  vold_service
+}:service_manager find;
+
+# suppress denials caused by debugfs_tracing
+dontaudit system_app debugfs_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Ignore access to memory properties for Settings.
+dontaudit system_app proc_pagetypeinfo:file { getattr open read ioctl lock map watch watch_reads };
+dontaudit system_app sysfs_zram:dir search;
+
+allow system_app keystore:keystore2_key {
+    delete
+    get_info
+    grant
+    rebind
+    update
+    use
+};
+
+# Allow Settings to manage WI-FI keys.
+allow system_app wifi_key:keystore2_key {
+    delete
+    get_info
+    rebind
+    update
+    use
+};
+
+# settings app reads /proc/version
+allow system_app {
+  proc_version
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# Settings app writes to /dev/stune/foreground/tasks.
+allow system_app cgroup:file { open append write lock map };
+allow system_app cgroup_v2:file { open append write lock map };
+allow system_app cgroup_v2:dir { open search write add_name remove_name lock };
+
+
+#line 159
+# Group AID_LOG checked by filesystem & logd
+#line 159
+# to permit control commands
+#line 159
+
+#line 159
+allow system_app logd_socket:sock_file write;
+#line 159
+allow system_app logd:unix_stream_socket connectto;
+#line 159
+
+#line 159
+
+
+#line 160
+allow system_app runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 160
+
+
+#line 161
+allow system_app device_logging_prop:file { getattr open read map };
+#line 161
+
+
+# allow system apps to use UDP sockets provided by the system server but not
+# modify them other than to connect
+allow system_app system_server:udp_socket {
+        connect getattr read recvfrom sendto write getopt setopt };
+
+# allow system apps to read game manager related sysrops
+
+#line 169
+allow system_app game_manager_config_prop:file { getattr open read map };
+#line 169
+
+
+# Settings app reads ro.oem_unlock_supported
+
+#line 172
+allow system_app oem_unlock_prop:file { getattr open read map };
+#line 172
+
+
+# Settings app reads ro.usb.uvc.enabled
+
+#line 175
+allow system_app usb_uvc_enabled_prop:file { getattr open read map };
+#line 175
+
+
+# Settings and Launcher apps read pm.archiving.enabled
+
+#line 178
+allow system_app pm_archiving_enabled_prop:file { getattr open read map };
+#line 178
+
+
+###
+### Neverallow rules
+###
+
+# app domains which access /dev/fuse should not run as system_app
+neverallow system_app fuse_device:chr_file *;
+
+# Apps which run as UID=system should not rely on any attacker controlled
+# filesystem locations, such as /data/local/tmp. For /data/local/tmp, we
+# allow writes to files passed by file descriptor to support dumpstate and
+# bug reports, but not reads.
+neverallow system_app shell_data_file:dir { { add_name create link relabelfrom remove_name rename reparent rmdir setattr write } open search read };
+neverallow system_app shell_data_file:file { open read ioctl lock };
+
+# system_app should be the only domain writing the adaptive haptics prop
+neverallow { domain -init -system_app } adaptive_haptics_prop:property_service set;
+# system_app should be the only domain writing the force l3 prop
+neverallow { domain -init -system_app } drm_forcel3_prop:property_service set;
+#line 1 "system/sepolicy/private/system_server.te"
+#
+# System Server aka system_server spawned by zygote.
+# Most of the framework services run in this process.
+#
+
+typeattribute system_server coredomain;
+typeattribute system_server mlstrustedsubject;
+typeattribute system_server remote_provisioning_service_server;
+typeattribute system_server scheduler_service_server;
+typeattribute system_server sensor_service_server;
+typeattribute system_server stats_service_server;
+typeattribute system_server bpfdomain;
+
+# Define a type for tmpfs-backed ashmem regions.
+
+#line 15
+type_transition system_server tmpfs:file system_server_tmpfs;
+#line 15
+allow system_server system_server_tmpfs:file { read write getattr map };
+#line 15
+
+
+
+#line 17
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 17
+type system_server_userfaultfd;
+#line 17
+type_transition system_server system_server:anon_inode system_server_userfaultfd "[userfaultfd]";
+#line 17
+# Allow domain to create/use userfaultfd anon_inode.
+#line 17
+allow system_server system_server_userfaultfd:anon_inode { create ioctl read };
+#line 17
+# Suppress errors generate during bugreport
+#line 17
+dontaudit su system_server_userfaultfd:anon_inode *;
+#line 17
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 17
+neverallow { domain -system_server } system_server_userfaultfd:anon_inode *;
+#line 17
+
+
+# Create a socket for connections from crash_dump.
+type_transition system_server system_data_file:sock_file system_ndebug_socket "ndebugsocket";
+
+# Create a socket for connections from zygotes.
+type_transition system_server system_data_file:sock_file system_unsolzygote_socket "unsolzygotesocket";
+
+allow system_server zygote_tmpfs:file { map read };
+allow system_server appdomain_tmpfs:file { getattr map read write };
+
+# For Incremental Service to check if incfs is available
+allow system_server proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+# To create files, get permission to fill blocks, and configure Incremental File System
+allow system_server incremental_control_file:file { ioctl { getattr open read ioctl lock map watch watch_reads } };
+allowxperm system_server incremental_control_file:file ioctl {
+  0x0000671e
+  0x00006723
+  0x00006721
+  0x00006725
+  0x00006726
+  0x00006727
+};
+
+# To get signature of an APK installed on Incremental File System, and fill in data
+# blocks and get the filesystem state
+allowxperm system_server apk_data_file:file ioctl {
+  0x0000671f
+  0x00006720
+  0x00006722
+  0x00006724
+  0xf50c
+  0xf511
+  0xf518
+  0xf517
+  0xf512
+  0xf513
+  0x40086602
+  0x80086601
+};
+
+allowxperm system_server apk_tmp_file:file ioctl {
+  0xf512
+  0x80086601
+};
+
+# For Incremental Service to check incfs metrics
+allow system_server sysfs_fs_incfs_metrics:file { getattr open read ioctl lock map watch watch_reads };
+
+# For f2fs-compression support
+allow system_server sysfs_fs_f2fs:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server sysfs_fs_f2fs:file { getattr open read ioctl lock map watch watch_reads };
+
+# For SdkSandboxManagerService
+allow system_server sdk_sandbox_system_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+
+# For art.
+allow system_server { apex_art_data_file dalvikcache_data_file }:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server { apex_art_data_file dalvikcache_data_file }:file { getattr open read ioctl lock map watch watch_reads };
+
+# Ignore the denial on `system@framework@com.android.location.provider.jar@classes.odex`.
+# `com.android.location.provider.jar` happens to be both a jar on system server classpath and a
+# shared library used by a system server app. The odex file is loaded fine by Zygote when it forks
+# system_server. It fails to be loaded when the jar is used as a shared library, which is expected.
+dontaudit system_server apex_art_data_file:file execute;
+
+# For release odex/vdex compress blocks
+allowxperm system_server dalvikcache_data_file:file ioctl {
+  0xf512
+  0x80086601
+};
+
+# When running system server under --invoke-with, we'll try to load the boot image under the
+# system server domain, following links to the system partition.
+
+
+# /data/resource-cache
+allow system_server resourcecache_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow system_server resourcecache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# ptrace to processes in the same domain for debugging crashes.
+allow system_server self:process ptrace;
+
+# Child of the zygote.
+allow system_server zygote:fd use;
+allow system_server zygote:process sigchld;
+
+# May kill zygote (or its child processes) on crashes.
+allow system_server {
+  app_zygote
+  crash_dump
+  crosvm
+  virtualizationmanager
+  webview_zygote
+  zygote
+}:process { getpgid sigkill signull };
+
+# Read /system/bin/app_process.
+allow system_server zygote_exec:file { getattr open read ioctl lock map watch watch_reads };
+
+# Needed to close the zygote socket, which involves getopt / getattr
+allow system_server zygote:unix_stream_socket { getopt getattr };
+
+# system server gets network and bluetooth permissions.
+
+#line 122
+typeattribute system_server netdomain;
+#line 122
+
+# in addition to ioctls allowlisted for all domains, also allow system_server
+# to use privileged ioctls commands. Needed to set up VPNs.
+allowxperm system_server self:udp_socket ioctl 
+#line 125
+{
+#line 125
+# qualcomm rmnet ioctls
+#line 125
+0x00006900 0x00006902
+#line 125
+# socket ioctls
+#line 125
+0x0000890b 0x0000890c 0x0000890d 0x00008911 0x00008914 0x00008916
+#line 125
+0x00008918 0x0000891a 0x0000891c 0x0000891d 0x0000891e 0x0000891f
+#line 125
+0x00008920 0x00008922 0x00008923 0x00008924 0x00008925 0x00008926
+#line 125
+0x00008927 0x00008929 0x00008930 0x00008931 0x00008932
+#line 125
+0x00008934 0x00008935 0x00008936 0x00008937 0x00008939 0x00008940 0x00008941
+#line 125
+0x00008943 0x00008946 0x00008947 0x00008948 0x00008949 0x0000894a
+#line 125
+0x0000894b 0x00008953 0x00008954 0x00008955 0x00008960 0x00008961 0x00008962 0x00008970
+#line 125
+0x00008971 0x00008980 0x00008981 0x00008982 0x00008983 0x00008990
+#line 125
+0x00008991 0x00008992 0x00008993 0x00008994
+#line 125
+0x00008995 0x000089a0 0x000089a1 0x000089a2 0x000089a3 0x000089b0
+#line 125
+# device and protocol specific ioctls
+#line 125
+0x000089f0-0x000089ff
+#line 125
+0x000089e0-0x000089ef
+#line 125
+# Wireless extension ioctls
+#line 125
+0x00008b00 0x00008b02 0x00008b04 0x00008b06 0x00008b08 0x00008b0a
+#line 125
+0x00008b0c 0x00008b0e 0x00008b10 0x00008b14 0x00008b15 0x00008b16 0x00008b17
+#line 125
+0x00008b18 0x00008b19 0x00008b1a 0x00008b1b 0x00008b1c 0x00008b1d
+#line 125
+0x00008b20 0x00008b22 0x00008b24 0x00008b26 0x00008b28 0x00008b2a
+#line 125
+0x00008b2b 0x00008b2c 0x00008b30 0x00008b31 0x00008b32 0x00008b33
+#line 125
+0x00008b34 0x00008b35 0x00008b36
+#line 125
+# Dev private ioctl i.e. hardware specific ioctls
+#line 125
+0x00008be0-0x00008bff
+#line 125
+};
+
+#line 126
+typeattribute system_server bluetoothdomain;
+#line 126
+
+
+# Allow setup of tcp keepalive offload. This gives system_server the permission to
+# call ioctl on app domains' tcp sockets. Additional ioctl commands still need to
+# be granted individually, except for a small set of safe values allowlisted in
+# public/domain.te.
+allow system_server appdomain:tcp_socket ioctl;
+
+# These are the capabilities assigned by the zygote to the
+# system server.
+allow system_server self:{ capability cap_userns } {
+    ipc_lock
+    kill
+    net_admin
+    net_bind_service
+    net_broadcast
+    net_raw
+    sys_boot
+    sys_nice
+    sys_ptrace
+    sys_time
+    sys_tty_config
+};
+
+# Allow alarmtimers to be set
+allow system_server self:{ capability2 cap2_userns } wake_alarm;
+
+# Create and share netlink_netfilter_sockets for tetheroffload.
+allow system_server self:netlink_netfilter_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Create/use netlink_tcpdiag_socket for looking up connection UIDs for VPN apps.
+allow system_server self:netlink_tcpdiag_socket
+    { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_read nlmsg_write };
+
+# Use netlink uevent sockets.
+allow system_server self:netlink_kobject_uevent_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+allow system_server self:netlink_nflog_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Use generic netlink sockets.
+allow system_server self:netlink_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+allow system_server self:netlink_generic_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# libvintf reads the kernel config to verify vendor interface compatibility.
+allow system_server config_gz:file { read open };
+
+# Use generic "sockets" where the address family is not known
+# to the kernel. The ioctl permission is specifically omitted here, but may
+# be added to device specific policy along with the ioctl commands to be
+# allowlisted.
+allow system_server self:socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Set and get routes directly via netlink.
+allow system_server self:netlink_route_socket nlmsg_write;
+
+# Use XFRM (IPsec) netlink sockets
+allow system_server self:netlink_xfrm_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } nlmsg_write nlmsg_read };
+
+# Kill apps.
+allow system_server appdomain:process { getpgid sigkill signal };
+# signull allowed for kill(pid, 0) existence test.
+allow system_server appdomain:process { signull };
+
+# Set scheduling info for apps.
+allow system_server appdomain:process { getsched setsched };
+allow system_server audioserver:process { getsched setsched };
+allow system_server hal_audio:process { getsched setsched };
+allow system_server hal_bluetooth:process { getsched setsched };
+allow system_server hal_codec2_server:process { getsched setsched };
+allow system_server hal_omx_server:process { getsched setsched };
+allow system_server mediaswcodec:process { getsched setsched };
+allow system_server cameraserver:process { getsched setsched };
+allow system_server hal_camera:process { getsched setsched };
+allow system_server mediaserver:process { getsched setsched };
+allow system_server bootanim:process { getsched setsched };
+
+# Set scheduling info for psi monitor thread.
+# TODO: delete this line b/131761776
+allow system_server kernel:process { getsched setsched };
+
+# Allow system_server to write to /proc/<pid>/*
+allow system_server domain:file { open append write lock map };
+
+# Read /proc/pid data for all domains. This is used by ProcessCpuTracker
+# within system_server to keep track of memory and CPU usage for
+# all processes on the device. In addition, /proc/pid files access is needed
+# for dumping stack traces of native processes.
+
+#line 213
+allow system_server domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 213
+allow system_server domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 213
+
+
+# Write /proc/uid_cputime/remove_uid_range.
+allow system_server proc_uid_cputime_removeuid:file { { open append write lock map } getattr };
+
+# Write /proc/uid_procstat/set.
+allow system_server proc_uid_procstat_set:file { { open append write lock map } getattr };
+
+# Write to /proc/sysrq-trigger.
+allow system_server proc_sysrq:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Delete /data/misc/stats-service/ directories.
+allow system_server stats_config_data_file:dir { open read remove_name search write };
+allow system_server stats_config_data_file:file unlink;
+
+# Read metric file & upload to statsd
+allow system_server odsign_data_file:dir search;
+allow system_server odsign_metrics_file:dir { { open getattr read search ioctl lock watch watch_reads } write remove_name };
+allow system_server odsign_metrics_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+
+# Read /sys/kernel/debug/wakeup_sources.
+
+#line 234
+  allow system_server debugfs_wakeup_sources:file { getattr open read ioctl lock map watch watch_reads };
+#line 236
+
+
+# Read /sys/kernel/ion/*.
+allow system_server sysfs_ion:file { getattr open read ioctl lock map watch watch_reads };
+
+# Read /sys/kernel/dma_heap/*.
+allow system_server sysfs_dma_heap:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow reading DMA-BUF sysfs stats from /sys/kernel/dmabuf.
+allow system_server sysfs_dmabuf_stats:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server sysfs_dmabuf_stats:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow ActivityManager to look at the list of DMA-BUF heaps from /dev/dma_heap
+# for dumpsys meminfo
+allow system_server dmabuf_heap_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow reading /proc/vmstat for the oom kill count
+allow system_server proc_vmstat:file { getattr open read ioctl lock map watch watch_reads };
+
+# The DhcpClient and WifiWatchdog use packet_sockets
+allow system_server self:packet_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# 3rd party VPN clients require a tun_socket to be created
+allow system_server self:tun_socket { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } };
+
+# Talk to init and various daemons via sockets.
+
+#line 262
+allow system_server lmkd_socket:sock_file write;
+#line 262
+allow system_server lmkd:unix_stream_socket connectto;
+#line 262
+
+
+#line 263
+allow system_server zygote_socket:sock_file write;
+#line 263
+allow system_server zygote:unix_stream_socket connectto;
+#line 263
+
+
+#line 264
+allow system_server uncrypt_socket:sock_file write;
+#line 264
+allow system_server uncrypt:unix_stream_socket connectto;
+#line 264
+
+
+# Allow system_server to write to statsd.
+
+#line 267
+allow system_server statsdw_socket:sock_file write;
+#line 267
+allow system_server statsd:unix_dgram_socket sendto;
+#line 267
+
+
+# Communicate over a socket created by surfaceflinger.
+allow system_server surfaceflinger:unix_stream_socket { read write setopt };
+
+allow system_server gpuservice:unix_stream_socket { read write setopt };
+
+# Communicate over a socket created by webview_zygote.
+allow system_server webview_zygote:unix_stream_socket { read write connectto setopt };
+
+# Communicate over a socket created by app_zygote.
+allow system_server app_zygote:unix_stream_socket { read write connectto setopt };
+
+# Perform Binder IPC.
+
+#line 281
+# Call the servicemanager and transfer references to it.
+#line 281
+allow system_server servicemanager:binder { call transfer };
+#line 281
+# Allow servicemanager to send out callbacks
+#line 281
+allow servicemanager system_server:binder { call transfer };
+#line 281
+# servicemanager performs getpidcon on clients.
+#line 281
+allow servicemanager system_server:dir search;
+#line 281
+allow servicemanager system_server:file { read open };
+#line 281
+allow servicemanager system_server:process getattr;
+#line 281
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 281
+# all domains in domain.te.
+#line 281
+
+
+#line 282
+# Call the server domain and optionally transfer references to it.
+#line 282
+allow system_server appdomain:binder { call transfer };
+#line 282
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 282
+allow appdomain system_server:binder transfer;
+#line 282
+# Receive and use open files from the server.
+#line 282
+allow system_server appdomain:fd use;
+#line 282
+
+
+#line 283
+# Call the server domain and optionally transfer references to it.
+#line 283
+allow system_server artd:binder { call transfer };
+#line 283
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 283
+allow artd system_server:binder transfer;
+#line 283
+# Receive and use open files from the server.
+#line 283
+allow system_server artd:fd use;
+#line 283
+
+
+#line 284
+# Call the server domain and optionally transfer references to it.
+#line 284
+allow system_server binderservicedomain:binder { call transfer };
+#line 284
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 284
+allow binderservicedomain system_server:binder transfer;
+#line 284
+# Receive and use open files from the server.
+#line 284
+allow system_server binderservicedomain:fd use;
+#line 284
+
+
+#line 285
+# Call the server domain and optionally transfer references to it.
+#line 285
+allow system_server composd:binder { call transfer };
+#line 285
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 285
+allow composd system_server:binder transfer;
+#line 285
+# Receive and use open files from the server.
+#line 285
+allow system_server composd:fd use;
+#line 285
+
+
+#line 286
+# Call the server domain and optionally transfer references to it.
+#line 286
+allow system_server dexopt_chroot_setup:binder { call transfer };
+#line 286
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 286
+allow dexopt_chroot_setup system_server:binder transfer;
+#line 286
+# Receive and use open files from the server.
+#line 286
+allow system_server dexopt_chroot_setup:fd use;
+#line 286
+
+
+#line 287
+# Call the server domain and optionally transfer references to it.
+#line 287
+allow system_server dumpstate:binder { call transfer };
+#line 287
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 287
+allow dumpstate system_server:binder transfer;
+#line 287
+# Receive and use open files from the server.
+#line 287
+allow system_server dumpstate:fd use;
+#line 287
+
+
+#line 288
+# Call the server domain and optionally transfer references to it.
+#line 288
+allow system_server fingerprintd:binder { call transfer };
+#line 288
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 288
+allow fingerprintd system_server:binder transfer;
+#line 288
+# Receive and use open files from the server.
+#line 288
+allow system_server fingerprintd:fd use;
+#line 288
+
+
+#line 289
+# Call the server domain and optionally transfer references to it.
+#line 289
+allow system_server gatekeeperd:binder { call transfer };
+#line 289
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 289
+allow gatekeeperd system_server:binder transfer;
+#line 289
+# Receive and use open files from the server.
+#line 289
+allow system_server gatekeeperd:fd use;
+#line 289
+
+
+#line 290
+# Call the server domain and optionally transfer references to it.
+#line 290
+allow system_server gpuservice:binder { call transfer };
+#line 290
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 290
+allow gpuservice system_server:binder transfer;
+#line 290
+# Receive and use open files from the server.
+#line 290
+allow system_server gpuservice:fd use;
+#line 290
+
+
+#line 291
+# Call the server domain and optionally transfer references to it.
+#line 291
+allow system_server idmap:binder { call transfer };
+#line 291
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 291
+allow idmap system_server:binder transfer;
+#line 291
+# Receive and use open files from the server.
+#line 291
+allow system_server idmap:fd use;
+#line 291
+
+
+#line 292
+# Call the server domain and optionally transfer references to it.
+#line 292
+allow system_server installd:binder { call transfer };
+#line 292
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 292
+allow installd system_server:binder transfer;
+#line 292
+# Receive and use open files from the server.
+#line 292
+allow system_server installd:fd use;
+#line 292
+
+
+#line 293
+# Call the server domain and optionally transfer references to it.
+#line 293
+allow system_server incidentd:binder { call transfer };
+#line 293
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 293
+allow incidentd system_server:binder transfer;
+#line 293
+# Receive and use open files from the server.
+#line 293
+allow system_server incidentd:fd use;
+#line 293
+
+
+#line 294
+# Call the server domain and optionally transfer references to it.
+#line 294
+allow system_server netd:binder { call transfer };
+#line 294
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 294
+allow netd system_server:binder transfer;
+#line 294
+# Receive and use open files from the server.
+#line 294
+allow system_server netd:fd use;
+#line 294
+
+
+#line 295
+# Call the server domain and optionally transfer references to it.
+#line 295
+allow system_server ot_daemon:binder { call transfer };
+#line 295
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 295
+allow ot_daemon system_server:binder transfer;
+#line 295
+# Receive and use open files from the server.
+#line 295
+allow system_server ot_daemon:fd use;
+#line 295
+
+
+
+#line 297
+# Call the server domain and optionally transfer references to it.
+#line 297
+allow system_server statsd:binder { call transfer };
+#line 297
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 297
+allow statsd system_server:binder transfer;
+#line 297
+# Receive and use open files from the server.
+#line 297
+allow system_server statsd:fd use;
+#line 297
+
+
+#line 298
+# Call the server domain and optionally transfer references to it.
+#line 298
+allow system_server storaged:binder { call transfer };
+#line 298
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 298
+allow storaged system_server:binder transfer;
+#line 298
+# Receive and use open files from the server.
+#line 298
+allow system_server storaged:fd use;
+#line 298
+
+
+#line 299
+# Call the server domain and optionally transfer references to it.
+#line 299
+allow system_server update_engine:binder { call transfer };
+#line 299
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 299
+allow update_engine system_server:binder transfer;
+#line 299
+# Receive and use open files from the server.
+#line 299
+allow system_server update_engine:fd use;
+#line 299
+
+
+#line 300
+# Call the server domain and optionally transfer references to it.
+#line 300
+allow system_server virtual_camera:binder { call transfer };
+#line 300
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 300
+allow virtual_camera system_server:binder transfer;
+#line 300
+# Receive and use open files from the server.
+#line 300
+allow system_server virtual_camera:fd use;
+#line 300
+
+
+#line 301
+# Call the server domain and optionally transfer references to it.
+#line 301
+allow system_server vold:binder { call transfer };
+#line 301
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 301
+allow vold system_server:binder transfer;
+#line 301
+# Receive and use open files from the server.
+#line 301
+allow system_server vold:fd use;
+#line 301
+
+
+#line 302
+# Call the server domain and optionally transfer references to it.
+#line 302
+allow system_server logd:binder { call transfer };
+#line 302
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 302
+allow logd system_server:binder transfer;
+#line 302
+# Receive and use open files from the server.
+#line 302
+allow system_server logd:fd use;
+#line 302
+
+
+#line 303
+# Call the server domain and optionally transfer references to it.
+#line 303
+allow system_server wificond:binder { call transfer };
+#line 303
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 303
+allow wificond system_server:binder transfer;
+#line 303
+# Receive and use open files from the server.
+#line 303
+allow system_server wificond:fd use;
+#line 303
+
+
+#line 304
+# Call the server domain and optionally transfer references to it.
+#line 304
+allow system_server uprobestats:binder { call transfer };
+#line 304
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 304
+allow uprobestats system_server:binder transfer;
+#line 304
+# Receive and use open files from the server.
+#line 304
+allow system_server uprobestats:fd use;
+#line 304
+
+
+#line 305
+typeattribute system_server binderservicedomain;
+#line 305
+
+
+# Use HALs
+
+#line 308
+typeattribute system_server halclientdomain;
+#line 308
+typeattribute system_server hal_allocator_client;
+#line 308
+
+#line 308
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 308
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 308
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 308
+
+#line 308
+typeattribute system_server hal_allocator;
+#line 308
+# Find passthrough HAL implementations
+#line 308
+allow hal_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 308
+allow hal_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 308
+allow hal_allocator vendor_file:file { read open getattr execute map };
+#line 308
+
+#line 308
+
+
+#line 309
+typeattribute system_server halclientdomain;
+#line 309
+typeattribute system_server hal_audio_client;
+#line 309
+
+#line 309
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 309
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 309
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 309
+
+#line 309
+typeattribute system_server hal_audio;
+#line 309
+# Find passthrough HAL implementations
+#line 309
+allow hal_audio system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 309
+allow hal_audio vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 309
+allow hal_audio vendor_file:file { read open getattr execute map };
+#line 309
+
+#line 309
+
+
+#line 310
+typeattribute system_server halclientdomain;
+#line 310
+typeattribute system_server hal_authgraph_client;
+#line 310
+
+#line 310
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 310
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 310
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 310
+
+#line 310
+typeattribute system_server hal_authgraph;
+#line 310
+# Find passthrough HAL implementations
+#line 310
+allow hal_authgraph system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 310
+allow hal_authgraph vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 310
+allow hal_authgraph vendor_file:file { read open getattr execute map };
+#line 310
+
+#line 310
+
+
+#line 311
+typeattribute system_server halclientdomain;
+#line 311
+typeattribute system_server hal_authsecret_client;
+#line 311
+
+#line 311
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 311
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 311
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 311
+
+#line 311
+typeattribute system_server hal_authsecret;
+#line 311
+# Find passthrough HAL implementations
+#line 311
+allow hal_authsecret system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 311
+allow hal_authsecret vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 311
+allow hal_authsecret vendor_file:file { read open getattr execute map };
+#line 311
+
+#line 311
+
+
+#line 312
+typeattribute system_server halclientdomain;
+#line 312
+typeattribute system_server hal_bluetooth_client;
+#line 312
+
+#line 312
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 312
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 312
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 312
+
+#line 312
+typeattribute system_server hal_bluetooth;
+#line 312
+# Find passthrough HAL implementations
+#line 312
+allow hal_bluetooth system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 312
+allow hal_bluetooth vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 312
+allow hal_bluetooth vendor_file:file { read open getattr execute map };
+#line 312
+
+#line 312
+
+
+#line 313
+typeattribute system_server halclientdomain;
+#line 313
+typeattribute system_server hal_broadcastradio_client;
+#line 313
+
+#line 313
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 313
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 313
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 313
+
+#line 313
+typeattribute system_server hal_broadcastradio;
+#line 313
+# Find passthrough HAL implementations
+#line 313
+allow hal_broadcastradio system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 313
+allow hal_broadcastradio vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 313
+allow hal_broadcastradio vendor_file:file { read open getattr execute map };
+#line 313
+
+#line 313
+
+
+#line 314
+typeattribute system_server halclientdomain;
+#line 314
+typeattribute system_server hal_codec2_client;
+#line 314
+
+#line 314
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 314
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 314
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 314
+
+#line 314
+typeattribute system_server hal_codec2;
+#line 314
+# Find passthrough HAL implementations
+#line 314
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 314
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 314
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 314
+
+#line 314
+
+
+#line 315
+typeattribute system_server halclientdomain;
+#line 315
+typeattribute system_server hal_configstore_client;
+#line 315
+
+#line 315
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 315
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 315
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 315
+
+#line 315
+typeattribute system_server hal_configstore;
+#line 315
+# Find passthrough HAL implementations
+#line 315
+allow hal_configstore system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 315
+allow hal_configstore vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 315
+allow hal_configstore vendor_file:file { read open getattr execute map };
+#line 315
+
+#line 315
+
+
+#line 316
+typeattribute system_server halclientdomain;
+#line 316
+typeattribute system_server hal_contexthub_client;
+#line 316
+
+#line 316
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 316
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 316
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 316
+
+#line 316
+typeattribute system_server hal_contexthub;
+#line 316
+# Find passthrough HAL implementations
+#line 316
+allow hal_contexthub system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 316
+allow hal_contexthub vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 316
+allow hal_contexthub vendor_file:file { read open getattr execute map };
+#line 316
+
+#line 316
+
+
+#line 317
+typeattribute system_server halclientdomain;
+#line 317
+typeattribute system_server hal_face_client;
+#line 317
+
+#line 317
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 317
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 317
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 317
+
+#line 317
+typeattribute system_server hal_face;
+#line 317
+# Find passthrough HAL implementations
+#line 317
+allow hal_face system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 317
+allow hal_face vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 317
+allow hal_face vendor_file:file { read open getattr execute map };
+#line 317
+
+#line 317
+
+
+#line 318
+typeattribute system_server halclientdomain;
+#line 318
+typeattribute system_server hal_fingerprint_client;
+#line 318
+
+#line 318
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 318
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 318
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 318
+
+#line 318
+typeattribute system_server hal_fingerprint;
+#line 318
+# Find passthrough HAL implementations
+#line 318
+allow hal_fingerprint system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 318
+allow hal_fingerprint vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 318
+allow hal_fingerprint vendor_file:file { read open getattr execute map };
+#line 318
+
+#line 318
+
+
+#line 319
+typeattribute system_server halclientdomain;
+#line 319
+typeattribute system_server hal_gnss_client;
+#line 319
+
+#line 319
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 319
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 319
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 319
+
+#line 319
+typeattribute system_server hal_gnss;
+#line 319
+# Find passthrough HAL implementations
+#line 319
+allow hal_gnss system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 319
+allow hal_gnss vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 319
+allow hal_gnss vendor_file:file { read open getattr execute map };
+#line 319
+
+#line 319
+
+
+#line 320
+typeattribute system_server halclientdomain;
+#line 320
+typeattribute system_server hal_graphics_allocator_client;
+#line 320
+
+#line 320
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 320
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 320
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 320
+
+#line 320
+typeattribute system_server hal_graphics_allocator;
+#line 320
+# Find passthrough HAL implementations
+#line 320
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 320
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 320
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 320
+
+#line 320
+
+
+#line 321
+typeattribute system_server halclientdomain;
+#line 321
+typeattribute system_server hal_health_client;
+#line 321
+
+#line 321
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 321
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 321
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 321
+
+#line 321
+typeattribute system_server hal_health;
+#line 321
+# Find passthrough HAL implementations
+#line 321
+allow hal_health system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 321
+allow hal_health vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 321
+allow hal_health vendor_file:file { read open getattr execute map };
+#line 321
+
+#line 321
+
+
+#line 322
+typeattribute system_server halclientdomain;
+#line 322
+typeattribute system_server hal_input_classifier_client;
+#line 322
+
+#line 322
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 322
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 322
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 322
+
+#line 322
+typeattribute system_server hal_input_classifier;
+#line 322
+# Find passthrough HAL implementations
+#line 322
+allow hal_input_classifier system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 322
+allow hal_input_classifier vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 322
+allow hal_input_classifier vendor_file:file { read open getattr execute map };
+#line 322
+
+#line 322
+
+
+#line 323
+typeattribute system_server halclientdomain;
+#line 323
+typeattribute system_server hal_input_processor_client;
+#line 323
+
+#line 323
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 323
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 323
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 323
+
+#line 323
+typeattribute system_server hal_input_processor;
+#line 323
+# Find passthrough HAL implementations
+#line 323
+allow hal_input_processor system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 323
+allow hal_input_processor vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 323
+allow hal_input_processor vendor_file:file { read open getattr execute map };
+#line 323
+
+#line 323
+
+
+#line 324
+typeattribute system_server halclientdomain;
+#line 324
+typeattribute system_server hal_ir_client;
+#line 324
+
+#line 324
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 324
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 324
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 324
+
+#line 324
+typeattribute system_server hal_ir;
+#line 324
+# Find passthrough HAL implementations
+#line 324
+allow hal_ir system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 324
+allow hal_ir vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 324
+allow hal_ir vendor_file:file { read open getattr execute map };
+#line 324
+
+#line 324
+
+
+#line 325
+typeattribute system_server halclientdomain;
+#line 325
+typeattribute system_server hal_keymint_client;
+#line 325
+
+#line 325
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 325
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 325
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 325
+
+#line 325
+typeattribute system_server hal_keymint;
+#line 325
+# Find passthrough HAL implementations
+#line 325
+allow hal_keymint system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 325
+allow hal_keymint vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 325
+allow hal_keymint vendor_file:file { read open getattr execute map };
+#line 325
+
+#line 325
+
+
+#line 326
+typeattribute system_server halclientdomain;
+#line 326
+typeattribute system_server hal_light_client;
+#line 326
+
+#line 326
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 326
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 326
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 326
+
+#line 326
+typeattribute system_server hal_light;
+#line 326
+# Find passthrough HAL implementations
+#line 326
+allow hal_light system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 326
+allow hal_light vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 326
+allow hal_light vendor_file:file { read open getattr execute map };
+#line 326
+
+#line 326
+
+
+#line 327
+typeattribute system_server halclientdomain;
+#line 327
+typeattribute system_server hal_memtrack_client;
+#line 327
+
+#line 327
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 327
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 327
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 327
+
+#line 327
+typeattribute system_server hal_memtrack;
+#line 327
+# Find passthrough HAL implementations
+#line 327
+allow hal_memtrack system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 327
+allow hal_memtrack vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 327
+allow hal_memtrack vendor_file:file { read open getattr execute map };
+#line 327
+
+#line 327
+
+
+#line 328
+typeattribute system_server halclientdomain;
+#line 328
+typeattribute system_server hal_neuralnetworks_client;
+#line 328
+
+#line 328
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 328
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 328
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 328
+
+#line 328
+typeattribute system_server hal_neuralnetworks;
+#line 328
+# Find passthrough HAL implementations
+#line 328
+allow hal_neuralnetworks system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 328
+allow hal_neuralnetworks vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 328
+allow hal_neuralnetworks vendor_file:file { read open getattr execute map };
+#line 328
+
+#line 328
+
+
+#line 329
+typeattribute system_server halclientdomain;
+#line 329
+typeattribute system_server hal_oemlock_client;
+#line 329
+
+#line 329
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 329
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 329
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 329
+
+#line 329
+typeattribute system_server hal_oemlock;
+#line 329
+# Find passthrough HAL implementations
+#line 329
+allow hal_oemlock system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 329
+allow hal_oemlock vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 329
+allow hal_oemlock vendor_file:file { read open getattr execute map };
+#line 329
+
+#line 329
+
+
+#line 330
+typeattribute system_server halclientdomain;
+#line 330
+typeattribute system_server hal_omx_client;
+#line 330
+
+#line 330
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 330
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 330
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 330
+
+#line 330
+typeattribute system_server hal_omx;
+#line 330
+# Find passthrough HAL implementations
+#line 330
+allow hal_omx system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 330
+allow hal_omx vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 330
+allow hal_omx vendor_file:file { read open getattr execute map };
+#line 330
+
+#line 330
+
+
+#line 331
+typeattribute system_server halclientdomain;
+#line 331
+typeattribute system_server hal_power_client;
+#line 331
+
+#line 331
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 331
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 331
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 331
+
+#line 331
+typeattribute system_server hal_power;
+#line 331
+# Find passthrough HAL implementations
+#line 331
+allow hal_power system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 331
+allow hal_power vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 331
+allow hal_power vendor_file:file { read open getattr execute map };
+#line 331
+
+#line 331
+
+
+#line 332
+typeattribute system_server halclientdomain;
+#line 332
+typeattribute system_server hal_power_stats_client;
+#line 332
+
+#line 332
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 332
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 332
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 332
+
+#line 332
+typeattribute system_server hal_power_stats;
+#line 332
+# Find passthrough HAL implementations
+#line 332
+allow hal_power_stats system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 332
+allow hal_power_stats vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 332
+allow hal_power_stats vendor_file:file { read open getattr execute map };
+#line 332
+
+#line 332
+
+
+#line 333
+typeattribute system_server halclientdomain;
+#line 333
+typeattribute system_server hal_rebootescrow_client;
+#line 333
+
+#line 333
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 333
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 333
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 333
+
+#line 333
+typeattribute system_server hal_rebootescrow;
+#line 333
+# Find passthrough HAL implementations
+#line 333
+allow hal_rebootescrow system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 333
+allow hal_rebootescrow vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 333
+allow hal_rebootescrow vendor_file:file { read open getattr execute map };
+#line 333
+
+#line 333
+
+
+#line 334
+typeattribute system_server halclientdomain;
+#line 334
+typeattribute system_server hal_remotelyprovisionedcomponent_avf_client;
+#line 334
+
+#line 334
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 334
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 334
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 334
+
+#line 334
+typeattribute system_server hal_remotelyprovisionedcomponent_avf;
+#line 334
+# Find passthrough HAL implementations
+#line 334
+allow hal_remotelyprovisionedcomponent_avf system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 334
+allow hal_remotelyprovisionedcomponent_avf vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 334
+allow hal_remotelyprovisionedcomponent_avf vendor_file:file { read open getattr execute map };
+#line 334
+
+#line 334
+
+
+#line 335
+typeattribute system_server halclientdomain;
+#line 335
+typeattribute system_server hal_sensors_client;
+#line 335
+
+#line 335
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 335
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 335
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 335
+
+#line 335
+typeattribute system_server hal_sensors;
+#line 335
+# Find passthrough HAL implementations
+#line 335
+allow hal_sensors system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 335
+allow hal_sensors vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 335
+allow hal_sensors vendor_file:file { read open getattr execute map };
+#line 335
+
+#line 335
+
+
+#line 336
+typeattribute system_server halclientdomain;
+#line 336
+typeattribute system_server hal_tetheroffload_client;
+#line 336
+
+#line 336
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 336
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 336
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 336
+
+#line 336
+typeattribute system_server hal_tetheroffload;
+#line 336
+# Find passthrough HAL implementations
+#line 336
+allow hal_tetheroffload system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 336
+allow hal_tetheroffload vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 336
+allow hal_tetheroffload vendor_file:file { read open getattr execute map };
+#line 336
+
+#line 336
+
+
+#line 337
+typeattribute system_server halclientdomain;
+#line 337
+typeattribute system_server hal_thermal_client;
+#line 337
+
+#line 337
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 337
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 337
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 337
+
+#line 337
+typeattribute system_server hal_thermal;
+#line 337
+# Find passthrough HAL implementations
+#line 337
+allow hal_thermal system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 337
+allow hal_thermal vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 337
+allow hal_thermal vendor_file:file { read open getattr execute map };
+#line 337
+
+#line 337
+
+
+#line 338
+typeattribute system_server halclientdomain;
+#line 338
+typeattribute system_server hal_threadnetwork_client;
+#line 338
+
+#line 338
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 338
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 338
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 338
+
+#line 338
+typeattribute system_server hal_threadnetwork;
+#line 338
+# Find passthrough HAL implementations
+#line 338
+allow hal_threadnetwork system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 338
+allow hal_threadnetwork vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 338
+allow hal_threadnetwork vendor_file:file { read open getattr execute map };
+#line 338
+
+#line 338
+
+
+#line 339
+typeattribute system_server halclientdomain;
+#line 339
+typeattribute system_server hal_tv_cec_client;
+#line 339
+
+#line 339
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 339
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 339
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 339
+
+#line 339
+typeattribute system_server hal_tv_cec;
+#line 339
+# Find passthrough HAL implementations
+#line 339
+allow hal_tv_cec system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 339
+allow hal_tv_cec vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 339
+allow hal_tv_cec vendor_file:file { read open getattr execute map };
+#line 339
+
+#line 339
+
+
+#line 340
+typeattribute system_server halclientdomain;
+#line 340
+typeattribute system_server hal_tv_hdmi_cec_client;
+#line 340
+
+#line 340
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 340
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 340
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 340
+
+#line 340
+typeattribute system_server hal_tv_hdmi_cec;
+#line 340
+# Find passthrough HAL implementations
+#line 340
+allow hal_tv_hdmi_cec system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 340
+allow hal_tv_hdmi_cec vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 340
+allow hal_tv_hdmi_cec vendor_file:file { read open getattr execute map };
+#line 340
+
+#line 340
+
+
+#line 341
+typeattribute system_server halclientdomain;
+#line 341
+typeattribute system_server hal_tv_hdmi_connection_client;
+#line 341
+
+#line 341
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 341
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 341
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 341
+
+#line 341
+typeattribute system_server hal_tv_hdmi_connection;
+#line 341
+# Find passthrough HAL implementations
+#line 341
+allow hal_tv_hdmi_connection system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 341
+allow hal_tv_hdmi_connection vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 341
+allow hal_tv_hdmi_connection vendor_file:file { read open getattr execute map };
+#line 341
+
+#line 341
+
+
+#line 342
+typeattribute system_server halclientdomain;
+#line 342
+typeattribute system_server hal_tv_hdmi_earc_client;
+#line 342
+
+#line 342
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 342
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 342
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 342
+
+#line 342
+typeattribute system_server hal_tv_hdmi_earc;
+#line 342
+# Find passthrough HAL implementations
+#line 342
+allow hal_tv_hdmi_earc system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 342
+allow hal_tv_hdmi_earc vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 342
+allow hal_tv_hdmi_earc vendor_file:file { read open getattr execute map };
+#line 342
+
+#line 342
+
+
+#line 343
+typeattribute system_server halclientdomain;
+#line 343
+typeattribute system_server hal_tv_input_client;
+#line 343
+
+#line 343
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 343
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 343
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 343
+
+#line 343
+typeattribute system_server hal_tv_input;
+#line 343
+# Find passthrough HAL implementations
+#line 343
+allow hal_tv_input system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 343
+allow hal_tv_input vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 343
+allow hal_tv_input vendor_file:file { read open getattr execute map };
+#line 343
+
+#line 343
+
+
+#line 344
+typeattribute system_server halclientdomain;
+#line 344
+typeattribute system_server hal_usb_client;
+#line 344
+
+#line 344
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 344
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 344
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 344
+
+#line 344
+typeattribute system_server hal_usb;
+#line 344
+# Find passthrough HAL implementations
+#line 344
+allow hal_usb system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 344
+allow hal_usb vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 344
+allow hal_usb vendor_file:file { read open getattr execute map };
+#line 344
+
+#line 344
+
+
+#line 345
+typeattribute system_server halclientdomain;
+#line 345
+typeattribute system_server hal_usb_gadget_client;
+#line 345
+
+#line 345
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 345
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 345
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 345
+
+#line 345
+typeattribute system_server hal_usb_gadget;
+#line 345
+# Find passthrough HAL implementations
+#line 345
+allow hal_usb_gadget system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 345
+allow hal_usb_gadget vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 345
+allow hal_usb_gadget vendor_file:file { read open getattr execute map };
+#line 345
+
+#line 345
+
+
+#line 346
+typeattribute system_server halclientdomain;
+#line 346
+typeattribute system_server hal_uwb_client;
+#line 346
+
+#line 346
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 346
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 346
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 346
+
+#line 346
+typeattribute system_server hal_uwb;
+#line 346
+# Find passthrough HAL implementations
+#line 346
+allow hal_uwb system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 346
+allow hal_uwb vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 346
+allow hal_uwb vendor_file:file { read open getattr execute map };
+#line 346
+
+#line 346
+
+
+#line 347
+typeattribute system_server halclientdomain;
+#line 347
+typeattribute system_server hal_vibrator_client;
+#line 347
+
+#line 347
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 347
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 347
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 347
+
+#line 347
+typeattribute system_server hal_vibrator;
+#line 347
+# Find passthrough HAL implementations
+#line 347
+allow hal_vibrator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 347
+allow hal_vibrator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 347
+allow hal_vibrator vendor_file:file { read open getattr execute map };
+#line 347
+
+#line 347
+
+
+#line 348
+typeattribute system_server halclientdomain;
+#line 348
+typeattribute system_server hal_vr_client;
+#line 348
+
+#line 348
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 348
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 348
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 348
+
+#line 348
+typeattribute system_server hal_vr;
+#line 348
+# Find passthrough HAL implementations
+#line 348
+allow hal_vr system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 348
+allow hal_vr vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 348
+allow hal_vr vendor_file:file { read open getattr execute map };
+#line 348
+
+#line 348
+
+
+#line 349
+typeattribute system_server halclientdomain;
+#line 349
+typeattribute system_server hal_weaver_client;
+#line 349
+
+#line 349
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 349
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 349
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 349
+
+#line 349
+typeattribute system_server hal_weaver;
+#line 349
+# Find passthrough HAL implementations
+#line 349
+allow hal_weaver system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 349
+allow hal_weaver vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 349
+allow hal_weaver vendor_file:file { read open getattr execute map };
+#line 349
+
+#line 349
+
+
+#line 350
+typeattribute system_server halclientdomain;
+#line 350
+typeattribute system_server hal_wifi_client;
+#line 350
+
+#line 350
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 350
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 350
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 350
+
+#line 350
+typeattribute system_server hal_wifi;
+#line 350
+# Find passthrough HAL implementations
+#line 350
+allow hal_wifi system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 350
+allow hal_wifi vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 350
+allow hal_wifi vendor_file:file { read open getattr execute map };
+#line 350
+
+#line 350
+
+
+#line 351
+typeattribute system_server halclientdomain;
+#line 351
+typeattribute system_server hal_wifi_hostapd_client;
+#line 351
+
+#line 351
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 351
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 351
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 351
+
+#line 351
+typeattribute system_server hal_wifi_hostapd;
+#line 351
+# Find passthrough HAL implementations
+#line 351
+allow hal_wifi_hostapd system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 351
+allow hal_wifi_hostapd vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 351
+allow hal_wifi_hostapd vendor_file:file { read open getattr execute map };
+#line 351
+
+#line 351
+
+
+#line 352
+typeattribute system_server halclientdomain;
+#line 352
+typeattribute system_server hal_wifi_supplicant_client;
+#line 352
+
+#line 352
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 352
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 352
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 352
+
+#line 352
+typeattribute system_server hal_wifi_supplicant;
+#line 352
+# Find passthrough HAL implementations
+#line 352
+allow hal_wifi_supplicant system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 352
+allow hal_wifi_supplicant vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 352
+allow hal_wifi_supplicant vendor_file:file { read open getattr execute map };
+#line 352
+
+#line 352
+
+# The bootctl is a pass through HAL mode under recovery mode. So we skip the
+# permission for recovery in order not to give system server the access to
+# the low level block devices.
+
+#line 356
+typeattribute system_server halclientdomain;
+#line 356
+typeattribute system_server hal_bootctl_client;
+#line 356
+
+#line 356
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 356
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 356
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 356
+
+#line 356
+typeattribute system_server hal_bootctl;
+#line 356
+# Find passthrough HAL implementations
+#line 356
+allow hal_bootctl system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 356
+allow hal_bootctl vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 356
+allow hal_bootctl vendor_file:file { read open getattr execute map };
+#line 356
+
+#line 356
+
+
+# Talk with graphics composer fences
+allow system_server hal_graphics_composer:fd use;
+
+# Use RenderScript always-passthrough HAL
+allow system_server hal_renderscript_hwservice:hwservice_manager find;
+allow system_server same_process_hal_file:file { execute read open getattr map };
+
+# Talk to tombstoned to get ANR traces.
+
+#line 366
+allow system_server tombstoned_intercept_socket:sock_file write;
+#line 366
+allow system_server tombstoned:unix_stream_socket connectto;
+#line 366
+
+
+# List HAL interfaces to get ANR traces.
+allow system_server hwservicemanager:hwservice_manager list;
+allow system_server servicemanager:service_manager list;
+
+# Send signals to trigger ANR traces.
+allow system_server {
+  # This is derived from the list that system server defines as interesting native processes
+  # to dump during ANRs or watchdog aborts, defined in NATIVE_STACKS_OF_INTEREST in
+  # frameworks/base/services/core/java/com/android/server/Watchdog.java.
+  artd
+  audioserver
+  cameraserver
+  drmserver
+  gpuservice
+  inputflinger
+  keystore
+  mediadrmserver
+  mediaextractor
+  mediametrics
+  mediaserver
+  mediaswcodec
+  mediatranscoding
+  mediatuner
+  netd
+  sdcardd
+  servicemanager
+  statsd
+  surfaceflinger
+  vold
+
+  # This list comes from HAL_INTERFACES_OF_INTEREST in
+  # frameworks/base/services/core/java/com/android/server/Watchdog.java.
+  hal_audio_server
+  hal_bluetooth_server
+  hal_camera_server
+  hal_codec2_server
+  hal_face_server
+  hal_fingerprint_server
+  hal_gnss_server
+  hal_graphics_allocator_server
+  hal_graphics_composer_server
+  hal_health_server
+  hal_input_processor_server
+  hal_light_server
+  hal_neuralnetworks_server
+  hal_omx_server
+  hal_power_server
+  hal_power_stats_server
+  hal_sensors_server
+  hal_vibrator_server
+  hal_vr_server
+  system_suspend_server
+}:process { signal };
+
+# Use sockets received over binder from various services.
+allow system_server audioserver:tcp_socket { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map };
+allow system_server audioserver:udp_socket { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map };
+allow system_server mediaserver:tcp_socket { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map };
+allow system_server mediaserver:udp_socket { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map };
+
+# Use sockets received over binder from various services.
+allow system_server mediadrmserver:tcp_socket { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map };
+allow system_server mediadrmserver:udp_socket { ioctl read getattr write setattr lock append bind connect getopt setopt shutdown map };
+
+# Write trace data to the Perfetto traced daemon. This requires connecting to
+# its producer socket and obtaining a (per-process) tmpfs fd.
+
+#line 434
+  allow system_server traced:fd use;
+#line 434
+  allow system_server traced_tmpfs:file { read write getattr map };
+#line 434
+  
+#line 434
+allow system_server traced_producer_socket:sock_file write;
+#line 434
+allow system_server traced:unix_stream_socket connectto;
+#line 434
+
+#line 434
+
+#line 434
+  # Also allow the service to use the producer file descriptors. This is
+#line 434
+  # necessary when the producer is creating the shared memory, as it will be
+#line 434
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 434
+  allow traced system_server:fd use;
+#line 434
+
+
+# Get file context
+allow system_server file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+# access for mac_permissions
+allow system_server mac_perms_file: file { getattr open read ioctl lock map watch watch_reads };
+# Check SELinux permissions.
+
+#line 441
+
+#line 441
+allow system_server selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 441
+allow system_server selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 441
+
+#line 441
+allow system_server selinuxfs:file { open append write lock map };
+#line 441
+allow system_server kernel:security compute_av;
+#line 441
+allow system_server self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 441
+
+
+allow system_server sysfs_type:dir { open getattr read search ioctl lock watch watch_reads };
+
+
+#line 445
+allow system_server sysfs_android_usb:dir { open getattr read search ioctl lock watch watch_reads };
+#line 445
+allow system_server sysfs_android_usb:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 445
+
+allow system_server sysfs_android_usb:file { open append write lock map };
+
+
+#line 448
+allow system_server sysfs_extcon:dir { open getattr read search ioctl lock watch watch_reads };
+#line 448
+allow system_server sysfs_extcon:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 448
+
+
+
+#line 450
+allow system_server sysfs_ipv4:dir { open getattr read search ioctl lock watch watch_reads };
+#line 450
+allow system_server sysfs_ipv4:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 450
+
+allow system_server sysfs_ipv4:file { open append write lock map };
+
+
+#line 453
+allow system_server sysfs_rtc:dir { open getattr read search ioctl lock watch watch_reads };
+#line 453
+allow system_server sysfs_rtc:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 453
+
+
+#line 454
+allow system_server sysfs_switch:dir { open getattr read search ioctl lock watch watch_reads };
+#line 454
+allow system_server sysfs_switch:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 454
+
+
+allow system_server sysfs_nfc_power_writable:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server sysfs_power:dir search;
+allow system_server sysfs_power:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server sysfs_thermal:dir search;
+allow system_server sysfs_thermal:file { getattr open read ioctl lock map watch watch_reads };
+allow system_server sysfs_uhid:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server sysfs_uhid:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# TODO: Remove when HALs are forced into separate processes
+allow system_server sysfs_vibrator:file { write append };
+
+# TODO: added to match above sysfs rule. Remove me?
+allow system_server sysfs_usb:file { open append write lock map };
+
+# Access devices.
+allow system_server device:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server mdns_socket:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server sysfs_gpu:file { getattr open read ioctl lock map watch watch_reads };
+allow system_server input_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server input_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server tty_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server usbaccessory_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server video_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server video_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server adbd_socket:sock_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server rtc_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server audio_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server uhid_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server hidraw_device:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server hidraw_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# write access to ALSA interfaces (/dev/snd/*) needed for MIDI
+allow system_server audio_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# tun device used for 3rd party vpn apps and test network manager
+allow system_server tun_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm system_server tun_device:chr_file ioctl { 0x800454d2 0x400454ca 0x400454cd 0x400454e2 };
+
+# Manage data/ota_package
+allow system_server ota_package_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server ota_package_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage system data files.
+allow system_server system_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server system_data_file:{ file lnk_file sock_file fifo_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server packages_list_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server game_mode_intervention_list_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server keychain_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server keychain_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server keychain_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Read the user parent directories like /data/user.  Don't allow write access,
+# as vold is responsible for creating and deleting the subdirectories.
+allow system_server system_userdir_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Manage /data/app.
+allow system_server apk_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server apk_data_file:{ file lnk_file } { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } link };
+allow system_server apk_tmp_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server apk_tmp_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Access input configuration files in the /vendor directory
+
+#line 520
+allow system_server vendor_keylayout_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 520
+allow system_server vendor_keylayout_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 520
+
+
+#line 521
+allow system_server vendor_keychars_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 521
+allow system_server vendor_keychars_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 521
+
+
+#line 522
+allow system_server vendor_idc_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 522
+allow system_server vendor_idc_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 522
+
+
+#line 523
+allow system_server input_device_config_prop:file { getattr open read map };
+#line 523
+
+
+# Access /vendor/{app,framework,overlay}
+
+#line 526
+allow system_server vendor_app_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 526
+allow system_server vendor_app_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 526
+
+
+#line 527
+allow system_server vendor_framework_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 527
+allow system_server vendor_framework_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 527
+
+
+#line 528
+allow system_server vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 528
+allow system_server vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 528
+
+
+# Manage /data/app-private.
+allow system_server apk_private_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server apk_private_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server apk_private_tmp_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server apk_private_tmp_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage files within asec containers.
+allow system_server asec_apk_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server asec_apk_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server asec_public_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/anr.
+#
+# TODO: Some of these permissions can be withdrawn once we've switched to the
+# new stack dumping mechanism, see b/32064548 and the rules below. In particular,
+# the system_server should never need to create a new anr_data_file:file or write
+# to one, but it will still need to read and append to existing files.
+allow system_server anr_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server anr_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# New stack dumping scheme : request an output FD from tombstoned via a unix
+# domain socket.
+#
+# Allow system_server to connect and write to the tombstoned java trace socket in
+# order to dump its traces. Also allow the system server to write its traces to
+# dumpstate during bugreport capture and incidentd during incident collection.
+
+#line 556
+allow system_server tombstoned_java_trace_socket:sock_file write;
+#line 556
+allow system_server tombstoned:unix_stream_socket connectto;
+#line 556
+
+allow system_server tombstoned:fd use;
+allow system_server dumpstate:fifo_file append;
+allow system_server incidentd:fifo_file append;
+# Write to a pipe created from `adb shell` (for debuggerd -j `pidof system_server`)
+#line 563
+
+
+# Allow system_server to read pipes from incidentd (used to deliver incident reports
+# to dropbox)
+allow system_server incidentd:fifo_file read;
+
+# Read /data/misc/incidents - only read. The fd will be sent over binder,
+# with no DAC access to it, for dropbox to read.
+allow system_server incident_data_file:file read;
+
+# Manage /data/misc/prereboot.
+allow system_server prereboot_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server prereboot_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow tracing proxy service to read traces. Only the fd is sent over
+# binder.
+allow system_server perfetto_traces_data_file:file { read getattr };
+allow system_server perfetto:fd use;
+
+# Allow system_server to exec the perfetto cmdline client and pass it a trace config
+
+#line 583
+# Allow the necessary permissions.
+#line 583
+
+#line 583
+# Old domain may exec the file and transition to the new domain.
+#line 583
+allow system_server perfetto_exec:file { getattr open read execute map };
+#line 583
+allow system_server perfetto:process transition;
+#line 583
+# New domain is entered by executing the file.
+#line 583
+allow perfetto perfetto_exec:file { entrypoint open read execute getattr map };
+#line 583
+# New domain can send SIGCHLD to its caller.
+#line 583
+allow perfetto system_server:process sigchld;
+#line 583
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 583
+dontaudit system_server perfetto:process noatsecure;
+#line 583
+# XXX dontaudit candidate but requires further study.
+#line 583
+allow system_server perfetto:process { siginh rlimitinh };
+#line 583
+
+#line 583
+# Make the transition occur by default.
+#line 583
+type_transition system_server perfetto_exec:process perfetto;
+#line 583
+;
+allow system_server perfetto:fifo_file { read write };
+
+# Allow system server to manage perfetto traces for ProfilingService.
+allow system_server perfetto_traces_profiling_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server perfetto_traces_profiling_data_file:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } unlink };
+allow system_server perfetto_traces_data_file:dir search;
+
+# Manage /data/backup.
+allow system_server backup_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server backup_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Write to /data/system/dropbox
+allow system_server dropbox_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server dropbox_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Write to /data/system/heapdump
+allow system_server heapdump_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server heapdump_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/adb.
+allow system_server adb_keys_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server adb_keys_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/appcompat.
+allow system_server appcompat_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server appcompat_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/emergencynumberdb
+allow system_server emergency_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server emergency_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/network_watchlist
+allow system_server network_watchlist_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server network_watchlist_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/sms.
+# TODO:  Split into a separate type?
+allow system_server radio_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server radio_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/systemkeys.
+allow system_server systemkeys_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server systemkeys_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/textclassifier.
+allow system_server textclassifier_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server textclassifier_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/tombstones.
+allow system_server tombstone_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server tombstone_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/vpn.
+allow system_server vpn_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server vpn_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/misc/wifi.
+allow system_server wifi_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server wifi_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/app-staging.
+allow system_server staging_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server staging_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage /data/rollback.
+allow system_server staging_data_file:{ file lnk_file } { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } link };
+
+# Walk /data/data subdirectories.
+allow system_server app_data_file_type:dir { getattr read search };
+
+# Also permit for unlabeled /data/data subdirectories and
+# for unlabeled asec containers on upgrades from 4.2.
+allow system_server unlabeled:dir { open getattr read search ioctl lock watch watch_reads };
+# Read pkg.apk file before it has been relabeled by vold.
+allow system_server unlabeled:file { getattr open read ioctl lock map watch watch_reads };
+
+# Populate com.android.providers.settings/databases/settings.db.
+allow system_server system_app_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server system_app_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Receive and use open app data files passed over binder IPC.
+allow system_server app_data_file_type:file { getattr read write append map };
+
+# Access to /data/media for measuring disk usage.
+allow system_server media_rw_data_file:dir { search getattr open read };
+
+# Receive and use open /data/media files passed over binder IPC.
+# Also used for measuring disk usage.
+allow system_server media_rw_data_file:file { getattr read write append };
+
+# System server needs to setfscreate to packages_list_file when writing
+# /data/system/packages.list
+allow system_server system_server:process setfscreate;
+
+# Relabel apk files.
+allow system_server { apk_tmp_file apk_private_tmp_file }:{ dir file } { relabelfrom relabelto };
+allow system_server { apk_data_file apk_private_data_file }:{ dir file } { relabelfrom relabelto };
+# Allow PackageManager to:
+# 1. rename file from /data/app-staging folder to /data/app
+# 2. relabel files (linked to /data/rollback) under /data/app-staging
+# during staged apk/apex install.
+allow system_server { staging_data_file }:{ dir file } { relabelfrom relabelto };
+
+# Relabel wallpaper.
+allow system_server system_data_file:file relabelfrom;
+allow system_server wallpaper_file:file relabelto;
+allow system_server wallpaper_file:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } rename unlink };
+
+# Backup of wallpaper imagery uses temporary hard links to avoid data churn
+allow system_server { system_data_file wallpaper_file }:file link;
+
+# ShortcutManager icons
+allow system_server system_data_file:dir relabelfrom;
+allow system_server shortcut_manager_icons:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow system_server shortcut_manager_icons:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage ringtones.
+allow system_server ringtone_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow system_server ringtone_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Relabel icon file.
+allow system_server icon_file:file relabelto;
+allow system_server icon_file:file { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } unlink };
+
+# FingerprintService.java does a restorecon of the directory /data/system/users/[0-9]+/fpdata(/.*)?
+allow system_server system_data_file:dir relabelfrom;
+
+# server_configurable_flags_data_file is used for storing server configurable flags which
+# have been reset during current booting. system_server needs to read the data to perform related
+# disaster recovery actions.
+allow system_server server_configurable_flags_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server server_configurable_flags_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Property Service write
+
+#line 718
+
+#line 718
+allow system_server property_socket:sock_file write;
+#line 718
+allow system_server init:unix_stream_socket connectto;
+#line 718
+
+#line 718
+allow system_server system_prop:property_service set;
+#line 718
+
+#line 718
+allow system_server system_prop:file { getattr open read map };
+#line 718
+
+#line 718
+
+
+#line 719
+
+#line 719
+allow system_server property_socket:sock_file write;
+#line 719
+allow system_server init:unix_stream_socket connectto;
+#line 719
+
+#line 719
+allow system_server bootanim_system_prop:property_service set;
+#line 719
+
+#line 719
+allow system_server bootanim_system_prop:file { getattr open read map };
+#line 719
+
+#line 719
+
+
+#line 720
+
+#line 720
+allow system_server property_socket:sock_file write;
+#line 720
+allow system_server init:unix_stream_socket connectto;
+#line 720
+
+#line 720
+allow system_server bluetooth_prop:property_service set;
+#line 720
+
+#line 720
+allow system_server bluetooth_prop:file { getattr open read map };
+#line 720
+
+#line 720
+
+
+#line 721
+
+#line 721
+allow system_server property_socket:sock_file write;
+#line 721
+allow system_server init:unix_stream_socket connectto;
+#line 721
+
+#line 721
+allow system_server exported_system_prop:property_service set;
+#line 721
+
+#line 721
+allow system_server exported_system_prop:file { getattr open read map };
+#line 721
+
+#line 721
+
+
+#line 722
+
+#line 722
+allow system_server property_socket:sock_file write;
+#line 722
+allow system_server init:unix_stream_socket connectto;
+#line 722
+
+#line 722
+allow system_server exported3_system_prop:property_service set;
+#line 722
+
+#line 722
+allow system_server exported3_system_prop:file { getattr open read map };
+#line 722
+
+#line 722
+
+
+#line 723
+
+#line 723
+allow system_server property_socket:sock_file write;
+#line 723
+allow system_server init:unix_stream_socket connectto;
+#line 723
+
+#line 723
+allow system_server safemode_prop:property_service set;
+#line 723
+
+#line 723
+allow system_server safemode_prop:file { getattr open read map };
+#line 723
+
+#line 723
+
+
+#line 724
+
+#line 724
+allow system_server property_socket:sock_file write;
+#line 724
+allow system_server init:unix_stream_socket connectto;
+#line 724
+
+#line 724
+allow system_server theme_prop:property_service set;
+#line 724
+
+#line 724
+allow system_server theme_prop:file { getattr open read map };
+#line 724
+
+#line 724
+
+
+#line 725
+
+#line 725
+allow system_server property_socket:sock_file write;
+#line 725
+allow system_server init:unix_stream_socket connectto;
+#line 725
+
+#line 725
+allow system_server dhcp_prop:property_service set;
+#line 725
+
+#line 725
+allow system_server dhcp_prop:file { getattr open read map };
+#line 725
+
+#line 725
+
+
+#line 726
+
+#line 726
+allow system_server property_socket:sock_file write;
+#line 726
+allow system_server init:unix_stream_socket connectto;
+#line 726
+
+#line 726
+allow system_server net_connectivity_prop:property_service set;
+#line 726
+
+#line 726
+allow system_server net_connectivity_prop:file { getattr open read map };
+#line 726
+
+#line 726
+
+
+#line 727
+
+#line 727
+allow system_server property_socket:sock_file write;
+#line 727
+allow system_server init:unix_stream_socket connectto;
+#line 727
+
+#line 727
+allow system_server net_radio_prop:property_service set;
+#line 727
+
+#line 727
+allow system_server net_radio_prop:file { getattr open read map };
+#line 727
+
+#line 727
+
+
+#line 728
+
+#line 728
+allow system_server property_socket:sock_file write;
+#line 728
+allow system_server init:unix_stream_socket connectto;
+#line 728
+
+#line 728
+allow system_server net_dns_prop:property_service set;
+#line 728
+
+#line 728
+allow system_server net_dns_prop:file { getattr open read map };
+#line 728
+
+#line 728
+
+
+#line 729
+
+#line 729
+allow system_server property_socket:sock_file write;
+#line 729
+allow system_server init:unix_stream_socket connectto;
+#line 729
+
+#line 729
+allow system_server usb_control_prop:property_service set;
+#line 729
+
+#line 729
+allow system_server usb_control_prop:file { getattr open read map };
+#line 729
+
+#line 729
+
+
+#line 730
+
+#line 730
+allow system_server property_socket:sock_file write;
+#line 730
+allow system_server init:unix_stream_socket connectto;
+#line 730
+
+#line 730
+allow system_server usb_prop:property_service set;
+#line 730
+
+#line 730
+allow system_server usb_prop:file { getattr open read map };
+#line 730
+
+#line 730
+
+
+#line 731
+
+#line 731
+allow system_server property_socket:sock_file write;
+#line 731
+allow system_server init:unix_stream_socket connectto;
+#line 731
+
+#line 731
+allow system_server debug_prop:property_service set;
+#line 731
+
+#line 731
+allow system_server debug_prop:file { getattr open read map };
+#line 731
+
+#line 731
+
+
+#line 732
+
+#line 732
+allow system_server property_socket:sock_file write;
+#line 732
+allow system_server init:unix_stream_socket connectto;
+#line 732
+
+#line 732
+allow system_server powerctl_prop:property_service set;
+#line 732
+
+#line 732
+allow system_server powerctl_prop:file { getattr open read map };
+#line 732
+
+#line 732
+
+
+#line 733
+
+#line 733
+allow system_server property_socket:sock_file write;
+#line 733
+allow system_server init:unix_stream_socket connectto;
+#line 733
+
+#line 733
+allow system_server fingerprint_prop:property_service set;
+#line 733
+
+#line 733
+allow system_server fingerprint_prop:file { getattr open read map };
+#line 733
+
+#line 733
+
+
+#line 734
+
+#line 734
+allow system_server property_socket:sock_file write;
+#line 734
+allow system_server init:unix_stream_socket connectto;
+#line 734
+
+#line 734
+allow system_server device_logging_prop:property_service set;
+#line 734
+
+#line 734
+allow system_server device_logging_prop:file { getattr open read map };
+#line 734
+
+#line 734
+
+
+#line 735
+
+#line 735
+allow system_server property_socket:sock_file write;
+#line 735
+allow system_server init:unix_stream_socket connectto;
+#line 735
+
+#line 735
+allow system_server dumpstate_options_prop:property_service set;
+#line 735
+
+#line 735
+allow system_server dumpstate_options_prop:file { getattr open read map };
+#line 735
+
+#line 735
+
+
+#line 736
+
+#line 736
+allow system_server property_socket:sock_file write;
+#line 736
+allow system_server init:unix_stream_socket connectto;
+#line 736
+
+#line 736
+allow system_server overlay_prop:property_service set;
+#line 736
+
+#line 736
+allow system_server overlay_prop:file { getattr open read map };
+#line 736
+
+#line 736
+
+
+#line 737
+
+#line 737
+allow system_server property_socket:sock_file write;
+#line 737
+allow system_server init:unix_stream_socket connectto;
+#line 737
+
+#line 737
+allow system_server exported_overlay_prop:property_service set;
+#line 737
+
+#line 737
+allow system_server exported_overlay_prop:file { getattr open read map };
+#line 737
+
+#line 737
+
+
+#line 738
+
+#line 738
+allow system_server property_socket:sock_file write;
+#line 738
+allow system_server init:unix_stream_socket connectto;
+#line 738
+
+#line 738
+allow system_server pm_prop:property_service set;
+#line 738
+
+#line 738
+allow system_server pm_prop:file { getattr open read map };
+#line 738
+
+#line 738
+
+
+#line 739
+
+#line 739
+allow system_server property_socket:sock_file write;
+#line 739
+allow system_server init:unix_stream_socket connectto;
+#line 739
+
+#line 739
+allow system_server exported_pm_prop:property_service set;
+#line 739
+
+#line 739
+allow system_server exported_pm_prop:file { getattr open read map };
+#line 739
+
+#line 739
+
+
+#line 740
+
+#line 740
+allow system_server property_socket:sock_file write;
+#line 740
+allow system_server init:unix_stream_socket connectto;
+#line 740
+
+#line 740
+allow system_server socket_hook_prop:property_service set;
+#line 740
+
+#line 740
+allow system_server socket_hook_prop:file { getattr open read map };
+#line 740
+
+#line 740
+
+
+#line 741
+
+#line 741
+allow system_server property_socket:sock_file write;
+#line 741
+allow system_server init:unix_stream_socket connectto;
+#line 741
+
+#line 741
+allow system_server audio_prop:property_service set;
+#line 741
+
+#line 741
+allow system_server audio_prop:file { getattr open read map };
+#line 741
+
+#line 741
+
+
+#line 742
+
+#line 742
+allow system_server property_socket:sock_file write;
+#line 742
+allow system_server init:unix_stream_socket connectto;
+#line 742
+
+#line 742
+allow system_server boot_status_prop:property_service set;
+#line 742
+
+#line 742
+allow system_server boot_status_prop:file { getattr open read map };
+#line 742
+
+#line 742
+
+
+#line 743
+
+#line 743
+allow system_server property_socket:sock_file write;
+#line 743
+allow system_server init:unix_stream_socket connectto;
+#line 743
+
+#line 743
+allow system_server surfaceflinger_color_prop:property_service set;
+#line 743
+
+#line 743
+allow system_server surfaceflinger_color_prop:file { getattr open read map };
+#line 743
+
+#line 743
+
+
+#line 744
+
+#line 744
+allow system_server property_socket:sock_file write;
+#line 744
+allow system_server init:unix_stream_socket connectto;
+#line 744
+
+#line 744
+allow system_server provisioned_prop:property_service set;
+#line 744
+
+#line 744
+allow system_server provisioned_prop:file { getattr open read map };
+#line 744
+
+#line 744
+
+
+#line 745
+
+#line 745
+allow system_server property_socket:sock_file write;
+#line 745
+allow system_server init:unix_stream_socket connectto;
+#line 745
+
+#line 745
+allow system_server retaildemo_prop:property_service set;
+#line 745
+
+#line 745
+allow system_server retaildemo_prop:file { getattr open read map };
+#line 745
+
+#line 745
+
+
+#line 746
+
+#line 746
+allow system_server property_socket:sock_file write;
+#line 746
+allow system_server init:unix_stream_socket connectto;
+#line 746
+
+#line 746
+allow system_server dmesgd_start_prop:property_service set;
+#line 746
+
+#line 746
+allow system_server dmesgd_start_prop:file { getattr open read map };
+#line 746
+
+#line 746
+
+
+#line 747
+
+#line 747
+allow system_server property_socket:sock_file write;
+#line 747
+allow system_server init:unix_stream_socket connectto;
+#line 747
+
+#line 747
+allow system_server locale_prop:property_service set;
+#line 747
+
+#line 747
+allow system_server locale_prop:file { getattr open read map };
+#line 747
+
+#line 747
+
+
+#line 748
+
+#line 748
+allow system_server property_socket:sock_file write;
+#line 748
+allow system_server init:unix_stream_socket connectto;
+#line 748
+
+#line 748
+allow system_server timezone_metadata_prop:property_service set;
+#line 748
+
+#line 748
+allow system_server timezone_metadata_prop:file { getattr open read map };
+#line 748
+
+#line 748
+
+
+#line 749
+
+#line 749
+allow system_server property_socket:sock_file write;
+#line 749
+allow system_server init:unix_stream_socket connectto;
+#line 749
+
+#line 749
+allow system_server timezone_prop:property_service set;
+#line 749
+
+#line 749
+allow system_server timezone_prop:file { getattr open read map };
+#line 749
+
+#line 749
+
+
+#line 750
+
+#line 750
+allow system_server property_socket:sock_file write;
+#line 750
+allow system_server init:unix_stream_socket connectto;
+#line 750
+
+#line 750
+allow system_server crashrecovery_prop:property_service set;
+#line 750
+
+#line 750
+allow system_server crashrecovery_prop:file { getattr open read map };
+#line 750
+
+#line 750
+
+
+
+
+# ctl interface
+
+#line 755
+
+#line 755
+allow system_server property_socket:sock_file write;
+#line 755
+allow system_server init:unix_stream_socket connectto;
+#line 755
+
+#line 755
+allow system_server ctl_default_prop:property_service set;
+#line 755
+
+#line 755
+allow system_server ctl_default_prop:file { getattr open read map };
+#line 755
+
+#line 755
+
+
+#line 756
+
+#line 756
+allow system_server property_socket:sock_file write;
+#line 756
+allow system_server init:unix_stream_socket connectto;
+#line 756
+
+#line 756
+allow system_server ctl_bugreport_prop:property_service set;
+#line 756
+
+#line 756
+allow system_server ctl_bugreport_prop:file { getattr open read map };
+#line 756
+
+#line 756
+
+
+#line 757
+
+#line 757
+allow system_server property_socket:sock_file write;
+#line 757
+allow system_server init:unix_stream_socket connectto;
+#line 757
+
+#line 757
+allow system_server ctl_gsid_prop:property_service set;
+#line 757
+
+#line 757
+allow system_server ctl_gsid_prop:file { getattr open read map };
+#line 757
+
+#line 757
+
+
+# cppreopt property
+
+#line 760
+
+#line 760
+allow system_server property_socket:sock_file write;
+#line 760
+allow system_server init:unix_stream_socket connectto;
+#line 760
+
+#line 760
+allow system_server cppreopt_prop:property_service set;
+#line 760
+
+#line 760
+allow system_server cppreopt_prop:file { getattr open read map };
+#line 760
+
+#line 760
+
+
+# server configurable flags properties
+
+#line 763
+
+#line 763
+allow system_server property_socket:sock_file write;
+#line 763
+allow system_server init:unix_stream_socket connectto;
+#line 763
+
+#line 763
+allow system_server device_config_core_experiments_team_internal_prop:property_service set;
+#line 763
+
+#line 763
+allow system_server device_config_core_experiments_team_internal_prop:file { getattr open read map };
+#line 763
+
+#line 763
+
+
+#line 764
+
+#line 764
+allow system_server property_socket:sock_file write;
+#line 764
+allow system_server init:unix_stream_socket connectto;
+#line 764
+
+#line 764
+allow system_server device_config_edgetpu_native_prop:property_service set;
+#line 764
+
+#line 764
+allow system_server device_config_edgetpu_native_prop:file { getattr open read map };
+#line 764
+
+#line 764
+
+
+#line 765
+
+#line 765
+allow system_server property_socket:sock_file write;
+#line 765
+allow system_server init:unix_stream_socket connectto;
+#line 765
+
+#line 765
+allow system_server device_config_input_native_boot_prop:property_service set;
+#line 765
+
+#line 765
+allow system_server device_config_input_native_boot_prop:file { getattr open read map };
+#line 765
+
+#line 765
+
+
+#line 766
+
+#line 766
+allow system_server property_socket:sock_file write;
+#line 766
+allow system_server init:unix_stream_socket connectto;
+#line 766
+
+#line 766
+allow system_server device_config_netd_native_prop:property_service set;
+#line 766
+
+#line 766
+allow system_server device_config_netd_native_prop:file { getattr open read map };
+#line 766
+
+#line 766
+
+
+#line 767
+
+#line 767
+allow system_server property_socket:sock_file write;
+#line 767
+allow system_server init:unix_stream_socket connectto;
+#line 767
+
+#line 767
+allow system_server device_config_nnapi_native_prop:property_service set;
+#line 767
+
+#line 767
+allow system_server device_config_nnapi_native_prop:file { getattr open read map };
+#line 767
+
+#line 767
+
+
+#line 768
+
+#line 768
+allow system_server property_socket:sock_file write;
+#line 768
+allow system_server init:unix_stream_socket connectto;
+#line 768
+
+#line 768
+allow system_server device_config_activity_manager_native_boot_prop:property_service set;
+#line 768
+
+#line 768
+allow system_server device_config_activity_manager_native_boot_prop:file { getattr open read map };
+#line 768
+
+#line 768
+
+
+#line 769
+
+#line 769
+allow system_server property_socket:sock_file write;
+#line 769
+allow system_server init:unix_stream_socket connectto;
+#line 769
+
+#line 769
+allow system_server device_config_runtime_native_boot_prop:property_service set;
+#line 769
+
+#line 769
+allow system_server device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 769
+
+#line 769
+
+
+#line 770
+
+#line 770
+allow system_server property_socket:sock_file write;
+#line 770
+allow system_server init:unix_stream_socket connectto;
+#line 770
+
+#line 770
+allow system_server device_config_runtime_native_prop:property_service set;
+#line 770
+
+#line 770
+allow system_server device_config_runtime_native_prop:file { getattr open read map };
+#line 770
+
+#line 770
+
+
+#line 771
+
+#line 771
+allow system_server property_socket:sock_file write;
+#line 771
+allow system_server init:unix_stream_socket connectto;
+#line 771
+
+#line 771
+allow system_server device_config_lmkd_native_prop:property_service set;
+#line 771
+
+#line 771
+allow system_server device_config_lmkd_native_prop:file { getattr open read map };
+#line 771
+
+#line 771
+
+
+#line 772
+
+#line 772
+allow system_server property_socket:sock_file write;
+#line 772
+allow system_server init:unix_stream_socket connectto;
+#line 772
+
+#line 772
+allow system_server device_config_media_native_prop:property_service set;
+#line 772
+
+#line 772
+allow system_server device_config_media_native_prop:file { getattr open read map };
+#line 772
+
+#line 772
+
+
+#line 773
+
+#line 773
+allow system_server property_socket:sock_file write;
+#line 773
+allow system_server init:unix_stream_socket connectto;
+#line 773
+
+#line 773
+allow system_server device_config_camera_native_prop:property_service set;
+#line 773
+
+#line 773
+allow system_server device_config_camera_native_prop:file { getattr open read map };
+#line 773
+
+#line 773
+
+
+#line 774
+
+#line 774
+allow system_server property_socket:sock_file write;
+#line 774
+allow system_server init:unix_stream_socket connectto;
+#line 774
+
+#line 774
+allow system_server device_config_mglru_native_prop:property_service set;
+#line 774
+
+#line 774
+allow system_server device_config_mglru_native_prop:file { getattr open read map };
+#line 774
+
+#line 774
+
+
+#line 775
+
+#line 775
+allow system_server property_socket:sock_file write;
+#line 775
+allow system_server init:unix_stream_socket connectto;
+#line 775
+
+#line 775
+allow system_server device_config_profcollect_native_boot_prop:property_service set;
+#line 775
+
+#line 775
+allow system_server device_config_profcollect_native_boot_prop:file { getattr open read map };
+#line 775
+
+#line 775
+
+
+#line 776
+
+#line 776
+allow system_server property_socket:sock_file write;
+#line 776
+allow system_server init:unix_stream_socket connectto;
+#line 776
+
+#line 776
+allow system_server device_config_statsd_native_prop:property_service set;
+#line 776
+
+#line 776
+allow system_server device_config_statsd_native_prop:file { getattr open read map };
+#line 776
+
+#line 776
+
+
+#line 777
+
+#line 777
+allow system_server property_socket:sock_file write;
+#line 777
+allow system_server init:unix_stream_socket connectto;
+#line 777
+
+#line 777
+allow system_server device_config_statsd_native_boot_prop:property_service set;
+#line 777
+
+#line 777
+allow system_server device_config_statsd_native_boot_prop:file { getattr open read map };
+#line 777
+
+#line 777
+
+
+#line 778
+
+#line 778
+allow system_server property_socket:sock_file write;
+#line 778
+allow system_server init:unix_stream_socket connectto;
+#line 778
+
+#line 778
+allow system_server device_config_storage_native_boot_prop:property_service set;
+#line 778
+
+#line 778
+allow system_server device_config_storage_native_boot_prop:file { getattr open read map };
+#line 778
+
+#line 778
+
+
+#line 779
+
+#line 779
+allow system_server property_socket:sock_file write;
+#line 779
+allow system_server init:unix_stream_socket connectto;
+#line 779
+
+#line 779
+allow system_server device_config_swcodec_native_prop:property_service set;
+#line 779
+
+#line 779
+allow system_server device_config_swcodec_native_prop:file { getattr open read map };
+#line 779
+
+#line 779
+
+
+#line 780
+
+#line 780
+allow system_server property_socket:sock_file write;
+#line 780
+allow system_server init:unix_stream_socket connectto;
+#line 780
+
+#line 780
+allow system_server device_config_sys_traced_prop:property_service set;
+#line 780
+
+#line 780
+allow system_server device_config_sys_traced_prop:file { getattr open read map };
+#line 780
+
+#line 780
+
+
+#line 781
+
+#line 781
+allow system_server property_socket:sock_file write;
+#line 781
+allow system_server init:unix_stream_socket connectto;
+#line 781
+
+#line 781
+allow system_server device_config_window_manager_native_boot_prop:property_service set;
+#line 781
+
+#line 781
+allow system_server device_config_window_manager_native_boot_prop:file { getattr open read map };
+#line 781
+
+#line 781
+
+
+#line 782
+
+#line 782
+allow system_server property_socket:sock_file write;
+#line 782
+allow system_server init:unix_stream_socket connectto;
+#line 782
+
+#line 782
+allow system_server device_config_configuration_prop:property_service set;
+#line 782
+
+#line 782
+allow system_server device_config_configuration_prop:file { getattr open read map };
+#line 782
+
+#line 782
+
+
+#line 783
+
+#line 783
+allow system_server property_socket:sock_file write;
+#line 783
+allow system_server init:unix_stream_socket connectto;
+#line 783
+
+#line 783
+allow system_server device_config_connectivity_prop:property_service set;
+#line 783
+
+#line 783
+allow system_server device_config_connectivity_prop:file { getattr open read map };
+#line 783
+
+#line 783
+
+
+#line 784
+
+#line 784
+allow system_server property_socket:sock_file write;
+#line 784
+allow system_server init:unix_stream_socket connectto;
+#line 784
+
+#line 784
+allow system_server device_config_surface_flinger_native_boot_prop:property_service set;
+#line 784
+
+#line 784
+allow system_server device_config_surface_flinger_native_boot_prop:file { getattr open read map };
+#line 784
+
+#line 784
+
+
+#line 785
+
+#line 785
+allow system_server property_socket:sock_file write;
+#line 785
+allow system_server init:unix_stream_socket connectto;
+#line 785
+
+#line 785
+allow system_server device_config_aconfig_flags_prop:property_service set;
+#line 785
+
+#line 785
+allow system_server device_config_aconfig_flags_prop:file { getattr open read map };
+#line 785
+
+#line 785
+
+
+#line 786
+
+#line 786
+allow system_server property_socket:sock_file write;
+#line 786
+allow system_server init:unix_stream_socket connectto;
+#line 786
+
+#line 786
+allow system_server device_config_vendor_system_native_prop:property_service set;
+#line 786
+
+#line 786
+allow system_server device_config_vendor_system_native_prop:file { getattr open read map };
+#line 786
+
+#line 786
+
+
+#line 787
+
+#line 787
+allow system_server property_socket:sock_file write;
+#line 787
+allow system_server init:unix_stream_socket connectto;
+#line 787
+
+#line 787
+allow system_server device_config_vendor_system_native_boot_prop:property_service set;
+#line 787
+
+#line 787
+allow system_server device_config_vendor_system_native_boot_prop:file { getattr open read map };
+#line 787
+
+#line 787
+
+
+#line 788
+
+#line 788
+allow system_server property_socket:sock_file write;
+#line 788
+allow system_server init:unix_stream_socket connectto;
+#line 788
+
+#line 788
+allow system_server device_config_virtualization_framework_native_prop:property_service set;
+#line 788
+
+#line 788
+allow system_server device_config_virtualization_framework_native_prop:file { getattr open read map };
+#line 788
+
+#line 788
+
+
+#line 789
+
+#line 789
+allow system_server property_socket:sock_file write;
+#line 789
+allow system_server init:unix_stream_socket connectto;
+#line 789
+
+#line 789
+allow system_server device_config_memory_safety_native_boot_prop:property_service set;
+#line 789
+
+#line 789
+allow system_server device_config_memory_safety_native_boot_prop:file { getattr open read map };
+#line 789
+
+#line 789
+
+
+#line 790
+
+#line 790
+allow system_server property_socket:sock_file write;
+#line 790
+allow system_server init:unix_stream_socket connectto;
+#line 790
+
+#line 790
+allow system_server device_config_memory_safety_native_prop:property_service set;
+#line 790
+
+#line 790
+allow system_server device_config_memory_safety_native_prop:file { getattr open read map };
+#line 790
+
+#line 790
+
+
+#line 791
+
+#line 791
+allow system_server property_socket:sock_file write;
+#line 791
+allow system_server init:unix_stream_socket connectto;
+#line 791
+
+#line 791
+allow system_server device_config_remote_key_provisioning_native_prop:property_service set;
+#line 791
+
+#line 791
+allow system_server device_config_remote_key_provisioning_native_prop:file { getattr open read map };
+#line 791
+
+#line 791
+
+
+#line 792
+
+#line 792
+allow system_server property_socket:sock_file write;
+#line 792
+allow system_server init:unix_stream_socket connectto;
+#line 792
+
+#line 792
+allow system_server device_config_tethering_u_or_later_native_prop:property_service set;
+#line 792
+
+#line 792
+allow system_server device_config_tethering_u_or_later_native_prop:file { getattr open read map };
+#line 792
+
+#line 792
+
+
+#line 793
+
+#line 793
+allow system_server property_socket:sock_file write;
+#line 793
+allow system_server init:unix_stream_socket connectto;
+#line 793
+
+#line 793
+allow system_server smart_idle_maint_enabled_prop:property_service set;
+#line 793
+
+#line 793
+allow system_server smart_idle_maint_enabled_prop:file { getattr open read map };
+#line 793
+
+#line 793
+
+
+#line 794
+
+#line 794
+allow system_server property_socket:sock_file write;
+#line 794
+allow system_server init:unix_stream_socket connectto;
+#line 794
+
+#line 794
+allow system_server arm64_memtag_prop:property_service set;
+#line 794
+
+#line 794
+allow system_server arm64_memtag_prop:file { getattr open read map };
+#line 794
+
+#line 794
+
+
+# staged flag properties
+
+#line 797
+
+#line 797
+allow system_server property_socket:sock_file write;
+#line 797
+allow system_server init:unix_stream_socket connectto;
+#line 797
+
+#line 797
+allow system_server next_boot_prop:property_service set;
+#line 797
+
+#line 797
+allow system_server next_boot_prop:file { getattr open read map };
+#line 797
+
+#line 797
+
+
+# Allow query ART device config properties
+
+#line 800
+allow system_server device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 800
+
+
+#line 801
+allow system_server device_config_runtime_native_prop:file { getattr open read map };
+#line 801
+
+
+# BootReceiver to read ro.boot.bootreason
+
+#line 804
+allow system_server bootloader_boot_reason_prop:file { getattr open read map };
+#line 804
+
+# PowerManager to read sys.boot.reason
+
+#line 806
+allow system_server system_boot_reason_prop:file { getattr open read map };
+#line 806
+
+
+# Collect metrics on boot time created by init
+
+#line 809
+allow system_server boottime_prop:file { getattr open read map };
+#line 809
+
+
+# Read device's serial number from system properties
+
+#line 812
+allow system_server serialno_prop:file { getattr open read map };
+#line 812
+
+
+# Read/write the property which keeps track of whether this is the first start of system_server
+
+#line 815
+
+#line 815
+allow system_server property_socket:sock_file write;
+#line 815
+allow system_server init:unix_stream_socket connectto;
+#line 815
+
+#line 815
+allow system_server firstboot_prop:property_service set;
+#line 815
+
+#line 815
+allow system_server firstboot_prop:file { getattr open read map };
+#line 815
+
+#line 815
+
+
+# Audio service in system server can read audio config properties,
+# such as camera shutter enforcement
+
+#line 819
+allow system_server audio_config_prop:file { getattr open read map };
+#line 819
+
+
+# StorageManager service reads media config while checking if transcoding is supported.
+
+#line 822
+allow system_server media_config_prop:file { getattr open read map };
+#line 822
+
+
+# system server reads this property to keep track of whether server configurable flags have been
+# reset during current boot.
+
+#line 826
+allow system_server device_config_reset_performed_prop:file { getattr open read map };
+#line 826
+
+
+# Read/write the property that enables Test Harness Mode
+
+#line 829
+
+#line 829
+allow system_server property_socket:sock_file write;
+#line 829
+allow system_server init:unix_stream_socket connectto;
+#line 829
+
+#line 829
+allow system_server test_harness_prop:property_service set;
+#line 829
+
+#line 829
+allow system_server test_harness_prop:file { getattr open read map };
+#line 829
+
+#line 829
+
+
+# Read gsid.image_running.
+
+#line 832
+allow system_server gsid_prop:file { getattr open read map };
+#line 832
+
+
+# Read the property that mocks an OTA
+
+#line 835
+allow system_server mock_ota_prop:file { getattr open read map };
+#line 835
+
+
+# Read the property as feature flag for protecting apks with fs-verity.
+
+#line 838
+allow system_server apk_verity_prop:file { getattr open read map };
+#line 838
+
+
+# Read wifi.interface
+
+#line 841
+allow system_server wifi_prop:file { getattr open read map };
+#line 841
+
+
+# Read the vendor property that indicates if Incremental features is enabled
+
+#line 844
+allow system_server incremental_prop:file { getattr open read map };
+#line 844
+
+
+# Read ro.zram. properties
+
+#line 847
+allow system_server zram_config_prop:file { getattr open read map };
+#line 847
+
+
+# Read/write persist.sys.zram_enabled
+
+#line 850
+
+#line 850
+allow system_server property_socket:sock_file write;
+#line 850
+allow system_server init:unix_stream_socket connectto;
+#line 850
+
+#line 850
+allow system_server zram_control_prop:property_service set;
+#line 850
+
+#line 850
+allow system_server zram_control_prop:file { getattr open read map };
+#line 850
+
+#line 850
+
+
+# Read/write persist.sys.dalvik.vm.lib.2
+
+#line 853
+
+#line 853
+allow system_server property_socket:sock_file write;
+#line 853
+allow system_server init:unix_stream_socket connectto;
+#line 853
+
+#line 853
+allow system_server dalvik_runtime_prop:property_service set;
+#line 853
+
+#line 853
+allow system_server dalvik_runtime_prop:file { getattr open read map };
+#line 853
+
+#line 853
+
+
+# Read ro.control_privapp_permissions and ro.cp_system_other_odex
+
+#line 856
+allow system_server packagemanager_config_prop:file { getattr open read map };
+#line 856
+
+
+# Read the net.464xlat.cellular.enabled property (written by init).
+
+#line 859
+allow system_server net_464xlat_fromvendor_prop:file { getattr open read map };
+#line 859
+
+
+# Read hypervisor capabilities ro.boot.hypervisor.*
+
+#line 862
+allow system_server hypervisor_prop:file { getattr open read map };
+#line 862
+
+
+# Read persist.wm.debug. properties
+
+#line 865
+allow system_server persist_wm_debug_prop:file { getattr open read map };
+#line 865
+
+
+# Read persist.sysui.notification.builder_extras_override property
+
+#line 868
+allow system_server persist_sysui_builder_extras_prop:file { getattr open read map };
+#line 868
+
+# Read persist.sysui.notification.ranking_update_ashmem property
+
+#line 870
+allow system_server persist_sysui_ranking_update_prop:file { getattr open read map };
+#line 870
+
+
+# Read ro.tuner.lazyhal
+
+#line 873
+allow system_server tuner_config_prop:file { getattr open read map };
+#line 873
+
+# Write tuner.server.enable
+
+#line 875
+
+#line 875
+allow system_server property_socket:sock_file write;
+#line 875
+allow system_server init:unix_stream_socket connectto;
+#line 875
+
+#line 875
+allow system_server tuner_server_ctl_prop:property_service set;
+#line 875
+
+#line 875
+allow system_server tuner_server_ctl_prop:file { getattr open read map };
+#line 875
+
+#line 875
+
+
+# Allow the heap dump ART plugin to the count of sessions waiting for OOME
+
+#line 878
+allow system_server traced_oome_heap_session_count_prop:file { getattr open read map };
+#line 878
+
+
+# Allow the sensor service (running in the system service) to read sensor
+# configuration properties
+
+#line 882
+allow system_server sensors_config_prop:file { getattr open read map };
+#line 882
+
+
+# Create a socket for connections from debuggerd.
+allow system_server system_ndebug_socket:sock_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Create a socket for connections from zygotes.
+allow system_server system_unsolzygote_socket:sock_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Manage cache files.
+allow system_server cache_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow system_server { cache_file cache_recovery_file }:dir { relabelfrom { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } };
+allow system_server { cache_file cache_recovery_file }:file { relabelfrom { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } };
+allow system_server { cache_file cache_recovery_file }:fifo_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow system_server system_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server system_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# ART locks profile files.
+allow system_server system_file:file lock;
+
+# LocationManager(e.g, GPS) needs to read and write
+# to uart driver and ctrl proc entry
+allow system_server gps_control:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow system_server to use app-created sockets and pipes.
+allow system_server appdomain:{ tcp_socket udp_socket } { getattr getopt setopt read write shutdown };
+allow system_server appdomain:{ fifo_file unix_stream_socket } { getattr read write };
+
+# BackupManagerService needs to manipulate backup data files
+allow system_server cache_backup_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server cache_backup_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# LocalTransport works inside /cache/backup
+allow system_server cache_private_backup_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server cache_private_backup_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow system to talk to usb device
+allow system_server usb_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_server usb_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Read and delete files under /dev/fscklogs.
+
+#line 922
+allow system_server fscklogs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 922
+allow system_server fscklogs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 922
+
+allow system_server fscklogs:dir { write remove_name add_name };
+allow system_server fscklogs:file rename;
+
+# logd access, system_server inherit logd write socket
+# (urge is to deprecate this long term)
+allow system_server zygote:unix_dgram_socket write;
+
+# Read from log daemon.
+
+#line 931
+allow system_server logcat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+#line 931
+
+#line 931
+allow system_server logdr_socket:sock_file write;
+#line 931
+allow system_server logd:unix_stream_socket connectto;
+#line 931
+
+#line 931
+
+
+#line 932
+allow system_server runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 932
+
+
+# Be consistent with DAC permissions. Allow system_server to write to
+# /sys/module/lowmemorykiller/parameters/adj
+# /sys/module/lowmemorykiller/parameters/minfree
+allow system_server sysfs_lowmemorykiller:file { getattr { open append write lock map } };
+
+# Read /sys/fs/pstore/console-ramoops
+# Don't worry about overly broad permissions for now, as there's
+# only one file in /sys/fs/pstore
+allow system_server pstorefs:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server pstorefs:file { getattr open read ioctl lock map watch watch_reads };
+
+# /sys access
+allow system_server sysfs_zram:dir search;
+allow system_server sysfs_zram:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Read /sys/fs/selinux/policy
+allow system_server kernel:security read_policy;
+
+
+#line 952
+  allow system_server system_server_service:service_manager { add find };
+#line 952
+  neverallow { domain -system_server } system_server_service:service_manager add;
+#line 952
+
+#line 952
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 952
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 952
+  
+#line 952
+;
+allow system_server artd_service:service_manager find;
+allow system_server artd_pre_reboot_service:service_manager find;
+allow system_server audioserver_service:service_manager find;
+allow system_server authorization_service:service_manager find;
+allow system_server batteryproperties_service:service_manager find;
+allow system_server cameraserver_service:service_manager find;
+allow system_server compos_service:service_manager find;
+allow system_server dataloader_manager_service:service_manager find;
+allow system_server dexopt_chroot_setup_service:service_manager find;
+allow system_server dnsresolver_service:service_manager find;
+allow system_server drmserver_service:service_manager find;
+allow system_server dumpstate_service:service_manager find;
+allow system_server fingerprintd_service:service_manager find;
+allow system_server gatekeeper_service:service_manager find;
+allow system_server gpu_service:service_manager find;
+allow system_server gsi_service:service_manager find;
+allow system_server idmap_service:service_manager find;
+allow system_server incident_service:service_manager find;
+allow system_server incremental_service:service_manager find;
+allow system_server installd_service:service_manager find;
+allow system_server keystore_maintenance_service:service_manager find;
+allow system_server keystore_metrics_service:service_manager find;
+allow system_server keystore_service:service_manager find;
+allow system_server mdns_service:service_manager find;
+allow system_server mediaserver_service:service_manager find;
+allow system_server mediametrics_service:service_manager find;
+allow system_server mediaextractor_service:service_manager find;
+allow system_server mediadrmserver_service:service_manager find;
+allow system_server mediatuner_service:service_manager find;
+allow system_server netd_service:service_manager find;
+allow system_server nfc_service:service_manager find;
+allow system_server ot_daemon_service:service_manager find;
+allow system_server radio_service:service_manager find;
+allow system_server stats_service:service_manager find;
+allow system_server storaged_service:service_manager find;
+allow system_server surfaceflinger_service:service_manager find;
+allow system_server update_engine_service:service_manager find;
+allow system_server virtual_camera_service:service_manager find;
+#line 993
+
+allow system_server vold_service:service_manager find;
+allow system_server wifinl80211_service:service_manager find;
+allow system_server logd_service:service_manager find;
+#line 999
+
+
+
+#line 1001
+  allow system_server batteryproperties_service:service_manager { add find };
+#line 1001
+  neverallow { domain -system_server } batteryproperties_service:service_manager add;
+#line 1001
+
+#line 1001
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 1001
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 1001
+  
+#line 1001
+
+
+allow system_server keystore:keystore2 {
+	add_auth
+	change_password
+	change_user
+	clear_ns
+	clear_uid
+	get_last_auth_time
+	lock
+	pull_metrics
+	reset
+	unlock
+};
+
+allow system_server keystore:keystore2_key {
+	delete
+	use_dev_id
+	grant
+	get_info
+	rebind
+	update
+	use
+};
+
+# Allow Wifi module to manage Wi-Fi keys.
+allow system_server wifi_key:keystore2_key {
+	delete
+	get_info
+	rebind
+	update
+	use
+};
+
+# Allow lock_settings service to manage RoR keys.
+allow system_server resume_on_reboot_key:keystore2_key {
+	delete
+	get_info
+	rebind
+	update
+	use
+};
+
+# Allow lock_settings service to manage locksettings keys (e.g. the synthetic password key).
+allow system_server locksettings_key:keystore2_key {
+	delete
+	get_info
+	rebind
+	update
+	use
+};
+
+
+# Allow system server to search and write to the persistent factory reset
+# protection partition. This block device does not get wiped in a factory reset.
+allow system_server block_device:dir search;
+allow system_server frp_block_device:blk_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allowxperm system_server frp_block_device:blk_file ioctl { 0x0000127d 0x00001277 };
+
+# Create new process groups and clean up old cgroups
+allow system_server cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server cgroup:file setattr;
+allow system_server cgroup_v2:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server cgroup_v2:file { { getattr open read ioctl lock map watch watch_reads } setattr };
+
+# /oem access
+
+#line 1067
+allow system_server oemfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1067
+allow system_server oemfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 1067
+
+
+# Allow resolving per-user storage symlinks
+allow system_server { mnt_user_file storage_file }:dir { getattr search };
+allow system_server { mnt_user_file storage_file }:lnk_file { getattr read };
+
+# Allow statfs() on storage devices, which happens fast enough that
+# we shouldn't be killed during unsafe removal
+allow system_server { sdcard_type fuse }:dir { getattr search };
+
+# Traverse into expanded storage
+allow system_server mnt_expand_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow system process to relabel the fingerprint directory after mkdir
+# and delete the directory and files when no longer needed
+allow system_server fingerprintd_data_file:dir { { open getattr read search ioctl lock watch watch_reads } remove_name rmdir relabelto write };
+allow system_server fingerprintd_data_file:file { getattr unlink };
+
+#line 1100
+
+
+# For AppFuse.
+allow system_server vold:fd use;
+allow system_server fuse_device:chr_file { read write ioctl getattr };
+allow system_server app_fuse_file:file { read write getattr };
+
+# For configuring sdcardfs
+allow system_server configfs:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } };
+allow system_server configfs:file { getattr open create unlink write };
+
+# Connect to adbd and use a socket transferred from it.
+# Used for e.g. jdwp.
+allow system_server adbd:unix_stream_socket connectto;
+allow system_server adbd:fd use;
+allow system_server adbd:unix_stream_socket { getattr getopt ioctl read write shutdown };
+
+# Read service.adb.tls.port, persist.adb.wifi. properties
+
+#line 1118
+allow system_server adbd_prop:file { getattr open read map };
+#line 1118
+
+
+# Set persist.adb.tls_server.enable property
+
+#line 1121
+
+#line 1121
+allow system_server property_socket:sock_file write;
+#line 1121
+allow system_server init:unix_stream_socket connectto;
+#line 1121
+
+#line 1121
+allow system_server system_adbd_prop:property_service set;
+#line 1121
+
+#line 1121
+allow system_server system_adbd_prop:file { getattr open read map };
+#line 1121
+
+#line 1121
+
+
+# Allow invoking tools like "timeout"
+allow system_server toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow system process to setup fs-verity
+allowxperm system_server { apk_data_file apk_tmp_file system_data_file apex_system_server_data_file }:file ioctl 0x6685;
+
+# Allow system process to measure fs-verity for apps, including those being installed
+allowxperm system_server { apk_data_file apk_tmp_file }:file ioctl 0x6686;
+allowxperm system_server apk_tmp_file:file ioctl 0x40086602;
+
+# Postinstall
+#
+# For OTA dexopt, allow calls coming from postinstall.
+
+#line 1136
+# Call the server domain and optionally transfer references to it.
+#line 1136
+allow system_server postinstall:binder { call transfer };
+#line 1136
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1136
+allow postinstall system_server:binder transfer;
+#line 1136
+# Receive and use open files from the server.
+#line 1136
+allow system_server postinstall:fd use;
+#line 1136
+
+
+allow system_server postinstall:fifo_file write;
+allow system_server update_engine:fd use;
+allow system_server update_engine:fifo_file write;
+
+# Access to /data/preloads
+allow system_server preloads_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+allow system_server preloads_data_file:dir { { open getattr read search ioctl lock watch watch_reads } write remove_name rmdir };
+allow system_server preloads_media_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+allow system_server preloads_media_file:dir { { open getattr read search ioctl lock watch watch_reads } write remove_name rmdir };
+
+
+#line 1148
+allow system_server cgroup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1148
+allow system_server cgroup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 1148
+
+
+#line 1149
+allow system_server cgroup_v2:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1149
+allow system_server cgroup_v2:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 1149
+
+allow system_server ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+# Access to /dev/dma_heap/system
+allow system_server dmabuf_system_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+# Access to /dev/dma_heap/system-secure
+allow system_server dmabuf_system_secure_heap_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 1157
+allow system_server proc_asound:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1157
+allow system_server proc_asound:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 1157
+
+
+#line 1158
+allow system_server proc_net_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1158
+allow system_server proc_net_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 1158
+
+
+#line 1159
+allow system_server proc_qtaguid_stat:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1159
+allow system_server proc_qtaguid_stat:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 1159
+
+allow system_server {
+  proc_cmdline
+  proc_loadavg
+  proc_locks
+  proc_meminfo
+  proc_pagetypeinfo
+  proc_pipe_conf
+  proc_stat
+  proc_uid_cputime_showstat
+  proc_uid_io_stats
+  proc_uid_time_in_state
+  proc_uid_concurrent_active_time
+  proc_uid_concurrent_policy_time
+  proc_version
+  proc_vmallocinfo
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+allow system_server proc_uid_time_in_state:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server proc_uid_cpupower:file { getattr open read ioctl lock map watch watch_reads };
+
+
+#line 1180
+allow system_server rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 1180
+allow system_server rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 1180
+
+
+# Allow WifiService to start, stop, and read wifi-specific trace events.
+allow system_server debugfs_tracing_instances:dir search;
+allow system_server debugfs_wifi_tracing:dir search;
+allow system_server debugfs_wifi_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Allow BootReceiver to watch trace error_report events.
+allow system_server debugfs_bootreceiver_tracing:dir search;
+allow system_server debugfs_bootreceiver_tracing:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow system_server to read tracepoint ids in order to attach BPF programs to them.
+allow system_server debugfs_tracing:file { getattr open read ioctl lock map watch watch_reads };
+
+# allow system_server to exec shell, asanwrapper & zygote(app_process) on ASAN builds. Needed to run
+# asanwrapper.
+#line 1200
+
+
+# allow system_server to read the eBPF maps that stores the traffic stats information and update
+# the map after snapshot is recorded, and to read, update and run the maps and programs used for
+# time in state accounting
+allow system_server { fs_bpf fs_bpf_net_shared fs_bpf_netd_readonly fs_bpf_netd_shared }:dir search;
+allow system_server { fs_bpf fs_bpf_net_shared fs_bpf_netd_readonly fs_bpf_netd_shared }:file { getattr read write };
+allow system_server bpfloader:bpf { map_read map_write prog_run };
+# in order to invoke side effect of close() on such a socket calling synchronize_rcu()
+allow system_server self:key_socket create;
+# Java's Os.close() in libcore/luni/src/main/java/libcore/io/BlockGuardOs.java;l=100
+# calls if (fd.isSocket$()) if (isLingerSocket(fd)) ...
+dontaudit system_server self:key_socket getopt;
+
+# Allow system_server to start clatd in its own domain and kill it.
+
+#line 1215
+# Allow the necessary permissions.
+#line 1215
+
+#line 1215
+# Old domain may exec the file and transition to the new domain.
+#line 1215
+allow system_server clatd_exec:file { getattr open read execute map };
+#line 1215
+allow system_server clatd:process transition;
+#line 1215
+# New domain is entered by executing the file.
+#line 1215
+allow clatd clatd_exec:file { entrypoint open read execute getattr map };
+#line 1215
+# New domain can send SIGCHLD to its caller.
+#line 1215
+allow clatd system_server:process sigchld;
+#line 1215
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 1215
+dontaudit system_server clatd:process noatsecure;
+#line 1215
+# XXX dontaudit candidate but requires further study.
+#line 1215
+allow system_server clatd:process { siginh rlimitinh };
+#line 1215
+
+#line 1215
+# Make the transition occur by default.
+#line 1215
+type_transition system_server clatd_exec:process clatd;
+#line 1215
+
+allow system_server clatd:process { sigkill signal };
+
+# ART Profiles.
+# Allow system_server to open profile snapshots for read.
+# System server never reads the actual content. It passes the descriptor to
+# to privileged apps which acquire the permissions to inspect the profiles.
+allow system_server { user_profile_root_file user_profile_data_file}:dir { getattr search };
+allow system_server user_profile_data_file:file { getattr open read };
+
+# System server may dump profile data for debuggable apps in the /data/misc/profman.
+# As such it needs to be able create files but it should never read from them.
+# It also needs to stat the directory to check if it has the right permissions.
+allow system_server profman_dump_data_file:file { create getattr setattr { open append write lock map }};
+allow system_server profman_dump_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# On userdebug build we may profile system server. Allow it to write and create its own profile.
+#line 1235
+
+# Allow system server to load JVMTI agents under control of a property.
+
+#line 1237
+allow system_server system_jvmti_agent_prop:file { getattr open read map };
+#line 1237
+
+
+# UsbDeviceManager uses /dev/usb-ffs
+allow system_server functionfs:dir search;
+allow system_server functionfs:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# system_server contains time / time zone detection logic so reads the associated properties.
+
+#line 1244
+allow system_server time_prop:file { getattr open read map };
+#line 1244
+
+
+# system_server reads this property to know it should expect the lmkd sends notification to it
+# on low memory kills.
+
+#line 1248
+allow system_server system_lmk_prop:file { getattr open read map };
+#line 1248
+
+
+
+#line 1250
+allow system_server wifi_config_prop:file { getattr open read map };
+#line 1250
+
+
+# Only system server can access BINDER_FREEZE and BINDER_GET_FROZEN_INFO
+allowxperm system_server binder_device:chr_file ioctl { 0x400c620e 0xc00c620f };
+
+# Watchdog prints debugging log to /dev/kmsg_debug.
+#line 1258
+
+# Watchdog reads sysprops framework_watchdog.fatal_* to handle watchdog timeout loop.
+
+#line 1260
+allow system_server framework_watchdog_config_prop:file { getattr open read map };
+#line 1260
+
+
+
+# Font files are written by system server
+allow system_server font_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server font_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+# Allow system process to setup and measure fs-verity for font files
+allowxperm system_server font_data_file:file ioctl { 0x6685 0x6686 };
+
+# Read qemu.hw.mainkeys property
+
+#line 1270
+allow system_server qemu_hw_prop:file { getattr open read map };
+#line 1270
+
+
+# Allow system server to read profcollectd reports for upload.
+
+
+###
+### Neverallow rules
+###
+### system_server should NEVER do any of this
+
+# Do not allow opening files from external storage as unsafe ejection
+# could cause the kernel to kill the system_server.
+neverallow system_server { sdcard_type fuse }:dir { open read write };
+neverallow system_server { sdcard_type fuse }:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# system server should never be operating on zygote spawned app data
+# files directly. Rather, they should always be passed via a
+# file descriptor.
+# Exclude those types that system_server needs to open directly.
+neverallow system_server {
+  app_data_file_type
+  -system_app_data_file
+  -radio_data_file
+}:file { open create unlink link };
+
+# Forking and execing is inherently dangerous and racy. See, for
+# example, https://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-using-them
+# Prevent the addition of new file execs to stop the problem from
+# getting worse. b/28035297
+neverallow system_server {
+  file_type
+  -toolbox_exec
+  -logcat_exec
+  
+}:file execute_no_trans;
+
+# Ensure that system_server doesn't perform any domain transitions other than
+# transitioning to the crash_dump domain when a crash occurs or fork clatd.
+neverallow system_server { domain -clatd -crash_dump -perfetto }:process transition;
+neverallow system_server *:process dyntransition;
+
+# Ensure that system_server doesn't access anything but search in perfetto_traces_data_file:dir.
+neverallow system_server perfetto_traces_data_file:dir ~search;
+
+# Only allow crash_dump to connect to system_ndebug_socket.
+neverallow { domain -init -system_server -crash_dump } system_ndebug_socket:sock_file { open write };
+
+# Only allow zygotes to connect to system_unsolzygote_socket.
+neverallow {
+  domain
+  -init
+  -system_server
+  -zygote
+  -app_zygote
+  -webview_zygote
+} system_unsolzygote_socket:sock_file { open write };
+
+# Only allow init, system_server, flags_health_check to set properties for server configurable flags
+neverallow {
+  domain
+  -init
+  -system_server
+  -flags_health_check
+} {
+  device_config_core_experiments_team_internal_prop
+  device_config_activity_manager_native_boot_prop
+  device_config_connectivity_prop
+  device_config_input_native_boot_prop
+  device_config_lmkd_native_prop
+  device_config_netd_native_prop
+  device_config_nnapi_native_prop
+  device_config_edgetpu_native_prop
+  device_config_runtime_native_boot_prop
+  device_config_runtime_native_prop
+  device_config_media_native_prop
+  device_config_mglru_native_prop
+  device_config_remote_key_provisioning_native_prop
+  device_config_storage_native_boot_prop
+  device_config_surface_flinger_native_boot_prop
+  device_config_sys_traced_prop
+  device_config_swcodec_native_prop
+  device_config_aconfig_flags_prop
+  device_config_window_manager_native_boot_prop
+  device_config_tethering_u_or_later_native_prop
+  next_boot_prop
+}:property_service set;
+
+# Only allow system_server and init to set tuner_server_ctl_prop
+neverallow {
+  domain
+  -system_server
+  -init
+} tuner_server_ctl_prop:property_service set;
+
+# system_server should never be executing dex2oat. This is either
+# a bug (for example, bug 16317188), or represents an attempt by
+# system server to dynamically load a dex file, something we do not
+# want to allow.
+neverallow system_server dex2oat_exec:file { execute execute_no_trans };
+
+# system_server should never execute or load executable shared libraries
+# in /data. Executable files in /data are a persistence vector.
+# https://bugs.chromium.org/p/project-zero/issues/detail?id=955 for example.
+neverallow system_server data_file_type:file { execute execute_no_trans };
+
+# The only block device system_server should be writing to is
+# the frp_block_device. This helps avoid a system_server to root
+# escalation by writing to raw block devices.
+# The system_server may need to read from vd_device if it uses
+# block apexes.
+neverallow system_server { dev_type -frp_block_device }:blk_file { append create link unlink relabelfrom rename setattr write };
+neverallow system_server { dev_type -frp_block_device -vd_device }:blk_file { getattr open read ioctl lock map watch watch_reads };
+
+# system_server should never use JIT functionality
+# See https://googleprojectzero.blogspot.com/2016/12/bitunmap-attacking-android-ashmem.html
+# in the section titled "A Short ROP Chain" for why.
+# However, in emulator builds without OpenGL passthrough, we use software
+# rendering via SwiftShader, which requires JIT support. These builds are
+# never shipped to users.
+neverallow system_server self:process execmem;
+#line 1392
+neverallow system_server { ashmem_device ashmem_libcutils_device }:chr_file execute;
+
+# TODO: deal with tmpfs_domain pub/priv split properly
+neverallow system_server system_server_tmpfs:file execute;
+
+# Resources handed off by system_server_startup
+allow system_server system_server_startup:fd use;
+allow system_server system_server_startup_tmpfs:file { read write map };
+allow system_server system_server_startup:unix_dgram_socket write;
+
+# Allow system server to communicate to apexd
+allow system_server apex_service:service_manager find;
+allow system_server apexd:binder call;
+
+# Allow system server to scan /apex for flattened APEXes
+allow system_server apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow system server to read /apex/apex-info-list.xml
+allow system_server apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow system server to communicate to system-suspend's control interface
+allow system_server system_suspend_control_internal_service:service_manager find;
+allow system_server system_suspend_control_service:service_manager find;
+
+#line 1415
+# Call the server domain and optionally transfer references to it.
+#line 1415
+allow system_server system_suspend:binder { call transfer };
+#line 1415
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1415
+allow system_suspend system_server:binder transfer;
+#line 1415
+# Receive and use open files from the server.
+#line 1415
+allow system_server system_suspend:fd use;
+#line 1415
+
+
+#line 1416
+# Call the server domain and optionally transfer references to it.
+#line 1416
+allow system_suspend system_server:binder { call transfer };
+#line 1416
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1416
+allow system_server system_suspend:binder transfer;
+#line 1416
+# Receive and use open files from the server.
+#line 1416
+allow system_suspend system_server:fd use;
+#line 1416
+
+
+# Allow system server to communicate to system-suspend's wakelock interface
+
+#line 1419
+# TODO(b/115946999): Remove /sys/power/* permissions once CONFIG_PM_WAKELOCKS is
+#line 1419
+# deprecated.
+#line 1419
+# Access /sys/power/wake_lock and /sys/power/wake_unlock
+#line 1419
+allow system_server sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+#line 1419
+# Accessing these files requires CAP_BLOCK_SUSPEND
+#line 1419
+allow system_server self:{ capability2 cap2_userns } block_suspend;
+#line 1419
+# system_suspend permissions
+#line 1419
+
+#line 1419
+# Call the server domain and optionally transfer references to it.
+#line 1419
+allow system_server system_suspend_server:binder { call transfer };
+#line 1419
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 1419
+allow system_suspend_server system_server:binder transfer;
+#line 1419
+# Receive and use open files from the server.
+#line 1419
+allow system_server system_suspend_server:fd use;
+#line 1419
+
+#line 1419
+allow system_server system_suspend_hwservice:hwservice_manager find;
+#line 1419
+# halclientdomain permissions
+#line 1419
+
+#line 1419
+# Call the hwservicemanager and transfer references to it.
+#line 1419
+allow system_server hwservicemanager:binder { call transfer };
+#line 1419
+# Allow hwservicemanager to send out callbacks
+#line 1419
+allow hwservicemanager system_server:binder { call transfer };
+#line 1419
+# hwservicemanager performs getpidcon on clients.
+#line 1419
+allow hwservicemanager system_server:dir search;
+#line 1419
+allow hwservicemanager system_server:file { read open map };
+#line 1419
+allow hwservicemanager system_server:process getattr;
+#line 1419
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 1419
+# all domains in domain.te.
+#line 1419
+
+#line 1419
+
+#line 1419
+allow system_server hwservicemanager_prop:file { getattr open read map };
+#line 1419
+
+#line 1419
+allow system_server hidl_manager_hwservice:hwservice_manager find;
+#line 1419
+# AIDL suspend hal permissions
+#line 1419
+allow system_server hal_system_suspend_service:service_manager find;
+#line 1419
+
+#line 1419
+# Call the servicemanager and transfer references to it.
+#line 1419
+allow system_server servicemanager:binder { call transfer };
+#line 1419
+# Allow servicemanager to send out callbacks
+#line 1419
+allow servicemanager system_server:binder { call transfer };
+#line 1419
+# servicemanager performs getpidcon on clients.
+#line 1419
+allow servicemanager system_server:dir search;
+#line 1419
+allow servicemanager system_server:file { read open };
+#line 1419
+allow servicemanager system_server:process getattr;
+#line 1419
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 1419
+# all domains in domain.te.
+#line 1419
+
+#line 1419
+
+
+# Allow the system server to read files under /data/apex. The system_server
+# needs these privileges to compare file signatures while processing installs.
+#
+# Only apexd is allowed to create new entries or write to any file under /data/apex.
+allow system_server apex_data_file:dir { getattr search };
+allow system_server apex_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow the system server to read files under /vendor/apex. This is where
+# vendor APEX packages might be installed and system_server needs to parse
+# these packages to inspect the signatures and other metadata.
+allow system_server vendor_apex_file:dir { getattr search };
+allow system_server vendor_apex_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow the system server to manage relevant apex module data files.
+allow system_server apex_module_data_file:dir { getattr search };
+# These are modules where the code runs in system_server, so we need full access.
+allow system_server apex_system_server_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server apex_system_server_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow system_server apex_tethering_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server apex_tethering_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+# Legacy labels that we still need to support (b/217581286)
+allow system_server {
+  apex_appsearch_data_file
+  apex_permission_data_file
+  apex_scheduling_data_file
+  apex_wifi_data_file
+}:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server {
+  apex_appsearch_data_file
+  apex_permission_data_file
+  apex_scheduling_data_file
+  apex_wifi_data_file
+}:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow PasswordSlotManager rw access to /metadata/password_slots, so GSIs and the host image can
+# communicate which slots are available for use.
+allow system_server metadata_file:dir search;
+allow system_server password_slot_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server password_slot_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow system_server userspace_reboot_metadata_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server userspace_reboot_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow system server rw access to files in /metadata/staged-install folder
+allow system_server staged_install_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server staged_install_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow system_server watchdog_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server watchdog_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow system_server aconfig_storage_flags_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server aconfig_storage_flags_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow system_server repair_mode_metadata_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server repair_mode_metadata_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+allow system_server gsi_persistent_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server gsi_persistent_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow system server read and remove files under /data/misc/odrefresh
+allow system_server odrefresh_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow system_server odrefresh_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+
+# Allow system server r access to /system/bin/surfaceflinger for PinnerService.
+allow system_server surfaceflinger_exec:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow init to set sysprop used to compute stats about userspace reboot.
+
+#line 1488
+
+#line 1488
+allow system_server property_socket:sock_file write;
+#line 1488
+allow system_server init:unix_stream_socket connectto;
+#line 1488
+
+#line 1488
+allow system_server userspace_reboot_log_prop:property_service set;
+#line 1488
+
+#line 1488
+allow system_server userspace_reboot_log_prop:file { getattr open read map };
+#line 1488
+
+#line 1488
+
+
+# JVMTI agent settings are only readable from the system server.
+neverallow {
+  domain
+  -system_server
+  -dumpstate
+  -init
+  -vendor_init
+} {
+  system_jvmti_agent_prop
+}:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Read/Write /proc/pressure/memory
+allow system_server proc_pressure_mem:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+# Read /proc/pressure/cpu and /proc/pressure/io
+allow system_server { proc_pressure_cpu proc_pressure_io }:file { getattr open read ioctl lock map watch watch_reads };
+
+# dexoptanalyzer is currently used only for secondary dex files which
+# system_server should never access.
+neverallow system_server dexoptanalyzer_exec:file { execute execute_no_trans };
+
+# No ptracing others
+neverallow system_server { domain -system_server }:process ptrace;
+
+# CAP_SYS_RESOURCE was traditionally needed for sensitive /proc/PID
+# file read access. However, that is now unnecessary (b/34951864)
+neverallow system_server system_server:{ capability cap_userns } sys_resource;
+
+# Only system_server/init should access /metadata/password_slots.
+neverallow { domain -init -system_server } password_slot_metadata_file:dir *;
+neverallow {
+  domain
+  -init
+  -system_server
+} password_slot_metadata_file:{ file lnk_file sock_file fifo_file } ~{ relabelto getattr };
+neverallow { domain -init -system_server } password_slot_metadata_file:{ file lnk_file sock_file fifo_file } *;
+
+# Only system_server/init should access /metadata/userspacereboot.
+neverallow { domain -init -system_server } userspace_reboot_metadata_file:dir *;
+neverallow { domain -init -system_server } userspace_reboot_metadata_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Only system server should access /metadata/aconfig
+neverallow { domain -init -system_server -aconfigd } aconfig_storage_flags_metadata_file:dir *;
+neverallow { domain -init -system_server -aconfigd } aconfig_storage_flags_metadata_file:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Allow systemserver to read/write the invalidation property
+
+#line 1535
+
+#line 1535
+allow system_server property_socket:sock_file write;
+#line 1535
+allow system_server init:unix_stream_socket connectto;
+#line 1535
+
+#line 1535
+allow system_server binder_cache_system_server_prop:property_service set;
+#line 1535
+
+#line 1535
+allow system_server binder_cache_system_server_prop:file { getattr open read map };
+#line 1535
+
+#line 1535
+
+neverallow { domain -system_server -init }
+    binder_cache_system_server_prop:property_service set;
+
+# Allow system server to attach BPF programs to tracepoints. Deny read permission so that
+# system_server cannot use this access to read perf event data like process stacks.
+allow system_server self:perf_event { open write cpu kernel };
+neverallow system_server self:perf_event ~{ open write cpu kernel };
+
+# Allow writing files under /data/system/shutdown-checkpoints/
+allow system_server shutdown_checkpoints_system_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow system_server shutdown_checkpoints_system_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Do not allow any domain other than init or system server to set the property
+neverallow { domain -init -system_server } socket_hook_prop:property_service set;
+
+neverallow { domain -init -system_server } boot_status_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -dumpstate
+  -system_server
+} wifi_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Only allow system server to write uhid sysfs files
+neverallow {
+    domain
+    -init
+    -system_server
+    -ueventd
+    -vendor_init
+} sysfs_uhid:file { append create link unlink relabelfrom rename setattr write };
+
+# BINDER_FREEZE is used to block ipc transactions to frozen processes, so it
+# can be accessed by system_server only (b/143717177)
+# BINDER_GET_FROZEN_INFO is used by system_server to determine the state of a frozen binder
+# interface
+neverallowxperm { domain -system_server } binder_device:chr_file ioctl { 0x400c620e 0xc00c620f };
+
+# Only system server can write the font files.
+neverallow { domain -init -system_server } font_data_file:file { append create link unlink relabelfrom rename setattr write };
+neverallow { domain -init -system_server } font_data_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+
+# Allow reading /system/etc/font_fallback.xml
+allow system_server system_font_fallback_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow system server to set dynamic ART properties.
+
+#line 1584
+
+#line 1584
+allow system_server property_socket:sock_file write;
+#line 1584
+allow system_server init:unix_stream_socket connectto;
+#line 1584
+
+#line 1584
+allow system_server dalvik_dynamic_config_prop:property_service set;
+#line 1584
+
+#line 1584
+allow system_server dalvik_dynamic_config_prop:file { getattr open read map };
+#line 1584
+
+#line 1584
+
+
+# Allow system server to read binderfs
+allow system_server binderfs_logs:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server binderfs_logs_stats:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow GameManagerService to read and write persist.graphics.game_default_frame_rate.enabled
+
+#line 1591
+
+#line 1591
+allow system_server property_socket:sock_file write;
+#line 1591
+allow system_server init:unix_stream_socket connectto;
+#line 1591
+
+#line 1591
+allow system_server game_manager_config_prop:property_service set;
+#line 1591
+
+#line 1591
+allow system_server game_manager_config_prop:file { getattr open read map };
+#line 1591
+
+#line 1591
+
+
+# ThreadNetworkService reads Thread Network properties
+
+#line 1594
+allow system_server threadnetwork_config_prop:file { getattr open read map };
+#line 1594
+
+
+# Do not allow any domain other than init and system server to set the property
+neverallow {
+  domain
+  -init
+  -vendor_init
+  -dumpstate
+  -system_server
+} threadnetwork_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Allow system server to read pm.archiving.enabled prop
+# TODO(azilio): Remove system property after archiving testing is completed.
+
+#line 1607
+allow system_server pm_archiving_enabled_prop:file { getattr open read map };
+#line 1607
+
+
+# Do not allow any domain other than init or system server to get or set the property
+neverallow { domain -init -system_server } crashrecovery_prop:property_service set;
+neverallow { domain -init -dumpstate -system_server } crashrecovery_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 1 "system/sepolicy/private/system_server_startup.te"
+type system_server_startup, domain, coredomain;
+type system_server_startup_tmpfs, file_type;
+
+
+#line 4
+type_transition system_server_startup tmpfs:file system_server_startup_tmpfs;
+#line 4
+allow system_server_startup system_server_startup_tmpfs:file { read write getattr map };
+#line 4
+
+
+# Create JIT memory
+allow system_server_startup self:process execmem;
+allow system_server_startup system_server_startup_tmpfs:file { execute read write open map };
+
+# Allow to pick up integrity-checked artifacts from the ART APEX dalvik cache.
+allow system_server_startup apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow system_server_startup apex_art_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+
+# Allow system_server_startup to run setcon() and enter the
+# system_server domain
+allow system_server_startup self:process setcurrent;
+allow system_server_startup system_server:process dyntransition;
+
+# Child of the zygote.
+allow system_server_startup zygote:process sigchld;
+
+# Allow query ART device config properties
+
+#line 23
+allow system_server_startup device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 23
+
+
+#line 24
+allow system_server_startup device_config_runtime_native_prop:file { getattr open read map };
+#line 24
+
+#line 1 "system/sepolicy/private/system_suspend.te"
+type system_suspend, domain, coredomain, system_suspend_server, system_suspend_internal_server;
+
+type system_suspend_exec, system_file_type, exec_type, file_type;
+
+#line 4
+
+#line 4
+# Allow the necessary permissions.
+#line 4
+
+#line 4
+# Old domain may exec the file and transition to the new domain.
+#line 4
+allow init system_suspend_exec:file { getattr open read execute map };
+#line 4
+allow init system_suspend:process transition;
+#line 4
+# New domain is entered by executing the file.
+#line 4
+allow system_suspend system_suspend_exec:file { entrypoint open read execute getattr map };
+#line 4
+# New domain can send SIGCHLD to its caller.
+#line 4
+
+#line 4
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 4
+dontaudit init system_suspend:process noatsecure;
+#line 4
+# XXX dontaudit candidate but requires further study.
+#line 4
+allow init system_suspend:process { siginh rlimitinh };
+#line 4
+
+#line 4
+# Make the transition occur by default.
+#line 4
+type_transition init system_suspend_exec:process system_suspend;
+#line 4
+
+#line 4
+
+
+# To serve ISuspendControlService.
+
+#line 7
+# Call the servicemanager and transfer references to it.
+#line 7
+allow system_suspend servicemanager:binder { call transfer };
+#line 7
+# Allow servicemanager to send out callbacks
+#line 7
+allow servicemanager system_suspend:binder { call transfer };
+#line 7
+# servicemanager performs getpidcon on clients.
+#line 7
+allow servicemanager system_suspend:dir search;
+#line 7
+allow servicemanager system_suspend:file { read open };
+#line 7
+allow servicemanager system_suspend:process getattr;
+#line 7
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 7
+# all domains in domain.te.
+#line 7
+
+
+#line 8
+  allow system_suspend system_suspend_control_service:service_manager { add find };
+#line 8
+  neverallow { domain -system_suspend } system_suspend_control_service:service_manager add;
+#line 8
+
+#line 8
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 8
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 8
+  
+#line 8
+
+
+
+#line 10
+  allow system_suspend hal_system_suspend_service:service_manager { add find };
+#line 10
+  neverallow { domain -system_suspend } hal_system_suspend_service:service_manager add;
+#line 10
+
+#line 10
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 10
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 10
+  
+#line 10
+
+
+# Access to /sys/power/{ wakeup_count, state } suspend interface.
+allow system_suspend sysfs_power:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# Access to wakeup, suspend stats, and wakeup reasons.
+
+#line 16
+allow system_suspend sysfs_suspend_stats:dir { open getattr read search ioctl lock watch watch_reads };
+#line 16
+allow system_suspend sysfs_suspend_stats:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 16
+
+
+#line 17
+allow system_suspend sysfs_wakeup:dir { open getattr read search ioctl lock watch watch_reads };
+#line 17
+allow system_suspend sysfs_wakeup:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 17
+
+
+#line 18
+allow system_suspend sysfs_wakeup_reasons:dir { open getattr read search ioctl lock watch watch_reads };
+#line 18
+allow system_suspend sysfs_wakeup_reasons:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 18
+
+# To resolve arbitrary sysfs paths from /sys/class/wakeup/* symlinks.
+allow system_suspend sysfs_type:dir search;
+
+# Access to suspend_hal system properties
+
+#line 23
+allow system_suspend suspend_prop:file { getattr open read map };
+#line 23
+
+
+# Access to system_suspend debug system properties
+#line 28
+
+
+# To call BTAA registered callbacks
+allow system_suspend bluetooth:binder call;
+
+# For adding `dumpsys syspend_control` output to bugreport
+allow system_suspend dumpstate:fd use;
+allow system_suspend dumpstate:fifo_file write;
+
+# Allow init to take kernel wakelock and system suspend to
+# remove kenel wakelocks and the capability to access these
+# files
+allow init sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow init self:{ capability2 cap2_userns } block_suspend;
+allow system_suspend sysfs_wake_lock:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow system_suspend self:{ capability2 cap2_userns } block_suspend;
+
+# Allow init to set /sys/power/sync_on_suspend.
+allow init sysfs_sync_on_suspend:file { open append write lock map };
+
+neverallow {
+    domain
+    -atrace # tracing
+    -bluetooth # support Bluetooth activity attribution (BTAA)
+    -dumpstate # bug reports
+    -system_suspend # implements system_suspend_control_service
+    -system_server # configures system_suspend via ISuspendControlService
+    -traceur_app # tracing
+} system_suspend_control_service:service_manager find;
+#line 1 "system/sepolicy/private/tombstoned.te"
+typeattribute tombstoned coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init tombstoned_exec:file { getattr open read execute map };
+#line 3
+allow init tombstoned:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow tombstoned tombstoned_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init tombstoned:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init tombstoned:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init tombstoned_exec:process tombstoned;
+#line 3
+
+#line 3
+
+
+
+#line 5
+allow tombstoned tombstone_config_prop:file { getattr open read map };
+#line 5
+
+
+neverallow {
+    domain
+    -init
+    -vendor_init
+    -dumpstate
+    -tombstoned
+} tombstone_config_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 1 "system/sepolicy/private/toolbox.te"
+typeattribute toolbox coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init toolbox_exec:file { getattr open read execute map };
+#line 3
+allow init toolbox:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow toolbox toolbox_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init toolbox:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init toolbox:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init toolbox_exec:process toolbox;
+#line 3
+
+#line 3
+
+
+# rm -rf in /data/misc/virtualizationservice
+allow toolbox virtualizationservice_data_file:dir { rmdir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow toolbox virtualizationservice_data_file:file { getattr unlink };
+
+# If we can't remove these directories we try to chmod them. That
+# doesn't work, but it doesn't matter as virtualizationservice itself
+# will delete them when it starts. See b/235338094#comment39
+dontaudit toolbox virtualizationservice_data_file:dir setattr;
+#line 1 "system/sepolicy/private/traced.te"
+# Perfetto user-space tracing daemon (unprivileged)
+type traced_exec, system_file_type, exec_type, file_type;
+
+# Allow init to exec the daemon.
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init traced_exec:file { getattr open read execute map };
+#line 5
+allow init traced:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow traced traced_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init traced:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init traced:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init traced_exec:process traced;
+#line 5
+
+#line 5
+
+
+#line 6
+type_transition traced tmpfs:file traced_tmpfs;
+#line 6
+allow traced traced_tmpfs:file { read write getattr map };
+#line 6
+
+
+# Allow apps in other MLS contexts (for multi-user) to access
+# share memory buffers created by traced.
+typeattribute traced_tmpfs mlstrustedobject;
+
+# Allow traced to start with a lower scheduling class and change
+# class accordingly to what defined in the config provided by
+# the privileged process that controls it.
+allow traced self:{ capability cap_userns } { sys_nice };
+
+# Allow to pass a file descriptor for the output trace from "perfetto" (the
+# cmdline client) and other shell binaries to traced and let traced write
+# directly into that (rather than returning the trace contents over the socket).
+allow traced perfetto:fd use;
+allow traced shell:fd use;
+allow traced shell:fifo_file { read write };
+
+# Allow the service to create new files within /data/misc/perfetto-traces.
+allow traced perfetto_traces_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow traced perfetto_traces_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Allow traceur to pass open file descriptors to traced, so traced can directly
+# write into the output file without doing roundtrips over IPC.
+allow traced traceur_app:fd use;
+allow traced trace_data_file:file { read write };
+
+# Allow perfetto to access the proxy service for notifying Traceur.
+allow traced tracingproxy_service:service_manager find;
+
+#line 35
+# Call the servicemanager and transfer references to it.
+#line 35
+allow traced servicemanager:binder { call transfer };
+#line 35
+# Allow servicemanager to send out callbacks
+#line 35
+allow servicemanager traced:binder { call transfer };
+#line 35
+# servicemanager performs getpidcon on clients.
+#line 35
+allow servicemanager traced:dir search;
+#line 35
+allow servicemanager traced:file { read open };
+#line 35
+allow servicemanager traced:process getattr;
+#line 35
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 35
+# all domains in domain.te.
+#line 35
+;
+
+#line 36
+# Call the server domain and optionally transfer references to it.
+#line 36
+allow traced system_server:binder { call transfer };
+#line 36
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 36
+allow system_server traced:binder transfer;
+#line 36
+# Receive and use open files from the server.
+#line 36
+allow traced system_server:fd use;
+#line 36
+;
+
+# Allow traced to use shared memory supplied by producers. Typically, traced
+# (i.e. the tracing service) creates the shared memory used for data transfer
+# from the producer. This rule allows an alternative scheme, where the producer
+# creates the shared memory, that is then adopted by traced (after validating
+# that it is appropriately sealed).
+# This list has to replicate the tmpfs domains of all applicable domains that
+# have perfetto_producer() macro applied to them.
+# perfetto_tmpfs excluded as it should never need to use the producer-supplied
+# shared memory scheme.
+allow traced  {
+  appdomain_tmpfs
+  heapprofd_tmpfs
+  surfaceflinger_tmpfs
+  traced_probes_tmpfs
+  
+}:file { getattr map read write };
+
+# Allow setting debug properties which guard initialization of the Perfetto SDK
+# in SurfaceFlinger and HWUI's copy of Skia.
+# Required for the android.sdk_sysprop_guard data source.
+# TODO(b/281329340): remove this when no longer needed.
+
+#line 59
+
+#line 59
+allow traced property_socket:sock_file write;
+#line 59
+allow traced init:unix_stream_socket connectto;
+#line 59
+
+#line 59
+allow traced debug_prop:property_service set;
+#line 59
+
+#line 59
+allow traced debug_prop:file { getattr open read map };
+#line 59
+
+#line 59
+
+# Allow traced to notify Traceur when a trace ends by setting the
+# sys.trace.trace_end_signal property.
+
+#line 62
+
+#line 62
+allow traced property_socket:sock_file write;
+#line 62
+allow traced init:unix_stream_socket connectto;
+#line 62
+
+#line 62
+allow traced system_trace_prop:property_service set;
+#line 62
+
+#line 62
+allow traced system_trace_prop:file { getattr open read map };
+#line 62
+
+#line 62
+
+# Allow to lazily start producers.
+
+#line 64
+
+#line 64
+allow traced property_socket:sock_file write;
+#line 64
+allow traced init:unix_stream_socket connectto;
+#line 64
+
+#line 64
+allow traced traced_lazy_prop:property_service set;
+#line 64
+
+#line 64
+allow traced traced_lazy_prop:file { getattr open read map };
+#line 64
+
+#line 64
+
+# Allow tracking the count of sessions intercepting Java OutOfMemoryError
+# If there are such tracing sessions and an OutOfMemoryError is thrown by ART,
+# the hprof plugin intercepts the error, lazily registers a data source to
+# traced and collects a heap dump.
+
+#line 69
+
+#line 69
+allow traced property_socket:sock_file write;
+#line 69
+allow traced init:unix_stream_socket connectto;
+#line 69
+
+#line 69
+allow traced traced_oome_heap_session_count_prop:property_service set;
+#line 69
+
+#line 69
+allow traced traced_oome_heap_session_count_prop:file { getattr open read map };
+#line 69
+
+#line 69
+
+
+# Allow traced to talk to statsd for logging metrics.
+
+#line 72
+allow traced statsdw_socket:sock_file write;
+#line 72
+allow traced statsd:unix_dgram_socket sendto;
+#line 72
+
+
+###
+### Neverallow rules
+###
+### traced should NEVER do any of this
+
+# Disallow mapping executable memory (execstack and exec are already disallowed
+# globally in domain.te).
+neverallow traced self:process execmem;
+
+# Block device access.
+neverallow traced dev_type:blk_file { read write };
+
+# ptrace any other process
+neverallow traced domain:process ptrace;
+
+# Disallows access to /data files, still allowing to write to file descriptors
+# passed through the socket.
+neverallow traced {
+  data_file_type
+  -perfetto_traces_data_file
+  -system_data_file
+  -system_data_root_file
+  -media_userdir_file
+  -system_userdir_file
+  -vendor_userdir_file
+  # TODO(b/72998741) Remove vendor_data_file exemption. Further restricted in a
+  # subsequent neverallow. Currently only getattr and search are allowed.
+  -vendor_data_file
+  
+}:dir *;
+neverallow traced { system_data_file }:dir ~{ getattr search };
+neverallow traced {
+  data_file_type
+  -perfetto_traces_data_file
+  -trace_data_file
+  
+}:file ~write;
+
+# Only init is allowed to enter the traced domain via exec()
+neverallow { domain -init } traced:process transition;
+neverallow * traced:process dyntransition;
+
+# Limit the processes that can access tracingproxy_service.
+neverallow {
+  domain
+  -traced
+  -dumpstate
+  -traceur_app
+  -shell
+  -system_server
+  -perfetto
+} tracingproxy_service:service_manager find;
+#line 1 "system/sepolicy/private/traced_perf.te"
+# Performance profiler, backed by perf_event_open(2).
+# See go/perfetto-perf-android.
+typeattribute traced_perf coredomain;
+typeattribute traced_perf mlstrustedsubject;
+
+type traced_perf_exec, system_file_type, exec_type, file_type;
+
+
+#line 8
+
+#line 8
+# Allow the necessary permissions.
+#line 8
+
+#line 8
+# Old domain may exec the file and transition to the new domain.
+#line 8
+allow init traced_perf_exec:file { getattr open read execute map };
+#line 8
+allow init traced_perf:process transition;
+#line 8
+# New domain is entered by executing the file.
+#line 8
+allow traced_perf traced_perf_exec:file { entrypoint open read execute getattr map };
+#line 8
+# New domain can send SIGCHLD to its caller.
+#line 8
+
+#line 8
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 8
+dontaudit init traced_perf:process noatsecure;
+#line 8
+# XXX dontaudit candidate but requires further study.
+#line 8
+allow init traced_perf:process { siginh rlimitinh };
+#line 8
+
+#line 8
+# Make the transition occur by default.
+#line 8
+type_transition init traced_perf_exec:process traced_perf;
+#line 8
+
+#line 8
+
+
+#line 9
+  allow traced_perf traced:fd use;
+#line 9
+  allow traced_perf traced_tmpfs:file { read write getattr map };
+#line 9
+  
+#line 9
+allow traced_perf traced_producer_socket:sock_file write;
+#line 9
+allow traced_perf traced:unix_stream_socket connectto;
+#line 9
+
+#line 9
+
+#line 9
+  # Also allow the service to use the producer file descriptors. This is
+#line 9
+  # necessary when the producer is creating the shared memory, as it will be
+#line 9
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 9
+  allow traced traced_perf:fd use;
+#line 9
+
+
+# Allow traced_perf full use of perf_event_open(2). It will perform cpu-wide
+# profiling, but retain samples only for profileable processes.
+# Thread-specific profiling is still disallowed due to a PTRACE_MODE_ATTACH
+# check (which would require a process:attach SELinux allow-rule).
+allow traced_perf self:perf_event { open cpu kernel read write tracepoint };
+
+# Allow CAP_KILL for delivery of dedicated signal to obtain proc-fds from a
+# process. Allow CAP_DAC_READ_SEARCH for stack unwinding and symbolization of
+# sampled stacks, which requires opening the backing libraries/executables (as
+# symbols are usually not mapped into the process space). Not all such files
+# are world-readable, e.g. odex files that included user profiles during
+# profile-guided optimization.
+allow traced_perf self:capability { kill dac_read_search };
+
+# Allow reading /system/data/packages.list.
+allow traced_perf packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow reading files for stack unwinding and symbolization.
+
+#line 29
+allow traced_perf nativetest_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 29
+allow traced_perf nativetest_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 29
+
+
+#line 30
+allow traced_perf system_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 30
+allow traced_perf system_file_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 30
+
+
+#line 31
+allow traced_perf apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 31
+allow traced_perf apk_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 31
+
+
+#line 32
+allow traced_perf dalvikcache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 32
+allow traced_perf dalvikcache_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 32
+
+
+#line 33
+allow traced_perf vendor_file_type:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow traced_perf vendor_file_type:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 33
+
+# ART apex files and directory access to the containing /data/misc/apexdata.
+
+#line 35
+allow traced_perf apex_art_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 35
+allow traced_perf apex_art_data_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 35
+
+allow traced_perf apex_module_data_file:dir { getattr search };
+
+# Allow to temporarily lift the kptr_restrict setting and build a symbolization
+# map reading /proc/kallsyms.
+
+allow traced_perf proc_kallsyms:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow reading tracefs files to get the format and numeric ids of tracepoints.
+allow traced_perf debugfs_tracing:dir { open getattr read search ioctl lock watch watch_reads };
+allow traced_perf debugfs_tracing:file { getattr open read ioctl lock map watch watch_reads };
+#line 49
+
+
+# Do not audit the cases where traced_perf attempts to access /proc/[pid] for
+# domains that it cannot read.
+dontaudit traced_perf domain:dir { search getattr open };
+
+# Do not audit failures to signal a process, as there are cases when this is
+# expected (native processes on debug builds use the policy for enforcing which
+# processes are profileable).
+dontaudit traced_perf domain:process signal;
+
+# Never allow access to app data files
+neverallow traced_perf app_data_file_type:file *;
+
+# Never allow profiling privileged or otherwise incompatible domains.
+# Corresponding allow-rule is in private/domain.te.
+
+#line 65
+  neverallow traced_perf {
+#line 65
+  apexd
+#line 65
+  app_zygote
+#line 65
+  bpfloader
+#line 65
+  hal_configstore_server
+#line 65
+  init
+#line 65
+  kernel
+#line 65
+  keystore
+#line 65
+  llkd
+#line 65
+  logd
+#line 65
+  ueventd
+#line 65
+  vendor_init
+#line 65
+  vold
+#line 65
+  webview_zygote
+#line 65
+  zygote
+#line 65
+}:file read;
+#line 65
+  neverallow traced_perf {
+#line 65
+  apexd
+#line 65
+  app_zygote
+#line 65
+  bpfloader
+#line 65
+  hal_configstore_server
+#line 65
+  init
+#line 65
+  kernel
+#line 65
+  keystore
+#line 65
+  llkd
+#line 65
+  logd
+#line 65
+  ueventd
+#line 65
+  vendor_init
+#line 65
+  vold
+#line 65
+  webview_zygote
+#line 65
+  zygote
+#line 65
+}:process signal;
+#line 80
+
+#line 1 "system/sepolicy/private/traced_probes.te"
+# Perfetto tracing probes, has tracefs access.
+type traced_probes_exec, system_file_type, exec_type, file_type;
+type traced_probes_tmpfs, file_type;
+
+# Allow init to exec the daemon.
+
+#line 6
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init traced_probes_exec:file { getattr open read execute map };
+#line 6
+allow init traced_probes:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow traced_probes traced_probes_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init traced_probes:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init traced_probes:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition init traced_probes_exec:process traced_probes;
+#line 6
+
+#line 6
+
+
+#line 7
+type_transition traced_probes tmpfs:file traced_probes_tmpfs;
+#line 7
+allow traced_probes traced_probes_tmpfs:file { read write getattr map };
+#line 7
+
+
+# Write trace data to the Perfetto traced damon. This requires connecting to its
+# producer socket and obtaining a (per-process) tmpfs fd.
+
+#line 11
+  allow traced_probes traced:fd use;
+#line 11
+  allow traced_probes traced_tmpfs:file { read write getattr map };
+#line 11
+  
+#line 11
+allow traced_probes traced_producer_socket:sock_file write;
+#line 11
+allow traced_probes traced:unix_stream_socket connectto;
+#line 11
+
+#line 11
+
+#line 11
+  # Also allow the service to use the producer file descriptors. This is
+#line 11
+  # necessary when the producer is creating the shared memory, as it will be
+#line 11
+  # passed to the service as a file descriptor (obtained from memfd_create).
+#line 11
+  allow traced traced_probes:fd use;
+#line 11
+
+
+# Allow traced_probes to access tracefs.
+allow traced_probes debugfs_tracing:dir { open getattr read search ioctl lock watch watch_reads };
+allow traced_probes debugfs_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow traced_probes debugfs_trace_marker:file getattr;
+allow traced_probes debugfs_tracing_printk_formats:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow traced_probes to access mm_events trace instance
+allow traced_probes debugfs_tracing_instances:dir search;
+allow traced_probes debugfs_mm_events_tracing:dir search;
+allow traced_probes debugfs_mm_events_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# TODO(primiano): temporarily I/O tracing categories are still
+# userdebug only until we nail down the denylist/allowlist.
+#line 29
+
+
+# Allow traced_probes to start with a higher scheduling class and then downgrade
+# itself.
+allow traced_probes self:{ capability cap_userns } { sys_nice };
+
+# Allow procfs access
+
+#line 36
+allow traced_probes domain:dir { open getattr read search ioctl lock watch watch_reads };
+#line 36
+allow traced_probes domain:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 36
+
+
+# Allow to temporarily lift the kptr_restrict setting and build a symbolization
+# map reading /proc/kallsyms.
+
+allow traced_probes proc_kallsyms:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow to read packages.list file.
+allow traced_probes packages_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow to read game_mode_intervention.list file.
+allow traced_probes game_mode_intervention_list_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow to log to kernel dmesg when starting / stopping ftrace.
+allow traced_probes kmsg_device:chr_file write;
+
+# Allow traced_probes to list the system partition.
+allow traced_probes system_file:dir { open read };
+
+# Allow traced_probes to list some of the data partition.
+allow traced_probes self:{ capability cap_userns } dac_read_search;
+
+allow traced_probes apk_data_file:dir { getattr open read search };
+allow traced_probes { apex_art_data_file apex_module_data_file }:dir { getattr open read search };
+allow traced_probes dalvikcache_data_file:dir { getattr open read search };
+#line 64
+
+allow traced_probes system_app_data_file:dir { getattr open read search };
+allow traced_probes backup_data_file:dir { getattr open read search };
+allow traced_probes bootstat_data_file:dir { getattr open read search };
+allow traced_probes update_engine_data_file:dir { getattr open read search };
+allow traced_probes update_engine_log_data_file:dir { getattr open read search };
+allow traced_probes { user_profile_root_file user_profile_data_file}:dir { getattr open read search };
+
+# Allow traced_probes to run atrace. atrace pokes at system services to enable
+# their userspace TRACE macros.
+
+#line 74
+# Allow the necessary permissions.
+#line 74
+
+#line 74
+# Old domain may exec the file and transition to the new domain.
+#line 74
+allow traced_probes atrace_exec:file { getattr open read execute map };
+#line 74
+allow traced_probes atrace:process transition;
+#line 74
+# New domain is entered by executing the file.
+#line 74
+allow atrace atrace_exec:file { entrypoint open read execute getattr map };
+#line 74
+# New domain can send SIGCHLD to its caller.
+#line 74
+allow atrace traced_probes:process sigchld;
+#line 74
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 74
+dontaudit traced_probes atrace:process noatsecure;
+#line 74
+# XXX dontaudit candidate but requires further study.
+#line 74
+allow traced_probes atrace:process { siginh rlimitinh };
+#line 74
+
+#line 74
+# Make the transition occur by default.
+#line 74
+type_transition traced_probes atrace_exec:process atrace;
+#line 74
+;
+
+# Allow traced_probes to kill atrace on timeout.
+allow traced_probes atrace:process sigkill;
+
+# Allow traced_probes to access /proc files for system stats.
+# Note: trace data is NOT exposed to anything other than shell and privileged
+# system apps that have access to the traced consumer socket.
+allow traced_probes {
+  proc_meminfo
+  proc_vmstat
+  proc_stat
+  proc_buddyinfo
+  proc_pressure_cpu
+  proc_pressure_io
+  proc_pressure_mem
+}:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow access to read /sys/class/devfreq/ and /$DEVICE/cur_freq files
+allow traced_probes sysfs_devfreq_dir:dir { open getattr read search ioctl lock watch watch_reads };
+allow traced_probes sysfs_devfreq_cur:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow access to read /proc/diskstats for I/O profiling.
+allow traced_probes proc_diskstats:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow access to the IHealth and IPowerStats HAL service for tracing battery counters.
+
+#line 100
+typeattribute traced_probes halclientdomain;
+#line 100
+typeattribute traced_probes hal_health_client;
+#line 100
+
+#line 100
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 100
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 100
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 100
+
+#line 100
+typeattribute traced_probes hal_health;
+#line 100
+# Find passthrough HAL implementations
+#line 100
+allow hal_health system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 100
+allow hal_health vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 100
+allow hal_health vendor_file:file { read open getattr execute map };
+#line 100
+
+#line 100
+
+
+#line 101
+typeattribute traced_probes halclientdomain;
+#line 101
+typeattribute traced_probes hal_power_stats_client;
+#line 101
+
+#line 101
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 101
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 101
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 101
+
+#line 101
+typeattribute traced_probes hal_power_stats;
+#line 101
+# Find passthrough HAL implementations
+#line 101
+allow hal_power_stats system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 101
+allow hal_power_stats vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 101
+allow hal_power_stats vendor_file:file { read open getattr execute map };
+#line 101
+
+#line 101
+
+
+# Allow access to Atrace HAL for enabling vendor/device specific tracing categories.
+
+#line 104
+typeattribute traced_probes halclientdomain;
+#line 104
+typeattribute traced_probes hal_atrace_client;
+#line 104
+
+#line 104
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 104
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 104
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 104
+
+#line 104
+typeattribute traced_probes hal_atrace;
+#line 104
+# Find passthrough HAL implementations
+#line 104
+allow hal_atrace system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 104
+allow hal_atrace vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 104
+allow hal_atrace vendor_file:file { read open getattr execute map };
+#line 104
+
+#line 104
+
+
+# On debug builds allow to ingest system logs into the trace.
+
+
+# Allow traced_probes to talk to statsd for logging metrics and recording atoms.
+
+#line 110
+allow traced_probes statsdw_socket:sock_file write;
+#line 110
+allow traced_probes statsd:unix_dgram_socket sendto;
+#line 110
+
+
+#line 111
+# Call the server domain and optionally transfer references to it.
+#line 111
+allow traced_probes statsd:binder { call transfer };
+#line 111
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 111
+allow statsd traced_probes:binder transfer;
+#line 111
+# Receive and use open files from the server.
+#line 111
+allow traced_probes statsd:fd use;
+#line 111
+
+allow traced_probes stats_service:service_manager find;
+
+###
+### Neverallow rules
+###
+### traced_probes should NEVER do any of this
+
+# Disallow mapping executable memory (execstack and exec are already disallowed
+# globally in domain.te).
+neverallow traced_probes self:process execmem;
+
+# Block device access.
+neverallow traced_probes dev_type:blk_file { read write };
+
+# ptrace any other app
+neverallow traced_probes domain:process ptrace;
+
+# Disallows access to /data files.
+neverallow traced_probes {
+  data_file_type
+  -apex_module_data_file
+  -apex_art_data_file
+  -apk_data_file
+  -dalvikcache_data_file
+  -system_data_file
+  -system_data_root_file
+  -media_userdir_file
+  -system_userdir_file
+  -vendor_userdir_file
+  -system_app_data_file
+  -backup_data_file
+  -bootstat_data_file
+  -update_engine_data_file
+  -update_engine_log_data_file
+  -user_profile_root_file
+  -user_profile_data_file
+  # TODO(b/72998741) Remove vendor_data_file exemption. Further restricted in a
+  # subsequent neverallow. Currently only getattr and search are allowed.
+  -vendor_data_file
+  
+}:dir *;
+neverallow traced_probes system_data_file:dir ~{ getattr  search };
+neverallow traced_probes {
+  data_file_type
+  -packages_list_file
+  
+  -game_mode_intervention_list_file
+}:file *;
+
+# Only init is allowed to enter the traced_probes domain via exec()
+neverallow { domain -init } traced_probes:process transition;
+neverallow * traced_probes:process dyntransition;
+
+#line 1 "system/sepolicy/private/traceur_app.te"
+typeattribute traceur_app coredomain;
+
+
+#line 3
+typeattribute traceur_app appdomain;
+#line 3
+# Label tmpfs objects for all apps.
+#line 3
+type_transition traceur_app tmpfs:file appdomain_tmpfs;
+#line 3
+
+#line 3
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 3
+type traceur_app_userfaultfd;
+#line 3
+type_transition traceur_app traceur_app:anon_inode traceur_app_userfaultfd "[userfaultfd]";
+#line 3
+# Allow domain to create/use userfaultfd anon_inode.
+#line 3
+allow traceur_app traceur_app_userfaultfd:anon_inode { create ioctl read };
+#line 3
+# Suppress errors generate during bugreport
+#line 3
+dontaudit su traceur_app_userfaultfd:anon_inode *;
+#line 3
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 3
+neverallow { domain -traceur_app } traceur_app_userfaultfd:anon_inode *;
+#line 3
+
+#line 3
+allow traceur_app appdomain_tmpfs:file { execute getattr map read write };
+#line 3
+neverallow { traceur_app -runas_app -shell -simpleperf } { domain -traceur_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+neverallow { appdomain -runas_app -shell -simpleperf -traceur_app } traceur_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 3
+# The Android security model guarantees the confidentiality and integrity
+#line 3
+# of application data and execution state. Ptrace bypasses those
+#line 3
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 3
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 3
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 3
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 3
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 3
+# live lock conditions.
+#line 3
+neverallow { domain -traceur_app -crash_dump  -runas_app -simpleperf } traceur_app:process ptrace;
+#line 3
+;
+allow traceur_app debugfs_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow traceur_app debugfs_tracing_debug:dir { open getattr read search ioctl lock watch watch_reads };
+
+#line 9
+
+
+allow traceur_app trace_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow traceur_app trace_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow traceur_app wm_trace_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow traceur_app wm_trace_data_file:file { getattr { getattr open read ioctl lock map watch watch_reads } unlink };
+allow traceur_app atrace_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# To exec the perfetto cmdline client and pass it the trace config on
+# stdint through a pipe.
+allow traceur_app perfetto_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow to access traced's privileged consumer socket.
+
+#line 22
+allow traceur_app traced_consumer_socket:sock_file write;
+#line 22
+allow traceur_app traced:unix_stream_socket connectto;
+#line 22
+
+
+dontaudit traceur_app debugfs_tracing_debug:file audit_access;
+
+
+#line 26
+
+#line 26
+allow traceur_app property_socket:sock_file write;
+#line 26
+allow traceur_app init:unix_stream_socket connectto;
+#line 26
+
+#line 26
+allow traceur_app debug_prop:property_service set;
+#line 26
+
+#line 26
+allow traceur_app debug_prop:file { getattr open read map };
+#line 26
+
+#line 26
+
+#line 1 "system/sepolicy/private/ueventd.te"
+typeattribute ueventd coredomain;
+
+
+#line 3
+type_transition ueventd tmpfs:file ueventd_tmpfs;
+#line 3
+allow ueventd ueventd_tmpfs:file { read write getattr map };
+#line 3
+
+
+# ueventd can set properties, particularly it sets ro.cold_boot_done to signal
+# to init that cold boot has completed.
+
+#line 7
+
+#line 7
+allow ueventd property_socket:sock_file write;
+#line 7
+allow ueventd init:unix_stream_socket connectto;
+#line 7
+
+#line 7
+allow ueventd cold_boot_done_prop:property_service set;
+#line 7
+
+#line 7
+allow ueventd cold_boot_done_prop:file { getattr open read map };
+#line 7
+
+#line 7
+
+#line 1 "system/sepolicy/private/uncrypt.te"
+typeattribute uncrypt coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init uncrypt_exec:file { getattr open read execute map };
+#line 3
+allow init uncrypt:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow uncrypt uncrypt_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init uncrypt:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init uncrypt:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init uncrypt_exec:process uncrypt;
+#line 3
+
+#line 3
+
+
+# Set a property to reboot the device.
+
+#line 6
+
+#line 6
+allow uncrypt property_socket:sock_file write;
+#line 6
+allow uncrypt init:unix_stream_socket connectto;
+#line 6
+
+#line 6
+allow uncrypt powerctl_prop:property_service set;
+#line 6
+
+#line 6
+allow uncrypt powerctl_prop:file { getattr open read map };
+#line 6
+
+#line 6
+
+#line 1 "system/sepolicy/private/untrusted_app.te"
+###
+### Untrusted apps.
+###
+### This file defines the rules for untrusted apps running with
+### targetSdkVersion >= 34.
+###
+### See public/untrusted_app.te for more information about which apps are
+### placed in this selinux domain.
+###
+
+typeattribute untrusted_app coredomain;
+
+
+#line 13
+typeattribute untrusted_app appdomain;
+#line 13
+# Label tmpfs objects for all apps.
+#line 13
+type_transition untrusted_app tmpfs:file appdomain_tmpfs;
+#line 13
+
+#line 13
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 13
+type untrusted_app_userfaultfd;
+#line 13
+type_transition untrusted_app untrusted_app:anon_inode untrusted_app_userfaultfd "[userfaultfd]";
+#line 13
+# Allow domain to create/use userfaultfd anon_inode.
+#line 13
+allow untrusted_app untrusted_app_userfaultfd:anon_inode { create ioctl read };
+#line 13
+# Suppress errors generate during bugreport
+#line 13
+dontaudit su untrusted_app_userfaultfd:anon_inode *;
+#line 13
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 13
+neverallow { domain -untrusted_app } untrusted_app_userfaultfd:anon_inode *;
+#line 13
+
+#line 13
+allow untrusted_app appdomain_tmpfs:file { execute getattr map read write };
+#line 13
+neverallow { untrusted_app -runas_app -shell -simpleperf } { domain -untrusted_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+neverallow { appdomain -runas_app -shell -simpleperf -untrusted_app } untrusted_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+# The Android security model guarantees the confidentiality and integrity
+#line 13
+# of application data and execution state. Ptrace bypasses those
+#line 13
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 13
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 13
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 13
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 13
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 13
+# live lock conditions.
+#line 13
+neverallow { domain -untrusted_app -crash_dump  -runas_app -simpleperf } untrusted_app:process ptrace;
+#line 13
+
+
+#line 14
+typeattribute untrusted_app untrusted_app_all;
+#line 14
+
+
+#line 15
+typeattribute untrusted_app netdomain;
+#line 15
+
+
+#line 16
+typeattribute untrusted_app bluetoothdomain;
+#line 16
+
+
+# Allow webview to access fd shared by sdksandbox for experiments data
+# TODO(b/229249719): Will not be supported in Android U
+allow untrusted_app sdk_sandbox_data_file:fd use;
+allow untrusted_app sdk_sandbox_data_file:file write;
+
+neverallow untrusted_app sdk_sandbox_data_file:file { open create };
+#line 1 "system/sepolicy/private/untrusted_app_25.te"
+###
+### Untrusted_app_25
+###
+### This file defines the rules for untrusted apps running with
+### targetSdkVersion <= 25.
+###
+### See public/untrusted_app.te for more information about which apps are
+### placed in this selinux domain.
+###
+
+typeattribute untrusted_app_25 coredomain;
+
+
+#line 13
+typeattribute untrusted_app_25 appdomain;
+#line 13
+# Label tmpfs objects for all apps.
+#line 13
+type_transition untrusted_app_25 tmpfs:file appdomain_tmpfs;
+#line 13
+
+#line 13
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 13
+type untrusted_app_25_userfaultfd;
+#line 13
+type_transition untrusted_app_25 untrusted_app_25:anon_inode untrusted_app_25_userfaultfd "[userfaultfd]";
+#line 13
+# Allow domain to create/use userfaultfd anon_inode.
+#line 13
+allow untrusted_app_25 untrusted_app_25_userfaultfd:anon_inode { create ioctl read };
+#line 13
+# Suppress errors generate during bugreport
+#line 13
+dontaudit su untrusted_app_25_userfaultfd:anon_inode *;
+#line 13
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 13
+neverallow { domain -untrusted_app_25 } untrusted_app_25_userfaultfd:anon_inode *;
+#line 13
+
+#line 13
+allow untrusted_app_25 appdomain_tmpfs:file { execute getattr map read write };
+#line 13
+neverallow { untrusted_app_25 -runas_app -shell -simpleperf } { domain -untrusted_app_25 }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+neverallow { appdomain -runas_app -shell -simpleperf -untrusted_app_25 } untrusted_app_25:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+# The Android security model guarantees the confidentiality and integrity
+#line 13
+# of application data and execution state. Ptrace bypasses those
+#line 13
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 13
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 13
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 13
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 13
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 13
+# live lock conditions.
+#line 13
+neverallow { domain -untrusted_app_25 -crash_dump  -runas_app -simpleperf } untrusted_app_25:process ptrace;
+#line 13
+
+
+#line 14
+typeattribute untrusted_app_25 untrusted_app_all;
+#line 14
+
+
+#line 15
+typeattribute untrusted_app_25 netdomain;
+#line 15
+
+
+#line 16
+typeattribute untrusted_app_25 bluetoothdomain;
+#line 16
+
+
+# b/35917228 - /proc/misc access
+# This will go away in a future Android release
+allow untrusted_app_25 proc_misc:file { getattr open read ioctl lock map watch watch_reads };
+
+# Access to /proc/tty/drivers, to allow apps to determine if they
+# are running in an emulated environment.
+# b/33214085 b/33814662 b/33791054 b/33211769
+# https://github.com/strazzere/anti-emulator/blob/master/AntiEmulator/src/diff/strazzere/anti/emulator/FindEmulator.java
+# This will go away in a future Android release
+allow untrusted_app_25 proc_tty_drivers:file { getattr open read ioctl lock map watch watch_reads };
+
+# Text relocation support for API < 23. This is now disallowed for targetSdkVersion>=Q.
+# https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#text-relocations-enforced-for-api-level-23
+allow untrusted_app_25 { apk_data_file app_data_file asec_public_file }:file execmod;
+
+# The ability to call exec() on files in the apps home directories
+# for targetApi<=25. This is also allowed for targetAPIs 26, 27,
+# and 28 in untrusted_app_27.te.
+allow untrusted_app_25 app_data_file:file execute_no_trans;
+auditallow untrusted_app_25 app_data_file:file { execute execute_no_trans };
+
+# The ability to invoke dex2oat. Historically required by ART, now only
+# allowed for targetApi<=28 for compat reasons.
+allow untrusted_app_25 dex2oat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+
+# The ability to talk to /dev/ashmem directly. targetApi>=29 must use
+# ASharedMemory instead.
+allow untrusted_app_25 ashmem_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+auditallow untrusted_app_25 ashmem_device:chr_file open;
+
+# Read /mnt/sdcard symlink.
+allow untrusted_app_25 mnt_sdcard_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# allow sending RTM_GETNEIGH{TBL} messages.
+allow untrusted_app_25 self:netlink_route_socket nlmsg_getneigh;
+auditallow untrusted_app_25 self:netlink_route_socket nlmsg_getneigh;
+
+# Connect to mdnsd via mdnsd socket.
+
+#line 57
+allow untrusted_app_25 mdnsd_socket:sock_file write;
+#line 57
+allow untrusted_app_25 mdnsd:unix_stream_socket connectto;
+#line 57
+
+#line 61
+
+
+# Allow calling inotify on APKs for backwards compatibility. This is disallowed
+# for targetSdkVersion>=34 to remove a sidechannel.
+allow untrusted_app_25 apk_data_file:dir { watch watch_reads };
+allow untrusted_app_25 apk_data_file:file { watch watch_reads };
+#line 70
+
+#line 1 "system/sepolicy/private/untrusted_app_27.te"
+###
+### Untrusted_27.
+###
+### This file defines the rules for untrusted apps running with
+### 25 < targetSdkVersion <= 28.
+###
+### See public/untrusted_app.te for more information about which apps are
+### placed in this selinux domain.
+###
+
+typeattribute untrusted_app_27 coredomain;
+
+
+#line 13
+typeattribute untrusted_app_27 appdomain;
+#line 13
+# Label tmpfs objects for all apps.
+#line 13
+type_transition untrusted_app_27 tmpfs:file appdomain_tmpfs;
+#line 13
+
+#line 13
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 13
+type untrusted_app_27_userfaultfd;
+#line 13
+type_transition untrusted_app_27 untrusted_app_27:anon_inode untrusted_app_27_userfaultfd "[userfaultfd]";
+#line 13
+# Allow domain to create/use userfaultfd anon_inode.
+#line 13
+allow untrusted_app_27 untrusted_app_27_userfaultfd:anon_inode { create ioctl read };
+#line 13
+# Suppress errors generate during bugreport
+#line 13
+dontaudit su untrusted_app_27_userfaultfd:anon_inode *;
+#line 13
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 13
+neverallow { domain -untrusted_app_27 } untrusted_app_27_userfaultfd:anon_inode *;
+#line 13
+
+#line 13
+allow untrusted_app_27 appdomain_tmpfs:file { execute getattr map read write };
+#line 13
+neverallow { untrusted_app_27 -runas_app -shell -simpleperf } { domain -untrusted_app_27 }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+neverallow { appdomain -runas_app -shell -simpleperf -untrusted_app_27 } untrusted_app_27:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+# The Android security model guarantees the confidentiality and integrity
+#line 13
+# of application data and execution state. Ptrace bypasses those
+#line 13
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 13
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 13
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 13
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 13
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 13
+# live lock conditions.
+#line 13
+neverallow { domain -untrusted_app_27 -crash_dump  -runas_app -simpleperf } untrusted_app_27:process ptrace;
+#line 13
+
+
+#line 14
+typeattribute untrusted_app_27 untrusted_app_all;
+#line 14
+
+
+#line 15
+typeattribute untrusted_app_27 netdomain;
+#line 15
+
+
+#line 16
+typeattribute untrusted_app_27 bluetoothdomain;
+#line 16
+
+
+# Text relocation support for API < 23. This is now disallowed for targetSdkVersion>=Q.
+# https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#text-relocations-enforced-for-api-level-23
+allow untrusted_app_27 { apk_data_file app_data_file asec_public_file }:file execmod;
+
+# The ability to call exec() on files in the apps home directories
+# for targetApi 26, 27, and 28.
+allow untrusted_app_27 app_data_file:file execute_no_trans;
+auditallow untrusted_app_27 app_data_file:file { execute execute_no_trans };
+
+# The ability to invoke dex2oat. Historically required by ART, now only
+# allowed for targetApi<=28 for compat reasons.
+allow untrusted_app_27 dex2oat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+
+# The ability to talk to /dev/ashmem directly. targetApi>=29 must use
+# ASharedMemory instead.
+allow untrusted_app_27 ashmem_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+auditallow untrusted_app_27 ashmem_device:chr_file open;
+
+# Read /mnt/sdcard symlink.
+allow untrusted_app_27 mnt_sdcard_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# allow sending RTM_GETNEIGH{TBL} messages.
+allow untrusted_app_27 self:netlink_route_socket nlmsg_getneigh;
+auditallow untrusted_app_27 self:netlink_route_socket nlmsg_getneigh;
+
+# Connect to mdnsd via mdnsd socket.
+
+#line 45
+allow untrusted_app_27 mdnsd_socket:sock_file write;
+#line 45
+allow untrusted_app_27 mdnsd:unix_stream_socket connectto;
+#line 45
+
+#line 49
+
+
+# Allow calling inotify on APKs for backwards compatibility. This is disallowed
+# for targetSdkVersion>=34 to remove a sidechannel.
+allow untrusted_app_27 apk_data_file:dir { watch watch_reads };
+allow untrusted_app_27 apk_data_file:file { watch watch_reads };
+#line 58
+
+#line 1 "system/sepolicy/private/untrusted_app_29.te"
+###
+### Untrusted_29.
+###
+### This file defines the rules for untrusted apps running with
+### targetSdkVersion = 29.
+###
+### See public/untrusted_app.te for more information about which apps are
+### placed in this selinux domain.
+###
+
+typeattribute untrusted_app_29 coredomain;
+
+
+#line 13
+typeattribute untrusted_app_29 appdomain;
+#line 13
+# Label tmpfs objects for all apps.
+#line 13
+type_transition untrusted_app_29 tmpfs:file appdomain_tmpfs;
+#line 13
+
+#line 13
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 13
+type untrusted_app_29_userfaultfd;
+#line 13
+type_transition untrusted_app_29 untrusted_app_29:anon_inode untrusted_app_29_userfaultfd "[userfaultfd]";
+#line 13
+# Allow domain to create/use userfaultfd anon_inode.
+#line 13
+allow untrusted_app_29 untrusted_app_29_userfaultfd:anon_inode { create ioctl read };
+#line 13
+# Suppress errors generate during bugreport
+#line 13
+dontaudit su untrusted_app_29_userfaultfd:anon_inode *;
+#line 13
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 13
+neverallow { domain -untrusted_app_29 } untrusted_app_29_userfaultfd:anon_inode *;
+#line 13
+
+#line 13
+allow untrusted_app_29 appdomain_tmpfs:file { execute getattr map read write };
+#line 13
+neverallow { untrusted_app_29 -runas_app -shell -simpleperf } { domain -untrusted_app_29 }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+neverallow { appdomain -runas_app -shell -simpleperf -untrusted_app_29 } untrusted_app_29:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+# The Android security model guarantees the confidentiality and integrity
+#line 13
+# of application data and execution state. Ptrace bypasses those
+#line 13
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 13
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 13
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 13
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 13
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 13
+# live lock conditions.
+#line 13
+neverallow { domain -untrusted_app_29 -crash_dump  -runas_app -simpleperf } untrusted_app_29:process ptrace;
+#line 13
+
+
+#line 14
+typeattribute untrusted_app_29 untrusted_app_all;
+#line 14
+
+
+#line 15
+typeattribute untrusted_app_29 netdomain;
+#line 15
+
+
+#line 16
+typeattribute untrusted_app_29 bluetoothdomain;
+#line 16
+
+
+# allow sending RTM_GETNEIGH{TBL} messages.
+allow untrusted_app_29 self:netlink_route_socket nlmsg_getneigh;
+auditallow untrusted_app_29 self:netlink_route_socket nlmsg_getneigh;
+
+# Connect to mdnsd via mdnsd socket.
+
+#line 23
+allow untrusted_app_29 mdnsd_socket:sock_file write;
+#line 23
+allow untrusted_app_29 mdnsd:unix_stream_socket connectto;
+#line 23
+
+#line 27
+
+
+# Allow calling inotify on APKs for backwards compatibility. This is disallowed
+# for targetSdkVersion>=34 to remove a sidechannel.
+allow untrusted_app_29 apk_data_file:dir { watch watch_reads };
+allow untrusted_app_29 apk_data_file:file { watch watch_reads };
+#line 36
+
+#line 1 "system/sepolicy/private/untrusted_app_30.te"
+###
+### Untrusted apps.
+###
+### This file defines the rules for untrusted apps running with
+### 29 < targetSdkVersion <= 31.
+###
+### See public/untrusted_app.te for more information about which apps are
+### placed in this selinux domain.
+###
+### TODO(b/192334803): Merge this policy into untrusted_app_29 when possible
+###
+
+typeattribute untrusted_app_30 coredomain;
+
+
+#line 15
+typeattribute untrusted_app_30 appdomain;
+#line 15
+# Label tmpfs objects for all apps.
+#line 15
+type_transition untrusted_app_30 tmpfs:file appdomain_tmpfs;
+#line 15
+
+#line 15
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 15
+type untrusted_app_30_userfaultfd;
+#line 15
+type_transition untrusted_app_30 untrusted_app_30:anon_inode untrusted_app_30_userfaultfd "[userfaultfd]";
+#line 15
+# Allow domain to create/use userfaultfd anon_inode.
+#line 15
+allow untrusted_app_30 untrusted_app_30_userfaultfd:anon_inode { create ioctl read };
+#line 15
+# Suppress errors generate during bugreport
+#line 15
+dontaudit su untrusted_app_30_userfaultfd:anon_inode *;
+#line 15
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 15
+neverallow { domain -untrusted_app_30 } untrusted_app_30_userfaultfd:anon_inode *;
+#line 15
+
+#line 15
+allow untrusted_app_30 appdomain_tmpfs:file { execute getattr map read write };
+#line 15
+neverallow { untrusted_app_30 -runas_app -shell -simpleperf } { domain -untrusted_app_30 }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+neverallow { appdomain -runas_app -shell -simpleperf -untrusted_app_30 } untrusted_app_30:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 15
+# The Android security model guarantees the confidentiality and integrity
+#line 15
+# of application data and execution state. Ptrace bypasses those
+#line 15
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 15
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 15
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 15
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 15
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 15
+# live lock conditions.
+#line 15
+neverallow { domain -untrusted_app_30 -crash_dump  -runas_app -simpleperf } untrusted_app_30:process ptrace;
+#line 15
+
+
+#line 16
+typeattribute untrusted_app_30 untrusted_app_all;
+#line 16
+
+
+#line 17
+typeattribute untrusted_app_30 netdomain;
+#line 17
+
+
+#line 18
+typeattribute untrusted_app_30 bluetoothdomain;
+#line 18
+
+
+# allow sending RTM_GETNEIGH{TBL} messages.
+allow untrusted_app_30 self:netlink_route_socket nlmsg_getneigh;
+auditallow untrusted_app_30 self:netlink_route_socket nlmsg_getneigh;
+
+# Connect to mdnsd via mdnsd socket.
+
+#line 25
+allow untrusted_app_30 mdnsd_socket:sock_file write;
+#line 25
+allow untrusted_app_30 mdnsd:unix_stream_socket connectto;
+#line 25
+
+#line 29
+
+
+# Allow calling inotify on APKs for backwards compatibility. This is disallowed
+# for targetSdkVersion>=34 to remove a sidechannel.
+allow untrusted_app_30 apk_data_file:dir { watch watch_reads };
+allow untrusted_app_30 apk_data_file:file { watch watch_reads };
+#line 38
+
+#line 1 "system/sepolicy/private/untrusted_app_32.te"
+###
+### Untrusted apps.
+###
+### This file defines the rules for untrusted apps running with
+### 31 < targetSdkVersion <= 33.
+###
+### See public/untrusted_app.te for more information about which apps are
+### placed in this selinux domain.
+###
+
+typeattribute untrusted_app_32 coredomain;
+
+
+#line 13
+typeattribute untrusted_app_32 appdomain;
+#line 13
+# Label tmpfs objects for all apps.
+#line 13
+type_transition untrusted_app_32 tmpfs:file appdomain_tmpfs;
+#line 13
+
+#line 13
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 13
+type untrusted_app_32_userfaultfd;
+#line 13
+type_transition untrusted_app_32 untrusted_app_32:anon_inode untrusted_app_32_userfaultfd "[userfaultfd]";
+#line 13
+# Allow domain to create/use userfaultfd anon_inode.
+#line 13
+allow untrusted_app_32 untrusted_app_32_userfaultfd:anon_inode { create ioctl read };
+#line 13
+# Suppress errors generate during bugreport
+#line 13
+dontaudit su untrusted_app_32_userfaultfd:anon_inode *;
+#line 13
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 13
+neverallow { domain -untrusted_app_32 } untrusted_app_32_userfaultfd:anon_inode *;
+#line 13
+
+#line 13
+allow untrusted_app_32 appdomain_tmpfs:file { execute getattr map read write };
+#line 13
+neverallow { untrusted_app_32 -runas_app -shell -simpleperf } { domain -untrusted_app_32 }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+neverallow { appdomain -runas_app -shell -simpleperf -untrusted_app_32 } untrusted_app_32:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 13
+# The Android security model guarantees the confidentiality and integrity
+#line 13
+# of application data and execution state. Ptrace bypasses those
+#line 13
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 13
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 13
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 13
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 13
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 13
+# live lock conditions.
+#line 13
+neverallow { domain -untrusted_app_32 -crash_dump  -runas_app -simpleperf } untrusted_app_32:process ptrace;
+#line 13
+
+
+#line 14
+typeattribute untrusted_app_32 untrusted_app_all;
+#line 14
+
+
+#line 15
+typeattribute untrusted_app_32 netdomain;
+#line 15
+
+
+#line 16
+typeattribute untrusted_app_32 bluetoothdomain;
+#line 16
+
+
+# Allow webview to access fd shared by sdksandbox for experiments data
+# TODO(b/229249719): Will not be supported in Android U
+allow untrusted_app_32 sdk_sandbox_data_file:fd use;
+allow untrusted_app_32 sdk_sandbox_data_file:file write;
+
+neverallow untrusted_app_32 sdk_sandbox_data_file:file { open create };
+
+# Connect to mdnsd via mdnsd socket.
+
+#line 26
+allow untrusted_app_32 mdnsd_socket:sock_file write;
+#line 26
+allow untrusted_app_32 mdnsd:unix_stream_socket connectto;
+#line 26
+
+#line 30
+
+
+# Allow calling inotify on APKs for backwards compatibility. This is disallowed
+# for targetSdkVersion>=34 to remove a sidechannel.
+allow untrusted_app_32 apk_data_file:dir { watch watch_reads };
+allow untrusted_app_32 apk_data_file:file { watch watch_reads };
+#line 39
+
+#line 1 "system/sepolicy/private/untrusted_app_all.te"
+###
+### Untrusted_app_all.
+###
+### This file defines the rules shared by all untrusted app domains except
+### ephemeral_app for instant apps and isolated_app (which has a reduced
+### permission set).
+### Apps are labeled based on mac_permissions.xml (maps signer and
+### optionally package name to seinfo value) and seapp_contexts (maps UID
+### and optionally seinfo value to domain for process and type for data
+### directory).  The untrusted_app_all attribute is assigned to all default
+### seapp_contexts for any app with UID between APP_AID (10000)
+### and AID_ISOLATED_START (99000) if the app has no specific seinfo
+### value as determined from mac_permissions.xml.  In current AOSP, this
+### attribute is assigned to all non-system apps as well as to any system apps
+### that are not signed by the platform key.  To move
+### a system app into a specific domain, add a signer entry for it to
+### mac_permissions.xml and assign it one of the pre-existing seinfo values
+### or define and use a new seinfo value in both mac_permissions.xml and
+### seapp_contexts.
+###
+### Note that rules that should apply to all untrusted apps must be in app.te or also
+### added to ephemeral_app.te.
+
+# Some apps ship with shared libraries and binaries that they write out
+# to their sandbox directory and then execute.
+allow untrusted_app_all privapp_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+allow untrusted_app_all app_data_file:file     { { getattr open read ioctl lock map watch watch_reads } execute };
+auditallow untrusted_app_all app_data_file:file execute;
+
+# Chrome Crashpad uses the the dynamic linker to load native executables
+# from an APK (b/112050209, crbug.com/928422)
+allow untrusted_app_all system_linker_exec:file execute_no_trans;
+
+# Follow priv-app symlinks. This is used for dynamite functionality.
+allow untrusted_app_all privapp_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow handling of less common filesystem objects
+allow untrusted_app_all app_data_file:{ lnk_file sock_file fifo_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow loading and deleting executable shared libraries
+# within an application home directory. Such shared libraries would be
+# created by things like renderscript or via other mechanisms.
+allow untrusted_app_all app_exec_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute unlink };
+
+# ASEC
+allow untrusted_app_all asec_apk_file:file { getattr open read ioctl lock map watch watch_reads };
+allow untrusted_app_all asec_apk_file:dir { open getattr read search ioctl lock watch watch_reads };
+# Execute libs in asec containers.
+allow untrusted_app_all asec_public_file:file { execute };
+
+# Used by Finsky / Android "Verify Apps" functionality when
+# running "adb install foo.apk".
+# TODO: Long term, we don't want apps probing into shell data files.
+# Figure out a way to remove these rules.
+allow untrusted_app_all shell_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow untrusted_app_all shell_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow traceur to pass file descriptors through a content provider to untrusted apps
+# for the purpose of sharing files through e.g. gmail
+allow untrusted_app_all trace_data_file:file { getattr read };
+
+# untrusted apps should not be able to open trace data files, they should depend
+# upon traceur to pass a file descriptor
+neverallow untrusted_app_all trace_data_file:dir *;
+neverallow untrusted_app_all trace_data_file:file { { append create link unlink relabelfrom rename setattr write } open };
+
+# neverallow untrusted apps accessing debugfs_tracing
+neverallow untrusted_app_all debugfs_tracing:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Allow to read staged apks.
+allow untrusted_app_all { apk_tmp_file apk_private_tmp_file }:file {read getattr};
+
+# Read and write system app data files passed over Binder.
+# Motivating case was /data/data/com.android.settings/cache/*.jpg for
+# cropping or taking user photos.
+allow untrusted_app_all system_app_data_file:file { read write getattr };
+
+#
+# Rules migrated from old app domains coalesced into untrusted_app.
+# This includes what used to be media_app, shared_app, and release_app.
+#
+
+# Access to /data/media.
+allow untrusted_app_all media_rw_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow untrusted_app_all media_rw_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# allow cts to query all services
+allow untrusted_app_all servicemanager:service_manager list;
+
+allow untrusted_app_all audioserver_service:service_manager find;
+allow untrusted_app_all cameraserver_service:service_manager find;
+allow untrusted_app_all drmserver_service:service_manager find;
+allow untrusted_app_all mediaserver_service:service_manager find;
+allow untrusted_app_all mediaextractor_service:service_manager find;
+allow untrusted_app_all mediametrics_service:service_manager find;
+allow untrusted_app_all mediadrmserver_service:service_manager find;
+allow untrusted_app_all nfc_service:service_manager find;
+allow untrusted_app_all radio_service:service_manager find;
+allow untrusted_app_all app_api_service:service_manager find;
+allow untrusted_app_all vr_manager_service:service_manager find;
+
+# gdbserver for ndk-gdb ptrace attaches to app process.
+allow untrusted_app_all self:process ptrace;
+
+# Android Studio Instant Run has the application connect to a
+# runas_app socket listening in the abstract namespace.
+# https://developer.android.com/studio/run/
+# b/123297648
+allow untrusted_app_all runas_app:unix_stream_socket connectto;
+
+# Untrusted apps need to be able to send a SIGCHLD to runas_app
+# when running under a debugger (b/123612207)
+allow untrusted_app_all runas_app:process sigchld;
+
+# Cts: HwRngTest
+allow untrusted_app_all sysfs_hwrandom:dir search;
+allow untrusted_app_all sysfs_hwrandom:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow apps to view preloaded media content
+allow untrusted_app_all preloads_media_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow untrusted_app_all preloads_media_file:file { getattr open read ioctl lock map watch watch_reads };
+allow untrusted_app_all preloads_data_file:dir search;
+
+# Allow untrusted apps read / execute access to /vendor/app for there can
+# be pre-installed vendor apps that package a library within themselves.
+# TODO (b/37784178) Consider creating  a special type for /vendor/app installed
+# apps.
+allow untrusted_app_all vendor_app_file:dir { open getattr read search };
+allow untrusted_app_all vendor_app_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+allow untrusted_app_all vendor_app_file:lnk_file { open getattr read };
+
+# allow untrusted apps to use UDP sockets provided by the system server but not
+# modify them other than to connect
+allow untrusted_app_all system_server:udp_socket {
+        connect getattr read recvfrom sendto write getopt setopt };
+
+# Allow the renderscript compiler to be run.
+
+#line 138
+# Allow the necessary permissions.
+#line 138
+
+#line 138
+# Old domain may exec the file and transition to the new domain.
+#line 138
+allow untrusted_app_all rs_exec:file { getattr open read execute map };
+#line 138
+allow untrusted_app_all rs:process transition;
+#line 138
+# New domain is entered by executing the file.
+#line 138
+allow rs rs_exec:file { entrypoint open read execute getattr map };
+#line 138
+# New domain can send SIGCHLD to its caller.
+#line 138
+allow rs untrusted_app_all:process sigchld;
+#line 138
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 138
+dontaudit untrusted_app_all rs:process noatsecure;
+#line 138
+# XXX dontaudit candidate but requires further study.
+#line 138
+allow untrusted_app_all rs:process { siginh rlimitinh };
+#line 138
+
+#line 138
+# Make the transition occur by default.
+#line 138
+type_transition untrusted_app_all rs_exec:process rs;
+#line 138
+
+
+# suppress denials caused by debugfs_tracing
+dontaudit untrusted_app_all debugfs_tracing:file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+# This is allowed for targetSdkVersion <= 25 but disallowed on newer versions.
+dontaudit untrusted_app_all net_dns_prop:file read;
+
+# These have been disallowed since Android O.
+# For P, we assume that apps are safely handling the denial.
+dontaudit untrusted_app_all {
+  proc_stat
+  proc_uptime
+  proc_vmstat
+  proc_zoneinfo
+}:file read;
+
+# Allow the allocation and use of ptys
+# Used by: https://play.google.com/store/apps/details?id=jackpal.androidterm
+
+#line 157
+# Each domain gets a unique devpts type.
+#line 157
+type untrusted_app_all_devpts, fs_type;
+#line 157
+# Label the pty with the unique type when created.
+#line 157
+type_transition untrusted_app_all devpts:chr_file untrusted_app_all_devpts;
+#line 157
+# Allow use of the pty after creation.
+#line 157
+allow untrusted_app_all untrusted_app_all_devpts:chr_file { open getattr read write ioctl };
+#line 157
+allowxperm untrusted_app_all untrusted_app_all_devpts:chr_file ioctl {
+#line 157
+  0x00005411 0x00005451 0x00005450 0x00005401 0x00005402 0x00005403 0x00005404 0x00005413 0x00005414
+#line 157
+  0x0000540e 0x0000540b 0x00005410 0x0000540f
+#line 157
+};
+#line 157
+# TIOCSTI is only ever used for exploits. Block it.
+#line 157
+# b/33073072, b/7530569
+#line 157
+# http://www.openwall.com/lists/oss-security/2016/09/26/14
+#line 157
+neverallowxperm * untrusted_app_all_devpts:chr_file ioctl 0x00005412;
+#line 157
+# Note: devpts:dir search and ptmx_device:chr_file rw_file_perms
+#line 157
+# allowed to everyone via domain.te.
+#line 157
+
+
+# Allow access to kcov via its ioctl interface for coverage
+# guided kernel fuzzing.
+#line 164
+
+
+# Allow running a VM for test/demo purposes. Note that access to the
+# service is still guarded with the
+# `android.permission.MANAGE_VIRTUAL_MACHINE` permission. The
+# protection level of the permission is
+# `signature|privileged|development` so that it can only be granted to
+# either platform-key signed apps, privileged apps, or test-only apps
+# having `android:testOnly="true"` in their manifest.
+
+#line 173
+# Transition to virtualizationmanager when the client executes it.
+#line 173
+
+#line 173
+# Allow the necessary permissions.
+#line 173
+
+#line 173
+# Old domain may exec the file and transition to the new domain.
+#line 173
+allow untrusted_app_all virtualizationmanager_exec:file { getattr open read execute map };
+#line 173
+allow untrusted_app_all virtualizationmanager:process transition;
+#line 173
+# New domain is entered by executing the file.
+#line 173
+allow virtualizationmanager virtualizationmanager_exec:file { entrypoint open read execute getattr map };
+#line 173
+# New domain can send SIGCHLD to its caller.
+#line 173
+allow virtualizationmanager untrusted_app_all:process sigchld;
+#line 173
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 173
+dontaudit untrusted_app_all virtualizationmanager:process noatsecure;
+#line 173
+# XXX dontaudit candidate but requires further study.
+#line 173
+allow untrusted_app_all virtualizationmanager:process { siginh rlimitinh };
+#line 173
+
+#line 173
+# Make the transition occur by default.
+#line 173
+type_transition untrusted_app_all virtualizationmanager_exec:process virtualizationmanager;
+#line 173
+
+#line 173
+# Allow virtualizationmanager to communicate over UDS with the client.
+#line 173
+allow { virtualizationmanager crosvm } untrusted_app_all:unix_stream_socket { ioctl getattr read write };
+#line 173
+# Let the client pass file descriptors to virtualizationmanager and on to crosvm.
+#line 173
+allow { virtualizationmanager crosvm } untrusted_app_all:fd use;
+#line 173
+# Let the client use file descriptors created by virtualizationmanager.
+#line 173
+allow untrusted_app_all virtualizationmanager:fd use;
+#line 173
+# Allow piping console log to the client
+#line 173
+allow { virtualizationmanager crosvm } untrusted_app_all:fifo_file { ioctl getattr read write };
+#line 173
+# Allow client to read/write vsock created by virtualizationmanager to communicate with the VM
+#line 173
+# that it created. Notice that we do not grant permission to create a vsock;
+#line 173
+# the client can only connect to VMs that it owns.
+#line 173
+allow untrusted_app_all virtualizationmanager:vsock_socket { getattr getopt read write };
+#line 173
+# Allow client to inspect hypervisor capabilities
+#line 173
+
+#line 173
+allow untrusted_app_all hypervisor_prop:file { getattr open read map };
+#line 173
+
+#line 173
+# Allow client to read (but not open) the crashdump provided by virtualizationmanager
+#line 173
+allow untrusted_app_all virtualizationservice_data_file:file { getattr read };
+#line 173
+
+
+#line 179
+
+#line 1 "system/sepolicy/private/update_engine.te"
+typeattribute update_engine coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init update_engine_exec:file { getattr open read execute map };
+#line 3
+allow init update_engine:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow update_engine update_engine_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init update_engine:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init update_engine:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init update_engine_exec:process update_engine;
+#line 3
+
+#line 3
+;
+
+# Allow to talk to gsid.
+allow update_engine gsi_service:service_manager find;
+
+#line 7
+# Call the server domain and optionally transfer references to it.
+#line 7
+allow update_engine gsid:binder { call transfer };
+#line 7
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 7
+allow gsid update_engine:binder transfer;
+#line 7
+# Receive and use open files from the server.
+#line 7
+allow update_engine gsid:fd use;
+#line 7
+
+
+# Allow to start gsid service.
+
+#line 10
+
+#line 10
+allow update_engine property_socket:sock_file write;
+#line 10
+allow update_engine init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow update_engine ctl_gsid_prop:property_service set;
+#line 10
+
+#line 10
+allow update_engine ctl_gsid_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+# Allow to start snapuserd for dm-user communication.
+
+#line 13
+
+#line 13
+allow update_engine property_socket:sock_file write;
+#line 13
+allow update_engine init:unix_stream_socket connectto;
+#line 13
+
+#line 13
+allow update_engine ctl_snapuserd_prop:property_service set;
+#line 13
+
+#line 13
+allow update_engine ctl_snapuserd_prop:file { getattr open read map };
+#line 13
+
+#line 13
+
+
+# Allow to set the OTA related properties, e.g. ota.warm_reset.
+
+#line 16
+
+#line 16
+allow update_engine property_socket:sock_file write;
+#line 16
+allow update_engine init:unix_stream_socket connectto;
+#line 16
+
+#line 16
+allow update_engine ota_prop:property_service set;
+#line 16
+
+#line 16
+allow update_engine ota_prop:file { getattr open read map };
+#line 16
+
+#line 16
+
+
+#line 17
+allow update_engine ota_build_prop:file { getattr open read map };
+#line 17
+
+
+# Allow to get the DSU status
+
+#line 20
+allow update_engine gsid_prop:file { getattr open read map };
+#line 20
+
+
+# Allow update_engine to call the callback function provided by GKI update hook.
+
+#line 23
+# Call the server domain and optionally transfer references to it.
+#line 23
+allow update_engine gki_apex_prepostinstall:binder { call transfer };
+#line 23
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 23
+allow gki_apex_prepostinstall update_engine:binder transfer;
+#line 23
+# Receive and use open files from the server.
+#line 23
+allow update_engine gki_apex_prepostinstall:fd use;
+#line 23
+
+
+# Allow update_engine to call the callback function by settings app
+# for the kernel update triggered using 16k developer option
+
+#line 27
+# Call the server domain and optionally transfer references to it.
+#line 27
+allow update_engine system_app:binder { call transfer };
+#line 27
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 27
+allow system_app update_engine:binder transfer;
+#line 27
+# Receive and use open files from the server.
+#line 27
+allow update_engine system_app:fd use;
+#line 27
+
+
+# Allow to communicate with the snapuserd service, for dm-user snapshots.
+allow update_engine snapuserd:unix_stream_socket connectto;
+allow update_engine snapuserd_socket:sock_file write;
+
+#line 32
+allow update_engine snapuserd_prop:file { getattr open read map };
+#line 32
+
+
+# Allow to communicate with apexd for calculating and reserving space for
+# capex decompression
+allow update_engine apex_service:service_manager find;
+
+#line 37
+# Call the server domain and optionally transfer references to it.
+#line 37
+allow update_engine apexd:binder { call transfer };
+#line 37
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 37
+allow apexd update_engine:binder transfer;
+#line 37
+# Receive and use open files from the server.
+#line 37
+allow update_engine apexd:fd use;
+#line 37
+
+
+# let this domain use the hal service
+
+#line 40
+# Call the servicemanager and transfer references to it.
+#line 40
+allow update_engine servicemanager:binder { call transfer };
+#line 40
+# Allow servicemanager to send out callbacks
+#line 40
+allow servicemanager update_engine:binder { call transfer };
+#line 40
+# servicemanager performs getpidcon on clients.
+#line 40
+allow servicemanager update_engine:dir search;
+#line 40
+allow servicemanager update_engine:file { read open };
+#line 40
+allow servicemanager update_engine:process getattr;
+#line 40
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 40
+# all domains in domain.te.
+#line 40
+
+
+#line 41
+typeattribute update_engine halclientdomain;
+#line 41
+typeattribute update_engine hal_bootctl_client;
+#line 41
+
+#line 41
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 41
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 41
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 41
+
+#line 41
+typeattribute update_engine hal_bootctl;
+#line 41
+# Find passthrough HAL implementations
+#line 41
+allow hal_bootctl system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 41
+allow hal_bootctl vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 41
+allow hal_bootctl vendor_file:file { read open getattr execute map };
+#line 41
+
+#line 41
+
+#line 1 "system/sepolicy/private/update_engine_common.te"
+# type_transition must be private policy the domain_trans rules could stay
+# public, but conceptually should go with this
+# The postinstall program is run by update_engine_common and must be tagged
+# with postinstall_exec in the new filesystem.
+# TODO Have build system attempt to verify this
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow update_engine_common postinstall_exec:file { getattr open read execute map };
+#line 6
+allow update_engine_common postinstall:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow postinstall postinstall_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+allow postinstall update_engine_common:process sigchld;
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit update_engine_common postinstall:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow update_engine_common postinstall:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition update_engine_common postinstall_exec:process postinstall;
+#line 6
+
+
+# Vendor directories can have the transition as well during OTA. This is caused
+# by update_engine execing scripts in vendor to perform any update tasks needed
+# there.
+
+#line 11
+# Allow the necessary permissions.
+#line 11
+
+#line 11
+# Old domain may exec the file and transition to the new domain.
+#line 11
+allow update_engine_common postinstall_file:file { getattr open read execute map };
+#line 11
+allow update_engine_common postinstall:process transition;
+#line 11
+# New domain is entered by executing the file.
+#line 11
+allow postinstall postinstall_file:file { entrypoint open read execute getattr map };
+#line 11
+# New domain can send SIGCHLD to its caller.
+#line 11
+allow postinstall update_engine_common:process sigchld;
+#line 11
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 11
+dontaudit update_engine_common postinstall:process noatsecure;
+#line 11
+# XXX dontaudit candidate but requires further study.
+#line 11
+allow update_engine_common postinstall:process { siginh rlimitinh };
+#line 11
+
+#line 11
+# Make the transition occur by default.
+#line 11
+type_transition update_engine_common postinstall_file:process postinstall;
+#line 11
+
+
+allow update_engine_common labeledfs:filesystem { mount unmount relabelfrom };
+#line 1 "system/sepolicy/private/update_verifier.te"
+typeattribute update_verifier coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init update_verifier_exec:file { getattr open read execute map };
+#line 3
+allow init update_verifier:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow update_verifier update_verifier_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init update_verifier:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init update_verifier:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init update_verifier_exec:process update_verifier;
+#line 3
+
+#line 3
+
+
+# Allow update_verifier to reboot the device.
+
+#line 6
+
+#line 6
+allow update_verifier property_socket:sock_file write;
+#line 6
+allow update_verifier init:unix_stream_socket connectto;
+#line 6
+
+#line 6
+allow update_verifier powerctl_prop:property_service set;
+#line 6
+
+#line 6
+allow update_verifier powerctl_prop:file { getattr open read map };
+#line 6
+
+#line 6
+
+
+# Allow to set the OTA related properties e.g. ota.warm_reset.
+
+#line 9
+
+#line 9
+allow update_verifier property_socket:sock_file write;
+#line 9
+allow update_verifier init:unix_stream_socket connectto;
+#line 9
+
+#line 9
+allow update_verifier ota_prop:property_service set;
+#line 9
+
+#line 9
+allow update_verifier ota_prop:file { getattr open read map };
+#line 9
+
+#line 9
+
+
+# allow update_verifier to connect to snapuserd daemon
+allow update_verifier snapuserd_socket:sock_file write;
+allow update_verifier snapuserd:unix_stream_socket connectto;
+
+# virtual a/b properties
+
+#line 16
+allow update_verifier virtual_ab_prop:file { getattr open read map };
+#line 16
+
+#line 1 "system/sepolicy/private/uprobestats.te"
+type uprobestats, domain, coredomain;
+
+typeattribute uprobestats bpfdomain;
+
+type uprobestats_exec, system_file_type, exec_type, file_type;
+
+# Allow init to start uprobestats.
+
+#line 8
+
+#line 8
+# Allow the necessary permissions.
+#line 8
+
+#line 8
+# Old domain may exec the file and transition to the new domain.
+#line 8
+allow init uprobestats_exec:file { getattr open read execute map };
+#line 8
+allow init uprobestats:process transition;
+#line 8
+# New domain is entered by executing the file.
+#line 8
+allow uprobestats uprobestats_exec:file { entrypoint open read execute getattr map };
+#line 8
+# New domain can send SIGCHLD to its caller.
+#line 8
+
+#line 8
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 8
+dontaudit init uprobestats:process noatsecure;
+#line 8
+# XXX dontaudit candidate but requires further study.
+#line 8
+allow init uprobestats:process { siginh rlimitinh };
+#line 8
+
+#line 8
+# Make the transition occur by default.
+#line 8
+type_transition init uprobestats_exec:process uprobestats;
+#line 8
+
+#line 8
+
+
+allow uprobestats fs_bpf_uprobestats:file { read write };
+allow uprobestats fs_bpf_uprobestats:dir search;
+allow uprobestats bpfloader:bpf { map_read map_write prog_run };
+allow uprobestats self:capability2 perfmon;
+allow uprobestats self:perf_event { cpu open write };
+allow uprobestats sysfs_uprobe:file { open read };
+allow uprobestats sysfs_uprobe:dir { search };
+
+# Allow uprobestats to popen oatdump.
+allow uprobestats oatdump_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow uprobestats to write atoms to statsd
+
+#line 22
+allow uprobestats statsdw_socket:sock_file write;
+#line 22
+allow uprobestats statsd:unix_dgram_socket sendto;
+#line 22
+
+
+# For registration with system server as a process observer.
+
+#line 25
+# Call the servicemanager and transfer references to it.
+#line 25
+allow uprobestats servicemanager:binder { call transfer };
+#line 25
+# Allow servicemanager to send out callbacks
+#line 25
+allow servicemanager uprobestats:binder { call transfer };
+#line 25
+# servicemanager performs getpidcon on clients.
+#line 25
+allow servicemanager uprobestats:dir search;
+#line 25
+allow servicemanager uprobestats:file { read open };
+#line 25
+allow servicemanager uprobestats:process getattr;
+#line 25
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 25
+# all domains in domain.te.
+#line 25
+
+allow uprobestats activity_service:service_manager find;
+
+#line 27
+# Call the server domain and optionally transfer references to it.
+#line 27
+allow uprobestats system_server:binder { call transfer };
+#line 27
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 27
+allow system_server uprobestats:binder transfer;
+#line 27
+# Receive and use open files from the server.
+#line 27
+allow uprobestats system_server:fd use;
+#line 27
+;
+
+# Allow uprobestats to talk to native package manager
+allow uprobestats package_native_service:service_manager find;
+
+# Allow uprobestats to scan /proc/<pid>/cmdline.
+
+#line 33
+allow uprobestats { domain -appdomain }:dir { open getattr read search ioctl lock watch watch_reads };
+#line 33
+allow uprobestats { domain -appdomain }:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 33
+
+
+# Allow uprobestats to manage its own config files.
+allow uprobestats uprobestats_configs_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow uprobestats uprobestats_configs_data_file:file { { getattr open read ioctl lock map watch watch_reads } unlink };
+#line 1 "system/sepolicy/private/usbd.te"
+typeattribute usbd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init usbd_exec:file { getattr open read execute map };
+#line 3
+allow init usbd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow usbd usbd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init usbd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init usbd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init usbd_exec:process usbd;
+#line 3
+
+#line 3
+
+
+# Access usb gadget hal
+
+#line 6
+typeattribute usbd halclientdomain;
+#line 6
+typeattribute usbd hal_usb_gadget_client;
+#line 6
+
+#line 6
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 6
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 6
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 6
+
+#line 6
+typeattribute usbd hal_usb_gadget;
+#line 6
+# Find passthrough HAL implementations
+#line 6
+allow hal_usb_gadget system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_usb_gadget vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 6
+allow hal_usb_gadget vendor_file:file { read open getattr execute map };
+#line 6
+
+#line 6
+
+
+# Access persist.sys.usb.config
+
+#line 9
+allow usbd system_prop:file { getattr open read map };
+#line 9
+
+
+# start adbd during boot if adb is enabled
+
+#line 12
+
+#line 12
+allow usbd property_socket:sock_file write;
+#line 12
+allow usbd init:unix_stream_socket connectto;
+#line 12
+
+#line 12
+allow usbd ctl_default_prop:property_service set;
+#line 12
+
+#line 12
+allow usbd ctl_default_prop:file { getattr open read map };
+#line 12
+
+#line 12
+
+
+# Start/stop adbd via ctl.start adbd
+
+#line 15
+
+#line 15
+allow usbd property_socket:sock_file write;
+#line 15
+allow usbd init:unix_stream_socket connectto;
+#line 15
+
+#line 15
+allow usbd ctl_adbd_prop:property_service set;
+#line 15
+
+#line 15
+allow usbd ctl_adbd_prop:file { getattr open read map };
+#line 15
+
+#line 15
+
+#line 1 "system/sepolicy/private/vdc.te"
+typeattribute vdc coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init vdc_exec:file { getattr open read execute map };
+#line 3
+allow init vdc:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow vdc vdc_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init vdc:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init vdc:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init vdc_exec:process vdc;
+#line 3
+
+#line 3
+
+
+# Allow stdin/out back to vehicle_binding_util
+allow vdc vehicle_binding_util:fd use;
+#line 1 "system/sepolicy/private/vehicle_binding_util.te"
+# vehicle binding util startup application
+type vehicle_binding_util, domain, coredomain;
+
+# allow init to start vehicle_binding_util
+type vehicle_binding_util_exec, exec_type, file_type, system_file_type;
+
+#line 6
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init vehicle_binding_util_exec:file { getattr open read execute map };
+#line 6
+allow init vehicle_binding_util:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow vehicle_binding_util vehicle_binding_util_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init vehicle_binding_util:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init vehicle_binding_util:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition init vehicle_binding_util_exec:process vehicle_binding_util;
+#line 6
+
+#line 6
+
+
+# allow writing to kmsg during boot
+allow vehicle_binding_util kmsg_device:chr_file { getattr { open append write lock map } };
+
+# allow reading the binding property from HIDL VHAL.
+
+#line 12
+# Call the hwservicemanager and transfer references to it.
+#line 12
+allow vehicle_binding_util hwservicemanager:binder { call transfer };
+#line 12
+# Allow hwservicemanager to send out callbacks
+#line 12
+allow hwservicemanager vehicle_binding_util:binder { call transfer };
+#line 12
+# hwservicemanager performs getpidcon on clients.
+#line 12
+allow hwservicemanager vehicle_binding_util:dir search;
+#line 12
+allow hwservicemanager vehicle_binding_util:file { read open map };
+#line 12
+allow hwservicemanager vehicle_binding_util:process getattr;
+#line 12
+# rw access to /dev/hwbinder and /dev/ashmem is presently granted to
+#line 12
+# all domains in domain.te.
+#line 12
+
+# allow reading the binding property from AIDL VHAL.
+
+#line 14
+# Call the servicemanager and transfer references to it.
+#line 14
+allow vehicle_binding_util servicemanager:binder { call transfer };
+#line 14
+# Allow servicemanager to send out callbacks
+#line 14
+allow servicemanager vehicle_binding_util:binder { call transfer };
+#line 14
+# servicemanager performs getpidcon on clients.
+#line 14
+allow servicemanager vehicle_binding_util:dir search;
+#line 14
+allow servicemanager vehicle_binding_util:file { read open };
+#line 14
+allow servicemanager vehicle_binding_util:process getattr;
+#line 14
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 14
+# all domains in domain.te.
+#line 14
+
+
+#line 15
+typeattribute vehicle_binding_util halclientdomain;
+#line 15
+typeattribute vehicle_binding_util hal_vehicle_client;
+#line 15
+
+#line 15
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 15
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 15
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 15
+
+#line 15
+typeattribute vehicle_binding_util hal_vehicle;
+#line 15
+# Find passthrough HAL implementations
+#line 15
+allow hal_vehicle system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow hal_vehicle vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 15
+allow hal_vehicle vendor_file:file { read open getattr execute map };
+#line 15
+
+#line 15
+
+
+# allow executing vdc
+
+#line 18
+# Allow the necessary permissions.
+#line 18
+
+#line 18
+# Old domain may exec the file and transition to the new domain.
+#line 18
+allow vehicle_binding_util vdc_exec:file { getattr open read execute map };
+#line 18
+allow vehicle_binding_util vdc:process transition;
+#line 18
+# New domain is entered by executing the file.
+#line 18
+allow vdc vdc_exec:file { entrypoint open read execute getattr map };
+#line 18
+# New domain can send SIGCHLD to its caller.
+#line 18
+allow vdc vehicle_binding_util:process sigchld;
+#line 18
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 18
+dontaudit vehicle_binding_util vdc:process noatsecure;
+#line 18
+# XXX dontaudit candidate but requires further study.
+#line 18
+allow vehicle_binding_util vdc:process { siginh rlimitinh };
+#line 18
+
+#line 18
+# Make the transition occur by default.
+#line 18
+type_transition vehicle_binding_util vdc_exec:process vdc;
+#line 18
+
+
+# devpts is needed to redirect output from vdc
+allow vehicle_binding_util devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+
+#line 1 "system/sepolicy/private/vendor_init.te"
+# Creating files on sysfs is impossible so this isn't a threat
+# Sometimes we have to write to non-existent files to avoid conditional
+# init behavior. See b/35303861 for an example.
+dontaudit vendor_init sysfs:dir write;
+
+# TODO(b/140259336) We want to remove vendor_init in the long term but allow for now
+allow vendor_init system_data_root_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+
+# Let vendor_init set service.adb.tcp.port.
+
+#line 10
+
+#line 10
+allow vendor_init property_socket:sock_file write;
+#line 10
+allow vendor_init init:unix_stream_socket connectto;
+#line 10
+
+#line 10
+allow vendor_init adbd_config_prop:property_service set;
+#line 10
+
+#line 10
+allow vendor_init adbd_config_prop:file { getattr open read map };
+#line 10
+
+#line 10
+
+
+# Let vendor_init react to AVF device config changes
+
+#line 13
+allow vendor_init device_config_virtualization_framework_native_prop:file { getattr open read map };
+#line 13
+
+
+# Let vendor_init use apex.<name>.ready to start services from vendor APEX
+
+#line 16
+allow vendor_init apex_ready_prop:file { getattr open read map };
+#line 16
+
+
+# chown/chmod on devices, e.g. /dev/ttyHS0
+allow vendor_init {
+  dev_type
+  -keychord_device
+  -vm_manager_device_type
+  -port_device
+  -lowpan_device
+  -hw_random_device
+}:chr_file setattr;
+#line 34 "system/sepolicy/private/vfio_handler.te"
+ # is_flag_enabled(RELEASE_AVF_ENABLE_DEVICE_ASSIGNMENT)
+#line 1 "system/sepolicy/private/viewcompiler.te"
+# viewcompiler
+type viewcompiler, domain, coredomain, mlstrustedsubject;
+type viewcompiler_exec, system_file_type, exec_type, file_type;
+type viewcompiler_tmpfs, file_type;
+
+# Reading an APK opens a ZipArchive, which unpack to tmpfs.
+# Use tmpfs_domain() which will give tmpfs files created by viewcompiler their
+# own label, which differs from other labels created by other processes.
+# This allows to distinguish in policy files created by viewcompiler vs other
+# processes.
+
+#line 11
+type_transition viewcompiler tmpfs:file viewcompiler_tmpfs;
+#line 11
+allow viewcompiler viewcompiler_tmpfs:file { read write getattr map };
+#line 11
+
+
+allow viewcompiler installd:fd use;
+
+# Include write permission for app data files so viewcompiler can generate
+# compiled layout dex files
+allow viewcompiler app_data_file:file { getattr write };
+
+# Allow the view compiler to read resources from the apps APK.
+allow viewcompiler apk_data_file:file { read map };
+
+# priv-apps are moving to a world where they can only execute
+# signed code. Make sure viewcompiler never can write to privapp
+# directories to avoid introducing unsigned executable code
+neverallow viewcompiler privapp_data_file:file { append create link unlink relabelfrom rename setattr write };
+#line 1 "system/sepolicy/private/virtual_camera.te"
+# virtual_camera - virtual camera daemon
+
+type virtual_camera, domain, coredomain;
+type virtual_camera_exec, system_file_type, exec_type, file_type;
+
+
+#line 6
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow init virtual_camera_exec:file { getattr open read execute map };
+#line 6
+allow init virtual_camera:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow virtual_camera virtual_camera_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit init virtual_camera:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow init virtual_camera:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition init virtual_camera_exec:process virtual_camera;
+#line 6
+
+#line 6
+
+
+# Since virtual_camera is not a real HAL we don't set the
+# hal_server_domain(virtual_camera, hal_camera) macro but only the rules that
+# we actually need from halserverdomain and hal_camera_server:
+
+#line 11
+# Call the servicemanager and transfer references to it.
+#line 11
+allow virtual_camera servicemanager:binder { call transfer };
+#line 11
+# Allow servicemanager to send out callbacks
+#line 11
+allow servicemanager virtual_camera:binder { call transfer };
+#line 11
+# servicemanager performs getpidcon on clients.
+#line 11
+allow servicemanager virtual_camera:dir search;
+#line 11
+allow servicemanager virtual_camera:file { read open };
+#line 11
+allow servicemanager virtual_camera:process getattr;
+#line 11
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 11
+# all domains in domain.te.
+#line 11
+
+
+#line 12
+# Call the server domain and optionally transfer references to it.
+#line 12
+allow virtual_camera cameraserver:binder { call transfer };
+#line 12
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 12
+allow cameraserver virtual_camera:binder transfer;
+#line 12
+# Receive and use open files from the server.
+#line 12
+allow virtual_camera cameraserver:fd use;
+#line 12
+
+
+#line 13
+# Call the server domain and optionally transfer references to it.
+#line 13
+allow virtual_camera system_server:binder { call transfer };
+#line 13
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 13
+allow system_server virtual_camera:binder transfer;
+#line 13
+# Receive and use open files from the server.
+#line 13
+allow virtual_camera system_server:fd use;
+#line 13
+
+
+# Allow virtual_camera to communicate with
+# mediaserver (required for using Surface originating
+# from virtual camera in mediaserver).
+
+#line 18
+# Call the server domain and optionally transfer references to it.
+#line 18
+allow virtual_camera mediaserver:binder { call transfer };
+#line 18
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 18
+allow mediaserver virtual_camera:binder transfer;
+#line 18
+# Receive and use open files from the server.
+#line 18
+allow virtual_camera mediaserver:fd use;
+#line 18
+
+
+# Required for the codecs to be able to decode
+# video into surface provided by virtual camera.
+
+#line 22
+typeattribute virtual_camera halclientdomain;
+#line 22
+typeattribute virtual_camera hal_codec2_client;
+#line 22
+
+#line 22
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 22
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 22
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 22
+
+#line 22
+typeattribute virtual_camera hal_codec2;
+#line 22
+# Find passthrough HAL implementations
+#line 22
+allow hal_codec2 system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow hal_codec2 vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 22
+allow hal_codec2 vendor_file:file { read open getattr execute map };
+#line 22
+
+#line 22
+
+
+#line 23
+typeattribute virtual_camera halclientdomain;
+#line 23
+typeattribute virtual_camera hal_omx_client;
+#line 23
+
+#line 23
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 23
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 23
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 23
+
+#line 23
+typeattribute virtual_camera hal_omx;
+#line 23
+# Find passthrough HAL implementations
+#line 23
+allow hal_omx system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 23
+allow hal_omx vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 23
+allow hal_omx vendor_file:file { read open getattr execute map };
+#line 23
+
+#line 23
+
+
+# Allow virtualCamera to call apps via binder.
+
+#line 26
+# Call the server domain and optionally transfer references to it.
+#line 26
+allow virtual_camera appdomain:binder { call transfer };
+#line 26
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 26
+allow appdomain virtual_camera:binder transfer;
+#line 26
+# Receive and use open files from the server.
+#line 26
+allow virtual_camera appdomain:fd use;
+#line 26
+
+
+# Allow virtual_camera to use fd from apps
+allow virtual_camera { appdomain -isolated_app }:fd use;
+
+# Only allow virtual_camera to add a virtual_camera_service and no one else.
+
+#line 32
+  allow virtual_camera virtual_camera_service:service_manager { add find };
+#line 32
+  neverallow { domain -virtual_camera } virtual_camera_service:service_manager add;
+#line 32
+
+#line 32
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 32
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 32
+  
+#line 32
+;
+
+# Allow virtual_camera to map graphic buffers
+
+#line 35
+typeattribute virtual_camera halclientdomain;
+#line 35
+typeattribute virtual_camera hal_graphics_allocator_client;
+#line 35
+
+#line 35
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 35
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 35
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 35
+
+#line 35
+typeattribute virtual_camera hal_graphics_allocator;
+#line 35
+# Find passthrough HAL implementations
+#line 35
+allow hal_graphics_allocator system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 35
+allow hal_graphics_allocator vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 35
+allow hal_graphics_allocator vendor_file:file { read open getattr execute map };
+#line 35
+
+#line 35
+
+
+# Allow virtual_camera to use GPU
+allow virtual_camera gpu_device:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow virtual_camera gpu_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow virtual camera to use graphics composer fd-s (fences).
+allow virtual_camera hal_graphics_composer:fd use;
+
+# For collecting bugreports.
+allow virtual_camera dumpstate:fd use;
+allow virtual_camera dumpstate:fifo_file write;
+
+# Needed for permission checks.
+allow virtual_camera permission_service:service_manager find;
+#line 1 "system/sepolicy/private/virtual_touchpad.te"
+typeattribute virtual_touchpad coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init virtual_touchpad_exec:file { getattr open read execute map };
+#line 3
+allow init virtual_touchpad:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow virtual_touchpad virtual_touchpad_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init virtual_touchpad:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init virtual_touchpad:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init virtual_touchpad_exec:process virtual_touchpad;
+#line 3
+
+#line 3
+
+#line 1 "system/sepolicy/private/virtualizationmanager.te"
+# Domain for a child process that manages virtual machines on behalf of its parent.
+
+type virtualizationmanager, domain, coredomain;
+type virtualizationmanager_exec, system_file_type, exec_type, file_type;
+
+# Allow virtualizationmanager to communicate use, read and write over the adb connection.
+allow virtualizationmanager adbd:fd use;
+allow virtualizationmanager adbd:unix_stream_socket { getattr read write };
+
+# Allow writing VM logs to the shell console
+allow virtualizationmanager devpts:chr_file { read write getattr ioctl };
+
+# Let the virtualizationmanager domain use Binder.
+
+#line 14
+# Call the servicemanager and transfer references to it.
+#line 14
+allow virtualizationmanager servicemanager:binder { call transfer };
+#line 14
+# Allow servicemanager to send out callbacks
+#line 14
+allow servicemanager virtualizationmanager:binder { call transfer };
+#line 14
+# servicemanager performs getpidcon on clients.
+#line 14
+allow servicemanager virtualizationmanager:dir search;
+#line 14
+allow servicemanager virtualizationmanager:file { read open };
+#line 14
+allow servicemanager virtualizationmanager:process getattr;
+#line 14
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 14
+# all domains in domain.te.
+#line 14
+
+
+# Let virtualizationmanager find and communicate with virtualizationservice.
+allow virtualizationmanager virtualization_service:service_manager find;
+
+#line 18
+# Call the server domain and optionally transfer references to it.
+#line 18
+allow virtualizationmanager virtualizationservice:binder { call transfer };
+#line 18
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 18
+allow virtualizationservice virtualizationmanager:binder transfer;
+#line 18
+# Receive and use open files from the server.
+#line 18
+allow virtualizationmanager virtualizationservice:fd use;
+#line 18
+
+
+# Allow calling into the system server to find native services. "permission_service" to check
+# permissions, and "package_native" for staged apex info.
+
+#line 22
+# Call the server domain and optionally transfer references to it.
+#line 22
+allow virtualizationmanager system_server:binder { call transfer };
+#line 22
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 22
+allow system_server virtualizationmanager:binder transfer;
+#line 22
+# Receive and use open files from the server.
+#line 22
+allow virtualizationmanager system_server:fd use;
+#line 22
+
+allow virtualizationmanager { package_native_service permission_service }:service_manager find;
+
+# When virtualizationmanager execs a file with the crosvm_exec label, run it in the crosvm domain.
+
+#line 26
+# Allow the necessary permissions.
+#line 26
+
+#line 26
+# Old domain may exec the file and transition to the new domain.
+#line 26
+allow virtualizationmanager crosvm_exec:file { getattr open read execute map };
+#line 26
+allow virtualizationmanager crosvm:process transition;
+#line 26
+# New domain is entered by executing the file.
+#line 26
+allow crosvm crosvm_exec:file { entrypoint open read execute getattr map };
+#line 26
+# New domain can send SIGCHLD to its caller.
+#line 26
+allow crosvm virtualizationmanager:process sigchld;
+#line 26
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 26
+dontaudit virtualizationmanager crosvm:process noatsecure;
+#line 26
+# XXX dontaudit candidate but requires further study.
+#line 26
+allow virtualizationmanager crosvm:process { siginh rlimitinh };
+#line 26
+
+#line 26
+# Make the transition occur by default.
+#line 26
+type_transition virtualizationmanager crosvm_exec:process crosvm;
+#line 26
+
+
+# Let virtualizationmanager kill crosvm.
+allow virtualizationmanager crosvm:process sigkill;
+
+# Let virtualizationmanager create files inside virtualizationservice's temporary directories.
+allow virtualizationmanager virtualizationservice_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow virtualizationmanager virtualizationservice_data_file:{ file sock_file } { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Let virtualizationmanager read and write files from its various clients, but not open them
+# directly as they must be passed over Binder by the client.
+allow virtualizationmanager apk_data_file:file { getattr read };
+
+# Write access is needed for mutable partitions like instance.img
+allow virtualizationmanager {
+  app_data_file
+  apex_compos_data_file
+  apex_virt_data_file
+  privapp_data_file
+}:file { getattr read write };
+
+# shell_data_file is used for automated tests and manual debugging.
+allow virtualizationmanager shell_data_file:file { getattr read write };
+
+# Allow virtualizationmanager to read apex-info-list.xml and access the APEX files listed there.
+allow virtualizationmanager apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+allow virtualizationmanager apex_data_file:dir search;
+allow virtualizationmanager staging_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow virtualizationmanager staging_data_file:dir search;
+
+# Run derive_classpath in our domain
+allow virtualizationmanager derive_classpath_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow virtualizationmanager apex_mnt_dir:dir { open getattr read search ioctl lock watch watch_reads };
+# Ignore harmless denials on /proc/self/fd
+dontaudit virtualizationmanager self:dir write;
+
+# Let virtualizationmanager to accept vsock connection from the guest VMs
+allow virtualizationmanager self:vsock_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } listen accept };
+
+# Allow virtualizationmanager to inspect all hypervisor capabilities.
+
+#line 66
+allow virtualizationmanager hypervisor_prop:file { getattr open read map };
+#line 66
+
+
+#line 67
+allow virtualizationmanager hypervisor_restricted_prop:file { getattr open read map };
+#line 67
+
+
+# Allow virtualizationmanager to be read custom pvmfw.img configuration
+
+dontaudit virtualizationmanager hypervisor_pvmfw_prop:file read;
+neverallow { domain -init -dumpstate  } hypervisor_pvmfw_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Allow virtualizationmanager to be read custom virtualizationmanager configuration
+
+dontaudit virtualizationmanager hypervisor_virtualizationmanager_prop:file read;
+neverallow { domain -init -dumpstate  } hypervisor_virtualizationmanager_prop:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+
+# Allow virtualizationmanager service to talk to tombstoned to push guest ramdumps
+
+#line 80
+allow virtualizationmanager tombstoned_crash_socket:sock_file write;
+#line 80
+allow virtualizationmanager tombstoned:unix_stream_socket connectto;
+#line 80
+
+
+# Append ramdumps to tombstone files passed as fds from tombstoned
+allow virtualizationmanager tombstone_data_file:file { append getattr };
+allow virtualizationmanager tombstoned:fd use;
+
+# Allow virtualizationmanager to read file system DT for VM reference DT and AVF debug policy
+
+#line 87
+allow virtualizationmanager proc_dt_avf:dir { open getattr read search ioctl lock watch watch_reads };
+#line 87
+allow virtualizationmanager proc_dt_avf:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 87
+
+
+#line 88
+allow virtualizationmanager sysfs_dt_avf:dir { open getattr read search ioctl lock watch watch_reads };
+#line 88
+allow virtualizationmanager sysfs_dt_avf:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 88
+
+
+# virtualizationmanager to be client of secretkeeper HAL. It ferries SecretManagement messages
+# from pVM to HAL.
+
+#line 92
+typeattribute virtualizationmanager halclientdomain;
+#line 92
+typeattribute virtualizationmanager hal_secretkeeper_client;
+#line 92
+
+#line 92
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 92
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 92
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 92
+
+#line 92
+typeattribute virtualizationmanager hal_secretkeeper;
+#line 92
+# Find passthrough HAL implementations
+#line 92
+allow hal_secretkeeper system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 92
+allow hal_secretkeeper vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 92
+allow hal_secretkeeper vendor_file:file { read open getattr execute map };
+#line 92
+
+#line 92
+;
+
+# Let virtualizationmanager open test artifacts under /data/local/tmp with file path.
+# (e.g. custom debug policy)
+#line 99
+
+
+# Allow virtualizationmanager to read microdroid related files in vendor partition
+
+#line 102
+allow virtualizationmanager vendor_microdroid_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 102
+allow virtualizationmanager vendor_microdroid_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 102
+
+
+# Do not allow writing vendor_microdroid_file from any process.
+neverallow { domain  } vendor_microdroid_file:dir { add_name create link relabelfrom remove_name rename reparent rmdir setattr write };
+neverallow { domain  } vendor_microdroid_file:file { append create link unlink relabelfrom rename setattr write };
+
+# Allow reading files under /proc/[crosvm pid]/, for collecting CPU & memory usage inside VM.
+
+#line 109
+allow virtualizationmanager crosvm:dir { open getattr read search ioctl lock watch watch_reads };
+#line 109
+allow virtualizationmanager crosvm:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 109
+;
+
+# For debug purposes we try to get the canonical path from /proc/self/fd/N. That triggers
+# a harmless denial for CompOS log files, so ignore that.
+dontaudit virtualizationmanager apex_module_data_file:dir search;
+
+#line 118
+
+#line 1 "system/sepolicy/private/virtualizationservice.te"
+type virtualizationservice, domain, coredomain;
+type virtualizationservice_exec, system_file_type, exec_type, file_type;
+
+# The domain needs to be a 'mlstrustedsubject' to change the memlock rlimit of
+# the virtualizationmanager domain running at a more constrained MLS level.
+typeattribute virtualizationservice mlstrustedsubject;
+
+# When init runs a file labelled with virtualizationservice_exec, run it in the
+# virtualizationservice domain.
+
+#line 10
+
+#line 10
+# Allow the necessary permissions.
+#line 10
+
+#line 10
+# Old domain may exec the file and transition to the new domain.
+#line 10
+allow init virtualizationservice_exec:file { getattr open read execute map };
+#line 10
+allow init virtualizationservice:process transition;
+#line 10
+# New domain is entered by executing the file.
+#line 10
+allow virtualizationservice virtualizationservice_exec:file { entrypoint open read execute getattr map };
+#line 10
+# New domain can send SIGCHLD to its caller.
+#line 10
+
+#line 10
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 10
+dontaudit init virtualizationservice:process noatsecure;
+#line 10
+# XXX dontaudit candidate but requires further study.
+#line 10
+allow init virtualizationservice:process { siginh rlimitinh };
+#line 10
+
+#line 10
+# Make the transition occur by default.
+#line 10
+type_transition init virtualizationservice_exec:process virtualizationservice;
+#line 10
+
+#line 10
+
+
+# Let the virtualizationservice domain use Binder.
+
+#line 13
+# Call the servicemanager and transfer references to it.
+#line 13
+allow virtualizationservice servicemanager:binder { call transfer };
+#line 13
+# Allow servicemanager to send out callbacks
+#line 13
+allow servicemanager virtualizationservice:binder { call transfer };
+#line 13
+# servicemanager performs getpidcon on clients.
+#line 13
+allow servicemanager virtualizationservice:dir search;
+#line 13
+allow servicemanager virtualizationservice:file { read open };
+#line 13
+allow servicemanager virtualizationservice:process getattr;
+#line 13
+# rw access to /dev/binder and /dev/ashmem is presently granted to
+#line 13
+# all domains in domain.te.
+#line 13
+
+
+# Register our services with ServiceManager.
+
+#line 16
+  allow virtualizationservice virtualization_service:service_manager { add find };
+#line 16
+  neverallow { domain -virtualizationservice } virtualization_service:service_manager add;
+#line 16
+
+#line 16
+  # On debug builds with root, allow binder services to use binder over TCP.
+#line 16
+  # Not using rw_socket_perms_no_ioctl to avoid granting too many permissions.
+#line 16
+  
+#line 16
+
+#line 19
+
+
+#line 25
+
+
+# Allow the virtualizationservice domain to serve a remotely provisioned component for
+# pVM remote attestation.
+
+#line 29
+typeattribute virtualizationservice halserverdomain;
+#line 29
+typeattribute virtualizationservice hal_remotelyprovisionedcomponent_avf_server;
+#line 29
+typeattribute virtualizationservice hal_remotelyprovisionedcomponent_avf;
+#line 29
+
+
+# Allow calling into the system server to find "permission_service".
+
+#line 32
+# Call the server domain and optionally transfer references to it.
+#line 32
+allow virtualizationservice system_server:binder { call transfer };
+#line 32
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 32
+allow system_server virtualizationservice:binder transfer;
+#line 32
+# Receive and use open files from the server.
+#line 32
+allow virtualizationservice system_server:fd use;
+#line 32
+
+allow virtualizationservice permission_service:service_manager find;
+
+# Allow virtualizationservice to retrieve the remotely provisioned keys from rkpd.
+
+#line 36
+# Call the server domain and optionally transfer references to it.
+#line 36
+allow virtualizationservice remote_provisioning_service:binder { call transfer };
+#line 36
+# Allow the serverdomain to transfer references to the client on the reply.
+#line 36
+allow remote_provisioning_service virtualizationservice:binder transfer;
+#line 36
+# Receive and use open files from the server.
+#line 36
+allow virtualizationservice remote_provisioning_service:fd use;
+#line 36
+
+allow virtualizationservice remote_provisioning_service:service_manager find;
+
+# Allow virtualizationservice to manage VM secrets via Secretkeeper.
+
+#line 40
+typeattribute virtualizationservice halclientdomain;
+#line 40
+typeattribute virtualizationservice hal_secretkeeper_client;
+#line 40
+
+#line 40
+# TODO(b/34170079): Make the inclusion of the rules below conditional also on
+#line 40
+# non-Treble devices. For now, on non-Treble device, always grant clients of a
+#line 40
+# HAL sufficient access to run the HAL in passthrough mode (i.e., in-process).
+#line 40
+
+#line 40
+typeattribute virtualizationservice hal_secretkeeper;
+#line 40
+# Find passthrough HAL implementations
+#line 40
+allow hal_secretkeeper system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 40
+allow hal_secretkeeper vendor_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 40
+allow hal_secretkeeper vendor_file:file { read open getattr execute map };
+#line 40
+
+#line 40
+
+
+# Let virtualizationservice remove memlock rlimit of virtualizationmanager. This is necessary
+# to mlock VM memory and page tables.
+allow virtualizationservice self:capability sys_resource;
+allow virtualizationservice virtualizationmanager:process setrlimit;
+
+# Let virtualizationservice set the owner of a VM's temporary directory.
+allow virtualizationservice self:capability chown;
+
+# Let virtualizationservice create and delete temporary directories of VMs. To remove old
+# directories, it needs the permission to unlink the files created by virtualizationmanager.
+allow virtualizationservice virtualizationservice_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow virtualizationservice virtualizationservice_data_file:sock_file unlink;
+allow virtualizationservice virtualizationservice_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow to use fd (e.g. /dev/pts/0) inherited from adbd so that we can redirect output from
+# crosvm to the console
+allow virtualizationservice adbd:fd use;
+allow virtualizationservice adbd:unix_stream_socket { read write };
+
+# Allow to connnect to and run VirtMgr to start the service VM for remote attestation.
+
+#line 62
+# Transition to virtualizationmanager when the client executes it.
+#line 62
+
+#line 62
+# Allow the necessary permissions.
+#line 62
+
+#line 62
+# Old domain may exec the file and transition to the new domain.
+#line 62
+allow virtualizationservice virtualizationmanager_exec:file { getattr open read execute map };
+#line 62
+allow virtualizationservice virtualizationmanager:process transition;
+#line 62
+# New domain is entered by executing the file.
+#line 62
+allow virtualizationmanager virtualizationmanager_exec:file { entrypoint open read execute getattr map };
+#line 62
+# New domain can send SIGCHLD to its caller.
+#line 62
+allow virtualizationmanager virtualizationservice:process sigchld;
+#line 62
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 62
+dontaudit virtualizationservice virtualizationmanager:process noatsecure;
+#line 62
+# XXX dontaudit candidate but requires further study.
+#line 62
+allow virtualizationservice virtualizationmanager:process { siginh rlimitinh };
+#line 62
+
+#line 62
+# Make the transition occur by default.
+#line 62
+type_transition virtualizationservice virtualizationmanager_exec:process virtualizationmanager;
+#line 62
+
+#line 62
+# Allow virtualizationmanager to communicate over UDS with the client.
+#line 62
+allow { virtualizationmanager crosvm } virtualizationservice:unix_stream_socket { ioctl getattr read write };
+#line 62
+# Let the client pass file descriptors to virtualizationmanager and on to crosvm.
+#line 62
+allow { virtualizationmanager crosvm } virtualizationservice:fd use;
+#line 62
+# Let the client use file descriptors created by virtualizationmanager.
+#line 62
+allow virtualizationservice virtualizationmanager:fd use;
+#line 62
+# Allow piping console log to the client
+#line 62
+allow { virtualizationmanager crosvm } virtualizationservice:fifo_file { ioctl getattr read write };
+#line 62
+# Allow client to read/write vsock created by virtualizationmanager to communicate with the VM
+#line 62
+# that it created. Notice that we do not grant permission to create a vsock;
+#line 62
+# the client can only connect to VMs that it owns.
+#line 62
+allow virtualizationservice virtualizationmanager:vsock_socket { getattr getopt read write };
+#line 62
+# Allow client to inspect hypervisor capabilities
+#line 62
+
+#line 62
+allow virtualizationservice hypervisor_prop:file { getattr open read map };
+#line 62
+
+#line 62
+# Allow client to read (but not open) the crashdump provided by virtualizationmanager
+#line 62
+allow virtualizationservice virtualizationservice_data_file:file { getattr read };
+#line 62
+
+
+# Allow virtualizationservice to read and write in the apex data directory
+# /data/misc/apexdata/com.android.virt. Also allow checking of the parent directory
+# (needed for SQLite database creation).
+allow virtualizationservice apex_module_data_file:dir { search getattr };
+allow virtualizationservice apex_virt_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow virtualizationservice apex_virt_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Let virtualizationservice to accept vsock connection from the guest VMs to singleton services
+# such as the guest tombstone server.
+allow virtualizationservice self:vsock_socket { { create { read getattr write setattr lock append bind connect getopt setopt shutdown map } } listen accept };
+
+# Allow virtualizationservice to read/write its own sysprop. Only the process can do so.
+
+#line 76
+
+#line 76
+allow virtualizationservice property_socket:sock_file write;
+#line 76
+allow virtualizationservice init:unix_stream_socket connectto;
+#line 76
+
+#line 76
+allow virtualizationservice virtualizationservice_prop:property_service set;
+#line 76
+
+#line 76
+allow virtualizationservice virtualizationservice_prop:file { getattr open read map };
+#line 76
+
+#line 76
+
+
+# Allow writing stats to statsd
+
+#line 79
+allow virtualizationservice statsdw_socket:sock_file write;
+#line 79
+allow virtualizationservice statsd:unix_dgram_socket sendto;
+#line 79
+
+
+# Allow virtualization service to talk to tombstoned to push guest tombstones
+
+#line 82
+allow virtualizationservice tombstoned_crash_socket:sock_file write;
+#line 82
+allow virtualizationservice tombstoned:unix_stream_socket connectto;
+#line 82
+
+
+# Append to tombstone files passed as fds from tombstoned
+allow virtualizationservice tombstone_data_file:file { append getattr };
+allow virtualizationservice tombstoned:fd use;
+
+# Allow virtualizationservice to check if VFIO is supported
+allow virtualizationservice vfio_device:chr_file getattr;
+allow virtualizationservice vfio_device:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Allow virtualizationservice to access VM DTBO via a file created by virtualizationmanager.
+allow virtualizationservice virtualizationmanager:fd use;
+
+# Allow virtualizationservice to access vendor_configs_file to get the list of assignable devices.
+
+#line 96
+allow virtualizationservice vendor_configs_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 96
+allow virtualizationservice vendor_configs_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 96
+
+
+neverallow {
+  domain
+  -init
+  -virtualizationservice
+} virtualizationservice_prop:property_service set;
+
+neverallow {
+  domain
+  -init
+  -virtualizationmanager
+  -virtualizationservice
+} virtualizationservice_data_file:file { open create };
+
+neverallow virtualizationservice {
+  domain
+  -virtualizationmanager
+  -virtualizationservice
+}:process setrlimit;
+
+#line 120
+
+#line 1 "system/sepolicy/private/vold.te"
+typeattribute vold coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init vold_exec:file { getattr open read execute map };
+#line 3
+allow init vold:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow vold vold_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init vold:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init vold:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init vold_exec:process vold;
+#line 3
+
+#line 3
+
+
+# Switch to more restrictive domains when executing common tools
+
+#line 6
+# Allow the necessary permissions.
+#line 6
+
+#line 6
+# Old domain may exec the file and transition to the new domain.
+#line 6
+allow vold sgdisk_exec:file { getattr open read execute map };
+#line 6
+allow vold sgdisk:process transition;
+#line 6
+# New domain is entered by executing the file.
+#line 6
+allow sgdisk sgdisk_exec:file { entrypoint open read execute getattr map };
+#line 6
+# New domain can send SIGCHLD to its caller.
+#line 6
+allow sgdisk vold:process sigchld;
+#line 6
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 6
+dontaudit vold sgdisk:process noatsecure;
+#line 6
+# XXX dontaudit candidate but requires further study.
+#line 6
+allow vold sgdisk:process { siginh rlimitinh };
+#line 6
+
+#line 6
+# Make the transition occur by default.
+#line 6
+type_transition vold sgdisk_exec:process sgdisk;
+#line 6
+;
+
+#line 7
+# Allow the necessary permissions.
+#line 7
+
+#line 7
+# Old domain may exec the file and transition to the new domain.
+#line 7
+allow vold sdcardd_exec:file { getattr open read execute map };
+#line 7
+allow vold sdcardd:process transition;
+#line 7
+# New domain is entered by executing the file.
+#line 7
+allow sdcardd sdcardd_exec:file { entrypoint open read execute getattr map };
+#line 7
+# New domain can send SIGCHLD to its caller.
+#line 7
+allow sdcardd vold:process sigchld;
+#line 7
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 7
+dontaudit vold sdcardd:process noatsecure;
+#line 7
+# XXX dontaudit candidate but requires further study.
+#line 7
+allow vold sdcardd:process { siginh rlimitinh };
+#line 7
+
+#line 7
+# Make the transition occur by default.
+#line 7
+type_transition vold sdcardd_exec:process sdcardd;
+#line 7
+;
+
+#line 8
+# Allow the necessary permissions.
+#line 8
+
+#line 8
+# Old domain may exec the file and transition to the new domain.
+#line 8
+allow vold fuseblkd_untrusted_exec:file { getattr open read execute map };
+#line 8
+allow vold fuseblkd_untrusted:process transition;
+#line 8
+# New domain is entered by executing the file.
+#line 8
+allow fuseblkd_untrusted fuseblkd_untrusted_exec:file { entrypoint open read execute getattr map };
+#line 8
+# New domain can send SIGCHLD to its caller.
+#line 8
+allow fuseblkd_untrusted vold:process sigchld;
+#line 8
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 8
+dontaudit vold fuseblkd_untrusted:process noatsecure;
+#line 8
+# XXX dontaudit candidate but requires further study.
+#line 8
+allow vold fuseblkd_untrusted:process { siginh rlimitinh };
+#line 8
+
+#line 8
+# Make the transition occur by default.
+#line 8
+type_transition vold fuseblkd_untrusted_exec:process fuseblkd_untrusted;
+#line 8
+;
+
+# Switch to e2fs domain when running mkfs.ext4 to format a partition
+
+#line 11
+# Allow the necessary permissions.
+#line 11
+
+#line 11
+# Old domain may exec the file and transition to the new domain.
+#line 11
+allow vold e2fs_exec:file { getattr open read execute map };
+#line 11
+allow vold e2fs:process transition;
+#line 11
+# New domain is entered by executing the file.
+#line 11
+allow e2fs e2fs_exec:file { entrypoint open read execute getattr map };
+#line 11
+# New domain can send SIGCHLD to its caller.
+#line 11
+allow e2fs vold:process sigchld;
+#line 11
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 11
+dontaudit vold e2fs:process noatsecure;
+#line 11
+# XXX dontaudit candidate but requires further study.
+#line 11
+allow vold e2fs:process { siginh rlimitinh };
+#line 11
+
+#line 11
+# Make the transition occur by default.
+#line 11
+type_transition vold e2fs_exec:process e2fs;
+#line 11
+;
+
+
+# For a handful of probing tools, we choose an even more restrictive
+# domain when working with untrusted block devices
+
+#line 16
+# Old domain may exec the file and transition to the new domain.
+#line 16
+allow vold blkid_exec:file { getattr open read execute map };
+#line 16
+allow vold blkid:process transition;
+#line 16
+# New domain is entered by executing the file.
+#line 16
+allow blkid blkid_exec:file { entrypoint open read execute getattr map };
+#line 16
+# New domain can send SIGCHLD to its caller.
+#line 16
+allow blkid vold:process sigchld;
+#line 16
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 16
+dontaudit vold blkid:process noatsecure;
+#line 16
+# XXX dontaudit candidate but requires further study.
+#line 16
+allow vold blkid:process { siginh rlimitinh };
+#line 16
+;
+
+#line 17
+# Old domain may exec the file and transition to the new domain.
+#line 17
+allow vold blkid_exec:file { getattr open read execute map };
+#line 17
+allow vold blkid_untrusted:process transition;
+#line 17
+# New domain is entered by executing the file.
+#line 17
+allow blkid_untrusted blkid_exec:file { entrypoint open read execute getattr map };
+#line 17
+# New domain can send SIGCHLD to its caller.
+#line 17
+allow blkid_untrusted vold:process sigchld;
+#line 17
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 17
+dontaudit vold blkid_untrusted:process noatsecure;
+#line 17
+# XXX dontaudit candidate but requires further study.
+#line 17
+allow vold blkid_untrusted:process { siginh rlimitinh };
+#line 17
+;
+
+#line 18
+# Old domain may exec the file and transition to the new domain.
+#line 18
+allow vold fsck_exec:file { getattr open read execute map };
+#line 18
+allow vold fsck:process transition;
+#line 18
+# New domain is entered by executing the file.
+#line 18
+allow fsck fsck_exec:file { entrypoint open read execute getattr map };
+#line 18
+# New domain can send SIGCHLD to its caller.
+#line 18
+allow fsck vold:process sigchld;
+#line 18
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 18
+dontaudit vold fsck:process noatsecure;
+#line 18
+# XXX dontaudit candidate but requires further study.
+#line 18
+allow vold fsck:process { siginh rlimitinh };
+#line 18
+;
+
+#line 19
+# Old domain may exec the file and transition to the new domain.
+#line 19
+allow vold fsck_exec:file { getattr open read execute map };
+#line 19
+allow vold fsck_untrusted:process transition;
+#line 19
+# New domain is entered by executing the file.
+#line 19
+allow fsck_untrusted fsck_exec:file { entrypoint open read execute getattr map };
+#line 19
+# New domain can send SIGCHLD to its caller.
+#line 19
+allow fsck_untrusted vold:process sigchld;
+#line 19
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 19
+dontaudit vold fsck_untrusted:process noatsecure;
+#line 19
+# XXX dontaudit candidate but requires further study.
+#line 19
+allow vold fsck_untrusted:process { siginh rlimitinh };
+#line 19
+;
+
+# Newly created storage dirs are always treated as mount stubs to prevent us
+# from accidentally writing when the mount point isn't present.
+type_transition vold storage_file:dir storage_stub_file;
+type_transition vold mnt_media_rw_file:dir mnt_media_rw_stub_file;
+
+# Property Service
+
+#line 27
+allow vold vold_config_prop:file { getattr open read map };
+#line 27
+
+
+#line 28
+allow vold storage_config_prop:file { getattr open read map };
+#line 28
+;
+
+#line 29
+allow vold incremental_prop:file { getattr open read map };
+#line 29
+;
+
+#line 30
+allow vold gsid_prop:file { getattr open read map };
+#line 30
+;
+
+
+#line 32
+
+#line 32
+allow vold property_socket:sock_file write;
+#line 32
+allow vold init:unix_stream_socket connectto;
+#line 32
+
+#line 32
+allow vold vold_prop:property_service set;
+#line 32
+
+#line 32
+allow vold vold_prop:file { getattr open read map };
+#line 32
+
+#line 32
+
+
+#line 33
+
+#line 33
+allow vold property_socket:sock_file write;
+#line 33
+allow vold init:unix_stream_socket connectto;
+#line 33
+
+#line 33
+allow vold vold_status_prop:property_service set;
+#line 33
+
+#line 33
+allow vold vold_status_prop:file { getattr open read map };
+#line 33
+
+#line 33
+
+
+#line 34
+
+#line 34
+allow vold property_socket:sock_file write;
+#line 34
+allow vold init:unix_stream_socket connectto;
+#line 34
+
+#line 34
+allow vold powerctl_prop:property_service set;
+#line 34
+
+#line 34
+allow vold powerctl_prop:file { getattr open read map };
+#line 34
+
+#line 34
+
+
+#line 35
+
+#line 35
+allow vold property_socket:sock_file write;
+#line 35
+allow vold init:unix_stream_socket connectto;
+#line 35
+
+#line 35
+allow vold ctl_fuse_prop:property_service set;
+#line 35
+
+#line 35
+allow vold ctl_fuse_prop:file { getattr open read map };
+#line 35
+
+#line 35
+
+
+#line 36
+
+#line 36
+allow vold property_socket:sock_file write;
+#line 36
+allow vold init:unix_stream_socket connectto;
+#line 36
+
+#line 36
+allow vold restorecon_prop:property_service set;
+#line 36
+
+#line 36
+allow vold restorecon_prop:file { getattr open read map };
+#line 36
+
+#line 36
+
+
+#line 37
+
+#line 37
+allow vold property_socket:sock_file write;
+#line 37
+allow vold init:unix_stream_socket connectto;
+#line 37
+
+#line 37
+allow vold ota_prop:property_service set;
+#line 37
+
+#line 37
+allow vold ota_prop:file { getattr open read map };
+#line 37
+
+#line 37
+
+
+#line 38
+
+#line 38
+allow vold property_socket:sock_file write;
+#line 38
+allow vold init:unix_stream_socket connectto;
+#line 38
+
+#line 38
+allow vold boottime_prop:property_service set;
+#line 38
+
+#line 38
+allow vold boottime_prop:file { getattr open read map };
+#line 38
+
+#line 38
+
+
+#line 39
+
+#line 39
+allow vold property_socket:sock_file write;
+#line 39
+allow vold init:unix_stream_socket connectto;
+#line 39
+
+#line 39
+allow vold boottime_public_prop:property_service set;
+#line 39
+
+#line 39
+allow vold boottime_public_prop:file { getattr open read map };
+#line 39
+
+#line 39
+
+
+# Vold will use Keystore instead of using Keymint directly. But it still needs
+# to manage its Keymint blobs. This is why it needs the `manage_blob` permission.
+allow vold vold_key:keystore2_key {
+    convert_storage_key_to_ephemeral
+    delete
+    get_info
+    manage_blob
+    rebind
+    req_forced_op
+    update
+    use
+};
+
+# vold needs to call keystore methods
+allow vold keystore:binder call;
+
+# vold needs to find keystore2 services
+allow vold keystore_service:service_manager find;
+allow vold keystore_maintenance_service:service_manager find;
+
+# vold needs to be able to call earlyBootEnded() and deleteAllKeys()
+allow vold keystore:keystore2 early_boot_ended;
+allow vold keystore:keystore2 delete_all_keys;
+
+neverallow {
+    domain
+    -system_server
+    -vdc
+    -vold
+    -update_verifier
+    -apexd
+    -gsid
+} vold_service:service_manager find;
+
+# Allow vold to create and delete per-user directories like /data/user/$userId.
+allow vold {
+    media_userdir_file
+    system_userdir_file
+    vendor_userdir_file
+}:dir {
+    add_name
+    remove_name
+    write
+};
+
+# Only vold should create (and delete) per-user directories like
+# /data/user/$userId.  This is very important, as these directories need to be
+# encrypted with per-user keys, which only vold can do.  Encryption can only be
+# set up on empty directories, so creation and encryption must happen together.
+neverallow {
+    domain
+    -vold
+} {
+    media_userdir_file
+    system_userdir_file
+    vendor_userdir_file
+}:dir {
+    add_name
+    remove_name
+    write
+};
+#line 1 "system/sepolicy/private/vold_prepare_subdirs.te"
+
+#line 1
+# Allow the necessary permissions.
+#line 1
+
+#line 1
+# Old domain may exec the file and transition to the new domain.
+#line 1
+allow vold vold_prepare_subdirs_exec:file { getattr open read execute map };
+#line 1
+allow vold vold_prepare_subdirs:process transition;
+#line 1
+# New domain is entered by executing the file.
+#line 1
+allow vold_prepare_subdirs vold_prepare_subdirs_exec:file { entrypoint open read execute getattr map };
+#line 1
+# New domain can send SIGCHLD to its caller.
+#line 1
+allow vold_prepare_subdirs vold:process sigchld;
+#line 1
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 1
+dontaudit vold vold_prepare_subdirs:process noatsecure;
+#line 1
+# XXX dontaudit candidate but requires further study.
+#line 1
+allow vold vold_prepare_subdirs:process { siginh rlimitinh };
+#line 1
+
+#line 1
+# Make the transition occur by default.
+#line 1
+type_transition vold vold_prepare_subdirs_exec:process vold_prepare_subdirs;
+#line 1
+
+
+typeattribute vold_prepare_subdirs mlstrustedsubject;
+
+allow vold_prepare_subdirs system_file:file execute_no_trans;
+allow vold_prepare_subdirs shell_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow vold_prepare_subdirs toolbox_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow vold_prepare_subdirs devpts:chr_file { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } };
+allow vold_prepare_subdirs vold:fd use;
+allow vold_prepare_subdirs vold:fifo_file { read write };
+allow vold_prepare_subdirs file_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+allow vold_prepare_subdirs self:{ capability cap_userns } { chown dac_override dac_read_search fowner };
+allow vold_prepare_subdirs self:process setfscreate;
+allow vold_prepare_subdirs {
+  sdk_sandbox_system_data_file
+  system_data_file
+  vendor_data_file
+}:dir { open read write add_name remove_name rmdir relabelfrom };
+allow vold_prepare_subdirs {
+    apex_data_file_type
+    apex_module_data_file
+    apex_rollback_data_file
+    backup_data_file
+    checkin_data_file
+    face_vendor_data_file
+    fingerprint_vendor_data_file
+    iris_vendor_data_file
+    rollback_data_file
+    storaged_data_file
+    sdk_sandbox_data_file
+    sdk_sandbox_system_data_file
+    system_data_file
+    vold_data_file
+}:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } relabelto };
+allow vold_prepare_subdirs {
+    apex_data_file_type
+    apex_art_staging_data_file
+    apex_module_data_file
+    apex_rollback_data_file
+    backup_data_file
+    checkin_data_file
+    face_vendor_data_file
+    fingerprint_vendor_data_file
+    iris_vendor_data_file
+    rollback_data_file
+    storaged_data_file
+    sdk_sandbox_data_file
+    system_data_file
+    vold_data_file
+}:file { getattr unlink };
+allow vold_prepare_subdirs apex_mnt_dir:dir { open read };
+allow vold_prepare_subdirs mnt_expand_file:dir search;
+allow vold_prepare_subdirs user_profile_data_file:dir { search getattr relabelfrom };
+allow vold_prepare_subdirs user_profile_root_file:dir { search getattr relabelfrom relabelto };
+
+# Migrate legacy labels to apex_system_server_data_file (b/217581286)
+allow vold_prepare_subdirs {
+  apex_appsearch_data_file
+  apex_permission_data_file
+  apex_scheduling_data_file
+  apex_tethering_data_file
+  apex_wifi_data_file
+}:dir relabelfrom;
+
+# /data/misc is unlabeled during early boot.
+allow vold_prepare_subdirs unlabeled:dir search;
+
+dontaudit vold_prepare_subdirs { proc unlabeled }:file { getattr open read ioctl lock map watch watch_reads };
+#line 1 "system/sepolicy/private/vzwomatrigger_app.te"
+###
+### A domain for further sandboxing the VzwOmaTrigger app.
+###
+type vzwomatrigger_app, domain;
+
+
+#line 6
+typeattribute vzwomatrigger_app appdomain;
+#line 6
+# Label tmpfs objects for all apps.
+#line 6
+type_transition vzwomatrigger_app tmpfs:file appdomain_tmpfs;
+#line 6
+
+#line 6
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 6
+type vzwomatrigger_app_userfaultfd;
+#line 6
+type_transition vzwomatrigger_app vzwomatrigger_app:anon_inode vzwomatrigger_app_userfaultfd "[userfaultfd]";
+#line 6
+# Allow domain to create/use userfaultfd anon_inode.
+#line 6
+allow vzwomatrigger_app vzwomatrigger_app_userfaultfd:anon_inode { create ioctl read };
+#line 6
+# Suppress errors generate during bugreport
+#line 6
+dontaudit su vzwomatrigger_app_userfaultfd:anon_inode *;
+#line 6
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 6
+neverallow { domain -vzwomatrigger_app } vzwomatrigger_app_userfaultfd:anon_inode *;
+#line 6
+
+#line 6
+allow vzwomatrigger_app appdomain_tmpfs:file { execute getattr map read write };
+#line 6
+neverallow { vzwomatrigger_app -runas_app -shell -simpleperf } { domain -vzwomatrigger_app }:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+neverallow { appdomain -runas_app -shell -simpleperf -vzwomatrigger_app } vzwomatrigger_app:file { { append create link unlink relabelfrom rename setattr write } open read ioctl lock watch watch_mount watch_sb watch_with_perm watch_reads };
+#line 6
+# The Android security model guarantees the confidentiality and integrity
+#line 6
+# of application data and execution state. Ptrace bypasses those
+#line 6
+# confidentiality guarantees. Disallow ptrace access from system components to
+#line 6
+# apps. crash_dump is excluded, as it needs ptrace access to produce stack
+#line 6
+# traces. runas_app is excluded, as it operates only on debuggable apps.
+#line 6
+# simpleperf is excluded, as it operates only on debuggable or profileable
+#line 6
+# apps. llkd is excluded, as it needs ptrace access to inspect stack traces for
+#line 6
+# live lock conditions.
+#line 6
+neverallow { domain -vzwomatrigger_app -crash_dump  -runas_app -simpleperf } vzwomatrigger_app:process ptrace;
+#line 6
+
+#line 1 "system/sepolicy/private/wait_for_keymaster.te"
+# wait_for_keymaster service. No longer used;
+# here only so that downstream code compiles.
+type wait_for_keymaster, domain, coredomain;
+type wait_for_keymaster_exec, system_file_type, exec_type, file_type;
+
+#line 1 "system/sepolicy/private/watchdogd.te"
+typeattribute watchdogd coredomain;
+
+
+#line 3
+
+#line 3
+# Allow the necessary permissions.
+#line 3
+
+#line 3
+# Old domain may exec the file and transition to the new domain.
+#line 3
+allow init watchdogd_exec:file { getattr open read execute map };
+#line 3
+allow init watchdogd:process transition;
+#line 3
+# New domain is entered by executing the file.
+#line 3
+allow watchdogd watchdogd_exec:file { entrypoint open read execute getattr map };
+#line 3
+# New domain can send SIGCHLD to its caller.
+#line 3
+
+#line 3
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 3
+dontaudit init watchdogd:process noatsecure;
+#line 3
+# XXX dontaudit candidate but requires further study.
+#line 3
+allow init watchdogd:process { siginh rlimitinh };
+#line 3
+
+#line 3
+# Make the transition occur by default.
+#line 3
+type_transition init watchdogd_exec:process watchdogd;
+#line 3
+
+#line 3
+
+#line 1 "system/sepolicy/private/webview_zygote.te"
+# webview_zygote is an auxiliary zygote process that is used to spawn
+# isolated_app processes for rendering untrusted web content.
+
+typeattribute webview_zygote coredomain;
+
+# The webview_zygote needs to be able to transition domains.
+typeattribute webview_zygote mlstrustedsubject;
+
+# Allow access to temporary files, which is normally permitted through
+# a domain macro.
+
+#line 11
+type_transition webview_zygote tmpfs:file webview_zygote_tmpfs;
+#line 11
+allow webview_zygote webview_zygote_tmpfs:file { read write getattr map };
+#line 11
+;
+
+
+#line 13
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 13
+type webview_zygote_userfaultfd;
+#line 13
+type_transition webview_zygote webview_zygote:anon_inode webview_zygote_userfaultfd "[userfaultfd]";
+#line 13
+# Allow domain to create/use userfaultfd anon_inode.
+#line 13
+allow webview_zygote webview_zygote_userfaultfd:anon_inode { create ioctl read };
+#line 13
+# Suppress errors generate during bugreport
+#line 13
+dontaudit su webview_zygote_userfaultfd:anon_inode *;
+#line 13
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 13
+neverallow { domain -webview_zygote } webview_zygote_userfaultfd:anon_inode *;
+#line 13
+
+
+# Allow reading/executing installed binaries to enable preloading the
+# installed WebView implementation.
+allow webview_zygote apk_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow webview_zygote apk_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+
+# Access to the WebView relro file.
+allow webview_zygote shared_relro_file:dir search;
+allow webview_zygote shared_relro_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Set the UID/GID of the process.
+allow webview_zygote self:{ capability cap_userns } { setgid setuid };
+# Drop capabilities from bounding set.
+allow webview_zygote self:{ capability cap_userns } setpcap;
+# Switch SELinux context to app domains.
+allow webview_zygote self:process setcurrent;
+allow webview_zygote isolated_app:process dyntransition;
+
+# For art.
+allow webview_zygote { apex_art_data_file dalvikcache_data_file }:dir { open getattr read search ioctl lock watch watch_reads };
+allow webview_zygote dalvikcache_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+allow webview_zygote { apex_art_data_file dalvikcache_data_file }:file { { getattr open read ioctl lock map watch watch_reads } execute };
+allow webview_zygote apex_module_data_file:dir search;
+
+# To load overlay from /apex (vendor APEXes)
+allow webview_zygote vendor_apex_metadata_file:dir search;
+
+# Allow webview_zygote to create JIT memory.
+allow webview_zygote self:process execmem;
+
+# Allow webview_zygote to stat the files that it opens. It must
+# be able to inspect them so that it can reopen them on fork
+# if necessary: b/30963384.
+allow webview_zygote debugfs_trace_marker:file getattr;
+
+# Allow webview_zygote to manage the pgroup of its children.
+allow webview_zygote system_server:process getpgid;
+
+# Interaction between the webview_zygote and its children.
+allow webview_zygote isolated_app:process setpgid;
+
+# TODO (b/63631799) fix this access
+# Suppress denials to storage. Webview zygote should not be accessing.
+dontaudit webview_zygote mnt_expand_file:dir getattr;
+
+# TODO (b/72957399) remove this when webview_zygote is reparented to
+# app_process zygote
+dontaudit webview_zygote dex2oat_exec:file execute;
+
+# Get seapp_contexts
+allow webview_zygote seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+# Check validity of SELinux context before use.
+
+#line 66
+
+#line 66
+allow webview_zygote selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 66
+allow webview_zygote selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 66
+
+#line 66
+allow webview_zygote selinuxfs:file { open append write lock map };
+#line 66
+allow webview_zygote kernel:security check_context;
+#line 66
+
+# Check SELinux permissions.
+
+#line 68
+
+#line 68
+allow webview_zygote selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 68
+allow webview_zygote selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 68
+
+#line 68
+allow webview_zygote selinuxfs:file { open append write lock map };
+#line 68
+allow webview_zygote kernel:security compute_av;
+#line 68
+allow webview_zygote self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 68
+
+
+# Directory listing in /system.
+allow webview_zygote system_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+# Read and inspect temporary files (like system properties) managed by zygote.
+allow webview_zygote zygote_tmpfs:file { read getattr };
+# Child of zygote.
+allow webview_zygote zygote:fd use;
+allow webview_zygote zygote:process sigchld;
+
+# Allow apps access to /vendor/overlay
+
+#line 80
+allow webview_zygote vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 80
+allow webview_zygote vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 80
+
+
+allow webview_zygote same_process_hal_file:file { execute read open getattr map };
+
+allow webview_zygote system_data_file:lnk_file { getattr open read ioctl lock map watch watch_reads };
+
+# Send unsolicited message to system_server
+
+#line 87
+allow webview_zygote system_unsolzygote_socket:sock_file write;
+#line 87
+allow webview_zygote system_server:unix_dgram_socket sendto;
+#line 87
+
+
+# Allow the webview_zygote to access the runtime feature flag properties.
+
+#line 90
+allow webview_zygote device_config_runtime_native_prop:file { getattr open read map };
+#line 90
+
+
+#line 91
+allow webview_zygote device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 91
+
+
+# Allow webview_zygote to access odsign verification status
+
+#line 94
+allow zygote odsign_prop:file { getattr open read map };
+#line 94
+
+
+# /data/resource-cache
+allow webview_zygote resourcecache_data_file:file { getattr open read ioctl lock map watch watch_reads };
+allow webview_zygote resourcecache_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+
+#####
+##### Neverallow
+#####
+
+# Only permit transition to isolated_app.
+neverallow webview_zygote { domain -isolated_app }:process dyntransition;
+
+# Only setcon() transitions, no exec() based transitions, except for crash_dump.
+neverallow webview_zygote { domain -crash_dump }:process transition;
+
+# Must not exec() a program without changing domains.
+# Having said that, exec() above is not allowed.
+neverallow webview_zygote *:file execute_no_trans;
+
+# The only way to enter this domain is for the zygote to fork a new
+# webview_zygote child.
+neverallow { domain -zygote } webview_zygote:process dyntransition;
+
+# Disallow write access to properties.
+neverallow webview_zygote property_socket:sock_file write;
+neverallow webview_zygote property_type:property_service set;
+
+# Should not have any access to app data files.
+neverallow webview_zygote app_data_file_type:file { { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } { getattr execute execute_no_trans map } } };
+
+neverallow webview_zygote {
+    service_manager_type
+    -activity_service
+    -webviewupdate_service
+}:service_manager find;
+
+# Isolated apps shouldn't be able to access the driver directly.
+neverallow webview_zygote gpu_device:chr_file { { { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } { getattr execute execute_no_trans map } } };
+
+# Do not allow webview_zygote access to /cache.
+neverallow webview_zygote cache_file:dir ~{ { open getattr read search ioctl lock watch watch_reads } };
+neverallow webview_zygote cache_file:file ~{ read getattr };
+
+# Do not allow most socket access. This is socket_class_set, excluding unix_dgram_socket,
+# unix_stream_socket, and netlink_selinux_socket.
+neverallow webview_zygote domain:{
+  socket tcp_socket udp_socket rawip_socket netlink_socket packet_socket key_socket
+  appletalk_socket netlink_route_socket netlink_tcpdiag_socket
+  netlink_nflog_socket netlink_xfrm_socket netlink_audit_socket
+  netlink_dnrt_socket netlink_kobject_uevent_socket tun_socket netlink_iscsi_socket
+  netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket
+  netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket
+  sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket
+  x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket
+  pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket
+  rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket
+  alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket
+  xdp_socket
+} *;
+
+# Do not allow access to Bluetooth-related system properties.
+# neverallow rules for Bluetooth-related data files are listed above.
+neverallow webview_zygote {
+  bluetooth_a2dp_offload_prop
+  bluetooth_audio_hal_prop
+  bluetooth_prop
+  exported_bluetooth_prop
+}:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+#line 1 "system/sepolicy/private/wificond.te"
+typeattribute wificond coredomain;
+
+
+#line 3
+
+#line 3
+allow wificond property_socket:sock_file write;
+#line 3
+allow wificond init:unix_stream_socket connectto;
+#line 3
+
+#line 3
+allow wificond wifi_hal_prop:property_service set;
+#line 3
+
+#line 3
+allow wificond wifi_hal_prop:file { getattr open read map };
+#line 3
+
+#line 3
+
+
+#line 4
+
+#line 4
+allow wificond property_socket:sock_file write;
+#line 4
+allow wificond init:unix_stream_socket connectto;
+#line 4
+
+#line 4
+allow wificond wifi_prop:property_service set;
+#line 4
+
+#line 4
+allow wificond wifi_prop:file { getattr open read map };
+#line 4
+
+#line 4
+
+
+#line 5
+
+#line 5
+allow wificond property_socket:sock_file write;
+#line 5
+allow wificond init:unix_stream_socket connectto;
+#line 5
+
+#line 5
+allow wificond ctl_default_prop:property_service set;
+#line 5
+
+#line 5
+allow wificond ctl_default_prop:file { getattr open read map };
+#line 5
+
+#line 5
+
+
+
+#line 7
+allow wificond hwservicemanager_prop:file { getattr open read map };
+#line 7
+
+
+allow wificond legacykeystore_service:service_manager find;
+
+
+#line 11
+
+#line 11
+# Allow the necessary permissions.
+#line 11
+
+#line 11
+# Old domain may exec the file and transition to the new domain.
+#line 11
+allow init wificond_exec:file { getattr open read execute map };
+#line 11
+allow init wificond:process transition;
+#line 11
+# New domain is entered by executing the file.
+#line 11
+allow wificond wificond_exec:file { entrypoint open read execute getattr map };
+#line 11
+# New domain can send SIGCHLD to its caller.
+#line 11
+
+#line 11
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 11
+dontaudit init wificond:process noatsecure;
+#line 11
+# XXX dontaudit candidate but requires further study.
+#line 11
+allow init wificond:process { siginh rlimitinh };
+#line 11
+
+#line 11
+# Make the transition occur by default.
+#line 11
+type_transition init wificond_exec:process wificond;
+#line 11
+
+#line 11
+
+#line 1 "system/sepolicy/private/zygote.te"
+# zygote
+typeattribute zygote coredomain;
+typeattribute zygote mlstrustedsubject;
+
+
+#line 5
+
+#line 5
+# Allow the necessary permissions.
+#line 5
+
+#line 5
+# Old domain may exec the file and transition to the new domain.
+#line 5
+allow init zygote_exec:file { getattr open read execute map };
+#line 5
+allow init zygote:process transition;
+#line 5
+# New domain is entered by executing the file.
+#line 5
+allow zygote zygote_exec:file { entrypoint open read execute getattr map };
+#line 5
+# New domain can send SIGCHLD to its caller.
+#line 5
+
+#line 5
+# Enable AT_SECURE, i.e. libc secure mode.
+#line 5
+dontaudit init zygote:process noatsecure;
+#line 5
+# XXX dontaudit candidate but requires further study.
+#line 5
+allow init zygote:process { siginh rlimitinh };
+#line 5
+
+#line 5
+# Make the transition occur by default.
+#line 5
+type_transition init zygote_exec:process zygote;
+#line 5
+
+#line 5
+
+
+#line 6
+type_transition zygote tmpfs:file zygote_tmpfs;
+#line 6
+allow zygote zygote_tmpfs:file { read write getattr map };
+#line 6
+
+
+
+#line 8
+allow zygote runtime_event_log_tags_file:file { getattr open read ioctl lock map watch watch_reads };
+#line 8
+
+
+# Override DAC on files and switch uid/gid.
+allow zygote self:{ capability cap_userns } { dac_override dac_read_search setgid setuid fowner chown };
+
+# Drop capabilities from bounding set.
+allow zygote self:{ capability cap_userns } setpcap;
+
+# Switch SELinux context to app domains.
+allow zygote self:process setcurrent;
+allow zygote system_server_startup:process dyntransition;
+allow zygote appdomain:process dyntransition;
+allow zygote webview_zygote:process dyntransition;
+allow zygote app_zygote:process dyntransition;
+
+# Allow zygote to read app /proc/pid dirs (b/10455872).
+allow zygote appdomain:dir { getattr search };
+allow zygote appdomain:file { { getattr open read ioctl lock map watch watch_reads } };
+
+
+#line 27
+# Set up a type_transition to "userfaultfd" named anonymous inode object.
+#line 27
+type zygote_userfaultfd;
+#line 27
+type_transition zygote zygote:anon_inode zygote_userfaultfd "[userfaultfd]";
+#line 27
+# Allow domain to create/use userfaultfd anon_inode.
+#line 27
+allow zygote zygote_userfaultfd:anon_inode { create ioctl read };
+#line 27
+# Suppress errors generate during bugreport
+#line 27
+dontaudit su zygote_userfaultfd:anon_inode *;
+#line 27
+# Other domains may not use userfaultfd anon_inodes created by this domain.
+#line 27
+neverallow { domain -zygote } zygote_userfaultfd:anon_inode *;
+#line 27
+
+
+# Move children into the peer process group.
+allow zygote system_server:process { getpgid setpgid };
+allow zygote appdomain:process { getpgid setpgid };
+allow zygote webview_zygote:process { getpgid setpgid };
+allow zygote app_zygote:process { getpgid setpgid };
+
+# Read system data.
+allow zygote system_data_file:dir { open getattr read search ioctl lock watch watch_reads };
+allow zygote system_data_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Get attributes of /mnt/expand, needed by cacheNonBootClasspathClassLoaders.
+allow zygote mnt_expand_file:dir getattr;
+
+# Write to /data/dalvik-cache.
+allow zygote dalvikcache_data_file:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow zygote dalvikcache_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Create symlinks in /data/dalvik-cache.
+allow zygote dalvikcache_data_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Write to /data/resource-cache.
+allow zygote resourcecache_data_file:dir { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } };
+allow zygote resourcecache_data_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# For updateability, the zygote may fetch the current boot
+# classpath from the dalvik cache. Integrity of the files
+# is ensured by fsverity protection (checked in art_apex_boot_integrity).
+allow zygote dalvikcache_data_file:file execute;
+
+# Allow zygote to find files in APEX data directories.
+allow zygote apex_module_data_file:dir search;
+
+# Allow zygote to find and map files created by on device signing.
+allow zygote apex_art_data_file:dir { getattr search };
+allow zygote apex_art_data_file:file { { getattr open read ioctl lock map watch watch_reads } execute };
+
+# Mount tmpfs over various directories containing per-app directories, to hide
+# them for app data isolation.  Also traverse these directories (via
+# /data_mirror) to find the allowlisted per-app directories to bind-mount in.
+allow zygote {
+    # /data/user{,_de}, /mnt/expand/$volume/user{,_de}
+    system_userdir_file
+    # /data/data
+    system_data_file
+    # /data/misc/profiles/cur
+    user_profile_root_file
+    # /data/misc/profiles/ref
+    user_profile_data_file
+    # /storage/emulated/$userId/Android/{data,obb}
+    media_rw_data_file
+    # /dev/__properties__
+    properties_device
+}:dir { mounton search };
+
+# Traverse /data_mirror to get to the above directories while their normal paths
+# are hidden, in order to bind-mount allowlisted per-app directories.
+allow zygote mirror_data_file:dir search;
+
+# List /mnt/expand to find all /mnt/expand/$volume/user{,_de} directories that
+# need to be hidden by app data isolation, and traverse /mnt/expand to get to
+# any allowlisted per-app directories within these directories.
+allow zygote mnt_expand_file:dir { open read search };
+
+# Get the inode number of app CE data directories to find them by inode number
+# when CE storage is locked.  Needed for app data isolation.
+allow zygote app_data_file_type:dir getattr;
+
+# Create dirs in the app data isolation tmpfs mounts and bind mount on them.
+allow zygote tmpfs:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+
+# Create the '/data/user/0 => /data/data' symlink in the /data/user tmpfs mount
+# when setting up app data isolation.
+allow zygote tmpfs:lnk_file create;
+
+# Relabel dirs and symlinks in the app and sdk sandbox data isolation tmpfs mounts to their
+# standard labels.  Note: it seems that not all dirs are actually relabeled yet,
+# but it works anyway since all domains can search tmpfs:dir.
+allow zygote tmpfs:{ dir lnk_file } relabelfrom;
+allow zygote system_userdir_file:dir relabelto;
+allow zygote system_data_file:{ dir lnk_file } relabelto;
+allow zygote sdk_sandbox_system_data_file:dir { getattr relabelto search };
+
+# Read if sdcardfs is supported
+allow zygote proc_filesystems:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow zygote to create JIT memory.
+allow zygote self:process execmem;
+allow zygote zygote_tmpfs:file execute;
+allow zygote ashmem_libcutils_device:chr_file execute;
+
+# Execute idmap and dex2oat within zygote's own domain.
+# TODO:  Should either of these be transitioned to the same domain
+# used by installd or stay in-domain for zygote?
+allow zygote idmap_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+allow zygote dex2oat_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow apps access to /vendor/overlay
+
+#line 126
+allow zygote vendor_overlay_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 126
+allow zygote vendor_overlay_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 126
+
+
+# Control cgroups.
+allow zygote cgroup:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow zygote cgroup:{ file lnk_file } { { getattr open read ioctl lock map watch watch_reads } setattr };
+allow zygote cgroup_v2:dir { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } };
+allow zygote cgroup_v2:{ file lnk_file } { { getattr open read ioctl lock map watch watch_reads } setattr };
+allow zygote self:{ capability cap_userns } sys_admin;
+
+# Allow zygote to stat the files that it opens. The zygote must
+# be able to inspect them so that it can reopen them on fork
+# if necessary: b/30963384.
+allow zygote pmsg_device:chr_file getattr;
+allow zygote debugfs_trace_marker:file getattr;
+
+# Get seapp_contexts
+allow zygote seapp_contexts_file:file { getattr open read ioctl lock map watch watch_reads };
+# Check validity of SELinux context before use.
+
+#line 144
+
+#line 144
+allow zygote selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 144
+allow zygote selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 144
+
+#line 144
+allow zygote selinuxfs:file { open append write lock map };
+#line 144
+allow zygote kernel:security check_context;
+#line 144
+
+# Check SELinux permissions.
+
+#line 146
+
+#line 146
+allow zygote selinuxfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 146
+allow zygote selinuxfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 146
+
+#line 146
+allow zygote selinuxfs:file { open append write lock map };
+#line 146
+allow zygote kernel:security compute_av;
+#line 146
+allow zygote self:netlink_selinux_socket { read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind };
+#line 146
+
+
+# Native bridge functionality requires that zygote replaces
+# /proc/cpuinfo with /system/lib/<ISA>/cpuinfo using a bind mount
+allow zygote proc_cpuinfo:file mounton;
+
+# Allow remounting rootfs as MS_SLAVE.
+allow zygote rootfs:dir mounton;
+allow zygote tmpfs:filesystem { mount unmount };
+allow zygote fuse:filesystem { unmount };
+allow zygote sdcardfs:filesystem { unmount };
+allow zygote labeledfs:filesystem { unmount };
+
+# Allow creating user-specific storage source if started before vold.
+allow zygote mnt_user_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+allow zygote mnt_user_file:lnk_file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+allow zygote mnt_user_file:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Allow mounting user-specific storage source if started before vold.
+allow zygote mnt_pass_through_file:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+
+# Allowed to mount user-specific storage into place
+allow zygote storage_file:dir { search mounton };
+
+# Allow mounting and creating files, dirs on sdcardfs.
+allow zygote { sdcard_type fuse }:dir { { create reparent rename rmdir setattr { { open getattr read search ioctl lock watch watch_reads } { open search write add_name remove_name lock } } } mounton };
+allow zygote { sdcard_type fuse }:file { { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } } };
+
+# Handle --invoke-with command when launching Zygote with a wrapper command.
+allow zygote zygote_exec:file { { getattr open read ioctl lock map watch watch_reads } { getattr execute execute_no_trans map } };
+
+# Allow zygote to write to statsd.
+
+#line 178
+allow zygote statsdw_socket:sock_file write;
+#line 178
+allow zygote statsd:unix_dgram_socket sendto;
+#line 178
+
+
+# Root fs.
+
+#line 181
+allow zygote rootfs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 181
+allow zygote rootfs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 181
+
+
+# System file accesses.
+
+#line 184
+allow zygote system_file:dir { open getattr read search ioctl lock watch watch_reads };
+#line 184
+allow zygote system_file:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 184
+
+
+# /oem accesses.
+allow zygote oemfs:dir search;
+
+#line 193
+
+
+allow zygote ion_device:chr_file { getattr open read ioctl lock map watch watch_reads };
+allow zygote tmpfs:dir { open getattr read search ioctl lock watch watch_reads };
+
+allow zygote same_process_hal_file:file { execute read open getattr map };
+
+# Allow zygote to read build properties for attestation feature
+
+#line 201
+allow zygote build_attestation_prop:file { getattr open read map };
+#line 201
+
+
+# Allow the zygote to access storage properties to check if sdcardfs is enabled.
+
+#line 204
+allow zygote storage_config_prop:file { getattr open read map };
+#line 204
+;
+
+# Let the zygote access overlays so it can initialize the AssetManager.
+
+#line 207
+allow zygote overlay_prop:file { getattr open read map };
+#line 207
+
+
+#line 208
+allow zygote exported_overlay_prop:file { getattr open read map };
+#line 208
+
+
+# Allow the zygote to access the runtime feature flag properties.
+
+#line 211
+allow zygote device_config_runtime_native_prop:file { getattr open read map };
+#line 211
+
+
+#line 212
+allow zygote device_config_runtime_native_boot_prop:file { getattr open read map };
+#line 212
+
+
+# Allow the zygote to access window manager native boot feature flags
+# to initialize WindowManager static properties.
+
+#line 216
+allow zygote device_config_window_manager_native_boot_prop:file { getattr open read map };
+#line 216
+
+
+# ingore spurious denials
+# fsetid can be checked as a consequence of chmod when using cgroup v2 uid/pid hierarchy. This is
+# done to determine if the file should inherit setgid. In this case, setgid on the file is
+# undesirable, so suppress the denial.
+dontaudit zygote self:{ capability cap_userns } { sys_resource fsetid };
+
+# Ignore spurious denials calling access() on fuse.
+# Also ignore read and open as sdcardfs may read and open dir when app tries to access a dir that
+# doesn't exist.
+# TODO(b/151316657): avoid the denials
+dontaudit zygote media_rw_data_file:dir  { read open setattr };
+
+# Allow zygote to use ashmem fds from system_server.
+allow zygote system_server:fd use;
+
+# Send unsolicited message to system_server
+
+#line 234
+allow zygote system_unsolzygote_socket:sock_file write;
+#line 234
+allow zygote system_server:unix_dgram_socket sendto;
+#line 234
+
+
+# Allow zygote to access media_variant_prop for static initialization
+
+#line 237
+allow zygote media_variant_prop:file { getattr open read map };
+#line 237
+
+
+# Allow zygote to access odsign verification status
+
+#line 240
+allow zygote odsign_prop:file { getattr open read map };
+#line 240
+
+
+# Allow zygote to read ro.control_privapp_permissions and ro.cp_system_other_odex
+
+#line 243
+allow zygote packagemanager_config_prop:file { getattr open read map };
+#line 243
+
+
+# Allow zygote to read qemu.sf.lcd_density
+
+#line 246
+allow zygote qemu_sf_lcd_density_prop:file { getattr open read map };
+#line 246
+
+
+# Allow zygote to read persist.wm.debug.* to toggle experimental window manager features in
+# preloaded classes
+
+#line 250
+allow zygote persist_wm_debug_prop:file { getattr open read map };
+#line 250
+
+
+# Allow zygote to read persist_sysui_builder_extras_prop
+# and persist_sysui_ranking_update_prop
+# to toggle experimental features in core preloaded classes
+
+#line 255
+allow zygote persist_sysui_builder_extras_prop:file { getattr open read map };
+#line 255
+
+
+#line 256
+allow zygote persist_sysui_ranking_update_prop:file { getattr open read map };
+#line 256
+
+
+# Allow zygote to read /apex/apex-info-list.xml
+allow zygote apex_info_file:file { getattr open read ioctl lock map watch watch_reads };
+
+# Allow zygote to canonicalize vendor APEX paths. This is used when zygote is checking the
+# preinstalled path of APEXes that contain runtime resource overlays for the 'android' package.
+allow zygote vendor_apex_file:dir { getattr search };
+allow zygote vendor_apex_file:file { getattr };
+allow zygote vendor_apex_metadata_file:dir { search };
+
+# Allow zygote to query for compression/features.
+
+#line 268
+allow zygote sysfs_fs_f2fs:dir { open getattr read search ioctl lock watch watch_reads };
+#line 268
+allow zygote sysfs_fs_f2fs:{ file lnk_file } { getattr open read ioctl lock map watch watch_reads };
+#line 268
+
+
+# Allow zygote to read fonts_customization.xml for preloading font files that matches device locale.
+allow zygote system_font_fallback_file:file { getattr open read ioctl lock map watch watch_reads };
+
+###
+### neverallow rules
+###
+
+# Ensure that all types assigned to app processes are included
+# in the appdomain attribute, so that all allow and neverallow rules
+# written on appdomain are applied to all app processes.
+# This is achieved by ensuring that it is impossible for zygote to
+# setcon (dyntransition) to any types other than those associated
+# with appdomain plus system_server_startup, webview_zygote and
+# app_zygote.
+neverallow zygote ~{
+  appdomain
+  system_server_startup
+  webview_zygote
+  app_zygote
+}:process dyntransition;
+
+# Zygote should never execute anything from /data except for
+# /data/dalvik-cache files or files generated during on-device
+# signing under /data/misc/apexdata/com.android.art/.
+neverallow zygote {
+  data_file_type
+  -apex_art_data_file # map PROT_EXEC
+  -dalvikcache_data_file # map PROT_EXEC
+}:file { execute execute_no_trans };
+
+# Do not allow access to Bluetooth-related system properties and files
+neverallow zygote {
+  bluetooth_a2dp_offload_prop
+  bluetooth_audio_hal_prop
+  bluetooth_prop
+  exported_bluetooth_prop
+}:file { create rename setattr unlink { { getattr open read ioctl lock map watch watch_reads } { open append write lock map } } };
+
+# Zygote should not be able to access app private data.
+neverallow zygote app_data_file_type:dir ~getattr;
+#line 1 "system/sepolicy/private/roles_decl"
+role r;
+#line 1 "system/sepolicy/public/roles"
+role r types domain;
+#line 1 "system/sepolicy/private/users"
+user u roles { r } level s0 range s0 - s0:c0.c1023;
+#line 1 "system/sepolicy/private/initial_sid_contexts"
+sid kernel u:r:kernel:s0
+sid security u:object_r:kernel:s0
+sid unlabeled u:object_r:unlabeled:s0
+sid fs u:object_r:labeledfs:s0
+sid file u:object_r:unlabeled:s0
+sid file_labels u:object_r:unlabeled:s0
+sid init u:object_r:unlabeled:s0
+sid any_socket u:object_r:unlabeled:s0
+sid port u:object_r:port:s0
+sid netif u:object_r:netif:s0
+sid netmsg u:object_r:unlabeled:s0
+sid node u:object_r:node:s0
+sid igmp_packet u:object_r:unlabeled:s0
+sid icmp_socket u:object_r:unlabeled:s0
+sid tcp_socket u:object_r:unlabeled:s0
+sid sysctl_modprobe u:object_r:unlabeled:s0
+sid sysctl u:object_r:proc:s0
+sid sysctl_fs u:object_r:unlabeled:s0
+sid sysctl_kernel u:object_r:unlabeled:s0
+sid sysctl_net u:object_r:unlabeled:s0
+sid sysctl_net_unix u:object_r:unlabeled:s0
+sid sysctl_vm u:object_r:unlabeled:s0
+sid sysctl_dev u:object_r:unlabeled:s0
+sid kmod u:object_r:unlabeled:s0
+sid policy u:object_r:unlabeled:s0
+sid scmp_packet u:object_r:unlabeled:s0
+sid devnull u:object_r:null_device:s0
+#line 1 "system/sepolicy/private/fs_use"
+# Label inodes via getxattr.
+fs_use_xattr yaffs2 u:object_r:labeledfs:s0;
+fs_use_xattr jffs2 u:object_r:labeledfs:s0;
+fs_use_xattr ext2 u:object_r:labeledfs:s0;
+fs_use_xattr ext3 u:object_r:labeledfs:s0;
+fs_use_xattr ext4 u:object_r:labeledfs:s0;
+fs_use_xattr xfs u:object_r:labeledfs:s0;
+fs_use_xattr btrfs u:object_r:labeledfs:s0;
+fs_use_xattr f2fs u:object_r:labeledfs:s0;
+fs_use_xattr squashfs u:object_r:labeledfs:s0;
+fs_use_xattr overlay u:object_r:labeledfs:s0;
+fs_use_xattr erofs u:object_r:labeledfs:s0;
+fs_use_xattr incremental-fs u:object_r:labeledfs:s0;
+fs_use_xattr virtiofs u:object_r:labeledfs:s0;
+
+# Label inodes from task label.
+fs_use_task pipefs u:object_r:pipefs:s0;
+fs_use_task sockfs u:object_r:sockfs:s0;
+
+# Label inodes from combination of task label and fs label.
+# Define type_transition rules if you want per-domain types.
+fs_use_trans devpts u:object_r:devpts:s0;
+fs_use_trans tmpfs u:object_r:tmpfs:s0;
+fs_use_trans devtmpfs u:object_r:device:s0;
+fs_use_trans shm u:object_r:shm:s0;
+fs_use_trans mqueue u:object_r:mqueue:s0;
+
+#line 1 "system/sepolicy/private/genfs_contexts"
+# Label inodes with the fs label.
+genfscon rootfs / u:object_r:rootfs:s0
+# proc labeling can be further refined (longest matching prefix).
+genfscon proc / u:object_r:proc:s0
+genfscon proc /asound u:object_r:proc_asound:s0
+genfscon proc /bootconfig u:object_r:proc_bootconfig:s0
+genfscon proc /buddyinfo u:object_r:proc_buddyinfo:s0
+genfscon proc /cmdline u:object_r:proc_cmdline:s0
+genfscon proc /config.gz u:object_r:config_gz:s0
+genfscon proc /cpu/alignment u:object_r:proc_cpu_alignment:s0
+genfscon proc /device-tree/avf u:object_r:proc_dt_avf:s0
+genfscon proc /diskstats u:object_r:proc_diskstats:s0
+genfscon proc /filesystems u:object_r:proc_filesystems:s0
+genfscon proc /interrupts u:object_r:proc_interrupts:s0
+genfscon proc /iomem u:object_r:proc_iomem:s0
+genfscon proc /kallsyms u:object_r:proc_kallsyms:s0
+genfscon proc /keys u:object_r:proc_keys:s0
+genfscon proc /kmsg u:object_r:proc_kmsg:s0
+genfscon proc /loadavg u:object_r:proc_loadavg:s0
+genfscon proc /locks u:object_r:proc_locks:s0
+genfscon proc /lowmemorykiller u:object_r:proc_lowmemorykiller:s0
+genfscon proc /meminfo u:object_r:proc_meminfo:s0
+genfscon proc /misc u:object_r:proc_misc:s0
+genfscon proc /modules u:object_r:proc_modules:s0
+genfscon proc /mounts u:object_r:proc_mounts:s0
+genfscon proc /net u:object_r:proc_net:s0
+genfscon proc /net/tcp u:object_r:proc_net_tcp_udp:s0
+genfscon proc /net/udp u:object_r:proc_net_tcp_udp:s0
+genfscon proc /net/xt_qtaguid/ctrl u:object_r:proc_qtaguid_ctrl:s0
+genfscon proc /net/xt_qtaguid/ u:object_r:proc_qtaguid_stat:s0
+genfscon proc /cpuinfo u:object_r:proc_cpuinfo:s0
+genfscon proc /pagetypeinfo u:object_r:proc_pagetypeinfo:s0
+genfscon proc /pressure/cpu u:object_r:proc_pressure_cpu:s0
+genfscon proc /pressure/io u:object_r:proc_pressure_io:s0
+genfscon proc /pressure/memory u:object_r:proc_pressure_mem:s0
+genfscon proc /slabinfo u:object_r:proc_slabinfo:s0
+genfscon proc /softirqs u:object_r:proc_timer:s0
+genfscon proc /stat u:object_r:proc_stat:s0
+genfscon proc /swaps u:object_r:proc_swaps:s0
+genfscon proc /sysrq-trigger u:object_r:proc_sysrq:s0
+genfscon proc /kpageflags u:object_r:proc_kpageflags:s0
+genfscon proc /sys/abi/swp u:object_r:proc_abi:s0
+genfscon proc /sys/fs/pipe-max-size u:object_r:proc_pipe_conf:s0
+genfscon proc /sys/fs/protected_hardlinks u:object_r:proc_security:s0
+genfscon proc /sys/fs/protected_symlinks u:object_r:proc_security:s0
+genfscon proc /sys/fs/suid_dumpable u:object_r:proc_security:s0
+genfscon proc /sys/kernel/bpf_ u:object_r:proc_bpf:s0
+genfscon proc /sys/kernel/core_pattern u:object_r:usermodehelper:s0
+genfscon proc /sys/kernel/core_pipe_limit u:object_r:usermodehelper:s0
+genfscon proc /sys/kernel/domainname u:object_r:proc_hostname:s0
+genfscon proc /sys/kernel/dmesg_restrict u:object_r:proc_security:s0
+genfscon proc /sys/kernel/hostname u:object_r:proc_hostname:s0
+genfscon proc /sys/kernel/hotplug u:object_r:usermodehelper:s0
+genfscon proc /sys/kernel/hung_task_ u:object_r:proc_hung_task:s0
+genfscon proc /sys/kernel/kptr_restrict u:object_r:proc_security:s0
+genfscon proc /sys/kernel/modprobe u:object_r:usermodehelper:s0
+genfscon proc /sys/kernel/modules_disabled u:object_r:proc_security:s0
+genfscon proc /sys/kernel/panic_on_oops u:object_r:proc_panic:s0
+genfscon proc /sys/kernel/perf_event_max_sample_rate u:object_r:proc_perf:s0
+genfscon proc /sys/kernel/perf_event_paranoid u:object_r:proc_perf:s0
+genfscon proc /sys/kernel/perf_cpu_time_max_percent u:object_r:proc_perf:s0
+genfscon proc /sys/kernel/perf_event_mlock_kb u:object_r:proc_perf:s0
+genfscon proc /sys/kernel/pid_max u:object_r:proc_pid_max:s0
+genfscon proc /sys/kernel/poweroff_cmd u:object_r:usermodehelper:s0
+genfscon proc /sys/kernel/random u:object_r:proc_random:s0
+genfscon proc /sys/kernel/randomize_va_space u:object_r:proc_security:s0
+genfscon proc /sys/kernel/sched_child_runs_first u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_latency_ns u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_rt_period_us u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_rt_runtime_us u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_schedstats u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_tunable_scaling u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_util_clamp_max u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_util_clamp_min u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_util_clamp_min_rt_default u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sched_wakeup_granularity_ns u:object_r:proc_sched:s0
+genfscon proc /sys/kernel/sysrq u:object_r:proc_sysrq:s0
+genfscon proc /sys/kernel/unprivileged_bpf_ u:object_r:proc_bpf:s0
+genfscon proc /sys/kernel/usermodehelper u:object_r:usermodehelper:s0
+genfscon proc /sys/net u:object_r:proc_net:s0
+genfscon proc /sys/net/core/bpf_ u:object_r:proc_bpf:s0
+genfscon proc /sys/vm/dirty_background_ratio u:object_r:proc_dirty:s0
+genfscon proc /sys/vm/dirty_expire_centisecs u:object_r:proc_dirty:s0
+genfscon proc /sys/vm/extra_free_kbytes u:object_r:proc_extra_free_kbytes:s0
+genfscon proc /sys/vm/max_map_count u:object_r:proc_max_map_count:s0
+genfscon proc /sys/vm/mmap_min_addr u:object_r:proc_security:s0
+genfscon proc /sys/vm/mmap_rnd_bits u:object_r:proc_security:s0
+genfscon proc /sys/vm/mmap_rnd_compat_bits u:object_r:proc_security:s0
+genfscon proc /sys/vm/page-cluster u:object_r:proc_page_cluster:s0
+genfscon proc /sys/vm/drop_caches u:object_r:proc_drop_caches:s0
+genfscon proc /sys/vm/overcommit_memory u:object_r:proc_overcommit_memory:s0
+genfscon proc /sys/vm/min_free_order_shift u:object_r:proc_min_free_order_shift:s0
+genfscon proc /sys/vm/watermark_boost_factor u:object_r:proc_watermark_boost_factor:s0
+genfscon proc /sys/vm/watermark_scale_factor u:object_r:proc_watermark_scale_factor:s0
+genfscon proc /sys/vm/percpu_pagelist_high_fraction u:object_r:proc_percpu_pagelist_high_fraction:s0
+genfscon proc /timer_list u:object_r:proc_timer:s0
+genfscon proc /timer_stats u:object_r:proc_timer:s0
+genfscon proc /tty/drivers u:object_r:proc_tty_drivers:s0
+genfscon proc /uid/ u:object_r:proc_uid_time_in_state:s0
+genfscon proc /uid_cputime/show_uid_stat u:object_r:proc_uid_cputime_showstat:s0
+genfscon proc /uid_cputime/remove_uid_range u:object_r:proc_uid_cputime_removeuid:s0
+genfscon proc /uid_io/stats u:object_r:proc_uid_io_stats:s0
+genfscon proc /uid_procstat/set u:object_r:proc_uid_procstat_set:s0
+genfscon proc /uid_time_in_state u:object_r:proc_uid_time_in_state:s0
+genfscon proc /uid_concurrent_active_time u:object_r:proc_uid_concurrent_active_time:s0
+genfscon proc /uid_concurrent_policy_time u:object_r:proc_uid_concurrent_policy_time:s0
+genfscon proc /uid_cpupower/ u:object_r:proc_uid_cpupower:s0
+genfscon proc /uptime u:object_r:proc_uptime:s0
+genfscon proc /version u:object_r:proc_version:s0
+genfscon proc /vmallocinfo u:object_r:proc_vmallocinfo:s0
+genfscon proc /vmstat u:object_r:proc_vmstat:s0
+genfscon proc /zoneinfo u:object_r:proc_zoneinfo:s0
+genfscon proc /vendor_sched u:object_r:proc_vendor_sched:s0
+
+genfscon fusectl / u:object_r:fusectlfs:s0
+
+# selinuxfs booleans can be individually labeled.
+genfscon selinuxfs / u:object_r:selinuxfs:s0
+genfscon cgroup / u:object_r:cgroup:s0
+genfscon cgroup2 / u:object_r:cgroup_v2:s0
+# sysfs labels can be set by userspace.
+genfscon sysfs / u:object_r:sysfs:s0
+genfscon sysfs /devices/cs_etm                    u:object_r:sysfs_devices_cs_etm:s0
+genfscon sysfs /devices/system/cpu u:object_r:sysfs_devices_system_cpu:s0
+genfscon sysfs /class/android_usb                 u:object_r:sysfs_android_usb:s0
+genfscon sysfs /class/extcon                      u:object_r:sysfs_extcon:s0
+genfscon sysfs /class/gpu                         u:object_r:sysfs_gpu:s0
+genfscon sysfs /class/leds                        u:object_r:sysfs_leds:s0
+genfscon sysfs /class/net                         u:object_r:sysfs_net:s0
+genfscon sysfs /class/rfkill/rfkill0/state        u:object_r:sysfs_bluetooth_writable:s0
+genfscon sysfs /class/rfkill/rfkill1/state        u:object_r:sysfs_bluetooth_writable:s0
+genfscon sysfs /class/rfkill/rfkill2/state        u:object_r:sysfs_bluetooth_writable:s0
+genfscon sysfs /class/rfkill/rfkill3/state        u:object_r:sysfs_bluetooth_writable:s0
+genfscon sysfs /class/rtc                         u:object_r:sysfs_rtc:s0
+genfscon sysfs /class/switch                      u:object_r:sysfs_switch:s0
+genfscon sysfs /class/wakeup                      u:object_r:sysfs_wakeup:s0
+genfscon sysfs /devices/platform/nfc-power/nfc_power u:object_r:sysfs_nfc_power_writable:s0
+genfscon sysfs /devices/virtual/android_usb     u:object_r:sysfs_android_usb:s0
+genfscon sysfs /devices/virtual/block/            u:object_r:sysfs_devices_block:s0
+genfscon sysfs /devices/virtual/block/dm-       u:object_r:sysfs_dm:s0
+genfscon sysfs /devices/virtual/block/loop       u:object_r:sysfs_loop:s0
+genfscon sysfs /devices/virtual/block/zram0     u:object_r:sysfs_zram:s0
+genfscon sysfs /devices/virtual/block/zram1     u:object_r:sysfs_zram:s0
+genfscon sysfs /devices/virtual/block/zram0/uevent    u:object_r:sysfs_zram_uevent:s0
+genfscon sysfs /devices/virtual/block/zram1/uevent    u:object_r:sysfs_zram_uevent:s0
+genfscon sysfs /devices/virtual/misc/hw_random    u:object_r:sysfs_hwrandom:s0
+genfscon sysfs /devices/virtual/net             u:object_r:sysfs_net:s0
+genfscon sysfs /devices/virtual/switch          u:object_r:sysfs_switch:s0
+genfscon sysfs /devices/virtual/wakeup          u:object_r:sysfs_wakeup:s0
+genfscon sysfs /firmware/devicetree/base/avf u:object_r:sysfs_dt_avf:s0
+genfscon sysfs /firmware/devicetree/base/firmware/android u:object_r:sysfs_dt_firmware_android:s0
+genfscon sysfs /fs/ext4/features                  u:object_r:sysfs_fs_ext4_features:s0
+genfscon sysfs /fs/f2fs                           u:object_r:sysfs_fs_f2fs:s0
+genfscon sysfs /fs/fuse/bpf_prog_type_fuse        u:object_r:sysfs_fs_fuse_bpf:s0
+genfscon sysfs /fs/fuse/features                  u:object_r:sysfs_fs_fuse_features:s0
+genfscon sysfs /fs/incremental-fs/features        u:object_r:sysfs_fs_incfs_features:s0
+genfscon sysfs /fs/incremental-fs/instances       u:object_r:sysfs_fs_incfs_metrics:s0
+genfscon sysfs /power/autosleep u:object_r:sysfs_power:s0
+genfscon sysfs /power/state u:object_r:sysfs_power:s0
+genfscon sysfs /power/suspend_stats u:object_r:sysfs_suspend_stats:s0
+genfscon sysfs /power/sync_on_suspend u:object_r:sysfs_sync_on_suspend:s0
+genfscon sysfs /power/wakeup_count u:object_r:sysfs_power:s0
+genfscon sysfs /power/wake_lock u:object_r:sysfs_wake_lock:s0
+genfscon sysfs /power/wake_unlock u:object_r:sysfs_wake_lock:s0
+genfscon sysfs /kernel/memory_state_time u:object_r:sysfs_power:s0
+genfscon sysfs /kernel/dma_heap u:object_r:sysfs_dma_heap:s0
+genfscon sysfs /kernel/ion u:object_r:sysfs_ion:s0
+genfscon sysfs /kernel/ipv4 u:object_r:sysfs_ipv4:s0
+genfscon sysfs /kernel/mm/transparent_hugepage u:object_r:sysfs_transparent_hugepage:s0
+genfscon sysfs /kernel/mm/lru_gen/enabled u:object_r:sysfs_lru_gen_enabled:s0
+genfscon sysfs /kernel/notes u:object_r:sysfs_kernel_notes:s0
+genfscon sysfs /kernel/uevent_helper u:object_r:sysfs_usermodehelper:s0
+genfscon sysfs /kernel/wakeup_reasons u:object_r:sysfs_wakeup_reasons:s0
+genfscon sysfs /kernel/dmabuf/buffers u:object_r:sysfs_dmabuf_stats:s0
+genfscon sysfs /module/dm_verity/parameters/prefetch_cluster u:object_r:sysfs_dm_verity:s0
+genfscon sysfs /module/lowmemorykiller u:object_r:sysfs_lowmemorykiller:s0
+genfscon sysfs /module/tcp_cubic/parameters u:object_r:sysfs_net:s0
+genfscon sysfs /module/wlan/parameters/fwpath u:object_r:sysfs_wlan_fwpath:s0
+genfscon sysfs /devices/virtual/timed_output/vibrator/enable u:object_r:sysfs_vibrator:s0
+genfscon sysfs /devices/virtual/misc/uhid u:object_r:sysfs_uhid:s0
+genfscon sysfs /kernel/vendor_sched u:object_r:sysfs_vendor_sched:s0
+genfscon sysfs /devices/uprobe u:object_r:sysfs_uprobe:s0
+
+genfscon debugfs /kprobes                             u:object_r:debugfs_kprobes:s0
+genfscon debugfs /mmc0                                u:object_r:debugfs_mmc:s0
+genfscon debugfs /tracing                             u:object_r:debugfs_tracing_debug:s0
+genfscon tracefs /                                    u:object_r:debugfs_tracing_debug:s0
+genfscon debugfs /tracing/tracing_on                  u:object_r:debugfs_tracing:s0
+genfscon tracefs /tracing_on                          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/trace                       u:object_r:debugfs_tracing:s0
+genfscon tracefs /trace                               u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/per_cpu/cpu                 u:object_r:debugfs_tracing:s0
+genfscon tracefs /per_cpu/cpu                         u:object_r:debugfs_tracing:s0
+
+genfscon debugfs /tracing/hyp                         u:object_r:debugfs_tracing:s0
+genfscon tracefs /hyp                                 u:object_r:debugfs_tracing:s0
+
+genfscon debugfs /tracing/instances                   u:object_r:debugfs_tracing_instances:s0
+genfscon tracefs /instances                           u:object_r:debugfs_tracing_instances:s0
+genfscon debugfs /tracing/instances/bootreceiver      u:object_r:debugfs_bootreceiver_tracing:s0
+genfscon tracefs /instances/bootreceiver              u:object_r:debugfs_bootreceiver_tracing:s0
+genfscon debugfs /tracing/instances/mm_events         u:object_r:debugfs_mm_events_tracing:s0
+genfscon tracefs /instances/mm_events                 u:object_r:debugfs_mm_events_tracing:s0
+genfscon debugfs /tracing/instances/wifi              u:object_r:debugfs_wifi_tracing:s0
+genfscon tracefs /instances/wifi                      u:object_r:debugfs_wifi_tracing:s0
+genfscon debugfs /tracing/trace_marker                u:object_r:debugfs_trace_marker:s0
+genfscon tracefs /trace_marker                        u:object_r:debugfs_trace_marker:s0
+genfscon debugfs /wakeup_sources                      u:object_r:debugfs_wakeup_sources:s0
+genfscon debugfs /tracing/printk_formats              u:object_r:debugfs_tracing_printk_formats:s0
+genfscon tracefs /printk_formats                      u:object_r:debugfs_tracing_printk_formats:s0
+
+genfscon debugfs /tracing/events/header_page                         u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/f2fs/f2fs_get_data_block/           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/f2fs/f2fs_iget/                     u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/f2fs/f2fs_sync_file_enter/          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/f2fs/f2fs_sync_file_exit/           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/f2fs/f2fs_write_begin/              u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/f2fs/f2fs_write_end/                u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ext4/ext4_da_write_begin/           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ext4/ext4_da_write_end/             u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ext4/ext4_es_lookup_extent_enter/   u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ext4/ext4_es_lookup_extent_exit/    u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ext4/ext4_load_inode/               u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ext4/ext4_sync_file_enter/          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ext4/ext4_sync_file_exit/           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/block/block_rq_issue/               u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/block/block_rq_complete/            u:object_r:debugfs_tracing:s0
+
+genfscon tracefs /events/header_page                         u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/f2fs/f2fs_get_data_block/           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/f2fs/f2fs_iget/                     u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/f2fs/f2fs_sync_file_enter/          u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/f2fs/f2fs_sync_file_exit/           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/f2fs/f2fs_write_begin/              u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/f2fs/f2fs_write_end/                u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ext4/ext4_da_write_begin/           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ext4/ext4_da_write_end/             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ext4/ext4_es_lookup_extent_enter/   u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ext4/ext4_es_lookup_extent_exit/    u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ext4/ext4_load_inode/               u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ext4/ext4_sync_file_enter/          u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ext4/ext4_sync_file_exit/           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/block/block_rq_issue/               u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/block/block_rq_complete/            u:object_r:debugfs_tracing:s0
+
+genfscon tracefs /synthetic_events                                       u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/synthetic_events                               u:object_r:debugfs_tracing:s0
+
+genfscon tracefs /events/synthetic/rss_stat_throttled                    u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/synthetic/rss_stat_throttled            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/synthetic/suspend_resume_minimal                u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/synthetic/suspend_resume_minimal        u:object_r:debugfs_tracing:s0
+
+genfscon tracefs /trace_clock                                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /buffer_size_kb                                         u:object_r:debugfs_tracing:s0
+genfscon tracefs /options/overwrite                                      u:object_r:debugfs_tracing:s0
+genfscon tracefs /options/print-tgid                                     u:object_r:debugfs_tracing:s0
+genfscon tracefs /options/record-tgid                                    u:object_r:debugfs_tracing:s0
+genfscon tracefs /saved_cmdlines_size                                    u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_switch/                             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_wakeup/                             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_wakeup_new/                         u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_waking/                             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_blocked_reason/                     u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_cpu_hotplug/                        u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_process_exit/                       u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_process_free/                       u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sched/sched_pi_setprio/                         u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/cgroup/                                         u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/cpu_frequency/                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/cpu_idle/                                 u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/clock_enable/                             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/clock_disable/                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/clock_set_rate/                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/cpu_frequency_limits/                     u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/gpu_frequency/                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/gpu_work_period/                          u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/power/suspend_resume/                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/cpufreq_interactive/                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/vmscan/mm_vmscan_direct_reclaim_begin/          u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/vmscan/mm_vmscan_direct_reclaim_end/            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/vmscan/mm_vmscan_kswapd_wake/                   u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/vmscan/mm_vmscan_kswapd_sleep/                  u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_transaction/                      u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_transaction_received/             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_lock/                             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_locked/                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_unlock/                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_transaction_alloc_buf/            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_set_priority/                     u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_command/                          u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/binder/binder_return/                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/lowmemorykiller/                                u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/sync/                                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/fence/                                          u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/dma_fence/                                      u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/filemap/mm_filemap_add_to_page_cache/           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/filemap/mm_filemap_delete_from_page_cache/      u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/kmem/rss_stat/                                  u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/kmem/ion_heap_grow/                             u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/kmem/ion_heap_shrink/                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ion/ion_stat/                                   u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/mm_event/mm_event_record/                       u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/oom/oom_score_adj_update/                       u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/oom/mark_victim/                                u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/task/task_rename/                               u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/task/task_newtask/                              u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ftrace/print/                                   u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/gpu_mem/gpu_mem_total                           u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/thermal/thermal_temperature/                    u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/thermal/cdev_update/                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/cpuhp/cpuhp_enter/                              u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/cpuhp/cpuhp_exit/                               u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/cpuhp/cpuhp_pause/                              u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/ipi/                                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/irq/                                            u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/clk/clk_enable/                                 u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/clk/clk_disable/                                u:object_r:debugfs_tracing:s0
+genfscon tracefs /events/clk/clk_set_rate/                               u:object_r:debugfs_tracing:s0
+
+genfscon debugfs /tracing/trace_clock                                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/buffer_size_kb                                         u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/options/overwrite                                      u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/options/print-tgid                                     u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/options/record-tgid                                    u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/saved_cmdlines_size                                    u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_switch/                             u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_wakeup/                             u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_wakeup_new/                         u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_waking/                             u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_blocked_reason/                     u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_cpu_hotplug/                        u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_process_exit/                       u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_process_free/                       u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sched/sched_pi_setprio/                         u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/cgroup/                                         u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/cpu_frequency/                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/cpu_idle/                                 u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/clock_enable/                             u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/clock_disable/                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/clock_set_rate/                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/cpu_frequency_limits/                     u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/gpu_frequency/                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/gpu_work_period/                          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/power/suspend_resume/                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/cpufreq_interactive/                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/vmscan/mm_vmscan_direct_reclaim_end/            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/vmscan/mm_vmscan_kswapd_wake/                   u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/vmscan/mm_vmscan_kswapd_sleep/                  u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_transaction/                      u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_transaction_received/             u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_lock/                             u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_locked/                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_unlock/                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_transaction_alloc_buf/            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_set_priority/                     u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_command/                          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/binder/binder_return/                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/lowmemorykiller/                                u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/sync/                                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/fence/                                          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/dma_fence/                                      u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/filemap/mm_filemap_add_to_page_cache/           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/filemap/mm_filemap_delete_from_page_cache/      u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/kmem/rss_stat/                                          u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/kmem/ion_heap_grow/                                     u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/kmem/ion_heap_shrink/                                   u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ion/ion_stat/                                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/mm_event/mm_event_record/                               u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/oom/oom_score_adj_update/                               u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/oom/mark_victim/                                        u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/task/task_rename/                                       u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/task/task_newtask/                                      u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ftrace/print/                                   u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/gpu_mem/gpu_mem_total                           u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/thermal/thermal_temperature/                    u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/thermal/cdev_update/                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/cpuhp/cpuhp_enter/                              u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/cpuhp/cpuhp_exit/                               u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/ipi/                                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/irq/                                            u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/clk/clk_enable/                                 u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/clk/clk_disable/                                u:object_r:debugfs_tracing:s0
+genfscon debugfs /tracing/events/clk/clk_set_rate/                               u:object_r:debugfs_tracing:s0
+
+genfscon debugfs /kcov								 u:object_r:debugfs_kcov:s0
+
+genfscon securityfs / u:object_r:securityfs:s0
+
+genfscon binder /binder u:object_r:binder_device:s0
+genfscon binder /hwbinder u:object_r:hwbinder_device:s0
+genfscon binder /vndbinder u:object_r:vndbinder_device:s0
+genfscon binder /binder_logs u:object_r:binderfs_logs:s0
+genfscon binder /binder_logs/proc u:object_r:binderfs_logs_proc:s0
+genfscon binder /binder_logs/stats u:object_r:binderfs_logs_stats:s0
+genfscon binder /features u:object_r:binderfs_features:s0
+
+genfscon inotifyfs / u:object_r:inotify:s0
+genfscon vfat / u:object_r:vfat:s0
+genfscon binder / u:object_r:binderfs:s0
+genfscon exfat / u:object_r:exfat:s0
+genfscon debugfs / u:object_r:debugfs:s0
+genfscon fuse / u:object_r:fuse:s0
+genfscon fuseblk / u:object_r:fuseblk:s0
+genfscon configfs / u:object_r:configfs:s0
+genfscon sdcardfs / u:object_r:sdcardfs:s0
+genfscon esdfs / u:object_r:sdcardfs:s0
+genfscon pstore / u:object_r:pstorefs:s0
+genfscon functionfs / u:object_r:functionfs:s0
+genfscon usbfs / u:object_r:usbfs:s0
+genfscon binfmt_misc / u:object_r:binfmt_miscfs:s0
+
+genfscon bpf / u:object_r:fs_bpf:s0
+genfscon bpf /loader u:object_r:fs_bpf_loader:s0
+genfscon bpf /net_private u:object_r:fs_bpf_net_private:s0
+genfscon bpf /net_shared u:object_r:fs_bpf_net_shared:s0
+genfscon bpf /netd_readonly u:object_r:fs_bpf_netd_readonly:s0
+genfscon bpf /netd_shared u:object_r:fs_bpf_netd_shared:s0
+genfscon bpf /tethering u:object_r:fs_bpf_tethering:s0
+genfscon bpf /vendor u:object_r:fs_bpf_vendor:s0
+genfscon bpf /uprobestats u:object_r:fs_bpf_uprobestats:s0
+#line 1 "system/sepolicy/private/port_contexts"
+# portcon statements go here, e.g.
+# portcon tcp 80 u:object_r:http_port:s0
+
diff --git a/prebuilts/api/202404/202404_mapping.cil b/prebuilts/api/202404/202404_mapping.cil
new file mode 100644
index 0000000..5d3b699
--- /dev/null
+++ b/prebuilts/api/202404/202404_mapping.cil
@@ -0,0 +1,4176 @@
+(typeattributeset mediadrmserver_service_202404 (mediadrmserver_service))
+(expandtypeattribute (mediadrmserver_service_202404) true)
+(typeattribute mediadrmserver_service_202404)
+(typeattributeset sysfs_gpu_202404 (sysfs_gpu))
+(expandtypeattribute (sysfs_gpu_202404) true)
+(typeattribute sysfs_gpu_202404)
+(typeattributeset recovery_refresh_202404 (recovery_refresh))
+(expandtypeattribute (recovery_refresh_202404) true)
+(typeattribute recovery_refresh_202404)
+(typeattributeset slice_service_202404 (slice_service))
+(expandtypeattribute (slice_service_202404) true)
+(typeattribute slice_service_202404)
+(typeattributeset pdx_display_dir_202404 (pdx_display_dir))
+(expandtypeattribute (pdx_display_dir_202404) true)
+(typeattribute pdx_display_dir_202404)
+(typeattributeset vendor_service_contexts_file_202404 (vendor_service_contexts_file))
+(expandtypeattribute (vendor_service_contexts_file_202404) true)
+(typeattribute vendor_service_contexts_file_202404)
+(typeattributeset shell_test_data_file_202404 (shell_test_data_file))
+(expandtypeattribute (shell_test_data_file_202404) true)
+(typeattribute shell_test_data_file_202404)
+(typeattributeset processinfo_service_202404 (processinfo_service))
+(expandtypeattribute (processinfo_service_202404) true)
+(typeattribute processinfo_service_202404)
+(typeattributeset domain_verification_service_202404 (domain_verification_service))
+(expandtypeattribute (domain_verification_service_202404) true)
+(typeattribute domain_verification_service_202404)
+(typeattributeset sysfs_ipv4_202404 (sysfs_ipv4))
+(expandtypeattribute (sysfs_ipv4_202404) true)
+(typeattribute sysfs_ipv4_202404)
+(typeattributeset system_asan_options_file_202404 (system_asan_options_file))
+(expandtypeattribute (system_asan_options_file_202404) true)
+(typeattribute system_asan_options_file_202404)
+(typeattributeset vdc_202404 (vdc))
+(expandtypeattribute (vdc_202404) true)
+(typeattribute vdc_202404)
+(typeattributeset mediadrmserver_exec_202404 (mediadrmserver_exec))
+(expandtypeattribute (mediadrmserver_exec_202404) true)
+(typeattribute mediadrmserver_exec_202404)
+(typeattributeset proc_pressure_cpu_202404 (proc_pressure_cpu))
+(expandtypeattribute (proc_pressure_cpu_202404) true)
+(typeattribute proc_pressure_cpu_202404)
+(typeattributeset devicelock_service_202404 (devicelock_service))
+(expandtypeattribute (devicelock_service_202404) true)
+(typeattribute devicelock_service_202404)
+(typeattributeset serial_service_202404 (serial_service))
+(expandtypeattribute (serial_service_202404) true)
+(typeattribute serial_service_202404)
+(typeattributeset vendor_shell_202404 (vendor_shell))
+(expandtypeattribute (vendor_shell_202404) true)
+(typeattribute vendor_shell_202404)
+(typeattributeset system_ndebug_socket_202404 (system_ndebug_socket))
+(expandtypeattribute (system_ndebug_socket_202404) true)
+(typeattribute system_ndebug_socket_202404)
+(typeattributeset fingerprint_service_202404 (fingerprint_service))
+(expandtypeattribute (fingerprint_service_202404) true)
+(typeattribute fingerprint_service_202404)
+(typeattributeset hal_fingerprint_service_202404 (hal_fingerprint_service))
+(expandtypeattribute (hal_fingerprint_service_202404) true)
+(typeattribute hal_fingerprint_service_202404)
+(typeattributeset recovery_block_device_202404 (recovery_block_device))
+(expandtypeattribute (recovery_block_device_202404) true)
+(typeattribute recovery_block_device_202404)
+(typeattributeset drmserver_202404 (drmserver))
+(expandtypeattribute (drmserver_202404) true)
+(typeattribute drmserver_202404)
+(typeattributeset sysfs_fs_fuse_features_202404 (sysfs_fs_fuse_features))
+(expandtypeattribute (sysfs_fs_fuse_features_202404) true)
+(typeattribute sysfs_fs_fuse_features_202404)
+(typeattributeset vr_hwc_service_202404 (vr_hwc_service))
+(expandtypeattribute (vr_hwc_service_202404) true)
+(typeattribute vr_hwc_service_202404)
+(typeattributeset userdata_sysdev_202404 (userdata_sysdev))
+(expandtypeattribute (userdata_sysdev_202404) true)
+(typeattribute userdata_sysdev_202404)
+(typeattributeset bootanim_oem_file_202404 (bootanim_oem_file))
+(expandtypeattribute (bootanim_oem_file_202404) true)
+(typeattribute bootanim_oem_file_202404)
+(typeattributeset debugfs_mm_events_tracing_202404 (debugfs_mm_events_tracing))
+(expandtypeattribute (debugfs_mm_events_tracing_202404) true)
+(typeattribute debugfs_mm_events_tracing_202404)
+(typeattributeset secure_element_device_202404 (secure_element_device))
+(expandtypeattribute (secure_element_device_202404) true)
+(typeattribute secure_element_device_202404)
+(typeattributeset hal_sensors_hwservice_202404 (hal_sensors_hwservice))
+(expandtypeattribute (hal_sensors_hwservice_202404) true)
+(typeattribute hal_sensors_hwservice_202404)
+(typeattributeset evsmanagerd_202404 (evsmanagerd))
+(expandtypeattribute (evsmanagerd_202404) true)
+(typeattribute evsmanagerd_202404)
+(typeattributeset audiohal_data_file_202404 (audiohal_data_file))
+(expandtypeattribute (audiohal_data_file_202404) true)
+(typeattribute audiohal_data_file_202404)
+(typeattributeset charger_exec_202404 (charger_exec))
+(expandtypeattribute (charger_exec_202404) true)
+(typeattribute charger_exec_202404)
+(typeattributeset wifi_service_202404 (wifi_service))
+(expandtypeattribute (wifi_service_202404) true)
+(typeattribute wifi_service_202404)
+(typeattributeset legacykeystore_service_202404 (legacykeystore_service))
+(expandtypeattribute (legacykeystore_service_202404) true)
+(typeattribute legacykeystore_service_202404)
+(typeattributeset hal_can_bus_hwservice_202404 (hal_can_bus_hwservice))
+(expandtypeattribute (hal_can_bus_hwservice_202404) true)
+(typeattribute hal_can_bus_hwservice_202404)
+(typeattributeset hal_wifi_service_202404 (hal_wifi_service))
+(expandtypeattribute (hal_wifi_service_202404) true)
+(typeattribute hal_wifi_service_202404)
+(typeattributeset media_communication_service_202404 (media_communication_service))
+(expandtypeattribute (media_communication_service_202404) true)
+(typeattribute media_communication_service_202404)
+(typeattributeset proc_qtaguid_stat_202404 (proc_qtaguid_stat))
+(expandtypeattribute (proc_qtaguid_stat_202404) true)
+(typeattribute proc_qtaguid_stat_202404)
+(typeattributeset exfat_202404 (exfat))
+(expandtypeattribute (exfat_202404) true)
+(typeattribute exfat_202404)
+(typeattributeset hal_gatekeeper_service_202404 (hal_gatekeeper_service))
+(expandtypeattribute (hal_gatekeeper_service_202404) true)
+(typeattribute hal_gatekeeper_service_202404)
+(typeattributeset system_prop_202404 (system_prop))
+(expandtypeattribute (system_prop_202404) true)
+(typeattribute system_prop_202404)
+(typeattributeset vfat_202404 (vfat))
+(expandtypeattribute (vfat_202404) true)
+(typeattribute vfat_202404)
+(typeattributeset pdx_bufferhub_client_endpoint_socket_202404 (pdx_bufferhub_client_endpoint_socket))
+(expandtypeattribute (pdx_bufferhub_client_endpoint_socket_202404) true)
+(typeattribute pdx_bufferhub_client_endpoint_socket_202404)
+(typeattributeset hal_confirmationui_service_202404 (hal_confirmationui_service))
+(expandtypeattribute (hal_confirmationui_service_202404) true)
+(typeattribute hal_confirmationui_service_202404)
+(typeattributeset remote_provisioning_service_202404 (remote_provisioning_service))
+(expandtypeattribute (remote_provisioning_service_202404) true)
+(typeattribute remote_provisioning_service_202404)
+(typeattributeset property_info_202404 (property_info))
+(expandtypeattribute (property_info_202404) true)
+(typeattribute property_info_202404)
+(typeattributeset keystore_exec_202404 (keystore_exec))
+(expandtypeattribute (keystore_exec_202404) true)
+(typeattribute keystore_exec_202404)
+(typeattributeset netpolicy_service_202404 (netpolicy_service))
+(expandtypeattribute (netpolicy_service_202404) true)
+(typeattribute netpolicy_service_202404)
+(typeattributeset video_device_202404 (video_device))
+(expandtypeattribute (video_device_202404) true)
+(typeattribute video_device_202404)
+(typeattributeset serialno_prop_202404 (serialno_prop))
+(expandtypeattribute (serialno_prop_202404) true)
+(typeattribute serialno_prop_202404)
+(typeattributeset midi_service_202404 (midi_service))
+(expandtypeattribute (midi_service_202404) true)
+(typeattribute midi_service_202404)
+(typeattributeset persistent_properties_ready_prop_202404 (persistent_properties_ready_prop))
+(expandtypeattribute (persistent_properties_ready_prop_202404) true)
+(typeattribute persistent_properties_ready_prop_202404)
+(typeattributeset cold_boot_done_prop_202404 (cold_boot_done_prop))
+(expandtypeattribute (cold_boot_done_prop_202404) true)
+(typeattribute cold_boot_done_prop_202404)
+(typeattributeset file_contexts_file_202404 (file_contexts_file))
+(expandtypeattribute (file_contexts_file_202404) true)
+(typeattribute file_contexts_file_202404)
+(typeattributeset aidl_lazy_test_server_202404 (aidl_lazy_test_server))
+(expandtypeattribute (aidl_lazy_test_server_202404) true)
+(typeattribute aidl_lazy_test_server_202404)
+(typeattributeset boot_status_prop_202404 (boot_status_prop))
+(expandtypeattribute (boot_status_prop_202404) true)
+(typeattribute boot_status_prop_202404)
+(typeattributeset profiling_service_202404 (profiling_service))
+(expandtypeattribute (profiling_service_202404) true)
+(typeattribute profiling_service_202404)
+(typeattributeset aidl_lazy_test_server_exec_202404 (aidl_lazy_test_server_exec))
+(expandtypeattribute (aidl_lazy_test_server_exec_202404) true)
+(typeattribute aidl_lazy_test_server_exec_202404)
+(typeattributeset proc_diskstats_202404 (proc_diskstats))
+(expandtypeattribute (proc_diskstats_202404) true)
+(typeattribute proc_diskstats_202404)
+(typeattributeset vold_status_prop_202404 (vold_status_prop))
+(expandtypeattribute (vold_status_prop_202404) true)
+(typeattribute vold_status_prop_202404)
+(typeattributeset property_contexts_file_202404 (property_contexts_file))
+(expandtypeattribute (property_contexts_file_202404) true)
+(typeattribute property_contexts_file_202404)
+(typeattributeset firstboot_prop_202404 (firstboot_prop))
+(expandtypeattribute (firstboot_prop_202404) true)
+(typeattribute firstboot_prop_202404)
+(typeattributeset pan_result_prop_202404 (pan_result_prop))
+(expandtypeattribute (pan_result_prop_202404) true)
+(typeattribute pan_result_prop_202404)
+(typeattributeset tethering_service_202404 (tethering_service))
+(expandtypeattribute (tethering_service_202404) true)
+(typeattribute tethering_service_202404)
+(typeattributeset vts_status_prop_202404 (vts_status_prop))
+(expandtypeattribute (vts_status_prop_202404) true)
+(typeattribute vts_status_prop_202404)
+(typeattributeset system_server_tmpfs_202404 (system_server_tmpfs))
+(expandtypeattribute (system_server_tmpfs_202404) true)
+(typeattribute system_server_tmpfs_202404)
+(typeattributeset hal_authgraph_service_202404 (hal_authgraph_service))
+(expandtypeattribute (hal_authgraph_service_202404) true)
+(typeattribute hal_authgraph_service_202404)
+(typeattributeset ctl_rildaemon_prop_202404 (ctl_rildaemon_prop))
+(expandtypeattribute (ctl_rildaemon_prop_202404) true)
+(typeattribute ctl_rildaemon_prop_202404)
+(typeattributeset bluetooth_logs_data_file_202404 (bluetooth_logs_data_file))
+(expandtypeattribute (bluetooth_logs_data_file_202404) true)
+(typeattribute bluetooth_logs_data_file_202404)
+(typeattributeset hal_light_hwservice_202404 (hal_light_hwservice))
+(expandtypeattribute (hal_light_hwservice_202404) true)
+(typeattribute hal_light_hwservice_202404)
+(typeattributeset sysfs_devfreq_dir_202404 (sysfs_devfreq_dir))
+(expandtypeattribute (sysfs_devfreq_dir_202404) true)
+(typeattribute sysfs_devfreq_dir_202404)
+(typeattributeset metadata_bootstat_file_202404 (metadata_bootstat_file))
+(expandtypeattribute (metadata_bootstat_file_202404) true)
+(typeattribute metadata_bootstat_file_202404)
+(typeattributeset system_bootstrap_lib_file_202404 (system_bootstrap_lib_file))
+(expandtypeattribute (system_bootstrap_lib_file_202404) true)
+(typeattribute system_bootstrap_lib_file_202404)
+(typeattributeset rootdisk_sysdev_202404 (rootdisk_sysdev))
+(expandtypeattribute (rootdisk_sysdev_202404) true)
+(typeattribute rootdisk_sysdev_202404)
+(typeattributeset hint_service_202404 (hint_service))
+(expandtypeattribute (hint_service_202404) true)
+(typeattribute hint_service_202404)
+(typeattributeset print_service_202404 (print_service))
+(expandtypeattribute (print_service_202404) true)
+(typeattribute print_service_202404)
+(typeattributeset proc_hung_task_202404 (proc_hung_task))
+(expandtypeattribute (proc_hung_task_202404) true)
+(typeattribute proc_hung_task_202404)
+(typeattributeset same_process_hal_file_202404 (same_process_hal_file))
+(expandtypeattribute (same_process_hal_file_202404) true)
+(typeattribute same_process_hal_file_202404)
+(typeattributeset hal_vibrator_hwservice_202404 (hal_vibrator_hwservice))
+(expandtypeattribute (hal_vibrator_hwservice_202404) true)
+(typeattribute hal_vibrator_hwservice_202404)
+(typeattributeset location_service_202404 (location_service))
+(expandtypeattribute (location_service_202404) true)
+(typeattribute location_service_202404)
+(typeattributeset mediaprovider_202404 (mediaprovider))
+(expandtypeattribute (mediaprovider_202404) true)
+(typeattribute mediaprovider_202404)
+(typeattributeset device_config_runtime_native_prop_202404 (device_config_runtime_native_prop))
+(expandtypeattribute (device_config_runtime_native_prop_202404) true)
+(typeattribute device_config_runtime_native_prop_202404)
+(typeattributeset attestation_verification_service_202404 (attestation_verification_service))
+(expandtypeattribute (attestation_verification_service_202404) true)
+(typeattribute attestation_verification_service_202404)
+(typeattributeset hal_confirmationui_hwservice_202404 (hal_confirmationui_hwservice))
+(expandtypeattribute (hal_confirmationui_hwservice_202404) true)
+(typeattribute hal_confirmationui_hwservice_202404)
+(typeattributeset looper_stats_service_202404 (looper_stats_service))
+(expandtypeattribute (looper_stats_service_202404) true)
+(typeattribute looper_stats_service_202404)
+(typeattributeset runtime_service_202404 (runtime_service))
+(expandtypeattribute (runtime_service_202404) true)
+(typeattribute runtime_service_202404)
+(typeattributeset sdcard_block_device_202404 (sdcard_block_device))
+(expandtypeattribute (sdcard_block_device_202404) true)
+(typeattribute sdcard_block_device_202404)
+(typeattributeset hal_dumpstate_service_202404 (hal_dumpstate_service))
+(expandtypeattribute (hal_dumpstate_service_202404) true)
+(typeattribute hal_dumpstate_service_202404)
+(typeattributeset hal_tv_tuner_service_202404 (hal_tv_tuner_service))
+(expandtypeattribute (hal_tv_tuner_service_202404) true)
+(typeattribute hal_tv_tuner_service_202404)
+(typeattributeset init_tmpfs_202404 (init_tmpfs))
+(expandtypeattribute (init_tmpfs_202404) true)
+(typeattribute init_tmpfs_202404)
+(typeattributeset device_policy_service_202404 (device_policy_service))
+(expandtypeattribute (device_policy_service_202404) true)
+(typeattribute device_policy_service_202404)
+(typeattributeset permissionmgr_service_202404 (permissionmgr_service))
+(expandtypeattribute (permissionmgr_service_202404) true)
+(typeattribute permissionmgr_service_202404)
+(typeattributeset hal_tv_tuner_hwservice_202404 (hal_tv_tuner_hwservice))
+(expandtypeattribute (hal_tv_tuner_hwservice_202404) true)
+(typeattribute hal_tv_tuner_hwservice_202404)
+(typeattributeset autofill_service_202404 (autofill_service))
+(expandtypeattribute (autofill_service_202404) true)
+(typeattribute autofill_service_202404)
+(typeattributeset ab_update_gki_prop_202404 (ab_update_gki_prop))
+(expandtypeattribute (ab_update_gki_prop_202404) true)
+(typeattribute ab_update_gki_prop_202404)
+(typeattributeset traced_perf_202404 (traced_perf))
+(expandtypeattribute (traced_perf_202404) true)
+(typeattribute traced_perf_202404)
+(typeattributeset exported_default_prop_202404 (exported_default_prop))
+(expandtypeattribute (exported_default_prop_202404) true)
+(typeattribute exported_default_prop_202404)
+(typeattributeset sysfs_fs_f2fs_202404 (sysfs_fs_f2fs))
+(expandtypeattribute (sysfs_fs_f2fs_202404) true)
+(typeattribute sysfs_fs_f2fs_202404)
+(typeattributeset proc_swaps_202404 (proc_swaps))
+(expandtypeattribute (proc_swaps_202404) true)
+(typeattribute proc_swaps_202404)
+(typeattributeset debugfs_202404 (debugfs))
+(expandtypeattribute (debugfs_202404) true)
+(typeattribute debugfs_202404)
+(typeattributeset configfs_202404 (configfs))
+(expandtypeattribute (configfs_202404) true)
+(typeattribute configfs_202404)
+(typeattributeset gwp_asan_prop_202404 (gwp_asan_prop))
+(expandtypeattribute (gwp_asan_prop_202404) true)
+(typeattribute gwp_asan_prop_202404)
+(typeattributeset dexopt_chroot_setup_service_202404 (dexopt_chroot_setup_service))
+(expandtypeattribute (dexopt_chroot_setup_service_202404) true)
+(typeattribute dexopt_chroot_setup_service_202404)
+(typeattributeset bq_config_prop_202404 (bq_config_prop))
+(expandtypeattribute (bq_config_prop_202404) true)
+(typeattribute bq_config_prop_202404)
+(typeattributeset config_prop_202404 (config_prop))
+(expandtypeattribute (config_prop_202404) true)
+(typeattribute config_prop_202404)
+(typeattributeset ffs_config_prop_202404 (ffs_config_prop))
+(expandtypeattribute (ffs_config_prop_202404) true)
+(typeattribute ffs_config_prop_202404)
+(typeattributeset usb_config_prop_202404 (usb_config_prop))
+(expandtypeattribute (usb_config_prop_202404) true)
+(typeattribute usb_config_prop_202404)
+(typeattributeset vts_config_prop_202404 (vts_config_prop))
+(expandtypeattribute (vts_config_prop_202404) true)
+(typeattribute vts_config_prop_202404)
+(typeattributeset mediaswcodec_202404 (mediaswcodec))
+(expandtypeattribute (mediaswcodec_202404) true)
+(typeattribute mediaswcodec_202404)
+(typeattributeset adbd_config_prop_202404 (adbd_config_prop))
+(expandtypeattribute (adbd_config_prop_202404) true)
+(typeattribute adbd_config_prop_202404)
+(typeattributeset hdmi_config_prop_202404 (hdmi_config_prop))
+(expandtypeattribute (hdmi_config_prop_202404) true)
+(typeattribute hdmi_config_prop_202404)
+(typeattributeset lmkd_config_prop_202404 (lmkd_config_prop))
+(expandtypeattribute (lmkd_config_prop_202404) true)
+(typeattribute lmkd_config_prop_202404)
+(typeattributeset vold_config_prop_202404 (vold_config_prop))
+(expandtypeattribute (vold_config_prop_202404) true)
+(typeattribute vold_config_prop_202404)
+(typeattributeset wifi_config_prop_202404 (wifi_config_prop))
+(expandtypeattribute (wifi_config_prop_202404) true)
+(typeattribute wifi_config_prop_202404)
+(typeattributeset zram_config_prop_202404 (zram_config_prop))
+(expandtypeattribute (zram_config_prop_202404) true)
+(typeattribute zram_config_prop_202404)
+(typeattributeset binderfs_logs_202404 (binderfs_logs))
+(expandtypeattribute (binderfs_logs_202404) true)
+(typeattribute binderfs_logs_202404)
+(typeattributeset charger_202404 (charger))
+(expandtypeattribute (charger_202404) true)
+(typeattribute charger_202404)
+(typeattributeset service_manager_service_202404 (service_manager_service))
+(expandtypeattribute (service_manager_service_202404) true)
+(typeattribute service_manager_service_202404)
+(typeattributeset system_block_device_202404 (system_block_device))
+(expandtypeattribute (system_block_device_202404) true)
+(typeattribute system_block_device_202404)
+(typeattributeset postinstall_202404 (postinstall))
+(expandtypeattribute (postinstall_202404) true)
+(typeattribute postinstall_202404)
+(typeattributeset updatelock_service_202404 (updatelock_service))
+(expandtypeattribute (updatelock_service_202404) true)
+(typeattribute updatelock_service_202404)
+(typeattributeset server_configurable_flags_data_file_202404 (server_configurable_flags_data_file))
+(expandtypeattribute (server_configurable_flags_data_file_202404) true)
+(typeattribute server_configurable_flags_data_file_202404)
+(typeattributeset apk_data_file_202404 (apk_data_file))
+(expandtypeattribute (apk_data_file_202404) true)
+(typeattribute apk_data_file_202404)
+(typeattributeset hidl_base_hwservice_202404 (hidl_base_hwservice))
+(expandtypeattribute (hidl_base_hwservice_202404) true)
+(typeattribute hidl_base_hwservice_202404)
+(typeattributeset vendor_modprobe_202404 (vendor_modprobe))
+(expandtypeattribute (vendor_modprobe_202404) true)
+(typeattribute vendor_modprobe_202404)
+(typeattributeset system_app_202404 (system_app))
+(expandtypeattribute (system_app_202404) true)
+(typeattribute system_app_202404)
+(typeattributeset uri_grants_service_202404 (uri_grants_service))
+(expandtypeattribute (uri_grants_service_202404) true)
+(typeattribute uri_grants_service_202404)
+(typeattributeset proc_qtaguid_ctrl_202404 (proc_qtaguid_ctrl))
+(expandtypeattribute (proc_qtaguid_ctrl_202404) true)
+(typeattribute proc_qtaguid_ctrl_202404)
+(typeattributeset hal_fastboot_service_202404 (hal_fastboot_service))
+(expandtypeattribute (hal_fastboot_service_202404) true)
+(typeattribute hal_fastboot_service_202404)
+(typeattributeset hidl_manager_hwservice_202404 (hidl_manager_hwservice))
+(expandtypeattribute (hidl_manager_hwservice_202404) true)
+(typeattribute hidl_manager_hwservice_202404)
+(typeattributeset hidl_memory_hwservice_202404 (hidl_memory_hwservice))
+(expandtypeattribute (hidl_memory_hwservice_202404) true)
+(typeattribute hidl_memory_hwservice_202404)
+(typeattributeset archive_service_202404 (archive_service))
+(expandtypeattribute (archive_service_202404) true)
+(typeattribute archive_service_202404)
+(typeattributeset preloads_media_file_202404 (preloads_media_file))
+(expandtypeattribute (preloads_media_file_202404) true)
+(typeattribute preloads_media_file_202404)
+(typeattributeset surfaceflinger_202404 (surfaceflinger))
+(expandtypeattribute (surfaceflinger_202404) true)
+(typeattribute surfaceflinger_202404)
+(typeattributeset pdx_display_screenshot_channel_socket_202404 (pdx_display_screenshot_channel_socket))
+(expandtypeattribute (pdx_display_screenshot_channel_socket_202404) true)
+(typeattribute pdx_display_screenshot_channel_socket_202404)
+(typeattributeset debugfs_tracing_instances_202404 (debugfs_tracing_instances))
+(expandtypeattribute (debugfs_tracing_instances_202404) true)
+(typeattribute debugfs_tracing_instances_202404)
+(typeattributeset hal_contexthub_hwservice_202404 (hal_contexthub_hwservice))
+(expandtypeattribute (hal_contexthub_hwservice_202404) true)
+(typeattribute hal_contexthub_hwservice_202404)
+(typeattributeset hal_ivn_service_202404 (hal_ivn_service))
+(expandtypeattribute (hal_ivn_service_202404) true)
+(typeattribute hal_ivn_service_202404)
+(typeattributeset blob_store_service_202404 (blob_store_service))
+(expandtypeattribute (blob_store_service_202404) true)
+(typeattribute blob_store_service_202404)
+(typeattributeset persist_vendor_debug_wifi_prop_202404 (persist_vendor_debug_wifi_prop))
+(expandtypeattribute (persist_vendor_debug_wifi_prop_202404) true)
+(typeattribute persist_vendor_debug_wifi_prop_202404)
+(typeattributeset proc_slabinfo_202404 (proc_slabinfo))
+(expandtypeattribute (proc_slabinfo_202404) true)
+(typeattribute proc_slabinfo_202404)
+(typeattributeset proc_zoneinfo_202404 (proc_zoneinfo))
+(expandtypeattribute (proc_zoneinfo_202404) true)
+(typeattribute proc_zoneinfo_202404)
+(typeattributeset proc_tty_drivers_202404 (proc_tty_drivers))
+(expandtypeattribute (proc_tty_drivers_202404) true)
+(typeattribute proc_tty_drivers_202404)
+(typeattributeset mock_ota_prop_202404 (mock_ota_prop))
+(expandtypeattribute (mock_ota_prop_202404) true)
+(typeattribute mock_ota_prop_202404)
+(typeattributeset mnt_pass_through_file_202404 (mnt_pass_through_file))
+(expandtypeattribute (mnt_pass_through_file_202404) true)
+(typeattribute mnt_pass_through_file_202404)
+(typeattributeset tuner_config_prop_202404 (tuner_config_prop))
+(expandtypeattribute (tuner_config_prop_202404) true)
+(typeattribute tuner_config_prop_202404)
+(typeattributeset sec_key_att_app_id_provider_service_202404 (sec_key_att_app_id_provider_service))
+(expandtypeattribute (sec_key_att_app_id_provider_service_202404) true)
+(typeattribute sec_key_att_app_id_provider_service_202404)
+(typeattributeset activity_service_202404 (activity_service))
+(expandtypeattribute (activity_service_202404) true)
+(typeattribute activity_service_202404)
+(typeattributeset media_config_prop_202404 (media_config_prop))
+(expandtypeattribute (media_config_prop_202404) true)
+(typeattribute media_config_prop_202404)
+(typeattributeset mediaextractor_exec_202404 (mediaextractor_exec))
+(expandtypeattribute (mediaextractor_exec_202404) true)
+(typeattribute mediaextractor_exec_202404)
+(typeattributeset fwk_automotive_display_hwservice_202404 (fwk_automotive_display_hwservice))
+(expandtypeattribute (fwk_automotive_display_hwservice_202404) true)
+(typeattribute fwk_automotive_display_hwservice_202404)
+(typeattributeset tombstoned_java_trace_socket_202404 (tombstoned_java_trace_socket))
+(expandtypeattribute (tombstoned_java_trace_socket_202404) true)
+(typeattribute tombstoned_java_trace_socket_202404)
+(typeattributeset watchdog_device_202404 (watchdog_device))
+(expandtypeattribute (watchdog_device_202404) true)
+(typeattribute watchdog_device_202404)
+(typeattributeset build_config_prop_202404 (build_config_prop))
+(expandtypeattribute (build_config_prop_202404) true)
+(typeattribute build_config_prop_202404)
+(typeattributeset apexd_config_prop_202404 (apexd_config_prop))
+(expandtypeattribute (apexd_config_prop_202404) true)
+(typeattribute apexd_config_prop_202404)
+(typeattributeset audio_config_prop_202404 (audio_config_prop))
+(expandtypeattribute (audio_config_prop_202404) true)
+(typeattribute audio_config_prop_202404)
+(typeattributeset provisioned_prop_202404 (provisioned_prop))
+(expandtypeattribute (provisioned_prop_202404) true)
+(typeattribute provisioned_prop_202404)
+(typeattributeset task_profiles_file_202404 (task_profiles_file))
+(expandtypeattribute (task_profiles_file_202404) true)
+(typeattribute task_profiles_file_202404)
+(typeattributeset hypervisor_prop_202404 (hypervisor_prop))
+(expandtypeattribute (hypervisor_prop_202404) true)
+(typeattribute hypervisor_prop_202404)
+(typeattributeset composd_vm_art_prop_202404 (composd_vm_art_prop))
+(expandtypeattribute (composd_vm_art_prop_202404) true)
+(typeattribute composd_vm_art_prop_202404)
+(typeattributeset graphics_device_202404 (graphics_device))
+(expandtypeattribute (graphics_device_202404) true)
+(typeattribute graphics_device_202404)
+(typeattributeset hal_tv_hdmi_connection_service_202404 (hal_tv_hdmi_connection_service))
+(expandtypeattribute (hal_tv_hdmi_connection_service_202404) true)
+(typeattribute hal_tv_hdmi_connection_service_202404)
+(typeattributeset method_trace_data_file_202404 (method_trace_data_file))
+(expandtypeattribute (method_trace_data_file_202404) true)
+(typeattribute method_trace_data_file_202404)
+(typeattributeset vndservicemanager_202404 (vndservicemanager))
+(expandtypeattribute (vndservicemanager_202404) true)
+(typeattribute vndservicemanager_202404)
+(typeattributeset tombstone_wifi_data_file_202404 (tombstone_wifi_data_file))
+(expandtypeattribute (tombstone_wifi_data_file_202404) true)
+(typeattribute tombstone_wifi_data_file_202404)
+(typeattributeset apk_private_data_file_202404 (apk_private_data_file))
+(expandtypeattribute (apk_private_data_file_202404) true)
+(typeattribute apk_private_data_file_202404)
+(typeattributeset vold_prepare_subdirs_202404 (vold_prepare_subdirs))
+(expandtypeattribute (vold_prepare_subdirs_202404) true)
+(typeattribute vold_prepare_subdirs_202404)
+(typeattributeset binder_cache_bluetooth_server_prop_202404 (binder_cache_bluetooth_server_prop))
+(expandtypeattribute (binder_cache_bluetooth_server_prop_202404) true)
+(typeattribute binder_cache_bluetooth_server_prop_202404)
+(typeattributeset hwservicemanager_202404 (hwservicemanager))
+(expandtypeattribute (hwservicemanager_202404) true)
+(typeattribute hwservicemanager_202404)
+(typeattributeset keychord_device_202404 (keychord_device))
+(expandtypeattribute (keychord_device_202404) true)
+(typeattribute keychord_device_202404)
+(typeattributeset secure_element_202404 (secure_element))
+(expandtypeattribute (secure_element_202404) true)
+(typeattribute secure_element_202404)
+(typeattributeset hal_graphics_composer_hwservice_202404 (hal_graphics_composer_hwservice))
+(expandtypeattribute (hal_graphics_composer_hwservice_202404) true)
+(typeattribute hal_graphics_composer_hwservice_202404)
+(typeattributeset servicemanager_202404 (servicemanager))
+(expandtypeattribute (servicemanager_202404) true)
+(typeattribute servicemanager_202404)
+(typeattributeset apexd_select_prop_202404 (apexd_select_prop))
+(expandtypeattribute (apexd_select_prop_202404) true)
+(typeattribute apexd_select_prop_202404)
+(typeattributeset ashmem_device_202404 (ashmem_device))
+(expandtypeattribute (ashmem_device_202404) true)
+(typeattribute ashmem_device_202404)
+(typeattributeset virtual_touchpad_202404 (virtual_touchpad))
+(expandtypeattribute (virtual_touchpad_202404) true)
+(typeattribute virtual_touchpad_202404)
+(typeattributeset hal_telephony_hwservice_202404 (hal_telephony_hwservice))
+(expandtypeattribute (hal_telephony_hwservice_202404) true)
+(typeattribute hal_telephony_hwservice_202404)
+(typeattributeset fingerprint_prop_202404 (fingerprint_prop))
+(expandtypeattribute (fingerprint_prop_202404) true)
+(typeattribute fingerprint_prop_202404)
+(typeattributeset flags_health_check_exec_202404 (flags_health_check_exec))
+(expandtypeattribute (flags_health_check_exec_202404) true)
+(typeattribute flags_health_check_exec_202404)
+(typeattributeset file_integrity_service_202404 (file_integrity_service))
+(expandtypeattribute (file_integrity_service_202404) true)
+(typeattribute file_integrity_service_202404)
+(typeattributeset sysfs_dma_heap_202404 (sysfs_dma_heap))
+(expandtypeattribute (sysfs_dma_heap_202404) true)
+(typeattribute sysfs_dma_heap_202404)
+(typeattributeset zoned_block_device_202404 (zoned_block_device))
+(expandtypeattribute (zoned_block_device_202404) true)
+(typeattribute zoned_block_device_202404)
+(typeattributeset proc_stat_202404 (proc_stat))
+(expandtypeattribute (proc_stat_202404) true)
+(typeattribute proc_stat_202404)
+(typeattributeset rootfs_202404 (rootfs))
+(expandtypeattribute (rootfs_202404) true)
+(typeattribute rootfs_202404)
+(typeattributeset cameraserver_tmpfs_202404 (cameraserver_tmpfs))
+(expandtypeattribute (cameraserver_tmpfs_202404) true)
+(typeattribute cameraserver_tmpfs_202404)
+(typeattributeset sdcardfs_202404 (sdcardfs))
+(expandtypeattribute (sdcardfs_202404) true)
+(typeattribute sdcardfs_202404)
+(typeattributeset hal_authsecret_service_202404 (hal_authsecret_service))
+(expandtypeattribute (hal_authsecret_service_202404) true)
+(typeattribute hal_authsecret_service_202404)
+(typeattributeset exported_overlay_prop_202404 (exported_overlay_prop))
+(expandtypeattribute (exported_overlay_prop_202404) true)
+(typeattribute exported_overlay_prop_202404)
+(typeattributeset netd_202404 (netd))
+(expandtypeattribute (netd_202404) true)
+(typeattribute netd_202404)
+(typeattributeset authorization_service_202404 (authorization_service))
+(expandtypeattribute (authorization_service_202404) true)
+(typeattribute authorization_service_202404)
+(typeattributeset sysfs_usb_202404 (sysfs_usb))
+(expandtypeattribute (sysfs_usb_202404) true)
+(typeattribute sysfs_usb_202404)
+(typeattributeset qemu_sf_lcd_density_prop_202404 (qemu_sf_lcd_density_prop))
+(expandtypeattribute (qemu_sf_lcd_density_prop_202404) true)
+(typeattribute qemu_sf_lcd_density_prop_202404)
+(typeattributeset hal_nlinterceptor_service_202404 (hal_nlinterceptor_service))
+(expandtypeattribute (hal_nlinterceptor_service_202404) true)
+(typeattribute hal_nlinterceptor_service_202404)
+(typeattributeset proc_perf_202404 (proc_perf))
+(expandtypeattribute (proc_perf_202404) true)
+(typeattribute proc_perf_202404)
+(typeattributeset system_server_dumper_service_202404 (system_server_dumper_service))
+(expandtypeattribute (system_server_dumper_service_202404) true)
+(typeattribute system_server_dumper_service_202404)
+(typeattributeset mqueue_202404 (mqueue))
+(expandtypeattribute (mqueue_202404) true)
+(typeattribute mqueue_202404)
+(typeattributeset tee_202404 (tee))
+(expandtypeattribute (tee_202404) true)
+(typeattribute tee_202404)
+(typeattributeset apex_data_file_202404 (apex_data_file))
+(expandtypeattribute (apex_data_file_202404) true)
+(typeattribute apex_data_file_202404)
+(typeattributeset mediadrm_config_prop_202404 (mediadrm_config_prop))
+(expandtypeattribute (mediadrm_config_prop_202404) true)
+(typeattribute mediadrm_config_prop_202404)
+(typeattributeset apex_info_file_202404 (apex_info_file))
+(expandtypeattribute (apex_info_file_202404) true)
+(typeattribute apex_info_file_202404)
+(typeattributeset bluetooth_config_prop_202404 (bluetooth_config_prop))
+(expandtypeattribute (bluetooth_config_prop_202404) true)
+(typeattribute bluetooth_config_prop_202404)
+(typeattributeset device_config_activity_manager_native_boot_prop_202404 (device_config_activity_manager_native_boot_prop))
+(expandtypeattribute (device_config_activity_manager_native_boot_prop_202404) true)
+(typeattribute device_config_activity_manager_native_boot_prop_202404)
+(typeattributeset media_session_service_202404 (media_session_service))
+(expandtypeattribute (media_session_service_202404) true)
+(typeattribute media_session_service_202404)
+(typeattributeset composd_vm_vendor_prop_202404 (composd_vm_vendor_prop))
+(expandtypeattribute (composd_vm_vendor_prop_202404) true)
+(typeattribute composd_vm_vendor_prop_202404)
+(typeattributeset recovery_config_prop_202404 (recovery_config_prop))
+(expandtypeattribute (recovery_config_prop_202404) true)
+(typeattribute recovery_config_prop_202404)
+(typeattributeset hal_graphics_allocator_service_202404 (hal_graphics_allocator_service))
+(expandtypeattribute (hal_graphics_allocator_service_202404) true)
+(typeattribute hal_graphics_allocator_service_202404)
+(typeattributeset adbd_202404 (adbd))
+(expandtypeattribute (adbd_202404) true)
+(typeattribute adbd_202404)
+(typeattributeset bpfloader_202404 (bpfloader))
+(expandtypeattribute (bpfloader_202404) true)
+(typeattribute bpfloader_202404)
+(typeattributeset vendor_public_lib_file_202404 (vendor_public_lib_file))
+(expandtypeattribute (vendor_public_lib_file_202404) true)
+(typeattribute vendor_public_lib_file_202404)
+(typeattributeset proc_dirty_202404 (proc_dirty))
+(expandtypeattribute (proc_dirty_202404) true)
+(typeattribute proc_dirty_202404)
+(typeattributeset vendor_cgroup_desc_file_202404 (vendor_cgroup_desc_file))
+(expandtypeattribute (vendor_cgroup_desc_file_202404) true)
+(typeattribute vendor_cgroup_desc_file_202404)
+(typeattributeset sysfs_fs_ext4_features_202404 (sysfs_fs_ext4_features))
+(expandtypeattribute (sysfs_fs_ext4_features_202404) true)
+(typeattribute sysfs_fs_ext4_features_202404)
+(typeattributeset dropbox_data_file_202404 (dropbox_data_file))
+(expandtypeattribute (dropbox_data_file_202404) true)
+(typeattribute dropbox_data_file_202404)
+(typeattributeset textclassifier_data_file_202404 (textclassifier_data_file))
+(expandtypeattribute (textclassifier_data_file_202404) true)
+(typeattribute textclassifier_data_file_202404)
+(typeattributeset fuse_202404 (fuse))
+(expandtypeattribute (fuse_202404) true)
+(typeattribute fuse_202404)
+(typeattributeset fwk_automotive_display_service_202404 (fwk_automotive_display_service))
+(expandtypeattribute (fwk_automotive_display_service_202404) true)
+(typeattribute fwk_automotive_display_service_202404)
+(typeattributeset recovery_202404 (recovery))
+(expandtypeattribute (recovery_202404) true)
+(typeattribute recovery_202404)
+(typeattributeset timedetector_service_202404 (timedetector_service))
+(expandtypeattribute (timedetector_service_202404) true)
+(typeattribute timedetector_service_202404)
+(typeattributeset bootstat_202404 (bootstat))
+(expandtypeattribute (bootstat_202404) true)
+(typeattribute bootstat_202404)
+(typeattributeset pm_archiving_enabled_prop_202404 (pm_archiving_enabled_prop))
+(expandtypeattribute (pm_archiving_enabled_prop_202404) true)
+(typeattribute pm_archiving_enabled_prop_202404)
+(typeattributeset traced_tmpfs_202404 (traced_tmpfs))
+(expandtypeattribute (traced_tmpfs_202404) true)
+(typeattribute traced_tmpfs_202404)
+(typeattributeset sensitive_content_protection_service_202404 (sensitive_content_protection_service))
+(expandtypeattribute (sensitive_content_protection_service_202404) true)
+(typeattribute sensitive_content_protection_service_202404)
+(typeattributeset labeledfs_202404 (labeledfs))
+(expandtypeattribute (labeledfs_202404) true)
+(typeattribute labeledfs_202404)
+(typeattributeset mediaextractor_tmpfs_202404 (mediaextractor_tmpfs))
+(expandtypeattribute (mediaextractor_tmpfs_202404) true)
+(typeattribute mediaextractor_tmpfs_202404)
+(typeattributeset grammatical_inflection_service_202404 (grammatical_inflection_service))
+(expandtypeattribute (grammatical_inflection_service_202404) true)
+(typeattribute grammatical_inflection_service_202404)
+(typeattributeset super_block_device_202404 (super_block_device))
+(expandtypeattribute (super_block_device_202404) true)
+(typeattribute super_block_device_202404)
+(typeattributeset proc_loadavg_202404 (proc_loadavg))
+(expandtypeattribute (proc_loadavg_202404) true)
+(typeattribute proc_loadavg_202404)
+(typeattributeset system_security_cacerts_file_202404 (system_security_cacerts_file))
+(expandtypeattribute (system_security_cacerts_file_202404) true)
+(typeattribute system_security_cacerts_file_202404)
+(typeattributeset proc_keys_202404 (proc_keys))
+(expandtypeattribute (proc_keys_202404) true)
+(typeattribute proc_keys_202404)
+(typeattributeset pdx_bufferhub_dir_202404 (pdx_bufferhub_dir))
+(expandtypeattribute (pdx_bufferhub_dir_202404) true)
+(typeattribute pdx_bufferhub_dir_202404)
+(typeattributeset usermodehelper_202404 (usermodehelper))
+(expandtypeattribute (usermodehelper_202404) true)
+(typeattribute usermodehelper_202404)
+(typeattributeset hal_health_service_202404 (hal_health_service))
+(expandtypeattribute (hal_health_service_202404) true)
+(typeattribute hal_health_service_202404)
+(typeattributeset mediaextractor_service_202404 (mediaextractor_service))
+(expandtypeattribute (mediaextractor_service_202404) true)
+(typeattribute mediaextractor_service_202404)
+(typeattributeset debug_prop_202404 (debug_prop))
+(expandtypeattribute (debug_prop_202404) true)
+(typeattribute debug_prop_202404)
+(typeattributeset hal_omx_hwservice_202404 (hal_omx_hwservice))
+(expandtypeattribute (hal_omx_hwservice_202404) true)
+(typeattribute hal_omx_hwservice_202404)
+(typeattributeset incremental_service_202404 (incremental_service))
+(expandtypeattribute (incremental_service_202404) true)
+(typeattribute incremental_service_202404)
+(typeattributeset bluetooth_audio_hal_prop_202404 (bluetooth_audio_hal_prop))
+(expandtypeattribute (bluetooth_audio_hal_prop_202404) true)
+(typeattribute bluetooth_audio_hal_prop_202404)
+(typeattributeset permissive_mte_prop_202404 (permissive_mte_prop))
+(expandtypeattribute (permissive_mte_prop_202404) true)
+(typeattribute permissive_mte_prop_202404)
+(typeattributeset lpdumpd_prop_202404 (lpdumpd_prop))
+(expandtypeattribute (lpdumpd_prop_202404) true)
+(typeattribute lpdumpd_prop_202404)
+(typeattributeset proc_locks_202404 (proc_locks))
+(expandtypeattribute (proc_locks_202404) true)
+(typeattribute proc_locks_202404)
+(typeattributeset update_engine_service_202404 (update_engine_service))
+(expandtypeattribute (update_engine_service_202404) true)
+(typeattribute update_engine_service_202404)
+(typeattributeset test_harness_prop_202404 (test_harness_prop))
+(expandtypeattribute (test_harness_prop_202404) true)
+(typeattribute test_harness_prop_202404)
+(typeattributeset lock_settings_service_202404 (lock_settings_service))
+(expandtypeattribute (lock_settings_service_202404) true)
+(typeattribute lock_settings_service_202404)
+(typeattributeset systemsound_config_prop_202404 (systemsound_config_prop))
+(expandtypeattribute (systemsound_config_prop_202404) true)
+(typeattribute systemsound_config_prop_202404)
+(typeattributeset ctl_interface_restart_prop_202404 (ctl_interface_restart_prop))
+(expandtypeattribute (ctl_interface_restart_prop_202404) true)
+(typeattribute ctl_interface_restart_prop_202404)
+(typeattributeset staged_install_file_202404 (staged_install_file))
+(expandtypeattribute (staged_install_file_202404) true)
+(typeattribute staged_install_file_202404)
+(typeattributeset cpu_variant_prop_202404 (cpu_variant_prop))
+(expandtypeattribute (cpu_variant_prop_202404) true)
+(typeattribute cpu_variant_prop_202404)
+(typeattributeset cameraproxy_service_202404 (cameraproxy_service))
+(expandtypeattribute (cameraproxy_service_202404) true)
+(typeattribute cameraproxy_service_202404)
+(typeattributeset build_prop_202404 (build_prop))
+(expandtypeattribute (build_prop_202404) true)
+(typeattribute build_prop_202404)
+(typeattributeset hal_remotelyprovisionedcomponent_avf_service_202404 (hal_remotelyprovisionedcomponent_avf_service))
+(expandtypeattribute (hal_remotelyprovisionedcomponent_avf_service_202404) true)
+(typeattribute hal_remotelyprovisionedcomponent_avf_service_202404)
+(typeattributeset audio_prop_202404 (audio_prop))
+(expandtypeattribute (audio_prop_202404) true)
+(typeattribute audio_prop_202404)
+(typeattributeset apexd_202404 (apexd))
+(expandtypeattribute (apexd_202404) true)
+(typeattribute apexd_202404)
+(typeattributeset healthd_202404 (healthd))
+(expandtypeattribute (healthd_202404) true)
+(typeattribute healthd_202404)
+(typeattributeset keychain_data_file_202404 (keychain_data_file))
+(expandtypeattribute (keychain_data_file_202404) true)
+(typeattribute keychain_data_file_202404)
+(typeattributeset apexd_prop_202404 (apexd_prop))
+(expandtypeattribute (apexd_prop_202404) true)
+(typeattribute apexd_prop_202404)
+(typeattributeset media_metrics_service_202404 (media_metrics_service))
+(expandtypeattribute (media_metrics_service_202404) true)
+(typeattribute media_metrics_service_202404)
+(typeattributeset kmsg_device_202404 (kmsg_device))
+(expandtypeattribute (kmsg_device_202404) true)
+(typeattribute kmsg_device_202404)
+(typeattributeset netif_202404 (netif))
+(expandtypeattribute (netif_202404) true)
+(typeattribute netif_202404)
+(typeattributeset webview_zygote_exec_202404 (webview_zygote_exec))
+(expandtypeattribute (webview_zygote_exec_202404) true)
+(typeattribute webview_zygote_exec_202404)
+(typeattributeset hal_tetheroffload_hwservice_202404 (hal_tetheroffload_hwservice))
+(expandtypeattribute (hal_tetheroffload_hwservice_202404) true)
+(typeattribute hal_tetheroffload_hwservice_202404)
+(typeattributeset proc_watermark_scale_factor_202404 (proc_watermark_scale_factor))
+(expandtypeattribute (proc_watermark_scale_factor_202404) true)
+(typeattribute proc_watermark_scale_factor_202404)
+(typeattributeset radio_202404 (radio))
+(expandtypeattribute (radio_202404) true)
+(typeattribute radio_202404)
+(typeattributeset extra_free_kbytes_202404 (extra_free_kbytes))
+(expandtypeattribute (extra_free_kbytes_202404) true)
+(typeattribute extra_free_kbytes_202404)
+(typeattributeset hypervisor_restricted_prop_202404 (hypervisor_restricted_prop))
+(expandtypeattribute (hypervisor_restricted_prop_202404) true)
+(typeattribute hypervisor_restricted_prop_202404)
+(typeattributeset smart_idle_maint_enabled_prop_202404 (smart_idle_maint_enabled_prop))
+(expandtypeattribute (smart_idle_maint_enabled_prop_202404) true)
+(typeattribute smart_idle_maint_enabled_prop_202404)
+(typeattributeset pipefs_202404 (pipefs))
+(expandtypeattribute (pipefs_202404) true)
+(typeattribute pipefs_202404)
+(typeattributeset pstorefs_202404 (pstorefs))
+(expandtypeattribute (pstorefs_202404) true)
+(typeattribute pstorefs_202404)
+(typeattributeset device_config_surface_flinger_native_boot_prop_202404 (device_config_surface_flinger_native_boot_prop))
+(expandtypeattribute (device_config_surface_flinger_native_boot_prop_202404) true)
+(typeattribute device_config_surface_flinger_native_boot_prop_202404)
+(typeattributeset device_config_vendor_system_native_prop_202404 (device_config_vendor_system_native_prop))
+(expandtypeattribute (device_config_vendor_system_native_prop_202404) true)
+(typeattribute device_config_vendor_system_native_prop_202404)
+(typeattributeset proc_sysrq_202404 (proc_sysrq))
+(expandtypeattribute (proc_sysrq_202404) true)
+(typeattribute proc_sysrq_202404)
+(typeattributeset gatekeeperd_202404 (gatekeeperd))
+(expandtypeattribute (gatekeeperd_202404) true)
+(typeattribute gatekeeperd_202404)
+(typeattributeset device_config_memory_safety_native_prop_202404 (device_config_memory_safety_native_prop))
+(expandtypeattribute (device_config_memory_safety_native_prop_202404) true)
+(typeattribute device_config_memory_safety_native_prop_202404)
+(typeattributeset perfetto_202404 (perfetto))
+(expandtypeattribute (perfetto_202404) true)
+(typeattribute perfetto_202404)
+(typeattributeset consumer_ir_service_202404 (consumer_ir_service))
+(expandtypeattribute (consumer_ir_service_202404) true)
+(typeattribute consumer_ir_service_202404)
+(typeattributeset threadnetwork_service_202404 (threadnetwork_service))
+(expandtypeattribute (threadnetwork_service_202404) true)
+(typeattribute threadnetwork_service_202404)
+(typeattributeset sysfs_devices_cs_etm_202404 (sysfs_devices_cs_etm))
+(expandtypeattribute (sysfs_devices_cs_etm_202404) true)
+(typeattribute sysfs_devices_cs_etm_202404)
+(typeattributeset virtual_device_service_202404 (virtual_device_service))
+(expandtypeattribute (virtual_device_service_202404) true)
+(typeattribute virtual_device_service_202404)
+(typeattributeset sysfs_zram_202404 (sysfs_zram))
+(expandtypeattribute (sysfs_zram_202404) true)
+(typeattribute sysfs_zram_202404)
+(typeattributeset gsi_data_file_202404 (gsi_data_file))
+(expandtypeattribute (gsi_data_file_202404) true)
+(typeattribute gsi_data_file_202404)
+(typeattributeset wifi_data_file_202404 (wifi_data_file))
+(expandtypeattribute (wifi_data_file_202404) true)
+(typeattribute wifi_data_file_202404)
+(typeattributeset mediametrics_service_202404 (mediametrics_service))
+(expandtypeattribute (mediametrics_service_202404) true)
+(typeattribute mediametrics_service_202404)
+(typeattributeset hal_secureclock_service_202404 (hal_secureclock_service))
+(expandtypeattribute (hal_secureclock_service_202404) true)
+(typeattribute hal_secureclock_service_202404)
+(typeattributeset system_boot_reason_prop_202404 (system_boot_reason_prop))
+(expandtypeattribute (system_boot_reason_prop_202404) true)
+(typeattribute system_boot_reason_prop_202404)
+(typeattributeset hal_threadnetwork_service_202404 (hal_threadnetwork_service))
+(expandtypeattribute (hal_threadnetwork_service_202404) true)
+(typeattribute hal_threadnetwork_service_202404)
+(typeattributeset recovery_usb_config_prop_202404 (recovery_usb_config_prop))
+(expandtypeattribute (recovery_usb_config_prop_202404) true)
+(typeattribute recovery_usb_config_prop_202404)
+(typeattributeset task_profiles_api_file_202404 (task_profiles_api_file))
+(expandtypeattribute (task_profiles_api_file_202404) true)
+(typeattribute task_profiles_api_file_202404)
+(typeattributeset hal_lowpan_hwservice_202404 (hal_lowpan_hwservice))
+(expandtypeattribute (hal_lowpan_hwservice_202404) true)
+(typeattribute hal_lowpan_hwservice_202404)
+(typeattributeset statsd_202404 (statsd))
+(expandtypeattribute (statsd_202404) true)
+(typeattribute statsd_202404)
+(typeattributeset assetatlas_service_202404 (assetatlas_service))
+(expandtypeattribute (assetatlas_service_202404) true)
+(typeattribute assetatlas_service_202404)
+(typeattributeset proc_filesystems_202404 (proc_filesystems))
+(expandtypeattribute (proc_filesystems_202404) true)
+(typeattribute proc_filesystems_202404)
+(typeattributeset backup_service_202404 (backup_service))
+(expandtypeattribute (backup_service_202404) true)
+(typeattribute backup_service_202404)
+(typeattributeset pdx_display_manager_channel_socket_202404 (pdx_display_manager_channel_socket))
+(expandtypeattribute (pdx_display_manager_channel_socket_202404) true)
+(typeattribute pdx_display_manager_channel_socket_202404)
+(typeattributeset traced_probes_202404 (traced_probes))
+(expandtypeattribute (traced_probes_202404) true)
+(typeattribute traced_probes_202404)
+(typeattributeset zero_device_202404 (zero_device))
+(expandtypeattribute (zero_device_202404) true)
+(typeattribute zero_device_202404)
+(typeattributeset vendor_keychars_file_202404 (vendor_keychars_file))
+(expandtypeattribute (vendor_keychars_file_202404) true)
+(typeattribute vendor_keychars_file_202404)
+(typeattributeset system_linker_exec_202404 (system_linker_exec))
+(expandtypeattribute (system_linker_exec_202404) true)
+(typeattribute system_linker_exec_202404)
+(typeattributeset hwservice_contexts_file_202404 (hwservice_contexts_file))
+(expandtypeattribute (hwservice_contexts_file_202404) true)
+(typeattribute hwservice_contexts_file_202404)
+(typeattributeset service_contexts_file_202404 (service_contexts_file))
+(expandtypeattribute (service_contexts_file_202404) true)
+(typeattribute service_contexts_file_202404)
+(typeattributeset translation_service_202404 (translation_service))
+(expandtypeattribute (translation_service_202404) true)
+(typeattribute translation_service_202404)
+(typeattributeset exported_bluetooth_prop_202404 (exported_bluetooth_prop))
+(expandtypeattribute (exported_bluetooth_prop_202404) true)
+(typeattribute exported_bluetooth_prop_202404)
+(typeattributeset sysfs_uio_202404 (sysfs_uio))
+(expandtypeattribute (sysfs_uio_202404) true)
+(typeattribute sysfs_uio_202404)
+(typeattributeset vndservice_contexts_file_202404 (vndservice_contexts_file))
+(expandtypeattribute (vndservice_contexts_file_202404) true)
+(typeattribute vndservice_contexts_file_202404)
+(typeattributeset incident_202404 (incident))
+(expandtypeattribute (incident_202404) true)
+(typeattribute incident_202404)
+(typeattributeset vold_post_fs_data_prop_202404 (vold_post_fs_data_prop))
+(expandtypeattribute (vold_post_fs_data_prop_202404) true)
+(typeattribute vold_post_fs_data_prop_202404)
+(typeattributeset mediatranscoding_service_202404 (mediatranscoding_service))
+(expandtypeattribute (mediatranscoding_service_202404) true)
+(typeattribute mediatranscoding_service_202404)
+(typeattributeset cache_block_device_202404 (cache_block_device))
+(expandtypeattribute (cache_block_device_202404) true)
+(typeattribute cache_block_device_202404)
+(typeattributeset dynamic_system_prop_202404 (dynamic_system_prop))
+(expandtypeattribute (dynamic_system_prop_202404) true)
+(typeattribute dynamic_system_prop_202404)
+(typeattributeset soundtrigger_middleware_service_202404 (soundtrigger_middleware_service))
+(expandtypeattribute (soundtrigger_middleware_service_202404) true)
+(typeattribute soundtrigger_middleware_service_202404)
+(typeattributeset crash_dump_exec_202404 (crash_dump_exec))
+(expandtypeattribute (crash_dump_exec_202404) true)
+(typeattribute crash_dump_exec_202404)
+(typeattributeset vendor_public_framework_file_202404 (vendor_public_framework_file))
+(expandtypeattribute (vendor_public_framework_file_202404) true)
+(typeattribute vendor_public_framework_file_202404)
+(typeattributeset shell_202404 (shell))
+(expandtypeattribute (shell_202404) true)
+(typeattribute shell_202404)
+(typeattributeset network_time_update_service_202404 (network_time_update_service))
+(expandtypeattribute (network_time_update_service_202404) true)
+(typeattribute network_time_update_service_202404)
+(typeattributeset theme_prop_202404 (theme_prop))
+(expandtypeattribute (theme_prop_202404) true)
+(typeattribute theme_prop_202404)
+(typeattributeset seapp_contexts_file_202404 (seapp_contexts_file))
+(expandtypeattribute (seapp_contexts_file_202404) true)
+(typeattribute seapp_contexts_file_202404)
+(typeattributeset textclassification_service_202404 (textclassification_service))
+(expandtypeattribute (textclassification_service_202404) true)
+(typeattribute textclassification_service_202404)
+(typeattributeset blkid_untrusted_202404 (blkid_untrusted))
+(expandtypeattribute (blkid_untrusted_202404) true)
+(typeattribute blkid_untrusted_202404)
+(typeattributeset rss_hwm_reset_202404 (rss_hwm_reset))
+(expandtypeattribute (rss_hwm_reset_202404) true)
+(typeattribute rss_hwm_reset_202404)
+(typeattributeset speech_recognition_service_202404 (speech_recognition_service))
+(expandtypeattribute (speech_recognition_service_202404) true)
+(typeattribute speech_recognition_service_202404)
+(typeattributeset dumpstate_prop_202404 (dumpstate_prop))
+(expandtypeattribute (dumpstate_prop_202404) true)
+(typeattribute dumpstate_prop_202404)
+(typeattributeset zygote_exec_202404 (zygote_exec))
+(expandtypeattribute (zygote_exec_202404) true)
+(typeattribute zygote_exec_202404)
+(typeattributeset cppreopt_prop_202404 (cppreopt_prop))
+(expandtypeattribute (cppreopt_prop_202404) true)
+(typeattribute cppreopt_prop_202404)
+(typeattributeset radio_prop_202404 (radio_prop))
+(expandtypeattribute (radio_prop_202404) true)
+(typeattribute radio_prop_202404)
+(typeattributeset postinstall_mnt_dir_202404 (postinstall_mnt_dir))
+(expandtypeattribute (postinstall_mnt_dir_202404) true)
+(typeattribute postinstall_mnt_dir_202404)
+(typeattributeset misc_user_data_file_202404 (misc_user_data_file))
+(expandtypeattribute (misc_user_data_file_202404) true)
+(typeattribute misc_user_data_file_202404)
+(typeattributeset debugfs_wifi_tracing_202404 (debugfs_wifi_tracing))
+(expandtypeattribute (debugfs_wifi_tracing_202404) true)
+(typeattribute debugfs_wifi_tracing_202404)
+(typeattributeset sysfs_fs_incfs_features_202404 (sysfs_fs_incfs_features))
+(expandtypeattribute (sysfs_fs_incfs_features_202404) true)
+(typeattribute sysfs_fs_incfs_features_202404)
+(typeattributeset shell_prop_202404 (shell_prop))
+(expandtypeattribute (shell_prop_202404) true)
+(typeattribute shell_prop_202404)
+(typeattributeset dev_cpu_variant_202404 (dev_cpu_variant))
+(expandtypeattribute (dev_cpu_variant_202404) true)
+(typeattribute dev_cpu_variant_202404)
+(typeattributeset system_linker_config_file_202404 (system_linker_config_file))
+(expandtypeattribute (system_linker_config_file_202404) true)
+(typeattribute system_linker_config_file_202404)
+(typeattributeset keyguard_config_prop_202404 (keyguard_config_prop))
+(expandtypeattribute (keyguard_config_prop_202404) true)
+(typeattribute keyguard_config_prop_202404)
+(typeattributeset aac_drc_prop_202404 (aac_drc_prop))
+(expandtypeattribute (aac_drc_prop_202404) true)
+(typeattribute aac_drc_prop_202404)
+(typeattributeset password_slot_metadata_file_202404 (password_slot_metadata_file))
+(expandtypeattribute (password_slot_metadata_file_202404) true)
+(typeattribute password_slot_metadata_file_202404)
+(typeattributeset isolated_app_202404 (isolated_app))
+(expandtypeattribute (isolated_app_202404) true)
+(typeattribute isolated_app_202404)
+(typeattributeset sysfs_vibrator_202404 (sysfs_vibrator))
+(expandtypeattribute (sysfs_vibrator_202404) true)
+(typeattribute sysfs_vibrator_202404)
+(typeattributeset network_management_service_202404 (network_management_service))
+(expandtypeattribute (network_management_service_202404) true)
+(typeattribute network_management_service_202404)
+(typeattributeset heapprofd_prop_202404 (heapprofd_prop))
+(expandtypeattribute (heapprofd_prop_202404) true)
+(typeattribute heapprofd_prop_202404)
+(typeattributeset sysfs_hwrandom_202404 (sysfs_hwrandom))
+(expandtypeattribute (sysfs_hwrandom_202404) true)
+(typeattribute sysfs_hwrandom_202404)
+(typeattributeset virtualization_service_202404 (virtualization_service))
+(expandtypeattribute (virtualization_service_202404) true)
+(typeattribute virtualization_service_202404)
+(typeattributeset keystore_config_prop_202404 (keystore_config_prop))
+(expandtypeattribute (keystore_config_prop_202404) true)
+(typeattribute keystore_config_prop_202404)
+(typeattributeset system_server_202404 (system_server))
+(expandtypeattribute (system_server_202404) true)
+(typeattribute system_server_202404)
+(typeattributeset device_identifiers_service_202404 (device_identifiers_service))
+(expandtypeattribute (device_identifiers_service_202404) true)
+(typeattribute device_identifiers_service_202404)
+(typeattributeset userspace_reboot_exported_prop_202404 (userspace_reboot_exported_prop))
+(expandtypeattribute (userspace_reboot_exported_prop_202404) true)
+(typeattribute userspace_reboot_exported_prop_202404)
+(typeattributeset network_score_service_202404 (network_score_service))
+(expandtypeattribute (network_score_service_202404) true)
+(typeattribute network_score_service_202404)
+(typeattributeset e2fs_202404 (e2fs))
+(expandtypeattribute (e2fs_202404) true)
+(typeattribute e2fs_202404)
+(typeattributeset usbfs_202404 (usbfs))
+(expandtypeattribute (usbfs_202404) true)
+(typeattribute usbfs_202404)
+(typeattributeset binderfs_202404 (binderfs))
+(expandtypeattribute (binderfs_202404) true)
+(typeattribute binderfs_202404)
+(typeattributeset vendor_microdroid_file_202404 (vendor_microdroid_file))
+(expandtypeattribute (vendor_microdroid_file_202404) true)
+(typeattribute vendor_microdroid_file_202404)
+(typeattributeset debugfs_wakeup_sources_202404 (debugfs_wakeup_sources))
+(expandtypeattribute (debugfs_wakeup_sources_202404) true)
+(typeattribute debugfs_wakeup_sources_202404)
+(typeattributeset repair_mode_metadata_file_202404 (repair_mode_metadata_file))
+(expandtypeattribute (repair_mode_metadata_file_202404) true)
+(typeattribute repair_mode_metadata_file_202404)
+(typeattributeset surfaceflinger_display_prop_202404 (surfaceflinger_display_prop))
+(expandtypeattribute (surfaceflinger_display_prop_202404) true)
+(typeattribute surfaceflinger_display_prop_202404)
+(typeattributeset incident_helper_202404 (incident_helper))
+(expandtypeattribute (incident_helper_202404) true)
+(typeattribute incident_helper_202404)
+(typeattributeset sendbug_config_prop_202404 (sendbug_config_prop))
+(expandtypeattribute (sendbug_config_prop_202404) true)
+(typeattribute sendbug_config_prop_202404)
+(typeattributeset system_wifi_keystore_hwservice_202404 (system_wifi_keystore_hwservice))
+(expandtypeattribute (system_wifi_keystore_hwservice_202404) true)
+(typeattribute system_wifi_keystore_hwservice_202404)
+(typeattributeset sdcardd_202404 (sdcardd))
+(expandtypeattribute (sdcardd_202404) true)
+(typeattribute sdcardd_202404)
+(typeattributeset audioserver_tmpfs_202404 (audioserver_tmpfs))
+(expandtypeattribute (audioserver_tmpfs_202404) true)
+(typeattribute audioserver_tmpfs_202404)
+(typeattributeset mediaserver_tmpfs_202404 (mediaserver_tmpfs))
+(expandtypeattribute (mediaserver_tmpfs_202404) true)
+(typeattribute mediaserver_tmpfs_202404)
+(typeattributeset thermal_service_202404 (thermal_service))
+(expandtypeattribute (thermal_service_202404) true)
+(typeattribute thermal_service_202404)
+(typeattributeset connectivity_native_service_202404 (connectivity_native_service))
+(expandtypeattribute (connectivity_native_service_202404) true)
+(typeattribute connectivity_native_service_202404)
+(typeattributeset idmap_service_202404 (idmap_service))
+(expandtypeattribute (idmap_service_202404) true)
+(typeattribute idmap_service_202404)
+(typeattributeset logdr_socket_202404 (logdr_socket))
+(expandtypeattribute (logdr_socket_202404) true)
+(typeattribute logdr_socket_202404)
+(typeattributeset logdw_socket_202404 (logdw_socket))
+(expandtypeattribute (logdw_socket_202404) true)
+(typeattribute logdw_socket_202404)
+(typeattributeset vpn_data_file_202404 (vpn_data_file))
+(expandtypeattribute (vpn_data_file_202404) true)
+(typeattribute vpn_data_file_202404)
+(typeattributeset dalvikcache_data_file_202404 (dalvikcache_data_file))
+(expandtypeattribute (dalvikcache_data_file_202404) true)
+(typeattribute dalvikcache_data_file_202404)
+(typeattributeset hw_timeout_multiplier_prop_202404 (hw_timeout_multiplier_prop))
+(expandtypeattribute (hw_timeout_multiplier_prop_202404) true)
+(typeattribute hw_timeout_multiplier_prop_202404)
+(typeattributeset drm_service_config_prop_202404 (drm_service_config_prop))
+(expandtypeattribute (drm_service_config_prop_202404) true)
+(typeattribute drm_service_config_prop_202404)
+(typeattributeset mediaserver_service_202404 (mediaserver_service))
+(expandtypeattribute (mediaserver_service_202404) true)
+(typeattribute mediaserver_service_202404)
+(typeattributeset network_stack_202404 (network_stack))
+(expandtypeattribute (network_stack_202404) true)
+(typeattribute network_stack_202404)
+(typeattributeset property_data_file_202404 (property_data_file))
+(expandtypeattribute (property_data_file_202404) true)
+(typeattribute property_data_file_202404)
+(typeattributeset binderfs_logs_proc_202404 (binderfs_logs_proc))
+(expandtypeattribute (binderfs_logs_proc_202404) true)
+(typeattribute binderfs_logs_proc_202404)
+(typeattributeset wifi_hal_prop_202404 (wifi_hal_prop))
+(expandtypeattribute (wifi_hal_prop_202404) true)
+(typeattribute wifi_hal_prop_202404)
+(typeattributeset wifi_log_prop_202404 (wifi_log_prop))
+(expandtypeattribute (wifi_log_prop_202404) true)
+(typeattribute wifi_log_prop_202404)
+(typeattributeset accessibility_service_202404 (accessibility_service))
+(expandtypeattribute (accessibility_service_202404) true)
+(typeattribute accessibility_service_202404)
+(typeattributeset timezonedetector_service_202404 (timezonedetector_service))
+(expandtypeattribute (timezonedetector_service_202404) true)
+(typeattribute timezonedetector_service_202404)
+(typeattributeset device_config_aconfig_flags_prop_202404 (device_config_aconfig_flags_prop))
+(expandtypeattribute (device_config_aconfig_flags_prop_202404) true)
+(typeattribute device_config_aconfig_flags_prop_202404)
+(typeattributeset camera_device_202404 (camera_device))
+(expandtypeattribute (camera_device_202404) true)
+(typeattribute camera_device_202404)
+(typeattributeset recovery_data_file_202404 (recovery_data_file))
+(expandtypeattribute (recovery_data_file_202404) true)
+(typeattribute recovery_data_file_202404)
+(typeattributeset system_app_data_file_202404 (system_app_data_file))
+(expandtypeattribute (system_app_data_file_202404) true)
+(typeattribute system_app_data_file_202404)
+(typeattributeset proc_cpu_alignment_202404 (proc_cpu_alignment))
+(expandtypeattribute (proc_cpu_alignment_202404) true)
+(typeattribute proc_cpu_alignment_202404)
+(typeattributeset sysfs_fs_fuse_bpf_202404 (sysfs_fs_fuse_bpf))
+(expandtypeattribute (sysfs_fs_fuse_bpf_202404) true)
+(typeattribute sysfs_fs_fuse_bpf_202404)
+(typeattributeset media_variant_prop_202404 (media_variant_prop))
+(expandtypeattribute (media_variant_prop_202404) true)
+(typeattribute media_variant_prop_202404)
+(typeattributeset sysfs_leds_202404 (sysfs_leds))
+(expandtypeattribute (sysfs_leds_202404) true)
+(typeattribute sysfs_leds_202404)
+(typeattributeset adaptive_haptics_prop_202404 (adaptive_haptics_prop))
+(expandtypeattribute (adaptive_haptics_prop_202404) true)
+(typeattribute adaptive_haptics_prop_202404)
+(typeattributeset restrictions_service_202404 (restrictions_service))
+(expandtypeattribute (restrictions_service_202404) true)
+(typeattribute restrictions_service_202404)
+(typeattributeset dck_prop_202404 (dck_prop))
+(expandtypeattribute (dck_prop_202404) true)
+(typeattribute dck_prop_202404)
+(typeattributeset log_prop_202404 (log_prop))
+(expandtypeattribute (log_prop_202404) true)
+(typeattribute log_prop_202404)
+(typeattributeset mmc_prop_202404 (mmc_prop))
+(expandtypeattribute (mmc_prop_202404) true)
+(typeattribute mmc_prop_202404)
+(typeattributeset nfc_prop_202404 (nfc_prop))
+(expandtypeattribute (nfc_prop_202404) true)
+(typeattribute nfc_prop_202404)
+(typeattributeset ota_prop_202404 (ota_prop))
+(expandtypeattribute (ota_prop_202404) true)
+(typeattribute ota_prop_202404)
+(typeattributeset soc_prop_202404 (soc_prop))
+(expandtypeattribute (soc_prop_202404) true)
+(typeattribute soc_prop_202404)
+(typeattributeset usb_prop_202404 (usb_prop))
+(expandtypeattribute (usb_prop_202404) true)
+(typeattribute usb_prop_202404)
+(typeattributeset toolbox_202404 (toolbox))
+(expandtypeattribute (toolbox_202404) true)
+(typeattribute toolbox_202404)
+(typeattributeset IProxyService_service_202404 (IProxyService_service))
+(expandtypeattribute (IProxyService_service_202404) true)
+(typeattribute IProxyService_service_202404)
+(typeattributeset hal_vehicle_service_202404 (hal_vehicle_service))
+(expandtypeattribute (hal_vehicle_service_202404) true)
+(typeattribute hal_vehicle_service_202404)
+(typeattributeset aidl_lazy_test_service_202404 (aidl_lazy_test_service))
+(expandtypeattribute (aidl_lazy_test_service_202404) true)
+(typeattribute aidl_lazy_test_service_202404)
+(typeattributeset music_recognition_service_202404 (music_recognition_service))
+(expandtypeattribute (music_recognition_service_202404) true)
+(typeattribute music_recognition_service_202404)
+(typeattributeset mnt_media_rw_stub_file_202404 (mnt_media_rw_stub_file))
+(expandtypeattribute (mnt_media_rw_stub_file_202404) true)
+(typeattribute mnt_media_rw_stub_file_202404)
+(typeattributeset proc_202404 (proc))
+(expandtypeattribute (proc_202404) true)
+(typeattribute proc_202404)
+(typeattributeset virtual_device_native_service_202404 (virtual_device_native_service))
+(expandtypeattribute (virtual_device_native_service_202404) true)
+(typeattribute virtual_device_native_service_202404)
+(typeattributeset bluetooth_socket_202404 (bluetooth_socket))
+(expandtypeattribute (bluetooth_socket_202404) true)
+(typeattribute bluetooth_socket_202404)
+(typeattributeset logcat_exec_202404 (logcat_exec))
+(expandtypeattribute (logcat_exec_202404) true)
+(typeattribute logcat_exec_202404)
+(typeattributeset apk_verity_prop_202404 (apk_verity_prop))
+(expandtypeattribute (apk_verity_prop_202404) true)
+(typeattribute apk_verity_prop_202404)
+(typeattributeset inputflinger_exec_202404 (inputflinger_exec))
+(expandtypeattribute (inputflinger_exec_202404) true)
+(typeattribute inputflinger_exec_202404)
+(typeattributeset overlay_prop_202404 (overlay_prop))
+(expandtypeattribute (overlay_prop_202404) true)
+(typeattribute overlay_prop_202404)
+(typeattributeset ot_daemon_service_202404 (ot_daemon_service))
+(expandtypeattribute (ot_daemon_service_202404) true)
+(typeattribute ot_daemon_service_202404)
+(typeattributeset hal_tetheroffload_service_202404 (hal_tetheroffload_service))
+(expandtypeattribute (hal_tetheroffload_service_202404) true)
+(typeattribute hal_tetheroffload_service_202404)
+(typeattributeset camera_calibration_prop_202404 (camera_calibration_prop))
+(expandtypeattribute (camera_calibration_prop_202404) true)
+(typeattribute camera_calibration_prop_202404)
+(typeattributeset fuseblk_202404 (fuseblk))
+(expandtypeattribute (fuseblk_202404) true)
+(typeattribute fuseblk_202404)
+(typeattributeset test_boot_reason_prop_202404 (test_boot_reason_prop))
+(expandtypeattribute (test_boot_reason_prop_202404) true)
+(typeattribute test_boot_reason_prop_202404)
+(typeattributeset hal_wifi_hostapd_hwservice_202404 (hal_wifi_hostapd_hwservice))
+(expandtypeattribute (hal_wifi_hostapd_hwservice_202404) true)
+(typeattribute hal_wifi_hostapd_hwservice_202404)
+(typeattributeset virtual_face_hal_prop_202404 (virtual_face_hal_prop))
+(expandtypeattribute (virtual_face_hal_prop_202404) true)
+(typeattribute virtual_face_hal_prop_202404)
+(typeattributeset safemode_prop_202404 (safemode_prop))
+(expandtypeattribute (safemode_prop_202404) true)
+(typeattribute safemode_prop_202404)
+(typeattributeset vendor_apex_metadata_file_202404 (vendor_apex_metadata_file))
+(expandtypeattribute (vendor_apex_metadata_file_202404) true)
+(typeattribute vendor_apex_metadata_file_202404)
+(typeattributeset wallpaper_file_202404 (wallpaper_file))
+(expandtypeattribute (wallpaper_file_202404) true)
+(typeattribute wallpaper_file_202404)
+(typeattributeset shortcut_manager_icons_202404 (shortcut_manager_icons))
+(expandtypeattribute (shortcut_manager_icons_202404) true)
+(typeattribute shortcut_manager_icons_202404)
+(typeattributeset dalvik_dynamic_config_prop_202404 (dalvik_dynamic_config_prop))
+(expandtypeattribute (dalvik_dynamic_config_prop_202404) true)
+(typeattribute dalvik_dynamic_config_prop_202404)
+(typeattributeset proc_asound_202404 (proc_asound))
+(expandtypeattribute (proc_asound_202404) true)
+(typeattribute proc_asound_202404)
+(typeattributeset apex_mnt_dir_202404 (apex_mnt_dir))
+(expandtypeattribute (apex_mnt_dir_202404) true)
+(typeattribute apex_mnt_dir_202404)
+(typeattributeset hal_neuralnetworks_hwservice_202404 (hal_neuralnetworks_hwservice))
+(expandtypeattribute (hal_neuralnetworks_hwservice_202404) true)
+(typeattribute hal_neuralnetworks_hwservice_202404)
+(typeattributeset selection_toolbar_service_202404 (selection_toolbar_service))
+(expandtypeattribute (selection_toolbar_service_202404) true)
+(typeattribute selection_toolbar_service_202404)
+(typeattributeset build_vendor_prop_202404 (build_vendor_prop))
+(expandtypeattribute (build_vendor_prop_202404) true)
+(typeattribute build_vendor_prop_202404)
+(typeattributeset dhcp_prop_202404 (dhcp_prop))
+(expandtypeattribute (dhcp_prop_202404) true)
+(typeattribute dhcp_prop_202404)
+(typeattributeset gps_control_202404 (gps_control))
+(expandtypeattribute (gps_control_202404) true)
+(typeattribute gps_control_202404)
+(typeattributeset llkd_prop_202404 (llkd_prop))
+(expandtypeattribute (llkd_prop_202404) true)
+(typeattribute llkd_prop_202404)
+(typeattributeset lmkd_prop_202404 (lmkd_prop))
+(expandtypeattribute (lmkd_prop_202404) true)
+(typeattribute lmkd_prop_202404)
+(typeattributeset logd_prop_202404 (logd_prop))
+(expandtypeattribute (logd_prop_202404) true)
+(typeattribute logd_prop_202404)
+(typeattributeset system_unsolzygote_socket_202404 (system_unsolzygote_socket))
+(expandtypeattribute (system_unsolzygote_socket_202404) true)
+(typeattribute system_unsolzygote_socket_202404)
+(typeattributeset dumpstate_options_prop_202404 (dumpstate_options_prop))
+(expandtypeattribute (dumpstate_options_prop_202404) true)
+(typeattribute dumpstate_options_prop_202404)
+(typeattributeset proc_uid_concurrent_active_time_202404 (proc_uid_concurrent_active_time))
+(expandtypeattribute (proc_uid_concurrent_active_time_202404) true)
+(typeattribute proc_uid_concurrent_active_time_202404)
+(typeattributeset vndk_prop_202404 (vndk_prop))
+(expandtypeattribute (vndk_prop_202404) true)
+(typeattribute vndk_prop_202404)
+(typeattributeset vold_prop_202404 (vold_prop))
+(expandtypeattribute (vold_prop_202404) true)
+(typeattribute vold_prop_202404)
+(typeattributeset wifi_prop_202404 (wifi_prop))
+(expandtypeattribute (wifi_prop_202404) true)
+(typeattribute wifi_prop_202404)
+(typeattributeset time_prop_202404 (time_prop))
+(expandtypeattribute (time_prop_202404) true)
+(typeattribute time_prop_202404)
+(typeattributeset imms_service_202404 (imms_service))
+(expandtypeattribute (imms_service_202404) true)
+(typeattribute imms_service_202404)
+(typeattributeset sota_prop_202404 (sota_prop))
+(expandtypeattribute (sota_prop_202404) true)
+(typeattribute sota_prop_202404)
+(typeattributeset app_integrity_service_202404 (app_integrity_service))
+(expandtypeattribute (app_integrity_service_202404) true)
+(typeattribute app_integrity_service_202404)
+(typeattributeset charger_config_prop_202404 (charger_config_prop))
+(expandtypeattribute (charger_config_prop_202404) true)
+(typeattribute charger_config_prop_202404)
+(typeattributeset hal_bootctl_service_202404 (hal_bootctl_service))
+(expandtypeattribute (hal_bootctl_service_202404) true)
+(typeattribute hal_bootctl_service_202404)
+(typeattributeset sysfs_202404 (sysfs))
+(expandtypeattribute (sysfs_202404) true)
+(typeattribute sysfs_202404)
+(typeattributeset default_android_service_202404 (default_android_service))
+(expandtypeattribute (default_android_service_202404) true)
+(typeattribute default_android_service_202404)
+(typeattributeset hal_sharedsecret_service_202404 (hal_sharedsecret_service))
+(expandtypeattribute (hal_sharedsecret_service_202404) true)
+(typeattribute hal_sharedsecret_service_202404)
+(typeattributeset bufferhubd_202404 (bufferhubd))
+(expandtypeattribute (bufferhubd_202404) true)
+(typeattribute bufferhubd_202404)
+(typeattributeset simpleperf_202404 (simpleperf))
+(expandtypeattribute (simpleperf_202404) true)
+(typeattribute simpleperf_202404)
+(typeattributeset socket_hook_prop_202404 (socket_hook_prop))
+(expandtypeattribute (socket_hook_prop_202404) true)
+(typeattribute socket_hook_prop_202404)
+(typeattributeset traced_lazy_prop_202404 (traced_lazy_prop))
+(expandtypeattribute (traced_lazy_prop_202404) true)
+(typeattribute traced_lazy_prop_202404)
+(typeattributeset sysfs_devices_system_cpu_202404 (sysfs_devices_system_cpu))
+(expandtypeattribute (sysfs_devices_system_cpu_202404) true)
+(typeattribute sysfs_devices_system_cpu_202404)
+(typeattributeset untrusted_app_202404 (untrusted_app))
+(expandtypeattribute (untrusted_app_202404) true)
+(typeattribute untrusted_app_202404)
+(typeattributeset artd_202404 (artd))
+(expandtypeattribute (artd_202404) true)
+(typeattribute artd_202404)
+(typeattributeset system_suspend_control_internal_service_202404 (system_suspend_control_internal_service))
+(expandtypeattribute (system_suspend_control_internal_service_202404) true)
+(typeattribute system_suspend_control_internal_service_202404)
+(typeattributeset device_config_camera_native_prop_202404 (device_config_camera_native_prop))
+(expandtypeattribute (device_config_camera_native_prop_202404) true)
+(typeattribute device_config_camera_native_prop_202404)
+(typeattributeset shared_relro_202404 (shared_relro))
+(expandtypeattribute (shared_relro_202404) true)
+(typeattribute shared_relro_202404)
+(typeattributeset hal_input_processor_service_202404 (hal_input_processor_service))
+(expandtypeattribute (hal_input_processor_service_202404) true)
+(typeattribute hal_input_processor_service_202404)
+(typeattributeset hal_wifi_hwservice_202404 (hal_wifi_hwservice))
+(expandtypeattribute (hal_wifi_hwservice_202404) true)
+(typeattribute hal_wifi_hwservice_202404)
+(typeattributeset proc_vmstat_202404 (proc_vmstat))
+(expandtypeattribute (proc_vmstat_202404) true)
+(typeattribute proc_vmstat_202404)
+(typeattributeset binderfs_features_202404 (binderfs_features))
+(expandtypeattribute (binderfs_features_202404) true)
+(typeattribute binderfs_features_202404)
+(typeattributeset storage_config_prop_202404 (storage_config_prop))
+(expandtypeattribute (storage_config_prop_202404) true)
+(typeattribute storage_config_prop_202404)
+(typeattributeset hal_graphics_mapper_hwservice_202404 (hal_graphics_mapper_hwservice))
+(expandtypeattribute (hal_graphics_mapper_hwservice_202404) true)
+(typeattribute hal_graphics_mapper_hwservice_202404)
+(typeattributeset traced_202404 (traced))
+(expandtypeattribute (traced_202404) true)
+(typeattribute traced_202404)
+(typeattributeset debugfs_kprobes_202404 (debugfs_kprobes))
+(expandtypeattribute (debugfs_kprobes_202404) true)
+(typeattribute debugfs_kprobes_202404)
+(typeattributeset proc_uid_concurrent_policy_time_202404 (proc_uid_concurrent_policy_time))
+(expandtypeattribute (proc_uid_concurrent_policy_time_202404) true)
+(typeattribute proc_uid_concurrent_policy_time_202404)
+(typeattributeset audio_data_file_202404 (audio_data_file))
+(expandtypeattribute (audio_data_file_202404) true)
+(typeattribute audio_data_file_202404)
+(typeattributeset radio_data_file_202404 (radio_data_file))
+(expandtypeattribute (radio_data_file_202404) true)
+(typeattribute radio_data_file_202404)
+(typeattributeset traceur_app_202404 (traceur_app))
+(expandtypeattribute (traceur_app_202404) true)
+(typeattribute traceur_app_202404)
+(typeattributeset display_service_202404 (display_service))
+(expandtypeattribute (display_service_202404) true)
+(typeattribute display_service_202404)
+(typeattributeset overlay_service_202404 (overlay_service))
+(expandtypeattribute (overlay_service_202404) true)
+(typeattribute overlay_service_202404)
+(typeattributeset hal_wifi_supplicant_hwservice_202404 (hal_wifi_supplicant_hwservice))
+(expandtypeattribute (hal_wifi_supplicant_hwservice_202404) true)
+(typeattribute hal_wifi_supplicant_hwservice_202404)
+(typeattributeset performanced_exec_202404 (performanced_exec))
+(expandtypeattribute (performanced_exec_202404) true)
+(typeattribute performanced_exec_202404)
+(typeattributeset charger_status_prop_202404 (charger_status_prop))
+(expandtypeattribute (charger_status_prop_202404) true)
+(typeattribute charger_status_prop_202404)
+(typeattributeset usbd_202404 (usbd))
+(expandtypeattribute (usbd_202404) true)
+(typeattribute usbd_202404)
+(typeattributeset proc_page_cluster_202404 (proc_page_cluster))
+(expandtypeattribute (proc_page_cluster_202404) true)
+(typeattribute proc_page_cluster_202404)
+(typeattributeset graphics_config_writable_prop_202404 (graphics_config_writable_prop))
+(expandtypeattribute (graphics_config_writable_prop_202404) true)
+(typeattribute graphics_config_writable_prop_202404)
+(typeattributeset emergency_affordance_service_202404 (emergency_affordance_service))
+(expandtypeattribute (emergency_affordance_service_202404) true)
+(typeattribute emergency_affordance_service_202404)
+(typeattributeset hal_health_hwservice_202404 (hal_health_hwservice))
+(expandtypeattribute (hal_health_hwservice_202404) true)
+(typeattribute hal_health_hwservice_202404)
+(typeattributeset system_wpa_socket_202404 (system_wpa_socket))
+(expandtypeattribute (system_wpa_socket_202404) true)
+(typeattribute system_wpa_socket_202404)
+(typeattributeset sysfs_rtc_202404 (sysfs_rtc))
+(expandtypeattribute (sysfs_rtc_202404) true)
+(typeattribute sysfs_rtc_202404)
+(typeattributeset fsck_202404 (fsck))
+(expandtypeattribute (fsck_202404) true)
+(typeattribute fsck_202404)
+(typeattributeset keystore_compat_hal_service_202404 (keystore_compat_hal_service))
+(expandtypeattribute (keystore_compat_hal_service_202404) true)
+(typeattribute keystore_compat_hal_service_202404)
+(typeattributeset proc_bpf_202404 (proc_bpf))
+(expandtypeattribute (proc_bpf_202404) true)
+(typeattribute proc_bpf_202404)
+(typeattributeset fs_bpf_202404 (fs_bpf))
+(expandtypeattribute (fs_bpf_202404) true)
+(typeattribute fs_bpf_202404)
+(typeattributeset snapshotctl_log_data_file_202404 (snapshotctl_log_data_file))
+(expandtypeattribute (snapshotctl_log_data_file_202404) true)
+(typeattribute snapshotctl_log_data_file_202404)
+(typeattributeset dalvik_runtime_prop_202404 (dalvik_runtime_prop))
+(expandtypeattribute (dalvik_runtime_prop_202404) true)
+(typeattribute dalvik_runtime_prop_202404)
+(typeattributeset prng_seeder_202404 (prng_seeder))
+(expandtypeattribute (prng_seeder_202404) true)
+(typeattribute prng_seeder_202404)
+(typeattributeset netd_listener_service_202404 (netd_listener_service))
+(expandtypeattribute (netd_listener_service_202404) true)
+(typeattribute netd_listener_service_202404)
+(typeattributeset debugfs_bootreceiver_tracing_202404 (debugfs_bootreceiver_tracing))
+(expandtypeattribute (debugfs_bootreceiver_tracing_202404) true)
+(typeattribute debugfs_bootreceiver_tracing_202404)
+(typeattributeset vcn_management_service_202404 (vcn_management_service))
+(expandtypeattribute (vcn_management_service_202404) true)
+(typeattribute vcn_management_service_202404)
+(typeattributeset vpn_management_service_202404 (vpn_management_service))
+(expandtypeattribute (vpn_management_service_202404) true)
+(typeattribute vpn_management_service_202404)
+(typeattributeset app_fusefs_202404 (app_fusefs))
+(expandtypeattribute (app_fusefs_202404) true)
+(typeattribute app_fusefs_202404)
+(typeattributeset graphics_config_prop_202404 (graphics_config_prop))
+(expandtypeattribute (graphics_config_prop_202404) true)
+(typeattribute graphics_config_prop_202404)
+(typeattributeset proc_overcommit_memory_202404 (proc_overcommit_memory))
+(expandtypeattribute (proc_overcommit_memory_202404) true)
+(typeattribute proc_overcommit_memory_202404)
+(typeattributeset ctl_dumpstate_prop_202404 (ctl_dumpstate_prop))
+(expandtypeattribute (ctl_dumpstate_prop_202404) true)
+(typeattribute ctl_dumpstate_prop_202404)
+(typeattributeset build_bootimage_prop_202404 (build_bootimage_prop))
+(expandtypeattribute (build_bootimage_prop_202404) true)
+(typeattribute build_bootimage_prop_202404)
+(typeattributeset device_config_memory_safety_native_boot_prop_202404 (device_config_memory_safety_native_boot_prop))
+(expandtypeattribute (device_config_memory_safety_native_boot_prop_202404) true)
+(typeattribute device_config_memory_safety_native_boot_prop_202404)
+(typeattributeset init_service_status_prop_202404 (init_service_status_prop))
+(expandtypeattribute (init_service_status_prop_202404) true)
+(typeattribute init_service_status_prop_202404)
+(typeattributeset connmetrics_service_202404 (connmetrics_service))
+(expandtypeattribute (connmetrics_service_202404) true)
+(typeattribute connmetrics_service_202404)
+(typeattributeset hal_health_storage_service_202404 (hal_health_storage_service))
+(expandtypeattribute (hal_health_storage_service_202404) true)
+(typeattribute hal_health_storage_service_202404)
+(typeattributeset proc_uid_cputime_removeuid_202404 (proc_uid_cputime_removeuid))
+(expandtypeattribute (proc_uid_cputime_removeuid_202404) true)
+(typeattribute proc_uid_cputime_removeuid_202404)
+(typeattributeset dtbo_block_device_202404 (dtbo_block_device))
+(expandtypeattribute (dtbo_block_device_202404) true)
+(typeattribute dtbo_block_device_202404)
+(typeattributeset boot_block_device_202404 (boot_block_device))
+(expandtypeattribute (boot_block_device_202404) true)
+(typeattribute boot_block_device_202404)
+(typeattributeset powerctl_prop_202404 (powerctl_prop))
+(expandtypeattribute (powerctl_prop_202404) true)
+(typeattribute powerctl_prop_202404)
+(typeattributeset sysfs_android_usb_202404 (sysfs_android_usb))
+(expandtypeattribute (sysfs_android_usb_202404) true)
+(typeattribute sysfs_android_usb_202404)
+(typeattributeset misc_block_device_202404 (misc_block_device))
+(expandtypeattribute (misc_block_device_202404) true)
+(typeattribute misc_block_device_202404)
+(typeattributeset ublk_block_device_202404 (ublk_block_device))
+(expandtypeattribute (ublk_block_device_202404) true)
+(typeattribute ublk_block_device_202404)
+(typeattributeset root_block_device_202404 (root_block_device))
+(expandtypeattribute (root_block_device_202404) true)
+(typeattribute root_block_device_202404)
+(typeattributeset swap_block_device_202404 (swap_block_device))
+(expandtypeattribute (swap_block_device_202404) true)
+(typeattribute swap_block_device_202404)
+(typeattributeset block_device_202404 (block_device))
+(expandtypeattribute (block_device_202404) true)
+(typeattribute block_device_202404)
+(typeattributeset frp_block_device_202404 (frp_block_device))
+(expandtypeattribute (frp_block_device_202404) true)
+(typeattribute frp_block_device_202404)
+(typeattributeset sysfs_power_202404 (sysfs_power))
+(expandtypeattribute (sysfs_power_202404) true)
+(typeattribute sysfs_power_202404)
+(typeattributeset loop_device_202404 (loop_device))
+(expandtypeattribute (loop_device_202404) true)
+(typeattribute loop_device_202404)
+(typeattributeset proc_random_202404 (proc_random))
+(expandtypeattribute (proc_random_202404) true)
+(typeattribute proc_random_202404)
+(typeattributeset hal_health_storage_hwservice_202404 (hal_health_storage_hwservice))
+(expandtypeattribute (hal_health_storage_hwservice_202404) true)
+(typeattribute hal_health_storage_hwservice_202404)
+(typeattributeset dnsproxyd_socket_202404 (dnsproxyd_socket))
+(expandtypeattribute (dnsproxyd_socket_202404) true)
+(typeattribute dnsproxyd_socket_202404)
+(typeattributeset crash_dump_202404 (crash_dump))
+(expandtypeattribute (crash_dump_202404) true)
+(typeattribute crash_dump_202404)
+(typeattributeset hal_keymaster_hwservice_202404 (hal_keymaster_hwservice))
+(expandtypeattribute (hal_keymaster_hwservice_202404) true)
+(typeattribute hal_keymaster_hwservice_202404)
+(typeattributeset ctl_interface_start_prop_202404 (ctl_interface_start_prop))
+(expandtypeattribute (ctl_interface_start_prop_202404) true)
+(typeattribute ctl_interface_start_prop_202404)
+(typeattributeset module_sdkextensions_prop_202404 (module_sdkextensions_prop))
+(expandtypeattribute (module_sdkextensions_prop_202404) true)
+(typeattribute module_sdkextensions_prop_202404)
+(typeattributeset sysfs_wakeup_reasons_202404 (sysfs_wakeup_reasons))
+(expandtypeattribute (sysfs_wakeup_reasons_202404) true)
+(typeattribute sysfs_wakeup_reasons_202404)
+(typeattributeset device_config_reset_performed_prop_202404 (device_config_reset_performed_prop))
+(expandtypeattribute (device_config_reset_performed_prop_202404) true)
+(typeattribute device_config_reset_performed_prop_202404)
+(typeattributeset shm_202404 (shm))
+(expandtypeattribute (shm_202404) true)
+(typeattribute shm_202404)
+(typeattributeset installd_service_202404 (installd_service))
+(expandtypeattribute (installd_service_202404) true)
+(typeattribute installd_service_202404)
+(typeattributeset proc_extra_free_kbytes_202404 (proc_extra_free_kbytes))
+(expandtypeattribute (proc_extra_free_kbytes_202404) true)
+(typeattribute proc_extra_free_kbytes_202404)
+(typeattributeset proc_uid_cputime_showstat_202404 (proc_uid_cputime_showstat))
+(expandtypeattribute (proc_uid_cputime_showstat_202404) true)
+(typeattribute proc_uid_cputime_showstat_202404)
+(typeattributeset vendor_misc_writer_exec_202404 (vendor_misc_writer_exec))
+(expandtypeattribute (vendor_misc_writer_exec_202404) true)
+(typeattribute vendor_misc_writer_exec_202404)
+(typeattributeset runas_app_202404 (runas_app))
+(expandtypeattribute (runas_app_202404) true)
+(typeattribute runas_app_202404)
+(typeattributeset bootstat_exec_202404 (bootstat_exec))
+(expandtypeattribute (bootstat_exec_202404) true)
+(typeattribute bootstat_exec_202404)
+(typeattributeset mdns_socket_202404 (mdns_socket))
+(expandtypeattribute (mdns_socket_202404) true)
+(typeattribute mdns_socket_202404)
+(typeattributeset oem_lock_service_202404 (oem_lock_service))
+(expandtypeattribute (oem_lock_service_202404) true)
+(typeattribute oem_lock_service_202404)
+(typeattributeset audioserver_202404 (audioserver))
+(expandtypeattribute (audioserver_202404) true)
+(typeattribute audioserver_202404)
+(typeattributeset tmpfs_202404 (tmpfs))
+(expandtypeattribute (tmpfs_202404) true)
+(typeattribute tmpfs_202404)
+(typeattributeset bootanim_exec_202404 (bootanim_exec))
+(expandtypeattribute (bootanim_exec_202404) true)
+(typeattribute bootanim_exec_202404)
+(typeattributeset hal_gnss_service_202404 (hal_gnss_service))
+(expandtypeattribute (hal_gnss_service_202404) true)
+(typeattribute hal_gnss_service_202404)
+(typeattributeset vendor_configs_file_202404 (vendor_configs_file))
+(expandtypeattribute (vendor_configs_file_202404) true)
+(typeattribute vendor_configs_file_202404)
+(typeattributeset vendor_shell_exec_202404 (vendor_shell_exec))
+(expandtypeattribute (vendor_shell_exec_202404) true)
+(typeattribute vendor_shell_exec_202404)
+(typeattributeset hwservicemanager_prop_202404 (hwservicemanager_prop))
+(expandtypeattribute (hwservicemanager_prop_202404) true)
+(typeattribute hwservicemanager_prop_202404)
+(typeattributeset servicemanager_prop_202404 (servicemanager_prop))
+(expandtypeattribute (servicemanager_prop_202404) true)
+(typeattribute servicemanager_prop_202404)
+(typeattributeset tv_ad_service_202404 (tv_ad_service))
+(expandtypeattribute (tv_ad_service_202404) true)
+(typeattribute tv_ad_service_202404)
+(typeattributeset input_device_202404 (input_device))
+(expandtypeattribute (input_device_202404) true)
+(typeattribute input_device_202404)
+(typeattributeset flags_health_check_202404 (flags_health_check))
+(expandtypeattribute (flags_health_check_202404) true)
+(typeattribute flags_health_check_202404)
+(typeattributeset ueventd_tmpfs_202404 (ueventd_tmpfs))
+(expandtypeattribute (ueventd_tmpfs_202404) true)
+(typeattribute ueventd_tmpfs_202404)
+(typeattributeset DockObserver_service_202404 (DockObserver_service))
+(expandtypeattribute (DockObserver_service_202404) true)
+(typeattribute DockObserver_service_202404)
+(typeattributeset shell_data_file_202404 (shell_data_file))
+(expandtypeattribute (shell_data_file_202404) true)
+(typeattribute shell_data_file_202404)
+(typeattributeset bluetooth_manager_service_202404 (bluetooth_manager_service))
+(expandtypeattribute (bluetooth_manager_service_202404) true)
+(typeattribute bluetooth_manager_service_202404)
+(typeattributeset contexthub_service_202404 (contexthub_service))
+(expandtypeattribute (contexthub_service_202404) true)
+(typeattribute contexthub_service_202404)
+(typeattributeset setupwizard_mode_prop_202404 (setupwizard_mode_prop))
+(expandtypeattribute (setupwizard_mode_prop_202404) true)
+(typeattribute setupwizard_mode_prop_202404)
+(typeattributeset hal_wifi_hostapd_service_202404 (hal_wifi_hostapd_service))
+(expandtypeattribute (hal_wifi_hostapd_service_202404) true)
+(typeattribute hal_wifi_hostapd_service_202404)
+(typeattributeset dnsmasq_202404 (dnsmasq))
+(expandtypeattribute (dnsmasq_202404) true)
+(typeattribute dnsmasq_202404)
+(typeattributeset dumpstate_202404 (dumpstate))
+(expandtypeattribute (dumpstate_202404) true)
+(typeattribute dumpstate_202404)
+(typeattributeset system_suspend_hwservice_202404 (system_suspend_hwservice))
+(expandtypeattribute (system_suspend_hwservice_202404) true)
+(typeattribute system_suspend_hwservice_202404)
+(typeattributeset hal_vehicle_hwservice_202404 (hal_vehicle_hwservice))
+(expandtypeattribute (hal_vehicle_hwservice_202404) true)
+(typeattribute hal_vehicle_hwservice_202404)
+(typeattributeset hal_usb_gadget_service_202404 (hal_usb_gadget_service))
+(expandtypeattribute (hal_usb_gadget_service_202404) true)
+(typeattribute hal_usb_gadget_service_202404)
+(typeattributeset bootloader_boot_reason_prop_202404 (bootloader_boot_reason_prop))
+(expandtypeattribute (bootloader_boot_reason_prop_202404) true)
+(typeattribute bootloader_boot_reason_prop_202404)
+(typeattributeset install_data_file_202404 (install_data_file))
+(expandtypeattribute (install_data_file_202404) true)
+(typeattribute install_data_file_202404)
+(typeattributeset asec_image_file_202404 (asec_image_file))
+(expandtypeattribute (asec_image_file_202404) true)
+(typeattribute asec_image_file_202404)
+(typeattributeset iris_vendor_data_file_202404 (iris_vendor_data_file))
+(expandtypeattribute (iris_vendor_data_file_202404) true)
+(typeattribute iris_vendor_data_file_202404)
+(typeattributeset hardware_properties_service_202404 (hardware_properties_service))
+(expandtypeattribute (hardware_properties_service_202404) true)
+(typeattribute hardware_properties_service_202404)
+(typeattributeset owntty_device_202404 (owntty_device))
+(expandtypeattribute (owntty_device_202404) true)
+(typeattribute owntty_device_202404)
+(typeattributeset credential_service_202404 (credential_service))
+(expandtypeattribute (credential_service_202404) true)
+(typeattribute credential_service_202404)
+(typeattributeset null_device_202404 (null_device))
+(expandtypeattribute (null_device_202404) true)
+(typeattribute null_device_202404)
+(typeattributeset isolated_compute_app_202404 (isolated_compute_app))
+(expandtypeattribute (isolated_compute_app_202404) true)
+(typeattribute isolated_compute_app_202404)
+(typeattributeset rkpdapp_202404 (rkpdapp))
+(expandtypeattribute (rkpdapp_202404) true)
+(typeattribute rkpdapp_202404)
+(typeattributeset uimode_service_202404 (uimode_service))
+(expandtypeattribute (uimode_service_202404) true)
+(typeattribute uimode_service_202404)
+(typeattributeset sysfs_devfreq_cur_202404 (sysfs_devfreq_cur))
+(expandtypeattribute (sysfs_devfreq_cur_202404) true)
+(typeattribute sysfs_devfreq_cur_202404)
+(typeattributeset uncrypt_exec_202404 (uncrypt_exec))
+(expandtypeattribute (uncrypt_exec_202404) true)
+(typeattribute uncrypt_exec_202404)
+(typeattributeset priv_app_202404 (priv_app))
+(expandtypeattribute (priv_app_202404) true)
+(typeattribute priv_app_202404)
+(typeattributeset hal_bluetooth_hwservice_202404 (hal_bluetooth_hwservice))
+(expandtypeattribute (hal_bluetooth_hwservice_202404) true)
+(typeattribute hal_bluetooth_hwservice_202404)
+(typeattributeset wifiscanner_service_202404 (wifiscanner_service))
+(expandtypeattribute (wifiscanner_service_202404) true)
+(typeattribute wifiscanner_service_202404)
+(typeattributeset bluetooth_data_file_202404 (bluetooth_data_file))
+(expandtypeattribute (bluetooth_data_file_202404) true)
+(typeattribute bluetooth_data_file_202404)
+(typeattributeset loop_control_device_202404 (loop_control_device))
+(expandtypeattribute (loop_control_device_202404) true)
+(typeattribute loop_control_device_202404)
+(typeattributeset pdx_display_client_endpoint_socket_202404 (pdx_display_client_endpoint_socket))
+(expandtypeattribute (pdx_display_client_endpoint_socket_202404) true)
+(typeattribute pdx_display_client_endpoint_socket_202404)
+(typeattributeset sqlite_log_prop_202404 (sqlite_log_prop))
+(expandtypeattribute (sqlite_log_prop_202404) true)
+(typeattribute sqlite_log_prop_202404)
+(typeattributeset charger_vendor_202404 (charger_vendor))
+(expandtypeattribute (charger_vendor_202404) true)
+(typeattribute charger_vendor_202404)
+(typeattributeset net_dns_prop_202404 (net_dns_prop))
+(expandtypeattribute (net_dns_prop_202404) true)
+(typeattribute net_dns_prop_202404)
+(typeattributeset app_binding_service_202404 (app_binding_service))
+(expandtypeattribute (app_binding_service_202404) true)
+(typeattribute app_binding_service_202404)
+(typeattributeset fingerprintd_202404 (fingerprintd))
+(expandtypeattribute (fingerprintd_202404) true)
+(typeattribute fingerprintd_202404)
+(typeattributeset bluetooth_prop_202404 (bluetooth_prop))
+(expandtypeattribute (bluetooth_prop_202404) true)
+(typeattribute bluetooth_prop_202404)
+(typeattributeset hal_ir_service_202404 (hal_ir_service))
+(expandtypeattribute (hal_ir_service_202404) true)
+(typeattribute hal_ir_service_202404)
+(typeattributeset hal_power_hwservice_202404 (hal_power_hwservice))
+(expandtypeattribute (hal_power_hwservice_202404) true)
+(typeattribute hal_power_hwservice_202404)
+(typeattributeset sysfs_suspend_stats_202404 (sysfs_suspend_stats))
+(expandtypeattribute (sysfs_suspend_stats_202404) true)
+(typeattribute sysfs_suspend_stats_202404)
+(typeattributeset hal_fingerprint_hwservice_202404 (hal_fingerprint_hwservice))
+(expandtypeattribute (hal_fingerprint_hwservice_202404) true)
+(typeattribute hal_fingerprint_hwservice_202404)
+(typeattributeset exported_pm_prop_202404 (exported_pm_prop))
+(expandtypeattribute (exported_pm_prop_202404) true)
+(typeattribute exported_pm_prop_202404)
+(typeattributeset future_pm_prop_202404 (future_pm_prop))
+(expandtypeattribute (future_pm_prop_202404) true)
+(typeattribute future_pm_prop_202404)
+(typeattributeset hal_can_controller_hwservice_202404 (hal_can_controller_hwservice))
+(expandtypeattribute (hal_can_controller_hwservice_202404) true)
+(typeattribute hal_can_controller_hwservice_202404)
+(typeattributeset gesture_prop_202404 (gesture_prop))
+(expandtypeattribute (gesture_prop_202404) true)
+(typeattribute gesture_prop_202404)
+(typeattributeset ctl_restart_prop_202404 (ctl_restart_prop))
+(expandtypeattribute (ctl_restart_prop_202404) true)
+(typeattribute ctl_restart_prop_202404)
+(typeattributeset font_service_202404 (font_service))
+(expandtypeattribute (font_service_202404) true)
+(typeattribute font_service_202404)
+(typeattributeset suspend_prop_202404 (suspend_prop))
+(expandtypeattribute (suspend_prop_202404) true)
+(typeattribute suspend_prop_202404)
+(typeattributeset zygote_config_prop_202404 (zygote_config_prop))
+(expandtypeattribute (zygote_config_prop_202404) true)
+(typeattribute zygote_config_prop_202404)
+(typeattributeset proc_kallsyms_202404 (proc_kallsyms))
+(expandtypeattribute (proc_kallsyms_202404) true)
+(typeattribute proc_kallsyms_202404)
+(typeattributeset system_group_file_202404 (system_group_file))
+(expandtypeattribute (system_group_file_202404) true)
+(typeattribute system_group_file_202404)
+(typeattributeset postinstall_file_202404 (postinstall_file))
+(expandtypeattribute (postinstall_file_202404) true)
+(typeattribute postinstall_file_202404)
+(typeattributeset exported3_system_prop_202404 (exported3_system_prop))
+(expandtypeattribute (exported3_system_prop_202404) true)
+(typeattribute exported3_system_prop_202404)
+(typeattributeset exported_dumpstate_prop_202404 (exported_dumpstate_prop))
+(expandtypeattribute (exported_dumpstate_prop_202404) true)
+(typeattribute exported_dumpstate_prop_202404)
+(typeattributeset ctl_bugreport_prop_202404 (ctl_bugreport_prop))
+(expandtypeattribute (ctl_bugreport_prop_202404) true)
+(typeattribute ctl_bugreport_prop_202404)
+(typeattributeset hal_identity_service_202404 (hal_identity_service))
+(expandtypeattribute (hal_identity_service_202404) true)
+(typeattribute hal_identity_service_202404)
+(typeattributeset vold_service_202404 (vold_service))
+(expandtypeattribute (vold_service_202404) true)
+(typeattribute vold_service_202404)
+(typeattributeset role_service_202404 (role_service))
+(expandtypeattribute (role_service_202404) true)
+(typeattribute role_service_202404)
+(typeattributeset device_config_edgetpu_native_prop_202404 (device_config_edgetpu_native_prop))
+(expandtypeattribute (device_config_edgetpu_native_prop_202404) true)
+(typeattribute device_config_edgetpu_native_prop_202404)
+(typeattributeset system_user_mode_emulation_prop_202404 (system_user_mode_emulation_prop))
+(expandtypeattribute (system_user_mode_emulation_prop_202404) true)
+(typeattribute system_user_mode_emulation_prop_202404)
+(typeattributeset hal_tv_input_hwservice_202404 (hal_tv_input_hwservice))
+(expandtypeattribute (hal_tv_input_hwservice_202404) true)
+(typeattribute hal_tv_input_hwservice_202404)
+(typeattributeset dalvik_prop_202404 (dalvik_prop))
+(expandtypeattribute (dalvik_prop_202404) true)
+(typeattribute dalvik_prop_202404)
+(typeattributeset inputflinger_service_202404 (inputflinger_service))
+(expandtypeattribute (inputflinger_service_202404) true)
+(typeattribute inputflinger_service_202404)
+(typeattributeset system_lmk_prop_202404 (system_lmk_prop))
+(expandtypeattribute (system_lmk_prop_202404) true)
+(typeattribute system_lmk_prop_202404)
+(typeattributeset oem_unlock_prop_202404 (oem_unlock_prop))
+(expandtypeattribute (oem_unlock_prop_202404) true)
+(typeattribute oem_unlock_prop_202404)
+(typeattributeset vendor_vm_data_file_202404 (vendor_vm_data_file))
+(expandtypeattribute (vendor_vm_data_file_202404) true)
+(typeattribute vendor_vm_data_file_202404)
+(typeattributeset mtpd_socket_202404 (mtpd_socket))
+(expandtypeattribute (mtpd_socket_202404) true)
+(typeattribute mtpd_socket_202404)
+(typeattributeset keystore_service_202404 (keystore_service))
+(expandtypeattribute (keystore_service_202404) true)
+(typeattribute keystore_service_202404)
+(typeattributeset framework_status_prop_202404 (framework_status_prop))
+(expandtypeattribute (framework_status_prop_202404) true)
+(typeattribute framework_status_prop_202404)
+(typeattributeset apex_ota_reserved_file_202404 (apex_ota_reserved_file))
+(expandtypeattribute (apex_ota_reserved_file_202404) true)
+(typeattribute apex_ota_reserved_file_202404)
+(typeattributeset bluetooth_service_202404 (bluetooth_service))
+(expandtypeattribute (bluetooth_service_202404) true)
+(typeattribute bluetooth_service_202404)
+(typeattributeset search_ui_service_202404 (search_ui_service))
+(expandtypeattribute (search_ui_service_202404) true)
+(typeattribute search_ui_service_202404)
+(typeattributeset qemu_hw_prop_202404 (qemu_hw_prop))
+(expandtypeattribute (qemu_hw_prop_202404) true)
+(typeattribute qemu_hw_prop_202404)
+(typeattributeset appops_service_202404 (appops_service))
+(expandtypeattribute (appops_service_202404) true)
+(typeattribute appops_service_202404)
+(typeattributeset extra_free_kbytes_exec_202404 (extra_free_kbytes_exec))
+(expandtypeattribute (extra_free_kbytes_exec_202404) true)
+(typeattribute extra_free_kbytes_exec_202404)
+(typeattributeset sysfs_kernel_notes_202404 (sysfs_kernel_notes))
+(expandtypeattribute (sysfs_kernel_notes_202404) true)
+(typeattribute sysfs_kernel_notes_202404)
+(typeattributeset system_data_file_202404 (system_data_file))
+(expandtypeattribute (system_data_file_202404) true)
+(typeattribute system_data_file_202404)
+(typeattributeset system_dlkm_file_202404 (system_dlkm_file))
+(expandtypeattribute (system_dlkm_file_202404) true)
+(typeattribute system_dlkm_file_202404)
+(typeattributeset devpts_202404 (devpts))
+(expandtypeattribute (devpts_202404) true)
+(typeattribute devpts_202404)
+(typeattributeset drm_data_file_202404 (drm_data_file))
+(expandtypeattribute (drm_data_file_202404) true)
+(typeattribute drm_data_file_202404)
+(typeattributeset hal_broadcastradio_hwservice_202404 (hal_broadcastradio_hwservice))
+(expandtypeattribute (hal_broadcastradio_hwservice_202404) true)
+(typeattribute hal_broadcastradio_hwservice_202404)
+(typeattributeset cacheinfo_service_202404 (cacheinfo_service))
+(expandtypeattribute (cacheinfo_service_202404) true)
+(typeattribute cacheinfo_service_202404)
+(typeattributeset system_net_netd_hwservice_202404 (system_net_netd_hwservice))
+(expandtypeattribute (system_net_netd_hwservice_202404) true)
+(typeattribute system_net_netd_hwservice_202404)
+(typeattributeset dalvik_config_prop_202404 (dalvik_config_prop))
+(expandtypeattribute (dalvik_config_prop_202404) true)
+(typeattribute dalvik_config_prop_202404)
+(typeattributeset codec2_config_prop_202404 (codec2_config_prop))
+(expandtypeattribute (codec2_config_prop_202404) true)
+(typeattribute codec2_config_prop_202404)
+(typeattributeset su_202404 (su))
+(expandtypeattribute (su_202404) true)
+(typeattribute su_202404)
+(typeattributeset wallpaper_effects_generation_service_202404 (wallpaper_effects_generation_service))
+(expandtypeattribute (wallpaper_effects_generation_service_202404) true)
+(typeattribute wallpaper_effects_generation_service_202404)
+(typeattributeset dmabuf_heap_device_202404 (dmabuf_heap_device))
+(expandtypeattribute (dmabuf_heap_device_202404) true)
+(typeattribute dmabuf_heap_device_202404)
+(typeattributeset update_engine_log_data_file_202404 (update_engine_log_data_file))
+(expandtypeattribute (update_engine_log_data_file_202404) true)
+(typeattribute update_engine_log_data_file_202404)
+(typeattributeset otadexopt_service_202404 (otadexopt_service))
+(expandtypeattribute (otadexopt_service_202404) true)
+(typeattribute otadexopt_service_202404)
+(typeattributeset proc_abi_202404 (proc_abi))
+(expandtypeattribute (proc_abi_202404) true)
+(typeattribute proc_abi_202404)
+(typeattributeset camera_config_prop_202404 (camera_config_prop))
+(expandtypeattribute (camera_config_prop_202404) true)
+(typeattribute camera_config_prop_202404)
+(typeattributeset proc_security_202404 (proc_security))
+(expandtypeattribute (proc_security_202404) true)
+(typeattribute proc_security_202404)
+(typeattributeset hal_nfc_service_202404 (hal_nfc_service))
+(expandtypeattribute (hal_nfc_service_202404) true)
+(typeattribute hal_nfc_service_202404)
+(typeattributeset nfc_service_202404 (nfc_service))
+(expandtypeattribute (nfc_service_202404) true)
+(typeattribute nfc_service_202404)
+(typeattributeset rs_202404 (rs))
+(expandtypeattribute (rs_202404) true)
+(typeattribute rs_202404)
+(typeattributeset settings_service_202404 (settings_service))
+(expandtypeattribute (settings_service_202404) true)
+(typeattribute settings_service_202404)
+(typeattributeset atrace_202404 (atrace))
+(expandtypeattribute (atrace_202404) true)
+(typeattribute atrace_202404)
+(typeattributeset ecm_enhanced_confirmation_service_202404 (ecm_enhanced_confirmation_service))
+(expandtypeattribute (ecm_enhanced_confirmation_service_202404) true)
+(typeattribute ecm_enhanced_confirmation_service_202404)
+(typeattributeset debugfs_tracing_debug_202404 (debugfs_tracing_debug))
+(expandtypeattribute (debugfs_tracing_debug_202404) true)
+(typeattribute debugfs_tracing_debug_202404)
+(typeattributeset cpuinfo_service_202404 (cpuinfo_service))
+(expandtypeattribute (cpuinfo_service_202404) true)
+(typeattribute cpuinfo_service_202404)
+(typeattributeset dbinfo_service_202404 (dbinfo_service))
+(expandtypeattribute (dbinfo_service_202404) true)
+(typeattribute dbinfo_service_202404)
+(typeattributeset gfxinfo_service_202404 (gfxinfo_service))
+(expandtypeattribute (gfxinfo_service_202404) true)
+(typeattribute gfxinfo_service_202404)
+(typeattributeset meminfo_service_202404 (meminfo_service))
+(expandtypeattribute (meminfo_service_202404) true)
+(typeattribute meminfo_service_202404)
+(typeattributeset bugreport_service_202404 (bugreport_service))
+(expandtypeattribute (bugreport_service_202404) true)
+(typeattribute bugreport_service_202404)
+(typeattributeset dnsmasq_exec_202404 (dnsmasq_exec))
+(expandtypeattribute (dnsmasq_exec_202404) true)
+(typeattribute dnsmasq_exec_202404)
+(typeattributeset content_suggestions_service_202404 (content_suggestions_service))
+(expandtypeattribute (content_suggestions_service_202404) true)
+(typeattribute content_suggestions_service_202404)
+(typeattributeset aaudio_config_prop_202404 (aaudio_config_prop))
+(expandtypeattribute (aaudio_config_prop_202404) true)
+(typeattribute aaudio_config_prop_202404)
+(typeattributeset ppp_202404 (ppp))
+(expandtypeattribute (ppp_202404) true)
+(typeattribute ppp_202404)
+(typeattributeset vndbinder_device_202404 (vndbinder_device))
+(expandtypeattribute (vndbinder_device_202404) true)
+(typeattribute vndbinder_device_202404)
+(typeattributeset credstore_service_202404 (credstore_service))
+(expandtypeattribute (credstore_service_202404) true)
+(typeattribute credstore_service_202404)
+(typeattributeset ethernet_service_202404 (ethernet_service))
+(expandtypeattribute (ethernet_service_202404) true)
+(typeattribute ethernet_service_202404)
+(typeattributeset pinner_service_202404 (pinner_service))
+(expandtypeattribute (pinner_service_202404) true)
+(typeattribute pinner_service_202404)
+(typeattributeset performanced_202404 (performanced))
+(expandtypeattribute (performanced_202404) true)
+(typeattribute performanced_202404)
+(typeattributeset systemkeys_data_file_202404 (systemkeys_data_file))
+(expandtypeattribute (systemkeys_data_file_202404) true)
+(typeattribute systemkeys_data_file_202404)
+(typeattributeset network_watchlist_data_file_202404 (network_watchlist_data_file))
+(expandtypeattribute (network_watchlist_data_file_202404) true)
+(typeattribute network_watchlist_data_file_202404)
+(typeattributeset binder_device_202404 (binder_device))
+(expandtypeattribute (binder_device_202404) true)
+(typeattribute binder_device_202404)
+(typeattributeset hwbinder_device_202404 (hwbinder_device))
+(expandtypeattribute (hwbinder_device_202404) true)
+(typeattribute hwbinder_device_202404)
+(typeattributeset hw_random_device_202404 (hw_random_device))
+(expandtypeattribute (hw_random_device_202404) true)
+(typeattribute hw_random_device_202404)
+(typeattributeset random_device_202404 (random_device))
+(expandtypeattribute (random_device_202404) true)
+(typeattribute random_device_202404)
+(typeattributeset cgroup_rc_file_202404 (cgroup_rc_file))
+(expandtypeattribute (cgroup_rc_file_202404) true)
+(typeattribute cgroup_rc_file_202404)
+(typeattributeset ctl_default_prop_202404 (ctl_default_prop))
+(expandtypeattribute (ctl_default_prop_202404) true)
+(typeattribute ctl_default_prop_202404)
+(typeattributeset userdata_block_device_202404 (userdata_block_device))
+(expandtypeattribute (userdata_block_device_202404) true)
+(typeattribute userdata_block_device_202404)
+(typeattributeset default_prop_202404 (default_prop))
+(expandtypeattribute (default_prop_202404) true)
+(typeattribute default_prop_202404)
+(typeattributeset hal_graphics_composer_service_202404 (hal_graphics_composer_service))
+(expandtypeattribute (hal_graphics_composer_service_202404) true)
+(typeattribute hal_graphics_composer_service_202404)
+(typeattributeset vndk_sp_file_202404 (vndk_sp_file))
+(expandtypeattribute (vndk_sp_file_202404) true)
+(typeattribute vndk_sp_file_202404)
+(typeattributeset cameraserver_202404 (cameraserver))
+(expandtypeattribute (cameraserver_202404) true)
+(typeattribute cameraserver_202404)
+(typeattributeset debuggerd_prop_202404 (debuggerd_prop))
+(expandtypeattribute (debuggerd_prop_202404) true)
+(typeattribute debuggerd_prop_202404)
+(typeattributeset vendor_toolbox_exec_202404 (vendor_toolbox_exec))
+(expandtypeattribute (vendor_toolbox_exec_202404) true)
+(typeattribute vendor_toolbox_exec_202404)
+(typeattributeset shared_relro_file_202404 (shared_relro_file))
+(expandtypeattribute (shared_relro_file_202404) true)
+(typeattribute shared_relro_file_202404)
+(typeattributeset lmkd_socket_202404 (lmkd_socket))
+(expandtypeattribute (lmkd_socket_202404) true)
+(typeattribute lmkd_socket_202404)
+(typeattributeset hal_drm_hwservice_202404 (hal_drm_hwservice))
+(expandtypeattribute (hal_drm_hwservice_202404) true)
+(typeattribute hal_drm_hwservice_202404)
+(typeattributeset ringtone_file_202404 (ringtone_file))
+(expandtypeattribute (ringtone_file_202404) true)
+(typeattribute ringtone_file_202404)
+(typeattributeset toolbox_exec_202404 (toolbox_exec))
+(expandtypeattribute (toolbox_exec_202404) true)
+(typeattribute toolbox_exec_202404)
+(typeattributeset permission_service_202404 (permission_service))
+(expandtypeattribute (permission_service_202404) true)
+(typeattribute permission_service_202404)
+(typeattributeset metadata_block_device_202404 (metadata_block_device))
+(expandtypeattribute (metadata_block_device_202404) true)
+(typeattribute metadata_block_device_202404)
+(typeattributeset logd_socket_202404 (logd_socket))
+(expandtypeattribute (logd_socket_202404) true)
+(typeattribute logd_socket_202404)
+(typeattributeset vendor_default_prop_202404 (vendor_default_prop))
+(expandtypeattribute (vendor_default_prop_202404) true)
+(typeattribute vendor_default_prop_202404)
+(typeattributeset mac_perms_file_202404 (mac_perms_file))
+(expandtypeattribute (mac_perms_file_202404) true)
+(typeattribute mac_perms_file_202404)
+(typeattributeset gmscore_app_202404 (gmscore_app))
+(expandtypeattribute (gmscore_app_202404) true)
+(typeattribute gmscore_app_202404)
+(typeattributeset vendor_app_file_202404 (vendor_app_file))
+(expandtypeattribute (vendor_app_file_202404) true)
+(typeattribute vendor_app_file_202404)
+(typeattributeset vendor_hal_file_202404 (vendor_hal_file))
+(expandtypeattribute (vendor_hal_file_202404) true)
+(typeattribute vendor_hal_file_202404)
+(typeattributeset vendor_idc_file_202404 (vendor_idc_file))
+(expandtypeattribute (vendor_idc_file_202404) true)
+(typeattribute vendor_idc_file_202404)
+(typeattributeset pac_proxy_service_202404 (pac_proxy_service))
+(expandtypeattribute (pac_proxy_service_202404) true)
+(typeattribute pac_proxy_service_202404)
+(typeattributeset virtual_ab_prop_202404 (virtual_ab_prop))
+(expandtypeattribute (virtual_ab_prop_202404) true)
+(typeattribute virtual_ab_prop_202404)
+(typeattributeset art_apex_dir_202404 (art_apex_dir))
+(expandtypeattribute (art_apex_dir_202404) true)
+(typeattribute art_apex_dir_202404)
+(typeattributeset sysfs_wlan_fwpath_202404 (sysfs_wlan_fwpath))
+(expandtypeattribute (sysfs_wlan_fwpath_202404) true)
+(typeattribute sysfs_wlan_fwpath_202404)
+(typeattributeset hal_face_service_202404 (hal_face_service))
+(expandtypeattribute (hal_face_service_202404) true)
+(typeattribute hal_face_service_202404)
+(typeattributeset nfc_202404 (nfc))
+(expandtypeattribute (nfc_202404) true)
+(typeattribute nfc_202404)
+(typeattributeset ondevicepersonalization_system_service_202404 (ondevicepersonalization_system_service))
+(expandtypeattribute (ondevicepersonalization_system_service_202404) true)
+(typeattribute ondevicepersonalization_system_service_202404)
+(typeattributeset face_service_202404 (face_service))
+(expandtypeattribute (face_service_202404) true)
+(typeattribute face_service_202404)
+(typeattributeset default_android_vndservice_202404 (default_android_vndservice))
+(expandtypeattribute (default_android_vndservice_202404) true)
+(typeattribute default_android_vndservice_202404)
+(typeattributeset rtc_device_202404 (rtc_device))
+(expandtypeattribute (rtc_device_202404) true)
+(typeattribute rtc_device_202404)
+(typeattributeset snapuserd_socket_202404 (snapuserd_socket))
+(expandtypeattribute (snapuserd_socket_202404) true)
+(typeattribute snapuserd_socket_202404)
+(typeattributeset hal_system_suspend_service_202404 (hal_system_suspend_service))
+(expandtypeattribute (hal_system_suspend_service_202404) true)
+(typeattribute hal_system_suspend_service_202404)
+(typeattributeset rollback_service_202404 (rollback_service))
+(expandtypeattribute (rollback_service_202404) true)
+(typeattribute rollback_service_202404)
+(typeattributeset ram_device_202404 (ram_device))
+(expandtypeattribute (ram_device_202404) true)
+(typeattribute ram_device_202404)
+(typeattributeset radio_core_data_file_202404 (radio_core_data_file))
+(expandtypeattribute (radio_core_data_file_202404) true)
+(typeattribute radio_core_data_file_202404)
+(typeattributeset nativetest_data_file_202404 (nativetest_data_file))
+(expandtypeattribute (nativetest_data_file_202404) true)
+(typeattribute nativetest_data_file_202404)
+(typeattributeset country_detector_service_202404 (country_detector_service))
+(expandtypeattribute (country_detector_service_202404) true)
+(typeattribute country_detector_service_202404)
+(typeattributeset cgroup_202404 (cgroup))
+(expandtypeattribute (cgroup_202404) true)
+(typeattribute cgroup_202404)
+(typeattributeset drmserver_socket_202404 (drmserver_socket))
+(expandtypeattribute (drmserver_socket_202404) true)
+(typeattribute drmserver_socket_202404)
+(typeattributeset credstore_202404 (credstore))
+(expandtypeattribute (credstore_202404) true)
+(typeattribute credstore_202404)
+(typeattributeset proc_net_202404 (proc_net))
+(expandtypeattribute (proc_net_202404) true)
+(typeattribute proc_net_202404)
+(typeattributeset untrusted_app_30_202404 (untrusted_app_30))
+(expandtypeattribute (untrusted_app_30_202404) true)
+(typeattribute untrusted_app_30_202404)
+(typeattributeset zygote_202404 (zygote))
+(expandtypeattribute (zygote_202404) true)
+(typeattribute zygote_202404)
+(typeattributeset untrusted_app_32_202404 (untrusted_app_32))
+(expandtypeattribute (untrusted_app_32_202404) true)
+(typeattribute untrusted_app_32_202404)
+(typeattributeset vendor_data_file_202404 (vendor_data_file))
+(expandtypeattribute (vendor_data_file_202404) true)
+(typeattribute vendor_data_file_202404)
+(typeattributeset mirror_data_file_202404 (mirror_data_file))
+(expandtypeattribute (mirror_data_file_202404) true)
+(typeattribute mirror_data_file_202404)
+(typeattributeset rebootescrow_hal_prop_202404 (rebootescrow_hal_prop))
+(expandtypeattribute (rebootescrow_hal_prop_202404) true)
+(typeattribute rebootescrow_hal_prop_202404)
+(typeattributeset untrusted_app_25_202404 (untrusted_app_25))
+(expandtypeattribute (untrusted_app_25_202404) true)
+(typeattribute untrusted_app_25_202404)
+(typeattributeset untrusted_app_27_202404 (untrusted_app_27))
+(expandtypeattribute (untrusted_app_27_202404) true)
+(typeattribute untrusted_app_27_202404)
+(typeattributeset vendor_apex_file_202404 (vendor_apex_file))
+(expandtypeattribute (vendor_apex_file_202404) true)
+(typeattribute vendor_apex_file_202404)
+(typeattributeset watchdog_metadata_file_202404 (watchdog_metadata_file))
+(expandtypeattribute (watchdog_metadata_file_202404) true)
+(typeattribute watchdog_metadata_file_202404)
+(typeattributeset adb_data_file_202404 (adb_data_file))
+(expandtypeattribute (adb_data_file_202404) true)
+(typeattribute adb_data_file_202404)
+(typeattributeset anr_data_file_202404 (anr_data_file))
+(expandtypeattribute (anr_data_file_202404) true)
+(typeattribute anr_data_file_202404)
+(typeattributeset cgroup_v2_202404 (cgroup_v2))
+(expandtypeattribute (cgroup_v2_202404) true)
+(typeattribute cgroup_v2_202404)
+(typeattributeset adb_keys_file_202404 (adb_keys_file))
+(expandtypeattribute (adb_keys_file_202404) true)
+(typeattribute adb_keys_file_202404)
+(typeattributeset mm_events_config_prop_202404 (mm_events_config_prop))
+(expandtypeattribute (mm_events_config_prop_202404) true)
+(typeattribute mm_events_config_prop_202404)
+(typeattributeset input_device_config_prop_202404 (input_device_config_prop))
+(expandtypeattribute (input_device_config_prop_202404) true)
+(typeattribute input_device_config_prop_202404)
+(typeattributeset kernel_202404 (kernel))
+(expandtypeattribute (kernel_202404) true)
+(typeattribute kernel_202404)
+(typeattributeset servicediscovery_service_202404 (servicediscovery_service))
+(expandtypeattribute (servicediscovery_service_202404) true)
+(typeattribute servicediscovery_service_202404)
+(typeattributeset untrusted_app_29_202404 (untrusted_app_29))
+(expandtypeattribute (untrusted_app_29_202404) true)
+(typeattribute untrusted_app_29_202404)
+(typeattributeset securityfs_202404 (securityfs))
+(expandtypeattribute (securityfs_202404) true)
+(typeattribute securityfs_202404)
+(typeattributeset appcompat_data_file_202404 (appcompat_data_file))
+(expandtypeattribute (appcompat_data_file_202404) true)
+(typeattribute appcompat_data_file_202404)
+(typeattributeset coverage_service_202404 (coverage_service))
+(expandtypeattribute (coverage_service_202404) true)
+(typeattribute coverage_service_202404)
+(typeattributeset keystore_202404 (keystore))
+(expandtypeattribute (keystore_202404) true)
+(typeattribute keystore_202404)
+(typeattributeset fastbootd_202404 (fastbootd))
+(expandtypeattribute (fastbootd_202404) true)
+(typeattribute fastbootd_202404)
+(typeattributeset package_service_202404 (package_service))
+(expandtypeattribute (package_service_202404) true)
+(typeattribute package_service_202404)
+(typeattributeset shutdown_checkpoints_system_data_file_202404 (shutdown_checkpoints_system_data_file))
+(expandtypeattribute (shutdown_checkpoints_system_data_file_202404) true)
+(typeattribute shutdown_checkpoints_system_data_file_202404)
+(typeattributeset ephemeral_app_202404 (ephemeral_app))
+(expandtypeattribute (ephemeral_app_202404) true)
+(typeattribute ephemeral_app_202404)
+(typeattributeset bluetooth_202404 (bluetooth))
+(expandtypeattribute (bluetooth_202404) true)
+(typeattribute bluetooth_202404)
+(typeattributeset inputflinger_202404 (inputflinger))
+(expandtypeattribute (inputflinger_202404) true)
+(typeattribute inputflinger_202404)
+(typeattributeset sysfs_net_202404 (sysfs_net))
+(expandtypeattribute (sysfs_net_202404) true)
+(typeattribute sysfs_net_202404)
+(typeattributeset hal_atrace_hwservice_202404 (hal_atrace_hwservice))
+(expandtypeattribute (hal_atrace_hwservice_202404) true)
+(typeattribute hal_atrace_hwservice_202404)
+(typeattributeset hal_oemlock_hwservice_202404 (hal_oemlock_hwservice))
+(expandtypeattribute (hal_oemlock_hwservice_202404) true)
+(typeattribute hal_oemlock_hwservice_202404)
+(typeattributeset port_202404 (port))
+(expandtypeattribute (port_202404) true)
+(typeattribute port_202404)
+(typeattributeset apexd_exec_202404 (apexd_exec))
+(expandtypeattribute (apexd_exec_202404) true)
+(typeattribute apexd_exec_202404)
+(typeattributeset keystore_metrics_service_202404 (keystore_metrics_service))
+(expandtypeattribute (keystore_metrics_service_202404) true)
+(typeattribute keystore_metrics_service_202404)
+(typeattributeset contextual_search_service_202404 (contextual_search_service))
+(expandtypeattribute (contextual_search_service_202404) true)
+(typeattribute contextual_search_service_202404)
+(typeattributeset virtual_touchpad_exec_202404 (virtual_touchpad_exec))
+(expandtypeattribute (virtual_touchpad_exec_202404) true)
+(typeattribute virtual_touchpad_exec_202404)
+(typeattributeset hal_secure_element_service_202404 (hal_secure_element_service))
+(expandtypeattribute (hal_secure_element_service_202404) true)
+(typeattribute hal_secure_element_service_202404)
+(typeattributeset runas_202404 (runas))
+(expandtypeattribute (runas_202404) true)
+(typeattribute runas_202404)
+(typeattributeset tty_device_202404 (tty_device))
+(expandtypeattribute (tty_device_202404) true)
+(typeattribute tty_device_202404)
+(typeattributeset tun_device_202404 (tun_device))
+(expandtypeattribute (tun_device_202404) true)
+(typeattribute tun_device_202404)
+(typeattributeset system_event_log_tags_file_202404 (system_event_log_tags_file))
+(expandtypeattribute (system_event_log_tags_file_202404) true)
+(typeattribute system_event_log_tags_file_202404)
+(typeattributeset uio_device_202404 (uio_device))
+(expandtypeattribute (uio_device_202404) true)
+(typeattribute uio_device_202404)
+(typeattributeset usb_device_202404 (usb_device))
+(expandtypeattribute (usb_device_202404) true)
+(typeattribute usb_device_202404)
+(typeattributeset adb_service_202404 (adb_service))
+(expandtypeattribute (adb_service_202404) true)
+(typeattribute adb_service_202404)
+(typeattributeset hal_oemlock_service_202404 (hal_oemlock_service))
+(expandtypeattribute (hal_oemlock_service_202404) true)
+(typeattribute hal_oemlock_service_202404)
+(typeattributeset tv_input_service_202404 (tv_input_service))
+(expandtypeattribute (tv_input_service_202404) true)
+(typeattribute tv_input_service_202404)
+(typeattributeset input_service_202404 (input_service))
+(expandtypeattribute (input_service_202404) true)
+(typeattribute input_service_202404)
+(typeattributeset tee_device_202404 (tee_device))
+(expandtypeattribute (tee_device_202404) true)
+(typeattribute tee_device_202404)
+(typeattributeset hal_memtrack_hwservice_202404 (hal_memtrack_hwservice))
+(expandtypeattribute (hal_memtrack_hwservice_202404) true)
+(typeattribute hal_memtrack_hwservice_202404)
+(typeattributeset radio_device_202404 (radio_device))
+(expandtypeattribute (radio_device_202404) true)
+(typeattribute radio_device_202404)
+(typeattributeset bootstat_data_file_202404 (bootstat_data_file))
+(expandtypeattribute (bootstat_data_file_202404) true)
+(typeattribute bootstat_data_file_202404)
+(typeattributeset ptmx_device_202404 (ptmx_device))
+(expandtypeattribute (ptmx_device_202404) true)
+(typeattribute ptmx_device_202404)
+(typeattributeset textservices_service_202404 (textservices_service))
+(expandtypeattribute (textservices_service_202404) true)
+(typeattribute textservices_service_202404)
+(typeattributeset hal_power_stats_hwservice_202404 (hal_power_stats_hwservice))
+(expandtypeattribute (hal_power_stats_hwservice_202404) true)
+(typeattribute hal_power_stats_hwservice_202404)
+(typeattributeset usbaccessory_device_202404 (usbaccessory_device))
+(expandtypeattribute (usbaccessory_device_202404) true)
+(typeattribute usbaccessory_device_202404)
+(typeattributeset asec_public_file_202404 (asec_public_file))
+(expandtypeattribute (asec_public_file_202404) true)
+(typeattribute asec_public_file_202404)
+(typeattributeset hal_rebootescrow_service_202404 (hal_rebootescrow_service))
+(expandtypeattribute (hal_rebootescrow_service_202404) true)
+(typeattribute hal_rebootescrow_service_202404)
+(typeattributeset proc_min_free_order_shift_202404 (proc_min_free_order_shift))
+(expandtypeattribute (proc_min_free_order_shift_202404) true)
+(typeattribute proc_min_free_order_shift_202404)
+(typeattributeset bootanim_config_prop_202404 (bootanim_config_prop))
+(expandtypeattribute (bootanim_config_prop_202404) true)
+(typeattribute bootanim_config_prop_202404)
+(typeattributeset fwk_vibrator_control_service_202404 (fwk_vibrator_control_service))
+(expandtypeattribute (fwk_vibrator_control_service_202404) true)
+(typeattribute fwk_vibrator_control_service_202404)
+(typeattributeset hal_usb_hwservice_202404 (hal_usb_hwservice))
+(expandtypeattribute (hal_usb_hwservice_202404) true)
+(typeattribute hal_usb_hwservice_202404)
+(typeattributeset user_profile_root_file_202404 (user_profile_root_file))
+(expandtypeattribute (user_profile_root_file_202404) true)
+(typeattribute user_profile_root_file_202404)
+(typeattributeset recovery_refresh_exec_202404 (recovery_refresh_exec))
+(expandtypeattribute (recovery_refresh_exec_202404) true)
+(typeattribute recovery_refresh_exec_202404)
+(typeattributeset proc_fs_verity_202404 (proc_fs_verity))
+(expandtypeattribute (proc_fs_verity_202404) true)
+(typeattribute proc_fs_verity_202404)
+(typeattributeset pdx_performance_client_endpoint_socket_202404 (pdx_performance_client_endpoint_socket))
+(expandtypeattribute (pdx_performance_client_endpoint_socket_202404) true)
+(typeattribute pdx_performance_client_endpoint_socket_202404)
+(typeattributeset sysfs_dm_verity_202404 (sysfs_dm_verity))
+(expandtypeattribute (sysfs_dm_verity_202404) true)
+(typeattribute sysfs_dm_verity_202404)
+(typeattributeset user_profile_data_file_202404 (user_profile_data_file))
+(expandtypeattribute (user_profile_data_file_202404) true)
+(typeattribute user_profile_data_file_202404)
+(typeattributeset input_method_service_202404 (input_method_service))
+(expandtypeattribute (input_method_service_202404) true)
+(typeattribute input_method_service_202404)
+(typeattributeset binder_cache_telephony_server_prop_202404 (binder_cache_telephony_server_prop))
+(expandtypeattribute (binder_cache_telephony_server_prop_202404) true)
+(typeattribute binder_cache_telephony_server_prop_202404)
+(typeattributeset app_prediction_service_202404 (app_prediction_service))
+(expandtypeattribute (app_prediction_service_202404) true)
+(typeattribute app_prediction_service_202404)
+(typeattributeset media_projection_service_202404 (media_projection_service))
+(expandtypeattribute (media_projection_service_202404) true)
+(typeattribute media_projection_service_202404)
+(typeattributeset racoon_socket_202404 (racoon_socket))
+(expandtypeattribute (racoon_socket_202404) true)
+(typeattribute racoon_socket_202404)
+(typeattributeset proc_vmallocinfo_202404 (proc_vmallocinfo))
+(expandtypeattribute (proc_vmallocinfo_202404) true)
+(typeattribute proc_vmallocinfo_202404)
+(typeattributeset cameraserver_service_202404 (cameraserver_service))
+(expandtypeattribute (cameraserver_service_202404) true)
+(typeattribute cameraserver_service_202404)
+(typeattributeset idmap_exec_202404 (idmap_exec))
+(expandtypeattribute (idmap_exec_202404) true)
+(typeattribute idmap_exec_202404)
+(typeattributeset uncrypt_socket_202404 (uncrypt_socket))
+(expandtypeattribute (uncrypt_socket_202404) true)
+(typeattribute uncrypt_socket_202404)
+(typeattributeset legacy_permission_service_202404 (legacy_permission_service))
+(expandtypeattribute (legacy_permission_service_202404) true)
+(typeattribute legacy_permission_service_202404)
+(typeattributeset logpersistd_logging_prop_202404 (logpersistd_logging_prop))
+(expandtypeattribute (logpersistd_logging_prop_202404) true)
+(typeattribute logpersistd_logging_prop_202404)
+(typeattributeset hal_configstore_ISurfaceFlingerConfigs_202404 (hal_configstore_ISurfaceFlingerConfigs))
+(expandtypeattribute (hal_configstore_ISurfaceFlingerConfigs_202404) true)
+(typeattribute hal_configstore_ISurfaceFlingerConfigs_202404)
+(typeattributeset hal_ir_hwservice_202404 (hal_ir_hwservice))
+(expandtypeattribute (hal_ir_hwservice_202404) true)
+(typeattribute hal_ir_hwservice_202404)
+(typeattributeset hal_vr_hwservice_202404 (hal_vr_hwservice))
+(expandtypeattribute (hal_vr_hwservice_202404) true)
+(typeattribute hal_vr_hwservice_202404)
+(typeattributeset incident_data_file_202404 (incident_data_file))
+(expandtypeattribute (incident_data_file_202404) true)
+(typeattribute incident_data_file_202404)
+(typeattributeset fwk_stats_hwservice_202404 (fwk_stats_hwservice))
+(expandtypeattribute (fwk_stats_hwservice_202404) true)
+(typeattribute fwk_stats_hwservice_202404)
+(typeattributeset webview_zygote_202404 (webview_zygote))
+(expandtypeattribute (webview_zygote_202404) true)
+(typeattribute webview_zygote_202404)
+(typeattributeset proc_uid_procstat_set_202404 (proc_uid_procstat_set))
+(expandtypeattribute (proc_uid_procstat_set_202404) true)
+(typeattribute proc_uid_procstat_set_202404)
+(typeattributeset vendor_init_202404 (vendor_init))
+(expandtypeattribute (vendor_init_202404) true)
+(typeattribute vendor_init_202404)
+(typeattributeset hal_remotelyprovisionedcomponent_service_202404 (hal_remotelyprovisionedcomponent_service))
+(expandtypeattribute (hal_remotelyprovisionedcomponent_service_202404) true)
+(typeattribute hal_remotelyprovisionedcomponent_service_202404)
+(typeattributeset connectivity_service_202404 (connectivity_service))
+(expandtypeattribute (connectivity_service_202404) true)
+(typeattribute connectivity_service_202404)
+(typeattributeset notification_service_202404 (notification_service))
+(expandtypeattribute (notification_service_202404) true)
+(typeattribute notification_service_202404)
+(typeattributeset init_202404 (init))
+(expandtypeattribute (init_202404) true)
+(typeattribute init_202404)
+(typeattributeset game_service_202404 (game_service))
+(expandtypeattribute (game_service_202404) true)
+(typeattribute game_service_202404)
+(typeattributeset hal_audiocontrol_service_202404 (hal_audiocontrol_service))
+(expandtypeattribute (hal_audiocontrol_service_202404) true)
+(typeattribute hal_audiocontrol_service_202404)
+(typeattributeset logpersist_202404 (logpersist))
+(expandtypeattribute (logpersist_202404) true)
+(typeattribute logpersist_202404)
+(typeattributeset dreams_service_202404 (dreams_service))
+(expandtypeattribute (dreams_service_202404) true)
+(typeattribute dreams_service_202404)
+(typeattributeset locale_service_202404 (locale_service))
+(expandtypeattribute (locale_service_202404) true)
+(typeattribute locale_service_202404)
+(typeattributeset companion_device_service_202404 (companion_device_service))
+(expandtypeattribute (companion_device_service_202404) true)
+(typeattribute companion_device_service_202404)
+(typeattributeset bootanim_202404 (bootanim))
+(expandtypeattribute (bootanim_202404) true)
+(typeattribute bootanim_202404)
+(typeattributeset proc_uptime_202404 (proc_uptime))
+(expandtypeattribute (proc_uptime_202404) true)
+(typeattribute proc_uptime_202404)
+(typeattributeset persist_wm_debug_prop_202404 (persist_wm_debug_prop))
+(expandtypeattribute (persist_wm_debug_prop_202404) true)
+(typeattribute persist_wm_debug_prop_202404)
+(typeattributeset ota_package_file_202404 (ota_package_file))
+(expandtypeattribute (ota_package_file_202404) true)
+(typeattribute ota_package_file_202404)
+(typeattributeset diskstats_service_202404 (diskstats_service))
+(expandtypeattribute (diskstats_service_202404) true)
+(typeattribute diskstats_service_202404)
+(typeattributeset fwk_stats_service_202404 (fwk_stats_service))
+(expandtypeattribute (fwk_stats_service_202404) true)
+(typeattribute fwk_stats_service_202404)
+(typeattributeset wallpaper_service_202404 (wallpaper_service))
+(expandtypeattribute (wallpaper_service_202404) true)
+(typeattribute wallpaper_service_202404)
+(typeattributeset fscklogs_202404 (fscklogs))
+(expandtypeattribute (fscklogs_202404) true)
+(typeattribute fscklogs_202404)
+(typeattributeset nnapi_ext_deny_product_prop_202404 (nnapi_ext_deny_product_prop))
+(expandtypeattribute (nnapi_ext_deny_product_prop_202404) true)
+(typeattribute nnapi_ext_deny_product_prop_202404)
+(typeattributeset task_service_202404 (task_service))
+(expandtypeattribute (task_service_202404) true)
+(typeattribute task_service_202404)
+(typeattributeset zygote_tmpfs_202404 (zygote_tmpfs))
+(expandtypeattribute (zygote_tmpfs_202404) true)
+(typeattribute zygote_tmpfs_202404)
+(typeattributeset app_zygote_tmpfs_202404 (app_zygote_tmpfs))
+(expandtypeattribute (app_zygote_tmpfs_202404) true)
+(typeattribute app_zygote_tmpfs_202404)
+(typeattributeset hal_neuralnetworks_service_202404 (hal_neuralnetworks_service))
+(expandtypeattribute (hal_neuralnetworks_service_202404) true)
+(typeattribute hal_neuralnetworks_service_202404)
+(typeattributeset hardware_service_202404 (hardware_service))
+(expandtypeattribute (hardware_service_202404) true)
+(typeattribute hardware_service_202404)
+(typeattributeset logd_202404 (logd))
+(expandtypeattribute (logd_202404) true)
+(typeattribute logd_202404)
+(typeattributeset procstats_service_202404 (procstats_service))
+(expandtypeattribute (procstats_service_202404) true)
+(typeattribute procstats_service_202404)
+(typeattributeset tare_service_202404 (tare_service))
+(expandtypeattribute (tare_service_202404) true)
+(typeattribute tare_service_202404)
+(typeattributeset dumpstate_service_202404 (dumpstate_service))
+(expandtypeattribute (dumpstate_service_202404) true)
+(typeattribute dumpstate_service_202404)
+(typeattributeset fingerprintd_exec_202404 (fingerprintd_exec))
+(expandtypeattribute (fingerprintd_exec_202404) true)
+(typeattribute fingerprintd_exec_202404)
+(typeattributeset alarm_service_202404 (alarm_service))
+(expandtypeattribute (alarm_service_202404) true)
+(typeattribute alarm_service_202404)
+(typeattributeset tv_iapp_service_202404 (tv_iapp_service))
+(expandtypeattribute (tv_iapp_service_202404) true)
+(typeattribute tv_iapp_service_202404)
+(typeattributeset rttmanager_service_202404 (rttmanager_service))
+(expandtypeattribute (rttmanager_service_202404) true)
+(typeattribute rttmanager_service_202404)
+(typeattributeset fwk_sensor_hwservice_202404 (fwk_sensor_hwservice))
+(expandtypeattribute (fwk_sensor_hwservice_202404) true)
+(typeattribute fwk_sensor_hwservice_202404)
+(typeattributeset vendor_uuid_mapping_config_file_202404 (vendor_uuid_mapping_config_file))
+(expandtypeattribute (vendor_uuid_mapping_config_file_202404) true)
+(typeattribute vendor_uuid_mapping_config_file_202404)
+(typeattributeset ueventd_202404 (ueventd))
+(expandtypeattribute (ueventd_202404) true)
+(typeattribute ueventd_202404)
+(typeattributeset node_202404 (node))
+(expandtypeattribute (node_202404) true)
+(typeattribute node_202404)
+(typeattributeset vold_prepare_subdirs_exec_202404 (vold_prepare_subdirs_exec))
+(expandtypeattribute (vold_prepare_subdirs_exec_202404) true)
+(typeattribute vold_prepare_subdirs_exec_202404)
+(typeattributeset sysfs_dm_202404 (sysfs_dm))
+(expandtypeattribute (sysfs_dm_202404) true)
+(typeattribute sysfs_dm_202404)
+(typeattributeset hal_face_hwservice_202404 (hal_face_hwservice))
+(expandtypeattribute (hal_face_hwservice_202404) true)
+(typeattribute hal_face_hwservice_202404)
+(typeattributeset apc_service_202404 (apc_service))
+(expandtypeattribute (apc_service_202404) true)
+(typeattribute apc_service_202404)
+(typeattributeset nfc_data_file_202404 (nfc_data_file))
+(expandtypeattribute (nfc_data_file_202404) true)
+(typeattribute nfc_data_file_202404)
+(typeattributeset stats_data_file_202404 (stats_data_file))
+(expandtypeattribute (stats_data_file_202404) true)
+(typeattribute stats_data_file_202404)
+(typeattributeset hal_contexthub_service_202404 (hal_contexthub_service))
+(expandtypeattribute (hal_contexthub_service_202404) true)
+(typeattribute hal_contexthub_service_202404)
+(typeattributeset misc_logd_file_202404 (misc_logd_file))
+(expandtypeattribute (misc_logd_file_202404) true)
+(typeattribute misc_logd_file_202404)
+(typeattributeset sepolicy_file_202404 (sepolicy_file))
+(expandtypeattribute (sepolicy_file_202404) true)
+(typeattribute sepolicy_file_202404)
+(typeattributeset audioserver_service_202404 (audioserver_service))
+(expandtypeattribute (audioserver_service_202404) true)
+(typeattribute audioserver_service_202404)
+(typeattributeset proc_sched_202404 (proc_sched))
+(expandtypeattribute (proc_sched_202404) true)
+(typeattribute proc_sched_202404)
+(typeattributeset modprobe_202404 (modprobe))
+(expandtypeattribute (modprobe_202404) true)
+(typeattribute modprobe_202404)
+(typeattributeset remote_auth_service_202404 (remote_auth_service))
+(expandtypeattribute (remote_auth_service_202404) true)
+(typeattribute remote_auth_service_202404)
+(typeattributeset threadnetwork_config_prop_202404 (threadnetwork_config_prop))
+(expandtypeattribute (threadnetwork_config_prop_202404) true)
+(typeattribute threadnetwork_config_prop_202404)
+(typeattributeset incidentd_202404 (incidentd))
+(expandtypeattribute (incidentd_202404) true)
+(typeattribute incidentd_202404)
+(typeattributeset apk_tmp_file_202404 (apk_tmp_file))
+(expandtypeattribute (apk_tmp_file_202404) true)
+(typeattribute apk_tmp_file_202404)
+(typeattributeset dmabuf_system_heap_device_202404 (dmabuf_system_heap_device))
+(expandtypeattribute (dmabuf_system_heap_device_202404) true)
+(typeattribute dmabuf_system_heap_device_202404)
+(typeattributeset gpu_device_202404 (gpu_device))
+(expandtypeattribute (gpu_device_202404) true)
+(typeattribute gpu_device_202404)
+(typeattributeset gpuservice_202404 (gpuservice))
+(expandtypeattribute (gpuservice_202404) true)
+(typeattribute gpuservice_202404)
+(typeattributeset mdnsd_202404 (mdnsd))
+(expandtypeattribute (mdnsd_202404) true)
+(typeattribute mdnsd_202404)
+(typeattributeset hal_tv_hdmi_cec_service_202404 (hal_tv_hdmi_cec_service))
+(expandtypeattribute (hal_tv_hdmi_cec_service_202404) true)
+(typeattribute hal_tv_hdmi_cec_service_202404)
+(typeattributeset proc_uid_io_stats_202404 (proc_uid_io_stats))
+(expandtypeattribute (proc_uid_io_stats_202404) true)
+(typeattribute proc_uid_io_stats_202404)
+(typeattributeset sensorservice_service_202404 (sensorservice_service))
+(expandtypeattribute (sensorservice_service_202404) true)
+(typeattribute sensorservice_service_202404)
+(typeattributeset runas_exec_202404 (runas_exec))
+(expandtypeattribute (runas_exec_202404) true)
+(typeattribute runas_exec_202404)
+(typeattributeset wifiaware_service_202404 (wifiaware_service))
+(expandtypeattribute (wifiaware_service_202404) true)
+(typeattribute wifiaware_service_202404)
+(typeattributeset netstats_service_202404 (netstats_service))
+(expandtypeattribute (netstats_service_202404) true)
+(typeattribute netstats_service_202404)
+(typeattributeset vr_manager_service_202404 (vr_manager_service))
+(expandtypeattribute (vr_manager_service_202404) true)
+(typeattribute vr_manager_service_202404)
+(typeattributeset watchdogd_202404 (watchdogd))
+(expandtypeattribute (watchdogd_202404) true)
+(typeattribute watchdogd_202404)
+(typeattributeset vendor_security_patch_level_prop_202404 (vendor_security_patch_level_prop))
+(expandtypeattribute (vendor_security_patch_level_prop_202404) true)
+(typeattribute vendor_security_patch_level_prop_202404)
+(typeattributeset heapprofd_202404 (heapprofd))
+(expandtypeattribute (heapprofd_202404) true)
+(typeattribute heapprofd_202404)
+(typeattributeset shell_exec_202404 (shell_exec))
+(expandtypeattribute (shell_exec_202404) true)
+(typeattribute shell_exec_202404)
+(typeattributeset hdmi_control_service_202404 (hdmi_control_service))
+(expandtypeattribute (hdmi_control_service_202404) true)
+(typeattribute hdmi_control_service_202404)
+(typeattributeset clipboard_service_202404 (clipboard_service))
+(expandtypeattribute (clipboard_service_202404) true)
+(typeattribute clipboard_service_202404)
+(typeattributeset dumpstate_exec_202404 (dumpstate_exec))
+(expandtypeattribute (dumpstate_exec_202404) true)
+(typeattribute dumpstate_exec_202404)
+(typeattributeset prereboot_data_file_202404 (prereboot_data_file))
+(expandtypeattribute (prereboot_data_file_202404) true)
+(typeattribute prereboot_data_file_202404)
+(typeattributeset netutils_wrapper_exec_202404 (netutils_wrapper_exec))
+(expandtypeattribute (netutils_wrapper_exec_202404) true)
+(typeattribute netutils_wrapper_exec_202404)
+(typeattributeset apex_service_202404 (apex_service))
+(expandtypeattribute (apex_service_202404) true)
+(typeattribute apex_service_202404)
+(typeattributeset hal_sensors_service_202404 (hal_sensors_service))
+(expandtypeattribute (hal_sensors_service_202404) true)
+(typeattribute hal_sensors_service_202404)
+(typeattributeset proc_max_map_count_202404 (proc_max_map_count))
+(expandtypeattribute (proc_max_map_count_202404) true)
+(typeattribute proc_max_map_count_202404)
+(typeattributeset apex_rollback_data_file_202404 (apex_rollback_data_file))
+(expandtypeattribute (apex_rollback_data_file_202404) true)
+(typeattribute apex_rollback_data_file_202404)
+(typeattributeset tombstoned_intercept_socket_202404 (tombstoned_intercept_socket))
+(expandtypeattribute (tombstoned_intercept_socket_202404) true)
+(typeattribute tombstoned_intercept_socket_202404)
+(typeattributeset wificond_202404 (wificond))
+(expandtypeattribute (wificond_202404) true)
+(typeattribute wificond_202404)
+(typeattributeset debugfs_mmc_202404 (debugfs_mmc))
+(expandtypeattribute (debugfs_mmc_202404) true)
+(typeattribute debugfs_mmc_202404)
+(typeattributeset usb_uvc_enabled_prop_202404 (usb_uvc_enabled_prop))
+(expandtypeattribute (usb_uvc_enabled_prop_202404) true)
+(typeattribute usb_uvc_enabled_prop_202404)
+(typeattributeset netutils_wrapper_202404 (netutils_wrapper))
+(expandtypeattribute (netutils_wrapper_202404) true)
+(typeattribute netutils_wrapper_202404)
+(typeattributeset hal_weaver_service_202404 (hal_weaver_service))
+(expandtypeattribute (hal_weaver_service_202404) true)
+(typeattribute hal_weaver_service_202404)
+(typeattributeset cpu_monitor_service_202404 (cpu_monitor_service))
+(expandtypeattribute (cpu_monitor_service_202404) true)
+(typeattribute cpu_monitor_service_202404)
+(typeattributeset hal_cas_hwservice_202404 (hal_cas_hwservice))
+(expandtypeattribute (hal_cas_hwservice_202404) true)
+(typeattribute hal_cas_hwservice_202404)
+(typeattributeset hal_evs_hwservice_202404 (hal_evs_hwservice))
+(expandtypeattribute (hal_evs_hwservice_202404) true)
+(typeattribute hal_evs_hwservice_202404)
+(typeattributeset hal_nfc_hwservice_202404 (hal_nfc_hwservice))
+(expandtypeattribute (hal_nfc_hwservice_202404) true)
+(typeattribute hal_nfc_hwservice_202404)
+(typeattributeset vold_202404 (vold))
+(expandtypeattribute (vold_202404) true)
+(typeattribute vold_202404)
+(typeattributeset iio_device_202404 (iio_device))
+(expandtypeattribute (iio_device_202404) true)
+(typeattribute iio_device_202404)
+(typeattributeset pdx_display_manager_endpoint_socket_202404 (pdx_display_manager_endpoint_socket))
+(expandtypeattribute (pdx_display_manager_endpoint_socket_202404) true)
+(typeattribute pdx_display_manager_endpoint_socket_202404)
+(typeattributeset ion_device_202404 (ion_device))
+(expandtypeattribute (ion_device_202404) true)
+(typeattribute ion_device_202404)
+(typeattributeset platform_compat_service_202404 (platform_compat_service))
+(expandtypeattribute (platform_compat_service_202404) true)
+(typeattribute platform_compat_service_202404)
+(typeattributeset camerax_extensions_prop_202404 (camerax_extensions_prop))
+(expandtypeattribute (camerax_extensions_prop_202404) true)
+(typeattribute camerax_extensions_prop_202404)
+(typeattributeset heapprofd_socket_202404 (heapprofd_socket))
+(expandtypeattribute (heapprofd_socket_202404) true)
+(typeattribute heapprofd_socket_202404)
+(typeattributeset service_manager_vndservice_202404 (service_manager_vndservice))
+(expandtypeattribute (service_manager_vndservice_202404) true)
+(typeattribute service_manager_vndservice_202404)
+(typeattributeset sysfs_uhid_202404 (sysfs_uhid))
+(expandtypeattribute (sysfs_uhid_202404) true)
+(typeattribute sysfs_uhid_202404)
+(typeattributeset proc_bootconfig_202404 (proc_bootconfig))
+(expandtypeattribute (proc_bootconfig_202404) true)
+(typeattribute proc_bootconfig_202404)
+(typeattributeset hal_secure_element_hwservice_202404 (hal_secure_element_hwservice))
+(expandtypeattribute (hal_secure_element_hwservice_202404) true)
+(typeattribute hal_secure_element_hwservice_202404)
+(typeattributeset port_device_202404 (port_device))
+(expandtypeattribute (port_device_202404) true)
+(typeattribute port_device_202404)
+(typeattributeset nfc_device_202404 (nfc_device))
+(expandtypeattribute (nfc_device_202404) true)
+(typeattribute nfc_device_202404)
+(typeattributeset system_zoneinfo_file_202404 (system_zoneinfo_file))
+(expandtypeattribute (system_zoneinfo_file_202404) true)
+(typeattribute system_zoneinfo_file_202404)
+(typeattributeset rild_socket_202404 (rild_socket))
+(expandtypeattribute (rild_socket_202404) true)
+(typeattribute rild_socket_202404)
+(typeattributeset keystore_data_file_202404 (keystore_data_file))
+(expandtypeattribute (keystore_data_file_202404) true)
+(typeattribute keystore_data_file_202404)
+(typeattributeset bootanim_system_prop_202404 (bootanim_system_prop))
+(expandtypeattribute (bootanim_system_prop_202404) true)
+(typeattribute bootanim_system_prop_202404)
+(typeattributeset recovery_persist_exec_202404 (recovery_persist_exec))
+(expandtypeattribute (recovery_persist_exec_202404) true)
+(typeattribute recovery_persist_exec_202404)
+(typeattributeset pmsg_device_202404 (pmsg_device))
+(expandtypeattribute (pmsg_device_202404) true)
+(typeattribute pmsg_device_202404)
+(typeattributeset rpmsg_device_202404 (rpmsg_device))
+(expandtypeattribute (rpmsg_device_202404) true)
+(typeattribute rpmsg_device_202404)
+(typeattributeset cache_file_202404 (cache_file))
+(expandtypeattribute (cache_file_202404) true)
+(typeattribute cache_file_202404)
+(typeattributeset debugfs_tracing_printk_formats_202404 (debugfs_tracing_printk_formats))
+(expandtypeattribute (debugfs_tracing_printk_formats_202404) true)
+(typeattribute debugfs_tracing_printk_formats_202404)
+(typeattributeset fingerprintd_service_202404 (fingerprintd_service))
+(expandtypeattribute (fingerprintd_service_202404) true)
+(typeattribute fingerprintd_service_202404)
+(typeattributeset people_service_202404 (people_service))
+(expandtypeattribute (people_service_202404) true)
+(typeattribute people_service_202404)
+(typeattributeset mtp_device_202404 (mtp_device))
+(expandtypeattribute (mtp_device_202404) true)
+(typeattribute mtp_device_202404)
+(typeattributeset camera2_extensions_prop_202404 (camera2_extensions_prop))
+(expandtypeattribute (camera2_extensions_prop_202404) true)
+(typeattribute camera2_extensions_prop_202404)
+(typeattributeset hal_graphics_mapper_service_202404 (hal_graphics_mapper_service))
+(expandtypeattribute (hal_graphics_mapper_service_202404) true)
+(typeattribute hal_graphics_mapper_service_202404)
+(typeattributeset adbd_socket_202404 (adbd_socket))
+(expandtypeattribute (adbd_socket_202404) true)
+(typeattribute adbd_socket_202404)
+(typeattributeset debugfs_trace_marker_202404 (debugfs_trace_marker))
+(expandtypeattribute (debugfs_trace_marker_202404) true)
+(typeattribute debugfs_trace_marker_202404)
+(typeattributeset otapreopt_chroot_202404 (otapreopt_chroot))
+(expandtypeattribute (otapreopt_chroot_202404) true)
+(typeattribute otapreopt_chroot_202404)
+(typeattributeset hal_renderscript_hwservice_202404 (hal_renderscript_hwservice))
+(expandtypeattribute (hal_renderscript_hwservice_202404) true)
+(typeattribute hal_renderscript_hwservice_202404)
+(typeattributeset sysfs_dmabuf_stats_202404 (sysfs_dmabuf_stats))
+(expandtypeattribute (sysfs_dmabuf_stats_202404) true)
+(typeattribute sysfs_dmabuf_stats_202404)
+(typeattributeset installd_exec_202404 (installd_exec))
+(expandtypeattribute (installd_exec_202404) true)
+(typeattribute installd_exec_202404)
+(typeattributeset statsd_exec_202404 (statsd_exec))
+(expandtypeattribute (statsd_exec_202404) true)
+(typeattribute statsd_exec_202404)
+(typeattributeset tombstoned_exec_202404 (tombstoned_exec))
+(expandtypeattribute (tombstoned_exec_202404) true)
+(typeattribute tombstoned_exec_202404)
+(typeattributeset runtime_event_log_tags_file_202404 (runtime_event_log_tags_file))
+(expandtypeattribute (runtime_event_log_tags_file_202404) true)
+(typeattribute runtime_event_log_tags_file_202404)
+(typeattributeset proc_kmsg_202404 (proc_kmsg))
+(expandtypeattribute (proc_kmsg_202404) true)
+(typeattribute proc_kmsg_202404)
+(typeattributeset wpa_socket_202404 (wpa_socket))
+(expandtypeattribute (wpa_socket_202404) true)
+(typeattribute wpa_socket_202404)
+(typeattributeset fwk_camera_hwservice_202404 (fwk_camera_hwservice))
+(expandtypeattribute (fwk_camera_hwservice_202404) true)
+(typeattribute fwk_camera_hwservice_202404)
+(typeattributeset external_vibrator_service_202404 (external_vibrator_service))
+(expandtypeattribute (external_vibrator_service_202404) true)
+(typeattribute external_vibrator_service_202404)
+(typeattributeset hal_secretkeeper_service_202404 (hal_secretkeeper_service))
+(expandtypeattribute (hal_secretkeeper_service_202404) true)
+(typeattribute hal_secretkeeper_service_202404)
+(typeattributeset mtp_202404 (mtp))
+(expandtypeattribute (mtp_202404) true)
+(typeattribute mtp_202404)
+(typeattributeset backup_data_file_202404 (backup_data_file))
+(expandtypeattribute (backup_data_file_202404) true)
+(typeattribute backup_data_file_202404)
+(typeattributeset cgroup_desc_file_202404 (cgroup_desc_file))
+(expandtypeattribute (cgroup_desc_file_202404) true)
+(typeattribute cgroup_desc_file_202404)
+(typeattributeset vendor_kernel_modules_202404 (vendor_kernel_modules))
+(expandtypeattribute (vendor_kernel_modules_202404) true)
+(typeattribute vendor_kernel_modules_202404)
+(typeattributeset hal_cas_service_202404 (hal_cas_service))
+(expandtypeattribute (hal_cas_service_202404) true)
+(typeattribute hal_cas_service_202404)
+(typeattributeset app_fuse_file_202404 (app_fuse_file))
+(expandtypeattribute (app_fuse_file_202404) true)
+(typeattribute app_fuse_file_202404)
+(typeattributeset app_data_file_202404 (app_data_file))
+(expandtypeattribute (app_data_file_202404) true)
+(typeattribute app_data_file_202404)
+(typeattributeset boottime_public_prop_202404 (boottime_public_prop))
+(expandtypeattribute (boottime_public_prop_202404) true)
+(typeattribute boottime_public_prop_202404)
+(typeattributeset dhcp_data_file_202404 (dhcp_data_file))
+(expandtypeattribute (dhcp_data_file_202404) true)
+(typeattribute dhcp_data_file_202404)
+(typeattributeset privapp_data_file_202404 (privapp_data_file))
+(expandtypeattribute (privapp_data_file_202404) true)
+(typeattribute privapp_data_file_202404)
+(typeattributeset unlabeled_202404 (unlabeled))
+(expandtypeattribute (unlabeled_202404) true)
+(typeattribute unlabeled_202404)
+(typeattributeset hal_vibrator_service_202404 (hal_vibrator_service))
+(expandtypeattribute (hal_vibrator_service_202404) true)
+(typeattribute hal_vibrator_service_202404)
+(typeattributeset tombstone_config_prop_202404 (tombstone_config_prop))
+(expandtypeattribute (tombstone_config_prop_202404) true)
+(typeattribute tombstone_config_prop_202404)
+(typeattributeset tcpdump_exec_202404 (tcpdump_exec))
+(expandtypeattribute (tcpdump_exec_202404) true)
+(typeattribute tcpdump_exec_202404)
+(typeattributeset radio_control_prop_202404 (radio_control_prop))
+(expandtypeattribute (radio_control_prop_202404) true)
+(typeattribute radio_control_prop_202404)
+(typeattributeset hal_thermal_service_202404 (hal_thermal_service))
+(expandtypeattribute (hal_thermal_service_202404) true)
+(typeattribute hal_thermal_service_202404)
+(typeattributeset binder_calls_stats_service_202404 (binder_calls_stats_service))
+(expandtypeattribute (binder_calls_stats_service_202404) true)
+(typeattribute binder_calls_stats_service_202404)
+(typeattributeset linkerconfig_file_202404 (linkerconfig_file))
+(expandtypeattribute (linkerconfig_file_202404) true)
+(typeattribute linkerconfig_file_202404)
+(typeattributeset webview_zygote_tmpfs_202404 (webview_zygote_tmpfs))
+(expandtypeattribute (webview_zygote_tmpfs_202404) true)
+(typeattribute webview_zygote_tmpfs_202404)
+(typeattributeset surfaceflinger_prop_202404 (surfaceflinger_prop))
+(expandtypeattribute (surfaceflinger_prop_202404) true)
+(typeattribute surfaceflinger_prop_202404)
+(typeattributeset ipsec_service_202404 (ipsec_service))
+(expandtypeattribute (ipsec_service_202404) true)
+(typeattribute ipsec_service_202404)
+(typeattributeset fusectlfs_202404 (fusectlfs))
+(expandtypeattribute (fusectlfs_202404) true)
+(typeattribute fusectlfs_202404)
+(typeattributeset user_service_202404 (user_service))
+(expandtypeattribute (user_service_202404) true)
+(typeattribute user_service_202404)
+(typeattributeset dataloader_manager_service_202404 (dataloader_manager_service))
+(expandtypeattribute (dataloader_manager_service_202404) true)
+(typeattribute dataloader_manager_service_202404)
+(typeattributeset persistent_data_block_service_202404 (persistent_data_block_service))
+(expandtypeattribute (persistent_data_block_service_202404) true)
+(typeattribute persistent_data_block_service_202404)
+(typeattributeset artd_service_202404 (artd_service))
+(expandtypeattribute (artd_service_202404) true)
+(typeattribute artd_service_202404)
+(typeattributeset system_suspend_control_service_202404 (system_suspend_control_service))
+(expandtypeattribute (system_suspend_control_service_202404) true)
+(typeattribute system_suspend_control_service_202404)
+(typeattributeset mnt_sdcard_file_202404 (mnt_sdcard_file))
+(expandtypeattribute (mnt_sdcard_file_202404) true)
+(typeattribute mnt_sdcard_file_202404)
+(typeattributeset profman_dump_data_file_202404 (profman_dump_data_file))
+(expandtypeattribute (profman_dump_data_file_202404) true)
+(typeattribute profman_dump_data_file_202404)
+(typeattributeset telephony_status_prop_202404 (telephony_status_prop))
+(expandtypeattribute (telephony_status_prop_202404) true)
+(typeattribute telephony_status_prop_202404)
+(typeattributeset cgroup_desc_api_file_202404 (cgroup_desc_api_file))
+(expandtypeattribute (cgroup_desc_api_file_202404) true)
+(typeattribute cgroup_desc_api_file_202404)
+(typeattributeset socket_device_202404 (socket_device))
+(expandtypeattribute (socket_device_202404) true)
+(typeattribute socket_device_202404)
+(typeattributeset broadcastradio_service_202404 (broadcastradio_service))
+(expandtypeattribute (broadcastradio_service_202404) true)
+(typeattribute broadcastradio_service_202404)
+(typeattributeset hal_tv_hdmi_earc_service_202404 (hal_tv_hdmi_earc_service))
+(expandtypeattribute (hal_tv_hdmi_earc_service_202404) true)
+(typeattribute hal_tv_hdmi_earc_service_202404)
+(typeattributeset permission_checker_service_202404 (permission_checker_service))
+(expandtypeattribute (permission_checker_service_202404) true)
+(typeattribute permission_checker_service_202404)
+(typeattributeset scheduling_policy_service_202404 (scheduling_policy_service))
+(expandtypeattribute (scheduling_policy_service_202404) true)
+(typeattribute scheduling_policy_service_202404)
+(typeattributeset update_engine_exec_202404 (update_engine_exec))
+(expandtypeattribute (update_engine_exec_202404) true)
+(typeattribute update_engine_exec_202404)
+(typeattributeset installd_202404 (installd))
+(expandtypeattribute (installd_202404) true)
+(typeattribute installd_202404)
+(typeattributeset profman_exec_202404 (profman_exec))
+(expandtypeattribute (profman_exec_202404) true)
+(typeattribute profman_exec_202404)
+(typeattributeset debugfs_restriction_prop_202404 (debugfs_restriction_prop))
+(expandtypeattribute (debugfs_restriction_prop_202404) true)
+(typeattribute debugfs_restriction_prop_202404)
+(typeattributeset bootchart_data_file_202404 (bootchart_data_file))
+(expandtypeattribute (bootchart_data_file_202404) true)
+(typeattribute bootchart_data_file_202404)
+(typeattributeset dmabuf_system_secure_heap_device_202404 (dmabuf_system_secure_heap_device))
+(expandtypeattribute (dmabuf_system_secure_heap_device_202404) true)
+(typeattribute dmabuf_system_secure_heap_device_202404)
+(typeattributeset hal_codec2_service_202404 (hal_codec2_service))
+(expandtypeattribute (hal_codec2_service_202404) true)
+(typeattribute hal_codec2_service_202404)
+(typeattributeset vendor_userdir_file_202404 (vendor_userdir_file))
+(expandtypeattribute (vendor_userdir_file_202404) true)
+(typeattribute vendor_userdir_file_202404)
+(typeattributeset persist_debug_prop_202404 (persist_debug_prop))
+(expandtypeattribute (persist_debug_prop_202404) true)
+(typeattribute persist_debug_prop_202404)
+(typeattributeset hal_can_controller_service_202404 (hal_can_controller_service))
+(expandtypeattribute (hal_can_controller_service_202404) true)
+(typeattribute hal_can_controller_service_202404)
+(typeattributeset telecom_service_202404 (telecom_service))
+(expandtypeattribute (telecom_service_202404) true)
+(typeattribute telecom_service_202404)
+(typeattributeset audioserver_data_file_202404 (audioserver_data_file))
+(expandtypeattribute (audioserver_data_file_202404) true)
+(typeattribute audioserver_data_file_202404)
+(typeattributeset console_device_202404 (console_device))
+(expandtypeattribute (console_device_202404) true)
+(typeattribute console_device_202404)
+(typeattributeset sensors_device_202404 (sensors_device))
+(expandtypeattribute (sensors_device_202404) true)
+(typeattribute sensors_device_202404)
+(typeattributeset llkd_202404 (llkd))
+(expandtypeattribute (llkd_202404) true)
+(typeattribute llkd_202404)
+(typeattributeset location_time_zone_manager_service_202404 (location_time_zone_manager_service))
+(expandtypeattribute (location_time_zone_manager_service_202404) true)
+(typeattribute location_time_zone_manager_service_202404)
+(typeattributeset vold_metadata_file_202404 (vold_metadata_file))
+(expandtypeattribute (vold_metadata_file_202404) true)
+(typeattribute vold_metadata_file_202404)
+(typeattributeset charger_prop_202404 (charger_prop))
+(expandtypeattribute (charger_prop_202404) true)
+(typeattribute charger_prop_202404)
+(typeattributeset samplingprofiler_service_202404 (samplingprofiler_service))
+(expandtypeattribute (samplingprofiler_service_202404) true)
+(typeattribute samplingprofiler_service_202404)
+(typeattributeset sysfs_vendor_sched_202404 (sysfs_vendor_sched))
+(expandtypeattribute (sysfs_vendor_sched_202404) true)
+(typeattribute sysfs_vendor_sched_202404)
+(typeattributeset fwk_camera_service_202404 (fwk_camera_service))
+(expandtypeattribute (fwk_camera_service_202404) true)
+(typeattribute fwk_camera_service_202404)
+(typeattributeset hal_graphics_allocator_hwservice_202404 (hal_graphics_allocator_hwservice))
+(expandtypeattribute (hal_graphics_allocator_hwservice_202404) true)
+(typeattribute hal_graphics_allocator_hwservice_202404)
+(typeattributeset hal_dumpstate_config_prop_202404 (hal_dumpstate_config_prop))
+(expandtypeattribute (hal_dumpstate_config_prop_202404) true)
+(typeattribute hal_dumpstate_config_prop_202404)
+(typeattributeset overlayfs_file_202404 (overlayfs_file))
+(expandtypeattribute (overlayfs_file_202404) true)
+(typeattribute overlayfs_file_202404)
+(typeattributeset proc_version_202404 (proc_version))
+(expandtypeattribute (proc_version_202404) true)
+(typeattribute proc_version_202404)
+(typeattributeset search_service_202404 (search_service))
+(expandtypeattribute (search_service_202404) true)
+(typeattribute search_service_202404)
+(typeattributeset nearby_service_202404 (nearby_service))
+(expandtypeattribute (nearby_service_202404) true)
+(typeattribute nearby_service_202404)
+(typeattributeset mediaserver_202404 (mediaserver))
+(expandtypeattribute (mediaserver_202404) true)
+(typeattribute mediaserver_202404)
+(typeattributeset mediaserver_exec_202404 (mediaserver_exec))
+(expandtypeattribute (mediaserver_exec_202404) true)
+(typeattribute mediaserver_exec_202404)
+(typeattributeset network_stack_service_202404 (network_stack_service))
+(expandtypeattribute (network_stack_service_202404) true)
+(typeattribute network_stack_service_202404)
+(typeattributeset oemfs_202404 (oemfs))
+(expandtypeattribute (oemfs_202404) true)
+(typeattribute oemfs_202404)
+(typeattributeset proc_cmdline_202404 (proc_cmdline))
+(expandtypeattribute (proc_cmdline_202404) true)
+(typeattribute proc_cmdline_202404)
+(typeattributeset drmserver_exec_202404 (drmserver_exec))
+(expandtypeattribute (drmserver_exec_202404) true)
+(typeattribute drmserver_exec_202404)
+(typeattributeset proc_net_tcp_udp_202404 (proc_net_tcp_udp))
+(expandtypeattribute (proc_net_tcp_udp_202404) true)
+(typeattribute proc_net_tcp_udp_202404)
+(typeattributeset resources_manager_service_202404 (resources_manager_service))
+(expandtypeattribute (resources_manager_service_202404) true)
+(typeattribute resources_manager_service_202404)
+(typeattributeset sgdisk_exec_202404 (sgdisk_exec))
+(expandtypeattribute (sgdisk_exec_202404) true)
+(typeattribute sgdisk_exec_202404)
+(typeattributeset retaildemo_prop_202404 (retaildemo_prop))
+(expandtypeattribute (retaildemo_prop_202404) true)
+(typeattribute retaildemo_prop_202404)
+(typeattributeset pdx_display_screenshot_endpoint_socket_202404 (pdx_display_screenshot_endpoint_socket))
+(expandtypeattribute (pdx_display_screenshot_endpoint_socket_202404) true)
+(typeattribute pdx_display_screenshot_endpoint_socket_202404)
+(typeattributeset simpleperf_app_runner_202404 (simpleperf_app_runner))
+(expandtypeattribute (simpleperf_app_runner_202404) true)
+(typeattribute simpleperf_app_runner_202404)
+(typeattributeset mnt_product_file_202404 (mnt_product_file))
+(expandtypeattribute (mnt_product_file_202404) true)
+(typeattribute mnt_product_file_202404)
+(typeattributeset camera_data_file_202404 (camera_data_file))
+(expandtypeattribute (camera_data_file_202404) true)
+(typeattribute camera_data_file_202404)
+(typeattributeset bluetooth_efs_file_202404 (bluetooth_efs_file))
+(expandtypeattribute (bluetooth_efs_file_202404) true)
+(typeattribute bluetooth_efs_file_202404)
+(typeattributeset media_data_file_202404 (media_data_file))
+(expandtypeattribute (media_data_file_202404) true)
+(typeattribute media_data_file_202404)
+(typeattributeset ota_data_file_202404 (ota_data_file))
+(expandtypeattribute (ota_data_file_202404) true)
+(typeattribute ota_data_file_202404)
+(typeattributeset security_state_service_202404 (security_state_service))
+(expandtypeattribute (security_state_service_202404) true)
+(typeattribute security_state_service_202404)
+(typeattributeset sysfs_fs_incfs_metrics_202404 (sysfs_fs_incfs_metrics))
+(expandtypeattribute (sysfs_fs_incfs_metrics_202404) true)
+(typeattribute sysfs_fs_incfs_metrics_202404)
+(typeattributeset telephony_config_prop_202404 (telephony_config_prop))
+(expandtypeattribute (telephony_config_prop_202404) true)
+(typeattribute telephony_config_prop_202404)
+(typeattributeset system_file_202404 (system_file))
+(expandtypeattribute (system_file_202404) true)
+(typeattribute system_file_202404)
+(typeattributeset system_seccomp_policy_file_202404 (system_seccomp_policy_file))
+(expandtypeattribute (system_seccomp_policy_file_202404) true)
+(typeattribute system_seccomp_policy_file_202404)
+(typeattributeset apk_private_tmp_file_202404 (apk_private_tmp_file))
+(expandtypeattribute (apk_private_tmp_file_202404) true)
+(typeattribute apk_private_tmp_file_202404)
+(typeattributeset hci_attach_dev_202404 (hci_attach_dev))
+(expandtypeattribute (hci_attach_dev_202404) true)
+(typeattribute hci_attach_dev_202404)
+(typeattributeset statusbar_service_202404 (statusbar_service))
+(expandtypeattribute (statusbar_service_202404) true)
+(typeattribute statusbar_service_202404)
+(typeattributeset traced_producer_socket_202404 (traced_producer_socket))
+(expandtypeattribute (traced_producer_socket_202404) true)
+(typeattribute traced_producer_socket_202404)
+(typeattributeset hal_input_classifier_hwservice_202404 (hal_input_classifier_hwservice))
+(expandtypeattribute (hal_input_classifier_hwservice_202404) true)
+(typeattribute hal_input_classifier_hwservice_202404)
+(typeattributeset idmap_202404 (idmap))
+(expandtypeattribute (idmap_202404) true)
+(typeattribute idmap_202404)
+(typeattributeset binderfs_logs_stats_202404 (binderfs_logs_stats))
+(expandtypeattribute (binderfs_logs_stats_202404) true)
+(typeattribute binderfs_logs_stats_202404)
+(typeattributeset fwmarkd_socket_202404 (fwmarkd_socket))
+(expandtypeattribute (fwmarkd_socket_202404) true)
+(typeattribute fwmarkd_socket_202404)
+(typeattributeset device_config_media_native_prop_202404 (device_config_media_native_prop))
+(expandtypeattribute (device_config_media_native_prop_202404) true)
+(typeattribute device_config_media_native_prop_202404)
+(typeattributeset cameraserver_exec_202404 (cameraserver_exec))
+(expandtypeattribute (cameraserver_exec_202404) true)
+(typeattribute cameraserver_exec_202404)
+(typeattributeset device_config_nnapi_native_prop_202404 (device_config_nnapi_native_prop))
+(expandtypeattribute (device_config_nnapi_native_prop_202404) true)
+(typeattribute device_config_nnapi_native_prop_202404)
+(typeattributeset shortcut_service_202404 (shortcut_service))
+(expandtypeattribute (shortcut_service_202404) true)
+(typeattribute shortcut_service_202404)
+(typeattributeset credstore_data_file_202404 (credstore_data_file))
+(expandtypeattribute (credstore_data_file_202404) true)
+(typeattribute credstore_data_file_202404)
+(typeattributeset device_state_service_202404 (device_state_service))
+(expandtypeattribute (device_state_service_202404) true)
+(typeattribute device_state_service_202404)
+(typeattributeset profman_202404 (profman))
+(expandtypeattribute (profman_202404) true)
+(typeattribute profman_202404)
+(typeattributeset heapprofd_enabled_prop_202404 (heapprofd_enabled_prop))
+(expandtypeattribute (heapprofd_enabled_prop_202404) true)
+(typeattribute heapprofd_enabled_prop_202404)
+(typeattributeset ctl_sigstop_prop_202404 (ctl_sigstop_prop))
+(expandtypeattribute (ctl_sigstop_prop_202404) true)
+(typeattribute ctl_sigstop_prop_202404)
+(typeattributeset media_rw_data_file_202404 (media_rw_data_file))
+(expandtypeattribute (media_rw_data_file_202404) true)
+(typeattribute media_rw_data_file_202404)
+(typeattributeset system_config_service_202404 (system_config_service))
+(expandtypeattribute (system_config_service_202404) true)
+(typeattribute system_config_service_202404)
+(typeattributeset gnss_time_update_service_202404 (gnss_time_update_service))
+(expandtypeattribute (gnss_time_update_service_202404) true)
+(typeattribute gnss_time_update_service_202404)
+(typeattributeset binder_cache_system_server_prop_202404 (binder_cache_system_server_prop))
+(expandtypeattribute (binder_cache_system_server_prop_202404) true)
+(typeattribute binder_cache_system_server_prop_202404)
+(typeattributeset coredump_file_202404 (coredump_file))
+(expandtypeattribute (coredump_file_202404) true)
+(typeattribute coredump_file_202404)
+(typeattributeset ctl_interface_stop_prop_202404 (ctl_interface_stop_prop))
+(expandtypeattribute (ctl_interface_stop_prop_202404) true)
+(typeattribute ctl_interface_stop_prop_202404)
+(typeattributeset serial_device_202404 (serial_device))
+(expandtypeattribute (serial_device_202404) true)
+(typeattribute serial_device_202404)
+(typeattributeset healthconnect_service_202404 (healthconnect_service))
+(expandtypeattribute (healthconnect_service_202404) true)
+(typeattribute healthconnect_service_202404)
+(typeattributeset traced_consumer_socket_202404 (traced_consumer_socket))
+(expandtypeattribute (traced_consumer_socket_202404) true)
+(typeattribute traced_consumer_socket_202404)
+(typeattributeset devicestoragemonitor_service_202404 (devicestoragemonitor_service))
+(expandtypeattribute (devicestoragemonitor_service_202404) true)
+(typeattribute devicestoragemonitor_service_202404)
+(typeattributeset boottrace_data_file_202404 (boottrace_data_file))
+(expandtypeattribute (boottrace_data_file_202404) true)
+(typeattribute boottrace_data_file_202404)
+(typeattributeset proc_uid_time_in_state_202404 (proc_uid_time_in_state))
+(expandtypeattribute (proc_uid_time_in_state_202404) true)
+(typeattribute proc_uid_time_in_state_202404)
+(typeattributeset apex_metadata_file_202404 (apex_metadata_file))
+(expandtypeattribute (apex_metadata_file_202404) true)
+(typeattribute apex_metadata_file_202404)
+(typeattributeset hal_audio_hwservice_202404 (hal_audio_hwservice))
+(expandtypeattribute (hal_audio_hwservice_202404) true)
+(typeattribute hal_audio_hwservice_202404)
+(typeattributeset iris_service_202404 (iris_service))
+(expandtypeattribute (iris_service_202404) true)
+(typeattribute iris_service_202404)
+(typeattributeset cache_backup_file_202404 (cache_backup_file))
+(expandtypeattribute (cache_backup_file_202404) true)
+(typeattribute cache_backup_file_202404)
+(typeattributeset hal_usb_gadget_hwservice_202404 (hal_usb_gadget_hwservice))
+(expandtypeattribute (hal_usb_gadget_hwservice_202404) true)
+(typeattribute hal_usb_gadget_hwservice_202404)
+(typeattributeset biometric_service_202404 (biometric_service))
+(expandtypeattribute (biometric_service_202404) true)
+(typeattribute biometric_service_202404)
+(typeattributeset sysfs_extcon_202404 (sysfs_extcon))
+(expandtypeattribute (sysfs_extcon_202404) true)
+(typeattribute sysfs_extcon_202404)
+(typeattributeset usb_serial_device_202404 (usb_serial_device))
+(expandtypeattribute (usb_serial_device_202404) true)
+(typeattribute usb_serial_device_202404)
+(typeattributeset watchdogd_exec_202404 (watchdogd_exec))
+(expandtypeattribute (watchdogd_exec_202404) true)
+(typeattribute watchdogd_exec_202404)
+(typeattributeset surfaceflinger_tmpfs_202404 (surfaceflinger_tmpfs))
+(expandtypeattribute (surfaceflinger_tmpfs_202404) true)
+(typeattribute surfaceflinger_tmpfs_202404)
+(typeattributeset fs_bpf_vendor_202404 (fs_bpf_vendor))
+(expandtypeattribute (fs_bpf_vendor_202404) true)
+(typeattribute fs_bpf_vendor_202404)
+(typeattributeset lmkd_202404 (lmkd))
+(expandtypeattribute (lmkd_202404) true)
+(typeattribute lmkd_202404)
+(typeattributeset deviceidle_service_202404 (deviceidle_service))
+(expandtypeattribute (deviceidle_service_202404) true)
+(typeattribute deviceidle_service_202404)
+(typeattributeset dropbox_service_202404 (dropbox_service))
+(expandtypeattribute (dropbox_service_202404) true)
+(typeattribute dropbox_service_202404)
+(typeattributeset userspace_reboot_metadata_file_202404 (userspace_reboot_metadata_file))
+(expandtypeattribute (userspace_reboot_metadata_file_202404) true)
+(typeattribute userspace_reboot_metadata_file_202404)
+(typeattributeset hidl_token_hwservice_202404 (hidl_token_hwservice))
+(expandtypeattribute (hidl_token_hwservice_202404) true)
+(typeattribute hidl_token_hwservice_202404)
+(typeattributeset storagestats_service_202404 (storagestats_service))
+(expandtypeattribute (storagestats_service_202404) true)
+(typeattribute storagestats_service_202404)
+(typeattributeset activity_task_service_202404 (activity_task_service))
+(expandtypeattribute (activity_task_service_202404) true)
+(typeattribute activity_task_service_202404)
+(typeattributeset hal_camera_service_202404 (hal_camera_service))
+(expandtypeattribute (hal_camera_service_202404) true)
+(typeattribute hal_camera_service_202404)
+(typeattributeset wifip2p_service_202404 (wifip2p_service))
+(expandtypeattribute (wifip2p_service_202404) true)
+(typeattribute wifip2p_service_202404)
+(typeattributeset fs_bpf_tethering_202404 (fs_bpf_tethering))
+(expandtypeattribute (fs_bpf_tethering_202404) true)
+(typeattribute fs_bpf_tethering_202404)
+(typeattributeset sysfs_switch_202404 (sysfs_switch))
+(expandtypeattribute (sysfs_switch_202404) true)
+(typeattribute sysfs_switch_202404)
+(typeattributeset device_config_input_native_boot_prop_202404 (device_config_input_native_boot_prop))
+(expandtypeattribute (device_config_input_native_boot_prop_202404) true)
+(typeattribute device_config_input_native_boot_prop_202404)
+(typeattributeset registry_service_202404 (registry_service))
+(expandtypeattribute (registry_service_202404) true)
+(typeattribute registry_service_202404)
+(typeattributeset aconfig_storage_metadata_file_202404 (aconfig_storage_metadata_file))
+(expandtypeattribute (aconfig_storage_metadata_file_202404) true)
+(typeattribute aconfig_storage_metadata_file_202404)
+(typeattributeset platform_app_202404 (platform_app))
+(expandtypeattribute (platform_app_202404) true)
+(typeattribute platform_app_202404)
+(typeattributeset hidraw_device_202404 (hidraw_device))
+(expandtypeattribute (hidraw_device_202404) true)
+(typeattribute hidraw_device_202404)
+(typeattributeset sysfs_batteryinfo_202404 (sysfs_batteryinfo))
+(expandtypeattribute (sysfs_batteryinfo_202404) true)
+(typeattribute sysfs_batteryinfo_202404)
+(typeattributeset framework_watchdog_config_prop_202404 (framework_watchdog_config_prop))
+(expandtypeattribute (framework_watchdog_config_prop_202404) true)
+(typeattribute framework_watchdog_config_prop_202404)
+(typeattributeset hal_drm_service_202404 (hal_drm_service))
+(expandtypeattribute (hal_drm_service_202404) true)
+(typeattribute hal_drm_service_202404)
+(typeattributeset recovery_persist_202404 (recovery_persist))
+(expandtypeattribute (recovery_persist_202404) true)
+(typeattribute recovery_persist_202404)
+(typeattributeset package_native_service_202404 (package_native_service))
+(expandtypeattribute (package_native_service_202404) true)
+(typeattribute package_native_service_202404)
+(typeattributeset jobscheduler_service_202404 (jobscheduler_service))
+(expandtypeattribute (jobscheduler_service_202404) true)
+(typeattribute jobscheduler_service_202404)
+(typeattributeset update_engine_stable_service_202404 (update_engine_stable_service))
+(expandtypeattribute (update_engine_stable_service_202404) true)
+(typeattribute update_engine_stable_service_202404)
+(typeattributeset system_lib_file_202404 (system_lib_file))
+(expandtypeattribute (system_lib_file_202404) true)
+(typeattribute system_lib_file_202404)
+(typeattributeset media_userdir_file_202404 (media_userdir_file))
+(expandtypeattribute (media_userdir_file_202404) true)
+(typeattribute media_userdir_file_202404)
+(typeattributeset keystore2_key_contexts_file_202404 (keystore2_key_contexts_file))
+(expandtypeattribute (keystore2_key_contexts_file_202404) true)
+(typeattribute keystore2_key_contexts_file_202404)
+(typeattributeset traced_perf_socket_202404 (traced_perf_socket))
+(expandtypeattribute (traced_perf_socket_202404) true)
+(typeattribute traced_perf_socket_202404)
+(typeattributeset proc_iomem_202404 (proc_iomem))
+(expandtypeattribute (proc_iomem_202404) true)
+(typeattribute proc_iomem_202404)
+(typeattributeset virtual_fingerprint_hal_prop_202404 (virtual_fingerprint_hal_prop))
+(expandtypeattribute (virtual_fingerprint_hal_prop_202404) true)
+(typeattribute virtual_fingerprint_hal_prop_202404)
+(typeattributeset hal_camera_hwservice_202404 (hal_camera_hwservice))
+(expandtypeattribute (hal_camera_hwservice_202404) true)
+(typeattribute hal_camera_hwservice_202404)
+(typeattributeset proc_timer_202404 (proc_timer))
+(expandtypeattribute (proc_timer_202404) true)
+(typeattribute proc_timer_202404)
+(typeattributeset pdx_performance_client_channel_socket_202404 (pdx_performance_client_channel_socket))
+(expandtypeattribute (pdx_performance_client_channel_socket_202404) true)
+(typeattribute pdx_performance_client_channel_socket_202404)
+(typeattributeset sdcardd_exec_202404 (sdcardd_exec))
+(expandtypeattribute (sdcardd_exec_202404) true)
+(typeattribute sdcardd_exec_202404)
+(typeattributeset kmsg_debug_device_202404 (kmsg_debug_device))
+(expandtypeattribute (kmsg_debug_device_202404) true)
+(typeattribute kmsg_debug_device_202404)
+(typeattributeset mediametrics_202404 (mediametrics))
+(expandtypeattribute (mediametrics_202404) true)
+(typeattribute mediametrics_202404)
+(typeattributeset mediametrics_exec_202404 (mediametrics_exec))
+(expandtypeattribute (mediametrics_exec_202404) true)
+(typeattribute mediametrics_exec_202404)
+(typeattributeset hal_broadcastradio_service_202404 (hal_broadcastradio_service))
+(expandtypeattribute (hal_broadcastradio_service_202404) true)
+(typeattribute hal_broadcastradio_service_202404)
+(typeattributeset sysfs_wakeup_202404 (sysfs_wakeup))
+(expandtypeattribute (sysfs_wakeup_202404) true)
+(typeattribute sysfs_wakeup_202404)
+(typeattributeset audio_device_202404 (audio_device))
+(expandtypeattribute (audio_device_202404) true)
+(typeattribute audio_device_202404)
+(typeattributeset webviewupdate_service_202404 (webviewupdate_service))
+(expandtypeattribute (webviewupdate_service_202404) true)
+(typeattribute webviewupdate_service_202404)
+(typeattributeset bufferhubd_exec_202404 (bufferhubd_exec))
+(expandtypeattribute (bufferhubd_exec_202404) true)
+(typeattribute bufferhubd_exec_202404)
+(typeattributeset device_config_updatable_service_202404 (device_config_updatable_service))
+(expandtypeattribute (device_config_updatable_service_202404) true)
+(typeattribute device_config_updatable_service_202404)
+(typeattributeset userspace_reboot_config_prop_202404 (userspace_reboot_config_prop))
+(expandtypeattribute (userspace_reboot_config_prop_202404) true)
+(typeattribute userspace_reboot_config_prop_202404)
+(typeattributeset hal_macsec_service_202404 (hal_macsec_service))
+(expandtypeattribute (hal_macsec_service_202404) true)
+(typeattribute hal_macsec_service_202404)
+(typeattributeset sysfs_lowmemorykiller_202404 (sysfs_lowmemorykiller))
+(expandtypeattribute (sysfs_lowmemorykiller_202404) true)
+(typeattribute sysfs_lowmemorykiller_202404)
+(typeattributeset reboot_readiness_service_202404 (reboot_readiness_service))
+(expandtypeattribute (reboot_readiness_service_202404) true)
+(typeattribute reboot_readiness_service_202404)
+(typeattributeset hwservicemanager_exec_202404 (hwservicemanager_exec))
+(expandtypeattribute (hwservicemanager_exec_202404) true)
+(typeattribute hwservicemanager_exec_202404)
+(typeattributeset servicemanager_exec_202404 (servicemanager_exec))
+(expandtypeattribute (servicemanager_exec_202404) true)
+(typeattribute servicemanager_exec_202404)
+(typeattributeset pdx_performance_dir_202404 (pdx_performance_dir))
+(expandtypeattribute (pdx_performance_dir_202404) true)
+(typeattribute pdx_performance_dir_202404)
+(typeattributeset proc_cpuinfo_202404 (proc_cpuinfo))
+(expandtypeattribute (proc_cpuinfo_202404) true)
+(typeattribute proc_cpuinfo_202404)
+(typeattributeset proc_meminfo_202404 (proc_meminfo))
+(expandtypeattribute (proc_meminfo_202404) true)
+(typeattribute proc_meminfo_202404)
+(typeattributeset device_config_netd_native_prop_202404 (device_config_netd_native_prop))
+(expandtypeattribute (device_config_netd_native_prop_202404) true)
+(typeattribute device_config_netd_native_prop_202404)
+(typeattributeset zygote_socket_202404 (zygote_socket))
+(expandtypeattribute (zygote_socket_202404) true)
+(typeattribute zygote_socket_202404)
+(typeattributeset vendor_framework_file_202404 (vendor_framework_file))
+(expandtypeattribute (vendor_framework_file_202404) true)
+(typeattribute vendor_framework_file_202404)
+(typeattributeset boottime_prop_202404 (boottime_prop))
+(expandtypeattribute (boottime_prop_202404) true)
+(typeattribute boottime_prop_202404)
+(typeattributeset fsck_untrusted_202404 (fsck_untrusted))
+(expandtypeattribute (fsck_untrusted_202404) true)
+(typeattribute fsck_untrusted_202404)
+(typeattributeset uhid_device_202404 (uhid_device))
+(expandtypeattribute (uhid_device_202404) true)
+(typeattribute uhid_device_202404)
+(typeattributeset system_trace_prop_202404 (system_trace_prop))
+(expandtypeattribute (system_trace_prop_202404) true)
+(typeattribute system_trace_prop_202404)
+(typeattributeset ctl_start_prop_202404 (ctl_start_prop))
+(expandtypeattribute (ctl_start_prop_202404) true)
+(typeattribute ctl_start_prop_202404)
+(typeattributeset incident_service_202404 (incident_service))
+(expandtypeattribute (incident_service_202404) true)
+(typeattribute incident_service_202404)
+(typeattributeset apex_ready_prop_202404 (apex_ready_prop))
+(expandtypeattribute (apex_ready_prop_202404) true)
+(typeattribute apex_ready_prop_202404)
+(typeattributeset ctl_bootanim_prop_202404 (ctl_bootanim_prop))
+(expandtypeattribute (ctl_bootanim_prop_202404) true)
+(typeattribute ctl_bootanim_prop_202404)
+(typeattributeset drm_forcel3_prop_202404 (drm_forcel3_prop))
+(expandtypeattribute (drm_forcel3_prop_202404) true)
+(typeattribute drm_forcel3_prop_202404)
+(typeattributeset fwk_sensor_service_202404 (fwk_sensor_service))
+(expandtypeattribute (fwk_sensor_service_202404) true)
+(typeattribute fwk_sensor_service_202404)
+(typeattributeset restorecon_prop_202404 (restorecon_prop))
+(expandtypeattribute (restorecon_prop_202404) true)
+(typeattribute restorecon_prop_202404)
+(typeattributeset account_service_202404 (account_service))
+(expandtypeattribute (account_service_202404) true)
+(typeattribute account_service_202404)
+(typeattributeset content_service_202404 (content_service))
+(expandtypeattribute (content_service_202404) true)
+(typeattribute content_service_202404)
+(typeattributeset mount_service_202404 (mount_service))
+(expandtypeattribute (mount_service_202404) true)
+(typeattribute mount_service_202404)
+(typeattributeset quick_start_prop_202404 (quick_start_prop))
+(expandtypeattribute (quick_start_prop_202404) true)
+(typeattribute quick_start_prop_202404)
+(typeattributeset mediatranscoding_202404 (mediatranscoding))
+(expandtypeattribute (mediatranscoding_202404) true)
+(typeattribute mediatranscoding_202404)
+(typeattributeset net_radio_prop_202404 (net_radio_prop))
+(expandtypeattribute (net_radio_prop_202404) true)
+(typeattribute net_radio_prop_202404)
+(typeattributeset sysfs_usermodehelper_202404 (sysfs_usermodehelper))
+(expandtypeattribute (sysfs_usermodehelper_202404) true)
+(typeattribute sysfs_usermodehelper_202404)
+(typeattributeset asec_apk_file_202404 (asec_apk_file))
+(expandtypeattribute (asec_apk_file_202404) true)
+(typeattribute asec_apk_file_202404)
+(typeattributeset heapdump_data_file_202404 (heapdump_data_file))
+(expandtypeattribute (heapdump_data_file_202404) true)
+(typeattribute heapdump_data_file_202404)
+(typeattributeset sysfs_dt_firmware_android_202404 (sysfs_dt_firmware_android))
+(expandtypeattribute (sysfs_dt_firmware_android_202404) true)
+(typeattribute sysfs_dt_firmware_android_202404)
+(typeattributeset hal_authsecret_hwservice_202404 (hal_authsecret_hwservice))
+(expandtypeattribute (hal_authsecret_hwservice_202404) true)
+(typeattribute hal_authsecret_hwservice_202404)
+(typeattributeset update_verifier_exec_202404 (update_verifier_exec))
+(expandtypeattribute (update_verifier_exec_202404) true)
+(typeattribute update_verifier_exec_202404)
+(typeattributeset property_service_version_prop_202404 (property_service_version_prop))
+(expandtypeattribute (property_service_version_prop_202404) true)
+(typeattribute property_service_version_prop_202404)
+(typeattributeset hal_dumpstate_hwservice_202404 (hal_dumpstate_hwservice))
+(expandtypeattribute (hal_dumpstate_hwservice_202404) true)
+(typeattribute hal_dumpstate_hwservice_202404)
+(typeattributeset lpdump_service_202404 (lpdump_service))
+(expandtypeattribute (lpdump_service_202404) true)
+(typeattribute lpdump_service_202404)
+(typeattributeset vibrator_manager_service_202404 (vibrator_manager_service))
+(expandtypeattribute (vibrator_manager_service_202404) true)
+(typeattribute vibrator_manager_service_202404)
+(typeattributeset build_attestation_prop_202404 (build_attestation_prop))
+(expandtypeattribute (build_attestation_prop_202404) true)
+(typeattribute build_attestation_prop_202404)
+(typeattributeset cache_private_backup_file_202404 (cache_private_backup_file))
+(expandtypeattribute (cache_private_backup_file_202404) true)
+(typeattribute cache_private_backup_file_202404)
+(typeattributeset recovery_socket_202404 (recovery_socket))
+(expandtypeattribute (recovery_socket_202404) true)
+(typeattribute recovery_socket_202404)
+(typeattributeset hal_usb_service_202404 (hal_usb_service))
+(expandtypeattribute (hal_usb_service_202404) true)
+(typeattribute hal_usb_service_202404)
+(typeattributeset usb_service_202404 (usb_service))
+(expandtypeattribute (usb_service_202404) true)
+(typeattribute usb_service_202404)
+(typeattributeset ctl_stop_prop_202404 (ctl_stop_prop))
+(expandtypeattribute (ctl_stop_prop_202404) true)
+(typeattribute ctl_stop_prop_202404)
+(typeattributeset dm_user_device_202404 (dm_user_device))
+(expandtypeattribute (dm_user_device_202404) true)
+(typeattribute dm_user_device_202404)
+(typeattributeset packagemanager_config_prop_202404 (packagemanager_config_prop))
+(expandtypeattribute (packagemanager_config_prop_202404) true)
+(typeattribute packagemanager_config_prop_202404)
+(typeattributeset battery_service_202404 (battery_service))
+(expandtypeattribute (battery_service_202404) true)
+(typeattribute battery_service_202404)
+(typeattributeset incremental_control_file_202404 (incremental_control_file))
+(expandtypeattribute (incremental_control_file_202404) true)
+(typeattribute incremental_control_file_202404)
+(typeattributeset proc_lowmemorykiller_202404 (proc_lowmemorykiller))
+(expandtypeattribute (proc_lowmemorykiller_202404) true)
+(typeattribute proc_lowmemorykiller_202404)
+(typeattributeset recovery_service_202404 (recovery_service))
+(expandtypeattribute (recovery_service_202404) true)
+(typeattribute recovery_service_202404)
+(typeattributeset ctl_gsid_prop_202404 (ctl_gsid_prop))
+(expandtypeattribute (ctl_gsid_prop_202404) true)
+(typeattribute ctl_gsid_prop_202404)
+(typeattributeset ctl_fuse_prop_202404 (ctl_fuse_prop))
+(expandtypeattribute (ctl_fuse_prop_202404) true)
+(typeattribute ctl_fuse_prop_202404)
+(typeattributeset ctl_console_prop_202404 (ctl_console_prop))
+(expandtypeattribute (ctl_console_prop_202404) true)
+(typeattribute ctl_console_prop_202404)
+(typeattributeset gatekeeperd_exec_202404 (gatekeeperd_exec))
+(expandtypeattribute (gatekeeperd_exec_202404) true)
+(typeattribute gatekeeperd_exec_202404)
+(typeattributeset sockfs_202404 (sockfs))
+(expandtypeattribute (sockfs_202404) true)
+(typeattribute sockfs_202404)
+(typeattributeset trust_service_202404 (trust_service))
+(expandtypeattribute (trust_service_202404) true)
+(typeattribute trust_service_202404)
+(typeattributeset usb_control_prop_202404 (usb_control_prop))
+(expandtypeattribute (usb_control_prop_202404) true)
+(typeattribute usb_control_prop_202404)
+(typeattributeset ffs_control_prop_202404 (ffs_control_prop))
+(expandtypeattribute (ffs_control_prop_202404) true)
+(typeattribute ffs_control_prop_202404)
+(typeattributeset ctl_adbd_prop_202404 (ctl_adbd_prop))
+(expandtypeattribute (ctl_adbd_prop_202404) true)
+(typeattribute ctl_adbd_prop_202404)
+(typeattributeset binfmt_miscfs_202404 (binfmt_miscfs))
+(expandtypeattribute (binfmt_miscfs_202404) true)
+(typeattribute binfmt_miscfs_202404)
+(typeattributeset storage_file_202404 (storage_file))
+(expandtypeattribute (storage_file_202404) true)
+(typeattribute storage_file_202404)
+(typeattributeset storagemanager_config_prop_202404 (storagemanager_config_prop))
+(expandtypeattribute (storagemanager_config_prop_202404) true)
+(typeattribute storagemanager_config_prop_202404)
+(typeattributeset vendor_vm_file_202404 (vendor_vm_file))
+(expandtypeattribute (vendor_vm_file_202404) true)
+(typeattribute vendor_vm_file_202404)
+(typeattributeset adservices_manager_service_202404 (adservices_manager_service))
+(expandtypeattribute (adservices_manager_service_202404) true)
+(typeattribute adservices_manager_service_202404)
+(typeattributeset update_verifier_202404 (update_verifier))
+(expandtypeattribute (update_verifier_202404) true)
+(typeattribute update_verifier_202404)
+(typeattributeset wifi_key_202404 (wifi_key))
+(expandtypeattribute (wifi_key_202404) true)
+(typeattribute wifi_key_202404)
+(typeattributeset ctl_mdnsd_prop_202404 (ctl_mdnsd_prop))
+(expandtypeattribute (ctl_mdnsd_prop_202404) true)
+(typeattribute ctl_mdnsd_prop_202404)
+(typeattributeset use_memfd_prop_202404 (use_memfd_prop))
+(expandtypeattribute (use_memfd_prop_202404) true)
+(typeattribute use_memfd_prop_202404)
+(typeattributeset mnt_media_rw_file_202404 (mnt_media_rw_file))
+(expandtypeattribute (mnt_media_rw_file_202404) true)
+(typeattribute mnt_media_rw_file_202404)
+(typeattributeset sysfs_transparent_hugepage_202404 (sysfs_transparent_hugepage))
+(expandtypeattribute (sysfs_transparent_hugepage_202404) true)
+(typeattribute sysfs_transparent_hugepage_202404)
+(typeattributeset update_engine_data_file_202404 (update_engine_data_file))
+(expandtypeattribute (update_engine_data_file_202404) true)
+(typeattribute update_engine_data_file_202404)
+(typeattributeset face_vendor_data_file_202404 (face_vendor_data_file))
+(expandtypeattribute (face_vendor_data_file_202404) true)
+(typeattribute face_vendor_data_file_202404)
+(typeattributeset hal_uwb_service_202404 (hal_uwb_service))
+(expandtypeattribute (hal_uwb_service_202404) true)
+(typeattribute hal_uwb_service_202404)
+(typeattributeset uwb_service_202404 (uwb_service))
+(expandtypeattribute (uwb_service_202404) true)
+(typeattribute uwb_service_202404)
+(typeattributeset hal_evs_service_202404 (hal_evs_service))
+(expandtypeattribute (hal_evs_service_202404) true)
+(typeattribute hal_evs_service_202404)
+(typeattributeset staging_data_file_202404 (staging_data_file))
+(expandtypeattribute (staging_data_file_202404) true)
+(typeattribute staging_data_file_202404)
+(typeattributeset sysfs_devices_block_202404 (sysfs_devices_block))
+(expandtypeattribute (sysfs_devices_block_202404) true)
+(typeattribute sysfs_devices_block_202404)
+(typeattributeset mnt_expand_file_202404 (mnt_expand_file))
+(expandtypeattribute (mnt_expand_file_202404) true)
+(typeattribute mnt_expand_file_202404)
+(typeattributeset system_update_service_202404 (system_update_service))
+(expandtypeattribute (system_update_service_202404) true)
+(typeattribute system_update_service_202404)
+(typeattributeset fwk_display_hwservice_202404 (fwk_display_hwservice))
+(expandtypeattribute (fwk_display_hwservice_202404) true)
+(typeattribute fwk_display_hwservice_202404)
+(typeattributeset vendor_socket_hook_prop_202404 (vendor_socket_hook_prop))
+(expandtypeattribute (vendor_socket_hook_prop_202404) true)
+(typeattribute vendor_socket_hook_prop_202404)
+(typeattributeset tombstoned_crash_socket_202404 (tombstoned_crash_socket))
+(expandtypeattribute (tombstoned_crash_socket_202404) true)
+(typeattribute tombstoned_crash_socket_202404)
+(typeattributeset proc_drop_caches_202404 (proc_drop_caches))
+(expandtypeattribute (proc_drop_caches_202404) true)
+(typeattribute proc_drop_caches_202404)
+(typeattributeset zram_control_prop_202404 (zram_control_prop))
+(expandtypeattribute (zram_control_prop_202404) true)
+(typeattribute zram_control_prop_202404)
+(typeattributeset app_search_service_202404 (app_search_service))
+(expandtypeattribute (app_search_service_202404) true)
+(typeattribute app_search_service_202404)
+(typeattributeset credstore_exec_202404 (credstore_exec))
+(expandtypeattribute (credstore_exec_202404) true)
+(typeattribute credstore_exec_202404)
+(typeattributeset resourcecache_data_file_202404 (resourcecache_data_file))
+(expandtypeattribute (resourcecache_data_file_202404) true)
+(typeattribute resourcecache_data_file_202404)
+(typeattributeset netd_service_202404 (netd_service))
+(expandtypeattribute (netd_service_202404) true)
+(typeattribute netd_service_202404)
+(typeattributeset auth_service_202404 (auth_service))
+(expandtypeattribute (auth_service_202404) true)
+(typeattribute auth_service_202404)
+(typeattributeset postinstall_apex_mnt_dir_202404 (postinstall_apex_mnt_dir))
+(expandtypeattribute (postinstall_apex_mnt_dir_202404) true)
+(typeattribute postinstall_apex_mnt_dir_202404)
+(typeattributeset bpf_progs_loaded_prop_202404 (bpf_progs_loaded_prop))
+(expandtypeattribute (bpf_progs_loaded_prop_202404) true)
+(typeattribute bpf_progs_loaded_prop_202404)
+(typeattributeset apex_system_server_data_file_202404 (apex_system_server_data_file))
+(expandtypeattribute (apex_system_server_data_file_202404) true)
+(typeattribute apex_system_server_data_file_202404)
+(typeattributeset fwk_scheduler_hwservice_202404 (fwk_scheduler_hwservice))
+(expandtypeattribute (fwk_scheduler_hwservice_202404) true)
+(typeattribute fwk_scheduler_hwservice_202404)
+(typeattributeset fwk_altitude_service_202404 (fwk_altitude_service))
+(expandtypeattribute (fwk_altitude_service_202404) true)
+(typeattribute fwk_altitude_service_202404)
+(typeattributeset memtrackproxy_service_202404 (memtrackproxy_service))
+(expandtypeattribute (memtrackproxy_service_202404) true)
+(typeattribute memtrackproxy_service_202404)
+(typeattributeset sensor_privacy_service_202404 (sensor_privacy_service))
+(expandtypeattribute (sensor_privacy_service_202404) true)
+(typeattribute sensor_privacy_service_202404)
+(typeattributeset libc_debug_prop_202404 (libc_debug_prop))
+(expandtypeattribute (libc_debug_prop_202404) true)
+(typeattribute libc_debug_prop_202404)
+(typeattributeset power_debug_prop_202404 (power_debug_prop))
+(expandtypeattribute (power_debug_prop_202404) true)
+(typeattribute power_debug_prop_202404)
+(typeattributeset log_tag_prop_202404 (log_tag_prop))
+(expandtypeattribute (log_tag_prop_202404) true)
+(typeattribute log_tag_prop_202404)
+(typeattributeset bluetooth_a2dp_offload_prop_202404 (bluetooth_a2dp_offload_prop))
+(expandtypeattribute (bluetooth_a2dp_offload_prop_202404) true)
+(typeattribute bluetooth_a2dp_offload_prop_202404)
+(typeattributeset tombstone_data_file_202404 (tombstone_data_file))
+(expandtypeattribute (tombstone_data_file_202404) true)
+(typeattribute tombstone_data_file_202404)
+(typeattributeset audio_service_202404 (audio_service))
+(expandtypeattribute (audio_service_202404) true)
+(typeattribute audio_service_202404)
+(typeattributeset radio_service_202404 (radio_service))
+(expandtypeattribute (radio_service_202404) true)
+(typeattribute radio_service_202404)
+(typeattributeset unencrypted_data_file_202404 (unencrypted_data_file))
+(expandtypeattribute (unencrypted_data_file_202404) true)
+(typeattribute unencrypted_data_file_202404)
+(typeattributeset gsi_metadata_file_202404 (gsi_metadata_file))
+(expandtypeattribute (gsi_metadata_file_202404) true)
+(typeattribute gsi_metadata_file_202404)
+(typeattributeset ota_metadata_file_202404 (ota_metadata_file))
+(expandtypeattribute (ota_metadata_file_202404) true)
+(typeattribute ota_metadata_file_202404)
+(typeattributeset hal_audio_service_202404 (hal_audio_service))
+(expandtypeattribute (hal_audio_service_202404) true)
+(typeattribute hal_audio_service_202404)
+(typeattributeset hal_radio_service_202404 (hal_radio_service))
+(expandtypeattribute (hal_radio_service_202404) true)
+(typeattribute hal_radio_service_202404)
+(typeattributeset proc_vendor_sched_202404 (proc_vendor_sched))
+(expandtypeattribute (proc_vendor_sched_202404) true)
+(typeattribute proc_vendor_sched_202404)
+(typeattributeset mdns_service_202404 (mdns_service))
+(expandtypeattribute (mdns_service_202404) true)
+(typeattribute mdns_service_202404)
+(typeattributeset properties_device_202404 (properties_device))
+(expandtypeattribute (properties_device_202404) true)
+(typeattribute properties_device_202404)
+(typeattributeset ota_build_prop_202404 (ota_build_prop))
+(expandtypeattribute (ota_build_prop_202404) true)
+(typeattribute ota_build_prop_202404)
+(typeattributeset vibrator_service_202404 (vibrator_service))
+(expandtypeattribute (vibrator_service_202404) true)
+(typeattribute vibrator_service_202404)
+(typeattributeset metadata_file_202404 (metadata_file))
+(expandtypeattribute (metadata_file_202404) true)
+(typeattribute metadata_file_202404)
+(typeattributeset window_service_202404 (window_service))
+(expandtypeattribute (window_service_202404) true)
+(typeattribute window_service_202404)
+(typeattributeset device_config_boot_count_prop_202404 (device_config_boot_count_prop))
+(expandtypeattribute (device_config_boot_count_prop_202404) true)
+(typeattribute device_config_boot_count_prop_202404)
+(typeattributeset vendor_keylayout_file_202404 (vendor_keylayout_file))
+(expandtypeattribute (vendor_keylayout_file_202404) true)
+(typeattribute vendor_keylayout_file_202404)
+(typeattributeset ctl_apexd_prop_202404 (ctl_apexd_prop))
+(expandtypeattribute (ctl_apexd_prop_202404) true)
+(typeattribute ctl_apexd_prop_202404)
+(typeattributeset dnsresolver_service_202404 (dnsresolver_service))
+(expandtypeattribute (dnsresolver_service_202404) true)
+(typeattribute dnsresolver_service_202404)
+(typeattributeset update_engine_202404 (update_engine))
+(expandtypeattribute (update_engine_202404) true)
+(typeattribute update_engine_202404)
+(typeattributeset apex_module_data_file_202404 (apex_module_data_file))
+(expandtypeattribute (apex_module_data_file_202404) true)
+(typeattribute apex_module_data_file_202404)
+(typeattributeset mediaextractor_202404 (mediaextractor))
+(expandtypeattribute (mediaextractor_202404) true)
+(typeattribute mediaextractor_202404)
+(typeattributeset blkid_202404 (blkid))
+(expandtypeattribute (blkid_202404) true)
+(typeattribute blkid_202404)
+(typeattributeset properties_serial_202404 (properties_serial))
+(expandtypeattribute (properties_serial_202404) true)
+(typeattribute properties_serial_202404)
+(typeattributeset fwk_bufferhub_hwservice_202404 (fwk_bufferhub_hwservice))
+(expandtypeattribute (fwk_bufferhub_hwservice_202404) true)
+(typeattribute fwk_bufferhub_hwservice_202404)
+(typeattributeset game_mode_intervention_list_file_202404 (game_mode_intervention_list_file))
+(expandtypeattribute (game_mode_intervention_list_file_202404) true)
+(typeattribute game_mode_intervention_list_file_202404)
+(typeattributeset functionfs_202404 (functionfs))
+(expandtypeattribute (functionfs_202404) true)
+(typeattribute functionfs_202404)
+(typeattributeset lowpan_prop_202404 (lowpan_prop))
+(expandtypeattribute (lowpan_prop_202404) true)
+(typeattribute lowpan_prop_202404)
+(typeattributeset aconfig_storage_flags_metadata_file_202404 (aconfig_storage_flags_metadata_file))
+(expandtypeattribute (aconfig_storage_flags_metadata_file_202404) true)
+(typeattribute aconfig_storage_flags_metadata_file_202404)
+(typeattributeset rild_debug_socket_202404 (rild_debug_socket))
+(expandtypeattribute (rild_debug_socket_202404) true)
+(typeattribute rild_debug_socket_202404)
+(typeattributeset proc_watermark_boost_factor_202404 (proc_watermark_boost_factor))
+(expandtypeattribute (proc_watermark_boost_factor_202404) true)
+(typeattribute proc_watermark_boost_factor_202404)
+(typeattributeset surfaceflinger_service_202404 (surfaceflinger_service))
+(expandtypeattribute (surfaceflinger_service_202404) true)
+(typeattribute surfaceflinger_service_202404)
+(typeattributeset powerstats_service_202404 (powerstats_service))
+(expandtypeattribute (powerstats_service_202404) true)
+(typeattribute powerstats_service_202404)
+(typeattributeset appwidget_service_202404 (appwidget_service))
+(expandtypeattribute (appwidget_service_202404) true)
+(typeattribute appwidget_service_202404)
+(typeattributeset gatekeeper_data_file_202404 (gatekeeper_data_file))
+(expandtypeattribute (gatekeeper_data_file_202404) true)
+(typeattribute gatekeeper_data_file_202404)
+(typeattributeset locale_prop_202404 (locale_prop))
+(expandtypeattribute (locale_prop_202404) true)
+(typeattribute locale_prop_202404)
+(typeattributeset bootloader_prop_202404 (bootloader_prop))
+(expandtypeattribute (bootloader_prop_202404) true)
+(typeattribute bootloader_prop_202404)
+(typeattributeset simpleperf_app_runner_exec_202404 (simpleperf_app_runner_exec))
+(expandtypeattribute (simpleperf_app_runner_exec_202404) true)
+(typeattribute simpleperf_app_runner_exec_202404)
+(typeattributeset sysfs_lru_gen_enabled_202404 (sysfs_lru_gen_enabled))
+(expandtypeattribute (sysfs_lru_gen_enabled_202404) true)
+(typeattribute sysfs_lru_gen_enabled_202404)
+(typeattributeset launcherapps_service_202404 (launcherapps_service))
+(expandtypeattribute (launcherapps_service_202404) true)
+(typeattribute launcherapps_service_202404)
+(typeattributeset hal_power_service_202404 (hal_power_service))
+(expandtypeattribute (hal_power_service_202404) true)
+(typeattribute hal_power_service_202404)
+(typeattributeset hal_graphics_composer_server_tmpfs_202404 (hal_graphics_composer_server_tmpfs))
+(expandtypeattribute (hal_graphics_composer_server_tmpfs_202404) true)
+(typeattribute hal_graphics_composer_server_tmpfs_202404)
+(typeattributeset proc_misc_202404 (proc_misc))
+(expandtypeattribute (proc_misc_202404) true)
+(typeattribute proc_misc_202404)
+(typeattributeset virtual_camera_service_202404 (virtual_camera_service))
+(expandtypeattribute (virtual_camera_service_202404) true)
+(typeattribute virtual_camera_service_202404)
+(typeattributeset ashmem_libcutils_device_202404 (ashmem_libcutils_device))
+(expandtypeattribute (ashmem_libcutils_device_202404) true)
+(typeattribute ashmem_libcutils_device_202404)
+(typeattributeset mnt_user_file_202404 (mnt_user_file))
+(expandtypeattribute (mnt_user_file_202404) true)
+(typeattribute mnt_user_file_202404)
+(typeattributeset rs_exec_202404 (rs_exec))
+(expandtypeattribute (rs_exec_202404) true)
+(typeattribute rs_exec_202404)
+(typeattributeset su_exec_202404 (su_exec))
+(expandtypeattribute (su_exec_202404) true)
+(typeattribute su_exec_202404)
+(typeattributeset vdc_exec_202404 (vdc_exec))
+(expandtypeattribute (vdc_exec_202404) true)
+(typeattribute vdc_exec_202404)
+(typeattributeset net_data_file_202404 (net_data_file))
+(expandtypeattribute (net_data_file_202404) true)
+(typeattribute net_data_file_202404)
+(typeattributeset vold_data_file_202404 (vold_data_file))
+(expandtypeattribute (vold_data_file_202404) true)
+(typeattribute vold_data_file_202404)
+(typeattributeset tv_tuner_resource_mgr_service_202404 (tv_tuner_resource_mgr_service))
+(expandtypeattribute (tv_tuner_resource_mgr_service_202404) true)
+(typeattribute tv_tuner_resource_mgr_service_202404)
+(typeattributeset app_hibernation_service_202404 (app_hibernation_service))
+(expandtypeattribute (app_hibernation_service_202404) true)
+(typeattribute app_hibernation_service_202404)
+(typeattributeset dhcp_202404 (dhcp))
+(expandtypeattribute (dhcp_202404) true)
+(typeattribute dhcp_202404)
+(typeattributeset usbd_exec_202404 (usbd_exec))
+(expandtypeattribute (usbd_exec_202404) true)
+(typeattribute usbd_exec_202404)
+(typeattributeset app_zygote_202404 (app_zygote))
+(expandtypeattribute (app_zygote_202404) true)
+(typeattribute app_zygote_202404)
+(typeattributeset preloads_data_file_202404 (preloads_data_file))
+(expandtypeattribute (preloads_data_file_202404) true)
+(typeattribute preloads_data_file_202404)
+(typeattributeset vold_exec_202404 (vold_exec))
+(expandtypeattribute (vold_exec_202404) true)
+(typeattribute vold_exec_202404)
+(typeattributeset usagestats_service_202404 (usagestats_service))
+(expandtypeattribute (usagestats_service_202404) true)
+(typeattribute usagestats_service_202404)
+(typeattributeset proc_uid_cpupower_202404 (proc_uid_cpupower))
+(expandtypeattribute (proc_uid_cpupower_202404) true)
+(typeattribute proc_uid_cpupower_202404)
+(typeattributeset dhcp_exec_202404 (dhcp_exec))
+(expandtypeattribute (dhcp_exec_202404) true)
+(typeattribute dhcp_exec_202404)
+(typeattributeset fsck_exec_202404 (fsck_exec))
+(expandtypeattribute (fsck_exec_202404) true)
+(typeattribute fsck_exec_202404)
+(typeattributeset hal_tv_cec_hwservice_202404 (hal_tv_cec_hwservice))
+(expandtypeattribute (hal_tv_cec_hwservice_202404) true)
+(typeattribute hal_tv_cec_hwservice_202404)
+(typeattributeset adbd_exec_202404 (adbd_exec))
+(expandtypeattribute (adbd_exec_202404) true)
+(typeattribute adbd_exec_202404)
+(typeattributeset e2fs_exec_202404 (e2fs_exec))
+(expandtypeattribute (e2fs_exec_202404) true)
+(typeattribute e2fs_exec_202404)
+(typeattributeset packages_list_file_202404 (packages_list_file))
+(expandtypeattribute (packages_list_file_202404) true)
+(typeattribute packages_list_file_202404)
+(typeattributeset llkd_exec_202404 (llkd_exec))
+(expandtypeattribute (llkd_exec_202404) true)
+(typeattribute llkd_exec_202404)
+(typeattributeset lmkd_exec_202404 (lmkd_exec))
+(expandtypeattribute (lmkd_exec_202404) true)
+(typeattribute lmkd_exec_202404)
+(typeattributeset logd_exec_202404 (logd_exec))
+(expandtypeattribute (logd_exec_202404) true)
+(typeattribute logd_exec_202404)
+(typeattributeset netd_exec_202404 (netd_exec))
+(expandtypeattribute (netd_exec_202404) true)
+(typeattribute netd_exec_202404)
+(typeattributeset sgdisk_202404 (sgdisk))
+(expandtypeattribute (sgdisk_202404) true)
+(typeattribute sgdisk_202404)
+(typeattributeset init_exec_202404 (init_exec))
+(expandtypeattribute (init_exec_202404) true)
+(typeattribute init_exec_202404)
+(typeattributeset media_router_service_202404 (media_router_service))
+(expandtypeattribute (media_router_service_202404) true)
+(typeattribute media_router_service_202404)
+(typeattributeset stats_config_data_file_202404 (stats_config_data_file))
+(expandtypeattribute (stats_config_data_file_202404) true)
+(typeattribute stats_config_data_file_202404)
+(typeattributeset batteryproperties_service_202404 (batteryproperties_service))
+(expandtypeattribute (batteryproperties_service_202404) true)
+(typeattribute batteryproperties_service_202404)
+(typeattributeset storaged_service_202404 (storaged_service))
+(expandtypeattribute (storaged_service_202404) true)
+(typeattribute storaged_service_202404)
+(typeattributeset system_userdir_file_202404 (system_userdir_file))
+(expandtypeattribute (system_userdir_file_202404) true)
+(typeattribute system_userdir_file_202404)
+(typeattributeset selinuxfs_202404 (selinuxfs))
+(expandtypeattribute (selinuxfs_202404) true)
+(typeattribute selinuxfs_202404)
+(typeattributeset sysfs_thermal_202404 (sysfs_thermal))
+(expandtypeattribute (sysfs_thermal_202404) true)
+(typeattribute sysfs_thermal_202404)
+(typeattributeset system_app_service_202404 (system_app_service))
+(expandtypeattribute (system_app_service_202404) true)
+(typeattribute system_app_service_202404)
+(typeattributeset exported_config_prop_202404 (exported_config_prop))
+(expandtypeattribute (exported_config_prop_202404) true)
+(typeattribute exported_config_prop_202404)
+(typeattributeset fuse_device_202404 (fuse_device))
+(expandtypeattribute (fuse_device_202404) true)
+(typeattribute fuse_device_202404)
+(typeattributeset power_service_202404 (power_service))
+(expandtypeattribute (power_service_202404) true)
+(typeattribute power_service_202404)
+(typeattributeset uncrypt_202404 (uncrypt))
+(expandtypeattribute (uncrypt_202404) true)
+(typeattribute uncrypt_202404)
+(typeattributeset statsdw_socket_202404 (statsdw_socket))
+(expandtypeattribute (statsdw_socket_202404) true)
+(typeattribute statsdw_socket_202404)
+(typeattributeset system_jvmti_agent_prop_202404 (system_jvmti_agent_prop))
+(expandtypeattribute (system_jvmti_agent_prop_202404) true)
+(typeattribute system_jvmti_agent_prop_202404)
+(typeattributeset proc_mounts_202404 (proc_mounts))
+(expandtypeattribute (proc_mounts_202404) true)
+(typeattribute proc_mounts_202404)
+(typeattributeset pdx_display_client_channel_socket_202404 (pdx_display_client_channel_socket))
+(expandtypeattribute (pdx_display_client_channel_socket_202404) true)
+(typeattribute pdx_display_client_channel_socket_202404)
+(typeattributeset content_capture_service_202404 (content_capture_service))
+(expandtypeattribute (content_capture_service_202404) true)
+(typeattribute content_capture_service_202404)
+(typeattributeset secure_element_service_202404 (secure_element_service))
+(expandtypeattribute (secure_element_service_202404) true)
+(typeattribute secure_element_service_202404)
+(typeattributeset snapuserd_proxy_socket_202404 (snapuserd_proxy_socket))
+(expandtypeattribute (snapuserd_proxy_socket_202404) true)
+(typeattribute snapuserd_proxy_socket_202404)
+(typeattributeset vehicle_hal_prop_202404 (vehicle_hal_prop))
+(expandtypeattribute (vehicle_hal_prop_202404) true)
+(typeattribute vehicle_hal_prop_202404)
+(typeattributeset system_passwd_file_202404 (system_passwd_file))
+(expandtypeattribute (system_passwd_file_202404) true)
+(typeattribute system_passwd_file_202404)
+(typeattributeset debugfs_tracing_202404 (debugfs_tracing))
+(expandtypeattribute (debugfs_tracing_202404) true)
+(typeattribute debugfs_tracing_202404)
+(typeattributeset exported_camera_prop_202404 (exported_camera_prop))
+(expandtypeattribute (exported_camera_prop_202404) true)
+(typeattribute exported_camera_prop_202404)
+(typeattributeset build_odm_prop_202404 (build_odm_prop))
+(expandtypeattribute (build_odm_prop_202404) true)
+(typeattribute build_odm_prop_202404)
+(typeattributeset proc_buddyinfo_202404 (proc_buddyinfo))
+(expandtypeattribute (proc_buddyinfo_202404) true)
+(typeattribute proc_buddyinfo_202404)
+(typeattributeset gsi_public_metadata_file_202404 (gsi_public_metadata_file))
+(expandtypeattribute (gsi_public_metadata_file_202404) true)
+(typeattribute gsi_public_metadata_file_202404)
+(typeattributeset ot_daemon_socket_202404 (ot_daemon_socket))
+(expandtypeattribute (ot_daemon_socket_202404) true)
+(typeattribute ot_daemon_socket_202404)
+(typeattributeset keystore_maintenance_service_202404 (keystore_maintenance_service))
+(expandtypeattribute (keystore_maintenance_service_202404) true)
+(typeattribute keystore_maintenance_service_202404)
+(typeattributeset artd_pre_reboot_service_202404 (artd_pre_reboot_service))
+(expandtypeattribute (artd_pre_reboot_service_202404) true)
+(typeattribute artd_pre_reboot_service_202404)
+(typeattributeset cloudsearch_service_202404 (cloudsearch_service))
+(expandtypeattribute (cloudsearch_service_202404) true)
+(typeattribute cloudsearch_service_202404)
+(typeattributeset light_service_202404 (light_service))
+(expandtypeattribute (light_service_202404) true)
+(typeattribute light_service_202404)
+(typeattributeset surfaceflinger_color_prop_202404 (surfaceflinger_color_prop))
+(expandtypeattribute (surfaceflinger_color_prop_202404) true)
+(typeattribute surfaceflinger_color_prop_202404)
+(typeattributeset sysfs_zram_uevent_202404 (sysfs_zram_uevent))
+(expandtypeattribute (sysfs_zram_uevent_202404) true)
+(typeattribute sysfs_zram_uevent_202404)
+(typeattributeset hal_remoteaccess_service_202404 (hal_remoteaccess_service))
+(expandtypeattribute (hal_remoteaccess_service_202404) true)
+(typeattribute hal_remoteaccess_service_202404)
+(typeattributeset fingerprint_vendor_data_file_202404 (fingerprint_vendor_data_file))
+(expandtypeattribute (fingerprint_vendor_data_file_202404) true)
+(typeattribute fingerprint_vendor_data_file_202404)
+(typeattributeset proc_modules_202404 (proc_modules))
+(expandtypeattribute (proc_modules_202404) true)
+(typeattribute proc_modules_202404)
+(typeattributeset proc_pressure_io_202404 (proc_pressure_io))
+(expandtypeattribute (proc_pressure_io_202404) true)
+(typeattribute proc_pressure_io_202404)
+(typeattributeset userdebug_or_eng_prop_202404 (userdebug_or_eng_prop))
+(expandtypeattribute (userdebug_or_eng_prop_202404) true)
+(typeattribute userdebug_or_eng_prop_202404)
+(typeattributeset virtual_touchpad_service_202404 (virtual_touchpad_service))
+(expandtypeattribute (virtual_touchpad_service_202404) true)
+(typeattribute virtual_touchpad_service_202404)
+(typeattributeset hal_keymint_service_202404 (hal_keymint_service))
+(expandtypeattribute (hal_keymint_service_202404) true)
+(typeattribute hal_keymint_service_202404)
+(typeattributeset gnss_device_202404 (gnss_device))
+(expandtypeattribute (gnss_device_202404) true)
+(typeattribute gnss_device_202404)
+(typeattributeset vendor_misc_writer_202404 (vendor_misc_writer))
+(expandtypeattribute (vendor_misc_writer_202404) true)
+(typeattribute vendor_misc_writer_202404)
+(typeattributeset proc_kpageflags_202404 (proc_kpageflags))
+(expandtypeattribute (proc_kpageflags_202404) true)
+(typeattribute proc_kpageflags_202404)
+(typeattributeset wificond_exec_202404 (wificond_exec))
+(expandtypeattribute (wificond_exec_202404) true)
+(typeattribute wificond_exec_202404)
+(typeattributeset hal_light_service_202404 (hal_light_service))
+(expandtypeattribute (hal_light_service_202404) true)
+(typeattribute hal_light_service_202404)
+(typeattributeset proc_interrupts_202404 (proc_interrupts))
+(expandtypeattribute (proc_interrupts_202404) true)
+(typeattribute proc_interrupts_202404)
+(typeattributeset sysfs_loop_202404 (sysfs_loop))
+(expandtypeattribute (sysfs_loop_202404) true)
+(typeattribute sysfs_loop_202404)
+(typeattributeset proc_percpu_pagelist_high_fraction_202404 (proc_percpu_pagelist_high_fraction))
+(expandtypeattribute (proc_percpu_pagelist_high_fraction_202404) true)
+(typeattribute proc_percpu_pagelist_high_fraction_202404)
+(typeattributeset exported_secure_prop_202404 (exported_secure_prop))
+(expandtypeattribute (exported_secure_prop_202404) true)
+(typeattribute exported_secure_prop_202404)
+(typeattributeset proc_hostname_202404 (proc_hostname))
+(expandtypeattribute (proc_hostname_202404) true)
+(typeattribute proc_hostname_202404)
+(typeattributeset hal_bluetooth_service_202404 (hal_bluetooth_service))
+(expandtypeattribute (hal_bluetooth_service_202404) true)
+(typeattribute hal_bluetooth_service_202404)
+(typeattributeset pdx_bufferhub_client_channel_socket_202404 (pdx_bufferhub_client_channel_socket))
+(expandtypeattribute (pdx_bufferhub_client_channel_socket_202404) true)
+(typeattribute pdx_bufferhub_client_channel_socket_202404)
+(typeattributeset hal_gatekeeper_hwservice_202404 (hal_gatekeeper_hwservice))
+(expandtypeattribute (hal_gatekeeper_hwservice_202404) true)
+(typeattribute hal_gatekeeper_hwservice_202404)
+(typeattributeset slideshow_202404 (slideshow))
+(expandtypeattribute (slideshow_202404) true)
+(typeattribute slideshow_202404)
+(typeattributeset sdk_sandbox_service_202404 (sdk_sandbox_service))
+(expandtypeattribute (sdk_sandbox_service_202404) true)
+(typeattribute sdk_sandbox_service_202404)
+(typeattributeset texttospeech_service_202404 (texttospeech_service))
+(expandtypeattribute (texttospeech_service_202404) true)
+(typeattribute texttospeech_service_202404)
+(typeattributeset vendor_task_profiles_file_202404 (vendor_task_profiles_file))
+(expandtypeattribute (vendor_task_profiles_file_202404) true)
+(typeattribute vendor_task_profiles_file_202404)
+(typeattributeset system_net_netd_service_202404 (system_net_netd_service))
+(expandtypeattribute (system_net_netd_service_202404) true)
+(typeattribute system_net_netd_service_202404)
+(typeattributeset hal_wifi_supplicant_service_202404 (hal_wifi_supplicant_service))
+(expandtypeattribute (hal_wifi_supplicant_service_202404) true)
+(typeattribute hal_wifi_supplicant_service_202404)
+(typeattributeset proc_pipe_conf_202404 (proc_pipe_conf))
+(expandtypeattribute (proc_pipe_conf_202404) true)
+(typeattribute proc_pipe_conf_202404)
+(typeattributeset evsmanagerd_service_202404 (evsmanagerd_service))
+(expandtypeattribute (evsmanagerd_service_202404) true)
+(typeattribute evsmanagerd_service_202404)
+(typeattributeset mediaswcodec_exec_202404 (mediaswcodec_exec))
+(expandtypeattribute (mediaswcodec_exec_202404) true)
+(typeattribute mediaswcodec_exec_202404)
+(typeattributeset system_data_root_file_202404 (system_data_root_file))
+(expandtypeattribute (system_data_root_file_202404) true)
+(typeattribute system_data_root_file_202404)
+(typeattributeset sysfs_sync_on_suspend_202404 (sysfs_sync_on_suspend))
+(expandtypeattribute (sysfs_sync_on_suspend_202404) true)
+(typeattribute sysfs_sync_on_suspend_202404)
+(typeattributeset exported_system_prop_202404 (exported_system_prop))
+(expandtypeattribute (exported_system_prop_202404) true)
+(typeattribute exported_system_prop_202404)
+(typeattributeset graphicsstats_service_202404 (graphicsstats_service))
+(expandtypeattribute (graphicsstats_service_202404) true)
+(typeattribute graphicsstats_service_202404)
+(typeattributeset drmserver_service_202404 (drmserver_service))
+(expandtypeattribute (drmserver_service_202404) true)
+(typeattribute drmserver_service_202404)
+(typeattributeset fingerprintd_data_file_202404 (fingerprintd_data_file))
+(expandtypeattribute (fingerprintd_data_file_202404) true)
+(typeattribute fingerprintd_data_file_202404)
+(typeattributeset inotify_202404 (inotify))
+(expandtypeattribute (inotify_202404) true)
+(typeattribute inotify_202404)
+(typeattributeset device_config_vendor_system_native_boot_prop_202404 (device_config_vendor_system_native_boot_prop))
+(expandtypeattribute (device_config_vendor_system_native_boot_prop_202404) true)
+(typeattribute device_config_vendor_system_native_boot_prop_202404)
+(typeattributeset tombstoned_202404 (tombstoned))
+(expandtypeattribute (tombstoned_202404) true)
+(typeattribute tombstoned_202404)
+(typeattributeset pdx_display_vsync_channel_socket_202404 (pdx_display_vsync_channel_socket))
+(expandtypeattribute (pdx_display_vsync_channel_socket_202404) true)
+(typeattribute pdx_display_vsync_channel_socket_202404)
+(typeattributeset gpu_service_202404 (gpu_service))
+(expandtypeattribute (gpu_service_202404) true)
+(typeattribute gpu_service_202404)
+(typeattributeset vd_device_202404 (vd_device))
+(expandtypeattribute (vd_device_202404) true)
+(typeattribute vd_device_202404)
+(typeattributeset hal_gnss_hwservice_202404 (hal_gnss_hwservice))
+(expandtypeattribute (hal_gnss_hwservice_202404) true)
+(typeattribute hal_gnss_hwservice_202404)
+(typeattributeset bt_device_202404 (bt_device))
+(expandtypeattribute (bt_device_202404) true)
+(typeattribute bt_device_202404)
+(typeattributeset sysfs_bluetooth_writable_202404 (sysfs_bluetooth_writable))
+(expandtypeattribute (sysfs_bluetooth_writable_202404) true)
+(typeattribute sysfs_bluetooth_writable_202404)
+(typeattributeset lowpan_device_202404 (lowpan_device))
+(expandtypeattribute (lowpan_device_202404) true)
+(typeattribute lowpan_device_202404)
+(typeattributeset proc_bluetooth_writable_202404 (proc_bluetooth_writable))
+(expandtypeattribute (proc_bluetooth_writable_202404) true)
+(typeattribute proc_bluetooth_writable_202404)
+(typeattributeset dm_device_202404 (dm_device))
+(expandtypeattribute (dm_device_202404) true)
+(typeattribute dm_device_202404)
+(typeattributeset tee_data_file_202404 (tee_data_file))
+(expandtypeattribute (tee_data_file_202404) true)
+(typeattribute tee_data_file_202404)
+(typeattributeset testharness_service_202404 (testharness_service))
+(expandtypeattribute (testharness_service_202404) true)
+(typeattribute testharness_service_202404)
+(typeattributeset trace_data_file_202404 (trace_data_file))
+(expandtypeattribute (trace_data_file_202404) true)
+(typeattribute trace_data_file_202404)
+(typeattributeset default_android_hwservice_202404 (default_android_hwservice))
+(expandtypeattribute (default_android_hwservice_202404) true)
+(typeattribute default_android_hwservice_202404)
+(typeattributeset dumpstate_socket_202404 (dumpstate_socket))
+(expandtypeattribute (dumpstate_socket_202404) true)
+(typeattribute dumpstate_socket_202404)
+(typeattributeset pdx_display_vsync_endpoint_socket_202404 (pdx_display_vsync_endpoint_socket))
+(expandtypeattribute (pdx_display_vsync_endpoint_socket_202404) true)
+(typeattribute pdx_display_vsync_endpoint_socket_202404)
+(typeattributeset hal_thermal_hwservice_202404 (hal_thermal_hwservice))
+(expandtypeattribute (hal_thermal_hwservice_202404) true)
+(typeattribute hal_thermal_hwservice_202404)
+(typeattributeset cache_recovery_file_202404 (cache_recovery_file))
+(expandtypeattribute (cache_recovery_file_202404) true)
+(typeattribute cache_recovery_file_202404)
+(typeattributeset batterystats_service_202404 (batterystats_service))
+(expandtypeattribute (batterystats_service_202404) true)
+(typeattribute batterystats_service_202404)
+(typeattributeset mediadrmserver_202404 (mediadrmserver))
+(expandtypeattribute (mediadrmserver_202404) true)
+(typeattribute mediadrmserver_202404)
+(typeattributeset device_config_service_202404 (device_config_service))
+(expandtypeattribute (device_config_service_202404) true)
+(typeattribute device_config_service_202404)
+(typeattributeset hal_weaver_hwservice_202404 (hal_weaver_hwservice))
+(expandtypeattribute (hal_weaver_hwservice_202404) true)
+(typeattribute hal_weaver_hwservice_202404)
+(typeattributeset vrflinger_vsync_service_202404 (vrflinger_vsync_service))
+(expandtypeattribute (vrflinger_vsync_service_202404) true)
+(typeattribute vrflinger_vsync_service_202404)
+(typeattributeset hal_codec2_hwservice_202404 (hal_codec2_hwservice))
+(expandtypeattribute (hal_codec2_hwservice_202404) true)
+(typeattribute hal_codec2_hwservice_202404)
+(typeattributeset device_202404 (device))
+(expandtypeattribute (device_202404) true)
+(typeattribute device_202404)
+(typeattributeset storage_stub_file_202404 (storage_stub_file))
+(expandtypeattribute (storage_stub_file_202404) true)
+(typeattribute storage_stub_file_202404)
+(typeattributeset ublk_control_device_202404 (ublk_control_device))
+(expandtypeattribute (ublk_control_device_202404) true)
+(typeattribute ublk_control_device_202404)
+(typeattributeset sysfs_nfc_power_writable_202404 (sysfs_nfc_power_writable))
+(expandtypeattribute (sysfs_nfc_power_writable_202404) true)
+(typeattribute sysfs_nfc_power_writable_202404)
+(typeattributeset vfio_device_202404 (vfio_device))
+(expandtypeattribute (vfio_device_202404) true)
+(typeattribute vfio_device_202404)
+(typeattributeset voiceinteraction_service_202404 (voiceinteraction_service))
+(expandtypeattribute (voiceinteraction_service_202404) true)
+(typeattribute voiceinteraction_service_202404)
+(typeattributeset hal_bootctl_hwservice_202404 (hal_bootctl_hwservice))
+(expandtypeattribute (hal_bootctl_hwservice_202404) true)
+(typeattribute hal_bootctl_hwservice_202404)
+(typeattributeset smartspace_service_202404 (smartspace_service))
+(expandtypeattribute (smartspace_service_202404) true)
+(typeattribute smartspace_service_202404)
+(typeattributeset gatekeeper_service_202404 (gatekeeper_service))
+(expandtypeattribute (gatekeeper_service_202404) true)
+(typeattribute gatekeeper_service_202404)
+(typeattributeset device_config_runtime_native_boot_prop_202404 (device_config_runtime_native_boot_prop))
+(expandtypeattribute (device_config_runtime_native_boot_prop_202404) true)
+(typeattribute device_config_runtime_native_boot_prop_202404)
+(typeattributeset snapuserd_log_data_file_202404 (snapuserd_log_data_file))
+(expandtypeattribute (snapuserd_log_data_file_202404) true)
+(typeattribute snapuserd_log_data_file_202404)
+(typeattributeset hidl_allocator_hwservice_202404 (hidl_allocator_hwservice))
+(expandtypeattribute (hidl_allocator_hwservice_202404) true)
+(typeattribute hidl_allocator_hwservice_202404)
+(typeattributeset proc_pagetypeinfo_202404 (proc_pagetypeinfo))
+(expandtypeattribute (proc_pagetypeinfo_202404) true)
+(typeattribute proc_pagetypeinfo_202404)
+(typeattributeset qtaguid_device_202404 (qtaguid_device))
+(expandtypeattribute (qtaguid_device_202404) true)
+(typeattribute qtaguid_device_202404)
+(typeattributeset crossprofileapps_service_202404 (crossprofileapps_service))
+(expandtypeattribute (crossprofileapps_service_202404) true)
+(typeattribute crossprofileapps_service_202404)
+(typeattributeset proc_pressure_mem_202404 (proc_pressure_mem))
+(expandtypeattribute (proc_pressure_mem_202404) true)
+(typeattribute proc_pressure_mem_202404)
+(typeattributeset property_socket_202404 (property_socket))
+(expandtypeattribute (property_socket_202404) true)
+(typeattribute property_socket_202404)
+(typeattributeset traced_oome_heap_session_count_prop_202404 (traced_oome_heap_session_count_prop))
+(expandtypeattribute (traced_oome_heap_session_count_prop_202404) true)
+(typeattribute traced_oome_heap_session_count_prop_202404)
+(typeattributeset wifinl80211_service_202404 (wifinl80211_service))
+(expandtypeattribute (wifinl80211_service_202404) true)
+(typeattribute wifinl80211_service_202404)
+(typeattributeset proc_panic_202404 (proc_panic))
+(expandtypeattribute (proc_panic_202404) true)
+(typeattribute proc_panic_202404)
+(typeattributeset hal_memtrack_service_202404 (hal_memtrack_service))
+(expandtypeattribute (hal_memtrack_service_202404) true)
+(typeattribute hal_memtrack_service_202404)
+(typeattributeset mnt_vendor_file_202404 (mnt_vendor_file))
+(expandtypeattribute (mnt_vendor_file_202404) true)
+(typeattribute mnt_vendor_file_202404)
+(typeattributeset vendor_file_202404 (vendor_file))
+(expandtypeattribute (vendor_file_202404) true)
+(typeattribute vendor_file_202404)
+(typeattributeset efs_file_202404 (efs_file))
+(expandtypeattribute (efs_file_202404) true)
+(typeattribute efs_file_202404)
+(typeattributeset appdomain_tmpfs_202404 (appdomain_tmpfs))
+(expandtypeattribute (appdomain_tmpfs_202404) true)
+(typeattribute appdomain_tmpfs_202404)
+(typeattributeset hal_instrumentation_prop_202404 (hal_instrumentation_prop))
+(expandtypeattribute (hal_instrumentation_prop_202404) true)
+(typeattribute hal_instrumentation_prop_202404)
+(typeattributeset timezone_prop_202404 (timezone_prop))
+(expandtypeattribute (timezone_prop_202404) true)
+(typeattribute timezone_prop_202404)
+(typeattributeset device_logging_prop_202404 (device_logging_prop))
+(expandtypeattribute (device_logging_prop_202404) true)
+(typeattribute device_logging_prop_202404)
+(typeattributeset mdnsd_socket_202404 (mdnsd_socket))
+(expandtypeattribute (mdnsd_socket_202404) true)
+(typeattribute mdnsd_socket_202404)
+(typeattributeset traced_enabled_prop_202404 (traced_enabled_prop))
+(expandtypeattribute (traced_enabled_prop_202404) true)
+(typeattribute traced_enabled_prop_202404)
+(typeattributeset nfc_logs_data_file_202404 (nfc_logs_data_file))
+(expandtypeattribute (nfc_logs_data_file_202404) true)
+(typeattribute nfc_logs_data_file_202404)
+(typeattributeset hal_audiocontrol_hwservice_202404 (hal_audiocontrol_hwservice))
+(expandtypeattribute (hal_audiocontrol_hwservice_202404) true)
+(typeattribute hal_audiocontrol_hwservice_202404)
+(typeattributeset vendor_overlay_file_202404 (vendor_overlay_file))
+(expandtypeattribute (vendor_overlay_file_202404) true)
+(typeattribute vendor_overlay_file_202404)
+(typeattributeset color_display_service_202404 (color_display_service))
+(expandtypeattribute (color_display_service_202404) true)
+(typeattribute color_display_service_202404)
+(typeattributeset incremental_prop_202404 (incremental_prop))
+(expandtypeattribute (incremental_prop_202404) true)
+(typeattribute incremental_prop_202404)
+(typeattributeset icon_file_202404 (icon_file))
+(expandtypeattribute (icon_file_202404) true)
+(typeattribute icon_file_202404)
+(typeattributeset vold_device_202404 (vold_device))
+(expandtypeattribute (vold_device_202404) true)
+(typeattribute vold_device_202404)
+(typeattributeset sysfs_wake_lock_202404 (sysfs_wake_lock))
+(expandtypeattribute (sysfs_wake_lock_202404) true)
+(typeattribute sysfs_wake_lock_202404)
+(typeattributeset arm64_memtag_prop_202404 (arm64_memtag_prop))
+(expandtypeattribute (arm64_memtag_prop_202404) true)
+(typeattribute arm64_memtag_prop_202404)
+(typeattributeset hal_power_stats_service_202404 (hal_power_stats_service))
+(expandtypeattribute (hal_power_stats_service_202404) true)
+(typeattribute hal_power_stats_service_202404)
+(typeattributeset sysfs_ion_202404 (sysfs_ion))
+(expandtypeattribute (sysfs_ion_202404) true)
+(typeattribute sysfs_ion_202404)
+(typeattributeset hal_tv_input_service_202404 (hal_tv_input_service))
+(expandtypeattribute (hal_tv_input_service_202404) true)
+(typeattribute hal_tv_input_service_202404)
+(typeattributeset network_watchlist_service_202404 (network_watchlist_service))
+(expandtypeattribute (network_watchlist_service_202404) true)
+(typeattribute network_watchlist_service_202404)
+(typeattributeset proc_pid_max_202404 (proc_pid_max))
+(expandtypeattribute (proc_pid_max_202404) true)
+(typeattribute proc_pid_max_202404)
diff --git a/prebuilts/api/202404/202404_plat_sepolicy.cil b/prebuilts/api/202404/202404_plat_sepolicy.cil
new file mode 100644
index 0000000..15baedc
--- /dev/null
+++ b/prebuilts/api/202404/202404_plat_sepolicy.cil
@@ -0,0 +1,33418 @@
+(role object_r)
+(role auditadm_r)
+(role secadm_r)
+(typeattribute cil_gen_require)
+(roleattribute cil_gen_require)
+(handleunknown deny)
+(mls true)
+(policycap network_peer_controls)
+(policycap open_perms)
+(policycap extended_socket_class)
+(policycap nnp_nosuid_transition)
+(sid devnull)
+(sidcontext devnull (u object_r null_device ((s0) (s0))))
+(sid scmp_packet)
+(sidcontext scmp_packet (u object_r unlabeled ((s0) (s0))))
+(sid policy)
+(sidcontext policy (u object_r unlabeled ((s0) (s0))))
+(sid kmod)
+(sidcontext kmod (u object_r unlabeled ((s0) (s0))))
+(sid sysctl_dev)
+(sidcontext sysctl_dev (u object_r unlabeled ((s0) (s0))))
+(sid sysctl_vm)
+(sidcontext sysctl_vm (u object_r unlabeled ((s0) (s0))))
+(sid sysctl_net_unix)
+(sidcontext sysctl_net_unix (u object_r unlabeled ((s0) (s0))))
+(sid sysctl_net)
+(sidcontext sysctl_net (u object_r unlabeled ((s0) (s0))))
+(sid sysctl_kernel)
+(sidcontext sysctl_kernel (u object_r unlabeled ((s0) (s0))))
+(sid sysctl_fs)
+(sidcontext sysctl_fs (u object_r unlabeled ((s0) (s0))))
+(sid sysctl)
+(sidcontext sysctl (u object_r proc ((s0) (s0))))
+(sid sysctl_modprobe)
+(sidcontext sysctl_modprobe (u object_r unlabeled ((s0) (s0))))
+(sid tcp_socket)
+(sidcontext tcp_socket (u object_r unlabeled ((s0) (s0))))
+(sid icmp_socket)
+(sidcontext icmp_socket (u object_r unlabeled ((s0) (s0))))
+(sid igmp_packet)
+(sidcontext igmp_packet (u object_r unlabeled ((s0) (s0))))
+(sid node)
+(sidcontext node (u object_r node ((s0) (s0))))
+(sid netmsg)
+(sidcontext netmsg (u object_r unlabeled ((s0) (s0))))
+(sid netif)
+(sidcontext netif (u object_r netif ((s0) (s0))))
+(sid port)
+(sidcontext port (u object_r port ((s0) (s0))))
+(sid any_socket)
+(sidcontext any_socket (u object_r unlabeled ((s0) (s0))))
+(sid init)
+(sidcontext init (u object_r unlabeled ((s0) (s0))))
+(sid file_labels)
+(sidcontext file_labels (u object_r unlabeled ((s0) (s0))))
+(sid file)
+(sidcontext file (u object_r unlabeled ((s0) (s0))))
+(sid fs)
+(sidcontext fs (u object_r labeledfs ((s0) (s0))))
+(sid unlabeled)
+(sidcontext unlabeled (u object_r unlabeled ((s0) (s0))))
+(sid security)
+(sidcontext security (u object_r kernel ((s0) (s0))))
+(sid kernel)
+(sidcontext kernel (u r kernel ((s0) (s0))))
+(sidorder (kernel security unlabeled fs file file_labels init any_socket port netif netmsg node igmp_packet icmp_socket tcp_socket sysctl_modprobe sysctl sysctl_fs sysctl_kernel sysctl_net sysctl_net_unix sysctl_vm sysctl_dev kmod policy scmp_packet devnull ))
+(fsuse trans mqueue (u object_r mqueue ((s0) (s0))))
+(fsuse trans shm (u object_r shm ((s0) (s0))))
+(fsuse trans devtmpfs (u object_r device ((s0) (s0))))
+(fsuse trans tmpfs (u object_r tmpfs ((s0) (s0))))
+(fsuse trans devpts (u object_r devpts ((s0) (s0))))
+(fsuse task sockfs (u object_r sockfs ((s0) (s0))))
+(fsuse task pipefs (u object_r pipefs ((s0) (s0))))
+(fsuse xattr virtiofs (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr incremental-fs (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr erofs (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr overlay (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr squashfs (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr f2fs (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr btrfs (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr xfs (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr ext4 (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr ext3 (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr ext2 (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr jffs2 (u object_r labeledfs ((s0) (s0))))
+(fsuse xattr yaffs2 (u object_r labeledfs ((s0) (s0))))
+(genfscon binder "/binder_logs/stats" (u object_r binderfs_logs_stats ((s0) (s0))))
+(genfscon binder "/binder_logs/proc" (u object_r binderfs_logs_proc ((s0) (s0))))
+(genfscon binder "/binder_logs" (u object_r binderfs_logs ((s0) (s0))))
+(genfscon binder "/vndbinder" (u object_r vndbinder_device ((s0) (s0))))
+(genfscon binder "/hwbinder" (u object_r hwbinder_device ((s0) (s0))))
+(genfscon binder "/features" (u object_r binderfs_features ((s0) (s0))))
+(genfscon binder "/binder" (u object_r binder_device ((s0) (s0))))
+(genfscon binder "/" (u object_r binderfs ((s0) (s0))))
+(genfscon binfmt_misc "/" (u object_r binfmt_miscfs ((s0) (s0))))
+(genfscon bpf "/netd_readonly" (u object_r fs_bpf_netd_readonly ((s0) (s0))))
+(genfscon bpf "/net_private" (u object_r fs_bpf_net_private ((s0) (s0))))
+(genfscon bpf "/netd_shared" (u object_r fs_bpf_netd_shared ((s0) (s0))))
+(genfscon bpf "/uprobestats" (u object_r fs_bpf_uprobestats ((s0) (s0))))
+(genfscon bpf "/net_shared" (u object_r fs_bpf_net_shared ((s0) (s0))))
+(genfscon bpf "/tethering" (u object_r fs_bpf_tethering ((s0) (s0))))
+(genfscon bpf "/loader" (u object_r fs_bpf_loader ((s0) (s0))))
+(genfscon bpf "/vendor" (u object_r fs_bpf_vendor ((s0) (s0))))
+(genfscon bpf "/" (u object_r fs_bpf ((s0) (s0))))
+(genfscon cgroup "/" (u object_r cgroup ((s0) (s0))))
+(genfscon cgroup2 "/" (u object_r cgroup_v2 ((s0) (s0))))
+(genfscon configfs "/" (u object_r configfs ((s0) (s0))))
+(genfscon debugfs "/tracing/events/filemap/mm_filemap_delete_from_page_cache/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/vmscan/mm_vmscan_direct_reclaim_begin/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/filemap/mm_filemap_add_to_page_cache/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/vmscan/mm_vmscan_direct_reclaim_end/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_transaction_alloc_buf/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_transaction_received/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ext4/ext4_es_lookup_extent_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ext4/ext4_es_lookup_extent_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/synthetic/suspend_resume_minimal" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/vmscan/mm_vmscan_kswapd_sleep/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/vmscan/mm_vmscan_kswapd_wake/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/synthetic/rss_stat_throttled" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/thermal/thermal_temperature/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_blocked_reason/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/cpu_frequency_limits/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_set_priority/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/f2fs/f2fs_sync_file_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ext4/ext4_sync_file_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_transaction/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/f2fs/f2fs_get_data_block/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/f2fs/f2fs_sync_file_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ext4/ext4_da_write_begin/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ext4/ext4_sync_file_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_process_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_process_free/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/mm_event/mm_event_record/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/oom/oom_score_adj_update/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/block/block_rq_complete/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_cpu_hotplug/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ext4/ext4_da_write_end/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_wakeup_new/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_pi_setprio/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/f2fs/f2fs_write_begin/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/gpu_work_period/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_command/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ext4/ext4_load_inode/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/block/block_rq_issue/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/clock_set_rate/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/suspend_resume/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_locked/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_unlock/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_return/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/kmem/ion_heap_shrink/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/gpu_mem/gpu_mem_total" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/f2fs/f2fs_write_end/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/cpu_frequency/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/clock_disable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/gpu_frequency/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/cpufreq_interactive/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/thermal/cdev_update/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_switch/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_wakeup/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sched/sched_waking/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/clock_enable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/binder/binder_lock/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/kmem/ion_heap_grow/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/task/task_newtask/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/cpuhp/cpuhp_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/task/task_rename/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/cpuhp/cpuhp_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/clk/clk_set_rate/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/lowmemorykiller/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/oom/mark_victim/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/clk/clk_disable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/instances/bootreceiver" (u object_r debugfs_bootreceiver_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/f2fs/f2fs_iget/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/power/cpu_idle/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/clk/clk_enable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/kmem/rss_stat/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ion/ion_stat/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ftrace/print/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/instances/mm_events" (u object_r debugfs_mm_events_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/options/record-tgid" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/saved_cmdlines_size" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/header_page" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/options/print-tgid" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/options/overwrite" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/dma_fence/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/synthetic_events" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/instances/wifi" (u object_r debugfs_wifi_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/printk_formats" (u object_r debugfs_tracing_printk_formats ((s0) (s0))))
+(genfscon debugfs "/tracing/buffer_size_kb" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/cgroup/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/fence/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/trace_marker" (u object_r debugfs_trace_marker ((s0) (s0))))
+(genfscon debugfs "/tracing/events/sync/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/per_cpu/cpu" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/trace_clock" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/ipi/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/events/irq/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/tracing_on" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/instances" (u object_r debugfs_tracing_instances ((s0) (s0))))
+(genfscon debugfs "/wakeup_sources" (u object_r debugfs_wakeup_sources ((s0) (s0))))
+(genfscon debugfs "/tracing/trace" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/tracing/hyp" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon debugfs "/kprobes" (u object_r debugfs_kprobes ((s0) (s0))))
+(genfscon debugfs "/tracing" (u object_r debugfs_tracing_debug ((s0) (s0))))
+(genfscon debugfs "/mmc0" (u object_r debugfs_mmc ((s0) (s0))))
+(genfscon debugfs "/kcov" (u object_r debugfs_kcov ((s0) (s0))))
+(genfscon debugfs "/" (u object_r debugfs ((s0) (s0))))
+(genfscon esdfs "/" (u object_r sdcardfs ((s0) (s0))))
+(genfscon exfat "/" (u object_r exfat ((s0) (s0))))
+(genfscon functionfs "/" (u object_r functionfs ((s0) (s0))))
+(genfscon fuse "/" (u object_r fuse ((s0) (s0))))
+(genfscon fuseblk "/" (u object_r fuseblk ((s0) (s0))))
+(genfscon fusectl "/" (u object_r fusectlfs ((s0) (s0))))
+(genfscon inotifyfs "/" (u object_r inotify ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_util_clamp_min_rt_default" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_wakeup_granularity_ns" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/perf_event_max_sample_rate" (u object_r proc_perf ((s0) (s0))))
+(genfscon proc "/sys/kernel/perf_cpu_time_max_percent" (u object_r proc_perf ((s0) (s0))))
+(genfscon proc "/sys/vm/percpu_pagelist_high_fraction" (u object_r proc_percpu_pagelist_high_fraction ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_child_runs_first" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_tunable_scaling" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_util_clamp_max" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_util_clamp_min" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/perf_event_paranoid" (u object_r proc_perf ((s0) (s0))))
+(genfscon proc "/sys/kernel/perf_event_mlock_kb" (u object_r proc_perf ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_rt_runtime_us" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/randomize_va_space" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_rt_period_us" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/vm/dirty_background_ratio" (u object_r proc_dirty ((s0) (s0))))
+(genfscon proc "/sys/vm/dirty_expire_centisecs" (u object_r proc_dirty ((s0) (s0))))
+(genfscon proc "/sys/vm/watermark_boost_factor" (u object_r proc_watermark_boost_factor ((s0) (s0))))
+(genfscon proc "/sys/vm/watermark_scale_factor" (u object_r proc_watermark_scale_factor ((s0) (s0))))
+(genfscon proc "/sys/kernel/unprivileged_bpf_" (u object_r proc_bpf ((s0) (s0))))
+(genfscon proc "/uid_cputime/remove_uid_range" (u object_r proc_uid_cputime_removeuid ((s0) (s0))))
+(genfscon proc "/sys/kernel/modules_disabled" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_latency_ns" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/kernel/sched_schedstats" (u object_r proc_sched ((s0) (s0))))
+(genfscon proc "/sys/vm/mmap_rnd_compat_bits" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/vm/min_free_order_shift" (u object_r proc_min_free_order_shift ((s0) (s0))))
+(genfscon proc "/sys/fs/protected_hardlinks" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/kernel/core_pipe_limit" (u object_r usermodehelper ((s0) (s0))))
+(genfscon proc "/uid_concurrent_active_time" (u object_r proc_uid_concurrent_active_time ((s0) (s0))))
+(genfscon proc "/uid_concurrent_policy_time" (u object_r proc_uid_concurrent_policy_time ((s0) (s0))))
+(genfscon proc "/sys/fs/protected_symlinks" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/kernel/dmesg_restrict" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/kernel/usermodehelper" (u object_r usermodehelper ((s0) (s0))))
+(genfscon proc "/uid_cputime/show_uid_stat" (u object_r proc_uid_cputime_showstat ((s0) (s0))))
+(genfscon proc "/sys/kernel/kptr_restrict" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/kernel/panic_on_oops" (u object_r proc_panic ((s0) (s0))))
+(genfscon proc "/sys/vm/extra_free_kbytes" (u object_r proc_extra_free_kbytes ((s0) (s0))))
+(genfscon proc "/sys/vm/overcommit_memory" (u object_r proc_overcommit_memory ((s0) (s0))))
+(genfscon proc "/sys/kernel/core_pattern" (u object_r usermodehelper ((s0) (s0))))
+(genfscon proc "/sys/kernel/poweroff_cmd" (u object_r usermodehelper ((s0) (s0))))
+(genfscon proc "/sys/kernel/domainname" (u object_r proc_hostname ((s0) (s0))))
+(genfscon proc "/sys/kernel/hung_task_" (u object_r proc_hung_task ((s0) (s0))))
+(genfscon proc "/sys/fs/pipe-max-size" (u object_r proc_pipe_conf ((s0) (s0))))
+(genfscon proc "/sys/fs/suid_dumpable" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/vm/max_map_count" (u object_r proc_max_map_count ((s0) (s0))))
+(genfscon proc "/sys/vm/mmap_min_addr" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/sys/vm/mmap_rnd_bits" (u object_r proc_security ((s0) (s0))))
+(genfscon proc "/net/xt_qtaguid/ctrl" (u object_r proc_qtaguid_ctrl ((s0) (s0))))
+(genfscon proc "/sys/kernel/hostname" (u object_r proc_hostname ((s0) (s0))))
+(genfscon proc "/sys/kernel/modprobe" (u object_r usermodehelper ((s0) (s0))))
+(genfscon proc "/sys/vm/page-cluster" (u object_r proc_page_cluster ((s0) (s0))))
+(genfscon proc "/sys/kernel/hotplug" (u object_r usermodehelper ((s0) (s0))))
+(genfscon proc "/sys/kernel/pid_max" (u object_r proc_pid_max ((s0) (s0))))
+(genfscon proc "/sys/vm/drop_caches" (u object_r proc_drop_caches ((s0) (s0))))
+(genfscon proc "/sys/kernel/random" (u object_r proc_random ((s0) (s0))))
+(genfscon proc "/sys/net/core/bpf_" (u object_r proc_bpf ((s0) (s0))))
+(genfscon proc "/uid_time_in_state" (u object_r proc_uid_time_in_state ((s0) (s0))))
+(genfscon proc "/sys/kernel/sysrq" (u object_r proc_sysrq ((s0) (s0))))
+(genfscon proc "/uid_procstat/set" (u object_r proc_uid_procstat_set ((s0) (s0))))
+(genfscon proc "/device-tree/avf" (u object_r proc_dt_avf ((s0) (s0))))
+(genfscon proc "/lowmemorykiller" (u object_r proc_lowmemorykiller ((s0) (s0))))
+(genfscon proc "/net/xt_qtaguid/" (u object_r proc_qtaguid_stat ((s0) (s0))))
+(genfscon proc "/pressure/memory" (u object_r proc_pressure_mem ((s0) (s0))))
+(genfscon proc "/sys/kernel/bpf_" (u object_r proc_bpf ((s0) (s0))))
+(genfscon proc "/cpu/alignment" (u object_r proc_cpu_alignment ((s0) (s0))))
+(genfscon proc "/sysrq-trigger" (u object_r proc_sysrq ((s0) (s0))))
+(genfscon proc "/uid_cpupower/" (u object_r proc_uid_cpupower ((s0) (s0))))
+(genfscon proc "/pagetypeinfo" (u object_r proc_pagetypeinfo ((s0) (s0))))
+(genfscon proc "/pressure/cpu" (u object_r proc_pressure_cpu ((s0) (s0))))
+(genfscon proc "/uid_io/stats" (u object_r proc_uid_io_stats ((s0) (s0))))
+(genfscon proc "/vendor_sched" (u object_r proc_vendor_sched ((s0) (s0))))
+(genfscon proc "/filesystems" (u object_r proc_filesystems ((s0) (s0))))
+(genfscon proc "/pressure/io" (u object_r proc_pressure_io ((s0) (s0))))
+(genfscon proc "/sys/abi/swp" (u object_r proc_abi ((s0) (s0))))
+(genfscon proc "/timer_stats" (u object_r proc_timer ((s0) (s0))))
+(genfscon proc "/tty/drivers" (u object_r proc_tty_drivers ((s0) (s0))))
+(genfscon proc "/vmallocinfo" (u object_r proc_vmallocinfo ((s0) (s0))))
+(genfscon proc "/bootconfig" (u object_r proc_bootconfig ((s0) (s0))))
+(genfscon proc "/interrupts" (u object_r proc_interrupts ((s0) (s0))))
+(genfscon proc "/kpageflags" (u object_r proc_kpageflags ((s0) (s0))))
+(genfscon proc "/timer_list" (u object_r proc_timer ((s0) (s0))))
+(genfscon proc "/buddyinfo" (u object_r proc_buddyinfo ((s0) (s0))))
+(genfscon proc "/config.gz" (u object_r config_gz ((s0) (s0))))
+(genfscon proc "/diskstats" (u object_r proc_diskstats ((s0) (s0))))
+(genfscon proc "/kallsyms" (u object_r proc_kallsyms ((s0) (s0))))
+(genfscon proc "/slabinfo" (u object_r proc_slabinfo ((s0) (s0))))
+(genfscon proc "/softirqs" (u object_r proc_timer ((s0) (s0))))
+(genfscon proc "/zoneinfo" (u object_r proc_zoneinfo ((s0) (s0))))
+(genfscon proc "/cmdline" (u object_r proc_cmdline ((s0) (s0))))
+(genfscon proc "/loadavg" (u object_r proc_loadavg ((s0) (s0))))
+(genfscon proc "/meminfo" (u object_r proc_meminfo ((s0) (s0))))
+(genfscon proc "/modules" (u object_r proc_modules ((s0) (s0))))
+(genfscon proc "/net/tcp" (u object_r proc_net_tcp_udp ((s0) (s0))))
+(genfscon proc "/net/udp" (u object_r proc_net_tcp_udp ((s0) (s0))))
+(genfscon proc "/cpuinfo" (u object_r proc_cpuinfo ((s0) (s0))))
+(genfscon proc "/sys/net" (u object_r proc_net ((s0) (s0))))
+(genfscon proc "/version" (u object_r proc_version ((s0) (s0))))
+(genfscon proc "/asound" (u object_r proc_asound ((s0) (s0))))
+(genfscon proc "/mounts" (u object_r proc_mounts ((s0) (s0))))
+(genfscon proc "/uptime" (u object_r proc_uptime ((s0) (s0))))
+(genfscon proc "/vmstat" (u object_r proc_vmstat ((s0) (s0))))
+(genfscon proc "/iomem" (u object_r proc_iomem ((s0) (s0))))
+(genfscon proc "/locks" (u object_r proc_locks ((s0) (s0))))
+(genfscon proc "/swaps" (u object_r proc_swaps ((s0) (s0))))
+(genfscon proc "/keys" (u object_r proc_keys ((s0) (s0))))
+(genfscon proc "/kmsg" (u object_r proc_kmsg ((s0) (s0))))
+(genfscon proc "/misc" (u object_r proc_misc ((s0) (s0))))
+(genfscon proc "/stat" (u object_r proc_stat ((s0) (s0))))
+(genfscon proc "/uid/" (u object_r proc_uid_time_in_state ((s0) (s0))))
+(genfscon proc "/net" (u object_r proc_net ((s0) (s0))))
+(genfscon proc "/" (u object_r proc ((s0) (s0))))
+(genfscon pstore "/" (u object_r pstorefs ((s0) (s0))))
+(genfscon rootfs "/" (u object_r rootfs ((s0) (s0))))
+(genfscon sdcardfs "/" (u object_r sdcardfs ((s0) (s0))))
+(genfscon securityfs "/" (u object_r securityfs ((s0) (s0))))
+(genfscon selinuxfs "/" (u object_r selinuxfs ((s0) (s0))))
+(genfscon sysfs "/module/dm_verity/parameters/prefetch_cluster" (u object_r sysfs_dm_verity ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/timed_output/vibrator/enable" (u object_r sysfs_vibrator ((s0) (s0))))
+(genfscon sysfs "/firmware/devicetree/base/firmware/android" (u object_r sysfs_dt_firmware_android ((s0) (s0))))
+(genfscon sysfs "/devices/platform/nfc-power/nfc_power" (u object_r sysfs_nfc_power_writable ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/block/zram0/uevent" (u object_r sysfs_zram_uevent ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/block/zram1/uevent" (u object_r sysfs_zram_uevent ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/misc/hw_random" (u object_r sysfs_hwrandom ((s0) (s0))))
+(genfscon sysfs "/kernel/mm/transparent_hugepage" (u object_r sysfs_transparent_hugepage ((s0) (s0))))
+(genfscon sysfs "/module/wlan/parameters/fwpath" (u object_r sysfs_wlan_fwpath ((s0) (s0))))
+(genfscon sysfs "/firmware/devicetree/base/avf" (u object_r sysfs_dt_avf ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/android_usb" (u object_r sysfs_android_usb ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/block/zram0" (u object_r sysfs_zram ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/block/zram1" (u object_r sysfs_zram ((s0) (s0))))
+(genfscon sysfs "/fs/incremental-fs/instances" (u object_r sysfs_fs_incfs_metrics ((s0) (s0))))
+(genfscon sysfs "/module/tcp_cubic/parameters" (u object_r sysfs_net ((s0) (s0))))
+(genfscon sysfs "/class/rfkill/rfkill0/state" (u object_r sysfs_bluetooth_writable ((s0) (s0))))
+(genfscon sysfs "/class/rfkill/rfkill1/state" (u object_r sysfs_bluetooth_writable ((s0) (s0))))
+(genfscon sysfs "/class/rfkill/rfkill2/state" (u object_r sysfs_bluetooth_writable ((s0) (s0))))
+(genfscon sysfs "/class/rfkill/rfkill3/state" (u object_r sysfs_bluetooth_writable ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/block/loop" (u object_r sysfs_loop ((s0) (s0))))
+(genfscon sysfs "/fs/fuse/bpf_prog_type_fuse" (u object_r sysfs_fs_fuse_bpf ((s0) (s0))))
+(genfscon sysfs "/fs/incremental-fs/features" (u object_r sysfs_fs_incfs_features ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/block/dm-" (u object_r sysfs_dm ((s0) (s0))))
+(genfscon sysfs "/kernel/mm/lru_gen/enabled" (u object_r sysfs_lru_gen_enabled ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/misc/uhid" (u object_r sysfs_uhid ((s0) (s0))))
+(genfscon sysfs "/kernel/memory_state_time" (u object_r sysfs_power ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/block/" (u object_r sysfs_devices_block ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/switch" (u object_r sysfs_switch ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/wakeup" (u object_r sysfs_wakeup ((s0) (s0))))
+(genfscon sysfs "/module/lowmemorykiller" (u object_r sysfs_lowmemorykiller ((s0) (s0))))
+(genfscon sysfs "/power/sync_on_suspend" (u object_r sysfs_sync_on_suspend ((s0) (s0))))
+(genfscon sysfs "/kernel/wakeup_reasons" (u object_r sysfs_wakeup_reasons ((s0) (s0))))
+(genfscon sysfs "/kernel/dmabuf/buffers" (u object_r sysfs_dmabuf_stats ((s0) (s0))))
+(genfscon sysfs "/kernel/uevent_helper" (u object_r sysfs_usermodehelper ((s0) (s0))))
+(genfscon sysfs "/devices/virtual/net" (u object_r sysfs_net ((s0) (s0))))
+(genfscon sysfs "/power/suspend_stats" (u object_r sysfs_suspend_stats ((s0) (s0))))
+(genfscon sysfs "/kernel/vendor_sched" (u object_r sysfs_vendor_sched ((s0) (s0))))
+(genfscon sysfs "/devices/system/cpu" (u object_r sysfs_devices_system_cpu ((s0) (s0))))
+(genfscon sysfs "/power/wakeup_count" (u object_r sysfs_power ((s0) (s0))))
+(genfscon sysfs "/class/android_usb" (u object_r sysfs_android_usb ((s0) (s0))))
+(genfscon sysfs "/power/wake_unlock" (u object_r sysfs_wake_lock ((s0) (s0))))
+(genfscon sysfs "/fs/ext4/features" (u object_r sysfs_fs_ext4_features ((s0) (s0))))
+(genfscon sysfs "/fs/fuse/features" (u object_r sysfs_fs_fuse_features ((s0) (s0))))
+(genfscon sysfs "/power/autosleep" (u object_r sysfs_power ((s0) (s0))))
+(genfscon sysfs "/power/wake_lock" (u object_r sysfs_wake_lock ((s0) (s0))))
+(genfscon sysfs "/kernel/dma_heap" (u object_r sysfs_dma_heap ((s0) (s0))))
+(genfscon sysfs "/devices/cs_etm" (u object_r sysfs_devices_cs_etm ((s0) (s0))))
+(genfscon sysfs "/devices/uprobe" (u object_r sysfs_uprobe ((s0) (s0))))
+(genfscon sysfs "/class/extcon" (u object_r sysfs_extcon ((s0) (s0))))
+(genfscon sysfs "/class/switch" (u object_r sysfs_switch ((s0) (s0))))
+(genfscon sysfs "/class/wakeup" (u object_r sysfs_wakeup ((s0) (s0))))
+(genfscon sysfs "/kernel/notes" (u object_r sysfs_kernel_notes ((s0) (s0))))
+(genfscon sysfs "/power/state" (u object_r sysfs_power ((s0) (s0))))
+(genfscon sysfs "/kernel/ipv4" (u object_r sysfs_ipv4 ((s0) (s0))))
+(genfscon sysfs "/class/leds" (u object_r sysfs_leds ((s0) (s0))))
+(genfscon sysfs "/kernel/ion" (u object_r sysfs_ion ((s0) (s0))))
+(genfscon sysfs "/class/gpu" (u object_r sysfs_gpu ((s0) (s0))))
+(genfscon sysfs "/class/net" (u object_r sysfs_net ((s0) (s0))))
+(genfscon sysfs "/class/rtc" (u object_r sysfs_rtc ((s0) (s0))))
+(genfscon sysfs "/fs/f2fs" (u object_r sysfs_fs_f2fs ((s0) (s0))))
+(genfscon sysfs "/" (u object_r sysfs ((s0) (s0))))
+(genfscon tracefs "/events/filemap/mm_filemap_delete_from_page_cache/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/vmscan/mm_vmscan_direct_reclaim_begin/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/filemap/mm_filemap_add_to_page_cache/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/vmscan/mm_vmscan_direct_reclaim_end/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_transaction_alloc_buf/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_transaction_received/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ext4/ext4_es_lookup_extent_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ext4/ext4_es_lookup_extent_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/synthetic/suspend_resume_minimal" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/vmscan/mm_vmscan_kswapd_sleep/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/vmscan/mm_vmscan_kswapd_wake/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/synthetic/rss_stat_throttled" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/thermal/thermal_temperature/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_blocked_reason/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/cpu_frequency_limits/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_set_priority/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/f2fs/f2fs_sync_file_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ext4/ext4_sync_file_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_transaction/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/f2fs/f2fs_get_data_block/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/f2fs/f2fs_sync_file_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ext4/ext4_da_write_begin/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ext4/ext4_sync_file_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_process_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_process_free/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/mm_event/mm_event_record/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/oom/oom_score_adj_update/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/block/block_rq_complete/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_cpu_hotplug/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ext4/ext4_da_write_end/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_wakeup_new/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_pi_setprio/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/f2fs/f2fs_write_begin/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/gpu_work_period/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_command/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ext4/ext4_load_inode/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/block/block_rq_issue/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/clock_set_rate/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/suspend_resume/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_locked/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_unlock/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_return/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/kmem/ion_heap_shrink/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/gpu_mem/gpu_mem_total" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/f2fs/f2fs_write_end/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/cpu_frequency/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/clock_disable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/gpu_frequency/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/cpufreq_interactive/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/thermal/cdev_update/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_switch/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_wakeup/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/sched/sched_waking/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/clock_enable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/binder/binder_lock/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/kmem/ion_heap_grow/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/task/task_newtask/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/cpuhp/cpuhp_enter/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/cpuhp/cpuhp_pause/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/task/task_rename/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/cpuhp/cpuhp_exit/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/clk/clk_set_rate/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/lowmemorykiller/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/oom/mark_victim/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/clk/clk_disable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/instances/bootreceiver" (u object_r debugfs_bootreceiver_tracing ((s0) (s0))))
+(genfscon tracefs "/events/f2fs/f2fs_iget/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/power/cpu_idle/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/clk/clk_enable/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/kmem/rss_stat/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ion/ion_stat/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ftrace/print/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/instances/mm_events" (u object_r debugfs_mm_events_tracing ((s0) (s0))))
+(genfscon tracefs "/options/record-tgid" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/saved_cmdlines_size" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/header_page" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/options/print-tgid" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/options/overwrite" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/dma_fence/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/synthetic_events" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/instances/wifi" (u object_r debugfs_wifi_tracing ((s0) (s0))))
+(genfscon tracefs "/printk_formats" (u object_r debugfs_tracing_printk_formats ((s0) (s0))))
+(genfscon tracefs "/buffer_size_kb" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/cgroup/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/fence/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/trace_marker" (u object_r debugfs_trace_marker ((s0) (s0))))
+(genfscon tracefs "/events/sync/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/per_cpu/cpu" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/trace_clock" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/ipi/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/events/irq/" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/tracing_on" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/instances" (u object_r debugfs_tracing_instances ((s0) (s0))))
+(genfscon tracefs "/trace" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/hyp" (u object_r debugfs_tracing ((s0) (s0))))
+(genfscon tracefs "/" (u object_r debugfs_tracing_debug ((s0) (s0))))
+(genfscon usbfs "/" (u object_r usbfs ((s0) (s0))))
+(genfscon vfat "/" (u object_r vfat ((s0) (s0))))
+(common cap (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap ))
+(common cap2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon ))
+(common ipc (create destroy getattr setattr read write associate unix_read unix_write ))
+(common socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind ))
+(common file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads ))
+(typealias rs_data_file)
+(typealiasactual rs_data_file app_exec_data_file)
+(class security (compute_av compute_create compute_member check_context load_policy compute_relabel compute_user setenforce setbool setsecparam setcheckreqprot read_policy validate_trans ))
+(class process (fork transition sigchld sigkill sigstop signull signal ptrace getsched setsched getsession getpgid setpgid getcap setcap share getattr setexec setfscreate noatsecure siginh setrlimit rlimitinh dyntransition setcurrent execmem execstack execheap setkeycreate setsockcreate getrlimit ))
+(mlsconstrain (process (sigkill sigstop signal ptrace setsched setpgid setcap share setrlimit)) (or (eq l1 l2) (eq t1 mlstrustedsubject)))
+(mlsconstrain (process (ptrace getsched getsession getpgid getcap share getattr)) (or (dom l1 l2) (eq t1 mlstrustedsubject)))
+(mlsconstrain (process (transition dyntransition)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class system (ipc_info syslog_read syslog_mod syslog_console module_request module_load ))
+(class capability ())
+(classcommon capability cap)
+(class filesystem (mount remount unmount getattr relabelfrom relabelto associate quotamod quotaget watch ))
+(class file (execute_no_trans entrypoint ))
+(classcommon file file)
+(mlsconstrain (file (write setattr append unlink link rename)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (eq l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (file (read getattr execute)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (file (setattr unlink link rename open)) (or (or (and (neq t2 app_data_file_type) (neq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)))
+(mlsconstrain (file (create relabelfrom relabelto)) (and (eq l2 h2) (or (eq l1 l2) (eq t1 mlstrustedsubject))))
+(class anon_inode ())
+(classcommon anon_inode file)
+(mlsconstrain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute open execmod)) (eq l1 l2))
+(class dir (add_name remove_name reparent search rmdir ))
+(classcommon dir file)
+(mlsconstrain (dir (write setattr rename add_name remove_name reparent rmdir)) (or (or (or (eq t2 app_data_file_type) (eq l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (dir (read getattr search)) (or (or (or (or (eq t2 app_data_file_type) (dom l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)) (and (eq t1 mlsvendorcompat) (or (eq t2 system_data_file) (eq t2 user_profile_root_file)))))
+(mlsconstrain (dir (getattr setattr rename open add_name remove_name reparent search rmdir)) (or (or (neq t2 app_data_file_type) (dom l1 l2)) (eq t1 mlstrustedsubject)))
+(mlsconstrain (dir (create relabelfrom relabelto)) (and (eq l2 h2) (or (eq l1 l2) (eq t1 mlstrustedsubject))))
+(class fd (use ))
+(class lnk_file ())
+(classcommon lnk_file file)
+(mlsconstrain (lnk_file (write setattr append unlink link rename)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (eq l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (lnk_file (read getattr execute)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (lnk_file (read setattr unlink link rename open)) (or (or (and (neq t2 privapp_data_file) (neq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)))
+(mlsconstrain (lnk_file (read setattr unlink link rename open)) (or (or (or (neq t2 app_data_file_type) (eq t2 privapp_data_file)) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(mlsconstrain (lnk_file (create relabelfrom relabelto)) (and (eq l2 h2) (or (eq l1 l2) (eq t1 mlstrustedsubject))))
+(class chr_file (execute_no_trans entrypoint ))
+(classcommon chr_file file)
+(mlsconstrain (chr_file (write setattr append unlink link rename)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (eq l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (chr_file (read getattr execute)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (chr_file (create relabelfrom relabelto)) (and (eq l2 h2) (or (eq l1 l2) (eq t1 mlstrustedsubject))))
+(class blk_file ())
+(classcommon blk_file file)
+(mlsconstrain (blk_file (write setattr append unlink link rename)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (eq l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (blk_file (read getattr execute)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (blk_file (create relabelfrom relabelto)) (and (eq l2 h2) (or (eq l1 l2) (eq t1 mlstrustedsubject))))
+(class sock_file ())
+(classcommon sock_file file)
+(mlsconstrain (sock_file (write setattr append unlink link rename)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (eq l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (sock_file (read getattr execute)) (or (or (or (or (eq t2 app_data_file_type) (eq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)))
+(mlsconstrain (sock_file (setattr unlink link rename open)) (or (or (and (neq t2 app_data_file_type) (neq t2 appdomain_tmpfs)) (dom l1 l2)) (eq t1 mlstrustedsubject)))
+(mlsconstrain (sock_file (create relabelfrom relabelto)) (and (eq l2 h2) (or (eq l1 l2) (eq t1 mlstrustedsubject))))
+(class fifo_file ())
+(classcommon fifo_file file)
+(mlsconstrain (fifo_file (write setattr append unlink link rename)) (or (or (or (eq l1 l2) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)) (eq t2 domain)))
+(mlsconstrain (fifo_file (read getattr)) (or (or (or (dom l1 l2) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedobject)) (eq t2 domain)))
+(mlsconstrain (fifo_file (create relabelfrom relabelto)) (and (eq l2 h2) (or (eq l1 l2) (eq t1 mlstrustedsubject))))
+(class socket ())
+(classcommon socket socket)
+(mlsconstrain (socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class tcp_socket (node_bind name_connect ))
+(classcommon tcp_socket socket)
+(mlsconstrain (tcp_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class udp_socket (node_bind ))
+(classcommon udp_socket socket)
+(mlsconstrain (udp_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class rawip_socket (node_bind ))
+(classcommon rawip_socket socket)
+(mlsconstrain (rawip_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class node (recvfrom sendto ))
+(class netif (ingress egress ))
+(class netlink_socket ())
+(classcommon netlink_socket socket)
+(mlsconstrain (netlink_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class packet_socket ())
+(classcommon packet_socket socket)
+(mlsconstrain (packet_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class key_socket ())
+(classcommon key_socket socket)
+(mlsconstrain (key_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class unix_stream_socket (connectto ))
+(classcommon unix_stream_socket socket)
+(mlsconstrain (unix_stream_socket (connectto)) (or (or (eq l1 l2) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedsubject)))
+(mlsconstrain (unix_stream_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class unix_dgram_socket ())
+(classcommon unix_dgram_socket socket)
+(mlsconstrain (unix_dgram_socket (sendto)) (or (or (eq l1 l2) (eq t1 mlstrustedsubject)) (eq t2 mlstrustedsubject)))
+(mlsconstrain (unix_dgram_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class sem ())
+(classcommon sem ipc)
+(class msg (send receive ))
+(class msgq (enqueue ))
+(classcommon msgq ipc)
+(class shm (lock ))
+(classcommon shm ipc)
+(class ipc ())
+(classcommon ipc ipc)
+(class netlink_route_socket (nlmsg_read nlmsg_write nlmsg_readpriv nlmsg_getneigh ))
+(classcommon netlink_route_socket socket)
+(mlsconstrain (netlink_route_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_tcpdiag_socket (nlmsg_read nlmsg_write ))
+(classcommon netlink_tcpdiag_socket socket)
+(mlsconstrain (netlink_tcpdiag_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_nflog_socket ())
+(classcommon netlink_nflog_socket socket)
+(mlsconstrain (netlink_nflog_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_xfrm_socket (nlmsg_read nlmsg_write ))
+(classcommon netlink_xfrm_socket socket)
+(mlsconstrain (netlink_xfrm_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_selinux_socket ())
+(classcommon netlink_selinux_socket socket)
+(mlsconstrain (netlink_selinux_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_audit_socket (nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit ))
+(classcommon netlink_audit_socket socket)
+(mlsconstrain (netlink_audit_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_dnrt_socket ())
+(classcommon netlink_dnrt_socket socket)
+(mlsconstrain (netlink_dnrt_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class association (sendto recvfrom setcontext polmatch ))
+(class netlink_kobject_uevent_socket ())
+(classcommon netlink_kobject_uevent_socket socket)
+(mlsconstrain (netlink_kobject_uevent_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class appletalk_socket ())
+(classcommon appletalk_socket socket)
+(mlsconstrain (appletalk_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class packet (send recv relabelto forward_in forward_out ))
+(class key (view read write search link setattr create ))
+(class dccp_socket (node_bind name_connect ))
+(classcommon dccp_socket socket)
+(class memprotect (mmap_zero ))
+(class peer (recv ))
+(class capability2 ())
+(classcommon capability2 cap2)
+(class kernel_service (use_as_override create_files_as ))
+(class tun_socket (attach_queue ))
+(classcommon tun_socket socket)
+(mlsconstrain (tun_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class binder (impersonate call set_context_mgr transfer ))
+(class netlink_iscsi_socket ())
+(classcommon netlink_iscsi_socket socket)
+(mlsconstrain (netlink_iscsi_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_fib_lookup_socket ())
+(classcommon netlink_fib_lookup_socket socket)
+(mlsconstrain (netlink_fib_lookup_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_connector_socket ())
+(classcommon netlink_connector_socket socket)
+(mlsconstrain (netlink_connector_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_netfilter_socket ())
+(classcommon netlink_netfilter_socket socket)
+(mlsconstrain (netlink_netfilter_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_generic_socket ())
+(classcommon netlink_generic_socket socket)
+(mlsconstrain (netlink_generic_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_scsitransport_socket ())
+(classcommon netlink_scsitransport_socket socket)
+(mlsconstrain (netlink_scsitransport_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_rdma_socket ())
+(classcommon netlink_rdma_socket socket)
+(mlsconstrain (netlink_rdma_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netlink_crypto_socket ())
+(classcommon netlink_crypto_socket socket)
+(mlsconstrain (netlink_crypto_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class infiniband_pkey (access ))
+(class infiniband_endport (manage_subnet ))
+(class cap_userns ())
+(classcommon cap_userns cap)
+(class cap2_userns ())
+(classcommon cap2_userns cap2)
+(class sctp_socket (node_bind name_connect association ))
+(classcommon sctp_socket socket)
+(mlsconstrain (sctp_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class icmp_socket (node_bind ))
+(classcommon icmp_socket socket)
+(mlsconstrain (icmp_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class ax25_socket ())
+(classcommon ax25_socket socket)
+(mlsconstrain (ax25_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class ipx_socket ())
+(classcommon ipx_socket socket)
+(mlsconstrain (ipx_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class netrom_socket ())
+(classcommon netrom_socket socket)
+(mlsconstrain (netrom_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class atmpvc_socket ())
+(classcommon atmpvc_socket socket)
+(mlsconstrain (atmpvc_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class x25_socket ())
+(classcommon x25_socket socket)
+(mlsconstrain (x25_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class rose_socket ())
+(classcommon rose_socket socket)
+(mlsconstrain (rose_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class decnet_socket ())
+(classcommon decnet_socket socket)
+(mlsconstrain (decnet_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class atmsvc_socket ())
+(classcommon atmsvc_socket socket)
+(mlsconstrain (atmsvc_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class rds_socket ())
+(classcommon rds_socket socket)
+(mlsconstrain (rds_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class irda_socket ())
+(classcommon irda_socket socket)
+(mlsconstrain (irda_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class pppox_socket ())
+(classcommon pppox_socket socket)
+(mlsconstrain (pppox_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class llc_socket ())
+(classcommon llc_socket socket)
+(mlsconstrain (llc_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class can_socket ())
+(classcommon can_socket socket)
+(mlsconstrain (can_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class tipc_socket ())
+(classcommon tipc_socket socket)
+(mlsconstrain (tipc_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class bluetooth_socket ())
+(classcommon bluetooth_socket socket)
+(mlsconstrain (bluetooth_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class iucv_socket ())
+(classcommon iucv_socket socket)
+(mlsconstrain (iucv_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class rxrpc_socket ())
+(classcommon rxrpc_socket socket)
+(mlsconstrain (rxrpc_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class isdn_socket ())
+(classcommon isdn_socket socket)
+(mlsconstrain (isdn_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class phonet_socket ())
+(classcommon phonet_socket socket)
+(mlsconstrain (phonet_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class ieee802154_socket ())
+(classcommon ieee802154_socket socket)
+(mlsconstrain (ieee802154_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class caif_socket ())
+(classcommon caif_socket socket)
+(mlsconstrain (caif_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class alg_socket ())
+(classcommon alg_socket socket)
+(mlsconstrain (alg_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class nfc_socket ())
+(classcommon nfc_socket socket)
+(mlsconstrain (nfc_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class vsock_socket ())
+(classcommon vsock_socket socket)
+(mlsconstrain (vsock_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class kcm_socket ())
+(classcommon kcm_socket socket)
+(mlsconstrain (kcm_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class qipcrtr_socket ())
+(classcommon qipcrtr_socket socket)
+(mlsconstrain (qipcrtr_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class smc_socket ())
+(classcommon smc_socket socket)
+(mlsconstrain (smc_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class process2 (nnp_transition nosuid_transition ))
+(class bpf (map_create map_read map_write prog_load prog_run ))
+(class xdp_socket ())
+(classcommon xdp_socket socket)
+(mlsconstrain (xdp_socket (create relabelfrom relabelto)) (or (and (eq h1 h2) (eq l1 l2)) (eq t1 mlstrustedsubject)))
+(class perf_event (open cpu kernel tracepoint read write ))
+(class io_uring (override_creds sqpoll cmd ))
+(class lockdown (integrity confidentiality ))
+(class property_service (set ))
+(class service_manager (add find list ))
+(class hwservice_manager (add find list ))
+(class keystore_key (get_state get insert delete exist list reset password lock unlock is_empty sign verify grant duplicate clear_uid add_auth user_changed gen_unique_id ))
+(class keystore2 (add_auth change_password change_user clear_ns clear_uid delete_all_keys early_boot_ended get_attestation_key get_auth_token get_last_auth_time get_state list lock pull_metrics report_off_body reset unlock ))
+(class keystore2_key (convert_storage_key_to_ephemeral delete gen_unique_id get_info grant manage_blob rebind req_forced_op update use use_dev_id ))
+(class diced (demote demote_self derive get_attestation_chain use_seal use_sign ))
+(class drmservice (consumeRights setPlaybackStatus openDecryptSession closeDecryptSession initializeDecryptUnit decrypt finalizeDecryptUnit pread ))
+(classorder (security process system capability filesystem file anon_inode dir fd lnk_file chr_file blk_file sock_file fifo_file socket tcp_socket udp_socket rawip_socket node netif netlink_socket packet_socket key_socket unix_stream_socket unix_dgram_socket sem msg msgq shm ipc netlink_route_socket netlink_tcpdiag_socket netlink_nflog_socket netlink_xfrm_socket netlink_selinux_socket netlink_audit_socket netlink_dnrt_socket association netlink_kobject_uevent_socket appletalk_socket packet key dccp_socket memprotect peer capability2 kernel_service tun_socket binder netlink_iscsi_socket netlink_fib_lookup_socket netlink_connector_socket netlink_netfilter_socket netlink_generic_socket netlink_scsitransport_socket netlink_rdma_socket netlink_crypto_socket infiniband_pkey infiniband_endport cap_userns cap2_userns sctp_socket icmp_socket ax25_socket ipx_socket netrom_socket atmpvc_socket x25_socket rose_socket decnet_socket atmsvc_socket rds_socket irda_socket pppox_socket llc_socket can_socket tipc_socket bluetooth_socket iucv_socket rxrpc_socket isdn_socket phonet_socket ieee802154_socket caif_socket alg_socket nfc_socket vsock_socket kcm_socket qipcrtr_socket smc_socket process2 bpf xdp_socket perf_event io_uring lockdown property_service service_manager hwservice_manager keystore_key keystore2 keystore2_key diced drmservice ))
+(role r)
+(roletype r domain)
+(typeattribute dev_type)
+(typeattributeset dev_type (device ashmem_device ashmem_libcutils_device audio_device binder_device hwbinder_device vndbinder_device block_device bt_device camera_device dm_device ublk_block_device dm_user_device ublk_control_device keychord_device loop_control_device loop_device pmsg_device radio_device ram_device rtc_device vd_device vold_device console_device fscklogs gpu_device graphics_device hw_random_device input_device port_device lowpan_device mtp_device nfc_device ptmx_device kmsg_device kmsg_debug_device null_device random_device secure_element_device sensors_device serial_device socket_device owntty_device tty_device video_device zero_device fuse_device iio_device ion_device dmabuf_heap_device dmabuf_system_heap_device dmabuf_system_secure_heap_device qtaguid_device watchdog_device uhid_device uio_device tun_device usbaccessory_device usb_device usb_serial_device gnss_device properties_device properties_serial property_info hidraw_device hci_attach_dev rpmsg_device root_block_device frp_block_device system_block_device recovery_block_device boot_block_device dtbo_block_device userdata_block_device zoned_block_device cache_block_device swap_block_device metadata_block_device misc_block_device super_block_device sdcard_block_device userdata_sysdev rootdisk_sysdev vfio_device tee_device kvm_device ))
+(typeattribute bpffs_type)
+(typeattributeset bpffs_type (fs_bpf fs_bpf_tethering fs_bpf_vendor fs_bpf_net_private fs_bpf_net_shared fs_bpf_netd_readonly fs_bpf_netd_shared fs_bpf_loader fs_bpf_uprobestats ))
+(typeattribute domain)
+(typeattributeset domain (adbd aidl_lazy_test_server apexd app_zygote artd atrace audioserver blkid blkid_untrusted bluetooth bootanim bootstat bpfloader bufferhubd cameraserver charger charger_vendor crash_dump credstore dhcp dnsmasq drmserver dumpstate e2fs ephemeral_app evsmanagerd extra_free_kbytes fastbootd fingerprintd flags_health_check fsck fsck_untrusted gatekeeperd gmscore_app gpuservice healthd heapprofd hwservicemanager idmap incident incident_helper incidentd init inputflinger installd isolated_app isolated_compute_app kernel keystore llkd lmkd logd logpersist mdnsd mediadrmserver mediaextractor mediametrics mediaprovider mediaserver mediaswcodec mediatranscoding modprobe mtp netd netutils_wrapper network_stack nfc otapreopt_chroot perfetto performanced platform_app postinstall ppp priv_app prng_seeder profman radio recovery recovery_persist recovery_refresh rkpdapp rs rss_hwm_reset runas runas_app sdcardd secure_element servicemanager sgdisk shared_relro shell simpleperf simpleperf_app_runner slideshow statsd su surfaceflinger system_app system_server tee tombstoned toolbox traced traced_perf traced_probes traceur_app ueventd uncrypt untrusted_app untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 update_engine update_verifier usbd vdc vendor_init vendor_misc_writer vendor_modprobe vendor_shell virtual_touchpad vndservicemanager vold vold_prepare_subdirs watchdogd webview_zygote wificond zygote aconfigd apex_test_prepostinstall apexd_derive_classpath art_boot auditctl automotive_display_service blank_screen boringssl_self_test vendor_boringssl_self_test canhalconfigurator clatd compos_fd_server compos_verify composd cppreopts crosvm derive_classpath derive_sdk device_as_webcam dex2oat dexopt_chroot_setup dexoptanalyzer dmesgd fsverity_init fuseblkd fuseblkd_untrusted fwk_bufferhub gki_apex_prepostinstall gsid hal_allocator_default hidl_lazy_test_server iw linkerconfig lpdumpd mediaprovider_app mediatuner migrate_legacy_obb_data misctrl mm_events mtectrl odrefresh odsign ot_daemon otapreopt_slot permissioncontroller_app postinstall_dexopt preloads_copy preopt2cachename profcollectd remount rkpd sdk_sandbox_34 sdk_sandbox_audit sdk_sandbox_next simpleperf_boot snapshotctl snapuserd stats storaged system_server_startup system_suspend uprobestats vehicle_binding_util viewcompiler virtual_camera virtualizationmanager virtualizationservice vzwomatrigger_app wait_for_keymaster ))
+(typeattribute fs_type)
+(typeattributeset fs_type (device labeledfs pipefs sockfs rootfs proc binderfs binderfs_logs binderfs_logs_proc binderfs_logs_stats binderfs_features proc_security proc_drop_caches proc_overcommit_memory proc_min_free_order_shift proc_kpageflags proc_watermark_boost_factor proc_percpu_pagelist_high_fraction usermodehelper sysfs_usermodehelper proc_qtaguid_ctrl proc_qtaguid_stat proc_bluetooth_writable proc_abi proc_asound proc_bootconfig proc_bpf proc_buddyinfo proc_cmdline proc_cpu_alignment proc_cpuinfo proc_dirty proc_diskstats proc_extra_free_kbytes proc_filesystems proc_fs_verity proc_hostname proc_hung_task proc_interrupts proc_iomem proc_kallsyms proc_keys proc_kmsg proc_loadavg proc_locks proc_lowmemorykiller proc_max_map_count proc_meminfo proc_misc proc_modules proc_mounts proc_net proc_net_tcp_udp proc_page_cluster proc_pagetypeinfo proc_panic proc_perf proc_pid_max proc_pipe_conf proc_pressure_cpu proc_pressure_io proc_pressure_mem proc_random proc_sched proc_slabinfo proc_stat proc_swaps proc_sysrq proc_timer proc_tty_drivers proc_uid_cputime_showstat proc_uid_cputime_removeuid proc_uid_io_stats proc_uid_procstat_set proc_uid_time_in_state proc_uid_concurrent_active_time proc_uid_concurrent_policy_time proc_uid_cpupower proc_uptime proc_version proc_vmallocinfo proc_vmstat proc_watermark_scale_factor proc_zoneinfo proc_vendor_sched selinuxfs fusectlfs cgroup cgroup_v2 sysfs sysfs_android_usb sysfs_uio sysfs_batteryinfo sysfs_bluetooth_writable sysfs_devfreq_cur sysfs_devfreq_dir sysfs_devices_block sysfs_dm sysfs_dm_verity sysfs_dma_heap sysfs_dmabuf_stats sysfs_dt_firmware_android sysfs_extcon sysfs_ion sysfs_ipv4 sysfs_kernel_notes sysfs_leds sysfs_loop sysfs_gpu sysfs_hwrandom sysfs_nfc_power_writable sysfs_wake_lock sysfs_net sysfs_power sysfs_rtc sysfs_suspend_stats sysfs_switch sysfs_sync_on_suspend sysfs_transparent_hugepage sysfs_lru_gen_enabled sysfs_usb sysfs_wakeup sysfs_wakeup_reasons sysfs_fs_ext4_features sysfs_fs_f2fs sysfs_fs_fuse_bpf sysfs_fs_fuse_features sysfs_fs_incfs_features sysfs_fs_incfs_metrics sysfs_vendor_sched fs_bpf fs_bpf_tethering fs_bpf_vendor configfs sysfs_devices_cs_etm sysfs_devices_system_cpu sysfs_lowmemorykiller sysfs_wlan_fwpath sysfs_vibrator sysfs_uhid sysfs_thermal sysfs_zram sysfs_zram_uevent inotify devpts tmpfs shm mqueue fuse fuseblk sdcardfs vfat exfat debugfs debugfs_kprobes debugfs_mmc debugfs_mm_events_tracing debugfs_trace_marker debugfs_tracing debugfs_tracing_debug debugfs_tracing_instances debugfs_tracing_printk_formats debugfs_wakeup_sources debugfs_wifi_tracing securityfs pstorefs functionfs oemfs usbfs binfmt_miscfs app_fusefs debugfs_bootreceiver_tracing apexd_devpts config_gz fs_bpf_net_private fs_bpf_net_shared fs_bpf_netd_readonly fs_bpf_netd_shared fs_bpf_loader fs_bpf_uprobestats debugfs_kcov sysfs_dt_avf proc_dt_avf sysfs_uprobe odsign_devpts priv_app_devpts untrusted_app_all_devpts ))
+(typeattribute contextmount_type)
+(typeattributeset contextmount_type (oemfs app_fusefs ))
+(typeattribute fusefs_type)
+(typeattributeset fusefs_type (fuse fuseblk app_fusefs ))
+(typeattribute file_type)
+(typeattributeset file_type (adbd_exec aidl_lazy_test_server_exec apexd_exec appdomain_tmpfs app_zygote_tmpfs audioserver_tmpfs bootanim_exec bootstat_exec bufferhubd_exec cameraserver_exec cameraserver_tmpfs charger_exec crash_dump_exec credstore_exec dhcp_exec dnsmasq_exec drmserver_exec drmserver_socket dumpstate_exec e2fs_exec extra_free_kbytes_exec unlabeled system_file system_asan_options_file system_event_log_tags_file system_lib_file system_bootstrap_lib_file system_group_file system_linker_exec system_linker_config_file system_passwd_file system_seccomp_policy_file system_security_cacerts_file tcpdump_exec system_zoneinfo_file cgroup_desc_file cgroup_desc_api_file vendor_cgroup_desc_file task_profiles_file task_profiles_api_file vendor_task_profiles_file art_apex_dir linkerconfig_file incremental_control_file bootanim_oem_file vendor_hal_file vendor_file vendor_app_file vendor_configs_file same_process_hal_file vndk_sp_file vendor_framework_file vendor_overlay_file vendor_public_lib_file vendor_public_framework_file vendor_microdroid_file vendor_keylayout_file vendor_keychars_file vendor_idc_file vendor_uuid_mapping_config_file vendor_vm_file vendor_vm_data_file metadata_file vold_metadata_file gsi_metadata_file gsi_public_metadata_file password_slot_metadata_file apex_metadata_file ota_metadata_file metadata_bootstat_file userspace_reboot_metadata_file staged_install_file watchdog_metadata_file repair_mode_metadata_file aconfig_storage_metadata_file aconfig_storage_flags_metadata_file dev_cpu_variant runtime_event_log_tags_file logcat_exec cgroup_rc_file coredump_file system_data_root_file system_data_file system_userdir_file packages_list_file game_mode_intervention_list_file vendor_data_file vendor_userdir_file unencrypted_data_file install_data_file drm_data_file adb_data_file anr_data_file tombstone_data_file tombstone_wifi_data_file apex_data_file apk_data_file apk_tmp_file apk_private_data_file apk_private_tmp_file dalvikcache_data_file ota_data_file ota_package_file user_profile_root_file user_profile_data_file profman_dump_data_file prereboot_data_file resourcecache_data_file shell_data_file property_data_file bootchart_data_file dropbox_data_file heapdump_data_file nativetest_data_file shell_test_data_file ringtone_file preloads_data_file preloads_media_file dhcp_data_file server_configurable_flags_data_file staging_data_file vendor_apex_file vendor_apex_metadata_file shutdown_checkpoints_system_data_file mnt_media_rw_file mnt_user_file mnt_pass_through_file mnt_expand_file mnt_sdcard_file storage_file mnt_media_rw_stub_file storage_stub_file mnt_vendor_file mnt_product_file apex_mnt_dir apex_info_file postinstall_mnt_dir postinstall_file postinstall_apex_mnt_dir mirror_data_file adb_keys_file apex_system_server_data_file apex_module_data_file apex_ota_reserved_file apex_rollback_data_file appcompat_data_file audio_data_file audioserver_data_file bluetooth_data_file bluetooth_logs_data_file bootstat_data_file boottrace_data_file camera_data_file credstore_data_file gatekeeper_data_file incident_data_file keychain_data_file keystore_data_file media_data_file media_rw_data_file media_userdir_file misc_user_data_file net_data_file network_watchlist_data_file nfc_data_file nfc_logs_data_file radio_data_file recovery_data_file shared_relro_file snapshotctl_log_data_file stats_config_data_file stats_data_file systemkeys_data_file textclassifier_data_file trace_data_file vpn_data_file wifi_data_file vold_data_file tee_data_file update_engine_data_file update_engine_log_data_file snapuserd_log_data_file method_trace_data_file gsi_data_file radio_core_data_file app_data_file privapp_data_file system_app_data_file cache_file overlayfs_file cache_backup_file cache_private_backup_file cache_recovery_file efs_file wallpaper_file shortcut_manager_icons icon_file asec_apk_file asec_public_file asec_image_file backup_data_file bluetooth_efs_file fingerprintd_data_file fingerprint_vendor_data_file app_fuse_file face_vendor_data_file iris_vendor_data_file adbd_socket bluetooth_socket dnsproxyd_socket dumpstate_socket fwmarkd_socket lmkd_socket logd_socket logdr_socket logdw_socket mdns_socket mdnsd_socket misc_logd_file mtpd_socket ot_daemon_socket property_socket racoon_socket recovery_socket rild_socket rild_debug_socket snapuserd_socket snapuserd_proxy_socket statsdw_socket system_wpa_socket system_ndebug_socket system_unsolzygote_socket tombstoned_crash_socket tombstoned_java_trace_socket tombstoned_intercept_socket traced_consumer_socket traced_perf_socket traced_producer_socket uncrypt_socket wpa_socket zygote_socket heapprofd_socket gps_control pdx_display_dir pdx_performance_dir pdx_bufferhub_dir pdx_display_client_endpoint_socket pdx_display_manager_endpoint_socket pdx_display_screenshot_endpoint_socket pdx_display_vsync_endpoint_socket pdx_performance_client_endpoint_socket pdx_bufferhub_client_endpoint_socket file_contexts_file mac_perms_file property_contexts_file seapp_contexts_file sepolicy_file service_contexts_file keystore2_key_contexts_file vendor_service_contexts_file hwservice_contexts_file vndservice_contexts_file vendor_kernel_modules system_dlkm_file audiohal_data_file fingerprintd_exec flags_health_check_exec fsck_exec gatekeeperd_exec hal_graphics_composer_server_tmpfs hwservicemanager_exec idmap_exec init_exec init_tmpfs inputflinger_exec installd_exec keystore_exec llkd_exec lmkd_exec logd_exec mediadrmserver_exec mediaextractor_exec mediaextractor_tmpfs mediametrics_exec mediaserver_exec mediaserver_tmpfs mediaswcodec_exec netd_exec netutils_wrapper_exec performanced_exec profman_exec recovery_persist_exec recovery_refresh_exec rs_exec runas_exec sdcardd_exec servicemanager_exec sgdisk_exec shell_exec simpleperf_app_runner_exec statsd_exec su_exec surfaceflinger_tmpfs system_server_tmpfs tombstoned_exec toolbox_exec traced_tmpfs ueventd_tmpfs uncrypt_exec update_engine_exec update_verifier_exec usbd_exec vdc_exec vendor_misc_writer_exec vendor_shell_exec vendor_toolbox_exec virtual_touchpad_exec vold_exec vold_prepare_subdirs_exec watchdogd_exec webview_zygote_exec webview_zygote_tmpfs wificond_exec zygote_tmpfs zygote_exec aconfigd_exec apex_test_prepostinstall_exec art_boot_exec artd_exec artd_tmpfs atrace_exec audioserver_exec auditctl_exec automotive_display_service_exec blank_screen_exec blkid_exec boringssl_self_test_exec vendor_boringssl_self_test_exec boringssl_self_test_marker bpfloader_exec canhalconfigurator_exec clatd_exec compos_verify_exec composd_exec cppreopts_exec crosvm_exec crosvm_tmpfs derive_classpath_exec derive_sdk_exec dex2oat_exec dexopt_chroot_setup_exec dexopt_chroot_setup_tmpfs dexoptanalyzer_exec dexoptanalyzer_tmpfs dmesgd_exec dumpstate_tmpfs evsmanagerd_exec storaged_data_file wm_trace_data_file accessibility_trace_data_file perfetto_traces_data_file perfetto_traces_bugreport_data_file perfetto_traces_profiling_data_file perfetto_configs_data_file uprobestats_configs_data_file oatdump_exec sdk_sandbox_system_data_file sdk_sandbox_data_file app_exec_data_file rollback_data_file checkin_data_file ota_image_data_file gsi_persistent_data_file emergency_data_file profcollectd_data_file apex_art_data_file apex_art_staging_data_file apex_compos_data_file apex_virt_data_file apex_tethering_data_file apex_appsearch_data_file apex_permission_data_file apex_scheduling_data_file apex_wifi_data_file font_data_file dmesgd_data_file odrefresh_data_file odsign_data_file odsign_metrics_file virtualizationservice_data_file environ_system_data_file bootanim_data_file fd_server_exec compos_exec compos_key_helper_exec art_exec_exec prng_seeder_socket system_font_fallback_file aconfigd_socket system_aconfig_storage_file vendor_aconfig_storage_file fsverity_init_exec fuseblkd_exec fuseblkd_untrusted_exec fwk_bufferhub_exec gki_apex_prepostinstall_exec gpuservice_exec gsid_exec hal_allocator_default_exec heapprofd_exec heapprofd_tmpfs hidl_lazy_test_server_exec incident_exec incident_helper_exec incidentd_exec iw_exec linkerconfig_exec lpdumpd_exec mdnsd_exec mediatranscoding_exec mediatranscoding_tmpfs mediatuner_exec migrate_legacy_obb_data_exec misctrl_exec mm_events_exec mtectrl_exec odrefresh_exec odsign_exec ot_daemon_exec otapreopt_chroot_exec otapreopt_slot_exec perfetto_exec perfetto_tmpfs postinstall_exec postinstall_dexopt_exec postinstall_dexopt_tmpfs preloads_copy_exec preopt2cachename_exec prng_seeder_exec profcollectd_exec remount_exec rkpd_exec rss_hwm_reset_exec simpleperf_exec simpleperf_boot_data_file snapshotctl_exec snapuserd_exec stats_exec storaged_exec surfaceflinger_exec system_server_startup_tmpfs system_suspend_exec traced_exec traced_perf_exec traced_probes_exec traced_probes_tmpfs uprobestats_exec vehicle_binding_util_exec viewcompiler_exec viewcompiler_tmpfs virtual_camera_exec virtualizationmanager_exec virtualizationservice_exec wait_for_keymaster_exec ))
+(typeattribute exec_type)
+(typeattributeset exec_type (adbd_exec aidl_lazy_test_server_exec apexd_exec bootanim_exec bootstat_exec bufferhubd_exec cameraserver_exec charger_exec crash_dump_exec credstore_exec dhcp_exec dnsmasq_exec drmserver_exec dumpstate_exec e2fs_exec extra_free_kbytes_exec tcpdump_exec logcat_exec fingerprintd_exec flags_health_check_exec fsck_exec gatekeeperd_exec hwservicemanager_exec idmap_exec init_exec inputflinger_exec installd_exec keystore_exec llkd_exec lmkd_exec logd_exec mediadrmserver_exec mediaextractor_exec mediametrics_exec mediaserver_exec mediaswcodec_exec netd_exec netutils_wrapper_exec performanced_exec profman_exec recovery_persist_exec recovery_refresh_exec rs_exec runas_exec sdcardd_exec servicemanager_exec sgdisk_exec shell_exec simpleperf_app_runner_exec statsd_exec su_exec tombstoned_exec toolbox_exec uncrypt_exec update_engine_exec update_verifier_exec usbd_exec vdc_exec vendor_misc_writer_exec vendor_shell_exec vendor_toolbox_exec virtual_touchpad_exec vold_exec vold_prepare_subdirs_exec watchdogd_exec webview_zygote_exec wificond_exec zygote_exec aconfigd_exec apex_test_prepostinstall_exec art_boot_exec artd_exec atrace_exec audioserver_exec auditctl_exec automotive_display_service_exec blank_screen_exec blkid_exec boringssl_self_test_exec vendor_boringssl_self_test_exec bpfloader_exec canhalconfigurator_exec clatd_exec compos_verify_exec composd_exec cppreopts_exec crosvm_exec derive_classpath_exec derive_sdk_exec dex2oat_exec dexopt_chroot_setup_exec dexoptanalyzer_exec dmesgd_exec evsmanagerd_exec oatdump_exec fd_server_exec compos_exec compos_key_helper_exec art_exec_exec fsverity_init_exec fuseblkd_exec fuseblkd_untrusted_exec fwk_bufferhub_exec gki_apex_prepostinstall_exec gpuservice_exec gsid_exec hal_allocator_default_exec heapprofd_exec hidl_lazy_test_server_exec incident_exec incident_helper_exec incidentd_exec iw_exec linkerconfig_exec lpdumpd_exec mdnsd_exec mediatranscoding_exec mediatuner_exec migrate_legacy_obb_data_exec misctrl_exec mm_events_exec mtectrl_exec odrefresh_exec odsign_exec ot_daemon_exec otapreopt_chroot_exec otapreopt_slot_exec perfetto_exec postinstall_exec postinstall_dexopt_exec preloads_copy_exec preopt2cachename_exec prng_seeder_exec profcollectd_exec remount_exec rkpd_exec rss_hwm_reset_exec simpleperf_exec snapshotctl_exec snapuserd_exec stats_exec storaged_exec surfaceflinger_exec system_suspend_exec traced_exec traced_perf_exec traced_probes_exec uprobestats_exec vehicle_binding_util_exec viewcompiler_exec virtual_camera_exec virtualizationmanager_exec virtualizationservice_exec wait_for_keymaster_exec ))
+(typeattribute data_file_type)
+(expandtypeattribute (data_file_type) false)
+(typeattributeset data_file_type (incremental_control_file system_data_root_file system_data_file system_userdir_file packages_list_file game_mode_intervention_list_file vendor_data_file vendor_userdir_file unencrypted_data_file install_data_file drm_data_file adb_data_file anr_data_file tombstone_data_file tombstone_wifi_data_file apex_data_file apk_data_file apk_tmp_file apk_private_data_file apk_private_tmp_file dalvikcache_data_file ota_data_file ota_package_file user_profile_root_file user_profile_data_file profman_dump_data_file prereboot_data_file resourcecache_data_file shell_data_file property_data_file bootchart_data_file dropbox_data_file heapdump_data_file nativetest_data_file shell_test_data_file ringtone_file preloads_data_file preloads_media_file dhcp_data_file server_configurable_flags_data_file staging_data_file shutdown_checkpoints_system_data_file adb_keys_file apex_system_server_data_file apex_module_data_file apex_ota_reserved_file apex_rollback_data_file appcompat_data_file audio_data_file audioserver_data_file bluetooth_data_file bluetooth_logs_data_file bootstat_data_file boottrace_data_file camera_data_file credstore_data_file gatekeeper_data_file incident_data_file keychain_data_file keystore_data_file media_data_file media_rw_data_file media_userdir_file misc_user_data_file net_data_file network_watchlist_data_file nfc_data_file nfc_logs_data_file radio_data_file recovery_data_file shared_relro_file snapshotctl_log_data_file stats_config_data_file stats_data_file systemkeys_data_file textclassifier_data_file trace_data_file vpn_data_file wifi_data_file vold_data_file tee_data_file update_engine_data_file update_engine_log_data_file snapuserd_log_data_file method_trace_data_file gsi_data_file radio_core_data_file app_data_file privapp_data_file system_app_data_file cache_file overlayfs_file cache_backup_file cache_private_backup_file cache_recovery_file wallpaper_file shortcut_manager_icons icon_file asec_apk_file asec_public_file asec_image_file backup_data_file fingerprintd_data_file fingerprint_vendor_data_file app_fuse_file face_vendor_data_file iris_vendor_data_file bluetooth_socket misc_logd_file system_wpa_socket system_ndebug_socket system_unsolzygote_socket wpa_socket audiohal_data_file storaged_data_file wm_trace_data_file accessibility_trace_data_file perfetto_traces_data_file perfetto_traces_bugreport_data_file perfetto_traces_profiling_data_file perfetto_configs_data_file uprobestats_configs_data_file sdk_sandbox_system_data_file sdk_sandbox_data_file app_exec_data_file rollback_data_file checkin_data_file ota_image_data_file gsi_persistent_data_file emergency_data_file profcollectd_data_file apex_art_data_file apex_art_staging_data_file apex_compos_data_file apex_virt_data_file apex_tethering_data_file apex_appsearch_data_file apex_permission_data_file apex_scheduling_data_file apex_wifi_data_file font_data_file dmesgd_data_file odrefresh_data_file odsign_data_file odsign_metrics_file virtualizationservice_data_file environ_system_data_file bootanim_data_file ))
+(typeattribute core_data_file_type)
+(expandtypeattribute (core_data_file_type) false)
+(typeattributeset core_data_file_type (incremental_control_file system_data_root_file system_data_file system_userdir_file packages_list_file game_mode_intervention_list_file vendor_userdir_file unencrypted_data_file install_data_file drm_data_file adb_data_file anr_data_file tombstone_data_file apex_data_file apk_data_file apk_tmp_file apk_private_data_file apk_private_tmp_file dalvikcache_data_file ota_data_file ota_package_file user_profile_root_file user_profile_data_file profman_dump_data_file prereboot_data_file resourcecache_data_file shell_data_file property_data_file bootchart_data_file dropbox_data_file heapdump_data_file nativetest_data_file shell_test_data_file ringtone_file preloads_data_file preloads_media_file dhcp_data_file server_configurable_flags_data_file staging_data_file shutdown_checkpoints_system_data_file mirror_data_file adb_keys_file apex_system_server_data_file apex_module_data_file apex_ota_reserved_file apex_rollback_data_file appcompat_data_file audio_data_file audioserver_data_file bluetooth_data_file bluetooth_logs_data_file bootstat_data_file boottrace_data_file camera_data_file credstore_data_file gatekeeper_data_file incident_data_file keychain_data_file keystore_data_file media_data_file media_rw_data_file media_userdir_file misc_user_data_file net_data_file network_watchlist_data_file nfc_data_file nfc_logs_data_file radio_data_file recovery_data_file shared_relro_file snapshotctl_log_data_file stats_config_data_file stats_data_file systemkeys_data_file textclassifier_data_file trace_data_file vpn_data_file wifi_data_file vold_data_file update_engine_data_file update_engine_log_data_file snapuserd_log_data_file method_trace_data_file gsi_data_file radio_core_data_file app_data_file privapp_data_file system_app_data_file cache_file overlayfs_file cache_backup_file cache_private_backup_file cache_recovery_file wallpaper_file shortcut_manager_icons icon_file asec_apk_file asec_public_file asec_image_file backup_data_file fingerprintd_data_file app_fuse_file bluetooth_socket misc_logd_file system_wpa_socket system_ndebug_socket system_unsolzygote_socket wpa_socket audiohal_data_file storaged_data_file wm_trace_data_file accessibility_trace_data_file perfetto_traces_data_file perfetto_traces_bugreport_data_file perfetto_traces_profiling_data_file perfetto_configs_data_file uprobestats_configs_data_file sdk_sandbox_system_data_file sdk_sandbox_data_file app_exec_data_file rollback_data_file checkin_data_file ota_image_data_file gsi_persistent_data_file emergency_data_file profcollectd_data_file apex_art_data_file apex_art_staging_data_file apex_compos_data_file apex_virt_data_file apex_tethering_data_file apex_appsearch_data_file apex_permission_data_file apex_scheduling_data_file apex_wifi_data_file font_data_file dmesgd_data_file odrefresh_data_file odsign_data_file odsign_metrics_file virtualizationservice_data_file environ_system_data_file bootanim_data_file ))
+(typeattribute app_data_file_type)
+(expandtypeattribute (app_data_file_type) false)
+(typeattributeset app_data_file_type (shell_data_file bluetooth_data_file nfc_data_file radio_data_file app_data_file privapp_data_file system_app_data_file sdk_sandbox_data_file ))
+(typeattribute system_file_type)
+(typeattributeset system_file_type (adbd_exec aidl_lazy_test_server_exec apexd_exec bootanim_exec bootstat_exec bufferhubd_exec cameraserver_exec charger_exec crash_dump_exec credstore_exec dhcp_exec dnsmasq_exec drmserver_exec dumpstate_exec e2fs_exec extra_free_kbytes_exec system_file system_asan_options_file system_event_log_tags_file system_lib_file system_bootstrap_lib_file system_group_file system_linker_exec system_linker_config_file system_passwd_file system_seccomp_policy_file system_security_cacerts_file tcpdump_exec system_zoneinfo_file cgroup_desc_file cgroup_desc_api_file task_profiles_file task_profiles_api_file art_apex_dir bootanim_oem_file logcat_exec file_contexts_file mac_perms_file property_contexts_file seapp_contexts_file sepolicy_file service_contexts_file keystore2_key_contexts_file hwservice_contexts_file fingerprintd_exec flags_health_check_exec fsck_exec gatekeeperd_exec hwservicemanager_exec idmap_exec init_exec inputflinger_exec installd_exec keystore_exec llkd_exec lmkd_exec logd_exec mediadrmserver_exec mediaextractor_exec mediametrics_exec mediaserver_exec mediaswcodec_exec netd_exec netutils_wrapper_exec performanced_exec profman_exec recovery_persist_exec recovery_refresh_exec rs_exec runas_exec sdcardd_exec servicemanager_exec sgdisk_exec shell_exec simpleperf_app_runner_exec statsd_exec su_exec tombstoned_exec toolbox_exec uncrypt_exec update_engine_exec update_verifier_exec usbd_exec vdc_exec virtual_touchpad_exec vold_exec vold_prepare_subdirs_exec watchdogd_exec wificond_exec zygote_exec aconfigd_exec apex_test_prepostinstall_exec art_boot_exec artd_exec atrace_exec audioserver_exec auditctl_exec automotive_display_service_exec blank_screen_exec blkid_exec boringssl_self_test_exec bpfloader_exec canhalconfigurator_exec clatd_exec compos_verify_exec composd_exec cppreopts_exec crosvm_exec derive_classpath_exec derive_sdk_exec dex2oat_exec dexopt_chroot_setup_exec dexoptanalyzer_exec dmesgd_exec evsmanagerd_exec oatdump_exec fd_server_exec compos_exec compos_key_helper_exec art_exec_exec system_font_fallback_file system_aconfig_storage_file fsverity_init_exec fuseblkd_exec fuseblkd_untrusted_exec fwk_bufferhub_exec gki_apex_prepostinstall_exec gpuservice_exec gsid_exec hal_allocator_default_exec heapprofd_exec hidl_lazy_test_server_exec incident_exec incident_helper_exec incidentd_exec iw_exec linkerconfig_exec lpdumpd_exec mdnsd_exec mediatranscoding_exec mediatuner_exec migrate_legacy_obb_data_exec misctrl_exec mm_events_exec mtectrl_exec odrefresh_exec odsign_exec ot_daemon_exec otapreopt_chroot_exec otapreopt_slot_exec perfetto_exec postinstall_exec postinstall_dexopt_exec preloads_copy_exec preopt2cachename_exec prng_seeder_exec profcollectd_exec remount_exec rkpd_exec rss_hwm_reset_exec simpleperf_exec snapshotctl_exec snapuserd_exec stats_exec storaged_exec surfaceflinger_exec system_suspend_exec traced_exec traced_perf_exec traced_probes_exec uprobestats_exec vehicle_binding_util_exec viewcompiler_exec virtual_camera_exec virtualizationmanager_exec virtualizationservice_exec wait_for_keymaster_exec ))
+(typeattribute system_dlkm_file_type)
+(typeattributeset system_dlkm_file_type (system_dlkm_file ))
+(typeattribute vendor_file_type)
+(typeattributeset vendor_file_type (vendor_cgroup_desc_file vendor_task_profiles_file vendor_hal_file vendor_file vendor_app_file vendor_configs_file same_process_hal_file vndk_sp_file vendor_framework_file vendor_overlay_file vendor_public_lib_file vendor_public_framework_file vendor_microdroid_file vendor_keylayout_file vendor_keychars_file vendor_idc_file vendor_uuid_mapping_config_file vendor_vm_file vendor_vm_data_file vendor_apex_file vendor_apex_metadata_file vendor_service_contexts_file vendor_kernel_modules vendor_misc_writer_exec vendor_shell_exec vendor_toolbox_exec vendor_boringssl_self_test_exec vendor_aconfig_storage_file ))
+(typeattribute proc_type)
+(expandtypeattribute (proc_type) false)
+(typeattributeset proc_type (proc proc_security proc_drop_caches proc_overcommit_memory proc_min_free_order_shift proc_kpageflags proc_watermark_boost_factor proc_percpu_pagelist_high_fraction usermodehelper proc_qtaguid_ctrl proc_qtaguid_stat proc_bluetooth_writable proc_abi proc_asound proc_bootconfig proc_bpf proc_buddyinfo proc_cmdline proc_cpu_alignment proc_cpuinfo proc_dirty proc_diskstats proc_extra_free_kbytes proc_filesystems proc_fs_verity proc_hostname proc_hung_task proc_interrupts proc_iomem proc_kallsyms proc_keys proc_kmsg proc_loadavg proc_locks proc_lowmemorykiller proc_max_map_count proc_meminfo proc_misc proc_modules proc_mounts proc_net proc_net_tcp_udp proc_page_cluster proc_pagetypeinfo proc_panic proc_perf proc_pid_max proc_pipe_conf proc_pressure_cpu proc_pressure_io proc_pressure_mem proc_random proc_sched proc_slabinfo proc_stat proc_swaps proc_sysrq proc_timer proc_tty_drivers proc_uid_cputime_showstat proc_uid_cputime_removeuid proc_uid_io_stats proc_uid_procstat_set proc_uid_time_in_state proc_uid_concurrent_active_time proc_uid_concurrent_policy_time proc_uid_cpupower proc_uptime proc_version proc_vmallocinfo proc_vmstat proc_watermark_scale_factor proc_zoneinfo proc_vendor_sched config_gz proc_dt_avf ))
+(typeattribute proc_net_type)
+(expandtypeattribute (proc_net_type) true)
+(typeattributeset proc_net_type (proc_net ))
+(typeattribute sysfs_type)
+(typeattributeset sysfs_type (sysfs_usermodehelper sysfs sysfs_android_usb sysfs_uio sysfs_batteryinfo sysfs_bluetooth_writable sysfs_devfreq_cur sysfs_devfreq_dir sysfs_devices_block sysfs_dm sysfs_dm_verity sysfs_dma_heap sysfs_dmabuf_stats sysfs_dt_firmware_android sysfs_extcon sysfs_ion sysfs_ipv4 sysfs_kernel_notes sysfs_leds sysfs_loop sysfs_gpu sysfs_hwrandom sysfs_nfc_power_writable sysfs_wake_lock sysfs_net sysfs_power sysfs_rtc sysfs_suspend_stats sysfs_switch sysfs_sync_on_suspend sysfs_transparent_hugepage sysfs_lru_gen_enabled sysfs_usb sysfs_wakeup sysfs_wakeup_reasons sysfs_fs_ext4_features sysfs_fs_f2fs sysfs_fs_fuse_bpf sysfs_fs_fuse_features sysfs_fs_incfs_features sysfs_fs_incfs_metrics sysfs_vendor_sched sysfs_devices_cs_etm sysfs_devices_system_cpu sysfs_lowmemorykiller sysfs_wlan_fwpath sysfs_vibrator sysfs_uhid sysfs_thermal sysfs_zram sysfs_zram_uevent sysfs_dt_avf sysfs_uprobe ))
+(typeattribute debugfs_type)
+(typeattributeset debugfs_type (debugfs debugfs_kprobes debugfs_mmc debugfs_mm_events_tracing debugfs_trace_marker debugfs_tracing debugfs_tracing_debug debugfs_tracing_instances debugfs_tracing_printk_formats debugfs_wakeup_sources debugfs_wifi_tracing debugfs_bootreceiver_tracing debugfs_kcov ))
+(typeattribute tracefs_type)
+(typeattributeset tracefs_type (debugfs_mm_events_tracing debugfs_trace_marker debugfs_tracing debugfs_tracing_debug debugfs_tracing_instances debugfs_tracing_printk_formats debugfs_wifi_tracing debugfs_bootreceiver_tracing ))
+(typeattribute sdcard_type)
+(typeattributeset sdcard_type (fuseblk sdcardfs vfat exfat ))
+(typeattribute node_type)
+(typeattributeset node_type (node ))
+(typeattribute netif_type)
+(typeattributeset netif_type (netif ))
+(typeattribute port_type)
+(typeattributeset port_type (port ))
+(typeattribute property_type)
+(typeattributeset property_type (apexd_prop bootloader_boot_reason_prop device_config_activity_manager_native_boot_prop device_config_boot_count_prop device_config_input_native_boot_prop device_config_netd_native_prop device_config_reset_performed_prop firstboot_prop boottime_prop charger_prop cold_boot_done_prop ctl_adbd_prop ctl_apexd_prop ctl_bootanim_prop ctl_bugreport_prop ctl_console_prop ctl_dumpstate_prop ctl_fuse_prop ctl_gsid_prop ctl_interface_restart_prop ctl_interface_stop_prop ctl_mdnsd_prop ctl_restart_prop ctl_rildaemon_prop ctl_sigstop_prop dynamic_system_prop heapprofd_enabled_prop llkd_prop lpdumpd_prop mmc_prop mock_ota_prop net_dns_prop overlay_prop persistent_properties_ready_prop safemode_prop system_lmk_prop system_trace_prop test_boot_reason_prop time_prop traced_enabled_prop traced_lazy_prop aac_drc_prop adaptive_haptics_prop apex_ready_prop arm64_memtag_prop binder_cache_bluetooth_server_prop binder_cache_system_server_prop binder_cache_telephony_server_prop boot_status_prop bootanim_system_prop bootloader_prop boottime_public_prop bq_config_prop build_bootimage_prop build_prop composd_vm_art_prop device_config_aconfig_flags_prop device_config_camera_native_prop device_config_edgetpu_native_prop device_config_media_native_prop device_config_nnapi_native_prop device_config_runtime_native_boot_prop device_config_runtime_native_prop device_config_surface_flinger_native_boot_prop device_config_vendor_system_native_prop device_config_vendor_system_native_boot_prop drm_forcel3_prop fingerprint_prop gwp_asan_prop hal_instrumentation_prop userdebug_or_eng_prop init_service_status_prop libc_debug_prop module_sdkextensions_prop nnapi_ext_deny_product_prop persist_wm_debug_prop power_debug_prop property_service_version_prop provisioned_prop restorecon_prop retaildemo_prop servicemanager_prop smart_idle_maint_enabled_prop socket_hook_prop sqlite_log_prop surfaceflinger_display_prop system_boot_reason_prop system_jvmti_agent_prop traced_oome_heap_session_count_prop ab_update_gki_prop usb_prop userspace_reboot_exported_prop vold_status_prop vts_status_prop config_prop cppreopt_prop dalvik_prop debuggerd_prop device_logging_prop dhcp_prop dumpstate_prop exported3_system_prop exported_dumpstate_prop exported_secure_prop heapprofd_prop net_radio_prop pan_result_prop persist_debug_prop shell_prop test_harness_prop theme_prop use_memfd_prop vold_prop apexd_config_prop apexd_select_prop aaudio_config_prop apk_verity_prop audio_config_prop bootanim_config_prop bluetooth_config_prop build_attestation_prop build_config_prop build_odm_prop build_vendor_prop camera_calibration_prop camera_config_prop camera2_extensions_prop camerax_extensions_prop charger_config_prop codec2_config_prop composd_vm_vendor_prop cpu_variant_prop debugfs_restriction_prop drm_service_config_prop exported_camera_prop exported_config_prop exported_default_prop ffs_config_prop framework_watchdog_config_prop graphics_config_prop hdmi_config_prop hw_timeout_multiplier_prop hypervisor_prop hypervisor_restricted_prop incremental_prop input_device_config_prop keyguard_config_prop keystore_config_prop lmkd_config_prop media_config_prop media_variant_prop mediadrm_config_prop mm_events_config_prop oem_unlock_prop ota_build_prop packagemanager_config_prop quick_start_prop recovery_config_prop recovery_usb_config_prop sendbug_config_prop soc_prop storage_config_prop storagemanager_config_prop surfaceflinger_prop suspend_prop systemsound_config_prop telephony_config_prop threadnetwork_config_prop tombstone_config_prop usb_config_prop userspace_reboot_config_prop vehicle_hal_prop vendor_security_patch_level_prop vendor_socket_hook_prop virtual_ab_prop vndk_prop vts_config_prop vold_config_prop wifi_config_prop zram_config_prop zygote_config_prop dck_prop tuner_config_prop usb_uvc_enabled_prop setupwizard_mode_prop pm_archiving_enabled_prop adbd_config_prop audio_prop bluetooth_a2dp_offload_prop bluetooth_audio_hal_prop bluetooth_prop bpf_progs_loaded_prop charger_status_prop ctl_default_prop ctl_interface_start_prop ctl_start_prop ctl_stop_prop dalvik_config_prop dalvik_dynamic_config_prop dalvik_runtime_prop debug_prop device_config_memory_safety_native_boot_prop device_config_memory_safety_native_prop dumpstate_options_prop exported_system_prop exported_bluetooth_prop exported_overlay_prop exported_pm_prop future_pm_prop ffs_control_prop framework_status_prop gesture_prop graphics_config_writable_prop hal_dumpstate_config_prop sota_prop hwservicemanager_prop lmkd_prop locale_prop logd_prop logpersistd_logging_prop log_prop log_tag_prop lowpan_prop nfc_prop ota_prop permissive_mte_prop powerctl_prop qemu_hw_prop qemu_sf_lcd_density_prop radio_control_prop radio_prop serialno_prop surfaceflinger_color_prop system_prop system_user_mode_emulation_prop telephony_status_prop timezone_prop usb_control_prop vold_post_fs_data_prop wifi_hal_prop wifi_log_prop wifi_prop zram_control_prop default_prop rebootescrow_hal_prop virtual_face_hal_prop virtual_fingerprint_hal_prop persist_vendor_debug_wifi_prop vendor_default_prop adbd_prop apexd_payload_metadata_prop ctl_snapuserd_prop crashrecovery_prop device_config_core_experiments_team_internal_prop device_config_lmkd_native_prop device_config_mglru_native_prop device_config_profcollect_native_boot_prop device_config_remote_key_provisioning_native_prop device_config_statsd_native_prop device_config_statsd_native_boot_prop device_config_storage_native_boot_prop device_config_sys_traced_prop device_config_window_manager_native_boot_prop device_config_configuration_prop device_config_connectivity_prop device_config_swcodec_native_prop device_config_tethering_u_or_later_native_prop dmesgd_start_prop fastbootd_protocol_prop gsid_prop init_perf_lsm_hooks_prop init_service_status_private_prop init_storage_prop init_svc_debug_prop keystore_crash_prop keystore_listen_prop last_boot_reason_prop localization_prop logd_auditrate_prop lower_kptr_restrict_prop net_464xlat_fromvendor_prop net_connectivity_prop netd_stable_secret_prop next_boot_prop odsign_prop misctrl_prop perf_drop_caches_prop pm_prop profcollectd_node_id_prop radio_cdma_ecm_prop remote_prov_prop rollback_test_prop setupwizard_prop snapuserd_prop system_adbd_prop system_audio_config_prop timezone_metadata_prop traced_perf_enabled_prop uprobestats_start_with_config_prop tuner_server_ctl_prop userspace_reboot_log_prop userspace_reboot_test_prop verity_status_prop zygote_wrap_prop ctl_mediatranscoding_prop ctl_odsign_prop virtualizationservice_prop ctl_apex_load_prop enable_16k_pages_prop sensors_config_prop hypervisor_pvmfw_prop hypervisor_virtualizationmanager_prop game_manager_config_prop hidl_memory_prop suspend_debug_prop device_config_virtualization_framework_native_prop log_file_logger_prop persist_sysui_builder_extras_prop persist_sysui_ranking_update_prop ))
+(typeattribute core_property_type)
+(typeattributeset core_property_type (restorecon_prop usb_prop config_prop cppreopt_prop dalvik_prop debuggerd_prop dhcp_prop dumpstate_prop net_radio_prop pan_result_prop persist_debug_prop shell_prop vold_prop audio_prop debug_prop logd_prop nfc_prop ota_prop powerctl_prop radio_prop system_prop ))
+(typeattribute log_property_type)
+(typeattributeset log_property_type (log_prop log_tag_prop wifi_log_prop ))
+(typeattribute extended_core_property_type)
+(typeattribute system_property_type)
+(expandtypeattribute (system_property_type) false)
+(typeattributeset system_property_type (apexd_prop bootloader_boot_reason_prop device_config_activity_manager_native_boot_prop device_config_boot_count_prop device_config_input_native_boot_prop device_config_netd_native_prop device_config_reset_performed_prop firstboot_prop boottime_prop charger_prop cold_boot_done_prop ctl_adbd_prop ctl_apexd_prop ctl_bootanim_prop ctl_bugreport_prop ctl_console_prop ctl_dumpstate_prop ctl_fuse_prop ctl_gsid_prop ctl_interface_restart_prop ctl_interface_stop_prop ctl_mdnsd_prop ctl_restart_prop ctl_rildaemon_prop ctl_sigstop_prop dynamic_system_prop heapprofd_enabled_prop llkd_prop lpdumpd_prop mmc_prop mock_ota_prop net_dns_prop overlay_prop persistent_properties_ready_prop safemode_prop system_lmk_prop system_trace_prop test_boot_reason_prop time_prop traced_enabled_prop traced_lazy_prop aac_drc_prop adaptive_haptics_prop apex_ready_prop arm64_memtag_prop binder_cache_bluetooth_server_prop binder_cache_system_server_prop binder_cache_telephony_server_prop boot_status_prop bootanim_system_prop bootloader_prop boottime_public_prop bq_config_prop build_bootimage_prop build_prop composd_vm_art_prop device_config_aconfig_flags_prop device_config_camera_native_prop device_config_edgetpu_native_prop device_config_media_native_prop device_config_nnapi_native_prop device_config_runtime_native_boot_prop device_config_runtime_native_prop device_config_surface_flinger_native_boot_prop device_config_vendor_system_native_prop device_config_vendor_system_native_boot_prop drm_forcel3_prop fingerprint_prop gwp_asan_prop hal_instrumentation_prop userdebug_or_eng_prop init_service_status_prop libc_debug_prop module_sdkextensions_prop nnapi_ext_deny_product_prop persist_wm_debug_prop power_debug_prop property_service_version_prop provisioned_prop restorecon_prop retaildemo_prop servicemanager_prop smart_idle_maint_enabled_prop socket_hook_prop sqlite_log_prop surfaceflinger_display_prop system_boot_reason_prop system_jvmti_agent_prop traced_oome_heap_session_count_prop ab_update_gki_prop usb_prop userspace_reboot_exported_prop vold_status_prop vts_status_prop config_prop cppreopt_prop dalvik_prop debuggerd_prop device_logging_prop dhcp_prop dumpstate_prop exported3_system_prop exported_dumpstate_prop exported_secure_prop heapprofd_prop net_radio_prop pan_result_prop persist_debug_prop shell_prop test_harness_prop theme_prop use_memfd_prop vold_prop apexd_config_prop apexd_select_prop aaudio_config_prop apk_verity_prop audio_config_prop bootanim_config_prop bluetooth_config_prop build_attestation_prop build_config_prop build_odm_prop build_vendor_prop camera_calibration_prop camera_config_prop camera2_extensions_prop camerax_extensions_prop charger_config_prop codec2_config_prop composd_vm_vendor_prop cpu_variant_prop debugfs_restriction_prop drm_service_config_prop exported_camera_prop exported_config_prop exported_default_prop ffs_config_prop framework_watchdog_config_prop graphics_config_prop hdmi_config_prop hw_timeout_multiplier_prop hypervisor_prop hypervisor_restricted_prop incremental_prop input_device_config_prop keyguard_config_prop keystore_config_prop lmkd_config_prop media_config_prop media_variant_prop mediadrm_config_prop mm_events_config_prop oem_unlock_prop ota_build_prop packagemanager_config_prop quick_start_prop recovery_config_prop recovery_usb_config_prop sendbug_config_prop soc_prop storage_config_prop storagemanager_config_prop surfaceflinger_prop suspend_prop systemsound_config_prop telephony_config_prop threadnetwork_config_prop tombstone_config_prop usb_config_prop userspace_reboot_config_prop vehicle_hal_prop vendor_security_patch_level_prop vendor_socket_hook_prop virtual_ab_prop vndk_prop vts_config_prop vold_config_prop wifi_config_prop zram_config_prop zygote_config_prop dck_prop tuner_config_prop usb_uvc_enabled_prop setupwizard_mode_prop pm_archiving_enabled_prop adbd_config_prop audio_prop bluetooth_a2dp_offload_prop bluetooth_audio_hal_prop bluetooth_prop bpf_progs_loaded_prop charger_status_prop ctl_default_prop ctl_interface_start_prop ctl_start_prop ctl_stop_prop dalvik_config_prop dalvik_dynamic_config_prop dalvik_runtime_prop debug_prop device_config_memory_safety_native_boot_prop device_config_memory_safety_native_prop dumpstate_options_prop exported_system_prop exported_bluetooth_prop exported_overlay_prop exported_pm_prop future_pm_prop ffs_control_prop framework_status_prop gesture_prop graphics_config_writable_prop hal_dumpstate_config_prop sota_prop hwservicemanager_prop lmkd_prop locale_prop logd_prop logpersistd_logging_prop log_prop log_tag_prop lowpan_prop nfc_prop ota_prop permissive_mte_prop powerctl_prop qemu_hw_prop qemu_sf_lcd_density_prop radio_control_prop radio_prop serialno_prop surfaceflinger_color_prop system_prop system_user_mode_emulation_prop telephony_status_prop timezone_prop usb_control_prop vold_post_fs_data_prop wifi_hal_prop wifi_log_prop wifi_prop zram_control_prop default_prop adbd_prop apexd_payload_metadata_prop ctl_snapuserd_prop crashrecovery_prop device_config_core_experiments_team_internal_prop device_config_lmkd_native_prop device_config_mglru_native_prop device_config_profcollect_native_boot_prop device_config_remote_key_provisioning_native_prop device_config_statsd_native_prop device_config_statsd_native_boot_prop device_config_storage_native_boot_prop device_config_sys_traced_prop device_config_window_manager_native_boot_prop device_config_configuration_prop device_config_connectivity_prop device_config_swcodec_native_prop device_config_tethering_u_or_later_native_prop dmesgd_start_prop fastbootd_protocol_prop gsid_prop init_perf_lsm_hooks_prop init_service_status_private_prop init_storage_prop init_svc_debug_prop keystore_crash_prop keystore_listen_prop last_boot_reason_prop localization_prop logd_auditrate_prop lower_kptr_restrict_prop net_464xlat_fromvendor_prop net_connectivity_prop netd_stable_secret_prop next_boot_prop odsign_prop misctrl_prop perf_drop_caches_prop pm_prop profcollectd_node_id_prop radio_cdma_ecm_prop remote_prov_prop rollback_test_prop setupwizard_prop snapuserd_prop system_adbd_prop system_audio_config_prop timezone_metadata_prop traced_perf_enabled_prop uprobestats_start_with_config_prop tuner_server_ctl_prop userspace_reboot_log_prop userspace_reboot_test_prop verity_status_prop zygote_wrap_prop ctl_mediatranscoding_prop ctl_odsign_prop virtualizationservice_prop ctl_apex_load_prop enable_16k_pages_prop sensors_config_prop hypervisor_pvmfw_prop hypervisor_virtualizationmanager_prop game_manager_config_prop hidl_memory_prop suspend_debug_prop device_config_virtualization_framework_native_prop log_file_logger_prop persist_sysui_builder_extras_prop persist_sysui_ranking_update_prop ))
+(typeattribute system_internal_property_type)
+(expandtypeattribute (system_internal_property_type) false)
+(typeattributeset system_internal_property_type (apexd_prop bootloader_boot_reason_prop device_config_activity_manager_native_boot_prop device_config_boot_count_prop device_config_input_native_boot_prop device_config_netd_native_prop device_config_reset_performed_prop firstboot_prop boottime_prop charger_prop cold_boot_done_prop ctl_adbd_prop ctl_apexd_prop ctl_bootanim_prop ctl_bugreport_prop ctl_console_prop ctl_dumpstate_prop ctl_fuse_prop ctl_gsid_prop ctl_interface_restart_prop ctl_interface_stop_prop ctl_mdnsd_prop ctl_restart_prop ctl_rildaemon_prop ctl_sigstop_prop dynamic_system_prop heapprofd_enabled_prop llkd_prop lpdumpd_prop mmc_prop mock_ota_prop net_dns_prop overlay_prop persistent_properties_ready_prop safemode_prop system_lmk_prop system_trace_prop test_boot_reason_prop time_prop traced_enabled_prop traced_lazy_prop default_prop adbd_prop apexd_payload_metadata_prop ctl_snapuserd_prop crashrecovery_prop device_config_core_experiments_team_internal_prop device_config_lmkd_native_prop device_config_mglru_native_prop device_config_profcollect_native_boot_prop device_config_remote_key_provisioning_native_prop device_config_statsd_native_prop device_config_statsd_native_boot_prop device_config_storage_native_boot_prop device_config_sys_traced_prop device_config_window_manager_native_boot_prop device_config_configuration_prop device_config_connectivity_prop device_config_swcodec_native_prop device_config_tethering_u_or_later_native_prop dmesgd_start_prop fastbootd_protocol_prop gsid_prop init_perf_lsm_hooks_prop init_service_status_private_prop init_storage_prop init_svc_debug_prop keystore_crash_prop keystore_listen_prop last_boot_reason_prop localization_prop logd_auditrate_prop lower_kptr_restrict_prop net_464xlat_fromvendor_prop net_connectivity_prop netd_stable_secret_prop next_boot_prop odsign_prop misctrl_prop perf_drop_caches_prop pm_prop profcollectd_node_id_prop radio_cdma_ecm_prop remote_prov_prop rollback_test_prop setupwizard_prop snapuserd_prop system_adbd_prop system_audio_config_prop timezone_metadata_prop traced_perf_enabled_prop uprobestats_start_with_config_prop tuner_server_ctl_prop userspace_reboot_log_prop userspace_reboot_test_prop verity_status_prop zygote_wrap_prop ctl_mediatranscoding_prop ctl_odsign_prop virtualizationservice_prop ctl_apex_load_prop enable_16k_pages_prop sensors_config_prop hypervisor_pvmfw_prop hypervisor_virtualizationmanager_prop game_manager_config_prop hidl_memory_prop suspend_debug_prop ))
+(typeattribute system_restricted_property_type)
+(expandtypeattribute (system_restricted_property_type) false)
+(typeattributeset system_restricted_property_type (aac_drc_prop adaptive_haptics_prop apex_ready_prop arm64_memtag_prop binder_cache_bluetooth_server_prop binder_cache_system_server_prop binder_cache_telephony_server_prop boot_status_prop bootanim_system_prop bootloader_prop boottime_public_prop bq_config_prop build_bootimage_prop build_prop composd_vm_art_prop device_config_aconfig_flags_prop device_config_camera_native_prop device_config_edgetpu_native_prop device_config_media_native_prop device_config_nnapi_native_prop device_config_runtime_native_boot_prop device_config_runtime_native_prop device_config_surface_flinger_native_boot_prop device_config_vendor_system_native_prop device_config_vendor_system_native_boot_prop drm_forcel3_prop fingerprint_prop gwp_asan_prop hal_instrumentation_prop userdebug_or_eng_prop init_service_status_prop libc_debug_prop module_sdkextensions_prop nnapi_ext_deny_product_prop persist_wm_debug_prop power_debug_prop property_service_version_prop provisioned_prop restorecon_prop retaildemo_prop servicemanager_prop smart_idle_maint_enabled_prop socket_hook_prop sqlite_log_prop surfaceflinger_display_prop system_boot_reason_prop system_jvmti_agent_prop traced_oome_heap_session_count_prop ab_update_gki_prop usb_prop userspace_reboot_exported_prop vold_status_prop vts_status_prop config_prop cppreopt_prop dalvik_prop debuggerd_prop device_logging_prop dhcp_prop dumpstate_prop exported3_system_prop exported_dumpstate_prop exported_secure_prop heapprofd_prop net_radio_prop pan_result_prop persist_debug_prop shell_prop test_harness_prop theme_prop use_memfd_prop vold_prop device_config_virtualization_framework_native_prop log_file_logger_prop persist_sysui_builder_extras_prop persist_sysui_ranking_update_prop ))
+(typeattribute system_public_property_type)
+(expandtypeattribute (system_public_property_type) false)
+(typeattributeset system_public_property_type (apexd_config_prop apexd_select_prop aaudio_config_prop apk_verity_prop audio_config_prop bootanim_config_prop bluetooth_config_prop build_attestation_prop build_config_prop build_odm_prop build_vendor_prop camera_calibration_prop camera_config_prop camera2_extensions_prop camerax_extensions_prop charger_config_prop codec2_config_prop composd_vm_vendor_prop cpu_variant_prop debugfs_restriction_prop drm_service_config_prop exported_camera_prop exported_config_prop exported_default_prop ffs_config_prop framework_watchdog_config_prop graphics_config_prop hdmi_config_prop hw_timeout_multiplier_prop hypervisor_prop hypervisor_restricted_prop incremental_prop input_device_config_prop keyguard_config_prop keystore_config_prop lmkd_config_prop media_config_prop media_variant_prop mediadrm_config_prop mm_events_config_prop oem_unlock_prop ota_build_prop packagemanager_config_prop quick_start_prop recovery_config_prop recovery_usb_config_prop sendbug_config_prop soc_prop storage_config_prop storagemanager_config_prop surfaceflinger_prop suspend_prop systemsound_config_prop telephony_config_prop threadnetwork_config_prop tombstone_config_prop usb_config_prop userspace_reboot_config_prop vehicle_hal_prop vendor_security_patch_level_prop vendor_socket_hook_prop virtual_ab_prop vndk_prop vts_config_prop vold_config_prop wifi_config_prop zram_config_prop zygote_config_prop dck_prop tuner_config_prop usb_uvc_enabled_prop setupwizard_mode_prop pm_archiving_enabled_prop adbd_config_prop audio_prop bluetooth_a2dp_offload_prop bluetooth_audio_hal_prop bluetooth_prop bpf_progs_loaded_prop charger_status_prop ctl_default_prop ctl_interface_start_prop ctl_start_prop ctl_stop_prop dalvik_config_prop dalvik_dynamic_config_prop dalvik_runtime_prop debug_prop device_config_memory_safety_native_boot_prop device_config_memory_safety_native_prop dumpstate_options_prop exported_system_prop exported_bluetooth_prop exported_overlay_prop exported_pm_prop future_pm_prop ffs_control_prop framework_status_prop gesture_prop graphics_config_writable_prop hal_dumpstate_config_prop sota_prop hwservicemanager_prop lmkd_prop locale_prop logd_prop logpersistd_logging_prop log_prop log_tag_prop lowpan_prop nfc_prop ota_prop permissive_mte_prop powerctl_prop qemu_hw_prop qemu_sf_lcd_density_prop radio_control_prop radio_prop serialno_prop surfaceflinger_color_prop system_prop system_user_mode_emulation_prop telephony_status_prop timezone_prop usb_control_prop vold_post_fs_data_prop wifi_hal_prop wifi_log_prop wifi_prop zram_control_prop ))
+(typeattribute keystore2_key_type)
+(typeattributeset keystore2_key_type (keystore wifi_key shell_key su_key vold_key odsign_key locksettings_key resume_on_reboot_key ))
+(typeattribute vendor_property_type)
+(expandtypeattribute (vendor_property_type) false)
+(typeattributeset vendor_property_type (rebootescrow_hal_prop virtual_face_hal_prop virtual_fingerprint_hal_prop persist_vendor_debug_wifi_prop vendor_default_prop ))
+(typeattribute vendor_internal_property_type)
+(expandtypeattribute (vendor_internal_property_type) false)
+(typeattributeset vendor_internal_property_type (rebootescrow_hal_prop virtual_face_hal_prop virtual_fingerprint_hal_prop vendor_default_prop ))
+(typeattribute vendor_restricted_property_type)
+(expandtypeattribute (vendor_restricted_property_type) false)
+(typeattribute vendor_public_property_type)
+(expandtypeattribute (vendor_public_property_type) false)
+(typeattributeset vendor_public_property_type (persist_vendor_debug_wifi_prop ))
+(typeattribute system_server_service)
+(typeattributeset system_server_service (device_config_updatable_service ondevicepersonalization_system_service profiling_service accessibility_service account_service activity_service activity_task_service adb_service adservices_manager_service alarm_service app_binding_service app_hibernation_service app_integrity_service app_prediction_service app_search_service appops_service appwidget_service archive_service assetatlas_service attestation_verification_service audio_service auth_service autofill_service backup_service batterystats_service battery_service binder_calls_stats_service blob_store_service bluetooth_manager_service broadcastradio_service cacheinfo_service cameraproxy_service clipboard_service cloudsearch_service contexthub_service contextual_search_service crossprofileapps_service IProxyService_service companion_device_service connectivity_native_service connectivity_service connmetrics_service consumer_ir_service content_capture_service content_suggestions_service content_service country_detector_service coverage_service cpuinfo_service cpu_monitor_service credential_service dataloader_manager_service dbinfo_service device_config_service device_policy_service device_state_service deviceidle_service device_identifiers_service devicestoragemonitor_service diskstats_service display_service domain_verification_service color_display_service ecm_enhanced_confirmation_service external_vibrator_service file_integrity_service font_service netd_listener_service network_watchlist_service devicelock_service DockObserver_service dreams_service dropbox_service ethernet_service biometric_service bugreport_service platform_compat_service face_service fingerprint_service fwk_altitude_service fwk_stats_service fwk_sensor_service fwk_vibrator_control_service game_service gfxinfo_service gnss_time_update_service grammatical_inflection_service graphicsstats_service hardware_service hardware_properties_service hdmi_control_service healthconnect_service hint_service imms_service incremental_service input_method_service input_service ipsec_service iris_service jobscheduler_service launcherapps_service legacy_permission_service light_service locale_service location_service location_time_zone_manager_service lock_settings_service looper_stats_service media_communication_service media_metrics_service media_projection_service media_router_service media_session_service meminfo_service memtrackproxy_service midi_service mount_service music_recognition_service nearby_service netpolicy_service netstats_service network_management_service network_score_service network_stack_service network_time_update_service notification_service oem_lock_service otadexopt_service overlay_service pac_proxy_service package_service package_native_service people_service permission_service permissionmgr_service permission_checker_service persistent_data_block_service pinner_service powerstats_service power_service print_service processinfo_service procstats_service reboot_readiness_service recovery_service registry_service remote_auth_service remote_provisioning_service resources_manager_service restrictions_service role_service rollback_service runtime_service rttmanager_service samplingprofiler_service scheduling_policy_service search_service search_ui_service sec_key_att_app_id_provider_service security_state_service selection_toolbar_service sensitive_content_protection_service sensorservice_service sensor_privacy_service serial_service servicediscovery_service settings_service shortcut_service slice_service smartspace_service statusbar_service storagestats_service sdk_sandbox_service system_config_service system_server_dumper_service system_update_service soundtrigger_middleware_service speech_recognition_service tare_service task_service testharness_service textclassification_service textservices_service texttospeech_service telecom_service thermal_service threadnetwork_service timedetector_service timezonedetector_service translation_service trust_service tv_ad_service tv_iapp_service tv_input_service tv_tuner_resource_mgr_service uimode_service updatelock_service uri_grants_service usagestats_service usb_service user_service uwb_service vcn_management_service vibrator_service vibrator_manager_service virtual_device_service virtual_device_native_service voiceinteraction_service vpn_management_service vr_manager_service wallpaper_service wallpaper_effects_generation_service webviewupdate_service wifip2p_service wifiscanner_service wifi_service wifiaware_service window_service inputflinger_service tethering_service emergency_affordance_service adaptive_auth_service ambient_context_service attention_service bg_install_control_service communal_service dynamic_system_service feature_flags_service incidentcompanion_service logcat_service resolver_service safety_center_service statsbootstrap_service statscompanion_service statsmanager_service tracingproxy_service transparency_service wearable_sensing_service ))
+(typeattribute app_api_service)
+(typeattributeset app_api_service (batteryproperties_service gatekeeper_service gpu_service credstore_service mediatranscoding_service profiling_service surfaceflinger_service accessibility_service account_service activity_service activity_task_service alarm_service app_hibernation_service app_prediction_service app_search_service appops_service appwidget_service archive_service assetatlas_service attestation_verification_service audio_service auth_service autofill_service backup_service batterystats_service blob_store_service bluetooth_manager_service broadcastradio_service clipboard_service cloudsearch_service contexthub_service contextual_search_service crossprofileapps_service IProxyService_service companion_device_service connectivity_native_service connectivity_service connmetrics_service consumer_ir_service content_capture_service content_suggestions_service content_service country_detector_service credential_service device_policy_service device_state_service deviceidle_service device_identifiers_service display_service domain_verification_service color_display_service ecm_enhanced_confirmation_service file_integrity_service font_service devicelock_service dreams_service dropbox_service ethernet_service biometric_service bugreport_service platform_compat_service face_service fingerprint_service fwk_stats_service game_service grammatical_inflection_service graphicsstats_service hardware_properties_service hdmi_control_service healthconnect_service hint_service imms_service input_method_service input_service ipsec_service iris_service jobscheduler_service launcherapps_service legacy_permission_service light_service locale_service location_service lock_settings_service media_communication_service media_metrics_service media_projection_service media_router_service media_session_service memtrackproxy_service midi_service mount_service music_recognition_service nearby_service netpolicy_service netstats_service network_management_service notification_service pac_proxy_service package_service package_native_service people_service permission_service permissionmgr_service permission_checker_service powerstats_service power_service print_service procstats_service reboot_readiness_service registry_service remote_auth_service restrictions_service role_service rollback_service rttmanager_service search_service search_ui_service sec_key_att_app_id_provider_service security_state_service selection_toolbar_service sensitive_content_protection_service sensorservice_service sensor_privacy_service servicediscovery_service settings_service shortcut_service slice_service smartspace_service statusbar_service storagestats_service sdk_sandbox_service speech_recognition_service tare_service textclassification_service textservices_service texttospeech_service telecom_service thermal_service threadnetwork_service timedetector_service timezonedetector_service translation_service trust_service tv_ad_service tv_iapp_service tv_input_service tv_tuner_resource_mgr_service uimode_service uri_grants_service usagestats_service usb_service user_service uwb_service vcn_management_service vibrator_service vibrator_manager_service virtual_device_service virtual_device_native_service voiceinteraction_service vpn_management_service wallpaper_service wallpaper_effects_generation_service webviewupdate_service wifip2p_service wifi_service wifiaware_service tethering_service ambient_context_service communal_service feature_flags_service incidentcompanion_service mediatuner_service safety_center_service wearable_sensing_service ))
+(typeattribute ephemeral_app_api_service)
+(typeattributeset ephemeral_app_api_service (batteryproperties_service gpu_service surfaceflinger_service accessibility_service account_service activity_service activity_task_service alarm_service app_search_service appops_service appwidget_service assetatlas_service audio_service autofill_service backup_service batterystats_service bluetooth_manager_service clipboard_service IProxyService_service companion_device_service connectivity_native_service connectivity_service connmetrics_service consumer_ir_service content_capture_service content_suggestions_service content_service country_detector_service credential_service deviceidle_service device_identifiers_service display_service font_service devicelock_service dreams_service dropbox_service platform_compat_service game_service grammatical_inflection_service graphicsstats_service hardware_properties_service hint_service imms_service input_method_service input_service ipsec_service jobscheduler_service launcherapps_service legacy_permission_service light_service locale_service location_service media_communication_service media_metrics_service media_projection_service media_router_service media_session_service memtrackproxy_service midi_service mount_service music_recognition_service netpolicy_service netstats_service network_management_service notification_service package_service package_native_service permission_service permissionmgr_service permission_checker_service power_service print_service procstats_service registry_service restrictions_service rttmanager_service search_service security_state_service selection_toolbar_service sensorservice_service sensor_privacy_service servicediscovery_service settings_service statusbar_service storagestats_service speech_recognition_service textclassification_service textservices_service texttospeech_service telecom_service thermal_service timedetector_service translation_service tv_ad_service tv_iapp_service tv_input_service uimode_service uri_grants_service usagestats_service user_service vcn_management_service vibrator_service vibrator_manager_service virtual_device_native_service voiceinteraction_service webviewupdate_service tethering_service ))
+(typeattribute system_api_service)
+(typeattributeset system_api_service (device_config_updatable_service ondevicepersonalization_system_service adb_service adservices_manager_service app_hibernation_service app_integrity_service cacheinfo_service cpuinfo_service credential_service dbinfo_service device_state_service diskstats_service color_display_service gfxinfo_service lock_settings_service meminfo_service network_score_service oem_lock_service overlay_service persistent_data_block_service resources_manager_service serial_service system_config_service system_server_dumper_service updatelock_service wifiscanner_service window_service inputflinger_service bg_install_control_service dynamic_system_service incidentcompanion_service safety_center_service statsmanager_service ))
+(typeattribute protected_service)
+(typeattributeset protected_service (hal_audio_service hal_authgraph_service hal_authsecret_service hal_bluetooth_service hal_bootctl_service hal_broadcastradio_service hal_camera_service hal_can_controller_service hal_confirmationui_service hal_contexthub_service hal_dumpstate_service hal_evs_service hal_face_service hal_fastboot_service hal_fingerprint_service hal_gnss_service hal_graphics_composer_service hal_health_service hal_health_storage_service hal_identity_service hal_input_processor_service hal_ir_service hal_ivn_service hal_keymint_service hal_light_service hal_macsec_service hal_memtrack_service hal_nfc_service hal_oemlock_service hal_power_service hal_power_stats_service hal_radio_service hal_rebootescrow_service hal_remoteaccess_service hal_remotelyprovisionedcomponent_avf_service hal_remotelyprovisionedcomponent_service hal_sensors_service hal_secretkeeper_service hal_secureclock_service hal_secure_element_service hal_sharedsecret_service hal_system_suspend_service hal_tetheroffload_service hal_thermal_service hal_tv_hdmi_cec_service hal_tv_hdmi_connection_service hal_tv_hdmi_earc_service hal_tv_input_service hal_threadnetwork_service hal_tv_tuner_service hal_usb_service hal_usb_gadget_service hal_uwb_service hal_vehicle_service hal_vibrator_service hal_weaver_service hal_nlinterceptor_service hal_wifi_service hal_wifi_hostapd_service hal_wifi_supplicant_service hal_gatekeeper_service ))
+(typeattribute service_manager_type)
+(typeattributeset service_manager_type (aidl_lazy_test_service apc_service apex_service artd_service artd_pre_reboot_service audioserver_service authorization_service batteryproperties_service bluetooth_service cameraserver_service fwk_camera_service default_android_service device_config_updatable_service dexopt_chroot_setup_service dnsresolver_service drmserver_service dumpstate_service evsmanagerd_service fingerprintd_service fwk_automotive_display_service gatekeeper_service gpu_service idmap_service incident_service installd_service credstore_service keystore_compat_hal_service keystore_maintenance_service keystore_metrics_service keystore_service legacykeystore_service lpdump_service mdns_service mediaserver_service mediametrics_service mediaextractor_service mediadrmserver_service mediatranscoding_service netd_service nfc_service ondevicepersonalization_system_service ot_daemon_service profiling_service radio_service secure_element_service service_manager_service storaged_service surfaceflinger_service system_app_service system_net_netd_service system_suspend_control_internal_service system_suspend_control_service update_engine_service update_engine_stable_service virtualization_service virtual_camera_service virtual_touchpad_service vold_service vr_hwc_service vrflinger_vsync_service accessibility_service account_service activity_service activity_task_service adb_service adservices_manager_service alarm_service app_binding_service app_hibernation_service app_integrity_service app_prediction_service app_search_service appops_service appwidget_service archive_service assetatlas_service attestation_verification_service audio_service auth_service autofill_service backup_service batterystats_service battery_service binder_calls_stats_service blob_store_service bluetooth_manager_service broadcastradio_service cacheinfo_service cameraproxy_service clipboard_service cloudsearch_service contexthub_service contextual_search_service crossprofileapps_service IProxyService_service companion_device_service connectivity_native_service connectivity_service connmetrics_service consumer_ir_service content_capture_service content_suggestions_service content_service country_detector_service coverage_service cpuinfo_service cpu_monitor_service credential_service dataloader_manager_service dbinfo_service device_config_service device_policy_service device_state_service deviceidle_service device_identifiers_service devicestoragemonitor_service diskstats_service display_service domain_verification_service color_display_service ecm_enhanced_confirmation_service external_vibrator_service file_integrity_service font_service netd_listener_service network_watchlist_service devicelock_service DockObserver_service dreams_service dropbox_service ethernet_service biometric_service bugreport_service platform_compat_service face_service fingerprint_service fwk_altitude_service fwk_stats_service fwk_sensor_service fwk_vibrator_control_service game_service gfxinfo_service gnss_time_update_service grammatical_inflection_service graphicsstats_service hardware_service hardware_properties_service hdmi_control_service healthconnect_service hint_service imms_service incremental_service input_method_service input_service ipsec_service iris_service jobscheduler_service launcherapps_service legacy_permission_service light_service locale_service location_service location_time_zone_manager_service lock_settings_service looper_stats_service media_communication_service media_metrics_service media_projection_service media_router_service media_session_service meminfo_service memtrackproxy_service midi_service mount_service music_recognition_service nearby_service netpolicy_service netstats_service network_management_service network_score_service network_stack_service network_time_update_service notification_service oem_lock_service otadexopt_service overlay_service pac_proxy_service package_service package_native_service people_service permission_service permissionmgr_service permission_checker_service persistent_data_block_service pinner_service powerstats_service power_service print_service processinfo_service procstats_service reboot_readiness_service recovery_service registry_service remote_auth_service remote_provisioning_service resources_manager_service restrictions_service role_service rollback_service runtime_service rttmanager_service samplingprofiler_service scheduling_policy_service search_service search_ui_service sec_key_att_app_id_provider_service security_state_service selection_toolbar_service sensitive_content_protection_service sensorservice_service sensor_privacy_service serial_service servicediscovery_service settings_service shortcut_service slice_service smartspace_service statusbar_service storagestats_service sdk_sandbox_service system_config_service system_server_dumper_service system_update_service soundtrigger_middleware_service speech_recognition_service tare_service task_service testharness_service textclassification_service textservices_service texttospeech_service telecom_service thermal_service threadnetwork_service timedetector_service timezonedetector_service translation_service trust_service tv_ad_service tv_iapp_service tv_input_service tv_tuner_resource_mgr_service uimode_service updatelock_service uri_grants_service usagestats_service usb_service user_service uwb_service vcn_management_service vibrator_service vibrator_manager_service virtual_device_service virtual_device_native_service voiceinteraction_service vpn_management_service vr_manager_service wallpaper_service wallpaper_effects_generation_service webviewupdate_service wifip2p_service wifiscanner_service wifi_service wifinl80211_service wifiaware_service window_service inputflinger_service tethering_service emergency_affordance_service hal_audio_service hal_audiocontrol_service hal_authgraph_service hal_authsecret_service hal_bluetooth_service hal_bootctl_service hal_broadcastradio_service hal_camera_service hal_can_controller_service hal_cas_service hal_codec2_service hal_confirmationui_service hal_contexthub_service hal_drm_service hal_dumpstate_service hal_evs_service hal_face_service hal_fastboot_service hal_fingerprint_service hal_gnss_service hal_graphics_allocator_service hal_graphics_composer_service hal_graphics_mapper_service hal_health_service hal_health_storage_service hal_identity_service hal_input_processor_service hal_ir_service hal_ivn_service hal_keymint_service hal_light_service hal_macsec_service hal_memtrack_service hal_neuralnetworks_service hal_nfc_service hal_oemlock_service hal_power_service hal_power_stats_service hal_radio_service hal_rebootescrow_service hal_remoteaccess_service hal_remotelyprovisionedcomponent_avf_service hal_remotelyprovisionedcomponent_service hal_sensors_service hal_secretkeeper_service hal_secureclock_service hal_secure_element_service hal_sharedsecret_service hal_system_suspend_service hal_tetheroffload_service hal_thermal_service hal_tv_hdmi_cec_service hal_tv_hdmi_connection_service hal_tv_hdmi_earc_service hal_tv_input_service hal_threadnetwork_service hal_tv_tuner_service hal_usb_service hal_usb_gadget_service hal_uwb_service hal_vehicle_service hal_vibrator_service hal_weaver_service hal_nlinterceptor_service hal_wifi_service hal_wifi_hostapd_service hal_wifi_supplicant_service hal_gatekeeper_service adaptive_auth_service ambient_context_service attention_service bg_install_control_service compos_service communal_service dynamic_system_service feature_flags_service gsi_service incidentcompanion_service logcat_service logd_service mediatuner_service profcollectd_service resolver_service rkpd_registrar_service rkpd_refresh_service safety_center_service stats_service statsbootstrap_service statscompanion_service statsmanager_service tracingproxy_service transparency_service uce_service wearable_sensing_service ))
+(typeattribute hwservice_manager_type)
+(typeattributeset hwservice_manager_type (default_android_hwservice fwk_camera_hwservice fwk_display_hwservice fwk_scheduler_hwservice fwk_sensor_hwservice fwk_stats_hwservice fwk_automotive_display_hwservice hal_atrace_hwservice hal_audio_hwservice hal_audiocontrol_hwservice hal_authsecret_hwservice hal_bluetooth_hwservice hal_bootctl_hwservice hal_broadcastradio_hwservice hal_camera_hwservice hal_can_bus_hwservice hal_can_controller_hwservice hal_confirmationui_hwservice hal_contexthub_hwservice hal_dumpstate_hwservice hal_evs_hwservice hal_face_hwservice hal_fingerprint_hwservice hal_gatekeeper_hwservice hal_gnss_hwservice hal_graphics_composer_hwservice hal_health_hwservice hal_health_storage_hwservice hal_input_classifier_hwservice hal_ir_hwservice hal_keymaster_hwservice hal_light_hwservice hal_lowpan_hwservice hal_memtrack_hwservice hal_nfc_hwservice hal_oemlock_hwservice hal_power_hwservice hal_power_stats_hwservice hal_secure_element_hwservice hal_sensors_hwservice hal_telephony_hwservice hal_tetheroffload_hwservice hal_thermal_hwservice hal_tv_cec_hwservice hal_tv_input_hwservice hal_tv_tuner_hwservice hal_usb_gadget_hwservice hal_usb_hwservice hal_vehicle_hwservice hal_vibrator_hwservice hal_vr_hwservice hal_weaver_hwservice hal_wifi_hostapd_hwservice hal_wifi_hwservice hal_wifi_supplicant_hwservice system_net_netd_hwservice system_suspend_hwservice system_wifi_keystore_hwservice fwk_bufferhub_hwservice hal_cas_hwservice hal_codec2_hwservice hal_configstore_ISurfaceFlingerConfigs hal_drm_hwservice hal_graphics_allocator_hwservice hal_graphics_mapper_hwservice hal_neuralnetworks_hwservice hal_omx_hwservice hal_renderscript_hwservice hidl_allocator_hwservice hidl_base_hwservice hidl_manager_hwservice hidl_memory_hwservice hidl_token_hwservice hal_lazy_test_hwservice ))
+(typeattribute same_process_hwservice)
+(typeattributeset same_process_hwservice (hal_graphics_mapper_hwservice hal_renderscript_hwservice ))
+(typeattribute coredomain_hwservice)
+(typeattributeset coredomain_hwservice (fwk_camera_hwservice fwk_display_hwservice fwk_scheduler_hwservice fwk_sensor_hwservice fwk_stats_hwservice fwk_automotive_display_hwservice system_net_netd_hwservice system_suspend_hwservice system_wifi_keystore_hwservice fwk_bufferhub_hwservice hidl_allocator_hwservice hidl_manager_hwservice hidl_memory_hwservice hidl_token_hwservice ))
+(typeattribute protected_hwservice)
+(typeattributeset protected_hwservice (default_android_hwservice fwk_camera_hwservice fwk_display_hwservice fwk_scheduler_hwservice fwk_sensor_hwservice fwk_stats_hwservice fwk_automotive_display_hwservice hal_atrace_hwservice hal_audio_hwservice hal_audiocontrol_hwservice hal_authsecret_hwservice hal_bluetooth_hwservice hal_bootctl_hwservice hal_broadcastradio_hwservice hal_camera_hwservice hal_can_bus_hwservice hal_can_controller_hwservice hal_confirmationui_hwservice hal_contexthub_hwservice hal_dumpstate_hwservice hal_evs_hwservice hal_face_hwservice hal_fingerprint_hwservice hal_gatekeeper_hwservice hal_gnss_hwservice hal_graphics_composer_hwservice hal_health_hwservice hal_health_storage_hwservice hal_input_classifier_hwservice hal_ir_hwservice hal_keymaster_hwservice hal_light_hwservice hal_lowpan_hwservice hal_memtrack_hwservice hal_nfc_hwservice hal_oemlock_hwservice hal_power_hwservice hal_power_stats_hwservice hal_secure_element_hwservice hal_sensors_hwservice hal_telephony_hwservice hal_tetheroffload_hwservice hal_thermal_hwservice hal_tv_cec_hwservice hal_tv_input_hwservice hal_tv_tuner_hwservice hal_usb_gadget_hwservice hal_usb_hwservice hal_vehicle_hwservice hal_vibrator_hwservice hal_vr_hwservice hal_weaver_hwservice hal_wifi_hostapd_hwservice hal_wifi_hwservice hal_wifi_supplicant_hwservice system_net_netd_hwservice system_suspend_hwservice system_wifi_keystore_hwservice hal_lazy_test_hwservice ))
+(typeattribute vndservice_manager_type)
+(typeattributeset vndservice_manager_type (service_manager_vndservice default_android_vndservice ))
+(typeattribute hal_service_type)
+(typeattributeset hal_service_type (hal_audio_service hal_audiocontrol_service hal_authgraph_service hal_authsecret_service hal_bluetooth_service hal_bootctl_service hal_broadcastradio_service hal_camera_service hal_can_controller_service hal_cas_service hal_codec2_service hal_confirmationui_service hal_contexthub_service hal_drm_service hal_dumpstate_service hal_evs_service hal_face_service hal_fastboot_service hal_fingerprint_service hal_gnss_service hal_graphics_allocator_service hal_graphics_composer_service hal_graphics_mapper_service hal_health_service hal_health_storage_service hal_identity_service hal_input_processor_service hal_ir_service hal_ivn_service hal_keymint_service hal_light_service hal_macsec_service hal_memtrack_service hal_neuralnetworks_service hal_nfc_service hal_oemlock_service hal_power_service hal_power_stats_service hal_radio_service hal_rebootescrow_service hal_remoteaccess_service hal_remotelyprovisionedcomponent_avf_service hal_remotelyprovisionedcomponent_service hal_sensors_service hal_secretkeeper_service hal_secureclock_service hal_secure_element_service hal_sharedsecret_service hal_system_suspend_service hal_tetheroffload_service hal_thermal_service hal_tv_hdmi_cec_service hal_tv_hdmi_connection_service hal_tv_hdmi_earc_service hal_tv_input_service hal_threadnetwork_service hal_tv_tuner_service hal_usb_service hal_usb_gadget_service hal_uwb_service hal_vehicle_service hal_vibrator_service hal_weaver_service hal_nlinterceptor_service hal_wifi_service hal_wifi_hostapd_service hal_wifi_supplicant_service hal_gatekeeper_service ))
+(typeattribute mlstrustedsubject)
+(typeattributeset mlstrustedsubject (adbd artd bluetooth bufferhubd drmserver dumpstate pdx_display_client_endpoint_socket pdx_display_manager_endpoint_socket pdx_display_screenshot_endpoint_socket pdx_display_vsync_endpoint_socket pdx_performance_client_endpoint_socket pdx_bufferhub_client_endpoint_socket heapprofd hwservicemanager incidentd init installd kernel keystore llkd lmkd logd mdnsd mediadrmserver mediaextractor mediaserver netd network_stack nfc performanced prng_seeder radio rss_hwm_reset runas servicemanager shell simpleperf_app_runner statsd surfaceflinger system_app system_server tombstoned traced traced_perf traced_probes uncrypt vendor_init vold vold_prepare_subdirs webview_zygote zygote cppreopts device_as_webcam dexoptanalyzer otapreopt_slot postinstall_dexopt profcollectd simpleperf_boot storaged viewcompiler virtualizationservice ))
+(typeattribute mlstrustedobject)
+(typeattributeset mlstrustedobject (ashmem_device ashmem_libcutils_device binder_device hwbinder_device pmsg_device gpu_device mtp_device ptmx_device kmsg_device null_device random_device owntty_device zero_device fuse_device ion_device dmabuf_heap_device dmabuf_system_heap_device dmabuf_system_secure_heap_device uhid_device tun_device usbaccessory_device usb_device proc_qtaguid_ctrl proc_qtaguid_stat selinuxfs cgroup sysfs sysfs_bluetooth_writable sysfs_kernel_notes sysfs_nfc_power_writable inotify devpts fuse fuseblk sdcardfs vfat exfat debugfs_trace_marker debugfs_tracing debugfs_tracing_debug functionfs anr_data_file tombstone_data_file apk_tmp_file apk_private_tmp_file ota_package_file user_profile_data_file shell_data_file heapdump_data_file ringtone_file media_rw_data_file radio_data_file shared_relro_file trace_data_file method_trace_data_file system_app_data_file cache_file cache_backup_file cache_recovery_file wallpaper_file shortcut_manager_icons asec_apk_file backup_data_file app_fuse_file dnsproxyd_socket fwmarkd_socket logd_socket logdr_socket logdw_socket mdnsd_socket property_socket statsdw_socket system_ndebug_socket system_unsolzygote_socket tombstoned_crash_socket tombstoned_java_trace_socket traced_consumer_socket traced_perf_socket traced_producer_socket heapprofd_socket pdx_display_client_endpoint_socket pdx_display_manager_endpoint_socket pdx_display_screenshot_endpoint_socket pdx_display_vsync_endpoint_socket pdx_performance_client_endpoint_socket pdx_bufferhub_client_endpoint_socket system_server_tmpfs traced_tmpfs wm_trace_data_file virtualizationservice_data_file kvm_device prng_seeder_socket heapprofd_tmpfs ))
+(typeattribute appdomain)
+(typeattributeset appdomain (bluetooth ephemeral_app gmscore_app isolated_app isolated_compute_app mediaprovider network_stack nfc platform_app priv_app radio rkpdapp runas_app secure_element shared_relro shell simpleperf system_app traceur_app untrusted_app untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 device_as_webcam mediaprovider_app permissioncontroller_app sdk_sandbox_34 sdk_sandbox_audit sdk_sandbox_next vzwomatrigger_app ))
+(typeattribute untrusted_app_all)
+(typeattributeset untrusted_app_all (runas_app simpleperf untrusted_app untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 ))
+(typeattribute isolated_app_all)
+(typeattributeset isolated_app_all (isolated_app isolated_compute_app ))
+(typeattribute isolated_compute_allowed_service)
+(typeattributeset isolated_compute_allowed_service (audioserver_service cameraserver_service mediaserver_service content_capture_service device_state_service speech_recognition_service hal_codec2_service ))
+(typeattribute isolated_compute_allowed_device)
+(typeattributeset isolated_compute_allowed_device (hwbinder_device ion_device dmabuf_system_heap_device ))
+(typeattribute netdomain)
+(typeattributeset netdomain (adbd bluetooth dhcp dnsmasq drmserver dumpstate ephemeral_app gmscore_app mdnsd mediadrmserver mediaprovider mediaserver netd network_stack nfc platform_app priv_app radio rkpdapp runas_app shell system_app system_server untrusted_app untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 update_engine clatd ot_daemon sdk_sandbox_34 sdk_sandbox_audit sdk_sandbox_next ))
+(typeattribute bluetoothdomain)
+(typeattributeset bluetoothdomain (platform_app priv_app radio runas_app system_server untrusted_app untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 ))
+(typeattribute binderservicedomain)
+(typeattributeset binderservicedomain (audioserver cameraserver credstore drmserver evsmanagerd gatekeeperd idmap inputflinger keystore logd mediadrmserver mediaextractor mediametrics mediaserver mediatranscoding nfc radio secure_element surfaceflinger system_app system_server virtual_touchpad gsid mediatuner rkpd ))
+(typeattribute bpfdomain)
+(expandtypeattribute (bpfdomain) false)
+(typeattributeset bpfdomain (bpfloader charger_vendor gpuservice lmkd netd netutils_wrapper network_stack system_server mediaprovider_app uprobestats ))
+(typeattribute update_engine_common)
+(typeattributeset update_engine_common (update_engine ))
+(typeattribute coredomain)
+(typeattributeset coredomain (adbd apexd app_zygote artd atrace audioserver blkid blkid_untrusted bluetooth bootanim bootstat bpfloader bufferhubd cameraserver charger crash_dump credstore dhcp dnsmasq drmserver dumpstate e2fs ephemeral_app evsmanagerd extra_free_kbytes fastbootd fingerprintd flags_health_check fsck fsck_untrusted gatekeeperd gmscore_app gpuservice healthd heapprofd hwservicemanager idmap incident incident_helper incidentd init inputflinger installd isolated_app isolated_compute_app kernel keystore llkd lmkd logd logpersist mdnsd mediadrmserver mediaextractor mediametrics mediaprovider mediaserver mediaswcodec mediatranscoding modprobe netd netutils_wrapper network_stack nfc otapreopt_chroot perfetto performanced platform_app postinstall priv_app prng_seeder profman radio recovery recovery_persist recovery_refresh rkpdapp rs rss_hwm_reset runas runas_app sdcardd secure_element servicemanager sgdisk shared_relro shell simpleperf simpleperf_app_runner slideshow statsd surfaceflinger system_app system_server tombstoned toolbox traced traced_perf traced_probes traceur_app ueventd uncrypt untrusted_app untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 update_engine update_verifier usbd vdc virtual_touchpad vold vold_prepare_subdirs watchdogd webview_zygote wificond zygote aconfigd apex_test_prepostinstall apexd_derive_classpath art_boot auditctl automotive_display_service blank_screen boringssl_self_test canhalconfigurator clatd compos_fd_server compos_verify composd cppreopts crosvm derive_classpath derive_sdk device_as_webcam dex2oat dexopt_chroot_setup dexoptanalyzer dmesgd fsverity_init fuseblkd fuseblkd_untrusted fwk_bufferhub gki_apex_prepostinstall gsid hal_allocator_default iw linkerconfig lpdumpd mediaprovider_app mediatuner migrate_legacy_obb_data misctrl mm_events mtectrl odrefresh odsign ot_daemon otapreopt_slot permissioncontroller_app postinstall_dexopt preloads_copy preopt2cachename profcollectd remount rkpd sdk_sandbox_34 sdk_sandbox_audit sdk_sandbox_next simpleperf_boot snapshotctl snapuserd stats storaged system_server_startup system_suspend uprobestats vehicle_binding_util viewcompiler virtual_camera virtualizationmanager virtualizationservice wait_for_keymaster ))
+(typeattribute vendor_hwservice_type)
+(typeattribute coredomain_socket)
+(expandtypeattribute (coredomain_socket) false)
+(typeattributeset coredomain_socket (drmserver_socket adbd_socket bluetooth_socket dnsproxyd_socket dumpstate_socket fwmarkd_socket lmkd_socket logd_socket logdr_socket logdw_socket mdns_socket mdnsd_socket misc_logd_file mtpd_socket ot_daemon_socket property_socket racoon_socket recovery_socket snapuserd_socket snapuserd_proxy_socket statsdw_socket system_wpa_socket system_ndebug_socket system_unsolzygote_socket tombstoned_crash_socket tombstoned_intercept_socket traced_consumer_socket traced_perf_socket traced_producer_socket uncrypt_socket zygote_socket heapprofd_socket pdx_display_client_endpoint_socket pdx_display_client_channel_socket pdx_display_manager_endpoint_socket pdx_display_manager_channel_socket pdx_display_screenshot_endpoint_socket pdx_display_screenshot_channel_socket pdx_display_vsync_endpoint_socket pdx_display_vsync_channel_socket pdx_performance_client_endpoint_socket pdx_performance_client_channel_socket pdx_bufferhub_client_endpoint_socket pdx_bufferhub_client_channel_socket prng_seeder_socket aconfigd_socket ))
+(typeattribute socket_between_core_and_vendor_violators)
+(expandtypeattribute (socket_between_core_and_vendor_violators) false)
+(typeattribute vendor_executes_system_violators)
+(expandtypeattribute (vendor_executes_system_violators) false)
+(typeattribute data_between_core_and_vendor_violators)
+(expandtypeattribute (data_between_core_and_vendor_violators) false)
+(typeattribute system_executes_vendor_violators)
+(expandtypeattribute (system_executes_vendor_violators) false)
+(typeattribute system_writes_vendor_properties_violators)
+(expandtypeattribute (system_writes_vendor_properties_violators) false)
+(typeattribute system_writes_mnt_vendor_violators)
+(expandtypeattribute (system_writes_mnt_vendor_violators) false)
+(typeattribute untrusted_app_visible_hwservice_violators)
+(expandtypeattribute (untrusted_app_visible_hwservice_violators) false)
+(typeattribute untrusted_app_visible_halserver_violators)
+(expandtypeattribute (untrusted_app_visible_halserver_violators) false)
+(typeattribute pdx_endpoint_dir_type)
+(typeattributeset pdx_endpoint_dir_type (pdx_display_dir pdx_performance_dir pdx_bufferhub_dir ))
+(typeattribute pdx_endpoint_socket_type)
+(expandtypeattribute (pdx_endpoint_socket_type) false)
+(typeattributeset pdx_endpoint_socket_type (pdx_display_client_endpoint_socket pdx_display_manager_endpoint_socket pdx_display_screenshot_endpoint_socket pdx_display_vsync_endpoint_socket pdx_performance_client_endpoint_socket pdx_bufferhub_client_endpoint_socket ))
+(typeattribute pdx_channel_socket_type)
+(expandtypeattribute (pdx_channel_socket_type) false)
+(typeattributeset pdx_channel_socket_type (pdx_display_client_channel_socket pdx_display_manager_channel_socket pdx_display_screenshot_channel_socket pdx_display_vsync_channel_socket pdx_performance_client_channel_socket pdx_bufferhub_client_channel_socket ))
+(typeattribute pdx_display_client_endpoint_dir_type)
+(typeattributeset pdx_display_client_endpoint_dir_type (pdx_display_dir ))
+(typeattribute pdx_display_client_endpoint_socket_type)
+(typeattributeset pdx_display_client_endpoint_socket_type (pdx_display_client_endpoint_socket ))
+(typeattribute pdx_display_client_channel_socket_type)
+(typeattributeset pdx_display_client_channel_socket_type (pdx_display_client_channel_socket ))
+(typeattribute pdx_display_client_server_type)
+(typeattributeset pdx_display_client_server_type (surfaceflinger ))
+(typeattribute pdx_display_manager_endpoint_dir_type)
+(typeattributeset pdx_display_manager_endpoint_dir_type (pdx_display_dir ))
+(typeattribute pdx_display_manager_endpoint_socket_type)
+(typeattributeset pdx_display_manager_endpoint_socket_type (pdx_display_manager_endpoint_socket ))
+(typeattribute pdx_display_manager_channel_socket_type)
+(typeattributeset pdx_display_manager_channel_socket_type (pdx_display_manager_channel_socket ))
+(typeattribute pdx_display_manager_server_type)
+(typeattributeset pdx_display_manager_server_type (surfaceflinger ))
+(typeattribute pdx_display_screenshot_endpoint_dir_type)
+(typeattributeset pdx_display_screenshot_endpoint_dir_type (pdx_display_dir ))
+(typeattribute pdx_display_screenshot_endpoint_socket_type)
+(typeattributeset pdx_display_screenshot_endpoint_socket_type (pdx_display_screenshot_endpoint_socket ))
+(typeattribute pdx_display_screenshot_channel_socket_type)
+(typeattributeset pdx_display_screenshot_channel_socket_type (pdx_display_screenshot_channel_socket ))
+(typeattribute pdx_display_screenshot_server_type)
+(typeattributeset pdx_display_screenshot_server_type (surfaceflinger ))
+(typeattribute pdx_display_vsync_endpoint_dir_type)
+(typeattributeset pdx_display_vsync_endpoint_dir_type (pdx_display_dir ))
+(typeattribute pdx_display_vsync_endpoint_socket_type)
+(typeattributeset pdx_display_vsync_endpoint_socket_type (pdx_display_vsync_endpoint_socket ))
+(typeattribute pdx_display_vsync_channel_socket_type)
+(typeattributeset pdx_display_vsync_channel_socket_type (pdx_display_vsync_channel_socket ))
+(typeattribute pdx_display_vsync_server_type)
+(typeattributeset pdx_display_vsync_server_type (surfaceflinger ))
+(typeattribute pdx_performance_client_endpoint_dir_type)
+(typeattributeset pdx_performance_client_endpoint_dir_type (pdx_performance_dir ))
+(typeattribute pdx_performance_client_endpoint_socket_type)
+(typeattributeset pdx_performance_client_endpoint_socket_type (pdx_performance_client_endpoint_socket ))
+(typeattribute pdx_performance_client_channel_socket_type)
+(typeattributeset pdx_performance_client_channel_socket_type (pdx_performance_client_channel_socket ))
+(typeattribute pdx_performance_client_server_type)
+(typeattributeset pdx_performance_client_server_type (performanced ))
+(typeattribute pdx_bufferhub_client_endpoint_dir_type)
+(typeattributeset pdx_bufferhub_client_endpoint_dir_type (pdx_bufferhub_dir ))
+(typeattribute pdx_bufferhub_client_endpoint_socket_type)
+(typeattributeset pdx_bufferhub_client_endpoint_socket_type (pdx_bufferhub_client_endpoint_socket ))
+(typeattribute pdx_bufferhub_client_channel_socket_type)
+(typeattributeset pdx_bufferhub_client_channel_socket_type (pdx_bufferhub_client_channel_socket ))
+(typeattribute pdx_bufferhub_client_server_type)
+(typeattributeset pdx_bufferhub_client_server_type (bufferhubd ))
+(typeattribute halserverdomain)
+(typeattributeset halserverdomain (charger_vendor mediaswcodec hal_allocator_default virtualizationservice ))
+(typeattribute halclientdomain)
+(expandtypeattribute (halclientdomain) true)
+(typeattributeset halclientdomain (adbd atrace audioserver bluetooth bootanim bufferhubd cameraserver charger credstore dumpstate evsmanagerd gatekeeperd isolated_compute_app keystore mediadrmserver mediaextractor mediaserver mediaswcodec mediatranscoding network_stack nfc radio rkpdapp secure_element shell statsd surfaceflinger system_app system_server traced_probes traceur_app update_engine update_verifier usbd vold wificond automotive_display_service blank_screen canhalconfigurator fwk_bufferhub mediatuner odsign ot_daemon snapshotctl storaged vehicle_binding_util virtual_camera virtualizationmanager virtualizationservice ))
+(typeattribute hal_automotive_socket_exemption)
+(typeattribute hal_allocator)
+(expandtypeattribute (hal_allocator) true)
+(typeattributeset hal_allocator (hal_allocator_default ))
+(typeattribute hal_allocator_client)
+(expandtypeattribute (hal_allocator_client) true)
+(typeattributeset hal_allocator_client (audioserver cameraserver isolated_compute_app mediaextractor mediaserver mediaswcodec mediatranscoding system_server ))
+(typeattribute hal_allocator_server)
+(expandtypeattribute (hal_allocator_server) false)
+(typeattributeset hal_allocator_server (hal_allocator_default ))
+(typeattribute hal_atrace)
+(expandtypeattribute (hal_atrace) true)
+(typeattribute hal_atrace_client)
+(expandtypeattribute (hal_atrace_client) true)
+(typeattributeset hal_atrace_client (atrace shell traced_probes traceur_app ))
+(typeattribute hal_atrace_server)
+(expandtypeattribute (hal_atrace_server) false)
+(typeattribute hal_audio)
+(expandtypeattribute (hal_audio) true)
+(typeattribute hal_audio_client)
+(expandtypeattribute (hal_audio_client) true)
+(typeattributeset hal_audio_client (audioserver bluetooth dumpstate system_server ))
+(typeattribute hal_audio_server)
+(expandtypeattribute (hal_audio_server) false)
+(typeattribute hal_audiocontrol)
+(expandtypeattribute (hal_audiocontrol) true)
+(typeattribute hal_audiocontrol_client)
+(expandtypeattribute (hal_audiocontrol_client) true)
+(typeattributeset hal_audiocontrol_client (dumpstate ))
+(typeattribute hal_audiocontrol_server)
+(expandtypeattribute (hal_audiocontrol_server) false)
+(typeattribute hal_authgraph)
+(expandtypeattribute (hal_authgraph) true)
+(typeattribute hal_authgraph_client)
+(expandtypeattribute (hal_authgraph_client) true)
+(typeattributeset hal_authgraph_client (dumpstate system_server ))
+(typeattribute hal_authgraph_server)
+(expandtypeattribute (hal_authgraph_server) false)
+(typeattribute hal_authsecret)
+(expandtypeattribute (hal_authsecret) true)
+(typeattribute hal_authsecret_client)
+(expandtypeattribute (hal_authsecret_client) true)
+(typeattributeset hal_authsecret_client (dumpstate system_server ))
+(typeattribute hal_authsecret_server)
+(expandtypeattribute (hal_authsecret_server) false)
+(typeattribute hal_bluetooth)
+(expandtypeattribute (hal_bluetooth) true)
+(typeattribute hal_bluetooth_client)
+(expandtypeattribute (hal_bluetooth_client) true)
+(typeattributeset hal_bluetooth_client (bluetooth dumpstate system_server ))
+(typeattribute hal_bluetooth_server)
+(expandtypeattribute (hal_bluetooth_server) false)
+(typeattribute hal_bootctl)
+(expandtypeattribute (hal_bootctl) true)
+(typeattribute hal_bootctl_client)
+(expandtypeattribute (hal_bootctl_client) true)
+(typeattributeset hal_bootctl_client (system_server update_engine update_verifier vold snapshotctl ))
+(typeattribute hal_bootctl_server)
+(expandtypeattribute (hal_bootctl_server) false)
+(typeattribute hal_broadcastradio)
+(expandtypeattribute (hal_broadcastradio) true)
+(typeattribute hal_broadcastradio_client)
+(expandtypeattribute (hal_broadcastradio_client) true)
+(typeattributeset hal_broadcastradio_client (dumpstate system_server ))
+(typeattribute hal_broadcastradio_server)
+(expandtypeattribute (hal_broadcastradio_server) false)
+(typeattribute hal_camera)
+(expandtypeattribute (hal_camera) true)
+(typeattribute hal_camera_client)
+(expandtypeattribute (hal_camera_client) true)
+(typeattributeset hal_camera_client (cameraserver dumpstate ))
+(typeattribute hal_camera_server)
+(expandtypeattribute (hal_camera_server) false)
+(typeattribute hal_can_bus)
+(expandtypeattribute (hal_can_bus) true)
+(typeattribute hal_can_bus_client)
+(expandtypeattribute (hal_can_bus_client) true)
+(typeattribute hal_can_bus_server)
+(expandtypeattribute (hal_can_bus_server) false)
+(typeattribute hal_can_controller)
+(expandtypeattribute (hal_can_controller) true)
+(typeattribute hal_can_controller_client)
+(expandtypeattribute (hal_can_controller_client) true)
+(typeattributeset hal_can_controller_client (canhalconfigurator ))
+(typeattribute hal_can_controller_server)
+(expandtypeattribute (hal_can_controller_server) false)
+(typeattribute hal_cas)
+(expandtypeattribute (hal_cas) true)
+(typeattribute hal_cas_client)
+(expandtypeattribute (hal_cas_client) true)
+(typeattributeset hal_cas_client (mediaextractor ))
+(typeattribute hal_cas_server)
+(expandtypeattribute (hal_cas_server) false)
+(typeattribute hal_codec2)
+(expandtypeattribute (hal_codec2) true)
+(typeattributeset hal_codec2 (mediaswcodec ))
+(typeattribute hal_codec2_client)
+(expandtypeattribute (hal_codec2_client) true)
+(typeattributeset hal_codec2_client (cameraserver dumpstate isolated_compute_app mediaserver mediaswcodec mediatranscoding surfaceflinger system_server virtual_camera ))
+(typeattribute hal_codec2_server)
+(expandtypeattribute (hal_codec2_server) false)
+(typeattributeset hal_codec2_server (mediaswcodec ))
+(typeattribute hal_configstore)
+(expandtypeattribute (hal_configstore) true)
+(typeattribute hal_configstore_client)
+(expandtypeattribute (hal_configstore_client) true)
+(typeattributeset hal_configstore_client (bootanim mediaserver mediatranscoding surfaceflinger system_server ))
+(typeattribute hal_configstore_server)
+(expandtypeattribute (hal_configstore_server) false)
+(typeattribute hal_confirmationui)
+(expandtypeattribute (hal_confirmationui) true)
+(typeattribute hal_confirmationui_client)
+(expandtypeattribute (hal_confirmationui_client) true)
+(typeattributeset hal_confirmationui_client (keystore ))
+(typeattribute hal_confirmationui_server)
+(expandtypeattribute (hal_confirmationui_server) false)
+(typeattribute hal_contexthub)
+(expandtypeattribute (hal_contexthub) true)
+(typeattribute hal_contexthub_client)
+(expandtypeattribute (hal_contexthub_client) true)
+(typeattributeset hal_contexthub_client (dumpstate system_server ))
+(typeattribute hal_contexthub_server)
+(expandtypeattribute (hal_contexthub_server) false)
+(typeattribute hal_drm)
+(expandtypeattribute (hal_drm) true)
+(typeattribute hal_drm_client)
+(expandtypeattribute (hal_drm_client) true)
+(typeattributeset hal_drm_client (dumpstate mediadrmserver mediaserver ))
+(typeattribute hal_drm_server)
+(expandtypeattribute (hal_drm_server) false)
+(typeattribute hal_dumpstate)
+(expandtypeattribute (hal_dumpstate) true)
+(typeattribute hal_dumpstate_client)
+(expandtypeattribute (hal_dumpstate_client) true)
+(typeattributeset hal_dumpstate_client (dumpstate system_app ))
+(typeattribute hal_dumpstate_server)
+(expandtypeattribute (hal_dumpstate_server) false)
+(typeattribute hal_evs)
+(expandtypeattribute (hal_evs) true)
+(typeattribute hal_evs_client)
+(expandtypeattribute (hal_evs_client) true)
+(typeattributeset hal_evs_client (dumpstate evsmanagerd ))
+(typeattribute hal_evs_server)
+(expandtypeattribute (hal_evs_server) false)
+(typeattribute hal_face)
+(expandtypeattribute (hal_face) true)
+(typeattribute hal_face_client)
+(expandtypeattribute (hal_face_client) true)
+(typeattributeset hal_face_client (dumpstate system_server ))
+(typeattribute hal_face_server)
+(expandtypeattribute (hal_face_server) false)
+(typeattribute hal_fastboot)
+(expandtypeattribute (hal_fastboot) true)
+(typeattribute hal_fastboot_client)
+(expandtypeattribute (hal_fastboot_client) true)
+(typeattribute hal_fastboot_server)
+(expandtypeattribute (hal_fastboot_server) false)
+(typeattribute hal_fingerprint)
+(expandtypeattribute (hal_fingerprint) true)
+(typeattribute hal_fingerprint_client)
+(expandtypeattribute (hal_fingerprint_client) true)
+(typeattributeset hal_fingerprint_client (dumpstate system_server ))
+(typeattribute hal_fingerprint_server)
+(expandtypeattribute (hal_fingerprint_server) false)
+(typeattribute hal_gatekeeper)
+(expandtypeattribute (hal_gatekeeper) true)
+(typeattribute hal_gatekeeper_client)
+(expandtypeattribute (hal_gatekeeper_client) true)
+(typeattributeset hal_gatekeeper_client (gatekeeperd ))
+(typeattribute hal_gatekeeper_server)
+(expandtypeattribute (hal_gatekeeper_server) false)
+(typeattribute hal_gnss)
+(expandtypeattribute (hal_gnss) true)
+(typeattribute hal_gnss_client)
+(expandtypeattribute (hal_gnss_client) true)
+(typeattributeset hal_gnss_client (dumpstate system_server ))
+(typeattribute hal_gnss_server)
+(expandtypeattribute (hal_gnss_server) false)
+(typeattribute hal_graphics_allocator)
+(expandtypeattribute (hal_graphics_allocator) true)
+(typeattribute hal_graphics_allocator_client)
+(expandtypeattribute (hal_graphics_allocator_client) true)
+(typeattributeset hal_graphics_allocator_client (adbd bootanim bufferhubd cameraserver dumpstate mediadrmserver mediaserver mediaswcodec mediatranscoding surfaceflinger system_server automotive_display_service fwk_bufferhub virtual_camera ))
+(typeattribute hal_graphics_allocator_server)
+(expandtypeattribute (hal_graphics_allocator_server) false)
+(typeattribute hal_graphics_composer)
+(expandtypeattribute (hal_graphics_composer) true)
+(typeattribute hal_graphics_composer_client)
+(expandtypeattribute (hal_graphics_composer_client) true)
+(typeattributeset hal_graphics_composer_client (bootanim dumpstate surfaceflinger automotive_display_service ))
+(typeattribute hal_graphics_composer_server)
+(expandtypeattribute (hal_graphics_composer_server) false)
+(typeattribute hal_health)
+(expandtypeattribute (hal_health) true)
+(typeattributeset hal_health (charger_vendor ))
+(typeattribute hal_health_client)
+(expandtypeattribute (hal_health_client) true)
+(typeattributeset hal_health_client (charger dumpstate statsd system_server traced_probes storaged ))
+(typeattribute hal_health_server)
+(expandtypeattribute (hal_health_server) false)
+(typeattributeset hal_health_server (charger_vendor ))
+(typeattribute hal_health_storage)
+(expandtypeattribute (hal_health_storage) true)
+(typeattribute hal_health_storage_client)
+(expandtypeattribute (hal_health_storage_client) true)
+(typeattributeset hal_health_storage_client (vold ))
+(typeattribute hal_health_storage_server)
+(expandtypeattribute (hal_health_storage_server) false)
+(typeattribute hal_identity)
+(expandtypeattribute (hal_identity) true)
+(typeattribute hal_identity_client)
+(expandtypeattribute (hal_identity_client) true)
+(typeattributeset hal_identity_client (credstore dumpstate ))
+(typeattribute hal_identity_server)
+(expandtypeattribute (hal_identity_server) false)
+(typeattribute hal_input_classifier)
+(expandtypeattribute (hal_input_classifier) true)
+(typeattribute hal_input_classifier_client)
+(expandtypeattribute (hal_input_classifier_client) true)
+(typeattributeset hal_input_classifier_client (system_server ))
+(typeattribute hal_input_classifier_server)
+(expandtypeattribute (hal_input_classifier_server) false)
+(typeattribute hal_input_processor)
+(expandtypeattribute (hal_input_processor) true)
+(typeattribute hal_input_processor_client)
+(expandtypeattribute (hal_input_processor_client) true)
+(typeattributeset hal_input_processor_client (dumpstate system_server ))
+(typeattribute hal_input_processor_server)
+(expandtypeattribute (hal_input_processor_server) false)
+(typeattribute hal_ir)
+(expandtypeattribute (hal_ir) true)
+(typeattribute hal_ir_client)
+(expandtypeattribute (hal_ir_client) true)
+(typeattributeset hal_ir_client (system_server ))
+(typeattribute hal_ir_server)
+(expandtypeattribute (hal_ir_server) false)
+(typeattribute hal_ivn)
+(expandtypeattribute (hal_ivn) true)
+(typeattribute hal_ivn_client)
+(expandtypeattribute (hal_ivn_client) true)
+(typeattribute hal_ivn_server)
+(expandtypeattribute (hal_ivn_server) false)
+(typeattribute hal_keymaster)
+(expandtypeattribute (hal_keymaster) true)
+(typeattribute hal_keymaster_client)
+(expandtypeattribute (hal_keymaster_client) true)
+(typeattributeset hal_keymaster_client (keystore odsign ))
+(typeattribute hal_keymaster_server)
+(expandtypeattribute (hal_keymaster_server) false)
+(typeattribute hal_keymint)
+(expandtypeattribute (hal_keymint) true)
+(typeattribute hal_keymint_client)
+(expandtypeattribute (hal_keymint_client) true)
+(typeattributeset hal_keymint_client (credstore dumpstate keystore rkpdapp system_server ))
+(typeattribute hal_keymint_server)
+(expandtypeattribute (hal_keymint_server) false)
+(typeattribute hal_light)
+(expandtypeattribute (hal_light) true)
+(typeattribute hal_light_client)
+(expandtypeattribute (hal_light_client) true)
+(typeattributeset hal_light_client (dumpstate system_server blank_screen ))
+(typeattribute hal_light_server)
+(expandtypeattribute (hal_light_server) false)
+(typeattribute hal_lowpan)
+(expandtypeattribute (hal_lowpan) true)
+(typeattribute hal_lowpan_client)
+(expandtypeattribute (hal_lowpan_client) true)
+(typeattribute hal_lowpan_server)
+(expandtypeattribute (hal_lowpan_server) false)
+(typeattribute hal_macsec)
+(expandtypeattribute (hal_macsec) true)
+(typeattribute hal_macsec_client)
+(expandtypeattribute (hal_macsec_client) true)
+(typeattribute hal_macsec_server)
+(expandtypeattribute (hal_macsec_server) false)
+(typeattribute hal_memtrack)
+(expandtypeattribute (hal_memtrack) true)
+(typeattribute hal_memtrack_client)
+(expandtypeattribute (hal_memtrack_client) true)
+(typeattributeset hal_memtrack_client (dumpstate system_server ))
+(typeattribute hal_memtrack_server)
+(expandtypeattribute (hal_memtrack_server) false)
+(typeattribute hal_neuralnetworks)
+(expandtypeattribute (hal_neuralnetworks) true)
+(typeattribute hal_neuralnetworks_client)
+(expandtypeattribute (hal_neuralnetworks_client) true)
+(typeattributeset hal_neuralnetworks_client (dumpstate system_server ))
+(typeattribute hal_neuralnetworks_server)
+(expandtypeattribute (hal_neuralnetworks_server) false)
+(typeattribute hal_nfc)
+(expandtypeattribute (hal_nfc) true)
+(typeattribute hal_nfc_client)
+(expandtypeattribute (hal_nfc_client) true)
+(typeattributeset hal_nfc_client (dumpstate nfc ))
+(typeattribute hal_nfc_server)
+(expandtypeattribute (hal_nfc_server) false)
+(typeattribute hal_nlinterceptor)
+(expandtypeattribute (hal_nlinterceptor) true)
+(typeattribute hal_nlinterceptor_client)
+(expandtypeattribute (hal_nlinterceptor_client) true)
+(typeattributeset hal_nlinterceptor_client (wificond ))
+(typeattribute hal_nlinterceptor_server)
+(expandtypeattribute (hal_nlinterceptor_server) false)
+(typeattribute hal_oemlock)
+(expandtypeattribute (hal_oemlock) true)
+(typeattribute hal_oemlock_client)
+(expandtypeattribute (hal_oemlock_client) true)
+(typeattributeset hal_oemlock_client (dumpstate system_server ))
+(typeattribute hal_oemlock_server)
+(expandtypeattribute (hal_oemlock_server) false)
+(typeattribute hal_omx)
+(expandtypeattribute (hal_omx) true)
+(typeattribute hal_omx_client)
+(expandtypeattribute (hal_omx_client) true)
+(typeattributeset hal_omx_client (cameraserver mediaserver mediaswcodec mediatranscoding surfaceflinger system_server virtual_camera ))
+(typeattribute hal_omx_server)
+(expandtypeattribute (hal_omx_server) false)
+(typeattribute hal_power)
+(expandtypeattribute (hal_power) true)
+(typeattribute hal_power_client)
+(expandtypeattribute (hal_power_client) true)
+(typeattributeset hal_power_client (dumpstate statsd surfaceflinger system_server ))
+(typeattribute hal_power_server)
+(expandtypeattribute (hal_power_server) false)
+(typeattribute hal_power_stats)
+(expandtypeattribute (hal_power_stats) true)
+(typeattribute hal_power_stats_client)
+(expandtypeattribute (hal_power_stats_client) true)
+(typeattributeset hal_power_stats_client (dumpstate statsd system_server traced_probes ))
+(typeattribute hal_power_stats_server)
+(expandtypeattribute (hal_power_stats_server) false)
+(typeattribute hal_rebootescrow)
+(expandtypeattribute (hal_rebootescrow) true)
+(typeattribute hal_rebootescrow_client)
+(expandtypeattribute (hal_rebootescrow_client) true)
+(typeattributeset hal_rebootescrow_client (dumpstate system_server ))
+(typeattribute hal_rebootescrow_server)
+(expandtypeattribute (hal_rebootescrow_server) false)
+(typeattribute hal_remoteaccess)
+(expandtypeattribute (hal_remoteaccess) true)
+(typeattribute hal_remoteaccess_client)
+(expandtypeattribute (hal_remoteaccess_client) true)
+(typeattribute hal_remoteaccess_server)
+(expandtypeattribute (hal_remoteaccess_server) false)
+(typeattribute hal_secretkeeper)
+(expandtypeattribute (hal_secretkeeper) true)
+(typeattribute hal_secretkeeper_client)
+(expandtypeattribute (hal_secretkeeper_client) true)
+(typeattributeset hal_secretkeeper_client (dumpstate virtualizationmanager virtualizationservice ))
+(typeattribute hal_secretkeeper_server)
+(expandtypeattribute (hal_secretkeeper_server) false)
+(typeattribute hal_remotelyprovisionedcomponent_avf)
+(expandtypeattribute (hal_remotelyprovisionedcomponent_avf) true)
+(typeattributeset hal_remotelyprovisionedcomponent_avf (virtualizationservice ))
+(typeattribute hal_remotelyprovisionedcomponent_avf_client)
+(expandtypeattribute (hal_remotelyprovisionedcomponent_avf_client) true)
+(typeattributeset hal_remotelyprovisionedcomponent_avf_client (rkpdapp system_server ))
+(typeattribute hal_remotelyprovisionedcomponent_avf_server)
+(expandtypeattribute (hal_remotelyprovisionedcomponent_avf_server) false)
+(typeattributeset hal_remotelyprovisionedcomponent_avf_server (virtualizationservice ))
+(typeattribute hal_secure_element)
+(expandtypeattribute (hal_secure_element) true)
+(typeattribute hal_secure_element_client)
+(expandtypeattribute (hal_secure_element_client) true)
+(typeattributeset hal_secure_element_client (secure_element ))
+(typeattribute hal_secure_element_server)
+(expandtypeattribute (hal_secure_element_server) false)
+(typeattribute hal_sensors)
+(expandtypeattribute (hal_sensors) true)
+(typeattribute hal_sensors_client)
+(expandtypeattribute (hal_sensors_client) true)
+(typeattributeset hal_sensors_client (dumpstate system_server ))
+(typeattribute hal_sensors_server)
+(expandtypeattribute (hal_sensors_server) false)
+(typeattribute hal_telephony)
+(expandtypeattribute (hal_telephony) true)
+(typeattribute hal_telephony_client)
+(expandtypeattribute (hal_telephony_client) true)
+(typeattributeset hal_telephony_client (bluetooth radio ))
+(typeattribute hal_telephony_server)
+(expandtypeattribute (hal_telephony_server) false)
+(typeattribute hal_tetheroffload)
+(expandtypeattribute (hal_tetheroffload) true)
+(typeattribute hal_tetheroffload_client)
+(expandtypeattribute (hal_tetheroffload_client) true)
+(typeattributeset hal_tetheroffload_client (network_stack system_server ))
+(typeattribute hal_tetheroffload_server)
+(expandtypeattribute (hal_tetheroffload_server) false)
+(typeattribute hal_thermal)
+(expandtypeattribute (hal_thermal) true)
+(typeattribute hal_thermal_client)
+(expandtypeattribute (hal_thermal_client) true)
+(typeattributeset hal_thermal_client (dumpstate statsd system_server ))
+(typeattribute hal_thermal_server)
+(expandtypeattribute (hal_thermal_server) false)
+(typeattribute hal_threadnetwork)
+(expandtypeattribute (hal_threadnetwork) true)
+(typeattribute hal_threadnetwork_client)
+(expandtypeattribute (hal_threadnetwork_client) true)
+(typeattributeset hal_threadnetwork_client (system_server ot_daemon ))
+(typeattribute hal_threadnetwork_server)
+(expandtypeattribute (hal_threadnetwork_server) false)
+(typeattribute hal_tv_cec)
+(expandtypeattribute (hal_tv_cec) true)
+(typeattribute hal_tv_cec_client)
+(expandtypeattribute (hal_tv_cec_client) true)
+(typeattributeset hal_tv_cec_client (system_server ))
+(typeattribute hal_tv_cec_server)
+(expandtypeattribute (hal_tv_cec_server) false)
+(typeattribute hal_tv_hdmi_cec)
+(expandtypeattribute (hal_tv_hdmi_cec) true)
+(typeattribute hal_tv_hdmi_cec_client)
+(expandtypeattribute (hal_tv_hdmi_cec_client) true)
+(typeattributeset hal_tv_hdmi_cec_client (system_server ))
+(typeattribute hal_tv_hdmi_cec_server)
+(expandtypeattribute (hal_tv_hdmi_cec_server) false)
+(typeattribute hal_tv_hdmi_connection)
+(expandtypeattribute (hal_tv_hdmi_connection) true)
+(typeattribute hal_tv_hdmi_connection_client)
+(expandtypeattribute (hal_tv_hdmi_connection_client) true)
+(typeattributeset hal_tv_hdmi_connection_client (system_server ))
+(typeattribute hal_tv_hdmi_connection_server)
+(expandtypeattribute (hal_tv_hdmi_connection_server) false)
+(typeattribute hal_tv_hdmi_earc)
+(expandtypeattribute (hal_tv_hdmi_earc) true)
+(typeattribute hal_tv_hdmi_earc_client)
+(expandtypeattribute (hal_tv_hdmi_earc_client) true)
+(typeattributeset hal_tv_hdmi_earc_client (system_server ))
+(typeattribute hal_tv_hdmi_earc_server)
+(expandtypeattribute (hal_tv_hdmi_earc_server) false)
+(typeattribute hal_tv_input)
+(expandtypeattribute (hal_tv_input) true)
+(typeattribute hal_tv_input_client)
+(expandtypeattribute (hal_tv_input_client) true)
+(typeattributeset hal_tv_input_client (system_server ))
+(typeattribute hal_tv_input_server)
+(expandtypeattribute (hal_tv_input_server) false)
+(typeattribute hal_tv_tuner)
+(expandtypeattribute (hal_tv_tuner) true)
+(typeattribute hal_tv_tuner_client)
+(expandtypeattribute (hal_tv_tuner_client) true)
+(typeattributeset hal_tv_tuner_client (mediatuner ))
+(typeattribute hal_tv_tuner_server)
+(expandtypeattribute (hal_tv_tuner_server) false)
+(typeattribute hal_usb)
+(expandtypeattribute (hal_usb) true)
+(typeattribute hal_usb_client)
+(expandtypeattribute (hal_usb_client) true)
+(typeattributeset hal_usb_client (system_server ))
+(typeattribute hal_usb_server)
+(expandtypeattribute (hal_usb_server) false)
+(typeattribute hal_usb_gadget)
+(expandtypeattribute (hal_usb_gadget) true)
+(typeattribute hal_usb_gadget_client)
+(expandtypeattribute (hal_usb_gadget_client) true)
+(typeattributeset hal_usb_gadget_client (system_server usbd ))
+(typeattribute hal_usb_gadget_server)
+(expandtypeattribute (hal_usb_gadget_server) false)
+(typeattribute hal_uwb)
+(expandtypeattribute (hal_uwb) true)
+(typeattribute hal_uwb_client)
+(expandtypeattribute (hal_uwb_client) true)
+(typeattributeset hal_uwb_client (system_server ))
+(typeattribute hal_uwb_server)
+(expandtypeattribute (hal_uwb_server) false)
+(typeattribute hal_uwb_vendor)
+(expandtypeattribute (hal_uwb_vendor) true)
+(typeattribute hal_uwb_vendor_client)
+(expandtypeattribute (hal_uwb_vendor_client) true)
+(typeattribute hal_uwb_vendor_server)
+(expandtypeattribute (hal_uwb_vendor_server) false)
+(typeattribute hal_vehicle)
+(expandtypeattribute (hal_vehicle) true)
+(typeattribute hal_vehicle_client)
+(expandtypeattribute (hal_vehicle_client) true)
+(typeattributeset hal_vehicle_client (dumpstate vehicle_binding_util ))
+(typeattribute hal_vehicle_server)
+(expandtypeattribute (hal_vehicle_server) false)
+(typeattribute hal_vibrator)
+(expandtypeattribute (hal_vibrator) true)
+(typeattribute hal_vibrator_client)
+(expandtypeattribute (hal_vibrator_client) true)
+(typeattributeset hal_vibrator_client (dumpstate system_server ))
+(typeattribute hal_vibrator_server)
+(expandtypeattribute (hal_vibrator_server) false)
+(typeattribute hal_vr)
+(expandtypeattribute (hal_vr) true)
+(typeattribute hal_vr_client)
+(expandtypeattribute (hal_vr_client) true)
+(typeattributeset hal_vr_client (system_server ))
+(typeattribute hal_vr_server)
+(expandtypeattribute (hal_vr_server) false)
+(typeattribute hal_weaver)
+(expandtypeattribute (hal_weaver) true)
+(typeattribute hal_weaver_client)
+(expandtypeattribute (hal_weaver_client) true)
+(typeattributeset hal_weaver_client (dumpstate system_server ))
+(typeattribute hal_weaver_server)
+(expandtypeattribute (hal_weaver_server) false)
+(typeattribute hal_wifi)
+(expandtypeattribute (hal_wifi) true)
+(typeattribute hal_wifi_client)
+(expandtypeattribute (hal_wifi_client) true)
+(typeattributeset hal_wifi_client (dumpstate system_server ))
+(typeattribute hal_wifi_server)
+(expandtypeattribute (hal_wifi_server) false)
+(typeattribute hal_wifi_hostapd)
+(expandtypeattribute (hal_wifi_hostapd) true)
+(typeattribute hal_wifi_hostapd_client)
+(expandtypeattribute (hal_wifi_hostapd_client) true)
+(typeattributeset hal_wifi_hostapd_client (system_server ))
+(typeattribute hal_wifi_hostapd_server)
+(expandtypeattribute (hal_wifi_hostapd_server) false)
+(typeattribute hal_wifi_supplicant)
+(expandtypeattribute (hal_wifi_supplicant) true)
+(typeattribute hal_wifi_supplicant_client)
+(expandtypeattribute (hal_wifi_supplicant_client) true)
+(typeattributeset hal_wifi_supplicant_client (system_server ))
+(typeattribute hal_wifi_supplicant_server)
+(expandtypeattribute (hal_wifi_supplicant_server) false)
+(typeattribute automotive_display_service_server)
+(typeattributeset automotive_display_service_server (automotive_display_service ))
+(typeattribute camera_service_server)
+(typeattributeset camera_service_server (cameraserver ))
+(typeattribute display_service_server)
+(typeattributeset display_service_server (surfaceflinger ))
+(typeattribute evsmanager_service_server)
+(typeattributeset evsmanager_service_server (evsmanagerd ))
+(typeattribute remote_provisioning_service_server)
+(typeattributeset remote_provisioning_service_server (system_server ))
+(typeattribute scheduler_service_server)
+(typeattributeset scheduler_service_server (system_server ))
+(typeattribute sensor_service_server)
+(typeattributeset sensor_service_server (system_server ))
+(typeattribute stats_service_server)
+(typeattributeset stats_service_server (system_server ))
+(typeattribute system_suspend_internal_server)
+(typeattributeset system_suspend_internal_server (system_suspend ))
+(typeattribute system_suspend_server)
+(typeattributeset system_suspend_server (system_suspend ))
+(typeattribute wifi_keystore_service_server)
+(typeattributeset wifi_keystore_service_server (wificond ))
+(typeattribute super_block_device_type)
+(typeattributeset super_block_device_type (super_block_device ))
+(typeattribute dmabuf_heap_device_type)
+(expandtypeattribute (dmabuf_heap_device_type) false)
+(typeattributeset dmabuf_heap_device_type (dmabuf_heap_device dmabuf_system_heap_device dmabuf_system_secure_heap_device ))
+(typeattribute vm_manager_device_type)
+(typeattributeset vm_manager_device_type (kvm_device ))
+(typeattribute gsi_metadata_file_type)
+(typeattributeset gsi_metadata_file_type (gsi_metadata_file gsi_public_metadata_file ))
+(typeattribute apex_data_file_type)
+(typeattributeset apex_data_file_type (apex_system_server_data_file apex_art_data_file apex_compos_data_file apex_virt_data_file apex_tethering_data_file apex_appsearch_data_file apex_permission_data_file apex_scheduling_data_file apex_wifi_data_file ))
+(typeattribute charger_type)
+(typeattributeset charger_type (charger charger_vendor ))
+(typeattribute dalvik_config_prop_type)
+(typeattributeset dalvik_config_prop_type (dalvik_config_prop dalvik_dynamic_config_prop ))
+(type adbd)
+(roletype object_r adbd)
+(type adbd_exec)
+(roletype object_r adbd_exec)
+(type aidl_lazy_test_server)
+(roletype object_r aidl_lazy_test_server)
+(type aidl_lazy_test_server_exec)
+(roletype object_r aidl_lazy_test_server_exec)
+(type apexd)
+(roletype object_r apexd)
+(type apexd_exec)
+(roletype object_r apexd_exec)
+(type appdomain_tmpfs)
+(roletype object_r appdomain_tmpfs)
+(type app_zygote)
+(roletype object_r app_zygote)
+(type app_zygote_tmpfs)
+(roletype object_r app_zygote_tmpfs)
+(type artd)
+(roletype object_r artd)
+(type atrace)
+(roletype object_r atrace)
+(type audioserver)
+(roletype object_r audioserver)
+(type audioserver_tmpfs)
+(roletype object_r audioserver_tmpfs)
+(type blkid)
+(roletype object_r blkid)
+(type blkid_untrusted)
+(roletype object_r blkid_untrusted)
+(type bluetooth)
+(roletype object_r bluetooth)
+(type bootanim)
+(roletype object_r bootanim)
+(type bootanim_exec)
+(roletype object_r bootanim_exec)
+(type bootstat)
+(roletype object_r bootstat)
+(type bootstat_exec)
+(roletype object_r bootstat_exec)
+(type bpfloader)
+(roletype object_r bpfloader)
+(type bufferhubd)
+(roletype object_r bufferhubd)
+(type bufferhubd_exec)
+(roletype object_r bufferhubd_exec)
+(type cameraserver)
+(roletype object_r cameraserver)
+(type cameraserver_exec)
+(roletype object_r cameraserver_exec)
+(type cameraserver_tmpfs)
+(roletype object_r cameraserver_tmpfs)
+(type charger)
+(roletype object_r charger)
+(type charger_exec)
+(roletype object_r charger_exec)
+(type charger_vendor)
+(roletype object_r charger_vendor)
+(type crash_dump)
+(roletype object_r crash_dump)
+(type crash_dump_exec)
+(roletype object_r crash_dump_exec)
+(type credstore)
+(roletype object_r credstore)
+(type credstore_exec)
+(roletype object_r credstore_exec)
+(type device)
+(roletype object_r device)
+(type ashmem_device)
+(roletype object_r ashmem_device)
+(type ashmem_libcutils_device)
+(roletype object_r ashmem_libcutils_device)
+(type audio_device)
+(roletype object_r audio_device)
+(type binder_device)
+(roletype object_r binder_device)
+(type hwbinder_device)
+(roletype object_r hwbinder_device)
+(type vndbinder_device)
+(roletype object_r vndbinder_device)
+(type block_device)
+(roletype object_r block_device)
+(type bt_device)
+(roletype object_r bt_device)
+(type camera_device)
+(roletype object_r camera_device)
+(type dm_device)
+(roletype object_r dm_device)
+(type ublk_block_device)
+(roletype object_r ublk_block_device)
+(type dm_user_device)
+(roletype object_r dm_user_device)
+(type ublk_control_device)
+(roletype object_r ublk_control_device)
+(type keychord_device)
+(roletype object_r keychord_device)
+(type loop_control_device)
+(roletype object_r loop_control_device)
+(type loop_device)
+(roletype object_r loop_device)
+(type pmsg_device)
+(roletype object_r pmsg_device)
+(type radio_device)
+(roletype object_r radio_device)
+(type ram_device)
+(roletype object_r ram_device)
+(type rtc_device)
+(roletype object_r rtc_device)
+(type vd_device)
+(roletype object_r vd_device)
+(type vold_device)
+(roletype object_r vold_device)
+(type console_device)
+(roletype object_r console_device)
+(type fscklogs)
+(roletype object_r fscklogs)
+(type gpu_device)
+(roletype object_r gpu_device)
+(type graphics_device)
+(roletype object_r graphics_device)
+(type hw_random_device)
+(roletype object_r hw_random_device)
+(type input_device)
+(roletype object_r input_device)
+(type port_device)
+(roletype object_r port_device)
+(type lowpan_device)
+(roletype object_r lowpan_device)
+(type mtp_device)
+(roletype object_r mtp_device)
+(type nfc_device)
+(roletype object_r nfc_device)
+(type ptmx_device)
+(roletype object_r ptmx_device)
+(type kmsg_device)
+(roletype object_r kmsg_device)
+(type kmsg_debug_device)
+(roletype object_r kmsg_debug_device)
+(type null_device)
+(roletype object_r null_device)
+(type random_device)
+(roletype object_r random_device)
+(type secure_element_device)
+(roletype object_r secure_element_device)
+(type sensors_device)
+(roletype object_r sensors_device)
+(type serial_device)
+(roletype object_r serial_device)
+(type socket_device)
+(roletype object_r socket_device)
+(type owntty_device)
+(roletype object_r owntty_device)
+(type tty_device)
+(roletype object_r tty_device)
+(type video_device)
+(roletype object_r video_device)
+(type zero_device)
+(roletype object_r zero_device)
+(type fuse_device)
+(roletype object_r fuse_device)
+(type iio_device)
+(roletype object_r iio_device)
+(type ion_device)
+(roletype object_r ion_device)
+(type dmabuf_heap_device)
+(roletype object_r dmabuf_heap_device)
+(type dmabuf_system_heap_device)
+(roletype object_r dmabuf_system_heap_device)
+(type dmabuf_system_secure_heap_device)
+(roletype object_r dmabuf_system_secure_heap_device)
+(type qtaguid_device)
+(roletype object_r qtaguid_device)
+(type watchdog_device)
+(roletype object_r watchdog_device)
+(type uhid_device)
+(roletype object_r uhid_device)
+(type uio_device)
+(roletype object_r uio_device)
+(type tun_device)
+(roletype object_r tun_device)
+(type usbaccessory_device)
+(roletype object_r usbaccessory_device)
+(type usb_device)
+(roletype object_r usb_device)
+(type usb_serial_device)
+(roletype object_r usb_serial_device)
+(type gnss_device)
+(roletype object_r gnss_device)
+(type properties_device)
+(roletype object_r properties_device)
+(type properties_serial)
+(roletype object_r properties_serial)
+(type property_info)
+(roletype object_r property_info)
+(type hidraw_device)
+(roletype object_r hidraw_device)
+(type hci_attach_dev)
+(roletype object_r hci_attach_dev)
+(type rpmsg_device)
+(roletype object_r rpmsg_device)
+(type root_block_device)
+(roletype object_r root_block_device)
+(type frp_block_device)
+(roletype object_r frp_block_device)
+(type system_block_device)
+(roletype object_r system_block_device)
+(type recovery_block_device)
+(roletype object_r recovery_block_device)
+(type boot_block_device)
+(roletype object_r boot_block_device)
+(type dtbo_block_device)
+(roletype object_r dtbo_block_device)
+(type userdata_block_device)
+(roletype object_r userdata_block_device)
+(type zoned_block_device)
+(roletype object_r zoned_block_device)
+(type cache_block_device)
+(roletype object_r cache_block_device)
+(type swap_block_device)
+(roletype object_r swap_block_device)
+(type metadata_block_device)
+(roletype object_r metadata_block_device)
+(type misc_block_device)
+(roletype object_r misc_block_device)
+(type super_block_device)
+(roletype object_r super_block_device)
+(type sdcard_block_device)
+(roletype object_r sdcard_block_device)
+(type userdata_sysdev)
+(roletype object_r userdata_sysdev)
+(type rootdisk_sysdev)
+(roletype object_r rootdisk_sysdev)
+(type vfio_device)
+(roletype object_r vfio_device)
+(type dhcp)
+(roletype object_r dhcp)
+(type dhcp_exec)
+(roletype object_r dhcp_exec)
+(type dnsmasq)
+(roletype object_r dnsmasq)
+(type dnsmasq_exec)
+(roletype object_r dnsmasq_exec)
+(type drmserver)
+(roletype object_r drmserver)
+(type drmserver_exec)
+(roletype object_r drmserver_exec)
+(type drmserver_socket)
+(roletype object_r drmserver_socket)
+(type dumpstate)
+(roletype object_r dumpstate)
+(type dumpstate_exec)
+(roletype object_r dumpstate_exec)
+(type e2fs)
+(roletype object_r e2fs)
+(type e2fs_exec)
+(roletype object_r e2fs_exec)
+(type ephemeral_app)
+(roletype object_r ephemeral_app)
+(type evsmanagerd)
+(roletype object_r evsmanagerd)
+(type extra_free_kbytes)
+(roletype object_r extra_free_kbytes)
+(type extra_free_kbytes_exec)
+(roletype object_r extra_free_kbytes_exec)
+(type fastbootd)
+(roletype object_r fastbootd)
+(type labeledfs)
+(roletype object_r labeledfs)
+(type pipefs)
+(roletype object_r pipefs)
+(type sockfs)
+(roletype object_r sockfs)
+(type rootfs)
+(roletype object_r rootfs)
+(type proc)
+(roletype object_r proc)
+(type binderfs)
+(roletype object_r binderfs)
+(type binderfs_logs)
+(roletype object_r binderfs_logs)
+(type binderfs_logs_proc)
+(roletype object_r binderfs_logs_proc)
+(type binderfs_logs_stats)
+(roletype object_r binderfs_logs_stats)
+(type binderfs_features)
+(roletype object_r binderfs_features)
+(type proc_security)
+(roletype object_r proc_security)
+(type proc_drop_caches)
+(roletype object_r proc_drop_caches)
+(type proc_overcommit_memory)
+(roletype object_r proc_overcommit_memory)
+(type proc_min_free_order_shift)
+(roletype object_r proc_min_free_order_shift)
+(type proc_kpageflags)
+(roletype object_r proc_kpageflags)
+(type proc_watermark_boost_factor)
+(roletype object_r proc_watermark_boost_factor)
+(type proc_percpu_pagelist_high_fraction)
+(roletype object_r proc_percpu_pagelist_high_fraction)
+(type usermodehelper)
+(roletype object_r usermodehelper)
+(type sysfs_usermodehelper)
+(roletype object_r sysfs_usermodehelper)
+(type proc_qtaguid_ctrl)
+(roletype object_r proc_qtaguid_ctrl)
+(type proc_qtaguid_stat)
+(roletype object_r proc_qtaguid_stat)
+(type proc_bluetooth_writable)
+(roletype object_r proc_bluetooth_writable)
+(type proc_abi)
+(roletype object_r proc_abi)
+(type proc_asound)
+(roletype object_r proc_asound)
+(type proc_bootconfig)
+(roletype object_r proc_bootconfig)
+(type proc_bpf)
+(roletype object_r proc_bpf)
+(type proc_buddyinfo)
+(roletype object_r proc_buddyinfo)
+(type proc_cmdline)
+(roletype object_r proc_cmdline)
+(type proc_cpu_alignment)
+(roletype object_r proc_cpu_alignment)
+(type proc_cpuinfo)
+(roletype object_r proc_cpuinfo)
+(type proc_dirty)
+(roletype object_r proc_dirty)
+(type proc_diskstats)
+(roletype object_r proc_diskstats)
+(type proc_extra_free_kbytes)
+(roletype object_r proc_extra_free_kbytes)
+(type proc_filesystems)
+(roletype object_r proc_filesystems)
+(type proc_fs_verity)
+(roletype object_r proc_fs_verity)
+(type proc_hostname)
+(roletype object_r proc_hostname)
+(type proc_hung_task)
+(roletype object_r proc_hung_task)
+(type proc_interrupts)
+(roletype object_r proc_interrupts)
+(type proc_iomem)
+(roletype object_r proc_iomem)
+(type proc_kallsyms)
+(roletype object_r proc_kallsyms)
+(type proc_keys)
+(roletype object_r proc_keys)
+(type proc_kmsg)
+(roletype object_r proc_kmsg)
+(type proc_loadavg)
+(roletype object_r proc_loadavg)
+(type proc_locks)
+(roletype object_r proc_locks)
+(type proc_lowmemorykiller)
+(roletype object_r proc_lowmemorykiller)
+(type proc_max_map_count)
+(roletype object_r proc_max_map_count)
+(type proc_meminfo)
+(roletype object_r proc_meminfo)
+(type proc_misc)
+(roletype object_r proc_misc)
+(type proc_modules)
+(roletype object_r proc_modules)
+(type proc_mounts)
+(roletype object_r proc_mounts)
+(type proc_net)
+(roletype object_r proc_net)
+(type proc_net_tcp_udp)
+(roletype object_r proc_net_tcp_udp)
+(type proc_page_cluster)
+(roletype object_r proc_page_cluster)
+(type proc_pagetypeinfo)
+(roletype object_r proc_pagetypeinfo)
+(type proc_panic)
+(roletype object_r proc_panic)
+(type proc_perf)
+(roletype object_r proc_perf)
+(type proc_pid_max)
+(roletype object_r proc_pid_max)
+(type proc_pipe_conf)
+(roletype object_r proc_pipe_conf)
+(type proc_pressure_cpu)
+(roletype object_r proc_pressure_cpu)
+(type proc_pressure_io)
+(roletype object_r proc_pressure_io)
+(type proc_pressure_mem)
+(roletype object_r proc_pressure_mem)
+(type proc_random)
+(roletype object_r proc_random)
+(type proc_sched)
+(roletype object_r proc_sched)
+(type proc_slabinfo)
+(roletype object_r proc_slabinfo)
+(type proc_stat)
+(roletype object_r proc_stat)
+(type proc_swaps)
+(roletype object_r proc_swaps)
+(type proc_sysrq)
+(roletype object_r proc_sysrq)
+(type proc_timer)
+(roletype object_r proc_timer)
+(type proc_tty_drivers)
+(roletype object_r proc_tty_drivers)
+(type proc_uid_cputime_showstat)
+(roletype object_r proc_uid_cputime_showstat)
+(type proc_uid_cputime_removeuid)
+(roletype object_r proc_uid_cputime_removeuid)
+(type proc_uid_io_stats)
+(roletype object_r proc_uid_io_stats)
+(type proc_uid_procstat_set)
+(roletype object_r proc_uid_procstat_set)
+(type proc_uid_time_in_state)
+(roletype object_r proc_uid_time_in_state)
+(type proc_uid_concurrent_active_time)
+(roletype object_r proc_uid_concurrent_active_time)
+(type proc_uid_concurrent_policy_time)
+(roletype object_r proc_uid_concurrent_policy_time)
+(type proc_uid_cpupower)
+(roletype object_r proc_uid_cpupower)
+(type proc_uptime)
+(roletype object_r proc_uptime)
+(type proc_version)
+(roletype object_r proc_version)
+(type proc_vmallocinfo)
+(roletype object_r proc_vmallocinfo)
+(type proc_vmstat)
+(roletype object_r proc_vmstat)
+(type proc_watermark_scale_factor)
+(roletype object_r proc_watermark_scale_factor)
+(type proc_zoneinfo)
+(roletype object_r proc_zoneinfo)
+(type proc_vendor_sched)
+(roletype object_r proc_vendor_sched)
+(type selinuxfs)
+(roletype object_r selinuxfs)
+(type fusectlfs)
+(roletype object_r fusectlfs)
+(type cgroup)
+(roletype object_r cgroup)
+(type cgroup_v2)
+(roletype object_r cgroup_v2)
+(type sysfs)
+(roletype object_r sysfs)
+(type sysfs_android_usb)
+(roletype object_r sysfs_android_usb)
+(type sysfs_uio)
+(roletype object_r sysfs_uio)
+(type sysfs_batteryinfo)
+(roletype object_r sysfs_batteryinfo)
+(type sysfs_bluetooth_writable)
+(roletype object_r sysfs_bluetooth_writable)
+(type sysfs_devfreq_cur)
+(roletype object_r sysfs_devfreq_cur)
+(type sysfs_devfreq_dir)
+(roletype object_r sysfs_devfreq_dir)
+(type sysfs_devices_block)
+(roletype object_r sysfs_devices_block)
+(type sysfs_dm)
+(roletype object_r sysfs_dm)
+(type sysfs_dm_verity)
+(roletype object_r sysfs_dm_verity)
+(type sysfs_dma_heap)
+(roletype object_r sysfs_dma_heap)
+(type sysfs_dmabuf_stats)
+(roletype object_r sysfs_dmabuf_stats)
+(type sysfs_dt_firmware_android)
+(roletype object_r sysfs_dt_firmware_android)
+(type sysfs_extcon)
+(roletype object_r sysfs_extcon)
+(type sysfs_ion)
+(roletype object_r sysfs_ion)
+(type sysfs_ipv4)
+(roletype object_r sysfs_ipv4)
+(type sysfs_kernel_notes)
+(roletype object_r sysfs_kernel_notes)
+(type sysfs_leds)
+(roletype object_r sysfs_leds)
+(type sysfs_loop)
+(roletype object_r sysfs_loop)
+(type sysfs_gpu)
+(roletype object_r sysfs_gpu)
+(type sysfs_hwrandom)
+(roletype object_r sysfs_hwrandom)
+(type sysfs_nfc_power_writable)
+(roletype object_r sysfs_nfc_power_writable)
+(type sysfs_wake_lock)
+(roletype object_r sysfs_wake_lock)
+(type sysfs_net)
+(roletype object_r sysfs_net)
+(type sysfs_power)
+(roletype object_r sysfs_power)
+(type sysfs_rtc)
+(roletype object_r sysfs_rtc)
+(type sysfs_suspend_stats)
+(roletype object_r sysfs_suspend_stats)
+(type sysfs_switch)
+(roletype object_r sysfs_switch)
+(type sysfs_sync_on_suspend)
+(roletype object_r sysfs_sync_on_suspend)
+(type sysfs_transparent_hugepage)
+(roletype object_r sysfs_transparent_hugepage)
+(type sysfs_lru_gen_enabled)
+(roletype object_r sysfs_lru_gen_enabled)
+(type sysfs_usb)
+(roletype object_r sysfs_usb)
+(type sysfs_wakeup)
+(roletype object_r sysfs_wakeup)
+(type sysfs_wakeup_reasons)
+(roletype object_r sysfs_wakeup_reasons)
+(type sysfs_fs_ext4_features)
+(roletype object_r sysfs_fs_ext4_features)
+(type sysfs_fs_f2fs)
+(roletype object_r sysfs_fs_f2fs)
+(type sysfs_fs_fuse_bpf)
+(roletype object_r sysfs_fs_fuse_bpf)
+(type sysfs_fs_fuse_features)
+(roletype object_r sysfs_fs_fuse_features)
+(type sysfs_fs_incfs_features)
+(roletype object_r sysfs_fs_incfs_features)
+(type sysfs_fs_incfs_metrics)
+(roletype object_r sysfs_fs_incfs_metrics)
+(type sysfs_vendor_sched)
+(roletype object_r sysfs_vendor_sched)
+(type fs_bpf)
+(roletype object_r fs_bpf)
+(type fs_bpf_tethering)
+(roletype object_r fs_bpf_tethering)
+(type fs_bpf_vendor)
+(roletype object_r fs_bpf_vendor)
+(type configfs)
+(roletype object_r configfs)
+(type sysfs_devices_cs_etm)
+(roletype object_r sysfs_devices_cs_etm)
+(type sysfs_devices_system_cpu)
+(roletype object_r sysfs_devices_system_cpu)
+(type sysfs_lowmemorykiller)
+(roletype object_r sysfs_lowmemorykiller)
+(type sysfs_wlan_fwpath)
+(roletype object_r sysfs_wlan_fwpath)
+(type sysfs_vibrator)
+(roletype object_r sysfs_vibrator)
+(type sysfs_uhid)
+(roletype object_r sysfs_uhid)
+(type sysfs_thermal)
+(roletype object_r sysfs_thermal)
+(type sysfs_zram)
+(roletype object_r sysfs_zram)
+(type sysfs_zram_uevent)
+(roletype object_r sysfs_zram_uevent)
+(type inotify)
+(roletype object_r inotify)
+(type devpts)
+(roletype object_r devpts)
+(type tmpfs)
+(roletype object_r tmpfs)
+(type shm)
+(roletype object_r shm)
+(type mqueue)
+(roletype object_r mqueue)
+(type fuse)
+(roletype object_r fuse)
+(type fuseblk)
+(roletype object_r fuseblk)
+(type sdcardfs)
+(roletype object_r sdcardfs)
+(type vfat)
+(roletype object_r vfat)
+(type exfat)
+(roletype object_r exfat)
+(type debugfs)
+(roletype object_r debugfs)
+(type debugfs_kprobes)
+(roletype object_r debugfs_kprobes)
+(type debugfs_mmc)
+(roletype object_r debugfs_mmc)
+(type debugfs_mm_events_tracing)
+(roletype object_r debugfs_mm_events_tracing)
+(type debugfs_trace_marker)
+(roletype object_r debugfs_trace_marker)
+(type debugfs_tracing)
+(roletype object_r debugfs_tracing)
+(type debugfs_tracing_debug)
+(roletype object_r debugfs_tracing_debug)
+(type debugfs_tracing_instances)
+(roletype object_r debugfs_tracing_instances)
+(type debugfs_tracing_printk_formats)
+(roletype object_r debugfs_tracing_printk_formats)
+(type debugfs_wakeup_sources)
+(roletype object_r debugfs_wakeup_sources)
+(type debugfs_wifi_tracing)
+(roletype object_r debugfs_wifi_tracing)
+(type securityfs)
+(roletype object_r securityfs)
+(type pstorefs)
+(roletype object_r pstorefs)
+(type functionfs)
+(roletype object_r functionfs)
+(type oemfs)
+(roletype object_r oemfs)
+(type usbfs)
+(roletype object_r usbfs)
+(type binfmt_miscfs)
+(roletype object_r binfmt_miscfs)
+(type app_fusefs)
+(roletype object_r app_fusefs)
+(type unlabeled)
+(roletype object_r unlabeled)
+(type system_file)
+(roletype object_r system_file)
+(type system_asan_options_file)
+(roletype object_r system_asan_options_file)
+(type system_event_log_tags_file)
+(roletype object_r system_event_log_tags_file)
+(type system_lib_file)
+(roletype object_r system_lib_file)
+(type system_bootstrap_lib_file)
+(roletype object_r system_bootstrap_lib_file)
+(type system_group_file)
+(roletype object_r system_group_file)
+(type system_linker_exec)
+(roletype object_r system_linker_exec)
+(type system_linker_config_file)
+(roletype object_r system_linker_config_file)
+(type system_passwd_file)
+(roletype object_r system_passwd_file)
+(type system_seccomp_policy_file)
+(roletype object_r system_seccomp_policy_file)
+(type system_security_cacerts_file)
+(roletype object_r system_security_cacerts_file)
+(type tcpdump_exec)
+(roletype object_r tcpdump_exec)
+(type system_zoneinfo_file)
+(roletype object_r system_zoneinfo_file)
+(type cgroup_desc_file)
+(roletype object_r cgroup_desc_file)
+(type cgroup_desc_api_file)
+(roletype object_r cgroup_desc_api_file)
+(type vendor_cgroup_desc_file)
+(roletype object_r vendor_cgroup_desc_file)
+(type task_profiles_file)
+(roletype object_r task_profiles_file)
+(type task_profiles_api_file)
+(roletype object_r task_profiles_api_file)
+(type vendor_task_profiles_file)
+(roletype object_r vendor_task_profiles_file)
+(type art_apex_dir)
+(roletype object_r art_apex_dir)
+(type linkerconfig_file)
+(roletype object_r linkerconfig_file)
+(type incremental_control_file)
+(roletype object_r incremental_control_file)
+(type bootanim_oem_file)
+(roletype object_r bootanim_oem_file)
+(type vendor_hal_file)
+(roletype object_r vendor_hal_file)
+(type vendor_file)
+(roletype object_r vendor_file)
+(type vendor_app_file)
+(roletype object_r vendor_app_file)
+(type vendor_configs_file)
+(roletype object_r vendor_configs_file)
+(type same_process_hal_file)
+(roletype object_r same_process_hal_file)
+(type vndk_sp_file)
+(roletype object_r vndk_sp_file)
+(type vendor_framework_file)
+(roletype object_r vendor_framework_file)
+(type vendor_overlay_file)
+(roletype object_r vendor_overlay_file)
+(type vendor_public_lib_file)
+(roletype object_r vendor_public_lib_file)
+(type vendor_public_framework_file)
+(roletype object_r vendor_public_framework_file)
+(type vendor_microdroid_file)
+(roletype object_r vendor_microdroid_file)
+(type vendor_keylayout_file)
+(roletype object_r vendor_keylayout_file)
+(type vendor_keychars_file)
+(roletype object_r vendor_keychars_file)
+(type vendor_idc_file)
+(roletype object_r vendor_idc_file)
+(type vendor_uuid_mapping_config_file)
+(roletype object_r vendor_uuid_mapping_config_file)
+(type vendor_vm_file)
+(roletype object_r vendor_vm_file)
+(type vendor_vm_data_file)
+(roletype object_r vendor_vm_data_file)
+(type metadata_file)
+(roletype object_r metadata_file)
+(type vold_metadata_file)
+(roletype object_r vold_metadata_file)
+(type gsi_metadata_file)
+(roletype object_r gsi_metadata_file)
+(type gsi_public_metadata_file)
+(roletype object_r gsi_public_metadata_file)
+(type password_slot_metadata_file)
+(roletype object_r password_slot_metadata_file)
+(type apex_metadata_file)
+(roletype object_r apex_metadata_file)
+(type ota_metadata_file)
+(roletype object_r ota_metadata_file)
+(type metadata_bootstat_file)
+(roletype object_r metadata_bootstat_file)
+(type userspace_reboot_metadata_file)
+(roletype object_r userspace_reboot_metadata_file)
+(type staged_install_file)
+(roletype object_r staged_install_file)
+(type watchdog_metadata_file)
+(roletype object_r watchdog_metadata_file)
+(type repair_mode_metadata_file)
+(roletype object_r repair_mode_metadata_file)
+(type aconfig_storage_metadata_file)
+(roletype object_r aconfig_storage_metadata_file)
+(type aconfig_storage_flags_metadata_file)
+(roletype object_r aconfig_storage_flags_metadata_file)
+(type dev_cpu_variant)
+(roletype object_r dev_cpu_variant)
+(type runtime_event_log_tags_file)
+(roletype object_r runtime_event_log_tags_file)
+(type logcat_exec)
+(roletype object_r logcat_exec)
+(type cgroup_rc_file)
+(roletype object_r cgroup_rc_file)
+(type coredump_file)
+(roletype object_r coredump_file)
+(type system_data_root_file)
+(roletype object_r system_data_root_file)
+(type system_data_file)
+(roletype object_r system_data_file)
+(type system_userdir_file)
+(roletype object_r system_userdir_file)
+(type packages_list_file)
+(roletype object_r packages_list_file)
+(type game_mode_intervention_list_file)
+(roletype object_r game_mode_intervention_list_file)
+(type vendor_data_file)
+(roletype object_r vendor_data_file)
+(type vendor_userdir_file)
+(roletype object_r vendor_userdir_file)
+(type unencrypted_data_file)
+(roletype object_r unencrypted_data_file)
+(type install_data_file)
+(roletype object_r install_data_file)
+(type drm_data_file)
+(roletype object_r drm_data_file)
+(type adb_data_file)
+(roletype object_r adb_data_file)
+(type anr_data_file)
+(roletype object_r anr_data_file)
+(type tombstone_data_file)
+(roletype object_r tombstone_data_file)
+(type tombstone_wifi_data_file)
+(roletype object_r tombstone_wifi_data_file)
+(type apex_data_file)
+(roletype object_r apex_data_file)
+(type apk_data_file)
+(roletype object_r apk_data_file)
+(type apk_tmp_file)
+(roletype object_r apk_tmp_file)
+(type apk_private_data_file)
+(roletype object_r apk_private_data_file)
+(type apk_private_tmp_file)
+(roletype object_r apk_private_tmp_file)
+(type dalvikcache_data_file)
+(roletype object_r dalvikcache_data_file)
+(type ota_data_file)
+(roletype object_r ota_data_file)
+(type ota_package_file)
+(roletype object_r ota_package_file)
+(type user_profile_root_file)
+(roletype object_r user_profile_root_file)
+(type user_profile_data_file)
+(roletype object_r user_profile_data_file)
+(type profman_dump_data_file)
+(roletype object_r profman_dump_data_file)
+(type prereboot_data_file)
+(roletype object_r prereboot_data_file)
+(type resourcecache_data_file)
+(roletype object_r resourcecache_data_file)
+(type shell_data_file)
+(roletype object_r shell_data_file)
+(type property_data_file)
+(roletype object_r property_data_file)
+(type bootchart_data_file)
+(roletype object_r bootchart_data_file)
+(type dropbox_data_file)
+(roletype object_r dropbox_data_file)
+(type heapdump_data_file)
+(roletype object_r heapdump_data_file)
+(type nativetest_data_file)
+(roletype object_r nativetest_data_file)
+(type shell_test_data_file)
+(roletype object_r shell_test_data_file)
+(type ringtone_file)
+(roletype object_r ringtone_file)
+(type preloads_data_file)
+(roletype object_r preloads_data_file)
+(type preloads_media_file)
+(roletype object_r preloads_media_file)
+(type dhcp_data_file)
+(roletype object_r dhcp_data_file)
+(type server_configurable_flags_data_file)
+(roletype object_r server_configurable_flags_data_file)
+(type staging_data_file)
+(roletype object_r staging_data_file)
+(type vendor_apex_file)
+(roletype object_r vendor_apex_file)
+(type vendor_apex_metadata_file)
+(roletype object_r vendor_apex_metadata_file)
+(type shutdown_checkpoints_system_data_file)
+(roletype object_r shutdown_checkpoints_system_data_file)
+(type mnt_media_rw_file)
+(roletype object_r mnt_media_rw_file)
+(type mnt_user_file)
+(roletype object_r mnt_user_file)
+(type mnt_pass_through_file)
+(roletype object_r mnt_pass_through_file)
+(type mnt_expand_file)
+(roletype object_r mnt_expand_file)
+(type mnt_sdcard_file)
+(roletype object_r mnt_sdcard_file)
+(type storage_file)
+(roletype object_r storage_file)
+(type mnt_media_rw_stub_file)
+(roletype object_r mnt_media_rw_stub_file)
+(type storage_stub_file)
+(roletype object_r storage_stub_file)
+(type mnt_vendor_file)
+(roletype object_r mnt_vendor_file)
+(type mnt_product_file)
+(roletype object_r mnt_product_file)
+(type apex_mnt_dir)
+(roletype object_r apex_mnt_dir)
+(type apex_info_file)
+(roletype object_r apex_info_file)
+(type postinstall_mnt_dir)
+(roletype object_r postinstall_mnt_dir)
+(type postinstall_file)
+(roletype object_r postinstall_file)
+(type postinstall_apex_mnt_dir)
+(roletype object_r postinstall_apex_mnt_dir)
+(type mirror_data_file)
+(roletype object_r mirror_data_file)
+(type adb_keys_file)
+(roletype object_r adb_keys_file)
+(type apex_system_server_data_file)
+(roletype object_r apex_system_server_data_file)
+(type apex_module_data_file)
+(roletype object_r apex_module_data_file)
+(type apex_ota_reserved_file)
+(roletype object_r apex_ota_reserved_file)
+(type apex_rollback_data_file)
+(roletype object_r apex_rollback_data_file)
+(type appcompat_data_file)
+(roletype object_r appcompat_data_file)
+(type audio_data_file)
+(roletype object_r audio_data_file)
+(type audioserver_data_file)
+(roletype object_r audioserver_data_file)
+(type bluetooth_data_file)
+(roletype object_r bluetooth_data_file)
+(type bluetooth_logs_data_file)
+(roletype object_r bluetooth_logs_data_file)
+(type bootstat_data_file)
+(roletype object_r bootstat_data_file)
+(type boottrace_data_file)
+(roletype object_r boottrace_data_file)
+(type camera_data_file)
+(roletype object_r camera_data_file)
+(type credstore_data_file)
+(roletype object_r credstore_data_file)
+(type gatekeeper_data_file)
+(roletype object_r gatekeeper_data_file)
+(type incident_data_file)
+(roletype object_r incident_data_file)
+(type keychain_data_file)
+(roletype object_r keychain_data_file)
+(type keystore_data_file)
+(roletype object_r keystore_data_file)
+(type media_data_file)
+(roletype object_r media_data_file)
+(type media_rw_data_file)
+(roletype object_r media_rw_data_file)
+(type media_userdir_file)
+(roletype object_r media_userdir_file)
+(type misc_user_data_file)
+(roletype object_r misc_user_data_file)
+(type net_data_file)
+(roletype object_r net_data_file)
+(type network_watchlist_data_file)
+(roletype object_r network_watchlist_data_file)
+(type nfc_data_file)
+(roletype object_r nfc_data_file)
+(type nfc_logs_data_file)
+(roletype object_r nfc_logs_data_file)
+(type radio_data_file)
+(roletype object_r radio_data_file)
+(type recovery_data_file)
+(roletype object_r recovery_data_file)
+(type shared_relro_file)
+(roletype object_r shared_relro_file)
+(type snapshotctl_log_data_file)
+(roletype object_r snapshotctl_log_data_file)
+(type stats_config_data_file)
+(roletype object_r stats_config_data_file)
+(type stats_data_file)
+(roletype object_r stats_data_file)
+(type systemkeys_data_file)
+(roletype object_r systemkeys_data_file)
+(type textclassifier_data_file)
+(roletype object_r textclassifier_data_file)
+(type trace_data_file)
+(roletype object_r trace_data_file)
+(type vpn_data_file)
+(roletype object_r vpn_data_file)
+(type wifi_data_file)
+(roletype object_r wifi_data_file)
+(type vold_data_file)
+(roletype object_r vold_data_file)
+(type tee_data_file)
+(roletype object_r tee_data_file)
+(type update_engine_data_file)
+(roletype object_r update_engine_data_file)
+(type update_engine_log_data_file)
+(roletype object_r update_engine_log_data_file)
+(type snapuserd_log_data_file)
+(roletype object_r snapuserd_log_data_file)
+(type method_trace_data_file)
+(roletype object_r method_trace_data_file)
+(type gsi_data_file)
+(roletype object_r gsi_data_file)
+(type radio_core_data_file)
+(roletype object_r radio_core_data_file)
+(type app_data_file)
+(roletype object_r app_data_file)
+(type privapp_data_file)
+(roletype object_r privapp_data_file)
+(type system_app_data_file)
+(roletype object_r system_app_data_file)
+(type cache_file)
+(roletype object_r cache_file)
+(type overlayfs_file)
+(roletype object_r overlayfs_file)
+(type cache_backup_file)
+(roletype object_r cache_backup_file)
+(type cache_private_backup_file)
+(roletype object_r cache_private_backup_file)
+(type cache_recovery_file)
+(roletype object_r cache_recovery_file)
+(type efs_file)
+(roletype object_r efs_file)
+(type wallpaper_file)
+(roletype object_r wallpaper_file)
+(type shortcut_manager_icons)
+(roletype object_r shortcut_manager_icons)
+(type icon_file)
+(roletype object_r icon_file)
+(type asec_apk_file)
+(roletype object_r asec_apk_file)
+(type asec_public_file)
+(roletype object_r asec_public_file)
+(type asec_image_file)
+(roletype object_r asec_image_file)
+(type backup_data_file)
+(roletype object_r backup_data_file)
+(type bluetooth_efs_file)
+(roletype object_r bluetooth_efs_file)
+(type fingerprintd_data_file)
+(roletype object_r fingerprintd_data_file)
+(type fingerprint_vendor_data_file)
+(roletype object_r fingerprint_vendor_data_file)
+(type app_fuse_file)
+(roletype object_r app_fuse_file)
+(type face_vendor_data_file)
+(roletype object_r face_vendor_data_file)
+(type iris_vendor_data_file)
+(roletype object_r iris_vendor_data_file)
+(type adbd_socket)
+(roletype object_r adbd_socket)
+(type bluetooth_socket)
+(roletype object_r bluetooth_socket)
+(type dnsproxyd_socket)
+(roletype object_r dnsproxyd_socket)
+(type dumpstate_socket)
+(roletype object_r dumpstate_socket)
+(type fwmarkd_socket)
+(roletype object_r fwmarkd_socket)
+(type lmkd_socket)
+(roletype object_r lmkd_socket)
+(type logd_socket)
+(roletype object_r logd_socket)
+(type logdr_socket)
+(roletype object_r logdr_socket)
+(type logdw_socket)
+(roletype object_r logdw_socket)
+(type mdns_socket)
+(roletype object_r mdns_socket)
+(type mdnsd_socket)
+(roletype object_r mdnsd_socket)
+(type misc_logd_file)
+(roletype object_r misc_logd_file)
+(type mtpd_socket)
+(roletype object_r mtpd_socket)
+(type ot_daemon_socket)
+(roletype object_r ot_daemon_socket)
+(type property_socket)
+(roletype object_r property_socket)
+(type racoon_socket)
+(roletype object_r racoon_socket)
+(type recovery_socket)
+(roletype object_r recovery_socket)
+(type rild_socket)
+(roletype object_r rild_socket)
+(type rild_debug_socket)
+(roletype object_r rild_debug_socket)
+(type snapuserd_socket)
+(roletype object_r snapuserd_socket)
+(type snapuserd_proxy_socket)
+(roletype object_r snapuserd_proxy_socket)
+(type statsdw_socket)
+(roletype object_r statsdw_socket)
+(type system_wpa_socket)
+(roletype object_r system_wpa_socket)
+(type system_ndebug_socket)
+(roletype object_r system_ndebug_socket)
+(type system_unsolzygote_socket)
+(roletype object_r system_unsolzygote_socket)
+(type tombstoned_crash_socket)
+(roletype object_r tombstoned_crash_socket)
+(type tombstoned_java_trace_socket)
+(roletype object_r tombstoned_java_trace_socket)
+(type tombstoned_intercept_socket)
+(roletype object_r tombstoned_intercept_socket)
+(type traced_consumer_socket)
+(roletype object_r traced_consumer_socket)
+(type traced_perf_socket)
+(roletype object_r traced_perf_socket)
+(type traced_producer_socket)
+(roletype object_r traced_producer_socket)
+(type uncrypt_socket)
+(roletype object_r uncrypt_socket)
+(type wpa_socket)
+(roletype object_r wpa_socket)
+(type zygote_socket)
+(roletype object_r zygote_socket)
+(type heapprofd_socket)
+(roletype object_r heapprofd_socket)
+(type gps_control)
+(roletype object_r gps_control)
+(type pdx_display_dir)
+(roletype object_r pdx_display_dir)
+(type pdx_performance_dir)
+(roletype object_r pdx_performance_dir)
+(type pdx_bufferhub_dir)
+(roletype object_r pdx_bufferhub_dir)
+(type pdx_display_client_endpoint_socket)
+(roletype object_r pdx_display_client_endpoint_socket)
+(type pdx_display_client_channel_socket)
+(roletype object_r pdx_display_client_channel_socket)
+(type pdx_display_manager_endpoint_socket)
+(roletype object_r pdx_display_manager_endpoint_socket)
+(type pdx_display_manager_channel_socket)
+(roletype object_r pdx_display_manager_channel_socket)
+(type pdx_display_screenshot_endpoint_socket)
+(roletype object_r pdx_display_screenshot_endpoint_socket)
+(type pdx_display_screenshot_channel_socket)
+(roletype object_r pdx_display_screenshot_channel_socket)
+(type pdx_display_vsync_endpoint_socket)
+(roletype object_r pdx_display_vsync_endpoint_socket)
+(type pdx_display_vsync_channel_socket)
+(roletype object_r pdx_display_vsync_channel_socket)
+(type pdx_performance_client_endpoint_socket)
+(roletype object_r pdx_performance_client_endpoint_socket)
+(type pdx_performance_client_channel_socket)
+(roletype object_r pdx_performance_client_channel_socket)
+(type pdx_bufferhub_client_endpoint_socket)
+(roletype object_r pdx_bufferhub_client_endpoint_socket)
+(type pdx_bufferhub_client_channel_socket)
+(roletype object_r pdx_bufferhub_client_channel_socket)
+(type file_contexts_file)
+(roletype object_r file_contexts_file)
+(type mac_perms_file)
+(roletype object_r mac_perms_file)
+(type property_contexts_file)
+(roletype object_r property_contexts_file)
+(type seapp_contexts_file)
+(roletype object_r seapp_contexts_file)
+(type sepolicy_file)
+(roletype object_r sepolicy_file)
+(type service_contexts_file)
+(roletype object_r service_contexts_file)
+(type keystore2_key_contexts_file)
+(roletype object_r keystore2_key_contexts_file)
+(type vendor_service_contexts_file)
+(roletype object_r vendor_service_contexts_file)
+(type hwservice_contexts_file)
+(roletype object_r hwservice_contexts_file)
+(type vndservice_contexts_file)
+(roletype object_r vndservice_contexts_file)
+(type debugfs_bootreceiver_tracing)
+(roletype object_r debugfs_bootreceiver_tracing)
+(type vendor_kernel_modules)
+(roletype object_r vendor_kernel_modules)
+(type system_dlkm_file)
+(roletype object_r system_dlkm_file)
+(type audiohal_data_file)
+(roletype object_r audiohal_data_file)
+(type fingerprintd)
+(roletype object_r fingerprintd)
+(type fingerprintd_exec)
+(roletype object_r fingerprintd_exec)
+(type flags_health_check)
+(roletype object_r flags_health_check)
+(type flags_health_check_exec)
+(roletype object_r flags_health_check_exec)
+(type fsck)
+(roletype object_r fsck)
+(type fsck_exec)
+(roletype object_r fsck_exec)
+(type fsck_untrusted)
+(roletype object_r fsck_untrusted)
+(type gatekeeperd)
+(roletype object_r gatekeeperd)
+(type gatekeeperd_exec)
+(roletype object_r gatekeeperd_exec)
+(type gmscore_app)
+(roletype object_r gmscore_app)
+(type gpuservice)
+(roletype object_r gpuservice)
+(type hal_graphics_composer_server_tmpfs)
+(roletype object_r hal_graphics_composer_server_tmpfs)
+(typeattribute hal_graphics_composer_client_tmpfs)
+(expandtypeattribute (hal_graphics_composer_client_tmpfs) true)
+(typeattributeset hal_graphics_composer_client_tmpfs (surfaceflinger_tmpfs ))
+(type healthd)
+(roletype object_r healthd)
+(type heapprofd)
+(roletype object_r heapprofd)
+(type default_android_hwservice)
+(roletype object_r default_android_hwservice)
+(type fwk_camera_hwservice)
+(roletype object_r fwk_camera_hwservice)
+(type fwk_display_hwservice)
+(roletype object_r fwk_display_hwservice)
+(type fwk_scheduler_hwservice)
+(roletype object_r fwk_scheduler_hwservice)
+(type fwk_sensor_hwservice)
+(roletype object_r fwk_sensor_hwservice)
+(type fwk_stats_hwservice)
+(roletype object_r fwk_stats_hwservice)
+(type fwk_automotive_display_hwservice)
+(roletype object_r fwk_automotive_display_hwservice)
+(type hal_atrace_hwservice)
+(roletype object_r hal_atrace_hwservice)
+(type hal_audio_hwservice)
+(roletype object_r hal_audio_hwservice)
+(type hal_audiocontrol_hwservice)
+(roletype object_r hal_audiocontrol_hwservice)
+(type hal_authsecret_hwservice)
+(roletype object_r hal_authsecret_hwservice)
+(type hal_bluetooth_hwservice)
+(roletype object_r hal_bluetooth_hwservice)
+(type hal_bootctl_hwservice)
+(roletype object_r hal_bootctl_hwservice)
+(type hal_broadcastradio_hwservice)
+(roletype object_r hal_broadcastradio_hwservice)
+(type hal_camera_hwservice)
+(roletype object_r hal_camera_hwservice)
+(type hal_can_bus_hwservice)
+(roletype object_r hal_can_bus_hwservice)
+(type hal_can_controller_hwservice)
+(roletype object_r hal_can_controller_hwservice)
+(type hal_confirmationui_hwservice)
+(roletype object_r hal_confirmationui_hwservice)
+(type hal_contexthub_hwservice)
+(roletype object_r hal_contexthub_hwservice)
+(type hal_dumpstate_hwservice)
+(roletype object_r hal_dumpstate_hwservice)
+(type hal_evs_hwservice)
+(roletype object_r hal_evs_hwservice)
+(type hal_face_hwservice)
+(roletype object_r hal_face_hwservice)
+(type hal_fingerprint_hwservice)
+(roletype object_r hal_fingerprint_hwservice)
+(type hal_gatekeeper_hwservice)
+(roletype object_r hal_gatekeeper_hwservice)
+(type hal_gnss_hwservice)
+(roletype object_r hal_gnss_hwservice)
+(type hal_graphics_composer_hwservice)
+(roletype object_r hal_graphics_composer_hwservice)
+(type hal_health_hwservice)
+(roletype object_r hal_health_hwservice)
+(type hal_health_storage_hwservice)
+(roletype object_r hal_health_storage_hwservice)
+(type hal_input_classifier_hwservice)
+(roletype object_r hal_input_classifier_hwservice)
+(type hal_ir_hwservice)
+(roletype object_r hal_ir_hwservice)
+(type hal_keymaster_hwservice)
+(roletype object_r hal_keymaster_hwservice)
+(type hal_light_hwservice)
+(roletype object_r hal_light_hwservice)
+(type hal_lowpan_hwservice)
+(roletype object_r hal_lowpan_hwservice)
+(type hal_memtrack_hwservice)
+(roletype object_r hal_memtrack_hwservice)
+(type hal_nfc_hwservice)
+(roletype object_r hal_nfc_hwservice)
+(type hal_oemlock_hwservice)
+(roletype object_r hal_oemlock_hwservice)
+(type hal_power_hwservice)
+(roletype object_r hal_power_hwservice)
+(type hal_power_stats_hwservice)
+(roletype object_r hal_power_stats_hwservice)
+(type hal_secure_element_hwservice)
+(roletype object_r hal_secure_element_hwservice)
+(type hal_sensors_hwservice)
+(roletype object_r hal_sensors_hwservice)
+(type hal_telephony_hwservice)
+(roletype object_r hal_telephony_hwservice)
+(type hal_tetheroffload_hwservice)
+(roletype object_r hal_tetheroffload_hwservice)
+(type hal_thermal_hwservice)
+(roletype object_r hal_thermal_hwservice)
+(type hal_tv_cec_hwservice)
+(roletype object_r hal_tv_cec_hwservice)
+(type hal_tv_input_hwservice)
+(roletype object_r hal_tv_input_hwservice)
+(type hal_tv_tuner_hwservice)
+(roletype object_r hal_tv_tuner_hwservice)
+(type hal_usb_gadget_hwservice)
+(roletype object_r hal_usb_gadget_hwservice)
+(type hal_usb_hwservice)
+(roletype object_r hal_usb_hwservice)
+(type hal_vehicle_hwservice)
+(roletype object_r hal_vehicle_hwservice)
+(type hal_vibrator_hwservice)
+(roletype object_r hal_vibrator_hwservice)
+(type hal_vr_hwservice)
+(roletype object_r hal_vr_hwservice)
+(type hal_weaver_hwservice)
+(roletype object_r hal_weaver_hwservice)
+(type hal_wifi_hostapd_hwservice)
+(roletype object_r hal_wifi_hostapd_hwservice)
+(type hal_wifi_hwservice)
+(roletype object_r hal_wifi_hwservice)
+(type hal_wifi_supplicant_hwservice)
+(roletype object_r hal_wifi_supplicant_hwservice)
+(type system_net_netd_hwservice)
+(roletype object_r system_net_netd_hwservice)
+(type system_suspend_hwservice)
+(roletype object_r system_suspend_hwservice)
+(type system_wifi_keystore_hwservice)
+(roletype object_r system_wifi_keystore_hwservice)
+(type fwk_bufferhub_hwservice)
+(roletype object_r fwk_bufferhub_hwservice)
+(type hal_cas_hwservice)
+(roletype object_r hal_cas_hwservice)
+(type hal_codec2_hwservice)
+(roletype object_r hal_codec2_hwservice)
+(type hal_configstore_ISurfaceFlingerConfigs)
+(roletype object_r hal_configstore_ISurfaceFlingerConfigs)
+(type hal_drm_hwservice)
+(roletype object_r hal_drm_hwservice)
+(type hal_graphics_allocator_hwservice)
+(roletype object_r hal_graphics_allocator_hwservice)
+(type hal_graphics_mapper_hwservice)
+(roletype object_r hal_graphics_mapper_hwservice)
+(type hal_neuralnetworks_hwservice)
+(roletype object_r hal_neuralnetworks_hwservice)
+(type hal_omx_hwservice)
+(roletype object_r hal_omx_hwservice)
+(type hal_renderscript_hwservice)
+(roletype object_r hal_renderscript_hwservice)
+(type hidl_allocator_hwservice)
+(roletype object_r hidl_allocator_hwservice)
+(type hidl_base_hwservice)
+(roletype object_r hidl_base_hwservice)
+(type hidl_manager_hwservice)
+(roletype object_r hidl_manager_hwservice)
+(type hidl_memory_hwservice)
+(roletype object_r hidl_memory_hwservice)
+(type hidl_token_hwservice)
+(roletype object_r hidl_token_hwservice)
+(type hwservicemanager)
+(roletype object_r hwservicemanager)
+(type hwservicemanager_exec)
+(roletype object_r hwservicemanager_exec)
+(type idmap)
+(roletype object_r idmap)
+(type idmap_exec)
+(roletype object_r idmap_exec)
+(type incident)
+(roletype object_r incident)
+(type incident_helper)
+(roletype object_r incident_helper)
+(type incidentd)
+(roletype object_r incidentd)
+(type init)
+(roletype object_r init)
+(type init_exec)
+(roletype object_r init_exec)
+(type init_tmpfs)
+(roletype object_r init_tmpfs)
+(type inputflinger)
+(roletype object_r inputflinger)
+(type inputflinger_exec)
+(roletype object_r inputflinger_exec)
+(type installd)
+(roletype object_r installd)
+(type installd_exec)
+(roletype object_r installd_exec)
+(type isolated_app)
+(roletype object_r isolated_app)
+(type isolated_compute_app)
+(roletype object_r isolated_compute_app)
+(type kernel)
+(roletype object_r kernel)
+(type keystore)
+(roletype object_r keystore)
+(type keystore_exec)
+(roletype object_r keystore_exec)
+(type wifi_key)
+(roletype object_r wifi_key)
+(type llkd)
+(roletype object_r llkd)
+(type llkd_exec)
+(roletype object_r llkd_exec)
+(type lmkd)
+(roletype object_r lmkd)
+(type lmkd_exec)
+(roletype object_r lmkd_exec)
+(type logd)
+(roletype object_r logd)
+(type logd_exec)
+(roletype object_r logd_exec)
+(type logpersist)
+(roletype object_r logpersist)
+(type mdnsd)
+(roletype object_r mdnsd)
+(type mediadrmserver)
+(roletype object_r mediadrmserver)
+(type mediadrmserver_exec)
+(roletype object_r mediadrmserver_exec)
+(type mediaextractor)
+(roletype object_r mediaextractor)
+(type mediaextractor_exec)
+(roletype object_r mediaextractor_exec)
+(type mediaextractor_tmpfs)
+(roletype object_r mediaextractor_tmpfs)
+(type mediametrics)
+(roletype object_r mediametrics)
+(type mediametrics_exec)
+(roletype object_r mediametrics_exec)
+(type mediaprovider)
+(roletype object_r mediaprovider)
+(type mediaserver)
+(roletype object_r mediaserver)
+(type mediaserver_exec)
+(roletype object_r mediaserver_exec)
+(type mediaserver_tmpfs)
+(roletype object_r mediaserver_tmpfs)
+(type mediaswcodec)
+(roletype object_r mediaswcodec)
+(type mediaswcodec_exec)
+(roletype object_r mediaswcodec_exec)
+(type mediatranscoding)
+(roletype object_r mediatranscoding)
+(type modprobe)
+(roletype object_r modprobe)
+(type mtp)
+(roletype object_r mtp)
+(type node)
+(roletype object_r node)
+(type netif)
+(roletype object_r netif)
+(type port)
+(roletype object_r port)
+(type netd)
+(roletype object_r netd)
+(type netd_exec)
+(roletype object_r netd_exec)
+(type netutils_wrapper)
+(roletype object_r netutils_wrapper)
+(type netutils_wrapper_exec)
+(roletype object_r netutils_wrapper_exec)
+(type network_stack)
+(roletype object_r network_stack)
+(type nfc)
+(roletype object_r nfc)
+(type otapreopt_chroot)
+(roletype object_r otapreopt_chroot)
+(type perfetto)
+(roletype object_r perfetto)
+(type performanced)
+(roletype object_r performanced)
+(type performanced_exec)
+(roletype object_r performanced_exec)
+(type platform_app)
+(roletype object_r platform_app)
+(type postinstall)
+(roletype object_r postinstall)
+(type ppp)
+(roletype object_r ppp)
+(type priv_app)
+(roletype object_r priv_app)
+(type prng_seeder)
+(roletype object_r prng_seeder)
+(type profman)
+(roletype object_r profman)
+(type profman_exec)
+(roletype object_r profman_exec)
+(type apexd_prop)
+(roletype object_r apexd_prop)
+(type bootloader_boot_reason_prop)
+(roletype object_r bootloader_boot_reason_prop)
+(type device_config_activity_manager_native_boot_prop)
+(roletype object_r device_config_activity_manager_native_boot_prop)
+(type device_config_boot_count_prop)
+(roletype object_r device_config_boot_count_prop)
+(type device_config_input_native_boot_prop)
+(roletype object_r device_config_input_native_boot_prop)
+(type device_config_netd_native_prop)
+(roletype object_r device_config_netd_native_prop)
+(type device_config_reset_performed_prop)
+(roletype object_r device_config_reset_performed_prop)
+(type firstboot_prop)
+(roletype object_r firstboot_prop)
+(type boottime_prop)
+(roletype object_r boottime_prop)
+(type charger_prop)
+(roletype object_r charger_prop)
+(type cold_boot_done_prop)
+(roletype object_r cold_boot_done_prop)
+(type ctl_adbd_prop)
+(roletype object_r ctl_adbd_prop)
+(type ctl_apexd_prop)
+(roletype object_r ctl_apexd_prop)
+(type ctl_bootanim_prop)
+(roletype object_r ctl_bootanim_prop)
+(type ctl_bugreport_prop)
+(roletype object_r ctl_bugreport_prop)
+(type ctl_console_prop)
+(roletype object_r ctl_console_prop)
+(type ctl_dumpstate_prop)
+(roletype object_r ctl_dumpstate_prop)
+(type ctl_fuse_prop)
+(roletype object_r ctl_fuse_prop)
+(type ctl_gsid_prop)
+(roletype object_r ctl_gsid_prop)
+(type ctl_interface_restart_prop)
+(roletype object_r ctl_interface_restart_prop)
+(type ctl_interface_stop_prop)
+(roletype object_r ctl_interface_stop_prop)
+(type ctl_mdnsd_prop)
+(roletype object_r ctl_mdnsd_prop)
+(type ctl_restart_prop)
+(roletype object_r ctl_restart_prop)
+(type ctl_rildaemon_prop)
+(roletype object_r ctl_rildaemon_prop)
+(type ctl_sigstop_prop)
+(roletype object_r ctl_sigstop_prop)
+(type dynamic_system_prop)
+(roletype object_r dynamic_system_prop)
+(type heapprofd_enabled_prop)
+(roletype object_r heapprofd_enabled_prop)
+(type llkd_prop)
+(roletype object_r llkd_prop)
+(type lpdumpd_prop)
+(roletype object_r lpdumpd_prop)
+(type mmc_prop)
+(roletype object_r mmc_prop)
+(type mock_ota_prop)
+(roletype object_r mock_ota_prop)
+(type net_dns_prop)
+(roletype object_r net_dns_prop)
+(type overlay_prop)
+(roletype object_r overlay_prop)
+(type persistent_properties_ready_prop)
+(roletype object_r persistent_properties_ready_prop)
+(type safemode_prop)
+(roletype object_r safemode_prop)
+(type system_lmk_prop)
+(roletype object_r system_lmk_prop)
+(type system_trace_prop)
+(roletype object_r system_trace_prop)
+(type test_boot_reason_prop)
+(roletype object_r test_boot_reason_prop)
+(type time_prop)
+(roletype object_r time_prop)
+(type traced_enabled_prop)
+(roletype object_r traced_enabled_prop)
+(type traced_lazy_prop)
+(roletype object_r traced_lazy_prop)
+(type aac_drc_prop)
+(roletype object_r aac_drc_prop)
+(type adaptive_haptics_prop)
+(roletype object_r adaptive_haptics_prop)
+(type apex_ready_prop)
+(roletype object_r apex_ready_prop)
+(type arm64_memtag_prop)
+(roletype object_r arm64_memtag_prop)
+(type binder_cache_bluetooth_server_prop)
+(roletype object_r binder_cache_bluetooth_server_prop)
+(type binder_cache_system_server_prop)
+(roletype object_r binder_cache_system_server_prop)
+(type binder_cache_telephony_server_prop)
+(roletype object_r binder_cache_telephony_server_prop)
+(type boot_status_prop)
+(roletype object_r boot_status_prop)
+(type bootanim_system_prop)
+(roletype object_r bootanim_system_prop)
+(type bootloader_prop)
+(roletype object_r bootloader_prop)
+(type boottime_public_prop)
+(roletype object_r boottime_public_prop)
+(type bq_config_prop)
+(roletype object_r bq_config_prop)
+(type build_bootimage_prop)
+(roletype object_r build_bootimage_prop)
+(type build_prop)
+(roletype object_r build_prop)
+(type composd_vm_art_prop)
+(roletype object_r composd_vm_art_prop)
+(type device_config_aconfig_flags_prop)
+(roletype object_r device_config_aconfig_flags_prop)
+(type device_config_camera_native_prop)
+(roletype object_r device_config_camera_native_prop)
+(type device_config_edgetpu_native_prop)
+(roletype object_r device_config_edgetpu_native_prop)
+(type device_config_media_native_prop)
+(roletype object_r device_config_media_native_prop)
+(type device_config_nnapi_native_prop)
+(roletype object_r device_config_nnapi_native_prop)
+(type device_config_runtime_native_boot_prop)
+(roletype object_r device_config_runtime_native_boot_prop)
+(type device_config_runtime_native_prop)
+(roletype object_r device_config_runtime_native_prop)
+(type device_config_surface_flinger_native_boot_prop)
+(roletype object_r device_config_surface_flinger_native_boot_prop)
+(type device_config_vendor_system_native_prop)
+(roletype object_r device_config_vendor_system_native_prop)
+(type device_config_vendor_system_native_boot_prop)
+(roletype object_r device_config_vendor_system_native_boot_prop)
+(type drm_forcel3_prop)
+(roletype object_r drm_forcel3_prop)
+(type fingerprint_prop)
+(roletype object_r fingerprint_prop)
+(type gwp_asan_prop)
+(roletype object_r gwp_asan_prop)
+(type hal_instrumentation_prop)
+(roletype object_r hal_instrumentation_prop)
+(type userdebug_or_eng_prop)
+(roletype object_r userdebug_or_eng_prop)
+(type init_service_status_prop)
+(roletype object_r init_service_status_prop)
+(type libc_debug_prop)
+(roletype object_r libc_debug_prop)
+(type module_sdkextensions_prop)
+(roletype object_r module_sdkextensions_prop)
+(type nnapi_ext_deny_product_prop)
+(roletype object_r nnapi_ext_deny_product_prop)
+(type persist_wm_debug_prop)
+(roletype object_r persist_wm_debug_prop)
+(type power_debug_prop)
+(roletype object_r power_debug_prop)
+(type property_service_version_prop)
+(roletype object_r property_service_version_prop)
+(type provisioned_prop)
+(roletype object_r provisioned_prop)
+(type restorecon_prop)
+(roletype object_r restorecon_prop)
+(type retaildemo_prop)
+(roletype object_r retaildemo_prop)
+(type servicemanager_prop)
+(roletype object_r servicemanager_prop)
+(type smart_idle_maint_enabled_prop)
+(roletype object_r smart_idle_maint_enabled_prop)
+(type socket_hook_prop)
+(roletype object_r socket_hook_prop)
+(type sqlite_log_prop)
+(roletype object_r sqlite_log_prop)
+(type surfaceflinger_display_prop)
+(roletype object_r surfaceflinger_display_prop)
+(type system_boot_reason_prop)
+(roletype object_r system_boot_reason_prop)
+(type system_jvmti_agent_prop)
+(roletype object_r system_jvmti_agent_prop)
+(type traced_oome_heap_session_count_prop)
+(roletype object_r traced_oome_heap_session_count_prop)
+(type ab_update_gki_prop)
+(roletype object_r ab_update_gki_prop)
+(type usb_prop)
+(roletype object_r usb_prop)
+(type userspace_reboot_exported_prop)
+(roletype object_r userspace_reboot_exported_prop)
+(type vold_status_prop)
+(roletype object_r vold_status_prop)
+(type vts_status_prop)
+(roletype object_r vts_status_prop)
+(type config_prop)
+(roletype object_r config_prop)
+(type cppreopt_prop)
+(roletype object_r cppreopt_prop)
+(type dalvik_prop)
+(roletype object_r dalvik_prop)
+(type debuggerd_prop)
+(roletype object_r debuggerd_prop)
+(type device_logging_prop)
+(roletype object_r device_logging_prop)
+(type dhcp_prop)
+(roletype object_r dhcp_prop)
+(type dumpstate_prop)
+(roletype object_r dumpstate_prop)
+(type exported3_system_prop)
+(roletype object_r exported3_system_prop)
+(type exported_dumpstate_prop)
+(roletype object_r exported_dumpstate_prop)
+(type exported_secure_prop)
+(roletype object_r exported_secure_prop)
+(type heapprofd_prop)
+(roletype object_r heapprofd_prop)
+(type net_radio_prop)
+(roletype object_r net_radio_prop)
+(type pan_result_prop)
+(roletype object_r pan_result_prop)
+(type persist_debug_prop)
+(roletype object_r persist_debug_prop)
+(type shell_prop)
+(roletype object_r shell_prop)
+(type test_harness_prop)
+(roletype object_r test_harness_prop)
+(type theme_prop)
+(roletype object_r theme_prop)
+(type use_memfd_prop)
+(roletype object_r use_memfd_prop)
+(type vold_prop)
+(roletype object_r vold_prop)
+(type apexd_config_prop)
+(roletype object_r apexd_config_prop)
+(type apexd_select_prop)
+(roletype object_r apexd_select_prop)
+(type aaudio_config_prop)
+(roletype object_r aaudio_config_prop)
+(type apk_verity_prop)
+(roletype object_r apk_verity_prop)
+(type audio_config_prop)
+(roletype object_r audio_config_prop)
+(type bootanim_config_prop)
+(roletype object_r bootanim_config_prop)
+(type bluetooth_config_prop)
+(roletype object_r bluetooth_config_prop)
+(type build_attestation_prop)
+(roletype object_r build_attestation_prop)
+(type build_config_prop)
+(roletype object_r build_config_prop)
+(type build_odm_prop)
+(roletype object_r build_odm_prop)
+(type build_vendor_prop)
+(roletype object_r build_vendor_prop)
+(type camera_calibration_prop)
+(roletype object_r camera_calibration_prop)
+(type camera_config_prop)
+(roletype object_r camera_config_prop)
+(type camera2_extensions_prop)
+(roletype object_r camera2_extensions_prop)
+(type camerax_extensions_prop)
+(roletype object_r camerax_extensions_prop)
+(type charger_config_prop)
+(roletype object_r charger_config_prop)
+(type codec2_config_prop)
+(roletype object_r codec2_config_prop)
+(type composd_vm_vendor_prop)
+(roletype object_r composd_vm_vendor_prop)
+(type cpu_variant_prop)
+(roletype object_r cpu_variant_prop)
+(type debugfs_restriction_prop)
+(roletype object_r debugfs_restriction_prop)
+(type drm_service_config_prop)
+(roletype object_r drm_service_config_prop)
+(type exported_camera_prop)
+(roletype object_r exported_camera_prop)
+(type exported_config_prop)
+(roletype object_r exported_config_prop)
+(type exported_default_prop)
+(roletype object_r exported_default_prop)
+(type ffs_config_prop)
+(roletype object_r ffs_config_prop)
+(type framework_watchdog_config_prop)
+(roletype object_r framework_watchdog_config_prop)
+(type graphics_config_prop)
+(roletype object_r graphics_config_prop)
+(type hdmi_config_prop)
+(roletype object_r hdmi_config_prop)
+(type hw_timeout_multiplier_prop)
+(roletype object_r hw_timeout_multiplier_prop)
+(type hypervisor_prop)
+(roletype object_r hypervisor_prop)
+(type hypervisor_restricted_prop)
+(roletype object_r hypervisor_restricted_prop)
+(type incremental_prop)
+(roletype object_r incremental_prop)
+(type input_device_config_prop)
+(roletype object_r input_device_config_prop)
+(type keyguard_config_prop)
+(roletype object_r keyguard_config_prop)
+(type keystore_config_prop)
+(roletype object_r keystore_config_prop)
+(type lmkd_config_prop)
+(roletype object_r lmkd_config_prop)
+(type media_config_prop)
+(roletype object_r media_config_prop)
+(type media_variant_prop)
+(roletype object_r media_variant_prop)
+(type mediadrm_config_prop)
+(roletype object_r mediadrm_config_prop)
+(type mm_events_config_prop)
+(roletype object_r mm_events_config_prop)
+(type oem_unlock_prop)
+(roletype object_r oem_unlock_prop)
+(type ota_build_prop)
+(roletype object_r ota_build_prop)
+(type packagemanager_config_prop)
+(roletype object_r packagemanager_config_prop)
+(type quick_start_prop)
+(roletype object_r quick_start_prop)
+(type recovery_config_prop)
+(roletype object_r recovery_config_prop)
+(type recovery_usb_config_prop)
+(roletype object_r recovery_usb_config_prop)
+(type sendbug_config_prop)
+(roletype object_r sendbug_config_prop)
+(type soc_prop)
+(roletype object_r soc_prop)
+(type storage_config_prop)
+(roletype object_r storage_config_prop)
+(type storagemanager_config_prop)
+(roletype object_r storagemanager_config_prop)
+(type surfaceflinger_prop)
+(roletype object_r surfaceflinger_prop)
+(type suspend_prop)
+(roletype object_r suspend_prop)
+(type systemsound_config_prop)
+(roletype object_r systemsound_config_prop)
+(type telephony_config_prop)
+(roletype object_r telephony_config_prop)
+(type threadnetwork_config_prop)
+(roletype object_r threadnetwork_config_prop)
+(type tombstone_config_prop)
+(roletype object_r tombstone_config_prop)
+(type usb_config_prop)
+(roletype object_r usb_config_prop)
+(type userspace_reboot_config_prop)
+(roletype object_r userspace_reboot_config_prop)
+(type vehicle_hal_prop)
+(roletype object_r vehicle_hal_prop)
+(type vendor_security_patch_level_prop)
+(roletype object_r vendor_security_patch_level_prop)
+(type vendor_socket_hook_prop)
+(roletype object_r vendor_socket_hook_prop)
+(type virtual_ab_prop)
+(roletype object_r virtual_ab_prop)
+(type vndk_prop)
+(roletype object_r vndk_prop)
+(type vts_config_prop)
+(roletype object_r vts_config_prop)
+(type vold_config_prop)
+(roletype object_r vold_config_prop)
+(type wifi_config_prop)
+(roletype object_r wifi_config_prop)
+(type zram_config_prop)
+(roletype object_r zram_config_prop)
+(type zygote_config_prop)
+(roletype object_r zygote_config_prop)
+(type dck_prop)
+(roletype object_r dck_prop)
+(type tuner_config_prop)
+(roletype object_r tuner_config_prop)
+(type usb_uvc_enabled_prop)
+(roletype object_r usb_uvc_enabled_prop)
+(type setupwizard_mode_prop)
+(roletype object_r setupwizard_mode_prop)
+(type pm_archiving_enabled_prop)
+(roletype object_r pm_archiving_enabled_prop)
+(type adbd_config_prop)
+(roletype object_r adbd_config_prop)
+(type audio_prop)
+(roletype object_r audio_prop)
+(type bluetooth_a2dp_offload_prop)
+(roletype object_r bluetooth_a2dp_offload_prop)
+(type bluetooth_audio_hal_prop)
+(roletype object_r bluetooth_audio_hal_prop)
+(type bluetooth_prop)
+(roletype object_r bluetooth_prop)
+(type bpf_progs_loaded_prop)
+(roletype object_r bpf_progs_loaded_prop)
+(type charger_status_prop)
+(roletype object_r charger_status_prop)
+(type ctl_default_prop)
+(roletype object_r ctl_default_prop)
+(type ctl_interface_start_prop)
+(roletype object_r ctl_interface_start_prop)
+(type ctl_start_prop)
+(roletype object_r ctl_start_prop)
+(type ctl_stop_prop)
+(roletype object_r ctl_stop_prop)
+(type dalvik_config_prop)
+(roletype object_r dalvik_config_prop)
+(type dalvik_dynamic_config_prop)
+(roletype object_r dalvik_dynamic_config_prop)
+(type dalvik_runtime_prop)
+(roletype object_r dalvik_runtime_prop)
+(type debug_prop)
+(roletype object_r debug_prop)
+(type device_config_memory_safety_native_boot_prop)
+(roletype object_r device_config_memory_safety_native_boot_prop)
+(type device_config_memory_safety_native_prop)
+(roletype object_r device_config_memory_safety_native_prop)
+(type dumpstate_options_prop)
+(roletype object_r dumpstate_options_prop)
+(type exported_system_prop)
+(roletype object_r exported_system_prop)
+(type exported_bluetooth_prop)
+(roletype object_r exported_bluetooth_prop)
+(type exported_overlay_prop)
+(roletype object_r exported_overlay_prop)
+(type exported_pm_prop)
+(roletype object_r exported_pm_prop)
+(type future_pm_prop)
+(roletype object_r future_pm_prop)
+(type ffs_control_prop)
+(roletype object_r ffs_control_prop)
+(type framework_status_prop)
+(roletype object_r framework_status_prop)
+(type gesture_prop)
+(roletype object_r gesture_prop)
+(type graphics_config_writable_prop)
+(roletype object_r graphics_config_writable_prop)
+(type hal_dumpstate_config_prop)
+(roletype object_r hal_dumpstate_config_prop)
+(type sota_prop)
+(roletype object_r sota_prop)
+(type hwservicemanager_prop)
+(roletype object_r hwservicemanager_prop)
+(type lmkd_prop)
+(roletype object_r lmkd_prop)
+(type locale_prop)
+(roletype object_r locale_prop)
+(type logd_prop)
+(roletype object_r logd_prop)
+(type logpersistd_logging_prop)
+(roletype object_r logpersistd_logging_prop)
+(type log_prop)
+(roletype object_r log_prop)
+(type log_tag_prop)
+(roletype object_r log_tag_prop)
+(type lowpan_prop)
+(roletype object_r lowpan_prop)
+(type nfc_prop)
+(roletype object_r nfc_prop)
+(type ota_prop)
+(roletype object_r ota_prop)
+(type permissive_mte_prop)
+(roletype object_r permissive_mte_prop)
+(type powerctl_prop)
+(roletype object_r powerctl_prop)
+(type qemu_hw_prop)
+(roletype object_r qemu_hw_prop)
+(type qemu_sf_lcd_density_prop)
+(roletype object_r qemu_sf_lcd_density_prop)
+(type radio_control_prop)
+(roletype object_r radio_control_prop)
+(type radio_prop)
+(roletype object_r radio_prop)
+(type serialno_prop)
+(roletype object_r serialno_prop)
+(type surfaceflinger_color_prop)
+(roletype object_r surfaceflinger_color_prop)
+(type system_prop)
+(roletype object_r system_prop)
+(type system_user_mode_emulation_prop)
+(roletype object_r system_user_mode_emulation_prop)
+(type telephony_status_prop)
+(roletype object_r telephony_status_prop)
+(type timezone_prop)
+(roletype object_r timezone_prop)
+(type usb_control_prop)
+(roletype object_r usb_control_prop)
+(type vold_post_fs_data_prop)
+(roletype object_r vold_post_fs_data_prop)
+(type wifi_hal_prop)
+(roletype object_r wifi_hal_prop)
+(type wifi_log_prop)
+(roletype object_r wifi_log_prop)
+(type wifi_prop)
+(roletype object_r wifi_prop)
+(type zram_control_prop)
+(roletype object_r zram_control_prop)
+(type default_prop)
+(roletype object_r default_prop)
+(type rebootescrow_hal_prop)
+(roletype object_r rebootescrow_hal_prop)
+(type virtual_face_hal_prop)
+(roletype object_r virtual_face_hal_prop)
+(type virtual_fingerprint_hal_prop)
+(roletype object_r virtual_fingerprint_hal_prop)
+(type persist_vendor_debug_wifi_prop)
+(roletype object_r persist_vendor_debug_wifi_prop)
+(type vendor_default_prop)
+(roletype object_r vendor_default_prop)
+(type radio)
+(roletype object_r radio)
+(type recovery)
+(roletype object_r recovery)
+(type recovery_persist)
+(roletype object_r recovery_persist)
+(type recovery_persist_exec)
+(roletype object_r recovery_persist_exec)
+(type recovery_refresh)
+(roletype object_r recovery_refresh)
+(type recovery_refresh_exec)
+(roletype object_r recovery_refresh_exec)
+(type rkpdapp)
+(roletype object_r rkpdapp)
+(type rs)
+(roletype object_r rs)
+(type rs_exec)
+(roletype object_r rs_exec)
+(type rss_hwm_reset)
+(roletype object_r rss_hwm_reset)
+(type runas)
+(roletype object_r runas)
+(type runas_exec)
+(roletype object_r runas_exec)
+(type runas_app)
+(roletype object_r runas_app)
+(type sdcardd)
+(roletype object_r sdcardd)
+(type sdcardd_exec)
+(roletype object_r sdcardd_exec)
+(type secure_element)
+(roletype object_r secure_element)
+(type aidl_lazy_test_service)
+(roletype object_r aidl_lazy_test_service)
+(type apc_service)
+(roletype object_r apc_service)
+(type apex_service)
+(roletype object_r apex_service)
+(type artd_service)
+(roletype object_r artd_service)
+(type artd_pre_reboot_service)
+(roletype object_r artd_pre_reboot_service)
+(type audioserver_service)
+(roletype object_r audioserver_service)
+(type authorization_service)
+(roletype object_r authorization_service)
+(type batteryproperties_service)
+(roletype object_r batteryproperties_service)
+(type bluetooth_service)
+(roletype object_r bluetooth_service)
+(type cameraserver_service)
+(roletype object_r cameraserver_service)
+(type fwk_camera_service)
+(roletype object_r fwk_camera_service)
+(type default_android_service)
+(roletype object_r default_android_service)
+(type device_config_updatable_service)
+(roletype object_r device_config_updatable_service)
+(type dexopt_chroot_setup_service)
+(roletype object_r dexopt_chroot_setup_service)
+(type dnsresolver_service)
+(roletype object_r dnsresolver_service)
+(type drmserver_service)
+(roletype object_r drmserver_service)
+(type dumpstate_service)
+(roletype object_r dumpstate_service)
+(type evsmanagerd_service)
+(roletype object_r evsmanagerd_service)
+(type fingerprintd_service)
+(roletype object_r fingerprintd_service)
+(type fwk_automotive_display_service)
+(roletype object_r fwk_automotive_display_service)
+(type gatekeeper_service)
+(roletype object_r gatekeeper_service)
+(type gpu_service)
+(roletype object_r gpu_service)
+(type idmap_service)
+(roletype object_r idmap_service)
+(type incident_service)
+(roletype object_r incident_service)
+(type installd_service)
+(roletype object_r installd_service)
+(type credstore_service)
+(roletype object_r credstore_service)
+(type keystore_compat_hal_service)
+(roletype object_r keystore_compat_hal_service)
+(type keystore_maintenance_service)
+(roletype object_r keystore_maintenance_service)
+(type keystore_metrics_service)
+(roletype object_r keystore_metrics_service)
+(type keystore_service)
+(roletype object_r keystore_service)
+(type legacykeystore_service)
+(roletype object_r legacykeystore_service)
+(type lpdump_service)
+(roletype object_r lpdump_service)
+(type mdns_service)
+(roletype object_r mdns_service)
+(type mediaserver_service)
+(roletype object_r mediaserver_service)
+(type mediametrics_service)
+(roletype object_r mediametrics_service)
+(type mediaextractor_service)
+(roletype object_r mediaextractor_service)
+(type mediadrmserver_service)
+(roletype object_r mediadrmserver_service)
+(type mediatranscoding_service)
+(roletype object_r mediatranscoding_service)
+(type netd_service)
+(roletype object_r netd_service)
+(type nfc_service)
+(roletype object_r nfc_service)
+(type ondevicepersonalization_system_service)
+(roletype object_r ondevicepersonalization_system_service)
+(type ot_daemon_service)
+(roletype object_r ot_daemon_service)
+(type profiling_service)
+(roletype object_r profiling_service)
+(type radio_service)
+(roletype object_r radio_service)
+(type secure_element_service)
+(roletype object_r secure_element_service)
+(type service_manager_service)
+(roletype object_r service_manager_service)
+(type storaged_service)
+(roletype object_r storaged_service)
+(type surfaceflinger_service)
+(roletype object_r surfaceflinger_service)
+(type system_app_service)
+(roletype object_r system_app_service)
+(type system_net_netd_service)
+(roletype object_r system_net_netd_service)
+(type system_suspend_control_internal_service)
+(roletype object_r system_suspend_control_internal_service)
+(type system_suspend_control_service)
+(roletype object_r system_suspend_control_service)
+(type update_engine_service)
+(roletype object_r update_engine_service)
+(type update_engine_stable_service)
+(roletype object_r update_engine_stable_service)
+(type virtualization_service)
+(roletype object_r virtualization_service)
+(type virtual_camera_service)
+(roletype object_r virtual_camera_service)
+(type virtual_touchpad_service)
+(roletype object_r virtual_touchpad_service)
+(type vold_service)
+(roletype object_r vold_service)
+(type vr_hwc_service)
+(roletype object_r vr_hwc_service)
+(type vrflinger_vsync_service)
+(roletype object_r vrflinger_vsync_service)
+(type accessibility_service)
+(roletype object_r accessibility_service)
+(type account_service)
+(roletype object_r account_service)
+(type activity_service)
+(roletype object_r activity_service)
+(type activity_task_service)
+(roletype object_r activity_task_service)
+(type adb_service)
+(roletype object_r adb_service)
+(type adservices_manager_service)
+(roletype object_r adservices_manager_service)
+(type alarm_service)
+(roletype object_r alarm_service)
+(type app_binding_service)
+(roletype object_r app_binding_service)
+(type app_hibernation_service)
+(roletype object_r app_hibernation_service)
+(type app_integrity_service)
+(roletype object_r app_integrity_service)
+(type app_prediction_service)
+(roletype object_r app_prediction_service)
+(type app_search_service)
+(roletype object_r app_search_service)
+(type appops_service)
+(roletype object_r appops_service)
+(type appwidget_service)
+(roletype object_r appwidget_service)
+(type archive_service)
+(roletype object_r archive_service)
+(type assetatlas_service)
+(roletype object_r assetatlas_service)
+(type attestation_verification_service)
+(roletype object_r attestation_verification_service)
+(type audio_service)
+(roletype object_r audio_service)
+(type auth_service)
+(roletype object_r auth_service)
+(type autofill_service)
+(roletype object_r autofill_service)
+(type backup_service)
+(roletype object_r backup_service)
+(type batterystats_service)
+(roletype object_r batterystats_service)
+(type battery_service)
+(roletype object_r battery_service)
+(type binder_calls_stats_service)
+(roletype object_r binder_calls_stats_service)
+(type blob_store_service)
+(roletype object_r blob_store_service)
+(type bluetooth_manager_service)
+(roletype object_r bluetooth_manager_service)
+(type broadcastradio_service)
+(roletype object_r broadcastradio_service)
+(type cacheinfo_service)
+(roletype object_r cacheinfo_service)
+(type cameraproxy_service)
+(roletype object_r cameraproxy_service)
+(type clipboard_service)
+(roletype object_r clipboard_service)
+(type cloudsearch_service)
+(roletype object_r cloudsearch_service)
+(type contexthub_service)
+(roletype object_r contexthub_service)
+(type contextual_search_service)
+(roletype object_r contextual_search_service)
+(type crossprofileapps_service)
+(roletype object_r crossprofileapps_service)
+(type IProxyService_service)
+(roletype object_r IProxyService_service)
+(type companion_device_service)
+(roletype object_r companion_device_service)
+(type connectivity_native_service)
+(roletype object_r connectivity_native_service)
+(type connectivity_service)
+(roletype object_r connectivity_service)
+(type connmetrics_service)
+(roletype object_r connmetrics_service)
+(type consumer_ir_service)
+(roletype object_r consumer_ir_service)
+(type content_capture_service)
+(roletype object_r content_capture_service)
+(type content_suggestions_service)
+(roletype object_r content_suggestions_service)
+(type content_service)
+(roletype object_r content_service)
+(type country_detector_service)
+(roletype object_r country_detector_service)
+(type coverage_service)
+(roletype object_r coverage_service)
+(type cpuinfo_service)
+(roletype object_r cpuinfo_service)
+(type cpu_monitor_service)
+(roletype object_r cpu_monitor_service)
+(type credential_service)
+(roletype object_r credential_service)
+(type dataloader_manager_service)
+(roletype object_r dataloader_manager_service)
+(type dbinfo_service)
+(roletype object_r dbinfo_service)
+(type device_config_service)
+(roletype object_r device_config_service)
+(type device_policy_service)
+(roletype object_r device_policy_service)
+(type device_state_service)
+(roletype object_r device_state_service)
+(type deviceidle_service)
+(roletype object_r deviceidle_service)
+(type device_identifiers_service)
+(roletype object_r device_identifiers_service)
+(type devicestoragemonitor_service)
+(roletype object_r devicestoragemonitor_service)
+(type diskstats_service)
+(roletype object_r diskstats_service)
+(type display_service)
+(roletype object_r display_service)
+(type domain_verification_service)
+(roletype object_r domain_verification_service)
+(type color_display_service)
+(roletype object_r color_display_service)
+(type ecm_enhanced_confirmation_service)
+(roletype object_r ecm_enhanced_confirmation_service)
+(type external_vibrator_service)
+(roletype object_r external_vibrator_service)
+(type file_integrity_service)
+(roletype object_r file_integrity_service)
+(type font_service)
+(roletype object_r font_service)
+(type netd_listener_service)
+(roletype object_r netd_listener_service)
+(type network_watchlist_service)
+(roletype object_r network_watchlist_service)
+(type devicelock_service)
+(roletype object_r devicelock_service)
+(type DockObserver_service)
+(roletype object_r DockObserver_service)
+(type dreams_service)
+(roletype object_r dreams_service)
+(type dropbox_service)
+(roletype object_r dropbox_service)
+(type ethernet_service)
+(roletype object_r ethernet_service)
+(type biometric_service)
+(roletype object_r biometric_service)
+(type bugreport_service)
+(roletype object_r bugreport_service)
+(type platform_compat_service)
+(roletype object_r platform_compat_service)
+(type face_service)
+(roletype object_r face_service)
+(type fingerprint_service)
+(roletype object_r fingerprint_service)
+(type fwk_altitude_service)
+(roletype object_r fwk_altitude_service)
+(type fwk_stats_service)
+(roletype object_r fwk_stats_service)
+(type fwk_sensor_service)
+(roletype object_r fwk_sensor_service)
+(type fwk_vibrator_control_service)
+(roletype object_r fwk_vibrator_control_service)
+(type game_service)
+(roletype object_r game_service)
+(type gfxinfo_service)
+(roletype object_r gfxinfo_service)
+(type gnss_time_update_service)
+(roletype object_r gnss_time_update_service)
+(type grammatical_inflection_service)
+(roletype object_r grammatical_inflection_service)
+(type graphicsstats_service)
+(roletype object_r graphicsstats_service)
+(type hardware_service)
+(roletype object_r hardware_service)
+(type hardware_properties_service)
+(roletype object_r hardware_properties_service)
+(type hdmi_control_service)
+(roletype object_r hdmi_control_service)
+(type healthconnect_service)
+(roletype object_r healthconnect_service)
+(type hint_service)
+(roletype object_r hint_service)
+(type imms_service)
+(roletype object_r imms_service)
+(type incremental_service)
+(roletype object_r incremental_service)
+(type input_method_service)
+(roletype object_r input_method_service)
+(type input_service)
+(roletype object_r input_service)
+(type ipsec_service)
+(roletype object_r ipsec_service)
+(type iris_service)
+(roletype object_r iris_service)
+(type jobscheduler_service)
+(roletype object_r jobscheduler_service)
+(type launcherapps_service)
+(roletype object_r launcherapps_service)
+(type legacy_permission_service)
+(roletype object_r legacy_permission_service)
+(type light_service)
+(roletype object_r light_service)
+(type locale_service)
+(roletype object_r locale_service)
+(type location_service)
+(roletype object_r location_service)
+(type location_time_zone_manager_service)
+(roletype object_r location_time_zone_manager_service)
+(type lock_settings_service)
+(roletype object_r lock_settings_service)
+(type looper_stats_service)
+(roletype object_r looper_stats_service)
+(type media_communication_service)
+(roletype object_r media_communication_service)
+(type media_metrics_service)
+(roletype object_r media_metrics_service)
+(type media_projection_service)
+(roletype object_r media_projection_service)
+(type media_router_service)
+(roletype object_r media_router_service)
+(type media_session_service)
+(roletype object_r media_session_service)
+(type meminfo_service)
+(roletype object_r meminfo_service)
+(type memtrackproxy_service)
+(roletype object_r memtrackproxy_service)
+(type midi_service)
+(roletype object_r midi_service)
+(type mount_service)
+(roletype object_r mount_service)
+(type music_recognition_service)
+(roletype object_r music_recognition_service)
+(type nearby_service)
+(roletype object_r nearby_service)
+(type netpolicy_service)
+(roletype object_r netpolicy_service)
+(type netstats_service)
+(roletype object_r netstats_service)
+(type network_management_service)
+(roletype object_r network_management_service)
+(type network_score_service)
+(roletype object_r network_score_service)
+(type network_stack_service)
+(roletype object_r network_stack_service)
+(type network_time_update_service)
+(roletype object_r network_time_update_service)
+(type notification_service)
+(roletype object_r notification_service)
+(type oem_lock_service)
+(roletype object_r oem_lock_service)
+(type otadexopt_service)
+(roletype object_r otadexopt_service)
+(type overlay_service)
+(roletype object_r overlay_service)
+(type pac_proxy_service)
+(roletype object_r pac_proxy_service)
+(type package_service)
+(roletype object_r package_service)
+(type package_native_service)
+(roletype object_r package_native_service)
+(type people_service)
+(roletype object_r people_service)
+(type permission_service)
+(roletype object_r permission_service)
+(type permissionmgr_service)
+(roletype object_r permissionmgr_service)
+(type permission_checker_service)
+(roletype object_r permission_checker_service)
+(type persistent_data_block_service)
+(roletype object_r persistent_data_block_service)
+(type pinner_service)
+(roletype object_r pinner_service)
+(type powerstats_service)
+(roletype object_r powerstats_service)
+(type power_service)
+(roletype object_r power_service)
+(type print_service)
+(roletype object_r print_service)
+(type processinfo_service)
+(roletype object_r processinfo_service)
+(type procstats_service)
+(roletype object_r procstats_service)
+(type reboot_readiness_service)
+(roletype object_r reboot_readiness_service)
+(type recovery_service)
+(roletype object_r recovery_service)
+(type registry_service)
+(roletype object_r registry_service)
+(type remote_auth_service)
+(roletype object_r remote_auth_service)
+(type remote_provisioning_service)
+(roletype object_r remote_provisioning_service)
+(type resources_manager_service)
+(roletype object_r resources_manager_service)
+(type restrictions_service)
+(roletype object_r restrictions_service)
+(type role_service)
+(roletype object_r role_service)
+(type rollback_service)
+(roletype object_r rollback_service)
+(type runtime_service)
+(roletype object_r runtime_service)
+(type rttmanager_service)
+(roletype object_r rttmanager_service)
+(type samplingprofiler_service)
+(roletype object_r samplingprofiler_service)
+(type scheduling_policy_service)
+(roletype object_r scheduling_policy_service)
+(type search_service)
+(roletype object_r search_service)
+(type search_ui_service)
+(roletype object_r search_ui_service)
+(type sec_key_att_app_id_provider_service)
+(roletype object_r sec_key_att_app_id_provider_service)
+(type security_state_service)
+(roletype object_r security_state_service)
+(type selection_toolbar_service)
+(roletype object_r selection_toolbar_service)
+(type sensitive_content_protection_service)
+(roletype object_r sensitive_content_protection_service)
+(type sensorservice_service)
+(roletype object_r sensorservice_service)
+(type sensor_privacy_service)
+(roletype object_r sensor_privacy_service)
+(type serial_service)
+(roletype object_r serial_service)
+(type servicediscovery_service)
+(roletype object_r servicediscovery_service)
+(type settings_service)
+(roletype object_r settings_service)
+(type shortcut_service)
+(roletype object_r shortcut_service)
+(type slice_service)
+(roletype object_r slice_service)
+(type smartspace_service)
+(roletype object_r smartspace_service)
+(type statusbar_service)
+(roletype object_r statusbar_service)
+(type storagestats_service)
+(roletype object_r storagestats_service)
+(type sdk_sandbox_service)
+(roletype object_r sdk_sandbox_service)
+(type system_config_service)
+(roletype object_r system_config_service)
+(type system_server_dumper_service)
+(roletype object_r system_server_dumper_service)
+(type system_update_service)
+(roletype object_r system_update_service)
+(type soundtrigger_middleware_service)
+(roletype object_r soundtrigger_middleware_service)
+(type speech_recognition_service)
+(roletype object_r speech_recognition_service)
+(type tare_service)
+(roletype object_r tare_service)
+(type task_service)
+(roletype object_r task_service)
+(type testharness_service)
+(roletype object_r testharness_service)
+(type textclassification_service)
+(roletype object_r textclassification_service)
+(type textservices_service)
+(roletype object_r textservices_service)
+(type texttospeech_service)
+(roletype object_r texttospeech_service)
+(type telecom_service)
+(roletype object_r telecom_service)
+(type thermal_service)
+(roletype object_r thermal_service)
+(type threadnetwork_service)
+(roletype object_r threadnetwork_service)
+(type timedetector_service)
+(roletype object_r timedetector_service)
+(type timezonedetector_service)
+(roletype object_r timezonedetector_service)
+(type translation_service)
+(roletype object_r translation_service)
+(type trust_service)
+(roletype object_r trust_service)
+(type tv_ad_service)
+(roletype object_r tv_ad_service)
+(type tv_iapp_service)
+(roletype object_r tv_iapp_service)
+(type tv_input_service)
+(roletype object_r tv_input_service)
+(type tv_tuner_resource_mgr_service)
+(roletype object_r tv_tuner_resource_mgr_service)
+(type uimode_service)
+(roletype object_r uimode_service)
+(type updatelock_service)
+(roletype object_r updatelock_service)
+(type uri_grants_service)
+(roletype object_r uri_grants_service)
+(type usagestats_service)
+(roletype object_r usagestats_service)
+(type usb_service)
+(roletype object_r usb_service)
+(type user_service)
+(roletype object_r user_service)
+(type uwb_service)
+(roletype object_r uwb_service)
+(type vcn_management_service)
+(roletype object_r vcn_management_service)
+(type vibrator_service)
+(roletype object_r vibrator_service)
+(type vibrator_manager_service)
+(roletype object_r vibrator_manager_service)
+(type virtual_device_service)
+(roletype object_r virtual_device_service)
+(type virtual_device_native_service)
+(roletype object_r virtual_device_native_service)
+(type voiceinteraction_service)
+(roletype object_r voiceinteraction_service)
+(type vpn_management_service)
+(roletype object_r vpn_management_service)
+(type vr_manager_service)
+(roletype object_r vr_manager_service)
+(type wallpaper_service)
+(roletype object_r wallpaper_service)
+(type wallpaper_effects_generation_service)
+(roletype object_r wallpaper_effects_generation_service)
+(type webviewupdate_service)
+(roletype object_r webviewupdate_service)
+(type wifip2p_service)
+(roletype object_r wifip2p_service)
+(type wifiscanner_service)
+(roletype object_r wifiscanner_service)
+(type wifi_service)
+(roletype object_r wifi_service)
+(type wifinl80211_service)
+(roletype object_r wifinl80211_service)
+(type wifiaware_service)
+(roletype object_r wifiaware_service)
+(type window_service)
+(roletype object_r window_service)
+(type inputflinger_service)
+(roletype object_r inputflinger_service)
+(type tethering_service)
+(roletype object_r tethering_service)
+(type emergency_affordance_service)
+(roletype object_r emergency_affordance_service)
+(type hal_audio_service)
+(roletype object_r hal_audio_service)
+(type hal_audiocontrol_service)
+(roletype object_r hal_audiocontrol_service)
+(type hal_authgraph_service)
+(roletype object_r hal_authgraph_service)
+(type hal_authsecret_service)
+(roletype object_r hal_authsecret_service)
+(type hal_bluetooth_service)
+(roletype object_r hal_bluetooth_service)
+(type hal_bootctl_service)
+(roletype object_r hal_bootctl_service)
+(type hal_broadcastradio_service)
+(roletype object_r hal_broadcastradio_service)
+(type hal_camera_service)
+(roletype object_r hal_camera_service)
+(type hal_can_controller_service)
+(roletype object_r hal_can_controller_service)
+(type hal_cas_service)
+(roletype object_r hal_cas_service)
+(type hal_codec2_service)
+(roletype object_r hal_codec2_service)
+(type hal_confirmationui_service)
+(roletype object_r hal_confirmationui_service)
+(type hal_contexthub_service)
+(roletype object_r hal_contexthub_service)
+(type hal_drm_service)
+(roletype object_r hal_drm_service)
+(type hal_dumpstate_service)
+(roletype object_r hal_dumpstate_service)
+(type hal_evs_service)
+(roletype object_r hal_evs_service)
+(type hal_face_service)
+(roletype object_r hal_face_service)
+(type hal_fastboot_service)
+(roletype object_r hal_fastboot_service)
+(type hal_fingerprint_service)
+(roletype object_r hal_fingerprint_service)
+(type hal_gnss_service)
+(roletype object_r hal_gnss_service)
+(type hal_graphics_allocator_service)
+(roletype object_r hal_graphics_allocator_service)
+(type hal_graphics_composer_service)
+(roletype object_r hal_graphics_composer_service)
+(type hal_graphics_mapper_service)
+(roletype object_r hal_graphics_mapper_service)
+(type hal_health_service)
+(roletype object_r hal_health_service)
+(type hal_health_storage_service)
+(roletype object_r hal_health_storage_service)
+(type hal_identity_service)
+(roletype object_r hal_identity_service)
+(type hal_input_processor_service)
+(roletype object_r hal_input_processor_service)
+(type hal_ir_service)
+(roletype object_r hal_ir_service)
+(type hal_ivn_service)
+(roletype object_r hal_ivn_service)
+(type hal_keymint_service)
+(roletype object_r hal_keymint_service)
+(type hal_light_service)
+(roletype object_r hal_light_service)
+(type hal_macsec_service)
+(roletype object_r hal_macsec_service)
+(type hal_memtrack_service)
+(roletype object_r hal_memtrack_service)
+(type hal_neuralnetworks_service)
+(roletype object_r hal_neuralnetworks_service)
+(type hal_nfc_service)
+(roletype object_r hal_nfc_service)
+(type hal_oemlock_service)
+(roletype object_r hal_oemlock_service)
+(type hal_power_service)
+(roletype object_r hal_power_service)
+(type hal_power_stats_service)
+(roletype object_r hal_power_stats_service)
+(type hal_radio_service)
+(roletype object_r hal_radio_service)
+(type hal_rebootescrow_service)
+(roletype object_r hal_rebootescrow_service)
+(type hal_remoteaccess_service)
+(roletype object_r hal_remoteaccess_service)
+(type hal_remotelyprovisionedcomponent_avf_service)
+(roletype object_r hal_remotelyprovisionedcomponent_avf_service)
+(type hal_remotelyprovisionedcomponent_service)
+(roletype object_r hal_remotelyprovisionedcomponent_service)
+(type hal_sensors_service)
+(roletype object_r hal_sensors_service)
+(type hal_secretkeeper_service)
+(roletype object_r hal_secretkeeper_service)
+(type hal_secureclock_service)
+(roletype object_r hal_secureclock_service)
+(type hal_secure_element_service)
+(roletype object_r hal_secure_element_service)
+(type hal_sharedsecret_service)
+(roletype object_r hal_sharedsecret_service)
+(type hal_system_suspend_service)
+(roletype object_r hal_system_suspend_service)
+(type hal_tetheroffload_service)
+(roletype object_r hal_tetheroffload_service)
+(type hal_thermal_service)
+(roletype object_r hal_thermal_service)
+(type hal_tv_hdmi_cec_service)
+(roletype object_r hal_tv_hdmi_cec_service)
+(type hal_tv_hdmi_connection_service)
+(roletype object_r hal_tv_hdmi_connection_service)
+(type hal_tv_hdmi_earc_service)
+(roletype object_r hal_tv_hdmi_earc_service)
+(type hal_tv_input_service)
+(roletype object_r hal_tv_input_service)
+(type hal_threadnetwork_service)
+(roletype object_r hal_threadnetwork_service)
+(type hal_tv_tuner_service)
+(roletype object_r hal_tv_tuner_service)
+(type hal_usb_service)
+(roletype object_r hal_usb_service)
+(type hal_usb_gadget_service)
+(roletype object_r hal_usb_gadget_service)
+(type hal_uwb_service)
+(roletype object_r hal_uwb_service)
+(type hal_vehicle_service)
+(roletype object_r hal_vehicle_service)
+(type hal_vibrator_service)
+(roletype object_r hal_vibrator_service)
+(type hal_weaver_service)
+(roletype object_r hal_weaver_service)
+(type hal_nlinterceptor_service)
+(roletype object_r hal_nlinterceptor_service)
+(type hal_wifi_service)
+(roletype object_r hal_wifi_service)
+(type hal_wifi_hostapd_service)
+(roletype object_r hal_wifi_hostapd_service)
+(type hal_wifi_supplicant_service)
+(roletype object_r hal_wifi_supplicant_service)
+(type hal_gatekeeper_service)
+(roletype object_r hal_gatekeeper_service)
+(type servicemanager)
+(roletype object_r servicemanager)
+(type servicemanager_exec)
+(roletype object_r servicemanager_exec)
+(type sgdisk)
+(roletype object_r sgdisk)
+(type sgdisk_exec)
+(roletype object_r sgdisk_exec)
+(type shared_relro)
+(roletype object_r shared_relro)
+(type shell)
+(roletype object_r shell)
+(type shell_exec)
+(roletype object_r shell_exec)
+(type simpleperf)
+(roletype object_r simpleperf)
+(type simpleperf_app_runner)
+(roletype object_r simpleperf_app_runner)
+(type simpleperf_app_runner_exec)
+(roletype object_r simpleperf_app_runner_exec)
+(type slideshow)
+(roletype object_r slideshow)
+(type statsd)
+(roletype object_r statsd)
+(type statsd_exec)
+(roletype object_r statsd_exec)
+(type su)
+(roletype object_r su)
+(type su_exec)
+(roletype object_r su_exec)
+(type surfaceflinger)
+(roletype object_r surfaceflinger)
+(type surfaceflinger_tmpfs)
+(roletype object_r surfaceflinger_tmpfs)
+(type system_app)
+(roletype object_r system_app)
+(type system_server)
+(roletype object_r system_server)
+(type system_server_tmpfs)
+(roletype object_r system_server_tmpfs)
+(type tee)
+(roletype object_r tee)
+(type tee_device)
+(roletype object_r tee_device)
+(type tombstoned)
+(roletype object_r tombstoned)
+(type tombstoned_exec)
+(roletype object_r tombstoned_exec)
+(type toolbox)
+(roletype object_r toolbox)
+(type toolbox_exec)
+(roletype object_r toolbox_exec)
+(type traced)
+(roletype object_r traced)
+(type traced_tmpfs)
+(roletype object_r traced_tmpfs)
+(type traced_perf)
+(roletype object_r traced_perf)
+(type traced_probes)
+(roletype object_r traced_probes)
+(type traceur_app)
+(roletype object_r traceur_app)
+(type ueventd)
+(roletype object_r ueventd)
+(type ueventd_tmpfs)
+(roletype object_r ueventd_tmpfs)
+(type uncrypt)
+(roletype object_r uncrypt)
+(type uncrypt_exec)
+(roletype object_r uncrypt_exec)
+(type untrusted_app)
+(roletype object_r untrusted_app)
+(type untrusted_app_32)
+(roletype object_r untrusted_app_32)
+(type untrusted_app_30)
+(roletype object_r untrusted_app_30)
+(type untrusted_app_29)
+(roletype object_r untrusted_app_29)
+(type untrusted_app_27)
+(roletype object_r untrusted_app_27)
+(type untrusted_app_25)
+(roletype object_r untrusted_app_25)
+(type update_engine)
+(roletype object_r update_engine)
+(type update_engine_exec)
+(roletype object_r update_engine_exec)
+(type update_verifier)
+(roletype object_r update_verifier)
+(type update_verifier_exec)
+(roletype object_r update_verifier_exec)
+(type usbd)
+(roletype object_r usbd)
+(type usbd_exec)
+(roletype object_r usbd_exec)
+(type vdc)
+(roletype object_r vdc)
+(type vdc_exec)
+(roletype object_r vdc_exec)
+(type vendor_init)
+(roletype object_r vendor_init)
+(type vendor_misc_writer)
+(roletype object_r vendor_misc_writer)
+(type vendor_misc_writer_exec)
+(roletype object_r vendor_misc_writer_exec)
+(type vendor_modprobe)
+(roletype object_r vendor_modprobe)
+(type vendor_shell)
+(roletype object_r vendor_shell)
+(type vendor_shell_exec)
+(roletype object_r vendor_shell_exec)
+(type vendor_toolbox_exec)
+(roletype object_r vendor_toolbox_exec)
+(type virtual_touchpad)
+(roletype object_r virtual_touchpad)
+(type virtual_touchpad_exec)
+(roletype object_r virtual_touchpad_exec)
+(type service_manager_vndservice)
+(roletype object_r service_manager_vndservice)
+(type default_android_vndservice)
+(roletype object_r default_android_vndservice)
+(type vndservicemanager)
+(roletype object_r vndservicemanager)
+(type vold)
+(roletype object_r vold)
+(type vold_exec)
+(roletype object_r vold_exec)
+(type vold_prepare_subdirs)
+(roletype object_r vold_prepare_subdirs)
+(type vold_prepare_subdirs_exec)
+(roletype object_r vold_prepare_subdirs_exec)
+(type watchdogd)
+(roletype object_r watchdogd)
+(type watchdogd_exec)
+(roletype object_r watchdogd_exec)
+(type webview_zygote)
+(roletype object_r webview_zygote)
+(type webview_zygote_exec)
+(roletype object_r webview_zygote_exec)
+(type webview_zygote_tmpfs)
+(roletype object_r webview_zygote_tmpfs)
+(type wificond)
+(roletype object_r wificond)
+(type wificond_exec)
+(roletype object_r wificond_exec)
+(type zygote)
+(roletype object_r zygote)
+(type zygote_tmpfs)
+(roletype object_r zygote_tmpfs)
+(type zygote_exec)
+(roletype object_r zygote_exec)
+(typeattribute hal_lazy_test)
+(expandtypeattribute (hal_lazy_test) true)
+(typeattribute hal_lazy_test_client)
+(expandtypeattribute (hal_lazy_test_client) true)
+(typeattribute hal_lazy_test_server)
+(expandtypeattribute (hal_lazy_test_server) false)
+(typeattribute mlsvendorcompat)
+(typeattribute system_and_vendor_property_type)
+(expandtypeattribute (system_and_vendor_property_type) false)
+(typeattribute sdk_sandbox_all)
+(typeattributeset sdk_sandbox_all (sdk_sandbox_34 sdk_sandbox_audit sdk_sandbox_next ))
+(typeattribute sdk_sandbox_current)
+(typeattributeset sdk_sandbox_current (sdk_sandbox_34 sdk_sandbox_audit ))
+(type aconfigd)
+(roletype object_r aconfigd)
+(type aconfigd_exec)
+(roletype object_r aconfigd_exec)
+(type apex_test_prepostinstall)
+(roletype object_r apex_test_prepostinstall)
+(type apex_test_prepostinstall_exec)
+(roletype object_r apex_test_prepostinstall_exec)
+(type apexd_devpts)
+(roletype object_r apexd_devpts)
+(type apexd_derive_classpath)
+(roletype object_r apexd_derive_classpath)
+(type app_zygote_userfaultfd)
+(roletype object_r app_zygote_userfaultfd)
+(type art_boot)
+(roletype object_r art_boot)
+(type art_boot_exec)
+(roletype object_r art_boot_exec)
+(type artd_exec)
+(roletype object_r artd_exec)
+(type artd_tmpfs)
+(roletype object_r artd_tmpfs)
+(type artd_userfaultfd)
+(roletype object_r artd_userfaultfd)
+(type atrace_exec)
+(roletype object_r atrace_exec)
+(type audioserver_exec)
+(roletype object_r audioserver_exec)
+(type auditctl)
+(roletype object_r auditctl)
+(type auditctl_exec)
+(roletype object_r auditctl_exec)
+(type automotive_display_service)
+(roletype object_r automotive_display_service)
+(type automotive_display_service_exec)
+(roletype object_r automotive_display_service_exec)
+(type blank_screen)
+(roletype object_r blank_screen)
+(type blank_screen_exec)
+(roletype object_r blank_screen_exec)
+(type blkid_exec)
+(roletype object_r blkid_exec)
+(type bluetooth_userfaultfd)
+(roletype object_r bluetooth_userfaultfd)
+(type boringssl_self_test)
+(roletype object_r boringssl_self_test)
+(type boringssl_self_test_exec)
+(roletype object_r boringssl_self_test_exec)
+(type vendor_boringssl_self_test)
+(roletype object_r vendor_boringssl_self_test)
+(type vendor_boringssl_self_test_exec)
+(roletype object_r vendor_boringssl_self_test_exec)
+(type boringssl_self_test_marker)
+(roletype object_r boringssl_self_test_marker)
+(type bpfloader_exec)
+(roletype object_r bpfloader_exec)
+(type canhalconfigurator)
+(roletype object_r canhalconfigurator)
+(type canhalconfigurator_exec)
+(roletype object_r canhalconfigurator_exec)
+(type clatd)
+(roletype object_r clatd)
+(type clatd_exec)
+(roletype object_r clatd_exec)
+(type compos_fd_server)
+(roletype object_r compos_fd_server)
+(type compos_verify)
+(roletype object_r compos_verify)
+(type compos_verify_exec)
+(roletype object_r compos_verify_exec)
+(type composd)
+(roletype object_r composd)
+(type composd_exec)
+(roletype object_r composd_exec)
+(type cppreopts)
+(roletype object_r cppreopts)
+(type cppreopts_exec)
+(roletype object_r cppreopts_exec)
+(type crosvm)
+(roletype object_r crosvm)
+(type crosvm_exec)
+(roletype object_r crosvm_exec)
+(type crosvm_tmpfs)
+(roletype object_r crosvm_tmpfs)
+(type derive_classpath)
+(roletype object_r derive_classpath)
+(type derive_classpath_exec)
+(roletype object_r derive_classpath_exec)
+(type derive_sdk)
+(roletype object_r derive_sdk)
+(type derive_sdk_exec)
+(roletype object_r derive_sdk_exec)
+(type device_as_webcam)
+(roletype object_r device_as_webcam)
+(type device_as_webcam_userfaultfd)
+(roletype object_r device_as_webcam_userfaultfd)
+(type dex2oat)
+(roletype object_r dex2oat)
+(type dex2oat_exec)
+(roletype object_r dex2oat_exec)
+(type dex2oat_userfaultfd)
+(roletype object_r dex2oat_userfaultfd)
+(type dexopt_chroot_setup)
+(roletype object_r dexopt_chroot_setup)
+(type dexopt_chroot_setup_exec)
+(roletype object_r dexopt_chroot_setup_exec)
+(type dexopt_chroot_setup_tmpfs)
+(roletype object_r dexopt_chroot_setup_tmpfs)
+(type dexopt_chroot_setup_userfaultfd)
+(roletype object_r dexopt_chroot_setup_userfaultfd)
+(type dexoptanalyzer)
+(roletype object_r dexoptanalyzer)
+(type dexoptanalyzer_exec)
+(roletype object_r dexoptanalyzer_exec)
+(type dexoptanalyzer_tmpfs)
+(roletype object_r dexoptanalyzer_tmpfs)
+(type dexoptanalyzer_userfaultfd)
+(roletype object_r dexoptanalyzer_userfaultfd)
+(type dmesgd)
+(roletype object_r dmesgd)
+(type dmesgd_exec)
+(roletype object_r dmesgd_exec)
+(type dumpstate_tmpfs)
+(roletype object_r dumpstate_tmpfs)
+(type ephemeral_app_userfaultfd)
+(roletype object_r ephemeral_app_userfaultfd)
+(type evsmanagerd_exec)
+(roletype object_r evsmanagerd_exec)
+(type fastbootd_iouring)
+(roletype object_r fastbootd_iouring)
+(type config_gz)
+(roletype object_r config_gz)
+(type fs_bpf_net_private)
+(roletype object_r fs_bpf_net_private)
+(type fs_bpf_net_shared)
+(roletype object_r fs_bpf_net_shared)
+(type fs_bpf_netd_readonly)
+(roletype object_r fs_bpf_netd_readonly)
+(type fs_bpf_netd_shared)
+(roletype object_r fs_bpf_netd_shared)
+(type fs_bpf_loader)
+(roletype object_r fs_bpf_loader)
+(type fs_bpf_uprobestats)
+(roletype object_r fs_bpf_uprobestats)
+(type storaged_data_file)
+(roletype object_r storaged_data_file)
+(type wm_trace_data_file)
+(roletype object_r wm_trace_data_file)
+(type accessibility_trace_data_file)
+(roletype object_r accessibility_trace_data_file)
+(type perfetto_traces_data_file)
+(roletype object_r perfetto_traces_data_file)
+(type perfetto_traces_bugreport_data_file)
+(roletype object_r perfetto_traces_bugreport_data_file)
+(type perfetto_traces_profiling_data_file)
+(roletype object_r perfetto_traces_profiling_data_file)
+(type perfetto_configs_data_file)
+(roletype object_r perfetto_configs_data_file)
+(type uprobestats_configs_data_file)
+(roletype object_r uprobestats_configs_data_file)
+(type oatdump_exec)
+(roletype object_r oatdump_exec)
+(type sdk_sandbox_system_data_file)
+(roletype object_r sdk_sandbox_system_data_file)
+(type sdk_sandbox_data_file)
+(roletype object_r sdk_sandbox_data_file)
+(type debugfs_kcov)
+(roletype object_r debugfs_kcov)
+(type app_exec_data_file)
+(roletype object_r app_exec_data_file)
+(type rollback_data_file)
+(roletype object_r rollback_data_file)
+(type checkin_data_file)
+(roletype object_r checkin_data_file)
+(type ota_image_data_file)
+(roletype object_r ota_image_data_file)
+(type gsi_persistent_data_file)
+(roletype object_r gsi_persistent_data_file)
+(type emergency_data_file)
+(roletype object_r emergency_data_file)
+(type profcollectd_data_file)
+(roletype object_r profcollectd_data_file)
+(type apex_art_data_file)
+(roletype object_r apex_art_data_file)
+(type apex_art_staging_data_file)
+(roletype object_r apex_art_staging_data_file)
+(type apex_compos_data_file)
+(roletype object_r apex_compos_data_file)
+(type apex_virt_data_file)
+(roletype object_r apex_virt_data_file)
+(type apex_tethering_data_file)
+(roletype object_r apex_tethering_data_file)
+(type apex_appsearch_data_file)
+(roletype object_r apex_appsearch_data_file)
+(type apex_permission_data_file)
+(roletype object_r apex_permission_data_file)
+(type apex_scheduling_data_file)
+(roletype object_r apex_scheduling_data_file)
+(type apex_wifi_data_file)
+(roletype object_r apex_wifi_data_file)
+(type font_data_file)
+(roletype object_r font_data_file)
+(type dmesgd_data_file)
+(roletype object_r dmesgd_data_file)
+(type odrefresh_data_file)
+(roletype object_r odrefresh_data_file)
+(type odsign_data_file)
+(roletype object_r odsign_data_file)
+(type odsign_metrics_file)
+(roletype object_r odsign_metrics_file)
+(type virtualizationservice_data_file)
+(roletype object_r virtualizationservice_data_file)
+(type environ_system_data_file)
+(roletype object_r environ_system_data_file)
+(type bootanim_data_file)
+(roletype object_r bootanim_data_file)
+(type kvm_device)
+(roletype object_r kvm_device)
+(type fd_server_exec)
+(roletype object_r fd_server_exec)
+(type compos_exec)
+(roletype object_r compos_exec)
+(type compos_key_helper_exec)
+(roletype object_r compos_key_helper_exec)
+(type art_exec_exec)
+(roletype object_r art_exec_exec)
+(type prng_seeder_socket)
+(roletype object_r prng_seeder_socket)
+(type sysfs_dt_avf)
+(roletype object_r sysfs_dt_avf)
+(type proc_dt_avf)
+(roletype object_r proc_dt_avf)
+(type system_font_fallback_file)
+(roletype object_r system_font_fallback_file)
+(type sysfs_uprobe)
+(roletype object_r sysfs_uprobe)
+(type aconfigd_socket)
+(roletype object_r aconfigd_socket)
+(type system_aconfig_storage_file)
+(roletype object_r system_aconfig_storage_file)
+(type vendor_aconfig_storage_file)
+(roletype object_r vendor_aconfig_storage_file)
+(type fsverity_init)
+(roletype object_r fsverity_init)
+(type fsverity_init_exec)
+(roletype object_r fsverity_init_exec)
+(type fuseblkd_exec)
+(roletype object_r fuseblkd_exec)
+(type fuseblkd)
+(roletype object_r fuseblkd)
+(type fuseblkd_untrusted_exec)
+(roletype object_r fuseblkd_untrusted_exec)
+(type fuseblkd_untrusted)
+(roletype object_r fuseblkd_untrusted)
+(type fwk_bufferhub)
+(roletype object_r fwk_bufferhub)
+(type fwk_bufferhub_exec)
+(roletype object_r fwk_bufferhub_exec)
+(type gki_apex_prepostinstall)
+(roletype object_r gki_apex_prepostinstall)
+(type gki_apex_prepostinstall_exec)
+(roletype object_r gki_apex_prepostinstall_exec)
+(type gmscore_app_userfaultfd)
+(roletype object_r gmscore_app_userfaultfd)
+(type gpuservice_exec)
+(roletype object_r gpuservice_exec)
+(type gsid)
+(roletype object_r gsid)
+(type gsid_exec)
+(roletype object_r gsid_exec)
+(type hal_allocator_default)
+(roletype object_r hal_allocator_default)
+(type hal_allocator_default_exec)
+(roletype object_r hal_allocator_default_exec)
+(type heapprofd_exec)
+(roletype object_r heapprofd_exec)
+(type heapprofd_tmpfs)
+(roletype object_r heapprofd_tmpfs)
+(type hidl_lazy_test_server)
+(roletype object_r hidl_lazy_test_server)
+(type hidl_lazy_test_server_exec)
+(roletype object_r hidl_lazy_test_server_exec)
+(type hal_lazy_test_hwservice)
+(roletype object_r hal_lazy_test_hwservice)
+(type incident_exec)
+(roletype object_r incident_exec)
+(type incident_helper_exec)
+(roletype object_r incident_helper_exec)
+(type incidentd_exec)
+(roletype object_r incidentd_exec)
+(type isolated_app_userfaultfd)
+(roletype object_r isolated_app_userfaultfd)
+(type isolated_compute_app_userfaultfd)
+(roletype object_r isolated_compute_app_userfaultfd)
+(type iw)
+(roletype object_r iw)
+(type iw_exec)
+(roletype object_r iw_exec)
+(type shell_key)
+(roletype object_r shell_key)
+(type su_key)
+(roletype object_r su_key)
+(type vold_key)
+(roletype object_r vold_key)
+(type odsign_key)
+(roletype object_r odsign_key)
+(type locksettings_key)
+(roletype object_r locksettings_key)
+(type resume_on_reboot_key)
+(roletype object_r resume_on_reboot_key)
+(type linkerconfig)
+(roletype object_r linkerconfig)
+(type linkerconfig_exec)
+(roletype object_r linkerconfig_exec)
+(type lpdumpd)
+(roletype object_r lpdumpd)
+(type lpdumpd_exec)
+(roletype object_r lpdumpd_exec)
+(type mdnsd_exec)
+(roletype object_r mdnsd_exec)
+(type mediaprovider_userfaultfd)
+(roletype object_r mediaprovider_userfaultfd)
+(type mediaprovider_app)
+(roletype object_r mediaprovider_app)
+(type mediaprovider_app_userfaultfd)
+(roletype object_r mediaprovider_app_userfaultfd)
+(type mediatranscoding_exec)
+(roletype object_r mediatranscoding_exec)
+(type mediatranscoding_tmpfs)
+(roletype object_r mediatranscoding_tmpfs)
+(type mediatuner)
+(roletype object_r mediatuner)
+(type mediatuner_exec)
+(roletype object_r mediatuner_exec)
+(type migrate_legacy_obb_data)
+(roletype object_r migrate_legacy_obb_data)
+(type migrate_legacy_obb_data_exec)
+(roletype object_r migrate_legacy_obb_data_exec)
+(type misctrl)
+(roletype object_r misctrl)
+(type misctrl_exec)
+(roletype object_r misctrl_exec)
+(type mm_events)
+(roletype object_r mm_events)
+(type mm_events_exec)
+(roletype object_r mm_events_exec)
+(type mtectrl)
+(roletype object_r mtectrl)
+(type mtectrl_exec)
+(roletype object_r mtectrl_exec)
+(type network_stack_userfaultfd)
+(roletype object_r network_stack_userfaultfd)
+(type nfc_userfaultfd)
+(roletype object_r nfc_userfaultfd)
+(type odrefresh)
+(roletype object_r odrefresh)
+(type odrefresh_exec)
+(roletype object_r odrefresh_exec)
+(type odrefresh_userfaultfd)
+(roletype object_r odrefresh_userfaultfd)
+(type odsign)
+(roletype object_r odsign)
+(type odsign_exec)
+(roletype object_r odsign_exec)
+(type odsign_devpts)
+(roletype object_r odsign_devpts)
+(type ot_daemon)
+(roletype object_r ot_daemon)
+(type ot_daemon_exec)
+(roletype object_r ot_daemon_exec)
+(type otapreopt_chroot_exec)
+(roletype object_r otapreopt_chroot_exec)
+(type otapreopt_slot)
+(roletype object_r otapreopt_slot)
+(type otapreopt_slot_exec)
+(roletype object_r otapreopt_slot_exec)
+(type perfetto_exec)
+(roletype object_r perfetto_exec)
+(type perfetto_tmpfs)
+(roletype object_r perfetto_tmpfs)
+(type permissioncontroller_app)
+(roletype object_r permissioncontroller_app)
+(type permissioncontroller_app_userfaultfd)
+(roletype object_r permissioncontroller_app_userfaultfd)
+(type platform_app_userfaultfd)
+(roletype object_r platform_app_userfaultfd)
+(type postinstall_exec)
+(roletype object_r postinstall_exec)
+(type postinstall_dexopt)
+(roletype object_r postinstall_dexopt)
+(type postinstall_dexopt_exec)
+(roletype object_r postinstall_dexopt_exec)
+(type postinstall_dexopt_tmpfs)
+(roletype object_r postinstall_dexopt_tmpfs)
+(type preloads_copy)
+(roletype object_r preloads_copy)
+(type preloads_copy_exec)
+(roletype object_r preloads_copy_exec)
+(type preopt2cachename)
+(roletype object_r preopt2cachename)
+(type preopt2cachename_exec)
+(roletype object_r preopt2cachename_exec)
+(type priv_app_userfaultfd)
+(roletype object_r priv_app_userfaultfd)
+(type priv_app_devpts)
+(roletype object_r priv_app_devpts)
+(type prng_seeder_exec)
+(roletype object_r prng_seeder_exec)
+(type profcollectd)
+(roletype object_r profcollectd)
+(type profcollectd_exec)
+(roletype object_r profcollectd_exec)
+(type adbd_prop)
+(roletype object_r adbd_prop)
+(type apexd_payload_metadata_prop)
+(roletype object_r apexd_payload_metadata_prop)
+(type ctl_snapuserd_prop)
+(roletype object_r ctl_snapuserd_prop)
+(type crashrecovery_prop)
+(roletype object_r crashrecovery_prop)
+(type device_config_core_experiments_team_internal_prop)
+(roletype object_r device_config_core_experiments_team_internal_prop)
+(type device_config_lmkd_native_prop)
+(roletype object_r device_config_lmkd_native_prop)
+(type device_config_mglru_native_prop)
+(roletype object_r device_config_mglru_native_prop)
+(type device_config_profcollect_native_boot_prop)
+(roletype object_r device_config_profcollect_native_boot_prop)
+(type device_config_remote_key_provisioning_native_prop)
+(roletype object_r device_config_remote_key_provisioning_native_prop)
+(type device_config_statsd_native_prop)
+(roletype object_r device_config_statsd_native_prop)
+(type device_config_statsd_native_boot_prop)
+(roletype object_r device_config_statsd_native_boot_prop)
+(type device_config_storage_native_boot_prop)
+(roletype object_r device_config_storage_native_boot_prop)
+(type device_config_sys_traced_prop)
+(roletype object_r device_config_sys_traced_prop)
+(type device_config_window_manager_native_boot_prop)
+(roletype object_r device_config_window_manager_native_boot_prop)
+(type device_config_configuration_prop)
+(roletype object_r device_config_configuration_prop)
+(type device_config_connectivity_prop)
+(roletype object_r device_config_connectivity_prop)
+(type device_config_swcodec_native_prop)
+(roletype object_r device_config_swcodec_native_prop)
+(type device_config_tethering_u_or_later_native_prop)
+(roletype object_r device_config_tethering_u_or_later_native_prop)
+(type dmesgd_start_prop)
+(roletype object_r dmesgd_start_prop)
+(type fastbootd_protocol_prop)
+(roletype object_r fastbootd_protocol_prop)
+(type gsid_prop)
+(roletype object_r gsid_prop)
+(type init_perf_lsm_hooks_prop)
+(roletype object_r init_perf_lsm_hooks_prop)
+(type init_service_status_private_prop)
+(roletype object_r init_service_status_private_prop)
+(type init_storage_prop)
+(roletype object_r init_storage_prop)
+(type init_svc_debug_prop)
+(roletype object_r init_svc_debug_prop)
+(type keystore_crash_prop)
+(roletype object_r keystore_crash_prop)
+(type keystore_listen_prop)
+(roletype object_r keystore_listen_prop)
+(type last_boot_reason_prop)
+(roletype object_r last_boot_reason_prop)
+(type localization_prop)
+(roletype object_r localization_prop)
+(type logd_auditrate_prop)
+(roletype object_r logd_auditrate_prop)
+(type lower_kptr_restrict_prop)
+(roletype object_r lower_kptr_restrict_prop)
+(type net_464xlat_fromvendor_prop)
+(roletype object_r net_464xlat_fromvendor_prop)
+(type net_connectivity_prop)
+(roletype object_r net_connectivity_prop)
+(type netd_stable_secret_prop)
+(roletype object_r netd_stable_secret_prop)
+(type next_boot_prop)
+(roletype object_r next_boot_prop)
+(type odsign_prop)
+(roletype object_r odsign_prop)
+(type misctrl_prop)
+(roletype object_r misctrl_prop)
+(type perf_drop_caches_prop)
+(roletype object_r perf_drop_caches_prop)
+(type pm_prop)
+(roletype object_r pm_prop)
+(type profcollectd_node_id_prop)
+(roletype object_r profcollectd_node_id_prop)
+(type radio_cdma_ecm_prop)
+(roletype object_r radio_cdma_ecm_prop)
+(type remote_prov_prop)
+(roletype object_r remote_prov_prop)
+(type rollback_test_prop)
+(roletype object_r rollback_test_prop)
+(type setupwizard_prop)
+(roletype object_r setupwizard_prop)
+(type snapuserd_prop)
+(roletype object_r snapuserd_prop)
+(type system_adbd_prop)
+(roletype object_r system_adbd_prop)
+(type system_audio_config_prop)
+(roletype object_r system_audio_config_prop)
+(type timezone_metadata_prop)
+(roletype object_r timezone_metadata_prop)
+(type traced_perf_enabled_prop)
+(roletype object_r traced_perf_enabled_prop)
+(type uprobestats_start_with_config_prop)
+(roletype object_r uprobestats_start_with_config_prop)
+(type tuner_server_ctl_prop)
+(roletype object_r tuner_server_ctl_prop)
+(type userspace_reboot_log_prop)
+(roletype object_r userspace_reboot_log_prop)
+(type userspace_reboot_test_prop)
+(roletype object_r userspace_reboot_test_prop)
+(type verity_status_prop)
+(roletype object_r verity_status_prop)
+(type zygote_wrap_prop)
+(roletype object_r zygote_wrap_prop)
+(type ctl_mediatranscoding_prop)
+(roletype object_r ctl_mediatranscoding_prop)
+(type ctl_odsign_prop)
+(roletype object_r ctl_odsign_prop)
+(type virtualizationservice_prop)
+(roletype object_r virtualizationservice_prop)
+(type ctl_apex_load_prop)
+(roletype object_r ctl_apex_load_prop)
+(type enable_16k_pages_prop)
+(roletype object_r enable_16k_pages_prop)
+(type sensors_config_prop)
+(roletype object_r sensors_config_prop)
+(type hypervisor_pvmfw_prop)
+(roletype object_r hypervisor_pvmfw_prop)
+(type hypervisor_virtualizationmanager_prop)
+(roletype object_r hypervisor_virtualizationmanager_prop)
+(type game_manager_config_prop)
+(roletype object_r game_manager_config_prop)
+(type hidl_memory_prop)
+(roletype object_r hidl_memory_prop)
+(type suspend_debug_prop)
+(roletype object_r suspend_debug_prop)
+(type device_config_virtualization_framework_native_prop)
+(roletype object_r device_config_virtualization_framework_native_prop)
+(type log_file_logger_prop)
+(roletype object_r log_file_logger_prop)
+(type persist_sysui_builder_extras_prop)
+(roletype object_r persist_sysui_builder_extras_prop)
+(type persist_sysui_ranking_update_prop)
+(roletype object_r persist_sysui_ranking_update_prop)
+(type radio_userfaultfd)
+(roletype object_r radio_userfaultfd)
+(type remount)
+(roletype object_r remount)
+(type remount_exec)
+(roletype object_r remount_exec)
+(type rkpd)
+(roletype object_r rkpd)
+(type rkpd_exec)
+(roletype object_r rkpd_exec)
+(type rkpdapp_userfaultfd)
+(roletype object_r rkpdapp_userfaultfd)
+(type rss_hwm_reset_exec)
+(roletype object_r rss_hwm_reset_exec)
+(type runas_app_userfaultfd)
+(roletype object_r runas_app_userfaultfd)
+(type sdk_sandbox_34)
+(roletype object_r sdk_sandbox_34)
+(type sdk_sandbox_34_userfaultfd)
+(roletype object_r sdk_sandbox_34_userfaultfd)
+(type sdk_sandbox_audit)
+(roletype object_r sdk_sandbox_audit)
+(type sdk_sandbox_audit_userfaultfd)
+(roletype object_r sdk_sandbox_audit_userfaultfd)
+(type sdk_sandbox_next)
+(roletype object_r sdk_sandbox_next)
+(type sdk_sandbox_next_userfaultfd)
+(roletype object_r sdk_sandbox_next_userfaultfd)
+(type secure_element_userfaultfd)
+(roletype object_r secure_element_userfaultfd)
+(type adaptive_auth_service)
+(roletype object_r adaptive_auth_service)
+(type ambient_context_service)
+(roletype object_r ambient_context_service)
+(type attention_service)
+(roletype object_r attention_service)
+(type bg_install_control_service)
+(roletype object_r bg_install_control_service)
+(type compos_service)
+(roletype object_r compos_service)
+(type communal_service)
+(roletype object_r communal_service)
+(type dynamic_system_service)
+(roletype object_r dynamic_system_service)
+(type feature_flags_service)
+(roletype object_r feature_flags_service)
+(type gsi_service)
+(roletype object_r gsi_service)
+(type incidentcompanion_service)
+(roletype object_r incidentcompanion_service)
+(type logcat_service)
+(roletype object_r logcat_service)
+(type logd_service)
+(roletype object_r logd_service)
+(type mediatuner_service)
+(roletype object_r mediatuner_service)
+(type profcollectd_service)
+(roletype object_r profcollectd_service)
+(type resolver_service)
+(roletype object_r resolver_service)
+(type rkpd_registrar_service)
+(roletype object_r rkpd_registrar_service)
+(type rkpd_refresh_service)
+(roletype object_r rkpd_refresh_service)
+(type safety_center_service)
+(roletype object_r safety_center_service)
+(type stats_service)
+(roletype object_r stats_service)
+(type statsbootstrap_service)
+(roletype object_r statsbootstrap_service)
+(type statscompanion_service)
+(roletype object_r statscompanion_service)
+(type statsmanager_service)
+(roletype object_r statsmanager_service)
+(type tracingproxy_service)
+(roletype object_r tracingproxy_service)
+(type transparency_service)
+(roletype object_r transparency_service)
+(type uce_service)
+(roletype object_r uce_service)
+(type wearable_sensing_service)
+(roletype object_r wearable_sensing_service)
+(type shared_relro_userfaultfd)
+(roletype object_r shared_relro_userfaultfd)
+(type shell_userfaultfd)
+(roletype object_r shell_userfaultfd)
+(type simpleperf_exec)
+(roletype object_r simpleperf_exec)
+(type simpleperf_userfaultfd)
+(roletype object_r simpleperf_userfaultfd)
+(type simpleperf_boot)
+(roletype object_r simpleperf_boot)
+(type simpleperf_boot_data_file)
+(roletype object_r simpleperf_boot_data_file)
+(type snapshotctl)
+(roletype object_r snapshotctl)
+(type snapshotctl_exec)
+(roletype object_r snapshotctl_exec)
+(type snapuserd)
+(roletype object_r snapuserd)
+(type snapuserd_exec)
+(roletype object_r snapuserd_exec)
+(type snapuserd_iouring)
+(roletype object_r snapuserd_iouring)
+(type stats)
+(roletype object_r stats)
+(type stats_exec)
+(roletype object_r stats_exec)
+(type storaged)
+(roletype object_r storaged)
+(type storaged_exec)
+(roletype object_r storaged_exec)
+(type surfaceflinger_exec)
+(roletype object_r surfaceflinger_exec)
+(type system_app_userfaultfd)
+(roletype object_r system_app_userfaultfd)
+(type system_server_userfaultfd)
+(roletype object_r system_server_userfaultfd)
+(type system_server_startup)
+(roletype object_r system_server_startup)
+(type system_server_startup_tmpfs)
+(roletype object_r system_server_startup_tmpfs)
+(type system_suspend)
+(roletype object_r system_suspend)
+(type system_suspend_exec)
+(roletype object_r system_suspend_exec)
+(type traced_exec)
+(roletype object_r traced_exec)
+(type traced_perf_exec)
+(roletype object_r traced_perf_exec)
+(type traced_probes_exec)
+(roletype object_r traced_probes_exec)
+(type traced_probes_tmpfs)
+(roletype object_r traced_probes_tmpfs)
+(type traceur_app_userfaultfd)
+(roletype object_r traceur_app_userfaultfd)
+(type untrusted_app_userfaultfd)
+(roletype object_r untrusted_app_userfaultfd)
+(type untrusted_app_25_userfaultfd)
+(roletype object_r untrusted_app_25_userfaultfd)
+(type untrusted_app_27_userfaultfd)
+(roletype object_r untrusted_app_27_userfaultfd)
+(type untrusted_app_29_userfaultfd)
+(roletype object_r untrusted_app_29_userfaultfd)
+(type untrusted_app_30_userfaultfd)
+(roletype object_r untrusted_app_30_userfaultfd)
+(type untrusted_app_32_userfaultfd)
+(roletype object_r untrusted_app_32_userfaultfd)
+(type untrusted_app_all_devpts)
+(roletype object_r untrusted_app_all_devpts)
+(type uprobestats)
+(roletype object_r uprobestats)
+(type uprobestats_exec)
+(roletype object_r uprobestats_exec)
+(type vehicle_binding_util)
+(roletype object_r vehicle_binding_util)
+(type vehicle_binding_util_exec)
+(roletype object_r vehicle_binding_util_exec)
+(type viewcompiler)
+(roletype object_r viewcompiler)
+(type viewcompiler_exec)
+(roletype object_r viewcompiler_exec)
+(type viewcompiler_tmpfs)
+(roletype object_r viewcompiler_tmpfs)
+(type virtual_camera)
+(roletype object_r virtual_camera)
+(type virtual_camera_exec)
+(roletype object_r virtual_camera_exec)
+(type virtualizationmanager)
+(roletype object_r virtualizationmanager)
+(type virtualizationmanager_exec)
+(roletype object_r virtualizationmanager_exec)
+(type virtualizationservice)
+(roletype object_r virtualizationservice)
+(type virtualizationservice_exec)
+(roletype object_r virtualizationservice_exec)
+(type vzwomatrigger_app)
+(roletype object_r vzwomatrigger_app)
+(type vzwomatrigger_app_userfaultfd)
+(roletype object_r vzwomatrigger_app_userfaultfd)
+(type wait_for_keymaster)
+(roletype object_r wait_for_keymaster)
+(type wait_for_keymaster_exec)
+(roletype object_r wait_for_keymaster_exec)
+(type webview_zygote_userfaultfd)
+(roletype object_r webview_zygote_userfaultfd)
+(type zygote_userfaultfd)
+(roletype object_r zygote_userfaultfd)
+(user u)
+(userrole u object_r)
+(userrole u r)
+(userlevel u (s0 ))
+(userrange u ((s0 ) (s0 (range c0 c1023))))
+(sensitivity s0)
+(sensitivitycategory s0 (c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 c33 c34 c35 c36 c37 c38 c39 c40 c41 c42 c43 c44 c45 c46 c47 c48 c49 c50 c51 c52 c53 c54 c55 c56 c57 c58 c59 c60 c61 c62 c63 c64 c65 c66 c67 c68 c69 c70 c71 c72 c73 c74 c75 c76 c77 c78 c79 c80 c81 c82 c83 c84 c85 c86 c87 c88 c89 c90 c91 c92 c93 c94 c95 c96 c97 c98 c99 c100 c101 c102 c103 c104 c105 c106 c107 c108 c109 c110 c111 c112 c113 c114 c115 c116 c117 c118 c119 c120 c121 c122 c123 c124 c125 c126 c127 c128 c129 c130 c131 c132 c133 c134 c135 c136 c137 c138 c139 c140 c141 c142 c143 c144 c145 c146 c147 c148 c149 c150 c151 c152 c153 c154 c155 c156 c157 c158 c159 c160 c161 c162 c163 c164 c165 c166 c167 c168 c169 c170 c171 c172 c173 c174 c175 c176 c177 c178 c179 c180 c181 c182 c183 c184 c185 c186 c187 c188 c189 c190 c191 c192 c193 c194 c195 c196 c197 c198 c199 c200 c201 c202 c203 c204 c205 c206 c207 c208 c209 c210 c211 c212 c213 c214 c215 c216 c217 c218 c219 c220 c221 c222 c223 c224 c225 c226 c227 c228 c229 c230 c231 c232 c233 c234 c235 c236 c237 c238 c239 c240 c241 c242 c243 c244 c245 c246 c247 c248 c249 c250 c251 c252 c253 c254 c255 c256 c257 c258 c259 c260 c261 c262 c263 c264 c265 c266 c267 c268 c269 c270 c271 c272 c273 c274 c275 c276 c277 c278 c279 c280 c281 c282 c283 c284 c285 c286 c287 c288 c289 c290 c291 c292 c293 c294 c295 c296 c297 c298 c299 c300 c301 c302 c303 c304 c305 c306 c307 c308 c309 c310 c311 c312 c313 c314 c315 c316 c317 c318 c319 c320 c321 c322 c323 c324 c325 c326 c327 c328 c329 c330 c331 c332 c333 c334 c335 c336 c337 c338 c339 c340 c341 c342 c343 c344 c345 c346 c347 c348 c349 c350 c351 c352 c353 c354 c355 c356 c357 c358 c359 c360 c361 c362 c363 c364 c365 c366 c367 c368 c369 c370 c371 c372 c373 c374 c375 c376 c377 c378 c379 c380 c381 c382 c383 c384 c385 c386 c387 c388 c389 c390 c391 c392 c393 c394 c395 c396 c397 c398 c399 c400 c401 c402 c403 c404 c405 c406 c407 c408 c409 c410 c411 c412 c413 c414 c415 c416 c417 c418 c419 c420 c421 c422 c423 c424 c425 c426 c427 c428 c429 c430 c431 c432 c433 c434 c435 c436 c437 c438 c439 c440 c441 c442 c443 c444 c445 c446 c447 c448 c449 c450 c451 c452 c453 c454 c455 c456 c457 c458 c459 c460 c461 c462 c463 c464 c465 c466 c467 c468 c469 c470 c471 c472 c473 c474 c475 c476 c477 c478 c479 c480 c481 c482 c483 c484 c485 c486 c487 c488 c489 c490 c491 c492 c493 c494 c495 c496 c497 c498 c499 c500 c501 c502 c503 c504 c505 c506 c507 c508 c509 c510 c511 c512 c513 c514 c515 c516 c517 c518 c519 c520 c521 c522 c523 c524 c525 c526 c527 c528 c529 c530 c531 c532 c533 c534 c535 c536 c537 c538 c539 c540 c541 c542 c543 c544 c545 c546 c547 c548 c549 c550 c551 c552 c553 c554 c555 c556 c557 c558 c559 c560 c561 c562 c563 c564 c565 c566 c567 c568 c569 c570 c571 c572 c573 c574 c575 c576 c577 c578 c579 c580 c581 c582 c583 c584 c585 c586 c587 c588 c589 c590 c591 c592 c593 c594 c595 c596 c597 c598 c599 c600 c601 c602 c603 c604 c605 c606 c607 c608 c609 c610 c611 c612 c613 c614 c615 c616 c617 c618 c619 c620 c621 c622 c623 c624 c625 c626 c627 c628 c629 c630 c631 c632 c633 c634 c635 c636 c637 c638 c639 c640 c641 c642 c643 c644 c645 c646 c647 c648 c649 c650 c651 c652 c653 c654 c655 c656 c657 c658 c659 c660 c661 c662 c663 c664 c665 c666 c667 c668 c669 c670 c671 c672 c673 c674 c675 c676 c677 c678 c679 c680 c681 c682 c683 c684 c685 c686 c687 c688 c689 c690 c691 c692 c693 c694 c695 c696 c697 c698 c699 c700 c701 c702 c703 c704 c705 c706 c707 c708 c709 c710 c711 c712 c713 c714 c715 c716 c717 c718 c719 c720 c721 c722 c723 c724 c725 c726 c727 c728 c729 c730 c731 c732 c733 c734 c735 c736 c737 c738 c739 c740 c741 c742 c743 c744 c745 c746 c747 c748 c749 c750 c751 c752 c753 c754 c755 c756 c757 c758 c759 c760 c761 c762 c763 c764 c765 c766 c767 c768 c769 c770 c771 c772 c773 c774 c775 c776 c777 c778 c779 c780 c781 c782 c783 c784 c785 c786 c787 c788 c789 c790 c791 c792 c793 c794 c795 c796 c797 c798 c799 c800 c801 c802 c803 c804 c805 c806 c807 c808 c809 c810 c811 c812 c813 c814 c815 c816 c817 c818 c819 c820 c821 c822 c823 c824 c825 c826 c827 c828 c829 c830 c831 c832 c833 c834 c835 c836 c837 c838 c839 c840 c841 c842 c843 c844 c845 c846 c847 c848 c849 c850 c851 c852 c853 c854 c855 c856 c857 c858 c859 c860 c861 c862 c863 c864 c865 c866 c867 c868 c869 c870 c871 c872 c873 c874 c875 c876 c877 c878 c879 c880 c881 c882 c883 c884 c885 c886 c887 c888 c889 c890 c891 c892 c893 c894 c895 c896 c897 c898 c899 c900 c901 c902 c903 c904 c905 c906 c907 c908 c909 c910 c911 c912 c913 c914 c915 c916 c917 c918 c919 c920 c921 c922 c923 c924 c925 c926 c927 c928 c929 c930 c931 c932 c933 c934 c935 c936 c937 c938 c939 c940 c941 c942 c943 c944 c945 c946 c947 c948 c949 c950 c951 c952 c953 c954 c955 c956 c957 c958 c959 c960 c961 c962 c963 c964 c965 c966 c967 c968 c969 c970 c971 c972 c973 c974 c975 c976 c977 c978 c979 c980 c981 c982 c983 c984 c985 c986 c987 c988 c989 c990 c991 c992 c993 c994 c995 c996 c997 c998 c999 c1000 c1001 c1002 c1003 c1004 c1005 c1006 c1007 c1008 c1009 c1010 c1011 c1012 c1013 c1014 c1015 c1016 c1017 c1018 c1019 c1020 c1021 c1022 c1023 ))
+(sensitivityorder (s0 ))
+(category c0)
+(category c1)
+(category c2)
+(category c3)
+(category c4)
+(category c5)
+(category c6)
+(category c7)
+(category c8)
+(category c9)
+(category c10)
+(category c11)
+(category c12)
+(category c13)
+(category c14)
+(category c15)
+(category c16)
+(category c17)
+(category c18)
+(category c19)
+(category c20)
+(category c21)
+(category c22)
+(category c23)
+(category c24)
+(category c25)
+(category c26)
+(category c27)
+(category c28)
+(category c29)
+(category c30)
+(category c31)
+(category c32)
+(category c33)
+(category c34)
+(category c35)
+(category c36)
+(category c37)
+(category c38)
+(category c39)
+(category c40)
+(category c41)
+(category c42)
+(category c43)
+(category c44)
+(category c45)
+(category c46)
+(category c47)
+(category c48)
+(category c49)
+(category c50)
+(category c51)
+(category c52)
+(category c53)
+(category c54)
+(category c55)
+(category c56)
+(category c57)
+(category c58)
+(category c59)
+(category c60)
+(category c61)
+(category c62)
+(category c63)
+(category c64)
+(category c65)
+(category c66)
+(category c67)
+(category c68)
+(category c69)
+(category c70)
+(category c71)
+(category c72)
+(category c73)
+(category c74)
+(category c75)
+(category c76)
+(category c77)
+(category c78)
+(category c79)
+(category c80)
+(category c81)
+(category c82)
+(category c83)
+(category c84)
+(category c85)
+(category c86)
+(category c87)
+(category c88)
+(category c89)
+(category c90)
+(category c91)
+(category c92)
+(category c93)
+(category c94)
+(category c95)
+(category c96)
+(category c97)
+(category c98)
+(category c99)
+(category c100)
+(category c101)
+(category c102)
+(category c103)
+(category c104)
+(category c105)
+(category c106)
+(category c107)
+(category c108)
+(category c109)
+(category c110)
+(category c111)
+(category c112)
+(category c113)
+(category c114)
+(category c115)
+(category c116)
+(category c117)
+(category c118)
+(category c119)
+(category c120)
+(category c121)
+(category c122)
+(category c123)
+(category c124)
+(category c125)
+(category c126)
+(category c127)
+(category c128)
+(category c129)
+(category c130)
+(category c131)
+(category c132)
+(category c133)
+(category c134)
+(category c135)
+(category c136)
+(category c137)
+(category c138)
+(category c139)
+(category c140)
+(category c141)
+(category c142)
+(category c143)
+(category c144)
+(category c145)
+(category c146)
+(category c147)
+(category c148)
+(category c149)
+(category c150)
+(category c151)
+(category c152)
+(category c153)
+(category c154)
+(category c155)
+(category c156)
+(category c157)
+(category c158)
+(category c159)
+(category c160)
+(category c161)
+(category c162)
+(category c163)
+(category c164)
+(category c165)
+(category c166)
+(category c167)
+(category c168)
+(category c169)
+(category c170)
+(category c171)
+(category c172)
+(category c173)
+(category c174)
+(category c175)
+(category c176)
+(category c177)
+(category c178)
+(category c179)
+(category c180)
+(category c181)
+(category c182)
+(category c183)
+(category c184)
+(category c185)
+(category c186)
+(category c187)
+(category c188)
+(category c189)
+(category c190)
+(category c191)
+(category c192)
+(category c193)
+(category c194)
+(category c195)
+(category c196)
+(category c197)
+(category c198)
+(category c199)
+(category c200)
+(category c201)
+(category c202)
+(category c203)
+(category c204)
+(category c205)
+(category c206)
+(category c207)
+(category c208)
+(category c209)
+(category c210)
+(category c211)
+(category c212)
+(category c213)
+(category c214)
+(category c215)
+(category c216)
+(category c217)
+(category c218)
+(category c219)
+(category c220)
+(category c221)
+(category c222)
+(category c223)
+(category c224)
+(category c225)
+(category c226)
+(category c227)
+(category c228)
+(category c229)
+(category c230)
+(category c231)
+(category c232)
+(category c233)
+(category c234)
+(category c235)
+(category c236)
+(category c237)
+(category c238)
+(category c239)
+(category c240)
+(category c241)
+(category c242)
+(category c243)
+(category c244)
+(category c245)
+(category c246)
+(category c247)
+(category c248)
+(category c249)
+(category c250)
+(category c251)
+(category c252)
+(category c253)
+(category c254)
+(category c255)
+(category c256)
+(category c257)
+(category c258)
+(category c259)
+(category c260)
+(category c261)
+(category c262)
+(category c263)
+(category c264)
+(category c265)
+(category c266)
+(category c267)
+(category c268)
+(category c269)
+(category c270)
+(category c271)
+(category c272)
+(category c273)
+(category c274)
+(category c275)
+(category c276)
+(category c277)
+(category c278)
+(category c279)
+(category c280)
+(category c281)
+(category c282)
+(category c283)
+(category c284)
+(category c285)
+(category c286)
+(category c287)
+(category c288)
+(category c289)
+(category c290)
+(category c291)
+(category c292)
+(category c293)
+(category c294)
+(category c295)
+(category c296)
+(category c297)
+(category c298)
+(category c299)
+(category c300)
+(category c301)
+(category c302)
+(category c303)
+(category c304)
+(category c305)
+(category c306)
+(category c307)
+(category c308)
+(category c309)
+(category c310)
+(category c311)
+(category c312)
+(category c313)
+(category c314)
+(category c315)
+(category c316)
+(category c317)
+(category c318)
+(category c319)
+(category c320)
+(category c321)
+(category c322)
+(category c323)
+(category c324)
+(category c325)
+(category c326)
+(category c327)
+(category c328)
+(category c329)
+(category c330)
+(category c331)
+(category c332)
+(category c333)
+(category c334)
+(category c335)
+(category c336)
+(category c337)
+(category c338)
+(category c339)
+(category c340)
+(category c341)
+(category c342)
+(category c343)
+(category c344)
+(category c345)
+(category c346)
+(category c347)
+(category c348)
+(category c349)
+(category c350)
+(category c351)
+(category c352)
+(category c353)
+(category c354)
+(category c355)
+(category c356)
+(category c357)
+(category c358)
+(category c359)
+(category c360)
+(category c361)
+(category c362)
+(category c363)
+(category c364)
+(category c365)
+(category c366)
+(category c367)
+(category c368)
+(category c369)
+(category c370)
+(category c371)
+(category c372)
+(category c373)
+(category c374)
+(category c375)
+(category c376)
+(category c377)
+(category c378)
+(category c379)
+(category c380)
+(category c381)
+(category c382)
+(category c383)
+(category c384)
+(category c385)
+(category c386)
+(category c387)
+(category c388)
+(category c389)
+(category c390)
+(category c391)
+(category c392)
+(category c393)
+(category c394)
+(category c395)
+(category c396)
+(category c397)
+(category c398)
+(category c399)
+(category c400)
+(category c401)
+(category c402)
+(category c403)
+(category c404)
+(category c405)
+(category c406)
+(category c407)
+(category c408)
+(category c409)
+(category c410)
+(category c411)
+(category c412)
+(category c413)
+(category c414)
+(category c415)
+(category c416)
+(category c417)
+(category c418)
+(category c419)
+(category c420)
+(category c421)
+(category c422)
+(category c423)
+(category c424)
+(category c425)
+(category c426)
+(category c427)
+(category c428)
+(category c429)
+(category c430)
+(category c431)
+(category c432)
+(category c433)
+(category c434)
+(category c435)
+(category c436)
+(category c437)
+(category c438)
+(category c439)
+(category c440)
+(category c441)
+(category c442)
+(category c443)
+(category c444)
+(category c445)
+(category c446)
+(category c447)
+(category c448)
+(category c449)
+(category c450)
+(category c451)
+(category c452)
+(category c453)
+(category c454)
+(category c455)
+(category c456)
+(category c457)
+(category c458)
+(category c459)
+(category c460)
+(category c461)
+(category c462)
+(category c463)
+(category c464)
+(category c465)
+(category c466)
+(category c467)
+(category c468)
+(category c469)
+(category c470)
+(category c471)
+(category c472)
+(category c473)
+(category c474)
+(category c475)
+(category c476)
+(category c477)
+(category c478)
+(category c479)
+(category c480)
+(category c481)
+(category c482)
+(category c483)
+(category c484)
+(category c485)
+(category c486)
+(category c487)
+(category c488)
+(category c489)
+(category c490)
+(category c491)
+(category c492)
+(category c493)
+(category c494)
+(category c495)
+(category c496)
+(category c497)
+(category c498)
+(category c499)
+(category c500)
+(category c501)
+(category c502)
+(category c503)
+(category c504)
+(category c505)
+(category c506)
+(category c507)
+(category c508)
+(category c509)
+(category c510)
+(category c511)
+(category c512)
+(category c513)
+(category c514)
+(category c515)
+(category c516)
+(category c517)
+(category c518)
+(category c519)
+(category c520)
+(category c521)
+(category c522)
+(category c523)
+(category c524)
+(category c525)
+(category c526)
+(category c527)
+(category c528)
+(category c529)
+(category c530)
+(category c531)
+(category c532)
+(category c533)
+(category c534)
+(category c535)
+(category c536)
+(category c537)
+(category c538)
+(category c539)
+(category c540)
+(category c541)
+(category c542)
+(category c543)
+(category c544)
+(category c545)
+(category c546)
+(category c547)
+(category c548)
+(category c549)
+(category c550)
+(category c551)
+(category c552)
+(category c553)
+(category c554)
+(category c555)
+(category c556)
+(category c557)
+(category c558)
+(category c559)
+(category c560)
+(category c561)
+(category c562)
+(category c563)
+(category c564)
+(category c565)
+(category c566)
+(category c567)
+(category c568)
+(category c569)
+(category c570)
+(category c571)
+(category c572)
+(category c573)
+(category c574)
+(category c575)
+(category c576)
+(category c577)
+(category c578)
+(category c579)
+(category c580)
+(category c581)
+(category c582)
+(category c583)
+(category c584)
+(category c585)
+(category c586)
+(category c587)
+(category c588)
+(category c589)
+(category c590)
+(category c591)
+(category c592)
+(category c593)
+(category c594)
+(category c595)
+(category c596)
+(category c597)
+(category c598)
+(category c599)
+(category c600)
+(category c601)
+(category c602)
+(category c603)
+(category c604)
+(category c605)
+(category c606)
+(category c607)
+(category c608)
+(category c609)
+(category c610)
+(category c611)
+(category c612)
+(category c613)
+(category c614)
+(category c615)
+(category c616)
+(category c617)
+(category c618)
+(category c619)
+(category c620)
+(category c621)
+(category c622)
+(category c623)
+(category c624)
+(category c625)
+(category c626)
+(category c627)
+(category c628)
+(category c629)
+(category c630)
+(category c631)
+(category c632)
+(category c633)
+(category c634)
+(category c635)
+(category c636)
+(category c637)
+(category c638)
+(category c639)
+(category c640)
+(category c641)
+(category c642)
+(category c643)
+(category c644)
+(category c645)
+(category c646)
+(category c647)
+(category c648)
+(category c649)
+(category c650)
+(category c651)
+(category c652)
+(category c653)
+(category c654)
+(category c655)
+(category c656)
+(category c657)
+(category c658)
+(category c659)
+(category c660)
+(category c661)
+(category c662)
+(category c663)
+(category c664)
+(category c665)
+(category c666)
+(category c667)
+(category c668)
+(category c669)
+(category c670)
+(category c671)
+(category c672)
+(category c673)
+(category c674)
+(category c675)
+(category c676)
+(category c677)
+(category c678)
+(category c679)
+(category c680)
+(category c681)
+(category c682)
+(category c683)
+(category c684)
+(category c685)
+(category c686)
+(category c687)
+(category c688)
+(category c689)
+(category c690)
+(category c691)
+(category c692)
+(category c693)
+(category c694)
+(category c695)
+(category c696)
+(category c697)
+(category c698)
+(category c699)
+(category c700)
+(category c701)
+(category c702)
+(category c703)
+(category c704)
+(category c705)
+(category c706)
+(category c707)
+(category c708)
+(category c709)
+(category c710)
+(category c711)
+(category c712)
+(category c713)
+(category c714)
+(category c715)
+(category c716)
+(category c717)
+(category c718)
+(category c719)
+(category c720)
+(category c721)
+(category c722)
+(category c723)
+(category c724)
+(category c725)
+(category c726)
+(category c727)
+(category c728)
+(category c729)
+(category c730)
+(category c731)
+(category c732)
+(category c733)
+(category c734)
+(category c735)
+(category c736)
+(category c737)
+(category c738)
+(category c739)
+(category c740)
+(category c741)
+(category c742)
+(category c743)
+(category c744)
+(category c745)
+(category c746)
+(category c747)
+(category c748)
+(category c749)
+(category c750)
+(category c751)
+(category c752)
+(category c753)
+(category c754)
+(category c755)
+(category c756)
+(category c757)
+(category c758)
+(category c759)
+(category c760)
+(category c761)
+(category c762)
+(category c763)
+(category c764)
+(category c765)
+(category c766)
+(category c767)
+(category c768)
+(category c769)
+(category c770)
+(category c771)
+(category c772)
+(category c773)
+(category c774)
+(category c775)
+(category c776)
+(category c777)
+(category c778)
+(category c779)
+(category c780)
+(category c781)
+(category c782)
+(category c783)
+(category c784)
+(category c785)
+(category c786)
+(category c787)
+(category c788)
+(category c789)
+(category c790)
+(category c791)
+(category c792)
+(category c793)
+(category c794)
+(category c795)
+(category c796)
+(category c797)
+(category c798)
+(category c799)
+(category c800)
+(category c801)
+(category c802)
+(category c803)
+(category c804)
+(category c805)
+(category c806)
+(category c807)
+(category c808)
+(category c809)
+(category c810)
+(category c811)
+(category c812)
+(category c813)
+(category c814)
+(category c815)
+(category c816)
+(category c817)
+(category c818)
+(category c819)
+(category c820)
+(category c821)
+(category c822)
+(category c823)
+(category c824)
+(category c825)
+(category c826)
+(category c827)
+(category c828)
+(category c829)
+(category c830)
+(category c831)
+(category c832)
+(category c833)
+(category c834)
+(category c835)
+(category c836)
+(category c837)
+(category c838)
+(category c839)
+(category c840)
+(category c841)
+(category c842)
+(category c843)
+(category c844)
+(category c845)
+(category c846)
+(category c847)
+(category c848)
+(category c849)
+(category c850)
+(category c851)
+(category c852)
+(category c853)
+(category c854)
+(category c855)
+(category c856)
+(category c857)
+(category c858)
+(category c859)
+(category c860)
+(category c861)
+(category c862)
+(category c863)
+(category c864)
+(category c865)
+(category c866)
+(category c867)
+(category c868)
+(category c869)
+(category c870)
+(category c871)
+(category c872)
+(category c873)
+(category c874)
+(category c875)
+(category c876)
+(category c877)
+(category c878)
+(category c879)
+(category c880)
+(category c881)
+(category c882)
+(category c883)
+(category c884)
+(category c885)
+(category c886)
+(category c887)
+(category c888)
+(category c889)
+(category c890)
+(category c891)
+(category c892)
+(category c893)
+(category c894)
+(category c895)
+(category c896)
+(category c897)
+(category c898)
+(category c899)
+(category c900)
+(category c901)
+(category c902)
+(category c903)
+(category c904)
+(category c905)
+(category c906)
+(category c907)
+(category c908)
+(category c909)
+(category c910)
+(category c911)
+(category c912)
+(category c913)
+(category c914)
+(category c915)
+(category c916)
+(category c917)
+(category c918)
+(category c919)
+(category c920)
+(category c921)
+(category c922)
+(category c923)
+(category c924)
+(category c925)
+(category c926)
+(category c927)
+(category c928)
+(category c929)
+(category c930)
+(category c931)
+(category c932)
+(category c933)
+(category c934)
+(category c935)
+(category c936)
+(category c937)
+(category c938)
+(category c939)
+(category c940)
+(category c941)
+(category c942)
+(category c943)
+(category c944)
+(category c945)
+(category c946)
+(category c947)
+(category c948)
+(category c949)
+(category c950)
+(category c951)
+(category c952)
+(category c953)
+(category c954)
+(category c955)
+(category c956)
+(category c957)
+(category c958)
+(category c959)
+(category c960)
+(category c961)
+(category c962)
+(category c963)
+(category c964)
+(category c965)
+(category c966)
+(category c967)
+(category c968)
+(category c969)
+(category c970)
+(category c971)
+(category c972)
+(category c973)
+(category c974)
+(category c975)
+(category c976)
+(category c977)
+(category c978)
+(category c979)
+(category c980)
+(category c981)
+(category c982)
+(category c983)
+(category c984)
+(category c985)
+(category c986)
+(category c987)
+(category c988)
+(category c989)
+(category c990)
+(category c991)
+(category c992)
+(category c993)
+(category c994)
+(category c995)
+(category c996)
+(category c997)
+(category c998)
+(category c999)
+(category c1000)
+(category c1001)
+(category c1002)
+(category c1003)
+(category c1004)
+(category c1005)
+(category c1006)
+(category c1007)
+(category c1008)
+(category c1009)
+(category c1010)
+(category c1011)
+(category c1012)
+(category c1013)
+(category c1014)
+(category c1015)
+(category c1016)
+(category c1017)
+(category c1018)
+(category c1019)
+(category c1020)
+(category c1021)
+(category c1022)
+(category c1023)
+(categoryorder (c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20 c21 c22 c23 c24 c25 c26 c27 c28 c29 c30 c31 c32 c33 c34 c35 c36 c37 c38 c39 c40 c41 c42 c43 c44 c45 c46 c47 c48 c49 c50 c51 c52 c53 c54 c55 c56 c57 c58 c59 c60 c61 c62 c63 c64 c65 c66 c67 c68 c69 c70 c71 c72 c73 c74 c75 c76 c77 c78 c79 c80 c81 c82 c83 c84 c85 c86 c87 c88 c89 c90 c91 c92 c93 c94 c95 c96 c97 c98 c99 c100 c101 c102 c103 c104 c105 c106 c107 c108 c109 c110 c111 c112 c113 c114 c115 c116 c117 c118 c119 c120 c121 c122 c123 c124 c125 c126 c127 c128 c129 c130 c131 c132 c133 c134 c135 c136 c137 c138 c139 c140 c141 c142 c143 c144 c145 c146 c147 c148 c149 c150 c151 c152 c153 c154 c155 c156 c157 c158 c159 c160 c161 c162 c163 c164 c165 c166 c167 c168 c169 c170 c171 c172 c173 c174 c175 c176 c177 c178 c179 c180 c181 c182 c183 c184 c185 c186 c187 c188 c189 c190 c191 c192 c193 c194 c195 c196 c197 c198 c199 c200 c201 c202 c203 c204 c205 c206 c207 c208 c209 c210 c211 c212 c213 c214 c215 c216 c217 c218 c219 c220 c221 c222 c223 c224 c225 c226 c227 c228 c229 c230 c231 c232 c233 c234 c235 c236 c237 c238 c239 c240 c241 c242 c243 c244 c245 c246 c247 c248 c249 c250 c251 c252 c253 c254 c255 c256 c257 c258 c259 c260 c261 c262 c263 c264 c265 c266 c267 c268 c269 c270 c271 c272 c273 c274 c275 c276 c277 c278 c279 c280 c281 c282 c283 c284 c285 c286 c287 c288 c289 c290 c291 c292 c293 c294 c295 c296 c297 c298 c299 c300 c301 c302 c303 c304 c305 c306 c307 c308 c309 c310 c311 c312 c313 c314 c315 c316 c317 c318 c319 c320 c321 c322 c323 c324 c325 c326 c327 c328 c329 c330 c331 c332 c333 c334 c335 c336 c337 c338 c339 c340 c341 c342 c343 c344 c345 c346 c347 c348 c349 c350 c351 c352 c353 c354 c355 c356 c357 c358 c359 c360 c361 c362 c363 c364 c365 c366 c367 c368 c369 c370 c371 c372 c373 c374 c375 c376 c377 c378 c379 c380 c381 c382 c383 c384 c385 c386 c387 c388 c389 c390 c391 c392 c393 c394 c395 c396 c397 c398 c399 c400 c401 c402 c403 c404 c405 c406 c407 c408 c409 c410 c411 c412 c413 c414 c415 c416 c417 c418 c419 c420 c421 c422 c423 c424 c425 c426 c427 c428 c429 c430 c431 c432 c433 c434 c435 c436 c437 c438 c439 c440 c441 c442 c443 c444 c445 c446 c447 c448 c449 c450 c451 c452 c453 c454 c455 c456 c457 c458 c459 c460 c461 c462 c463 c464 c465 c466 c467 c468 c469 c470 c471 c472 c473 c474 c475 c476 c477 c478 c479 c480 c481 c482 c483 c484 c485 c486 c487 c488 c489 c490 c491 c492 c493 c494 c495 c496 c497 c498 c499 c500 c501 c502 c503 c504 c505 c506 c507 c508 c509 c510 c511 c512 c513 c514 c515 c516 c517 c518 c519 c520 c521 c522 c523 c524 c525 c526 c527 c528 c529 c530 c531 c532 c533 c534 c535 c536 c537 c538 c539 c540 c541 c542 c543 c544 c545 c546 c547 c548 c549 c550 c551 c552 c553 c554 c555 c556 c557 c558 c559 c560 c561 c562 c563 c564 c565 c566 c567 c568 c569 c570 c571 c572 c573 c574 c575 c576 c577 c578 c579 c580 c581 c582 c583 c584 c585 c586 c587 c588 c589 c590 c591 c592 c593 c594 c595 c596 c597 c598 c599 c600 c601 c602 c603 c604 c605 c606 c607 c608 c609 c610 c611 c612 c613 c614 c615 c616 c617 c618 c619 c620 c621 c622 c623 c624 c625 c626 c627 c628 c629 c630 c631 c632 c633 c634 c635 c636 c637 c638 c639 c640 c641 c642 c643 c644 c645 c646 c647 c648 c649 c650 c651 c652 c653 c654 c655 c656 c657 c658 c659 c660 c661 c662 c663 c664 c665 c666 c667 c668 c669 c670 c671 c672 c673 c674 c675 c676 c677 c678 c679 c680 c681 c682 c683 c684 c685 c686 c687 c688 c689 c690 c691 c692 c693 c694 c695 c696 c697 c698 c699 c700 c701 c702 c703 c704 c705 c706 c707 c708 c709 c710 c711 c712 c713 c714 c715 c716 c717 c718 c719 c720 c721 c722 c723 c724 c725 c726 c727 c728 c729 c730 c731 c732 c733 c734 c735 c736 c737 c738 c739 c740 c741 c742 c743 c744 c745 c746 c747 c748 c749 c750 c751 c752 c753 c754 c755 c756 c757 c758 c759 c760 c761 c762 c763 c764 c765 c766 c767 c768 c769 c770 c771 c772 c773 c774 c775 c776 c777 c778 c779 c780 c781 c782 c783 c784 c785 c786 c787 c788 c789 c790 c791 c792 c793 c794 c795 c796 c797 c798 c799 c800 c801 c802 c803 c804 c805 c806 c807 c808 c809 c810 c811 c812 c813 c814 c815 c816 c817 c818 c819 c820 c821 c822 c823 c824 c825 c826 c827 c828 c829 c830 c831 c832 c833 c834 c835 c836 c837 c838 c839 c840 c841 c842 c843 c844 c845 c846 c847 c848 c849 c850 c851 c852 c853 c854 c855 c856 c857 c858 c859 c860 c861 c862 c863 c864 c865 c866 c867 c868 c869 c870 c871 c872 c873 c874 c875 c876 c877 c878 c879 c880 c881 c882 c883 c884 c885 c886 c887 c888 c889 c890 c891 c892 c893 c894 c895 c896 c897 c898 c899 c900 c901 c902 c903 c904 c905 c906 c907 c908 c909 c910 c911 c912 c913 c914 c915 c916 c917 c918 c919 c920 c921 c922 c923 c924 c925 c926 c927 c928 c929 c930 c931 c932 c933 c934 c935 c936 c937 c938 c939 c940 c941 c942 c943 c944 c945 c946 c947 c948 c949 c950 c951 c952 c953 c954 c955 c956 c957 c958 c959 c960 c961 c962 c963 c964 c965 c966 c967 c968 c969 c970 c971 c972 c973 c974 c975 c976 c977 c978 c979 c980 c981 c982 c983 c984 c985 c986 c987 c988 c989 c990 c991 c992 c993 c994 c995 c996 c997 c998 c999 c1000 c1001 c1002 c1003 c1004 c1005 c1006 c1007 c1008 c1009 c1010 c1011 c1012 c1013 c1014 c1015 c1016 c1017 c1018 c1019 c1020 c1021 c1022 c1023 ))
+;;* lmx 330 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_1 domain (process (fork)))
+;;* lme
+
+;;* lmx 330 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_2 domain (process (fork)))
+;;* lme
+
+;;* lmx 330 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_3 domain (process (fork)))
+;;* lme
+
+;;* lmx 331 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_4 domain (process (fork)))
+;;* lme
+
+;;* lmx 331 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_5 domain (process (fork)))
+;;* lme
+
+;;* lmx 331 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_6 domain (process (fork)))
+;;* lme
+
+;;* lmx 332 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_7 domain (process (fork)))
+;;* lme
+
+;;* lmx 332 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_8 domain (process (fork)))
+;;* lme
+
+;;* lmx 332 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_9 domain (process (fork)))
+;;* lme
+
+;;* lmx 333 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_10 domain (process (fork)))
+;;* lme
+
+;;* lmx 333 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_11 domain (process (fork)))
+;;* lme
+
+;;* lmx 333 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_12 domain (process (fork)))
+;;* lme
+
+;;* lmx 334 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_13 domain (process (fork)))
+;;* lme
+
+;;* lmx 334 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_14 domain (process (fork)))
+;;* lme
+
+;;* lmx 334 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_15 domain (process (fork)))
+;;* lme
+
+;;* lmx 335 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_16 domain (process (fork)))
+;;* lme
+
+;;* lmx 335 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_17 domain (process (fork)))
+;;* lme
+
+;;* lmx 335 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_18 domain (process (fork)))
+;;* lme
+
+;;* lmx 336 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_19 domain (process (fork)))
+;;* lme
+
+;;* lmx 336 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_20 domain (process (fork)))
+;;* lme
+
+;;* lmx 336 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_21 domain (process (fork)))
+;;* lme
+
+;;* lmx 337 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_22 domain (process (fork)))
+;;* lme
+
+;;* lmx 337 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_23 domain (process (fork)))
+;;* lme
+
+;;* lmx 337 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_24 domain (process (fork)))
+;;* lme
+
+;;* lmx 338 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_25 domain (process (fork)))
+;;* lme
+
+;;* lmx 338 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_26 domain (process (fork)))
+;;* lme
+
+;;* lmx 338 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_27 domain (process (fork)))
+;;* lme
+
+;;* lmx 339 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_28 domain (process (fork)))
+;;* lme
+
+;;* lmx 339 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_29 domain (process (fork)))
+;;* lme
+
+;;* lmx 339 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_30 domain (process (fork)))
+;;* lme
+
+;;* lmx 340 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_31 domain (process (fork)))
+;;* lme
+
+;;* lmx 340 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_32 domain (process (fork)))
+;;* lme
+
+;;* lmx 340 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_33 domain (process (fork)))
+;;* lme
+
+;;* lmx 341 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_34 domain (process (fork)))
+;;* lme
+
+;;* lmx 341 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_35 domain (process (fork)))
+;;* lme
+
+;;* lmx 341 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_36 domain (process (fork)))
+;;* lme
+
+;;* lmx 342 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_37 domain (process (fork)))
+;;* lme
+
+;;* lmx 342 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_38 domain (process (fork)))
+;;* lme
+
+;;* lmx 342 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_39 domain (process (fork)))
+;;* lme
+
+;;* lmx 343 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_40 domain (process (fork)))
+;;* lme
+
+;;* lmx 343 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_41 domain (process (fork)))
+;;* lme
+
+;;* lmx 343 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_42 domain (process (fork)))
+;;* lme
+
+;;* lmx 344 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_43 domain (process (fork)))
+;;* lme
+
+;;* lmx 344 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_44 domain (process (fork)))
+;;* lme
+
+;;* lmx 344 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_45 domain (process (fork)))
+;;* lme
+
+;;* lmx 345 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_46 domain (process (fork)))
+;;* lme
+
+;;* lmx 345 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_47 domain (process (fork)))
+;;* lme
+
+;;* lmx 345 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_48 domain (process (fork)))
+;;* lme
+
+;;* lmx 346 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_49 domain (process (fork)))
+;;* lme
+
+;;* lmx 346 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_50 domain (process (fork)))
+;;* lme
+
+;;* lmx 346 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_51 domain (process (fork)))
+;;* lme
+
+;;* lmx 347 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_52 domain (process (fork)))
+;;* lme
+
+;;* lmx 347 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_53 domain (process (fork)))
+;;* lme
+
+;;* lmx 347 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_54 domain (process (fork)))
+;;* lme
+
+;;* lmx 348 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_55 domain (process (fork)))
+;;* lme
+
+;;* lmx 348 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_56 domain (process (fork)))
+;;* lme
+
+;;* lmx 348 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_57 domain (process (fork)))
+;;* lme
+
+;;* lmx 349 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_58 domain (process (fork)))
+;;* lme
+
+;;* lmx 349 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_59 domain (process (fork)))
+;;* lme
+
+;;* lmx 349 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_60 domain (process (fork)))
+;;* lme
+
+;;* lmx 350 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_61 domain (process (fork)))
+;;* lme
+
+;;* lmx 350 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_62 domain (process (fork)))
+;;* lme
+
+;;* lmx 350 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_63 domain (process (fork)))
+;;* lme
+
+;;* lmx 351 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_64 domain (process (fork)))
+;;* lme
+
+;;* lmx 351 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_65 domain (process (fork)))
+;;* lme
+
+;;* lmx 351 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_66 domain (process (fork)))
+;;* lme
+
+;;* lmx 352 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_67 domain (process (fork)))
+;;* lme
+
+;;* lmx 352 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_68 domain (process (fork)))
+;;* lme
+
+;;* lmx 352 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_69 domain (process (fork)))
+;;* lme
+
+;;* lmx 353 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_70 domain (process (fork)))
+;;* lme
+
+;;* lmx 353 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_71 domain (process (fork)))
+;;* lme
+
+;;* lmx 353 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_72 domain (process (fork)))
+;;* lme
+
+;;* lmx 354 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_73 domain (process (fork)))
+;;* lme
+
+;;* lmx 354 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_74 domain (process (fork)))
+;;* lme
+
+;;* lmx 354 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_75 domain (process (fork)))
+;;* lme
+
+;;* lmx 355 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_76 domain (process (fork)))
+;;* lme
+
+;;* lmx 355 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_77 domain (process (fork)))
+;;* lme
+
+;;* lmx 355 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_78 domain (process (fork)))
+;;* lme
+
+;;* lmx 356 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_79 domain (process (fork)))
+;;* lme
+
+;;* lmx 356 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_80 domain (process (fork)))
+;;* lme
+
+;;* lmx 356 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_81 domain (process (fork)))
+;;* lme
+
+;;* lmx 357 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_82 domain (process (fork)))
+;;* lme
+
+;;* lmx 357 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_83 domain (process (fork)))
+;;* lme
+
+;;* lmx 357 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_84 domain (process (fork)))
+;;* lme
+
+;;* lmx 358 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_85 domain (process (fork)))
+;;* lme
+
+;;* lmx 358 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_86 domain (process (fork)))
+;;* lme
+
+;;* lmx 358 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_87 domain (process (fork)))
+;;* lme
+
+;;* lmx 359 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_88 domain (process (fork)))
+;;* lme
+
+;;* lmx 359 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_89 domain (process (fork)))
+;;* lme
+
+;;* lmx 359 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_90 domain (process (fork)))
+;;* lme
+
+;;* lmx 360 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_91 domain (process (fork)))
+;;* lme
+
+;;* lmx 360 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_92 domain (process (fork)))
+;;* lme
+
+;;* lmx 360 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_93 domain (process (fork)))
+;;* lme
+
+;;* lmx 361 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_94 domain (process (fork)))
+;;* lme
+
+;;* lmx 361 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_95 domain (process (fork)))
+;;* lme
+
+;;* lmx 361 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_96 domain (process (fork)))
+;;* lme
+
+;;* lmx 362 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_97 domain (process (fork)))
+;;* lme
+
+;;* lmx 362 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_98 domain (process (fork)))
+;;* lme
+
+;;* lmx 362 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_99 domain (process (fork)))
+;;* lme
+
+;;* lmx 363 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_100 domain (process (fork)))
+;;* lme
+
+;;* lmx 363 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_101 domain (process (fork)))
+;;* lme
+
+;;* lmx 363 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_102 domain (process (fork)))
+;;* lme
+
+;;* lmx 364 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_103 domain (process (fork)))
+;;* lme
+
+;;* lmx 364 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_104 domain (process (fork)))
+;;* lme
+
+;;* lmx 364 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_105 domain (process (fork)))
+;;* lme
+
+;;* lmx 365 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_106 domain (process (fork)))
+;;* lme
+
+;;* lmx 365 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_107 domain (process (fork)))
+;;* lme
+
+;;* lmx 365 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_108 domain (process (fork)))
+;;* lme
+
+;;* lmx 366 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_109 domain (process (fork)))
+;;* lme
+
+;;* lmx 366 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_110 domain (process (fork)))
+;;* lme
+
+;;* lmx 366 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_111 domain (process (fork)))
+;;* lme
+
+;;* lmx 367 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_112 domain (process (fork)))
+;;* lme
+
+;;* lmx 367 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_113 domain (process (fork)))
+;;* lme
+
+;;* lmx 367 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_114 domain (process (fork)))
+;;* lme
+
+;;* lmx 368 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_115 domain (process (fork)))
+;;* lme
+
+;;* lmx 368 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_116 domain (process (fork)))
+;;* lme
+
+;;* lmx 368 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_117 domain (process (fork)))
+;;* lme
+
+;;* lmx 369 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_118 domain (process (fork)))
+;;* lme
+
+;;* lmx 369 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_119 domain (process (fork)))
+;;* lme
+
+;;* lmx 369 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_120 domain (process (fork)))
+;;* lme
+
+;;* lmx 370 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_121 domain (process (fork)))
+;;* lme
+
+;;* lmx 370 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_122 domain (process (fork)))
+;;* lme
+
+;;* lmx 370 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_123 domain (process (fork)))
+;;* lme
+
+;;* lmx 371 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_124 domain (process (fork)))
+;;* lme
+
+;;* lmx 371 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_125 domain (process (fork)))
+;;* lme
+
+;;* lmx 371 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_126 domain (process (fork)))
+;;* lme
+
+;;* lmx 372 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_127 domain (process (fork)))
+;;* lme
+
+;;* lmx 372 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_128 domain (process (fork)))
+;;* lme
+
+;;* lmx 372 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_129 domain (process (fork)))
+;;* lme
+
+;;* lmx 373 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_130 domain (process (fork)))
+;;* lme
+
+;;* lmx 373 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_131 domain (process (fork)))
+;;* lme
+
+;;* lmx 373 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_132 domain (process (fork)))
+;;* lme
+
+;;* lmx 374 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_133 domain (process (fork)))
+;;* lme
+
+;;* lmx 374 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_134 domain (process (fork)))
+;;* lme
+
+;;* lmx 374 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_135 domain (process (fork)))
+;;* lme
+
+;;* lmx 375 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_136 domain (process (fork)))
+;;* lme
+
+;;* lmx 375 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_137 domain (process (fork)))
+;;* lme
+
+;;* lmx 375 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_138 domain (process (fork)))
+;;* lme
+
+;;* lmx 376 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_139 domain (process (fork)))
+;;* lme
+
+;;* lmx 376 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_140 domain (process (fork)))
+;;* lme
+
+;;* lmx 376 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_141 domain (process (fork)))
+;;* lme
+
+;;* lmx 377 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_142 domain (process (fork)))
+;;* lme
+
+;;* lmx 377 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_143 domain (process (fork)))
+;;* lme
+
+;;* lmx 377 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_144 domain (process (fork)))
+;;* lme
+
+;;* lmx 378 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_145 domain (process (fork)))
+;;* lme
+
+;;* lmx 378 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_146 domain (process (fork)))
+;;* lme
+
+;;* lmx 378 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_147 domain (process (fork)))
+;;* lme
+
+;;* lmx 379 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_148 domain (process (fork)))
+;;* lme
+
+;;* lmx 379 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_149 domain (process (fork)))
+;;* lme
+
+;;* lmx 379 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_150 domain (process (fork)))
+;;* lme
+
+;;* lmx 380 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_151 domain (process (fork)))
+;;* lme
+
+;;* lmx 380 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_152 domain (process (fork)))
+;;* lme
+
+;;* lmx 380 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_153 domain (process (fork)))
+;;* lme
+
+;;* lmx 381 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_154 domain (process (fork)))
+;;* lme
+
+;;* lmx 381 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_155 domain (process (fork)))
+;;* lme
+
+;;* lmx 381 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_156 domain (process (fork)))
+;;* lme
+
+;;* lmx 382 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_157 domain (process (fork)))
+;;* lme
+
+;;* lmx 382 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_158 domain (process (fork)))
+;;* lme
+
+;;* lmx 382 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_159 domain (process (fork)))
+;;* lme
+
+;;* lmx 383 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_160 domain (process (fork)))
+;;* lme
+
+;;* lmx 383 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_161 domain (process (fork)))
+;;* lme
+
+;;* lmx 383 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_162 domain (process (fork)))
+;;* lme
+
+;;* lmx 384 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_163 domain (process (fork)))
+;;* lme
+
+;;* lmx 384 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_164 domain (process (fork)))
+;;* lme
+
+;;* lmx 384 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_165 domain (process (fork)))
+;;* lme
+
+;;* lmx 385 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_166 domain (process (fork)))
+;;* lme
+
+;;* lmx 385 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_167 domain (process (fork)))
+;;* lme
+
+;;* lmx 385 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_168 domain (process (fork)))
+;;* lme
+
+;;* lmx 386 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_169 domain (process (fork)))
+;;* lme
+
+;;* lmx 386 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_170 domain (process (fork)))
+;;* lme
+
+;;* lmx 386 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_171 domain (process (fork)))
+;;* lme
+
+;;* lmx 387 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_172 domain (process (fork)))
+;;* lme
+
+;;* lmx 387 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_173 domain (process (fork)))
+;;* lme
+
+;;* lmx 387 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_174 domain (process (fork)))
+;;* lme
+
+;;* lmx 388 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_175 domain (process (fork)))
+;;* lme
+
+;;* lmx 388 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_176 domain (process (fork)))
+;;* lme
+
+;;* lmx 388 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_177 domain (process (fork)))
+;;* lme
+
+;;* lmx 389 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_178 domain (process (fork)))
+;;* lme
+
+;;* lmx 389 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_179 domain (process (fork)))
+;;* lme
+
+;;* lmx 389 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_180 domain (process (fork)))
+;;* lme
+
+;;* lmx 390 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_181 domain (process (fork)))
+;;* lme
+
+;;* lmx 390 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_182 domain (process (fork)))
+;;* lme
+
+;;* lmx 390 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_183 domain (process (fork)))
+;;* lme
+
+;;* lmx 391 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_184 domain (process (fork)))
+;;* lme
+
+;;* lmx 391 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_185 domain (process (fork)))
+;;* lme
+
+;;* lmx 391 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_186 domain (process (fork)))
+;;* lme
+
+;;* lmx 392 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_187 domain (process (fork)))
+;;* lme
+
+;;* lmx 392 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_188 domain (process (fork)))
+;;* lme
+
+;;* lmx 392 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_189 domain (process (fork)))
+;;* lme
+
+;;* lmx 393 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_190 domain (process (fork)))
+;;* lme
+
+;;* lmx 393 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_191 domain (process (fork)))
+;;* lme
+
+;;* lmx 393 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_192 domain (process (fork)))
+;;* lme
+
+;;* lmx 394 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_193 domain (process (fork)))
+;;* lme
+
+;;* lmx 394 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_194 domain (process (fork)))
+;;* lme
+
+;;* lmx 394 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_195 domain (process (fork)))
+;;* lme
+
+;;* lmx 395 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_196 domain (process (fork)))
+;;* lme
+
+;;* lmx 395 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_197 domain (process (fork)))
+;;* lme
+
+;;* lmx 395 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_198 domain (process (fork)))
+;;* lme
+
+;;* lmx 398 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_199 domain (process (fork)))
+;;* lme
+
+;;* lmx 398 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_200 domain (process (fork)))
+;;* lme
+
+;;* lmx 398 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_201 domain (process (fork)))
+;;* lme
+
+;;* lmx 399 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_202 domain (process (fork)))
+;;* lme
+
+;;* lmx 399 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_203 domain (process (fork)))
+;;* lme
+
+;;* lmx 399 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_204 domain (process (fork)))
+;;* lme
+
+;;* lmx 400 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_205 domain (process (fork)))
+;;* lme
+
+;;* lmx 400 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_206 domain (process (fork)))
+;;* lme
+
+;;* lmx 400 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_207 domain (process (fork)))
+;;* lme
+
+;;* lmx 401 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_208 domain (process (fork)))
+;;* lme
+
+;;* lmx 401 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_209 domain (process (fork)))
+;;* lme
+
+;;* lmx 401 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_210 domain (process (fork)))
+;;* lme
+
+;;* lmx 402 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_211 domain (process (fork)))
+;;* lme
+
+;;* lmx 402 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_212 domain (process (fork)))
+;;* lme
+
+;;* lmx 402 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_213 domain (process (fork)))
+;;* lme
+
+;;* lmx 403 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_214 domain (process (fork)))
+;;* lme
+
+;;* lmx 403 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_215 domain (process (fork)))
+;;* lme
+
+;;* lmx 403 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_216 domain (process (fork)))
+;;* lme
+
+;;* lmx 404 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_217 domain (process (fork)))
+;;* lme
+
+;;* lmx 404 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_218 domain (process (fork)))
+;;* lme
+
+;;* lmx 404 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_219 domain (process (fork)))
+;;* lme
+
+;;* lmx 405 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_220 domain (process (fork)))
+;;* lme
+
+;;* lmx 405 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_221 domain (process (fork)))
+;;* lme
+
+;;* lmx 405 system/sepolicy/public/attributes
+
+(neverallow base_typeattr_222 domain (process (fork)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/adbd.te
+
+(neverallow base_typeattr_223 adbd (process (transition)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/public/adbd.te
+
+(neverallow base_typeattr_224 adbd (process (dyntransition)))
+;;* lme
+
+(allow adbd shell_test_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow adbd shell_test_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow adbd shell_test_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow apexd servicemanager (binder (call transfer)))
+(allow servicemanager apexd (binder (call transfer)))
+(allow servicemanager apexd (dir (search)))
+(allow servicemanager apexd (file (read open)))
+(allow servicemanager apexd (process (getattr)))
+(allow apexd apex_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/apexd.te
+
+(neverallow base_typeattr_225 apex_service (service_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/apexd.te
+
+(neverallow base_typeattr_226 apex_service (service_manager (find)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/public/apexd.te
+
+(neverallow base_typeattr_227 apexd (binder (call)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/public/apexd.te
+
+(neverallow domain apexd (process (ptrace)))
+;;* lme
+
+;;* lmx 20 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_228 self (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow base_typeattr_228 self (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+(neverallow base_typeattr_228 self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow base_typeattr_228 self (cap2_userns (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+;;* lme
+
+;;* lmx 23 system/sepolicy/public/app.te
+
+(neverallow appdomain dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/public/app.te
+
+(neverallow isolated_app graphics_device (chr_file (read write)))
+(neverallow shell graphics_device (chr_file (read write)))
+(neverallow untrusted_app graphics_device (chr_file (read write)))
+;;* lme
+
+;;* lmx 29 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_229 nfc_device (chr_file (read write)))
+;;* lme
+
+;;* lmx 31 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_230 hci_attach_dev (chr_file (read write)))
+;;* lme
+
+;;* lmx 32 system/sepolicy/public/app.te
+
+(neverallow appdomain tee_device (chr_file (read write)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_231 domain (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow base_typeattr_231 domain (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow base_typeattr_231 domain (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow base_typeattr_231 domain (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow base_typeattr_231 domain (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 48 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_231 domain (netlink_kobject_uevent_socket (write append)))
+;;* lme
+
+;;* lmx 51 system/sepolicy/public/app.te
+
+(neverallow appdomain socket_device (sock_file (write)))
+;;* lme
+
+;;* lmx 54 system/sepolicy/public/app.te
+
+(neverallow appdomain adbd_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 55 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_232 rild_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 58 system/sepolicy/public/app.te
+
+(neverallow appdomain base_typeattr_233 (process (ptrace)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_234 appdomain (process (ptrace)))
+;;* lme
+
+;;* lmx 76 system/sepolicy/public/app.te
+
+(neverallow appdomain base_typeattr_233 (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 77 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_235 base_typeattr_233 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 86 system/sepolicy/public/app.te
+
+(neverallow appdomain base_typeattr_236 (process (sigkill sigstop signal)))
+;;* lme
+
+;;* lmx 90 system/sepolicy/public/app.te
+
+(neverallow appdomain rootfs (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain rootfs (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain rootfs (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain rootfs (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain rootfs (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain rootfs (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain rootfs (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 94 system/sepolicy/public/app.te
+
+(neverallow appdomain system_file_type (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_file_type (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_file_type (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_file_type (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_file_type (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_file_type (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_file_type (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 98 system/sepolicy/public/app.te
+
+(neverallow appdomain exec_type (file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 105 system/sepolicy/public/app.te
+
+(neverallow appdomain system_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain system_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 109 system/sepolicy/public/app.te
+
+(neverallow appdomain drm_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain drm_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain drm_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain drm_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain drm_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain drm_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain drm_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 112 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_237 apk_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 115 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_237 apk_private_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 118 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_237 apk_private_tmp_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_tmp_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_tmp_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_tmp_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_tmp_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_tmp_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_private_tmp_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 121 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_235 shell_data_file (file (create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_235 shell_data_file (dir (create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_235 shell_data_file (lnk_file (create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_235 shell_data_file (chr_file (create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_235 shell_data_file (blk_file (create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_235 shell_data_file (sock_file (create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_235 shell_data_file (fifo_file (create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 124 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_230 bluetooth_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_230 bluetooth_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_230 bluetooth_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_230 bluetooth_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_230 bluetooth_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_230 bluetooth_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_230 bluetooth_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 125 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_238 credstore_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_238 credstore_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow base_typeattr_238 credstore_data_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_238 credstore_data_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_238 credstore_data_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_238 credstore_data_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_238 credstore_data_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 128 system/sepolicy/public/app.te
+
+(neverallow appdomain keystore_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain keystore_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain keystore_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain keystore_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain keystore_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain keystore_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain keystore_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 131 system/sepolicy/public/app.te
+
+(neverallow appdomain systemkeys_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain systemkeys_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain systemkeys_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain systemkeys_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain systemkeys_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain systemkeys_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain systemkeys_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 134 system/sepolicy/public/app.te
+
+(neverallow appdomain wifi_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain wifi_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain wifi_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain wifi_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain wifi_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain wifi_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain wifi_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 137 system/sepolicy/public/app.te
+
+(neverallow appdomain dhcp_data_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain dhcp_data_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain dhcp_data_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain dhcp_data_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain dhcp_data_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain dhcp_data_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow appdomain dhcp_data_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 142 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_237 apk_tmp_file (file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_tmp_file (dir (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_tmp_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_tmp_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_tmp_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_tmp_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename)))
+(neverallow base_typeattr_237 apk_tmp_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 145 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_239 apk_tmp_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_239 apk_tmp_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow base_typeattr_239 apk_tmp_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_239 apk_tmp_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_239 apk_tmp_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_239 apk_tmp_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_239 apk_tmp_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_239 apk_private_tmp_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_239 apk_private_tmp_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow base_typeattr_239 apk_private_tmp_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_239 apk_private_tmp_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_239 apk_private_tmp_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_239 apk_private_tmp_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_239 apk_private_tmp_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 147 system/sepolicy/public/app.te
+
+(neverallow untrusted_app_all apk_tmp_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow untrusted_app_all apk_tmp_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_all apk_tmp_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_all apk_tmp_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_all apk_tmp_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_all apk_tmp_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_all apk_private_tmp_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow untrusted_app_all apk_private_tmp_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_all apk_private_tmp_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_all apk_private_tmp_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_all apk_private_tmp_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_all apk_private_tmp_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_tmp_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow isolated_app_all apk_tmp_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_tmp_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all apk_tmp_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_tmp_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_tmp_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_private_tmp_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow isolated_app_all apk_private_tmp_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_private_tmp_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all apk_private_tmp_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_private_tmp_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all apk_private_tmp_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 148 system/sepolicy/public/app.te
+
+(neverallow untrusted_app_all apk_tmp_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_all apk_private_tmp_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all apk_tmp_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all apk_private_tmp_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 151 system/sepolicy/public/app.te
+
+(neverallow appdomain efs_file (file (write)))
+(neverallow appdomain efs_file (dir (write)))
+(neverallow appdomain efs_file (lnk_file (write)))
+(neverallow appdomain efs_file (chr_file (write)))
+(neverallow appdomain efs_file (blk_file (write)))
+(neverallow appdomain efs_file (sock_file (write)))
+(neverallow appdomain efs_file (fifo_file (write)))
+;;* lme
+
+;;* lmx 152 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_235 efs_file (file (read)))
+(neverallow base_typeattr_235 efs_file (dir (read)))
+(neverallow base_typeattr_235 efs_file (lnk_file (read)))
+(neverallow base_typeattr_235 efs_file (chr_file (read)))
+(neverallow base_typeattr_235 efs_file (blk_file (read)))
+(neverallow base_typeattr_235 efs_file (sock_file (read)))
+(neverallow base_typeattr_235 efs_file (fifo_file (read)))
+;;* lme
+
+;;* lmx 156 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_240 sysfs (file (write)))
+(neverallow base_typeattr_240 sysfs (dir (write)))
+(neverallow base_typeattr_240 sysfs (lnk_file (write)))
+(neverallow base_typeattr_240 sysfs (chr_file (write)))
+(neverallow base_typeattr_240 sysfs (blk_file (write)))
+(neverallow base_typeattr_240 sysfs (sock_file (write)))
+(neverallow base_typeattr_240 sysfs (fifo_file (write)))
+;;* lme
+
+;;* lmx 158 system/sepolicy/public/app.te
+
+(neverallow appdomain proc (file (write)))
+(neverallow appdomain proc (dir (write)))
+(neverallow appdomain proc (lnk_file (write)))
+(neverallow appdomain proc (chr_file (write)))
+(neverallow appdomain proc (blk_file (write)))
+(neverallow appdomain proc (sock_file (write)))
+(neverallow appdomain proc (fifo_file (write)))
+;;* lme
+
+;;* lmx 161 system/sepolicy/public/app.te
+
+(neverallow appdomain kernel (system (syslog_read syslog_mod syslog_console)))
+;;* lme
+
+;;* lmx 164 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_235 base_typeattr_224 (security (compute_av check_context)))
+;;* lme
+
+;;* lmx 165 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_235 base_typeattr_224 (netlink_selinux_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 169 system/sepolicy/public/app.te
+
+(neverallow appdomain fs_type (filesystem (mount remount unmount relabelfrom relabelto associate quotamod quotaget watch)))
+;;* lme
+
+;;* lmx 180 system/sepolicy/public/app.te
+
+(neverallow appdomain dev_type (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow appdomain rootfs (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow appdomain tmpfs (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow appdomain system_file (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow appdomain apk_data_file (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow appdomain cache_file (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow appdomain cache_recovery_file (lnk_file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 186 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_235 input_device (chr_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 194 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_241 bluetooth_a2dp_offload_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow base_typeattr_241 bluetooth_audio_hal_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow base_typeattr_241 bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow base_typeattr_241 exported_bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+;;* lme
+
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app nfc_prop (property_service (set)))
+(allow system_app nfc_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app radio_control_prop (property_service (set)))
+(allow system_app radio_control_prop (file (read getattr map open)))
+;;* lmx 202 system/sepolicy/public/app.te
+
+(neverallow appdomain proc_uid_time_in_state (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 205 system/sepolicy/public/app.te
+
+(neverallow appdomain proc_uid_concurrent_active_time (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 208 system/sepolicy/public/app.te
+
+(neverallow appdomain proc_uid_concurrent_policy_time (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 211 system/sepolicy/public/app.te
+
+(neverallow appdomain proc_uid_cpupower (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 216 system/sepolicy/public/app.te
+
+(neverallow base_typeattr_235 proc_net_tcp_udp (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 224 system/sepolicy/public/app.te
+
+(neverallow appdomain system_bootstrap_lib_file (file (read write append map execute open execute_no_trans)))
+;;* lme
+
+;;* lmx 226 system/sepolicy/public/app.te
+
+(neverallow appdomain system_bootstrap_lib_file (dir (read getattr open search)))
+;;* lme
+
+(allow audioserver hal_audio_server (process (signal)))
+(allow audioserver sensorservice_service (service_manager (find)))
+(allow audioserver system_server (unix_stream_socket (read write)))
+(allow bootanim servicemanager (binder (call transfer)))
+(allow servicemanager bootanim (binder (call transfer)))
+(allow servicemanager bootanim (dir (search)))
+(allow servicemanager bootanim (file (read open)))
+(allow servicemanager bootanim (process (getattr)))
+(allow bootanim surfaceflinger (binder (call transfer)))
+(allow surfaceflinger bootanim (binder (transfer)))
+(allow bootanim surfaceflinger (fd (use)))
+(allow bootanim audioserver (binder (call transfer)))
+(allow audioserver bootanim (binder (transfer)))
+(allow bootanim audioserver (fd (use)))
+(allow bootanim hwservicemanager (binder (call transfer)))
+(allow hwservicemanager bootanim (binder (call transfer)))
+(allow hwservicemanager bootanim (dir (search)))
+(allow hwservicemanager bootanim (file (read map open)))
+(allow hwservicemanager bootanim (process (getattr)))
+(allow bootanim gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bootanim gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow bootanim sysfs_gpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootanim oemfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow bootanim bootanim_oem_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootanim audio_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow bootanim audio_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bootanim audioserver_service (service_manager (find)))
+(allow bootanim surfaceflinger_service (service_manager (find)))
+(allow bootanim surfaceflinger (unix_stream_socket (read write)))
+(allow bootanim ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bootanim dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootanim hal_graphics_allocator (fd (use)))
+(allow bootanim hal_graphics_composer (fd (use)))
+(allow bootanim proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootanim system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow bootstat runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootstat bootstat_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow bootstat bootstat_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow bootstat metadata_file (dir (search)))
+(allow bootstat metadata_bootstat_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow bootstat metadata_bootstat_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow bootstat pstorefs (dir (search)))
+(allow bootstat pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootstat kernel (system (syslog_read)))
+(allow bootstat logcat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow bootstat logdr_socket (sock_file (write)))
+(allow bootstat logd (unix_stream_socket (connectto)))
+(allow bootstat statsdw_socket (sock_file (write)))
+(allow bootstat statsd (unix_dgram_socket (sendto)))
+;;* lmx 32 system/sepolicy/public/bootstat.te
+
+(neverallow base_typeattr_242 system_boot_reason_prop (property_service (set)))
+;;* lme
+
+(allow init pdx_bufferhub_client_endpoint_socket_type (unix_stream_socket (create bind)))
+(allow bufferhubd pdx_bufferhub_client_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown)))
+(allow bufferhubd self (process (setsockcreate)))
+(allow bufferhubd pdx_bufferhub_client_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+;;* lmx 8 system/sepolicy/public/bufferhubd.te
+
+(neverallow base_typeattr_243 pdx_bufferhub_client_endpoint_socket_type (unix_stream_socket (listen accept)))
+;;* lme
+
+(allow bufferhubd pdx_performance_client_endpoint_dir_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow bufferhubd pdx_performance_client_endpoint_socket_type (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bufferhubd pdx_performance_client_endpoint_socket_type (unix_stream_socket (read write shutdown connectto)))
+(allow bufferhubd pdx_performance_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow bufferhubd pdx_performance_client_server_type (fd (use)))
+(allow pdx_performance_client_server_type bufferhubd (fd (use)))
+(allow bufferhubd gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bufferhubd ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow bufferhubd hal_omx_server (fd (use)))
+(allow bufferhubd hal_codec2_server (fd (use)))
+(allow camera_service_server fwk_camera_hwservice (hwservice_manager (add find)))
+(allow camera_service_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 1 system/sepolicy/public/camera_service_server.te
+
+(neverallow base_typeattr_244 fwk_camera_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow cameraserver servicemanager (binder (call transfer)))
+(allow servicemanager cameraserver (binder (call transfer)))
+(allow servicemanager cameraserver (dir (search)))
+(allow servicemanager cameraserver (file (read open)))
+(allow servicemanager cameraserver (process (getattr)))
+(allow cameraserver binderservicedomain (binder (call transfer)))
+(allow binderservicedomain cameraserver (binder (transfer)))
+(allow cameraserver binderservicedomain (fd (use)))
+(allow cameraserver appdomain (binder (call transfer)))
+(allow appdomain cameraserver (binder (transfer)))
+(allow cameraserver appdomain (fd (use)))
+(allow cameraserver ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow cameraserver dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow cameraserver hal_graphics_composer (fd (use)))
+(allow cameraserver cameraserver_service (service_manager (add find)))
+;;* lmx 21 system/sepolicy/public/cameraserver.te
+
+(neverallow base_typeattr_245 cameraserver_service (service_manager (add)))
+;;* lme
+
+(allow cameraserver fwk_camera_service (service_manager (add find)))
+;;* lmx 22 system/sepolicy/public/cameraserver.te
+
+(neverallow base_typeattr_245 fwk_camera_service (service_manager (add)))
+;;* lme
+
+(allow cameraserver fwk_camera_hwservice (hwservice_manager (add find)))
+(allow cameraserver hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 23 system/sepolicy/public/cameraserver.te
+
+(neverallow base_typeattr_245 fwk_camera_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow cameraserver activity_service (service_manager (find)))
+(allow cameraserver appops_service (service_manager (find)))
+(allow cameraserver audioserver_service (service_manager (find)))
+(allow cameraserver batterystats_service (service_manager (find)))
+(allow cameraserver cameraproxy_service (service_manager (find)))
+(allow cameraserver mediaserver_service (service_manager (find)))
+(allow cameraserver package_native_service (service_manager (find)))
+(allow cameraserver permission_checker_service (service_manager (find)))
+(allow cameraserver processinfo_service (service_manager (find)))
+(allow cameraserver scheduling_policy_service (service_manager (find)))
+(allow cameraserver sensor_privacy_service (service_manager (find)))
+(allow cameraserver surfaceflinger_service (service_manager (find)))
+(allow cameraserver hidl_token_hwservice (hwservice_manager (find)))
+(allow cameraserver hal_camera_service (service_manager (find)))
+(allow cameraserver virtual_camera_service (service_manager (find)))
+(allow cameraserver surfaceflinger (unix_stream_socket (read write)))
+;;* lmx 51 system/sepolicy/public/cameraserver.te
+
+(neverallow cameraserver fs_type (file (execute_no_trans)))
+(neverallow cameraserver file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 63 system/sepolicy/public/cameraserver.te
+
+(neverallow cameraserver domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow cameraserver domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 64 system/sepolicy/public/cameraserver.te
+
+(neverallow cameraserver domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+(allow cameraserver adbd (fd (use)))
+(allow cameraserver adbd (unix_stream_socket (read write)))
+(allow cameraserver shell (fd (use)))
+(allow cameraserver shell (unix_stream_socket (read write)))
+(allow cameraserver shell (fifo_file (read write)))
+(allow cameraserver mediametrics_service (service_manager (find)))
+(allow charger_type kmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow charger_type rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type self (capability (sys_boot sys_tty_config)))
+(allow charger_type self (cap_userns (sys_boot sys_tty_config)))
+(allow charger_type sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow charger_type self (capability2 (block_suspend)))
+(allow charger_type self (cap2_userns (block_suspend)))
+(allow charger_type system_suspend_server (binder (call transfer)))
+(allow system_suspend_server charger_type (binder (transfer)))
+(allow charger_type system_suspend_server (fd (use)))
+(allow charger_type system_suspend_hwservice (hwservice_manager (find)))
+(allow charger_type hwservicemanager (binder (call transfer)))
+(allow hwservicemanager charger_type (binder (call transfer)))
+(allow hwservicemanager charger_type (dir (search)))
+(allow hwservicemanager charger_type (file (read map open)))
+(allow hwservicemanager charger_type (process (getattr)))
+(allow charger_type hwservicemanager_prop (file (read getattr map open)))
+(allow charger_type hidl_manager_hwservice (hwservice_manager (find)))
+(allow charger_type hal_system_suspend_service (service_manager (find)))
+(allow charger_type servicemanager (binder (call transfer)))
+(allow servicemanager charger_type (binder (call transfer)))
+(allow servicemanager charger_type (dir (search)))
+(allow servicemanager charger_type (file (read open)))
+(allow servicemanager charger_type (process (getattr)))
+(allow charger_type self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow charger_type sysfs_power (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow charger_type sysfs_batteryinfo (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type sysfs_batteryinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type sysfs_batteryinfo (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type pstorefs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type graphics_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type graphics_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow charger_type input_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow charger_type input_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow charger_type tty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow charger_type proc_sysrq (file (ioctl read write getattr lock append map open watch watch_reads)))
+(dontaudit crash_dump self (capability (sys_ptrace)))
+(dontaudit crash_dump self (cap_userns (sys_ptrace)))
+(allow crash_dump domain (fd (use)))
+(allow crash_dump domain (fifo_file (read write)))
+(allow crash_dump domain (fifo_file (append)))
+(allow crash_dump domain (process (getattr)))
+(allow crash_dump domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow crash_dump domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump exec_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump dalvikcache_data_file (dir (getattr search)))
+(allow crash_dump dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump apex_module_data_file (dir (getattr search)))
+(allow crash_dump proc_uptime (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow crash_dump apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump vendor_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow crash_dump same_process_hal_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow crash_dump vendor_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump vendor_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump same_process_hal_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump same_process_hal_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump shell_test_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow crash_dump shell_test_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump shell_test_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump tombstoned_crash_socket (sock_file (write)))
+(allow crash_dump tombstoned (unix_stream_socket (connectto)))
+(allow crash_dump system_ndebug_socket (sock_file (write)))
+(allow crash_dump system_server (unix_stream_socket (connectto)))
+(allow crash_dump anr_data_file (file (getattr append)))
+(allow crash_dump tombstone_data_file (file (getattr append)))
+(allow crash_dump logdr_socket (sock_file (write)))
+(allow crash_dump logd (unix_stream_socket (connectto)))
+(dontaudit crash_dump core_data_file_type (dir (search)))
+(dontaudit crash_dump vendor_file_type (dir (search)))
+(dontaudit crash_dump system_data_file (file (read)))
+(dontaudit crash_dump system_data_file (lnk_file (read)))
+(dontaudit crash_dump property_type (file (read)))
+;;* lmx 80 system/sepolicy/public/crash_dump.te
+
+(neverallow domain crash_dump_exec (file (execute_no_trans)))
+;;* lme
+
+(allow credstore servicemanager (binder (call transfer)))
+(allow servicemanager credstore (binder (call transfer)))
+(allow servicemanager credstore (dir (search)))
+(allow servicemanager credstore (file (read open)))
+(allow servicemanager credstore (process (getattr)))
+(allow credstore system_server (binder (call transfer)))
+(allow system_server credstore (binder (transfer)))
+(allow credstore system_server (fd (use)))
+(allow credstore credstore_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow credstore credstore_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow credstore credstore_service (service_manager (add find)))
+;;* lmx 12 system/sepolicy/public/credstore.te
+
+(neverallow base_typeattr_246 credstore_service (service_manager (add)))
+;;* lme
+
+(allow credstore sec_key_att_app_id_provider_service (service_manager (find)))
+(allow credstore dropbox_service (service_manager (find)))
+(allow credstore authorization_service (service_manager (find)))
+(allow credstore keystore (keystore2 (get_auth_token)))
+(allow credstore cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow credstore cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow credstore cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow credstore cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow credstore cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow credstore cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dhcp cgroup (dir (write create add_name)))
+(allow dhcp cgroup_v2 (dir (write create add_name)))
+(allow dhcp self (capability (setgid setuid net_bind_service net_admin net_raw)))
+(allow dhcp self (cap_userns (setgid setuid net_bind_service net_admin net_raw)))
+(allow dhcp self (packet_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow dhcp self (netlink_route_socket (nlmsg_write)))
+(allow dhcp shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dhcp system_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dhcp toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dhcp proc_net_type (file (write)))
+(allow dhcp dhcp_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow dhcp dhcp_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow dhcp netd (fd (use)))
+(allow dhcp netd (fifo_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow dhcp netd (udp_socket (read write)))
+(allow dhcp netd (unix_stream_socket (read write)))
+(allow dhcp netd (unix_dgram_socket (read write)))
+(allow dhcp netd (netlink_route_socket (read write)))
+(allow dhcp netd (netlink_nflog_socket (read write)))
+(allow dhcp netd (netlink_kobject_uevent_socket (read write)))
+(allow display_service_server fwk_display_hwservice (hwservice_manager (add find)))
+(allow display_service_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 1 system/sepolicy/public/display_service_server.te
+
+(neverallow base_typeattr_247 fwk_display_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allowx dnsmasq self (ioctl udp_socket (0x6900 0x6902)))
+(allowx dnsmasq self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx dnsmasq self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow dnsmasq self (capability (dac_override dac_read_search)))
+(allow dnsmasq self (cap_userns (dac_override dac_read_search)))
+(allow dnsmasq self (capability (setgid setuid net_bind_service net_admin net_raw)))
+(allow dnsmasq self (cap_userns (setgid setuid net_bind_service net_admin net_raw)))
+(allow dnsmasq dhcp_data_file (dir (write lock open add_name remove_name search)))
+(allow dnsmasq dhcp_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow dnsmasq netd (fd (use)))
+(allow dnsmasq netd (fifo_file (read write getattr)))
+(allow dnsmasq netd (netlink_kobject_uevent_socket (read write)))
+(allow dnsmasq netd (netlink_nflog_socket (read write)))
+(allow dnsmasq netd (netlink_route_socket (read write)))
+(allow dnsmasq netd (unix_stream_socket (read write getattr)))
+(allow dnsmasq netd (unix_dgram_socket (read write)))
+(allow dnsmasq netd (udp_socket (read write)))
+(allow domain init (process (sigchld)))
+(allow domain self (process (fork sigchld sigkill sigstop signull signal getsched setsched getsession getpgid setpgid getcap setcap getattr setrlimit)))
+(allow domain self (fd (use)))
+(allow domain proc (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain proc_net_type (dir (search)))
+(allow domain self (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain self (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain self (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain self (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain self (fifo_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain self (unix_dgram_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown sendto)))
+(allow domain self (unix_stream_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown connectto)))
+(allow domain init (fd (use)))
+(allow domain device_config_aconfig_flags_prop (file (read getattr map open)))
+(allow domain tmpfs (dir (getattr search)))
+(allow domain rootfs (dir (search)))
+(allow domain rootfs (lnk_file (read getattr)))
+(allow domain device (dir (search)))
+(allow domain dev_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain devpts (dir (search)))
+(allow domain dmabuf_heap_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain socket_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain owntty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain null_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain zero_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain ashmem_device (chr_file (ioctl read write getattr lock append map)))
+(allow domain ashmem_libcutils_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow base_typeattr_248 binder_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow base_typeattr_248 servicemanager_prop (file (read getattr map open)))
+(allowx domain binder_device (ioctl chr_file (0x6201 0x6203 (range 0x6205 0x6209) (range 0x620b 0x620d) (range 0x6210 0x6211))))
+(allow domain binderfs (dir (getattr search)))
+(allow domain binderfs_logs_proc (dir (search)))
+(allow domain binderfs_features (dir (search)))
+(allow domain binderfs_features (file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_249 hwbinder_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain ptmx_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain random_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow domain proc_random (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain proc_random (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain properties_device (dir (getattr search)))
+(allow domain properties_serial (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain property_info (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain log_property_type (file (read getattr map open)))
+(dontaudit domain property_type (file (audit_access)))
+(allow domain property_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain init (key (search)))
+(allow domain vold (key (search)))
+(allow domain logdw_socket (sock_file (write)))
+(allow domain logd (unix_dgram_socket (sendto)))
+(allow domain pmsg_device (chr_file (write lock append map open)))
+(allow domain system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain system_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain system_seccomp_policy_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain system_security_cacerts_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain system_file (lnk_file (read getattr)))
+(allow domain system_seccomp_policy_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain system_security_cacerts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain system_group_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain system_passwd_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain system_linker_exec (file (read getattr map execute open)))
+(allow domain system_linker_config_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain system_lib_file (file (read getattr map execute open)))
+(allow domain system_linker_exec (lnk_file (read getattr open)))
+(allow domain system_lib_file (lnk_file (read getattr open)))
+(allow domain system_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain system_file (file (read getattr map execute open)))
+(allow coredomain system_file (file (read getattr map execute open)))
+(allow domain vendor_hal_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain same_process_hal_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_250 same_process_hal_file (file (read getattr map execute open)))
+(allow domain vndk_sp_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain vndk_sp_file (file (read getattr map execute open)))
+(allow domain vendor_configs_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain vendor_configs_file (file (read getattr map open)))
+(allow domain vendor_file_type (lnk_file (read getattr open)))
+(allow domain vendor_file (dir (getattr search)))
+(allow base_typeattr_250 vendor_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_250 vendor_file_type (file (read getattr map execute open)))
+(allow base_typeattr_250 vendor_file_type (lnk_file (read getattr)))
+(allow domain sysfs (lnk_file (read getattr)))
+(allow domain system_zoneinfo_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain system_zoneinfo_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain sysfs_devices_system_cpu (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain sysfs_devices_system_cpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain sysfs_devices_system_cpu (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain sysfs_usb (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain sysfs_usb (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain sysfs_usb (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain sysfs_transparent_hugepage (dir (search)))
+(allow domain sysfs_transparent_hugepage (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain system_data_file (dir (getattr)))
+(allow coredomain system_data_file (dir (getattr)))
+(allow domain system_data_root_file (dir (getattr search)))
+(allow domain system_data_file (dir (search)))
+(allow appdomain system_userdir_file (dir (getattr search)))
+(allow coredomain system_userdir_file (dir (getattr search)))
+(allow appdomain media_userdir_file (dir (search)))
+(allow coredomain media_userdir_file (dir (search)))
+(allow domain vendor_userdir_file (dir (getattr search)))
+(allow domain vendor_data_file (dir (getattr search)))
+(allow domain proc (lnk_file (read getattr)))
+(allow domain proc_cpuinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain dev_cpu_variant (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain proc_perf (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain selinuxfs (dir (search)))
+(allow domain selinuxfs (file (getattr)))
+(allow domain sysfs (dir (search)))
+(allow domain selinuxfs (filesystem (getattr)))
+(allow domain debugfs (dir (search)))
+(allow domain debugfs_tracing (dir (search)))
+(allow domain debugfs_tracing_debug (dir (search)))
+(allow domain debugfs_trace_marker (file (write lock append map open)))
+(allow domain self (lockdown (integrity confidentiality)))
+(allow domain fs_type (filesystem (getattr)))
+(allow domain fs_type (dir (getattr)))
+(allowx domain domain (ioctl tcp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx domain domain (ioctl udp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx domain domain (ioctl rawip_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx domain domain (ioctl icmp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx domain domain (ioctl tcp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx domain domain (ioctl udp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx domain domain (ioctl rawip_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx domain domain (ioctl icmp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx domain domain (ioctl tcp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx domain domain (ioctl udp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx domain domain (ioctl rawip_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx domain domain (ioctl icmp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx domain domain (ioctl unix_stream_socket (0x5401 0x5411 (range 0x5413 0x5414) 0x541b (range 0x5450 0x5451))))
+(allowx domain domain (ioctl unix_dgram_socket (0x5401 0x5411 (range 0x5413 0x5414) 0x541b (range 0x5450 0x5451))))
+(allowx domain pdx_channel_socket_type (ioctl unix_stream_socket (0x5401 0x5411 (range 0x5413 0x5414) 0x541b (range 0x5450 0x5451))))
+(allowx domain pdx_channel_socket_type (ioctl unix_dgram_socket (0x5401 0x5411 (range 0x5413 0x5414) 0x541b (range 0x5450 0x5451))))
+(allowx domain devpts (ioctl chr_file ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx domain dev_type (ioctl file ((range 0x5450 0x5451))))
+(allowx domain dev_type (ioctl dir ((range 0x5450 0x5451))))
+(allowx domain dev_type (ioctl lnk_file ((range 0x5450 0x5451))))
+(allowx domain dev_type (ioctl blk_file ((range 0x5450 0x5451))))
+(allowx domain dev_type (ioctl sock_file ((range 0x5450 0x5451))))
+(allowx domain dev_type (ioctl fifo_file ((range 0x5450 0x5451))))
+(allowx domain domain (ioctl file ((range 0x5450 0x5451))))
+(allowx domain domain (ioctl dir ((range 0x5450 0x5451))))
+(allowx domain domain (ioctl lnk_file ((range 0x5450 0x5451))))
+(allowx domain domain (ioctl blk_file ((range 0x5450 0x5451))))
+(allowx domain domain (ioctl sock_file ((range 0x5450 0x5451))))
+(allowx domain domain (ioctl fifo_file ((range 0x5450 0x5451))))
+(allowx domain fs_type (ioctl file ((range 0x5450 0x5451))))
+(allowx domain fs_type (ioctl dir ((range 0x5450 0x5451))))
+(allowx domain fs_type (ioctl lnk_file ((range 0x5450 0x5451))))
+(allowx domain fs_type (ioctl blk_file ((range 0x5450 0x5451))))
+(allowx domain fs_type (ioctl sock_file ((range 0x5450 0x5451))))
+(allowx domain fs_type (ioctl fifo_file ((range 0x5450 0x5451))))
+(allowx domain file_type (ioctl file ((range 0x5450 0x5451))))
+(allowx domain file_type (ioctl dir ((range 0x5450 0x5451))))
+(allowx domain file_type (ioctl lnk_file ((range 0x5450 0x5451))))
+(allowx domain file_type (ioctl blk_file ((range 0x5450 0x5451))))
+(allowx domain file_type (ioctl sock_file ((range 0x5450 0x5451))))
+(allowx domain file_type (ioctl fifo_file ((range 0x5450 0x5451))))
+(allowx domain tun_device (ioctl chr_file ((range 0x5450 0x5451))))
+(allowx domain fs_type (ioctl file (0x5401)))
+(allowx domain file_type (ioctl file (0x5401)))
+(allowx domain domain (ioctl fifo_file (0x5401)))
+(allowx domain dev_type (ioctl blk_file (0x1268 0x1272)))
+(allowx domain file_type (ioctl file ((range 0xf501 0xf502) 0xf505 (range 0xf50c 0xf50e))))
+(allowx domain sdcard_type (ioctl file ((range 0xf501 0xf502) 0xf505 (range 0xf50c 0xf50e))))
+(allow base_typeattr_251 hwservice_manager_type (hwservice_manager (add find)))
+(allow base_typeattr_251 vndservice_manager_type (service_manager (add find)))
+(allow domain apex_mnt_dir (dir (getattr search)))
+(allow domain apex_mnt_dir (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain device_config_media_native_prop (file (read getattr map open)))
+(allow domain aconfig_storage_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 357 system/sepolicy/public/domain.te
+
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl file (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl dir (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl lnk_file (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl blk_file (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl sock_file (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl fifo_file (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl tcp_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl udp_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl rawip_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl packet_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl key_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl unix_stream_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl unix_dgram_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_route_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_tcpdiag_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_nflog_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_xfrm_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_selinux_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_audit_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_dnrt_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_kobject_uevent_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl appletalk_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl tun_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_iscsi_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_fib_lookup_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_connector_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_netfilter_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_generic_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_scsitransport_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_rdma_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netlink_crypto_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl sctp_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl icmp_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl ax25_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl ipx_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl netrom_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl atmpvc_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl x25_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl rose_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl decnet_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl atmsvc_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl rds_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl irda_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl pppox_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl llc_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl can_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl tipc_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl bluetooth_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl iucv_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl rxrpc_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl isdn_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl phonet_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl ieee802154_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl caif_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl alg_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl nfc_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl vsock_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl kcm_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl qipcrtr_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl smc_socket (0x0)))
+(neverallowx base_typeattr_224 base_typeattr_224 (ioctl xdp_socket (0x0)))
+;;* lme
+
+;;* lmx 361 system/sepolicy/public/domain.te
+
+(neverallowx domain domain (ioctl socket (0x8905)))
+(neverallowx domain domain (ioctl tcp_socket (0x8905)))
+(neverallowx domain domain (ioctl udp_socket (0x8905)))
+(neverallowx domain domain (ioctl rawip_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_socket (0x8905)))
+(neverallowx domain domain (ioctl packet_socket (0x8905)))
+(neverallowx domain domain (ioctl key_socket (0x8905)))
+(neverallowx domain domain (ioctl unix_stream_socket (0x8905)))
+(neverallowx domain domain (ioctl unix_dgram_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_route_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_tcpdiag_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_nflog_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_xfrm_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_selinux_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_audit_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_dnrt_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_kobject_uevent_socket (0x8905)))
+(neverallowx domain domain (ioctl appletalk_socket (0x8905)))
+(neverallowx domain domain (ioctl tun_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_iscsi_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_fib_lookup_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_connector_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_netfilter_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_generic_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_scsitransport_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_rdma_socket (0x8905)))
+(neverallowx domain domain (ioctl netlink_crypto_socket (0x8905)))
+(neverallowx domain domain (ioctl sctp_socket (0x8905)))
+(neverallowx domain domain (ioctl icmp_socket (0x8905)))
+(neverallowx domain domain (ioctl ax25_socket (0x8905)))
+(neverallowx domain domain (ioctl ipx_socket (0x8905)))
+(neverallowx domain domain (ioctl netrom_socket (0x8905)))
+(neverallowx domain domain (ioctl atmpvc_socket (0x8905)))
+(neverallowx domain domain (ioctl x25_socket (0x8905)))
+(neverallowx domain domain (ioctl rose_socket (0x8905)))
+(neverallowx domain domain (ioctl decnet_socket (0x8905)))
+(neverallowx domain domain (ioctl atmsvc_socket (0x8905)))
+(neverallowx domain domain (ioctl rds_socket (0x8905)))
+(neverallowx domain domain (ioctl irda_socket (0x8905)))
+(neverallowx domain domain (ioctl pppox_socket (0x8905)))
+(neverallowx domain domain (ioctl llc_socket (0x8905)))
+(neverallowx domain domain (ioctl can_socket (0x8905)))
+(neverallowx domain domain (ioctl tipc_socket (0x8905)))
+(neverallowx domain domain (ioctl bluetooth_socket (0x8905)))
+(neverallowx domain domain (ioctl iucv_socket (0x8905)))
+(neverallowx domain domain (ioctl rxrpc_socket (0x8905)))
+(neverallowx domain domain (ioctl isdn_socket (0x8905)))
+(neverallowx domain domain (ioctl phonet_socket (0x8905)))
+(neverallowx domain domain (ioctl ieee802154_socket (0x8905)))
+(neverallowx domain domain (ioctl caif_socket (0x8905)))
+(neverallowx domain domain (ioctl alg_socket (0x8905)))
+(neverallowx domain domain (ioctl nfc_socket (0x8905)))
+(neverallowx domain domain (ioctl vsock_socket (0x8905)))
+(neverallowx domain domain (ioctl kcm_socket (0x8905)))
+(neverallowx domain domain (ioctl qipcrtr_socket (0x8905)))
+(neverallowx domain domain (ioctl smc_socket (0x8905)))
+(neverallowx domain domain (ioctl xdp_socket (0x8905)))
+;;* lme
+
+;;* lmx 366 system/sepolicy/public/domain.te
+
+(neverallowx base_typeattr_224 devpts (ioctl chr_file (0x5412)))
+;;* lme
+
+;;* lmx 369 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_252 unlabeled (file (create)))
+(neverallow base_typeattr_252 unlabeled (dir (create)))
+(neverallow base_typeattr_252 unlabeled (lnk_file (create)))
+(neverallow base_typeattr_252 unlabeled (chr_file (create)))
+(neverallow base_typeattr_252 unlabeled (blk_file (create)))
+(neverallow base_typeattr_252 unlabeled (sock_file (create)))
+(neverallow base_typeattr_252 unlabeled (fifo_file (create)))
+;;* lme
+
+;;* lmx 378 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_253 self (capability (mknod)))
+(neverallow base_typeattr_253 self (cap_userns (mknod)))
+;;* lme
+
+;;* lmx 381 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 self (memprotect (mmap_zero)))
+;;* lme
+
+;;* lmx 384 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 self (capability2 (mac_override)))
+(neverallow base_typeattr_224 self (cap2_userns (mac_override)))
+;;* lme
+
+;;* lmx 389 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 self (capability2 (mac_admin)))
+(neverallow base_typeattr_224 self (cap2_userns (mac_admin)))
+;;* lme
+
+;;* lmx 393 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 kernel (security (load_policy)))
+;;* lme
+
+;;* lmx 399 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 kernel (security (setenforce)))
+;;* lme
+
+;;* lmx 400 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_254 kernel (security (setcheckreqprot)))
+;;* lme
+
+;;* lmx 403 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 kernel (security (setbool)))
+;;* lme
+
+;;* lmx 408 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 kernel (security (setsecparam)))
+;;* lme
+
+;;* lmx 416 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_255 hw_random_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 422 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_256 keychord_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 425 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_257 (file (entrypoint)))
+;;* lme
+
+(dontaudit domain postinstall_mnt_dir (dir (audit_access)))
+;;* lmx 437 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_256 port_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 438 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 port_device (chr_file (ioctl read write lock relabelfrom append map link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 441 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 usermodehelper (file (write append)))
+;;* lme
+
+;;* lmx 442 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_258 sysfs_usermodehelper (file (write append)))
+;;* lme
+
+;;* lmx 443 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_259 proc_security (file (read write append open)))
+;;* lme
+
+;;* lmx 447 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 init (binder (impersonate call set_context_mgr transfer)))
+;;* lme
+
+;;* lmx 448 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 vendor_init (binder (impersonate call set_context_mgr transfer)))
+;;* lme
+
+;;* lmx 451 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_260 binderfs_logs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_260 binderfs_logs_proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 452 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_261 binderfs_logs_stats (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 456 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_262 block_device (blk_file (read write open)))
+;;* lme
+
+;;* lmx 461 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_224 (chr_file (rename)))
+(neverallow base_typeattr_224 base_typeattr_224 (blk_file (rename)))
+;;* lme
+
+;;* lmx 465 system/sepolicy/public/domain.te
+
+(neverallow domain device (chr_file (read write open)))
+;;* lme
+
+;;* lmx 468 system/sepolicy/public/domain.te
+
+(neverallow domain cache_file (file (execute)))
+(neverallow domain cache_backup_file (file (execute)))
+(neverallow domain cache_private_backup_file (file (execute)))
+(neverallow domain cache_recovery_file (file (execute)))
+;;* lme
+
+;;* lmx 471 system/sepolicy/public/domain.te
+
+(neverallow domain nativetest_data_file (file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain nativetest_data_file (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain nativetest_data_file (chr_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain nativetest_data_file (blk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain nativetest_data_file (sock_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain nativetest_data_file (fifo_file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 472 system/sepolicy/public/domain.te
+
+(neverallow domain nativetest_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 473 system/sepolicy/public/domain.te
+
+(neverallow domain nativetest_data_file (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 475 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_263 shell_test_data_file (file (write create setattr relabelfrom append unlink link rename)))
+(neverallow base_typeattr_263 shell_test_data_file (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow base_typeattr_263 shell_test_data_file (chr_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow base_typeattr_263 shell_test_data_file (blk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow base_typeattr_263 shell_test_data_file (sock_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow base_typeattr_263 shell_test_data_file (fifo_file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 476 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_263 shell_test_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 477 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_264 shell_test_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 478 system/sepolicy/public/domain.te
+
+(neverallow heapprofd shell_test_data_file (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 479 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_263 shell_test_data_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 482 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 property_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 483 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 property_data_file (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 484 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 property_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 485 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 properties_device (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 486 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 properties_serial (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 500 system/sepolicy/public/domain.te
+
+(neverallow domain exec_type (file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain exec_type (dir (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain exec_type (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain exec_type (chr_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain exec_type (blk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain exec_type (sock_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain exec_type (fifo_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain system_file_type (file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain system_file_type (dir (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain system_file_type (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain system_file_type (chr_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain system_file_type (blk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain system_file_type (sock_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain system_file_type (fifo_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain vendor_file_type (file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain vendor_file_type (dir (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain vendor_file_type (lnk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain vendor_file_type (chr_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain vendor_file_type (blk_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain vendor_file_type (sock_file (write create setattr relabelfrom append unlink link rename)))
+(neverallow domain vendor_file_type (fifo_file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 502 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_254 exec_type (file (relabelto)))
+(neverallow base_typeattr_254 exec_type (dir (relabelto)))
+(neverallow base_typeattr_254 exec_type (lnk_file (relabelto)))
+(neverallow base_typeattr_254 exec_type (chr_file (relabelto)))
+(neverallow base_typeattr_254 exec_type (blk_file (relabelto)))
+(neverallow base_typeattr_254 exec_type (sock_file (relabelto)))
+(neverallow base_typeattr_254 exec_type (fifo_file (relabelto)))
+(neverallow base_typeattr_254 system_file_type (file (relabelto)))
+(neverallow base_typeattr_254 system_file_type (dir (relabelto)))
+(neverallow base_typeattr_254 system_file_type (lnk_file (relabelto)))
+(neverallow base_typeattr_254 system_file_type (chr_file (relabelto)))
+(neverallow base_typeattr_254 system_file_type (blk_file (relabelto)))
+(neverallow base_typeattr_254 system_file_type (sock_file (relabelto)))
+(neverallow base_typeattr_254 system_file_type (fifo_file (relabelto)))
+(neverallow base_typeattr_254 vendor_file_type (file (relabelto)))
+(neverallow base_typeattr_254 vendor_file_type (dir (relabelto)))
+(neverallow base_typeattr_254 vendor_file_type (lnk_file (relabelto)))
+(neverallow base_typeattr_254 vendor_file_type (chr_file (relabelto)))
+(neverallow base_typeattr_254 vendor_file_type (blk_file (relabelto)))
+(neverallow base_typeattr_254 vendor_file_type (sock_file (relabelto)))
+(neverallow base_typeattr_254 vendor_file_type (fifo_file (relabelto)))
+;;* lme
+
+;;* lmx 505 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 exec_type (file (mounton)))
+(neverallow base_typeattr_224 exec_type (dir (mounton)))
+(neverallow base_typeattr_224 exec_type (lnk_file (mounton)))
+(neverallow base_typeattr_224 exec_type (chr_file (mounton)))
+(neverallow base_typeattr_224 exec_type (blk_file (mounton)))
+(neverallow base_typeattr_224 exec_type (sock_file (mounton)))
+(neverallow base_typeattr_224 exec_type (fifo_file (mounton)))
+;;* lme
+
+;;* lmx 508 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 rootfs (file (write create setattr relabelto append unlink link rename)))
+;;* lme
+
+;;* lmx 512 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_265 (filesystem (relabelto)))
+;;* lme
+
+;;* lmx 518 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 contextmount_type (file (create setattr relabelfrom relabelto append link rename)))
+(neverallow base_typeattr_224 contextmount_type (dir (create setattr relabelfrom relabelto append link rename)))
+(neverallow base_typeattr_224 contextmount_type (lnk_file (create setattr relabelfrom relabelto append link rename)))
+(neverallow base_typeattr_224 contextmount_type (chr_file (create setattr relabelfrom relabelto append link rename)))
+(neverallow base_typeattr_224 contextmount_type (blk_file (create setattr relabelfrom relabelto append link rename)))
+(neverallow base_typeattr_224 contextmount_type (sock_file (create setattr relabelfrom relabelto append link rename)))
+(neverallow base_typeattr_224 contextmount_type (fifo_file (create setattr relabelfrom relabelto append link rename)))
+;;* lme
+
+;;* lmx 519 system/sepolicy/public/domain.te
+
+(neverallow domain contextmount_type (file (write unlink)))
+(neverallow domain contextmount_type (dir (write unlink)))
+(neverallow domain contextmount_type (lnk_file (write unlink)))
+(neverallow domain contextmount_type (chr_file (write unlink)))
+(neverallow domain contextmount_type (blk_file (write unlink)))
+(neverallow domain contextmount_type (sock_file (write unlink)))
+(neverallow domain contextmount_type (fifo_file (write unlink)))
+;;* lme
+
+;;* lmx 526 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 default_android_service (service_manager (add find list)))
+;;* lme
+
+;;* lmx 527 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 default_android_vndservice (service_manager (add find list)))
+;;* lme
+
+;;* lmx 528 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 default_android_hwservice (hwservice_manager (add find list)))
+;;* lme
+
+;;* lmx 537 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 hidl_base_hwservice (hwservice_manager (find)))
+;;* lme
+
+;;* lmx 541 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_259 mmc_prop (property_service (set)))
+;;* lme
+
+;;* lmx 542 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_259 vndk_prop (property_service (set)))
+;;* lme
+
+;;* lmx 544 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 mmc_prop (property_service (set)))
+;;* lme
+
+;;* lmx 544 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_259 exported_default_prop (property_service (set)))
+;;* lme
+
+;;* lmx 544 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 exported_secure_prop (property_service (set)))
+;;* lme
+
+;;* lmx 544 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_259 vendor_default_prop (property_service (set)))
+;;* lme
+
+;;* lmx 544 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_259 storage_config_prop (property_service (set)))
+;;* lme
+
+;;* lmx 544 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_259 hw_timeout_multiplier_prop (property_service (set)))
+;;* lme
+
+;;* lmx 553 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_266 exported_pm_prop (property_service (set)))
+;;* lme
+
+;;* lmx 553 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_267 exported_pm_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 559 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_260 future_pm_prop (property_service (set)))
+;;* lme
+
+;;* lmx 560 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_260 future_pm_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(dontaudit domain future_pm_prop (file (read)))
+;;* lmx 566 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 aac_drc_prop (property_service (set)))
+;;* lme
+
+;;* lmx 567 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 build_prop (property_service (set)))
+;;* lme
+
+;;* lmx 568 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 userdebug_or_eng_prop (property_service (set)))
+;;* lme
+
+;;* lmx 589 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_268 serialno_prop (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 597 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_269 frp_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 611 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_270 metadata_block_device (blk_file (ioctl read write lock append link rename open)))
+;;* lme
+
+;;* lmx 621 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_271 system_block_device (blk_file (write append)))
+;;* lme
+
+;;* lmx 624 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_272 base_typeattr_224 (binder (set_context_mgr)))
+;;* lme
+
+;;* lmx 626 system/sepolicy/public/domain.te
+
+(neverallow servicemanager hwbinder_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 627 system/sepolicy/public/domain.te
+
+(neverallow servicemanager vndbinder_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 628 system/sepolicy/public/domain.te
+
+(neverallow hwservicemanager binder_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 629 system/sepolicy/public/domain.te
+
+(neverallow hwservicemanager vndbinder_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 630 system/sepolicy/public/domain.te
+
+(neverallow vndservicemanager binder_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 631 system/sepolicy/public/domain.te
+
+(neverallow vndservicemanager hwbinder_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 633 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_273 base_typeattr_274 (service_manager (find)))
+;;* lme
+
+;;* lmx 670 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_275 vndbinder_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lme
+
+;;* lmx 678 system/sepolicy/public/domain.te
+
+(neverallow ueventd vndbinder_device (chr_file (ioctl read write append)))
+;;* lme
+
+;;* lmx 681 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_276 vndservice_manager_type (service_manager (add find list)))
+;;* lme
+
+;;* lmx 688 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_276 vndservicemanager (binder (impersonate call set_context_mgr transfer)))
+;;* lme
+
+;;* lmx 705 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_277 base_typeattr_278 (socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (tcp_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (udp_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (rawip_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (packet_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (key_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (unix_stream_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (unix_dgram_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_route_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_tcpdiag_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_nflog_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_xfrm_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_selinux_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_audit_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_dnrt_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_kobject_uevent_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (appletalk_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (tun_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_iscsi_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_fib_lookup_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_connector_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_netfilter_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_generic_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_scsitransport_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_rdma_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netlink_crypto_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (sctp_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (icmp_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (ax25_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (ipx_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (netrom_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (atmpvc_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (x25_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (rose_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (decnet_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (atmsvc_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (rds_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (irda_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (pppox_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (llc_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (can_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (tipc_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (bluetooth_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (iucv_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (rxrpc_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (isdn_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (phonet_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (ieee802154_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (caif_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (alg_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (nfc_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (vsock_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (kcm_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (qipcrtr_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (smc_socket (connect sendto)))
+(neverallow base_typeattr_277 base_typeattr_278 (xdp_socket (connect sendto)))
+;;* lme
+
+;;* lmx 705 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_277 base_typeattr_278 (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 718 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_279 core_data_file_type (sock_file (create setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_279 coredomain_socket (sock_file (create setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_279 unlabeled (sock_file (create setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 732 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_273 base_typeattr_280 (sock_file (create setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 748 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_281 base_typeattr_282 (sock_file (create setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 772 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_283 base_typeattr_284 (file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_283 base_typeattr_284 (lnk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_283 base_typeattr_284 (chr_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_283 base_typeattr_284 (blk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_283 base_typeattr_284 (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_283 base_typeattr_284 (fifo_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 787 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_283 base_typeattr_285 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 804 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_286 core_data_file_type (file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_286 core_data_file_type (lnk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_286 core_data_file_type (chr_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_286 core_data_file_type (blk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_286 core_data_file_type (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_286 core_data_file_type (fifo_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 804 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_287 base_typeattr_288 (file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_287 base_typeattr_288 (lnk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_287 base_typeattr_288 (chr_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_287 base_typeattr_288 (blk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_287 base_typeattr_288 (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_287 base_typeattr_288 (fifo_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 804 system/sepolicy/public/domain.te
+
+(neverallow vendor_init unencrypted_data_file (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 828 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_286 base_typeattr_289 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 828 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_287 base_typeattr_290 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 828 system/sepolicy/public/domain.te
+
+(neverallow vendor_init unencrypted_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 860 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_291 system_data_file (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 872 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_292 vendor_data_file (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 885 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_293 vendor_data_file (file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_293 vendor_data_file (lnk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_293 vendor_data_file (chr_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_293 vendor_data_file (blk_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_293 vendor_data_file (sock_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_293 vendor_data_file (fifo_file (create setattr lock relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 896 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_294 vendor_shell_exec (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 907 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_295 base_typeattr_296 (file (execute execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 929 system/sepolicy/public/domain.te
+
+(neverallow coredomain base_typeattr_297 (file (entrypoint)))
+;;* lme
+
+;;* lmx 929 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_250 base_typeattr_298 (file (entrypoint)))
+;;* lme
+
+;;* lmx 946 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_299 base_typeattr_300 (file (execute)))
+;;* lme
+
+;;* lmx 965 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_301 base_typeattr_302 (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 976 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_295 base_typeattr_303 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 1013 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_304 zygote (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 1014 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_305 zygote_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 1016 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_306 webview_zygote (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 1017 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_305 webview_zygote (sock_file (write)))
+;;* lme
+
+;;* lmx 1018 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_305 app_zygote (sock_file (write)))
+;;* lme
+
+;;* lmx 1020 system/sepolicy/public/domain.te
+
+(neverallow domain tombstoned_crash_socket (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 1024 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_307 tombstoned_intercept_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 1025 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_307 tombstoned_intercept_socket (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 1028 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_308 heapdump_data_file (file (read)))
+;;* lme
+
+;;* lmx 1046 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_224 (sem (create destroy getattr setattr read write associate unix_read unix_write)))
+(neverallow base_typeattr_224 base_typeattr_224 (msg (send receive)))
+(neverallow base_typeattr_224 base_typeattr_224 (msgq (create destroy getattr setattr read write associate unix_read unix_write enqueue)))
+(neverallow base_typeattr_224 base_typeattr_224 (shm (create destroy getattr setattr read write associate unix_read unix_write lock)))
+;;* lme
+
+;;* lmx 1050 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 dev_type (lnk_file (mounton)))
+(neverallow base_typeattr_224 dev_type (sock_file (mounton)))
+(neverallow base_typeattr_224 dev_type (fifo_file (mounton)))
+(neverallow base_typeattr_224 fs_type (lnk_file (mounton)))
+(neverallow base_typeattr_224 fs_type (sock_file (mounton)))
+(neverallow base_typeattr_224 fs_type (fifo_file (mounton)))
+(neverallow base_typeattr_224 file_type (lnk_file (mounton)))
+(neverallow base_typeattr_224 file_type (sock_file (mounton)))
+(neverallow base_typeattr_224 file_type (fifo_file (mounton)))
+;;* lme
+
+;;* lmx 1055 system/sepolicy/public/domain.te
+
+(neverallow domain su_exec (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 1067 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_309 (file (execmod)))
+;;* lme
+
+;;* lmx 1072 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 self (process (execstack execheap)))
+;;* lme
+
+;;* lmx 1076 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_310 file_type (file (execmod)))
+;;* lme
+
+;;* lmx 1078 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_223 proc (file (mounton)))
+(neverallow base_typeattr_223 proc (dir (mounton)))
+;;* lme
+
+;;* lmx 1079 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_311 proc_type (file (mounton)))
+(neverallow base_typeattr_311 proc_type (dir (mounton)))
+;;* lme
+
+;;* lmx 1087 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_312 domain (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 1106 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_313 system_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 1109 system/sepolicy/public/domain.te
+
+(neverallow installd system_data_file (file (write create setattr relabelto append link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 1122 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_314 shell (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 1129 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_315 base_typeattr_316 (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 1138 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_317 app_data_file (lnk_file (read)))
+(neverallow base_typeattr_317 privapp_data_file (lnk_file (read)))
+;;* lme
+
+;;* lmx 1145 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_318 shell_data_file (lnk_file (read)))
+;;* lme
+
+;;* lmx 1152 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_319 (service_manager (list)))
+;;* lme
+
+;;* lmx 1157 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_320 (hwservice_manager (list)))
+;;* lme
+
+;;* lmx 1176 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 domain (file (execute execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 1182 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_260 debugfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_260 debugfs (lnk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 1185 system/sepolicy/public/domain.te
+
+(neverallow domain debugfs_type (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 1188 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_321 fusectlfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 1197 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_322 profman_exec (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 1203 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 base_typeattr_323 (system (module_load)))
+;;* lme
+
+;;* lmx 1207 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 self (capability (setfcap)))
+(neverallow base_typeattr_224 self (cap_userns (setfcap)))
+;;* lme
+
+;;* lmx 1210 system/sepolicy/public/domain.te
+
+(neverallow domain crash_dump (process (noatsecure)))
+;;* lme
+
+;;* lmx 1214 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_324 coredomain_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 1219 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_224 same_process_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 1230 system/sepolicy/public/domain.te
+
+(neverallow domain proc_type (dir (write create link rename add_name remove_name reparent rmdir)))
+(neverallow domain sysfs_type (dir (write create link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 1233 system/sepolicy/public/domain.te
+
+(neverallow domain cgroup (file (create)))
+;;* lme
+
+;;* lmx 1234 system/sepolicy/public/domain.te
+
+(neverallow domain cgroup_v2 (file (create)))
+;;* lme
+
+(dontaudit domain proc_type (dir (write)))
+(dontaudit domain sysfs_type (dir (write)))
+(dontaudit domain cgroup (file (create)))
+(dontaudit domain cgroup_v2 (file (create)))
+;;* lmx 1257 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_325 mnt_vendor_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 1260 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_326 vendor_public_lib_file (file (execute execute_no_trans)))
+(neverallow base_typeattr_326 vendor_public_framework_file (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 1271 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_250 mnt_product_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 1274 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_327 sysfs_batteryinfo (file (read open)))
+;;* lme
+
+;;* lmx 1297 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_328 hal_codec2_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 1306 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_329 ashmem_device (chr_file (open)))
+;;* lme
+
+;;* lmx 1308 system/sepolicy/public/domain.te
+
+(neverallow base_typeattr_330 debugfs_tracing_printk_formats (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow drmserver servicemanager (binder (call transfer)))
+(allow servicemanager drmserver (binder (call transfer)))
+(allow servicemanager drmserver (dir (search)))
+(allow servicemanager drmserver (file (read open)))
+(allow servicemanager drmserver (process (getattr)))
+(allow drmserver system_server (binder (call transfer)))
+(allow system_server drmserver (binder (transfer)))
+(allow drmserver system_server (fd (use)))
+(allow drmserver appdomain (binder (call transfer)))
+(allow appdomain drmserver (binder (transfer)))
+(allow drmserver appdomain (fd (use)))
+(allow drmserver mediametrics (binder (call transfer)))
+(allow mediametrics drmserver (binder (transfer)))
+(allow drmserver mediametrics (fd (use)))
+(allow drmserver system_server (fd (use)))
+(allow drmserver mediaserver (binder (call transfer)))
+(allow mediaserver drmserver (binder (transfer)))
+(allow drmserver mediaserver (fd (use)))
+(allow drmserver sdcard_type (dir (search)))
+(allow drmserver fuse (dir (search)))
+(allow drmserver drm_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow drmserver drm_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow drmserver app_data_file (file (read write getattr map)))
+(allow drmserver privapp_data_file (file (read write getattr map)))
+(allow drmserver sdcard_type (file (read write getattr map)))
+(allow drmserver fuse (file (read write getattr map)))
+(allow drmserver efs_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow drmserver efs_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver efs_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver apk_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(auditallow drmserver apk_data_file (dir (write add_name)))
+(allow drmserver drmserver_socket (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(auditallow drmserver drmserver_socket (sock_file (create)))
+(allow drmserver apk_data_file (sock_file (unlink)))
+(allow drmserver media_rw_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow drmserver media_rw_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver media_rw_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver apk_data_file (file (read getattr map)))
+(allow drmserver asec_apk_file (file (read getattr map)))
+(allow drmserver ringtone_file (file (read getattr map)))
+(allow drmserver radio_data_file (file (read getattr map)))
+(allow drmserver oemfs (dir (search)))
+(allow drmserver oemfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver vendor_overlay_file (file (read map)))
+(allow drmserver drmserver_service (service_manager (add find)))
+;;* lmx 57 system/sepolicy/public/drmserver.te
+
+(neverallow base_typeattr_331 drmserver_service (service_manager (add)))
+;;* lme
+
+(allow drmserver permission_service (service_manager (find)))
+(allow drmserver mediametrics_service (service_manager (find)))
+(allow drmserver selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow drmserver selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver selinuxfs (file (write lock append map open)))
+(allow drmserver kernel (security (compute_av)))
+(allow drmserver self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow drmserver cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow drmserver cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow drmserver cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow drmserver system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow drmserver system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate servicemanager (binder (call transfer)))
+(allow servicemanager dumpstate (binder (call transfer)))
+(allow servicemanager dumpstate (dir (search)))
+(allow servicemanager dumpstate (file (read open)))
+(allow servicemanager dumpstate (process (getattr)))
+(allow dumpstate sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow dumpstate self (capability2 (block_suspend)))
+(allow dumpstate self (cap2_userns (block_suspend)))
+(allow dumpstate system_suspend_server (binder (call transfer)))
+(allow system_suspend_server dumpstate (binder (transfer)))
+(allow dumpstate system_suspend_server (fd (use)))
+(allow dumpstate system_suspend_hwservice (hwservice_manager (find)))
+(allow dumpstate hwservicemanager (binder (call transfer)))
+(allow hwservicemanager dumpstate (binder (call transfer)))
+(allow hwservicemanager dumpstate (dir (search)))
+(allow hwservicemanager dumpstate (file (read map open)))
+(allow hwservicemanager dumpstate (process (getattr)))
+(allow dumpstate hwservicemanager_prop (file (read getattr map open)))
+(allow dumpstate hidl_manager_hwservice (hwservice_manager (find)))
+(allow dumpstate hal_system_suspend_service (service_manager (find)))
+(allow dumpstate servicemanager (binder (call transfer)))
+(allow servicemanager dumpstate (binder (call transfer)))
+(allow servicemanager dumpstate (dir (search)))
+(allow servicemanager dumpstate (file (read open)))
+(allow servicemanager dumpstate (process (getattr)))
+(allow dumpstate self (capability (setgid setuid sys_resource)))
+(allow dumpstate self (cap_userns (setgid setuid sys_resource)))
+(allow dumpstate domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate self (capability (kill net_admin net_raw)))
+(allow dumpstate self (cap_userns (kill net_admin net_raw)))
+(allow dumpstate system_file (file (execute_no_trans)))
+(allow dumpstate toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dumpstate system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate self (capability (chown dac_override dac_read_search fowner fsetid)))
+(allow dumpstate self (cap_userns (chown dac_override dac_read_search fowner fsetid)))
+(allow dumpstate anr_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow dumpstate anr_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow dumpstate system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate app_data_file (file (append)))
+(allow dumpstate privapp_data_file (file (append)))
+(allow dumpstate self (capability2 (syslog)))
+(allow dumpstate self (cap2_userns (syslog)))
+(allow dumpstate kernel (system (syslog_read)))
+(allow dumpstate pstorefs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate domain (process (getattr)))
+(allow dumpstate appdomain (process (signal)))
+(allow dumpstate app_zygote (process (signal)))
+(allow dumpstate system_server (process (signal)))
+(allow dumpstate zygote (process (signal)))
+(allow dumpstate hal_audio_server (process (signal)))
+(allow dumpstate hal_audiocontrol_server (process (signal)))
+(allow dumpstate hal_bluetooth_server (process (signal)))
+(allow dumpstate hal_broadcastradio_server (process (signal)))
+(allow dumpstate hal_camera_server (process (signal)))
+(allow dumpstate hal_codec2_server (process (signal)))
+(allow dumpstate hal_drm_server (process (signal)))
+(allow dumpstate hal_evs_server (process (signal)))
+(allow dumpstate hal_face_server (process (signal)))
+(allow dumpstate hal_fingerprint_server (process (signal)))
+(allow dumpstate hal_graphics_allocator_server (process (signal)))
+(allow dumpstate hal_graphics_composer_server (process (signal)))
+(allow dumpstate hal_health_server (process (signal)))
+(allow dumpstate hal_input_processor_server (process (signal)))
+(allow dumpstate hal_neuralnetworks_server (process (signal)))
+(allow dumpstate hal_omx_server (process (signal)))
+(allow dumpstate hal_power_server (process (signal)))
+(allow dumpstate hal_power_stats_server (process (signal)))
+(allow dumpstate hal_sensors_server (process (signal)))
+(allow dumpstate hal_thermal_server (process (signal)))
+(allow dumpstate hal_vehicle_server (process (signal)))
+(allow dumpstate hal_vr_server (process (signal)))
+(allow dumpstate system_suspend_server (process (signal)))
+(allow dumpstate audioserver (process (signal)))
+(allow dumpstate cameraserver (process (signal)))
+(allow dumpstate drmserver (process (signal)))
+(allow dumpstate evsmanagerd (process (signal)))
+(allow dumpstate inputflinger (process (signal)))
+(allow dumpstate mediadrmserver (process (signal)))
+(allow dumpstate mediaextractor (process (signal)))
+(allow dumpstate mediametrics (process (signal)))
+(allow dumpstate mediaserver (process (signal)))
+(allow dumpstate mediaswcodec (process (signal)))
+(allow dumpstate sdcardd (process (signal)))
+(allow dumpstate surfaceflinger (process (signal)))
+(allow dumpstate vold (process (signal)))
+(allow dumpstate tombstoned_intercept_socket (sock_file (write)))
+(allow dumpstate tombstoned (unix_stream_socket (connectto)))
+(allow dumpstate sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate sysfs_devices_block (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate sysfs_loop (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate sysfs_usb (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate sysfs_zram (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit dumpstate sysfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate block_device (dir (getattr search)))
+(allow dumpstate rootfs (dir (getattr search)))
+(allow dumpstate selinuxfs (dir (getattr search)))
+(allow dumpstate tmpfs (dir (getattr search)))
+(allow dumpstate metadata_file (dir (getattr search)))
+(allow dumpstate storage_file (dir (getattr search)))
+(allow dumpstate cache_file (dir (getattr search)))
+(allow dumpstate fuse_device (chr_file (getattr)))
+(allow dumpstate dm_device (blk_file (getattr)))
+(allow dumpstate cache_block_device (blk_file (getattr)))
+(allow dumpstate rootfs (lnk_file (read getattr)))
+(allow dumpstate cache_file (lnk_file (read getattr)))
+(allow dumpstate cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate binderservicedomain (binder (call transfer)))
+(allow binderservicedomain dumpstate (binder (transfer)))
+(allow dumpstate binderservicedomain (fd (use)))
+(allow dumpstate appdomain (binder (call transfer)))
+(allow dumpstate artd (binder (call transfer)))
+(allow dumpstate netd (binder (call transfer)))
+(allow dumpstate wificond (binder (call transfer)))
+(allow appdomain dumpstate (binder (transfer)))
+(allow artd dumpstate (binder (transfer)))
+(allow netd dumpstate (binder (transfer)))
+(allow wificond dumpstate (binder (transfer)))
+(allow dumpstate appdomain (fd (use)))
+(allow dumpstate artd (fd (use)))
+(allow dumpstate netd (fd (use)))
+(allow dumpstate wificond (fd (use)))
+(allow hal_audio_server dumpstate (fifo_file (write)))
+(allow hal_audio_server dumpstate (fd (use)))
+(allow hal_audiocontrol_server dumpstate (fifo_file (write)))
+(allow hal_audiocontrol_server dumpstate (fd (use)))
+(allow hal_authgraph_server dumpstate (fifo_file (write)))
+(allow hal_authgraph_server dumpstate (fd (use)))
+(allow hal_authsecret_server dumpstate (fifo_file (write)))
+(allow hal_authsecret_server dumpstate (fd (use)))
+(allow hal_bluetooth_server dumpstate (fifo_file (write)))
+(allow hal_bluetooth_server dumpstate (fd (use)))
+(allow hal_broadcastradio_server dumpstate (fifo_file (write)))
+(allow hal_broadcastradio_server dumpstate (fd (use)))
+(allow hal_camera_server dumpstate (fifo_file (write)))
+(allow hal_camera_server dumpstate (fd (use)))
+(allow hal_codec2_server dumpstate (fifo_file (write)))
+(allow hal_codec2_server dumpstate (fd (use)))
+(allow hal_contexthub_server dumpstate (fifo_file (write)))
+(allow hal_contexthub_server dumpstate (fd (use)))
+(allow hal_drm_server dumpstate (fifo_file (write)))
+(allow hal_drm_server dumpstate (fd (use)))
+(allow hal_dumpstate_server dumpstate (fifo_file (write)))
+(allow hal_dumpstate_server dumpstate (fd (use)))
+(allow hal_evs_server dumpstate (fifo_file (write)))
+(allow hal_evs_server dumpstate (fd (use)))
+(allow hal_face_server dumpstate (fifo_file (write)))
+(allow hal_face_server dumpstate (fd (use)))
+(allow hal_fingerprint_server dumpstate (fifo_file (write)))
+(allow hal_fingerprint_server dumpstate (fd (use)))
+(allow hal_gnss_server dumpstate (fifo_file (write)))
+(allow hal_gnss_server dumpstate (fd (use)))
+(allow hal_graphics_allocator_server dumpstate (fifo_file (write)))
+(allow hal_graphics_allocator_server dumpstate (fd (use)))
+(allow hal_graphics_composer_server dumpstate (fifo_file (write)))
+(allow hal_graphics_composer_server dumpstate (fd (use)))
+(allow hal_health_server dumpstate (fifo_file (write)))
+(allow hal_health_server dumpstate (fd (use)))
+(allow hal_identity_server dumpstate (fifo_file (write)))
+(allow hal_identity_server dumpstate (fd (use)))
+(allow hal_input_processor_server dumpstate (fifo_file (write)))
+(allow hal_input_processor_server dumpstate (fd (use)))
+(allow hal_keymint_server dumpstate (fifo_file (write)))
+(allow hal_keymint_server dumpstate (fd (use)))
+(allow hal_light_server dumpstate (fifo_file (write)))
+(allow hal_light_server dumpstate (fd (use)))
+(allow hal_memtrack_server dumpstate (fifo_file (write)))
+(allow hal_memtrack_server dumpstate (fd (use)))
+(allow hal_neuralnetworks_server dumpstate (fifo_file (write)))
+(allow hal_neuralnetworks_server dumpstate (fd (use)))
+(allow hal_nfc_server dumpstate (fifo_file (write)))
+(allow hal_nfc_server dumpstate (fd (use)))
+(allow hal_oemlock_server dumpstate (fifo_file (write)))
+(allow hal_oemlock_server dumpstate (fd (use)))
+(allow hal_power_server dumpstate (fifo_file (write)))
+(allow hal_power_server dumpstate (fd (use)))
+(allow hal_power_stats_server dumpstate (fifo_file (write)))
+(allow hal_power_stats_server dumpstate (fd (use)))
+(allow hal_rebootescrow_server dumpstate (fifo_file (write)))
+(allow hal_rebootescrow_server dumpstate (fd (use)))
+(allow hal_secretkeeper_server dumpstate (fifo_file (write)))
+(allow hal_secretkeeper_server dumpstate (fd (use)))
+(allow hal_sensors_server dumpstate (fifo_file (write)))
+(allow hal_sensors_server dumpstate (fd (use)))
+(allow hal_thermal_server dumpstate (fifo_file (write)))
+(allow hal_thermal_server dumpstate (fd (use)))
+(allow hal_vehicle_server dumpstate (fifo_file (write)))
+(allow hal_vehicle_server dumpstate (fd (use)))
+(allow hal_weaver_server dumpstate (fifo_file (write)))
+(allow hal_weaver_server dumpstate (fd (use)))
+(allow hal_wifi_server dumpstate (fifo_file (write)))
+(allow hal_wifi_server dumpstate (fd (use)))
+(allow dumpstate self (capability (sys_ptrace)))
+(allow dumpstate self (cap_userns (sys_ptrace)))
+(allow dumpstate shell_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow dumpstate shell_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow dumpstate shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dumpstate zygote_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dumpstate bluetooth_data_file (dir (search)))
+(allow dumpstate bluetooth_logs_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate bluetooth_logs_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate nfc_logs_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate nfc_logs_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow dumpstate gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate logcat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dumpstate logdr_socket (sock_file (write)))
+(allow dumpstate logd (unix_stream_socket (connectto)))
+(allow dumpstate logd_socket (sock_file (write)))
+(allow dumpstate logd (unix_stream_socket (connectto)))
+(allow dumpstate runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_qtaguid_ctrl (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_qtaguid_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_buddyinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_modules (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_pagetypeinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_pipe_conf (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_slabinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_vmallocinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate net_data_file (dir (search)))
+(allow dumpstate net_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate self (netlink_tcpdiag_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read)))
+(allow dumpstate tombstone_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate tombstone_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate cache_recovery_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate cache_recovery_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate recovery_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate recovery_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate update_engine_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate update_engine_log_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate update_engine_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate update_engine_log_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate snapuserd_log_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate snapuserd_log_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate misc_logd_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate misc_logd_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate prereboot_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate prereboot_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate app_fuse_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate overlayfs_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate base_typeattr_332 (service_manager (find)))
+(dontaudit dumpstate hal_service_type (service_manager (find)))
+(dontaudit dumpstate apex_service (service_manager (find)))
+(dontaudit dumpstate dumpstate_service (service_manager (find)))
+(dontaudit dumpstate gatekeeper_service (service_manager (find)))
+(dontaudit dumpstate virtual_touchpad_service (service_manager (find)))
+(dontaudit dumpstate vold_service (service_manager (find)))
+(dontaudit dumpstate hwservice_manager_type (hwservice_manager (find)))
+(allow dumpstate servicemanager (service_manager (list)))
+(allow dumpstate hwservicemanager (hwservice_manager (list)))
+(allow dumpstate devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow dumpstate property_type (file (read getattr map open)))
+(allow dumpstate media_rw_data_file (dir (getattr)))
+(allow dumpstate proc_interrupts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_zoneinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate dumpstate_service (service_manager (add find)))
+;;* lmx 324 system/sepolicy/public/dumpstate.te
+
+(neverallow base_typeattr_333 dumpstate_service (service_manager (add)))
+;;* lme
+
+(allow dumpstate ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_pressure_cpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_pressure_mem (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_pressure_io (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_pid_max (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate installd (binder (call transfer)))
+(allow installd dumpstate (binder (transfer)))
+(allow dumpstate installd (fd (use)))
+(allow dumpstate self (netlink_xfrm_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read)))
+(allow dumpstate self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow dumpstate self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow dumpstate domain (socket (getattr)))
+(allow dumpstate domain (tcp_socket (getattr)))
+(allow dumpstate domain (udp_socket (getattr)))
+(allow dumpstate domain (rawip_socket (getattr)))
+(allow dumpstate domain (netlink_socket (getattr)))
+(allow dumpstate domain (packet_socket (getattr)))
+(allow dumpstate domain (key_socket (getattr)))
+(allow dumpstate domain (unix_stream_socket (getattr)))
+(allow dumpstate domain (unix_dgram_socket (getattr)))
+(allow dumpstate domain (netlink_route_socket (getattr)))
+(allow dumpstate domain (netlink_tcpdiag_socket (getattr)))
+(allow dumpstate domain (netlink_nflog_socket (getattr)))
+(allow dumpstate domain (netlink_xfrm_socket (getattr)))
+(allow dumpstate domain (netlink_selinux_socket (getattr)))
+(allow dumpstate domain (netlink_audit_socket (getattr)))
+(allow dumpstate domain (netlink_dnrt_socket (getattr)))
+(allow dumpstate domain (netlink_kobject_uevent_socket (getattr)))
+(allow dumpstate domain (appletalk_socket (getattr)))
+(allow dumpstate domain (tun_socket (getattr)))
+(allow dumpstate domain (netlink_iscsi_socket (getattr)))
+(allow dumpstate domain (netlink_fib_lookup_socket (getattr)))
+(allow dumpstate domain (netlink_connector_socket (getattr)))
+(allow dumpstate domain (netlink_netfilter_socket (getattr)))
+(allow dumpstate domain (netlink_generic_socket (getattr)))
+(allow dumpstate domain (netlink_scsitransport_socket (getattr)))
+(allow dumpstate domain (netlink_rdma_socket (getattr)))
+(allow dumpstate domain (netlink_crypto_socket (getattr)))
+(allow dumpstate domain (sctp_socket (getattr)))
+(allow dumpstate domain (icmp_socket (getattr)))
+(allow dumpstate domain (ax25_socket (getattr)))
+(allow dumpstate domain (ipx_socket (getattr)))
+(allow dumpstate domain (netrom_socket (getattr)))
+(allow dumpstate domain (atmpvc_socket (getattr)))
+(allow dumpstate domain (x25_socket (getattr)))
+(allow dumpstate domain (rose_socket (getattr)))
+(allow dumpstate domain (decnet_socket (getattr)))
+(allow dumpstate domain (atmsvc_socket (getattr)))
+(allow dumpstate domain (rds_socket (getattr)))
+(allow dumpstate domain (irda_socket (getattr)))
+(allow dumpstate domain (pppox_socket (getattr)))
+(allow dumpstate domain (llc_socket (getattr)))
+(allow dumpstate domain (can_socket (getattr)))
+(allow dumpstate domain (tipc_socket (getattr)))
+(allow dumpstate domain (bluetooth_socket (getattr)))
+(allow dumpstate domain (iucv_socket (getattr)))
+(allow dumpstate domain (rxrpc_socket (getattr)))
+(allow dumpstate domain (isdn_socket (getattr)))
+(allow dumpstate domain (phonet_socket (getattr)))
+(allow dumpstate domain (ieee802154_socket (getattr)))
+(allow dumpstate domain (caif_socket (getattr)))
+(allow dumpstate domain (alg_socket (getattr)))
+(allow dumpstate domain (nfc_socket (getattr)))
+(allow dumpstate domain (vsock_socket (getattr)))
+(allow dumpstate domain (kcm_socket (getattr)))
+(allow dumpstate domain (qipcrtr_socket (getattr)))
+(allow dumpstate domain (smc_socket (getattr)))
+(allow dumpstate domain (xdp_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (tcp_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (udp_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (rawip_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (packet_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (key_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (unix_stream_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (unix_dgram_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_route_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_tcpdiag_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_nflog_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_xfrm_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_selinux_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_audit_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_dnrt_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_kobject_uevent_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (appletalk_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (tun_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_iscsi_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_fib_lookup_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_connector_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_netfilter_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_generic_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_scsitransport_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_rdma_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netlink_crypto_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (sctp_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (icmp_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (ax25_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (ipx_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (netrom_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (atmpvc_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (x25_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (rose_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (decnet_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (atmsvc_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (rds_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (irda_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (pppox_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (llc_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (can_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (tipc_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (bluetooth_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (iucv_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (rxrpc_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (isdn_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (phonet_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (ieee802154_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (caif_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (alg_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (nfc_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (vsock_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (kcm_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (qipcrtr_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (smc_socket (getattr)))
+(allow dumpstate pdx_endpoint_socket_type (xdp_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (tcp_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (udp_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (rawip_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (packet_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (key_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (unix_stream_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (unix_dgram_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_route_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_tcpdiag_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_nflog_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_xfrm_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_selinux_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_audit_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_dnrt_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_kobject_uevent_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (appletalk_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (tun_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_iscsi_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_fib_lookup_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_connector_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_netfilter_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_generic_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_scsitransport_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_rdma_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netlink_crypto_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (sctp_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (icmp_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (ax25_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (ipx_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (netrom_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (atmpvc_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (x25_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (rose_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (decnet_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (atmsvc_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (rds_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (irda_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (pppox_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (llc_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (can_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (tipc_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (bluetooth_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (iucv_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (rxrpc_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (isdn_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (phonet_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (ieee802154_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (caif_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (alg_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (nfc_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (vsock_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (kcm_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (qipcrtr_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (smc_socket (getattr)))
+(allow dumpstate pdx_channel_socket_type (xdp_socket (getattr)))
+(allow dumpstate linkerconfig_file (dir (read open)))
+(dontaudit dumpstate mnt_user_file (dir (search)))
+(dontaudit dumpstate mnt_vendor_file (dir (search)))
+(dontaudit dumpstate mnt_product_file (dir (search)))
+(dontaudit dumpstate mirror_data_file (dir (search)))
+(dontaudit dumpstate linkerconfig_file (dir (getattr)))
+(dontaudit dumpstate mnt_user_file (dir (getattr)))
+(dontaudit dumpstate apex_mnt_dir (dir (getattr)))
+(dontaudit dumpstate mirror_data_file (dir (getattr)))
+(allow dumpstate bufferhubd (binder (call transfer)))
+(allow bufferhubd dumpstate (binder (transfer)))
+(allow dumpstate bufferhubd (fd (use)))
+(allow dumpstate mediaswcodec (binder (call transfer)))
+(allow mediaswcodec dumpstate (binder (transfer)))
+(allow dumpstate mediaswcodec (fd (use)))
+(allow dumpstate snapshotctl_log_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate snapshotctl_log_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate binderfs_logs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate binderfs_logs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate binderfs_logs_proc (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate binderfs_logs_stats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate vendor_apex_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate vendor_apex_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate shutdown_checkpoints_system_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate shutdown_checkpoints_system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 398 system/sepolicy/public/dumpstate.te
+
+(neverallow dumpstate base_typeattr_224 (process (ptrace)))
+;;* lme
+
+;;* lmx 407 system/sepolicy/public/dumpstate.te
+
+(neverallow base_typeattr_334 dumpstate_service (service_manager (find)))
+;;* lme
+
+(allow e2fs devpts (chr_file (ioctl read write getattr)))
+(allow e2fs dev_type (blk_file (getattr)))
+(allow e2fs block_device (dir (search)))
+(allow e2fs userdata_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow e2fs metadata_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow e2fs dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow e2fs zoned_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow e2fs vold (fd (use)))
+(allow e2fs sysfs_dm (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow e2fs sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(allowx e2fs dm_device (ioctl blk_file (0x125e 0x1277 (range 0x127b 0x127d) (range 0x1282 0x1283))))
+(allowx e2fs userdata_block_device (ioctl blk_file (0x125e 0x1277 (range 0x127b 0x127d) (range 0x1282 0x1283))))
+(allowx e2fs zoned_block_device (ioctl blk_file (0x125e 0x1277 (range 0x127b 0x127d) (range 0x1282 0x1283))))
+(allowx e2fs metadata_block_device (ioctl blk_file (0x125e 0x1277 (range 0x127b 0x127d) (range 0x1282 0x1283))))
+(allow e2fs proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow e2fs proc_mounts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow e2fs proc_swaps (file (ioctl read getattr lock map open watch watch_reads)))
+(allow e2fs sysfs_fs_ext4_features (dir (search)))
+(allow e2fs sysfs_fs_ext4_features (file (ioctl read getattr lock map open watch watch_reads)))
+(allow e2fs file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow extra_free_kbytes shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow extra_free_kbytes system_file (file (getattr map execute execute_no_trans)))
+(allow extra_free_kbytes toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow extra_free_kbytes proc_extra_free_kbytes (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow extra_free_kbytes proc_watermark_scale_factor (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow extra_free_kbytes proc_zoneinfo (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 129 system/sepolicy/public/fastbootd.te
+
+(neverallow fastbootd data_file_type (file (execute execute_no_trans)))
+;;* lme
+
+(allow fs_type self (filesystem (associate)))
+(allow cgroup tmpfs (filesystem (associate)))
+(allow cgroup_v2 tmpfs (filesystem (associate)))
+(allow cgroup_rc_file tmpfs (filesystem (associate)))
+(allow sysfs_type sysfs (filesystem (associate)))
+(allow debugfs_type debugfs (filesystem (associate)))
+(allow debugfs_type debugfs_tracing (filesystem (associate)))
+(allow debugfs_type debugfs_tracing_debug (filesystem (associate)))
+(allow file_type labeledfs (filesystem (associate)))
+(allow file_type tmpfs (filesystem (associate)))
+(allow file_type rootfs (filesystem (associate)))
+(allow dev_type tmpfs (filesystem (associate)))
+(allow app_fuse_file app_fusefs (filesystem (associate)))
+(allow postinstall_file self (filesystem (associate)))
+(allow proc_net proc (filesystem (associate)))
+;;* lmx 651 system/sepolicy/public/file.te
+
+(neverallow fs_type file_type (filesystem (associate)))
+;;* lme
+
+(allow fingerprintd servicemanager (binder (call transfer)))
+(allow servicemanager fingerprintd (binder (call transfer)))
+(allow servicemanager fingerprintd (dir (search)))
+(allow servicemanager fingerprintd (file (read open)))
+(allow servicemanager fingerprintd (process (getattr)))
+(allow fingerprintd system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow fingerprintd fingerprintd_service (service_manager (add find)))
+;;* lmx 10 system/sepolicy/public/fingerprintd.te
+
+(neverallow base_typeattr_335 fingerprintd_service (service_manager (add)))
+;;* lme
+
+(allow fingerprintd fingerprintd_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow fingerprintd fingerprintd_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow keystore fingerprintd (dir (search)))
+(allow keystore fingerprintd (file (read open)))
+(allow keystore fingerprintd (process (getattr)))
+(allow fingerprintd apc_service (service_manager (find)))
+(allow fingerprintd keystore_service (service_manager (find)))
+(allow fingerprintd legacykeystore_service (service_manager (find)))
+(allow fingerprintd keystore (binder (call transfer)))
+(allow keystore fingerprintd (binder (transfer)))
+(allow fingerprintd keystore (fd (use)))
+(allow keystore fingerprintd (binder (call transfer)))
+(allow fingerprintd keystore (binder (transfer)))
+(allow keystore fingerprintd (fd (use)))
+(allow fingerprintd keystore (keystore2 (add_auth)))
+(allow fingerprintd system_server (binder (call transfer)))
+(allow system_server fingerprintd (binder (transfer)))
+(allow fingerprintd system_server (fd (use)))
+(allow fingerprintd permission_service (service_manager (find)))
+(allow fingerprintd ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow flags_health_check server_configurable_flags_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow flags_health_check server_configurable_flags_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+;;* lmx 12 system/sepolicy/public/flags_health_check.te
+
+(neverallow base_typeattr_336 server_configurable_flags_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+(allow fsck tmpfs (chr_file (ioctl read write)))
+(allow fsck devpts (chr_file (ioctl read write getattr)))
+(allow fsck vold (fd (use)))
+(allow fsck vold (fifo_file (read write getattr)))
+(allow fsck userdata_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow fsck cache_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow fsck dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow fsck zoned_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow fsck metadata_file (dir (getattr)))
+(allow fsck block_device (dir (search)))
+(allow fsck mirror_data_file (dir (search)))
+(allowx fsck dev_type (ioctl blk_file (0x125e 0x127c 0x1282)))
+(allow fsck dev_type (blk_file (getattr)))
+(allow fsck proc_mounts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow fsck proc_swaps (file (ioctl read getattr lock map open watch watch_reads)))
+(allow fsck sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(allow fsck rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow fsck sysfs_dm (dir (ioctl read getattr lock open watch watch_reads search)))
+;;* lmx 72 system/sepolicy/public/fsck.te
+
+(neverallow fsck vold_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck root_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck frp_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck system_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck recovery_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck boot_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck swap_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 75 system/sepolicy/public/fsck.te
+
+(neverallow base_typeattr_337 fsck (process (transition)))
+;;* lme
+
+;;* lmx 76 system/sepolicy/public/fsck.te
+
+(neverallow base_typeattr_224 fsck (process (dyntransition)))
+;;* lme
+
+;;* lmx 77 system/sepolicy/public/fsck.te
+
+(neverallow fsck base_typeattr_338 (file (entrypoint)))
+;;* lme
+
+(allow fsck_untrusted devpts (chr_file (ioctl read write getattr)))
+(allow fsck_untrusted vold (fd (use)))
+(allow fsck_untrusted vold (fifo_file (read write getattr)))
+(allow fsck_untrusted block_device (dir (search)))
+(allow fsck_untrusted vold_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow fsck_untrusted proc_mounts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow fsck_untrusted dev_type (blk_file (getattr)))
+;;* lmx 45 system/sepolicy/public/fsck_untrusted.te
+
+(neverallow fsck_untrusted dm_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted root_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted frp_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted system_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted recovery_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted boot_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted userdata_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted cache_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted swap_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fsck_untrusted metadata_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 48 system/sepolicy/public/fsck_untrusted.te
+
+(neverallow base_typeattr_339 fsck_untrusted (process (transition)))
+;;* lme
+
+;;* lmx 49 system/sepolicy/public/fsck_untrusted.te
+
+(neverallow base_typeattr_224 fsck_untrusted (process (dyntransition)))
+;;* lme
+
+;;* lmx 50 system/sepolicy/public/fsck_untrusted.te
+
+(neverallow fsck_untrusted base_typeattr_338 (file (entrypoint)))
+;;* lme
+
+;;* lmx 55 system/sepolicy/public/fsck_untrusted.te
+
+(neverallow fsck_untrusted self (capability (setgid setuid sys_admin)))
+(neverallow fsck_untrusted self (cap_userns (setgid setuid sys_admin)))
+;;* lme
+
+(dontaudit fsck_untrusted sysfs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(dontaudit fsck_untrusted sysfs_dm (file (ioctl read write getattr lock append map open watch watch_reads)))
+(dontaudit fsck_untrusted sysfs_dm (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(dontaudit fsck_untrusted tmpfs (lnk_file (read)))
+(allow gatekeeperd servicemanager (binder (call transfer)))
+(allow servicemanager gatekeeperd (binder (call transfer)))
+(allow servicemanager gatekeeperd (dir (search)))
+(allow servicemanager gatekeeperd (file (read open)))
+(allow servicemanager gatekeeperd (process (getattr)))
+(allow gatekeeperd ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gatekeeperd system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gatekeeperd gatekeeper_service (service_manager (add find)))
+;;* lmx 21 system/sepolicy/public/gatekeeperd.te
+
+(neverallow base_typeattr_340 gatekeeper_service (service_manager (add)))
+;;* lme
+
+(allow keystore gatekeeperd (dir (search)))
+(allow keystore gatekeeperd (file (read open)))
+(allow keystore gatekeeperd (process (getattr)))
+(allow gatekeeperd apc_service (service_manager (find)))
+(allow gatekeeperd keystore_service (service_manager (find)))
+(allow gatekeeperd legacykeystore_service (service_manager (find)))
+(allow gatekeeperd keystore (binder (call transfer)))
+(allow keystore gatekeeperd (binder (transfer)))
+(allow gatekeeperd keystore (fd (use)))
+(allow keystore gatekeeperd (binder (call transfer)))
+(allow gatekeeperd keystore (binder (transfer)))
+(allow keystore gatekeeperd (fd (use)))
+(allow gatekeeperd keystore (keystore2 (add_auth)))
+(allow gatekeeperd authorization_service (service_manager (find)))
+(allow gatekeeperd system_server (binder (call)))
+(allow gatekeeperd permission_service (service_manager (find)))
+(allow gatekeeperd gatekeeper_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow gatekeeperd gatekeeper_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gatekeeperd hardware_properties_service (service_manager (find)))
+(allow gatekeeperd cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gatekeeperd cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gatekeeperd cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gatekeeperd cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gatekeeperd cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gatekeeperd cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_allocator_client hal_allocator_server (binder (call transfer)))
+(allow hal_allocator_server hal_allocator_client (binder (transfer)))
+(allow hal_allocator_client hal_allocator_server (fd (use)))
+(allow hal_allocator_client hidl_allocator_hwservice (hwservice_manager (find)))
+(allow hal_allocator_server hidl_allocator_hwservice (hwservice_manager (add find)))
+(allow hal_allocator_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_allocator.te
+
+(neverallow base_typeattr_341 hidl_allocator_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_allocator.te
+
+(neverallow base_typeattr_342 hidl_allocator_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_allocator_client hidl_memory_hwservice (hwservice_manager (find)))
+(allow hal_allocator_client same_process_hal_file (file (read getattr map execute open)))
+(allow hal_atrace_client hal_atrace_server (binder (call transfer)))
+(allow hal_atrace_server hal_atrace_client (binder (transfer)))
+(allow hal_atrace_client hal_atrace_server (fd (use)))
+(allow hal_atrace_client hal_atrace_hwservice (hwservice_manager (find)))
+(allow hal_atrace_server hal_atrace_hwservice (hwservice_manager (add find)))
+(allow hal_atrace_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_atrace.te
+
+(neverallow base_typeattr_343 hal_atrace_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_atrace.te
+
+(neverallow base_typeattr_344 hal_atrace_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_audio_client hal_audio_server (binder (call transfer)))
+(allow hal_audio_server hal_audio_client (binder (transfer)))
+(allow hal_audio_client hal_audio_server (fd (use)))
+(allow hal_audio_server hal_audio_client (binder (call transfer)))
+(allow hal_audio_client hal_audio_server (binder (transfer)))
+(allow hal_audio_server hal_audio_client (fd (use)))
+(allow hal_audio_client hal_audio_hwservice (hwservice_manager (find)))
+(allow hal_audio_server hal_audio_hwservice (hwservice_manager (add find)))
+(allow hal_audio_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_audio.te
+
+(neverallow base_typeattr_345 hal_audio_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_audio.te
+
+(neverallow base_typeattr_346 hal_audio_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_audio_client hal_audio_service (service_manager (find)))
+(allow hal_audio_server hal_audio_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_audio.te
+
+(neverallow base_typeattr_345 hal_audio_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_audio.te
+
+(neverallow base_typeattr_347 hal_audio_service (service_manager (find)))
+;;* lme
+
+(allow hal_audio ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_audio_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_audio_server (binder (transfer)))
+(allow hal_audio_server servicemanager (fd (use)))
+(allow hal_audio proc (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_audio proc (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_audio proc (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_audio proc_asound (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_audio proc_asound (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_audio proc_asound (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_audio_server audio_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_audio_server audio_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_audio shell (fd (use)))
+(allow hal_audio shell (fifo_file (write)))
+(allow hal_audio dumpstate (fd (use)))
+(allow hal_audio dumpstate (fifo_file (write)))
+(allow hal_audio_server appdomain (fd (use)))
+(allow hal_audio_server system_server_tmpfs (file (read getattr map)))
+(allow hal_audio_server self (capability (sys_nice)))
+(allow hal_audio_server self (cap_userns (sys_nice)))
+(allow hal_audio vndbinder_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_audio vndservicemanager (binder (call transfer)))
+(allow vndservicemanager hal_audio (dir (search)))
+(allow vndservicemanager hal_audio (file (read map open)))
+(allow vndservicemanager hal_audio (process (getattr)))
+;;* lmx 39 system/sepolicy/public/hal_audio.te
+
+(neverallow hal_audio_server fs_type (file (execute_no_trans)))
+(neverallow hal_audio_server file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/public/hal_audio.te
+
+(neverallow base_typeattr_348 audio_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow hal_audio audio_config_prop (file (read getattr map open)))
+(allow hal_audio bluetooth_a2dp_offload_prop (file (read getattr map open)))
+(allow hal_audio bluetooth_audio_hal_prop (file (read getattr map open)))
+(allow hal_audiocontrol_client hal_audiocontrol_server (binder (call transfer)))
+(allow hal_audiocontrol_server hal_audiocontrol_client (binder (transfer)))
+(allow hal_audiocontrol_client hal_audiocontrol_server (fd (use)))
+(allow hal_audiocontrol_server hal_audiocontrol_client (binder (call transfer)))
+(allow hal_audiocontrol_client hal_audiocontrol_server (binder (transfer)))
+(allow hal_audiocontrol_server hal_audiocontrol_client (fd (use)))
+(allow hal_audiocontrol_client hal_audiocontrol_hwservice (hwservice_manager (find)))
+(allow hal_audiocontrol_server hal_audiocontrol_hwservice (hwservice_manager (add find)))
+(allow hal_audiocontrol_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_audiocontrol.te
+
+(neverallow base_typeattr_349 hal_audiocontrol_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_audiocontrol.te
+
+(neverallow base_typeattr_350 hal_audiocontrol_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_audiocontrol_client hal_audiocontrol_service (service_manager (find)))
+(allow hal_audiocontrol_server hal_audiocontrol_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_audiocontrol.te
+
+(neverallow base_typeattr_349 hal_audiocontrol_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_audiocontrol.te
+
+(neverallow base_typeattr_351 hal_audiocontrol_service (service_manager (find)))
+;;* lme
+
+(allow hal_audiocontrol_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_audiocontrol_server (binder (transfer)))
+(allow hal_audiocontrol_server servicemanager (fd (use)))
+(allow hal_authgraph_client hal_authgraph_server (binder (call transfer)))
+(allow hal_authgraph_server hal_authgraph_client (binder (transfer)))
+(allow hal_authgraph_client hal_authgraph_server (fd (use)))
+(allow hal_authgraph_client hal_authgraph_service (service_manager (find)))
+(allow hal_authgraph_server hal_authgraph_service (service_manager (add find)))
+;;* lmx 3 system/sepolicy/public/hal_authgraph.te
+
+(neverallow base_typeattr_352 hal_authgraph_service (service_manager (add)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/public/hal_authgraph.te
+
+(neverallow base_typeattr_353 hal_authgraph_service (service_manager (find)))
+;;* lme
+
+(allow hal_authgraph_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_authgraph_server (binder (transfer)))
+(allow hal_authgraph_server servicemanager (fd (use)))
+(allow hal_authgraph_server tee_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_authgraph_server ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_authsecret_client hal_authsecret_server (binder (call transfer)))
+(allow hal_authsecret_server hal_authsecret_client (binder (transfer)))
+(allow hal_authsecret_client hal_authsecret_server (fd (use)))
+(allow hal_authsecret_client hal_authsecret_hwservice (hwservice_manager (find)))
+(allow hal_authsecret_server hal_authsecret_hwservice (hwservice_manager (add find)))
+(allow hal_authsecret_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_authsecret.te
+
+(neverallow base_typeattr_354 hal_authsecret_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_authsecret.te
+
+(neverallow base_typeattr_355 hal_authsecret_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_authsecret_client hal_authsecret_service (service_manager (find)))
+(allow hal_authsecret_server hal_authsecret_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_authsecret.te
+
+(neverallow base_typeattr_354 hal_authsecret_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_authsecret.te
+
+(neverallow base_typeattr_356 hal_authsecret_service (service_manager (find)))
+;;* lme
+
+(allow hal_authsecret_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_authsecret_server (binder (transfer)))
+(allow hal_authsecret_server servicemanager (fd (use)))
+(allow hal_bluetooth_client hal_bluetooth_server (binder (call transfer)))
+(allow hal_bluetooth_server hal_bluetooth_client (binder (transfer)))
+(allow hal_bluetooth_client hal_bluetooth_server (fd (use)))
+(allow hal_bluetooth_server hal_bluetooth_client (binder (call transfer)))
+(allow hal_bluetooth_client hal_bluetooth_server (binder (transfer)))
+(allow hal_bluetooth_server hal_bluetooth_client (fd (use)))
+(allow hal_bluetooth_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_bluetooth_server (binder (transfer)))
+(allow hal_bluetooth_server servicemanager (fd (use)))
+(allow hal_bluetooth_client hal_bluetooth_hwservice (hwservice_manager (find)))
+(allow hal_bluetooth_server hal_bluetooth_hwservice (hwservice_manager (add find)))
+(allow hal_bluetooth_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 6 system/sepolicy/public/hal_bluetooth.te
+
+(neverallow base_typeattr_357 hal_bluetooth_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_bluetooth.te
+
+(neverallow base_typeattr_358 hal_bluetooth_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_bluetooth_client hal_bluetooth_service (service_manager (find)))
+(allow hal_bluetooth_server hal_bluetooth_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/public/hal_bluetooth.te
+
+(neverallow base_typeattr_357 hal_bluetooth_service (service_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_bluetooth.te
+
+(neverallow base_typeattr_359 hal_bluetooth_service (service_manager (find)))
+;;* lme
+
+(allow hal_bluetooth sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_bluetooth self (capability2 (block_suspend)))
+(allow hal_bluetooth self (cap2_userns (block_suspend)))
+(allow hal_bluetooth system_suspend_server (binder (call transfer)))
+(allow system_suspend_server hal_bluetooth (binder (transfer)))
+(allow hal_bluetooth system_suspend_server (fd (use)))
+(allow hal_bluetooth system_suspend_hwservice (hwservice_manager (find)))
+(allow hal_bluetooth hwservicemanager (binder (call transfer)))
+(allow hwservicemanager hal_bluetooth (binder (call transfer)))
+(allow hwservicemanager hal_bluetooth (dir (search)))
+(allow hwservicemanager hal_bluetooth (file (read map open)))
+(allow hwservicemanager hal_bluetooth (process (getattr)))
+(allow hal_bluetooth hwservicemanager_prop (file (read getattr map open)))
+(allow hal_bluetooth hidl_manager_hwservice (hwservice_manager (find)))
+(allow hal_bluetooth hal_system_suspend_service (service_manager (find)))
+(allow hal_bluetooth servicemanager (binder (call transfer)))
+(allow servicemanager hal_bluetooth (binder (call transfer)))
+(allow servicemanager hal_bluetooth (dir (search)))
+(allow servicemanager hal_bluetooth (file (read open)))
+(allow servicemanager hal_bluetooth (process (getattr)))
+(allow hal_bluetooth self (capability (net_admin)))
+(allow hal_bluetooth self (cap_userns (net_admin)))
+(allow hal_bluetooth bluetooth_efs_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_bluetooth bluetooth_efs_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_bluetooth bluetooth_efs_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_bluetooth uhid_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_bluetooth hci_attach_dev (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_bluetooth sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_bluetooth sysfs_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_bluetooth sysfs_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_bluetooth sysfs_bluetooth_writable (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_bluetooth self (capability2 (wake_alarm)))
+(allow hal_bluetooth self (cap2_userns (wake_alarm)))
+(allow hal_bluetooth property_socket (sock_file (write)))
+(allow hal_bluetooth init (unix_stream_socket (connectto)))
+(allow hal_bluetooth bluetooth_a2dp_offload_prop (property_service (set)))
+(allow hal_bluetooth bluetooth_a2dp_offload_prop (file (read getattr map open)))
+(allow hal_bluetooth property_socket (sock_file (write)))
+(allow hal_bluetooth init (unix_stream_socket (connectto)))
+(allow hal_bluetooth bluetooth_audio_hal_prop (property_service (set)))
+(allow hal_bluetooth bluetooth_audio_hal_prop (file (read getattr map open)))
+(allow hal_bluetooth property_socket (sock_file (write)))
+(allow hal_bluetooth init (unix_stream_socket (connectto)))
+(allow hal_bluetooth bluetooth_prop (property_service (set)))
+(allow hal_bluetooth bluetooth_prop (file (read getattr map open)))
+(allow hal_bluetooth property_socket (sock_file (write)))
+(allow hal_bluetooth init (unix_stream_socket (connectto)))
+(allow hal_bluetooth exported_bluetooth_prop (property_service (set)))
+(allow hal_bluetooth exported_bluetooth_prop (file (read getattr map open)))
+(allow hal_bluetooth proc_bluetooth_writable (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_bluetooth self (capability (sys_nice)))
+(allow hal_bluetooth self (cap_userns (sys_nice)))
+(allow hal_bootctl_client hal_bootctl_server (binder (call transfer)))
+(allow hal_bootctl_server hal_bootctl_client (binder (transfer)))
+(allow hal_bootctl_client hal_bootctl_server (fd (use)))
+(allow hal_bootctl_server hal_bootctl_client (binder (call transfer)))
+(allow hal_bootctl_client hal_bootctl_server (binder (transfer)))
+(allow hal_bootctl_server hal_bootctl_client (fd (use)))
+(allow hal_bootctl_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_bootctl_server (binder (call transfer)))
+(allow servicemanager hal_bootctl_server (dir (search)))
+(allow servicemanager hal_bootctl_server (file (read open)))
+(allow servicemanager hal_bootctl_server (process (getattr)))
+(allow hal_bootctl_client hal_bootctl_hwservice (hwservice_manager (find)))
+(allow hal_bootctl_server hal_bootctl_hwservice (hwservice_manager (add find)))
+(allow hal_bootctl_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 6 system/sepolicy/public/hal_bootctl.te
+
+(neverallow base_typeattr_360 hal_bootctl_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_bootctl.te
+
+(neverallow base_typeattr_361 hal_bootctl_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_bootctl_server proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_bootctl_client hal_bootctl_service (service_manager (find)))
+(allow hal_bootctl_server hal_bootctl_service (service_manager (add find)))
+;;* lmx 10 system/sepolicy/public/hal_bootctl.te
+
+(neverallow base_typeattr_360 hal_bootctl_service (service_manager (add)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/public/hal_bootctl.te
+
+(neverallow base_typeattr_362 hal_bootctl_service (service_manager (find)))
+;;* lme
+
+(allow hal_broadcastradio_client hal_broadcastradio_server (binder (call transfer)))
+(allow hal_broadcastradio_server hal_broadcastradio_client (binder (transfer)))
+(allow hal_broadcastradio_client hal_broadcastradio_server (fd (use)))
+(allow hal_broadcastradio_server hal_broadcastradio_client (binder (call transfer)))
+(allow hal_broadcastradio_client hal_broadcastradio_server (binder (transfer)))
+(allow hal_broadcastradio_server hal_broadcastradio_client (fd (use)))
+(allow hal_broadcastradio_client hal_broadcastradio_hwservice (hwservice_manager (find)))
+(allow hal_broadcastradio_server hal_broadcastradio_hwservice (hwservice_manager (add find)))
+(allow hal_broadcastradio_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_broadcastradio.te
+
+(neverallow base_typeattr_363 hal_broadcastradio_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_broadcastradio.te
+
+(neverallow base_typeattr_364 hal_broadcastradio_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_broadcastradio_client hal_broadcastradio_service (service_manager (find)))
+(allow hal_broadcastradio_server hal_broadcastradio_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_broadcastradio.te
+
+(neverallow base_typeattr_363 hal_broadcastradio_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_broadcastradio.te
+
+(neverallow base_typeattr_365 hal_broadcastradio_service (service_manager (find)))
+;;* lme
+
+(allow hal_broadcastradio_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_broadcastradio_server (binder (transfer)))
+(allow hal_broadcastradio_server servicemanager (fd (use)))
+(allow hal_camera_client hal_camera_server (binder (call transfer)))
+(allow hal_camera_server hal_camera_client (binder (transfer)))
+(allow hal_camera_client hal_camera_server (fd (use)))
+(allow hal_camera_server hal_camera_client (binder (call transfer)))
+(allow hal_camera_client hal_camera_server (binder (transfer)))
+(allow hal_camera_server hal_camera_client (fd (use)))
+(allow hal_camera_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_camera_server (binder (call transfer)))
+(allow servicemanager hal_camera_server (dir (search)))
+(allow servicemanager hal_camera_server (file (read open)))
+(allow servicemanager hal_camera_server (process (getattr)))
+(allow hal_camera_client hal_camera_hwservice (hwservice_manager (find)))
+(allow hal_camera_server hal_camera_hwservice (hwservice_manager (add find)))
+(allow hal_camera_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 8 system/sepolicy/public/hal_camera.te
+
+(neverallow base_typeattr_366 hal_camera_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/hal_camera.te
+
+(neverallow base_typeattr_367 hal_camera_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_camera_client hal_camera_service (service_manager (find)))
+(allow hal_camera_server hal_camera_service (service_manager (add find)))
+;;* lmx 9 system/sepolicy/public/hal_camera.te
+
+(neverallow base_typeattr_366 hal_camera_service (service_manager (add)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/public/hal_camera.te
+
+(neverallow base_typeattr_368 hal_camera_service (service_manager (find)))
+;;* lme
+
+(allow hal_camera device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_camera video_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_camera video_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_camera camera_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_camera ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_camera dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_camera_client hal_graphics_allocator (fd (use)))
+(allow hal_camera_server hal_graphics_allocator (fd (use)))
+(allow hal_camera base_typeattr_369 (fd (use)))
+(allow hal_camera surfaceflinger (fd (use)))
+(allow hal_camera hal_allocator_server (fd (use)))
+(allow hal_camera shell (fd (use)))
+(allow hal_camera shell (fifo_file (write)))
+;;* lmx 36 system/sepolicy/public/hal_camera.te
+
+(neverallow hal_camera_server fs_type (file (execute_no_trans)))
+(neverallow hal_camera_server file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 39 system/sepolicy/public/hal_camera.te
+
+(neverallow hal_camera_server domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+(neverallow hal_camera_server domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow hal_camera_server domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/public/hal_camera.te
+
+(neverallow base_typeattr_370 camera_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow hal_can_controller_client hal_can_controller_server (binder (call transfer)))
+(allow hal_can_controller_server hal_can_controller_client (binder (transfer)))
+(allow hal_can_controller_client hal_can_controller_server (fd (use)))
+(allow hal_can_controller_server hal_can_controller_client (binder (call transfer)))
+(allow hal_can_controller_client hal_can_controller_server (binder (transfer)))
+(allow hal_can_controller_server hal_can_controller_client (fd (use)))
+(allow hal_can_controller_client hal_can_controller_hwservice (hwservice_manager (find)))
+(allow hal_can_controller_server hal_can_controller_hwservice (hwservice_manager (add find)))
+(allow hal_can_controller_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_can.te
+
+(neverallow base_typeattr_371 hal_can_controller_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_can.te
+
+(neverallow base_typeattr_372 hal_can_controller_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_can_bus_client hal_can_bus_server (binder (call transfer)))
+(allow hal_can_bus_server hal_can_bus_client (binder (transfer)))
+(allow hal_can_bus_client hal_can_bus_server (fd (use)))
+(allow hal_can_bus_server hal_can_bus_client (binder (call transfer)))
+(allow hal_can_bus_client hal_can_bus_server (binder (transfer)))
+(allow hal_can_bus_server hal_can_bus_client (fd (use)))
+(allow hal_can_bus_client hal_can_bus_hwservice (hwservice_manager (find)))
+(allow hal_can_bus_server hal_can_bus_hwservice (hwservice_manager (add find)))
+(allow hal_can_bus_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 9 system/sepolicy/public/hal_can.te
+
+(neverallow base_typeattr_373 hal_can_bus_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/public/hal_can.te
+
+(neverallow base_typeattr_374 hal_can_bus_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_can_controller_client hal_can_controller_service (service_manager (find)))
+(allow hal_can_controller_server hal_can_controller_service (service_manager (add find)))
+;;* lmx 12 system/sepolicy/public/hal_can.te
+
+(neverallow base_typeattr_371 hal_can_controller_service (service_manager (add)))
+;;* lme
+
+;;* lmx 12 system/sepolicy/public/hal_can.te
+
+(neverallow base_typeattr_375 hal_can_controller_service (service_manager (find)))
+;;* lme
+
+(allow hal_can_controller servicemanager (binder (call transfer)))
+(allow servicemanager hal_can_controller (binder (call transfer)))
+(allow servicemanager hal_can_controller (dir (search)))
+(allow servicemanager hal_can_controller (file (read open)))
+(allow servicemanager hal_can_controller (process (getattr)))
+(allow hal_cas_client hal_cas_server (binder (call transfer)))
+(allow hal_cas_server hal_cas_client (binder (transfer)))
+(allow hal_cas_client hal_cas_server (fd (use)))
+(allow hal_cas_server hal_cas_client (binder (call transfer)))
+(allow hal_cas_client hal_cas_server (binder (transfer)))
+(allow hal_cas_server hal_cas_client (fd (use)))
+(allow hal_cas_client hal_cas_hwservice (hwservice_manager (find)))
+(allow hal_cas_server hal_cas_hwservice (hwservice_manager (add find)))
+(allow hal_cas_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_cas.te
+
+(neverallow base_typeattr_376 hal_cas_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_cas.te
+
+(neverallow base_typeattr_377 hal_cas_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_cas_server hidl_memory_hwservice (hwservice_manager (find)))
+(allow hal_cas_client hal_cas_service (service_manager (find)))
+(allow hal_cas_server hal_cas_service (service_manager (add find)))
+;;* lmx 8 system/sepolicy/public/hal_cas.te
+
+(neverallow base_typeattr_376 hal_cas_service (service_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/hal_cas.te
+
+(neverallow base_typeattr_378 hal_cas_service (service_manager (find)))
+;;* lme
+
+(allow hal_cas_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_cas_server (binder (transfer)))
+(allow hal_cas_server servicemanager (fd (use)))
+(allow hal_cas_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_cas_client (binder (transfer)))
+(allow hal_cas_client servicemanager (fd (use)))
+(allow hal_cas_server serialno_prop (file (read getattr map open)))
+(allow hal_cas system_data_file (file (read getattr)))
+(allow hal_cas cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_cas cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_cas cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_cas cgroup (dir (write search)))
+(allow hal_cas cgroup (file (write lock append map open)))
+(allow hal_cas cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_cas cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_cas cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_cas cgroup_v2 (dir (write search)))
+(allow hal_cas cgroup_v2 (file (write lock append map open)))
+(allow hal_cas ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_cas hal_graphics_allocator (fd (use)))
+(allow hal_cas tee_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lmx 40 system/sepolicy/public/hal_cas.te
+
+(neverallow hal_cas_server fs_type (file (execute_no_trans)))
+(neverallow hal_cas_server file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/public/hal_cas.te
+
+(neverallowx hal_cas_server domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx hal_cas_server domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx hal_cas_server domain (ioctl rawip_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/public/hal_cas.te
+
+(neverallowx hal_cas_server domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx hal_cas_server domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx hal_cas_server domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 43 system/sepolicy/public/hal_cas.te
+
+(neverallowx hal_cas_server domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx hal_cas_server domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx hal_cas_server domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+(allow hal_codec2_client media_variant_prop (file (read getattr map open)))
+(allow hal_codec2_server media_variant_prop (file (read getattr map open)))
+(allow hal_codec2_client codec2_config_prop (file (read getattr map open)))
+(allow hal_codec2_server codec2_config_prop (file (read getattr map open)))
+(allow hal_codec2_client hal_codec2_server (binder (call transfer)))
+(allow hal_codec2_server hal_codec2_client (binder (transfer)))
+(allow hal_codec2_client hal_codec2_server (fd (use)))
+(allow hal_codec2_server hal_codec2_client (binder (call transfer)))
+(allow hal_codec2_client hal_codec2_server (binder (transfer)))
+(allow hal_codec2_server hal_codec2_client (fd (use)))
+(allow hal_codec2_client hal_codec2_hwservice (hwservice_manager (find)))
+(allow hal_codec2_server hal_codec2_hwservice (hwservice_manager (add find)))
+(allow hal_codec2_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 9 system/sepolicy/public/hal_codec2.te
+
+(neverallow base_typeattr_379 hal_codec2_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/public/hal_codec2.te
+
+(neverallow base_typeattr_380 hal_codec2_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_codec2_client hal_codec2_service (service_manager (find)))
+(allow hal_codec2_server hal_codec2_service (service_manager (add find)))
+;;* lmx 10 system/sepolicy/public/hal_codec2.te
+
+(neverallow base_typeattr_379 hal_codec2_service (service_manager (add)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/public/hal_codec2.te
+
+(neverallow base_typeattr_381 hal_codec2_service (service_manager (find)))
+;;* lme
+
+(allow hal_codec2_server hal_graphics_composer (fd (use)))
+(allow hal_codec2_server ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_codec2_server hal_camera (fd (use)))
+(allow hal_codec2_server bufferhubd (fd (use)))
+(allow hal_codec2_client ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_codec2_server su (fifo_file (read)))
+(allow hal_codec2_server mediaserver (fifo_file (read)))
+(allow hal_codec2_server base_typeattr_382 (fifo_file (read)))
+(allow hal_configstore_client hal_configstore_server (binder (call transfer)))
+(allow hal_configstore_server hal_configstore_client (binder (transfer)))
+(allow hal_configstore_client hal_configstore_server (fd (use)))
+(allow hal_configstore_client hal_configstore_ISurfaceFlingerConfigs (hwservice_manager (find)))
+(allow hal_configstore_server hal_configstore_ISurfaceFlingerConfigs (hwservice_manager (add find)))
+(allow hal_configstore_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_configstore.te
+
+(neverallow base_typeattr_383 hal_configstore_ISurfaceFlingerConfigs (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_configstore.te
+
+(neverallow base_typeattr_384 hal_configstore_ISurfaceFlingerConfigs (hwservice_manager (find)))
+;;* lme
+
+(allow hal_configstore_server anr_data_file (file (append)))
+(allow hal_configstore_server dumpstate (fd (use)))
+(allow hal_configstore_server incidentd (fd (use)))
+(allow hal_configstore_server dumpstate (fifo_file (write append)))
+(allow hal_configstore_server incidentd (fifo_file (write append)))
+(allow hal_configstore_server system_server (fifo_file (write append)))
+(allow hal_configstore_server tombstoned (unix_stream_socket (connectto)))
+(allow hal_configstore_server tombstoned (fd (use)))
+(allow hal_configstore_server tombstoned_crash_socket (sock_file (write)))
+(allow hal_configstore_server tombstone_data_file (file (append)))
+;;* lmx 15 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server fs_type (file (execute_no_trans)))
+(neverallow hal_configstore_server file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 29 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server domain (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+(neverallow hal_configstore_server domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow hal_configstore_server domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow hal_configstore_server domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_route_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_readpriv nlmsg_getneigh)))
+(neverallow hal_configstore_server domain (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow hal_configstore_server domain (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow hal_configstore_server domain (netlink_selinux_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow hal_configstore_server domain (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow hal_configstore_server domain (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_configstore_server domain (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 37 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server base_typeattr_385 (unix_stream_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind connectto)))
+(neverallow hal_configstore_server base_typeattr_385 (unix_dgram_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server base_typeattr_386 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_configstore_server base_typeattr_386 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow hal_configstore_server base_typeattr_386 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 51 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server sdcard_type (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow hal_configstore_server fuse (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow hal_configstore_server fuseblk (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow hal_configstore_server sdcardfs (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow hal_configstore_server vfat (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow hal_configstore_server exfat (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 55 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server sdcard_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_configstore_server fuse (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_configstore_server fuseblk (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_configstore_server sdcardfs (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_configstore_server vfat (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_configstore_server exfat (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 58 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server base_typeattr_224 (service_manager (add find list)))
+;;* lme
+
+;;* lmx 61 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server self (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow hal_configstore_server self (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+(neverallow hal_configstore_server self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow hal_configstore_server self (cap2_userns (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+;;* lme
+
+;;* lmx 64 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server base_typeattr_224 (process (ptrace)))
+;;* lme
+
+;;* lmx 67 system/sepolicy/public/hal_configstore.te
+
+(neverallow hal_configstore_server base_typeattr_224 (file (relabelfrom relabelto)))
+(neverallow hal_configstore_server base_typeattr_224 (dir (relabelfrom relabelto)))
+(neverallow hal_configstore_server base_typeattr_224 (lnk_file (relabelfrom relabelto)))
+(neverallow hal_configstore_server base_typeattr_224 (chr_file (relabelfrom relabelto)))
+(neverallow hal_configstore_server base_typeattr_224 (blk_file (relabelfrom relabelto)))
+(neverallow hal_configstore_server base_typeattr_224 (sock_file (relabelfrom relabelto)))
+(neverallow hal_configstore_server base_typeattr_224 (fifo_file (relabelfrom relabelto)))
+;;* lme
+
+(allow hal_confirmationui_client hal_confirmationui_server (binder (call transfer)))
+(allow hal_confirmationui_server hal_confirmationui_client (binder (transfer)))
+(allow hal_confirmationui_client hal_confirmationui_server (fd (use)))
+(allow hal_confirmationui_client hal_confirmationui_hwservice (hwservice_manager (find)))
+(allow hal_confirmationui_server hal_confirmationui_hwservice (hwservice_manager (add find)))
+(allow hal_confirmationui_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_confirmationui.te
+
+(neverallow base_typeattr_387 hal_confirmationui_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_confirmationui.te
+
+(neverallow base_typeattr_388 hal_confirmationui_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_confirmationui_client hal_confirmationui_service (service_manager (find)))
+(allow hal_confirmationui_server hal_confirmationui_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_confirmationui.te
+
+(neverallow base_typeattr_387 hal_confirmationui_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_confirmationui.te
+
+(neverallow base_typeattr_389 hal_confirmationui_service (service_manager (find)))
+;;* lme
+
+(allow hal_confirmationui_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_confirmationui_server (binder (transfer)))
+(allow hal_confirmationui_server servicemanager (fd (use)))
+(allow hal_contexthub_client hal_contexthub_server (binder (call transfer)))
+(allow hal_contexthub_server hal_contexthub_client (binder (transfer)))
+(allow hal_contexthub_client hal_contexthub_server (fd (use)))
+(allow hal_contexthub_server hal_contexthub_client (binder (call transfer)))
+(allow hal_contexthub_client hal_contexthub_server (binder (transfer)))
+(allow hal_contexthub_server hal_contexthub_client (fd (use)))
+(allow hal_contexthub_server hal_contexthub_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_contexthub.te
+
+(neverallow base_typeattr_390 hal_contexthub_service (service_manager (add)))
+;;* lme
+
+(allow hal_contexthub_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_contexthub_server (binder (transfer)))
+(allow hal_contexthub_server servicemanager (fd (use)))
+(allow hal_contexthub_client hal_contexthub_service (service_manager (find)))
+(allow hal_contexthub_client hal_contexthub_hwservice (hwservice_manager (find)))
+(allow hal_contexthub_server hal_contexthub_hwservice (hwservice_manager (add find)))
+(allow hal_contexthub_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 10 system/sepolicy/public/hal_contexthub.te
+
+(neverallow base_typeattr_390 hal_contexthub_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/public/hal_contexthub.te
+
+(neverallow base_typeattr_391 hal_contexthub_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_drm_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_drm_server (binder (call transfer)))
+(allow servicemanager hal_drm_server (dir (search)))
+(allow servicemanager hal_drm_server (file (read open)))
+(allow servicemanager hal_drm_server (process (getattr)))
+(allow hal_drm_client hal_drm_server (binder (call transfer)))
+(allow hal_drm_server hal_drm_client (binder (transfer)))
+(allow hal_drm_client hal_drm_server (fd (use)))
+(allow hal_drm_server hal_drm_client (binder (call transfer)))
+(allow hal_drm_client hal_drm_server (binder (transfer)))
+(allow hal_drm_server hal_drm_client (fd (use)))
+(allow hal_drm_client hal_drm_hwservice (hwservice_manager (find)))
+(allow hal_drm_server hal_drm_hwservice (hwservice_manager (add find)))
+(allow hal_drm_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 6 system/sepolicy/public/hal_drm.te
+
+(neverallow base_typeattr_392 hal_drm_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_drm.te
+
+(neverallow base_typeattr_393 hal_drm_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_drm_client hal_drm_service (service_manager (find)))
+(allow hal_drm_server hal_drm_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/public/hal_drm.te
+
+(neverallow base_typeattr_392 hal_drm_service (service_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_drm.te
+
+(neverallow base_typeattr_394 hal_drm_service (service_manager (find)))
+;;* lme
+
+(allow hal_drm hidl_memory_hwservice (hwservice_manager (find)))
+(allow hal_drm self (process (execmem)))
+(allow hal_drm_server serialno_prop (file (read getattr map open)))
+(allow hal_drm_server drm_forcel3_prop (file (read getattr map open)))
+(allow hal_drm system_data_file (file (read getattr)))
+(allow hal_drm cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_drm cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_drm cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_drm cgroup (dir (write search)))
+(allow hal_drm cgroup (file (write lock append map open)))
+(allow hal_drm cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_drm cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_drm cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_drm cgroup_v2 (dir (write search)))
+(allow hal_drm cgroup_v2 (file (write lock append map open)))
+(allow hal_drm ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_drm hal_graphics_allocator (fd (use)))
+(allow hal_drm hal_allocator_server (fd (use)))
+(allow hal_drm mediaserver (fd (use)))
+(allow hal_drm sysfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_drm tee_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_drm_server base_typeattr_369 (fd (use)))
+(allowx hal_drm self (ioctl tcp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx hal_drm self (ioctl udp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx hal_drm self (ioctl rawip_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx hal_drm self (ioctl tcp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx hal_drm self (ioctl udp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx hal_drm self (ioctl rawip_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx hal_drm self (ioctl tcp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx hal_drm self (ioctl udp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx hal_drm self (ioctl rawip_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+;;* lmx 63 system/sepolicy/public/hal_drm.te
+
+(neverallow hal_drm_server fs_type (file (execute_no_trans)))
+(neverallow hal_drm_server file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 66 system/sepolicy/public/hal_drm.te
+
+(neverallowx hal_drm_server domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx hal_drm_server domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx hal_drm_server domain (ioctl rawip_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 66 system/sepolicy/public/hal_drm.te
+
+(neverallowx hal_drm_server domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx hal_drm_server domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx hal_drm_server domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 66 system/sepolicy/public/hal_drm.te
+
+(neverallowx hal_drm_server domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx hal_drm_server domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx hal_drm_server domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+(allow hal_dumpstate_client hal_dumpstate_server (binder (call transfer)))
+(allow hal_dumpstate_server hal_dumpstate_client (binder (transfer)))
+(allow hal_dumpstate_client hal_dumpstate_server (fd (use)))
+(allow hal_dumpstate_server hal_dumpstate_client (binder (call transfer)))
+(allow hal_dumpstate_client hal_dumpstate_server (binder (transfer)))
+(allow hal_dumpstate_server hal_dumpstate_client (fd (use)))
+(allow hal_dumpstate_server property_socket (sock_file (write)))
+(allow hal_dumpstate_server init (unix_stream_socket (connectto)))
+(allow hal_dumpstate_server hal_dumpstate_config_prop (property_service (set)))
+(allow hal_dumpstate_server hal_dumpstate_config_prop (file (read getattr map open)))
+(allow hal_dumpstate_client hal_dumpstate_hwservice (hwservice_manager (find)))
+(allow hal_dumpstate_server hal_dumpstate_hwservice (hwservice_manager (add find)))
+(allow hal_dumpstate_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 7 system/sepolicy/public/hal_dumpstate.te
+
+(neverallow base_typeattr_395 hal_dumpstate_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_dumpstate.te
+
+(neverallow base_typeattr_396 hal_dumpstate_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_dumpstate_client hal_dumpstate_service (service_manager (find)))
+(allow hal_dumpstate_server hal_dumpstate_service (service_manager (add find)))
+;;* lmx 8 system/sepolicy/public/hal_dumpstate.te
+
+(neverallow base_typeattr_395 hal_dumpstate_service (service_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/hal_dumpstate.te
+
+(neverallow base_typeattr_397 hal_dumpstate_service (service_manager (find)))
+;;* lme
+
+(allow hal_dumpstate_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_dumpstate_server (binder (transfer)))
+(allow hal_dumpstate_server servicemanager (fd (use)))
+(allow hal_dumpstate_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_dumpstate_server (binder (call transfer)))
+(allow servicemanager hal_dumpstate_server (dir (search)))
+(allow servicemanager hal_dumpstate_server (file (read open)))
+(allow servicemanager hal_dumpstate_server (process (getattr)))
+(allow hal_dumpstate shell_data_file (file (write)))
+(allow hal_dumpstate proc_interrupts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_dumpstate fscklogs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_dumpstate fscklogs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_dumpstate fscklogs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_evs_client hwservicemanager (binder (call transfer)))
+(allow hwservicemanager hal_evs_client (binder (call transfer)))
+(allow hwservicemanager hal_evs_client (dir (search)))
+(allow hwservicemanager hal_evs_client (file (read map open)))
+(allow hwservicemanager hal_evs_client (process (getattr)))
+(allow hal_evs_server hwservicemanager (binder (call transfer)))
+(allow hwservicemanager hal_evs_server (binder (call transfer)))
+(allow hwservicemanager hal_evs_server (dir (search)))
+(allow hwservicemanager hal_evs_server (file (read map open)))
+(allow hwservicemanager hal_evs_server (process (getattr)))
+(allow hal_evs_client hal_evs_server (binder (call transfer)))
+(allow hal_evs_server hal_evs_client (binder (transfer)))
+(allow hal_evs_client hal_evs_server (fd (use)))
+(allow hal_evs_server hal_evs_client (binder (call transfer)))
+(allow hal_evs_client hal_evs_server (binder (transfer)))
+(allow hal_evs_server hal_evs_client (fd (use)))
+(allow hal_evs_client hal_evs_hwservice (hwservice_manager (find)))
+(allow hal_evs_server hal_evs_hwservice (hwservice_manager (add find)))
+(allow hal_evs_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 12 system/sepolicy/public/hal_evs.te
+
+(neverallow base_typeattr_398 hal_evs_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow hal_evs_client hal_evs_service (service_manager (find)))
+(allow hal_evs_server hal_evs_service (service_manager (add find)))
+;;* lmx 15 system/sepolicy/public/hal_evs.te
+
+(neverallow base_typeattr_399 hal_evs_service (service_manager (add)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/hal_evs.te
+
+(neverallow base_typeattr_400 hal_evs_service (service_manager (find)))
+;;* lme
+
+(allow hal_face_client hal_face_server (binder (call transfer)))
+(allow hal_face_server hal_face_client (binder (transfer)))
+(allow hal_face_client hal_face_server (fd (use)))
+(allow hal_face_server hal_face_client (binder (call transfer)))
+(allow hal_face_client hal_face_server (binder (transfer)))
+(allow hal_face_server hal_face_client (fd (use)))
+(allow hal_face_client hal_face_hwservice (hwservice_manager (find)))
+(allow hal_face_server hal_face_hwservice (hwservice_manager (add find)))
+(allow hal_face_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_face.te
+
+(neverallow base_typeattr_401 hal_face_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_face.te
+
+(neverallow base_typeattr_402 hal_face_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_face_client hal_face_service (service_manager (find)))
+(allow hal_face_server hal_face_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_face.te
+
+(neverallow base_typeattr_401 hal_face_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_face.te
+
+(neverallow base_typeattr_403 hal_face_service (service_manager (find)))
+;;* lme
+
+(allow hal_face_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_face_server (binder (call transfer)))
+(allow servicemanager hal_face_server (dir (search)))
+(allow servicemanager hal_face_server (file (read open)))
+(allow servicemanager hal_face_server (process (getattr)))
+(allow hal_face ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_face face_vendor_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow hal_face face_vendor_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow hal_fastboot_client hal_fastboot_server (binder (call transfer)))
+(allow hal_fastboot_server hal_fastboot_client (binder (transfer)))
+(allow hal_fastboot_client hal_fastboot_server (fd (use)))
+(allow hal_fastboot_client hal_fastboot_service (service_manager (find)))
+(allow hal_fastboot_server hal_fastboot_service (service_manager (add find)))
+;;* lmx 4 system/sepolicy/public/hal_fastboot.te
+
+(neverallow base_typeattr_404 hal_fastboot_service (service_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_fastboot.te
+
+(neverallow base_typeattr_405 hal_fastboot_service (service_manager (find)))
+;;* lme
+
+(allow hal_fastboot_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_fastboot_server (binder (transfer)))
+(allow hal_fastboot_server servicemanager (fd (use)))
+(allow hal_fingerprint_client hal_fingerprint_server (binder (call transfer)))
+(allow hal_fingerprint_server hal_fingerprint_client (binder (transfer)))
+(allow hal_fingerprint_client hal_fingerprint_server (fd (use)))
+(allow hal_fingerprint_server hal_fingerprint_client (binder (call transfer)))
+(allow hal_fingerprint_client hal_fingerprint_server (binder (transfer)))
+(allow hal_fingerprint_server hal_fingerprint_client (fd (use)))
+(allow hal_fingerprint_client hal_fingerprint_hwservice (hwservice_manager (find)))
+(allow hal_fingerprint_server hal_fingerprint_hwservice (hwservice_manager (add find)))
+(allow hal_fingerprint_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_fingerprint.te
+
+(neverallow base_typeattr_406 hal_fingerprint_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_fingerprint.te
+
+(neverallow base_typeattr_407 hal_fingerprint_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_fingerprint_client hal_fingerprint_service (service_manager (find)))
+(allow hal_fingerprint_server hal_fingerprint_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_fingerprint.te
+
+(neverallow base_typeattr_406 hal_fingerprint_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_fingerprint.te
+
+(neverallow base_typeattr_408 hal_fingerprint_service (service_manager (find)))
+;;* lme
+
+(allow hal_fingerprint_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_fingerprint_server (binder (call transfer)))
+(allow servicemanager hal_fingerprint_server (dir (search)))
+(allow servicemanager hal_fingerprint_server (file (read open)))
+(allow servicemanager hal_fingerprint_server (process (getattr)))
+(allow hal_fingerprint ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_fingerprint fingerprint_vendor_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow hal_fingerprint fingerprint_vendor_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow hal_fingerprint cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_fingerprint cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_fingerprint cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_fingerprint cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_fingerprint cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_fingerprint cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_fingerprint sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_fingerprint sysfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_fingerprint sysfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_gatekeeper_client hal_gatekeeper_server (binder (call transfer)))
+(allow hal_gatekeeper_server hal_gatekeeper_client (binder (transfer)))
+(allow hal_gatekeeper_client hal_gatekeeper_server (fd (use)))
+(allow hal_gatekeeper_client hal_gatekeeper_hwservice (hwservice_manager (find)))
+(allow hal_gatekeeper_server hal_gatekeeper_hwservice (hwservice_manager (add find)))
+(allow hal_gatekeeper_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 3 system/sepolicy/public/hal_gatekeeper.te
+
+(neverallow base_typeattr_409 hal_gatekeeper_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/public/hal_gatekeeper.te
+
+(neverallow base_typeattr_410 hal_gatekeeper_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_gatekeeper_client hal_gatekeeper_service (service_manager (find)))
+(allow hal_gatekeeper_server hal_gatekeeper_service (service_manager (add find)))
+;;* lmx 4 system/sepolicy/public/hal_gatekeeper.te
+
+(neverallow base_typeattr_409 hal_gatekeeper_service (service_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_gatekeeper.te
+
+(neverallow base_typeattr_411 hal_gatekeeper_service (service_manager (find)))
+;;* lme
+
+(allow hal_gatekeeper_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_gatekeeper_server (binder (transfer)))
+(allow hal_gatekeeper_server servicemanager (fd (use)))
+(allow hal_gatekeeper tee_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_gatekeeper ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_gnss_client hal_gnss_server (binder (call transfer)))
+(allow hal_gnss_server hal_gnss_client (binder (transfer)))
+(allow hal_gnss_client hal_gnss_server (fd (use)))
+(allow hal_gnss_server hal_gnss_client (binder (call transfer)))
+(allow hal_gnss_client hal_gnss_server (binder (transfer)))
+(allow hal_gnss_server hal_gnss_client (fd (use)))
+(allow hal_gnss_client hal_gnss_hwservice (hwservice_manager (find)))
+(allow hal_gnss_server hal_gnss_hwservice (hwservice_manager (add find)))
+(allow hal_gnss_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_gnss.te
+
+(neverallow base_typeattr_412 hal_gnss_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_gnss.te
+
+(neverallow base_typeattr_413 hal_gnss_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_gnss_client hal_gnss_service (service_manager (find)))
+(allow hal_gnss_server hal_gnss_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_gnss.te
+
+(neverallow base_typeattr_412 hal_gnss_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_gnss.te
+
+(neverallow base_typeattr_414 hal_gnss_service (service_manager (find)))
+;;* lme
+
+(allow hal_gnss_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_gnss_server (binder (call transfer)))
+(allow servicemanager hal_gnss_server (dir (search)))
+(allow servicemanager hal_gnss_server (file (read open)))
+(allow servicemanager hal_gnss_server (process (getattr)))
+(allow hal_gnss_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_gnss_client (binder (call transfer)))
+(allow servicemanager hal_gnss_client (dir (search)))
+(allow servicemanager hal_gnss_client (file (read open)))
+(allow servicemanager hal_gnss_client (process (getattr)))
+(allow hal_graphics_allocator_client hal_graphics_allocator_server (binder (call transfer)))
+(allow hal_graphics_allocator_server hal_graphics_allocator_client (binder (transfer)))
+(allow hal_graphics_allocator_client hal_graphics_allocator_server (fd (use)))
+(allow hal_graphics_allocator_client hal_graphics_allocator_hwservice (hwservice_manager (find)))
+(allow hal_graphics_allocator_server hal_graphics_allocator_hwservice (hwservice_manager (add find)))
+(allow hal_graphics_allocator_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_graphics_allocator.te
+
+(neverallow base_typeattr_415 hal_graphics_allocator_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_graphics_allocator.te
+
+(neverallow base_typeattr_416 hal_graphics_allocator_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_graphics_allocator_client hal_graphics_mapper_hwservice (hwservice_manager (find)))
+(allow hal_graphics_allocator_client hal_graphics_mapper_service (service_manager (find)))
+(allow hal_graphics_allocator_client same_process_hal_file (file (read getattr map execute open)))
+(allow hal_graphics_allocator gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_graphics_allocator gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_graphics_allocator ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_graphics_allocator dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_graphics_allocator dmabuf_system_secure_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_graphics_allocator self (capability (sys_nice)))
+(allow hal_graphics_allocator self (cap_userns (sys_nice)))
+(allow hal_graphics_allocator_client hal_graphics_allocator_service (service_manager (find)))
+(allow hal_graphics_allocator_server hal_graphics_allocator_service (service_manager (add find)))
+;;* lmx 22 system/sepolicy/public/hal_graphics_allocator.te
+
+(neverallow base_typeattr_415 hal_graphics_allocator_service (service_manager (add)))
+;;* lme
+
+;;* lmx 22 system/sepolicy/public/hal_graphics_allocator.te
+
+(neverallow base_typeattr_417 hal_graphics_allocator_service (service_manager (find)))
+;;* lme
+
+(allow hal_graphics_allocator_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_graphics_allocator_server (binder (transfer)))
+(allow hal_graphics_allocator_server servicemanager (fd (use)))
+(allow hal_graphics_allocator_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_graphics_allocator_client (binder (transfer)))
+(allow hal_graphics_allocator_client servicemanager (fd (use)))
+(allow hal_graphics_composer_client hal_graphics_composer_server (binder (call transfer)))
+(allow hal_graphics_composer_server hal_graphics_composer_client (binder (transfer)))
+(allow hal_graphics_composer_client hal_graphics_composer_server (fd (use)))
+(allow hal_graphics_composer_server hal_graphics_composer_client (binder (call transfer)))
+(allow hal_graphics_composer_client hal_graphics_composer_server (binder (transfer)))
+(allow hal_graphics_composer_server hal_graphics_composer_client (fd (use)))
+(allow hal_graphics_composer_client hal_graphics_composer_server_tmpfs (file (read write getattr map)))
+(allow hal_graphics_composer_server hal_graphics_composer_client_tmpfs (file (read write getattr map)))
+(allow hal_graphics_composer_client hal_graphics_composer_hwservice (hwservice_manager (find)))
+(allow hal_graphics_composer_server hal_graphics_composer_hwservice (hwservice_manager (add find)))
+(allow hal_graphics_composer_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 11 system/sepolicy/public/hal_graphics_composer.te
+
+(neverallow base_typeattr_418 hal_graphics_composer_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/public/hal_graphics_composer.te
+
+(neverallow base_typeattr_419 hal_graphics_composer_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_graphics_composer_server hal_graphics_mapper_hwservice (hwservice_manager (find)))
+(allow hal_graphics_composer gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_graphics_composer gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_graphics_composer ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_graphics_composer dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_graphics_composer hal_graphics_allocator (fd (use)))
+(allow hal_graphics_composer graphics_device (dir (search)))
+(allow hal_graphics_composer graphics_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_graphics_composer system_server (fd (use)))
+(allow hal_graphics_composer bootanim (fd (use)))
+(allow hal_graphics_composer appdomain (fd (use)))
+(allow hal_graphics_composer self (capability (sys_nice)))
+(allow hal_graphics_composer self (cap_userns (sys_nice)))
+(allow hal_graphics_composer_server hal_graphics_composer_client (fifo_file (write)))
+(allow hal_graphics_composer_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_graphics_composer_client (binder (transfer)))
+(allow hal_graphics_composer_client servicemanager (fd (use)))
+(allow hal_graphics_composer_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_graphics_composer_server (binder (transfer)))
+(allow hal_graphics_composer_server servicemanager (fd (use)))
+(allow hal_graphics_composer_client hal_graphics_composer_service (service_manager (find)))
+(allow hal_graphics_composer_server hal_graphics_composer_service (service_manager (add find)))
+;;* lmx 42 system/sepolicy/public/hal_graphics_composer.te
+
+(neverallow base_typeattr_418 hal_graphics_composer_service (service_manager (add)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/public/hal_graphics_composer.te
+
+(neverallow base_typeattr_420 hal_graphics_composer_service (service_manager (find)))
+;;* lme
+
+(allow hal_health_client hal_health_server (binder (call transfer)))
+(allow hal_health_server hal_health_client (binder (transfer)))
+(allow hal_health_client hal_health_server (fd (use)))
+(allow hal_health_server hal_health_client (binder (call transfer)))
+(allow hal_health_client hal_health_server (binder (transfer)))
+(allow hal_health_server hal_health_client (fd (use)))
+(allow hal_health_client hal_health_hwservice (hwservice_manager (find)))
+(allow hal_health_server hal_health_hwservice (hwservice_manager (add find)))
+(allow hal_health_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_health.te
+
+(neverallow base_typeattr_421 hal_health_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_health.te
+
+(neverallow base_typeattr_422 hal_health_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_health_client hal_health_service (service_manager (find)))
+(allow hal_health_server hal_health_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_health.te
+
+(neverallow base_typeattr_421 hal_health_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_health.te
+
+(neverallow base_typeattr_423 hal_health_service (service_manager (find)))
+;;* lme
+
+(allow hal_health_server self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_health_server sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_health_server sysfs_batteryinfo (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_health_server sysfs_batteryinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_health_server sysfs_batteryinfo (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_health_server sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_health_server self (capability2 (block_suspend)))
+(allow hal_health_server self (cap2_userns (block_suspend)))
+(allow hal_health_server system_suspend_server (binder (call transfer)))
+(allow system_suspend_server hal_health_server (binder (transfer)))
+(allow hal_health_server system_suspend_server (fd (use)))
+(allow hal_health_server system_suspend_hwservice (hwservice_manager (find)))
+(allow hal_health_server hwservicemanager (binder (call transfer)))
+(allow hwservicemanager hal_health_server (binder (call transfer)))
+(allow hwservicemanager hal_health_server (dir (search)))
+(allow hwservicemanager hal_health_server (file (read map open)))
+(allow hwservicemanager hal_health_server (process (getattr)))
+(allow hal_health_server hwservicemanager_prop (file (read getattr map open)))
+(allow hal_health_server hidl_manager_hwservice (hwservice_manager (find)))
+(allow hal_health_server hal_system_suspend_service (service_manager (find)))
+(allow hal_health_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_health_server (binder (call transfer)))
+(allow servicemanager hal_health_server (dir (search)))
+(allow servicemanager hal_health_server (file (read open)))
+(allow servicemanager hal_health_server (process (getattr)))
+(allow hal_health_server kmsg_device (chr_file (write getattr lock append map open)))
+(allow hal_health_server self (capability2 (wake_alarm)))
+(allow hal_health_server fs_bpf_vendor (dir (search)))
+(allow hal_health_server fs_bpf_vendor (file (read)))
+(allow hal_health_server bpfloader (bpf (prog_run)))
+(allow hal_health_storage_client hal_health_storage_server (binder (call transfer)))
+(allow hal_health_storage_server hal_health_storage_client (binder (transfer)))
+(allow hal_health_storage_client hal_health_storage_server (fd (use)))
+(allow hal_health_storage_server hal_health_storage_client (binder (call transfer)))
+(allow hal_health_storage_client hal_health_storage_server (binder (transfer)))
+(allow hal_health_storage_server hal_health_storage_client (fd (use)))
+(allow hal_health_storage_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_health_storage_server (binder (call transfer)))
+(allow servicemanager hal_health_storage_server (dir (search)))
+(allow servicemanager hal_health_storage_server (file (read open)))
+(allow servicemanager hal_health_storage_server (process (getattr)))
+(allow hal_health_storage_client hal_health_storage_hwservice (hwservice_manager (find)))
+(allow hal_health_storage_server hal_health_storage_hwservice (hwservice_manager (add find)))
+(allow hal_health_storage_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 7 system/sepolicy/public/hal_health_storage.te
+
+(neverallow base_typeattr_424 hal_health_storage_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_health_storage.te
+
+(neverallow base_typeattr_425 hal_health_storage_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_health_storage_client hal_health_storage_service (service_manager (find)))
+(allow hal_health_storage_server hal_health_storage_service (service_manager (add find)))
+;;* lmx 8 system/sepolicy/public/hal_health_storage.te
+
+(neverallow base_typeattr_424 hal_health_storage_service (service_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/hal_health_storage.te
+
+(neverallow base_typeattr_426 hal_health_storage_service (service_manager (find)))
+;;* lme
+
+(allow hal_health_storage_server gsi_metadata_file_type (dir (search)))
+(allow hal_health_storage_server metadata_file (dir (search)))
+(allow hal_health_storage_server gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_health_storage_server proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_health_storage_server proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_identity_client hal_identity_server (binder (call transfer)))
+(allow hal_identity_server hal_identity_client (binder (transfer)))
+(allow hal_identity_client hal_identity_server (fd (use)))
+(allow hal_identity_client hal_identity_service (service_manager (find)))
+(allow hal_identity_server hal_identity_service (service_manager (add find)))
+;;* lmx 4 system/sepolicy/public/hal_identity.te
+
+(neverallow base_typeattr_427 hal_identity_service (service_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_identity.te
+
+(neverallow base_typeattr_428 hal_identity_service (service_manager (find)))
+;;* lme
+
+(allow hal_identity_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_identity_server (binder (transfer)))
+(allow hal_identity_server servicemanager (fd (use)))
+(allow hal_input_classifier_client hal_input_classifier_server (binder (call transfer)))
+(allow hal_input_classifier_server hal_input_classifier_client (binder (transfer)))
+(allow hal_input_classifier_client hal_input_classifier_server (fd (use)))
+(allow hal_input_classifier_client hal_input_classifier_hwservice (hwservice_manager (find)))
+(allow hal_input_classifier_server hal_input_classifier_hwservice (hwservice_manager (add find)))
+(allow hal_input_classifier_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_input_classifier.te
+
+(neverallow base_typeattr_429 hal_input_classifier_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_input_classifier.te
+
+(neverallow base_typeattr_430 hal_input_classifier_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_input_processor_client hal_input_processor_server (binder (call transfer)))
+(allow hal_input_processor_server hal_input_processor_client (binder (transfer)))
+(allow hal_input_processor_client hal_input_processor_server (fd (use)))
+(allow hal_input_processor_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_input_processor_server (binder (transfer)))
+(allow hal_input_processor_server servicemanager (fd (use)))
+(allow hal_input_processor_client hal_input_processor_service (service_manager (find)))
+(allow hal_input_processor_server hal_input_processor_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_input_processor.te
+
+(neverallow base_typeattr_431 hal_input_processor_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_input_processor.te
+
+(neverallow base_typeattr_432 hal_input_processor_service (service_manager (find)))
+;;* lme
+
+(allow hal_input_processor_server dumpstate (fifo_file (write)))
+(allow hal_ir_client hal_ir_server (binder (call transfer)))
+(allow hal_ir_server hal_ir_client (binder (transfer)))
+(allow hal_ir_client hal_ir_server (fd (use)))
+(allow hal_ir_server hal_ir_client (binder (call transfer)))
+(allow hal_ir_client hal_ir_server (binder (transfer)))
+(allow hal_ir_server hal_ir_client (fd (use)))
+(allow hal_ir_client hal_ir_service (service_manager (find)))
+(allow hal_ir_server hal_ir_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_ir.te
+
+(neverallow base_typeattr_433 hal_ir_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_ir.te
+
+(neverallow base_typeattr_434 hal_ir_service (service_manager (find)))
+;;* lme
+
+(allow hal_ir_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_ir_server (binder (transfer)))
+(allow hal_ir_server servicemanager (fd (use)))
+(allow hal_ir_client hal_ir_hwservice (hwservice_manager (find)))
+(allow hal_ir_server hal_ir_hwservice (hwservice_manager (add find)))
+(allow hal_ir_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 8 system/sepolicy/public/hal_ir.te
+
+(neverallow base_typeattr_433 hal_ir_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/hal_ir.te
+
+(neverallow base_typeattr_435 hal_ir_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_ivn_client hal_ivn_server (binder (call transfer)))
+(allow hal_ivn_server hal_ivn_client (binder (transfer)))
+(allow hal_ivn_client hal_ivn_server (fd (use)))
+(allow hal_ivn_client hal_ivn_service (service_manager (find)))
+(allow hal_ivn_server hal_ivn_service (service_manager (add find)))
+;;* lmx 4 system/sepolicy/public/hal_ivn.te
+
+(neverallow base_typeattr_436 hal_ivn_service (service_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_ivn.te
+
+(neverallow base_typeattr_437 hal_ivn_service (service_manager (find)))
+;;* lme
+
+(allow hal_keymaster_client hal_keymaster_server (binder (call transfer)))
+(allow hal_keymaster_server hal_keymaster_client (binder (transfer)))
+(allow hal_keymaster_client hal_keymaster_server (fd (use)))
+(allow hal_keymaster_client hal_keymaster_hwservice (hwservice_manager (find)))
+(allow hal_keymaster_server hal_keymaster_hwservice (hwservice_manager (add find)))
+(allow hal_keymaster_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_keymaster.te
+
+(neverallow base_typeattr_438 hal_keymaster_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_keymaster.te
+
+(neverallow base_typeattr_439 hal_keymaster_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_keymaster tee_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_keymaster ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_keymint_client hal_keymint_server (binder (call transfer)))
+(allow hal_keymint_server hal_keymint_client (binder (transfer)))
+(allow hal_keymint_client hal_keymint_server (fd (use)))
+(allow hal_keymint_client hal_keymint_service (service_manager (find)))
+(allow hal_keymint_server hal_keymint_service (service_manager (add find)))
+;;* lmx 3 system/sepolicy/public/hal_keymint.te
+
+(neverallow base_typeattr_440 hal_keymint_service (service_manager (add)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/public/hal_keymint.te
+
+(neverallow base_typeattr_441 hal_keymint_service (service_manager (find)))
+;;* lme
+
+(allow hal_keymint_client hal_remotelyprovisionedcomponent_service (service_manager (find)))
+(allow hal_keymint_server hal_remotelyprovisionedcomponent_service (service_manager (add find)))
+;;* lmx 4 system/sepolicy/public/hal_keymint.te
+
+(neverallow base_typeattr_440 hal_remotelyprovisionedcomponent_service (service_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_keymint.te
+
+(neverallow base_typeattr_441 hal_remotelyprovisionedcomponent_service (service_manager (find)))
+;;* lme
+
+(allow hal_keymint_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_keymint_server (binder (transfer)))
+(allow hal_keymint_server servicemanager (fd (use)))
+(allow hal_keymint_server tee_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_keymint_server ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_light_client hal_light_server (binder (call transfer)))
+(allow hal_light_server hal_light_client (binder (transfer)))
+(allow hal_light_client hal_light_server (fd (use)))
+(allow hal_light_server hal_light_client (binder (call transfer)))
+(allow hal_light_client hal_light_server (binder (transfer)))
+(allow hal_light_server hal_light_client (fd (use)))
+(allow hal_light_client hal_light_hwservice (hwservice_manager (find)))
+(allow hal_light_server hal_light_hwservice (hwservice_manager (add find)))
+(allow hal_light_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_light.te
+
+(neverallow base_typeattr_442 hal_light_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_light.te
+
+(neverallow base_typeattr_443 hal_light_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_light_client hal_light_service (service_manager (find)))
+(allow hal_light_server hal_light_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_light.te
+
+(neverallow base_typeattr_442 hal_light_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_light.te
+
+(neverallow base_typeattr_444 hal_light_service (service_manager (find)))
+;;* lme
+
+(allow hal_light_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_light_server (binder (transfer)))
+(allow hal_light_server servicemanager (fd (use)))
+(allow hal_light_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_light_client (binder (call transfer)))
+(allow servicemanager hal_light_client (dir (search)))
+(allow servicemanager hal_light_client (file (read open)))
+(allow servicemanager hal_light_client (process (getattr)))
+(allow hal_light_server dumpstate (fifo_file (write)))
+(allow hal_light sysfs_leds (lnk_file (read)))
+(allow hal_light sysfs_leds (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_light sysfs_leds (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_lowpan_client hal_lowpan_server (binder (call transfer)))
+(allow hal_lowpan_server hal_lowpan_client (binder (transfer)))
+(allow hal_lowpan_client hal_lowpan_server (fd (use)))
+(allow hal_lowpan_server hal_lowpan_client (binder (call transfer)))
+(allow hal_lowpan_client hal_lowpan_server (binder (transfer)))
+(allow hal_lowpan_server hal_lowpan_client (fd (use)))
+(allow hal_lowpan_client hal_lowpan_hwservice (hwservice_manager (find)))
+(allow hal_lowpan_server hal_lowpan_hwservice (hwservice_manager (add find)))
+(allow hal_lowpan_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 7 system/sepolicy/public/hal_lowpan.te
+
+(neverallow base_typeattr_445 hal_lowpan_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_lowpan.te
+
+(neverallow base_typeattr_446 hal_lowpan_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_lowpan_server property_socket (sock_file (write)))
+(allow hal_lowpan_server init (unix_stream_socket (connectto)))
+(allow hal_lowpan_server lowpan_prop (property_service (set)))
+(allow hal_lowpan_server lowpan_prop (file (read getattr map open)))
+(allow hal_lowpan_server lowpan_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lmx 20 system/sepolicy/public/hal_lowpan.te
+
+(neverallow base_typeattr_447 lowpan_device (chr_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow hal_macsec_client hal_macsec_server (binder (call transfer)))
+(allow hal_macsec_server hal_macsec_client (binder (transfer)))
+(allow hal_macsec_client hal_macsec_server (fd (use)))
+(allow hal_macsec_server hal_macsec_client (binder (call transfer)))
+(allow hal_macsec_client hal_macsec_server (binder (transfer)))
+(allow hal_macsec_server hal_macsec_client (fd (use)))
+(allow hal_macsec_client hal_macsec_service (service_manager (find)))
+(allow hal_macsec_server hal_macsec_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_macsec.te
+
+(neverallow base_typeattr_448 hal_macsec_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_macsec.te
+
+(neverallow base_typeattr_449 hal_macsec_service (service_manager (find)))
+;;* lme
+
+(allow hal_macsec_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_macsec_server (binder (call transfer)))
+(allow servicemanager hal_macsec_server (dir (search)))
+(allow servicemanager hal_macsec_server (file (read open)))
+(allow servicemanager hal_macsec_server (process (getattr)))
+(allow hal_memtrack_client hal_memtrack_server (binder (call transfer)))
+(allow hal_memtrack_server hal_memtrack_client (binder (transfer)))
+(allow hal_memtrack_client hal_memtrack_server (fd (use)))
+(allow hal_memtrack_client hal_memtrack_hwservice (hwservice_manager (find)))
+(allow hal_memtrack_server hal_memtrack_hwservice (hwservice_manager (add find)))
+(allow hal_memtrack_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_memtrack.te
+
+(neverallow base_typeattr_450 hal_memtrack_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_memtrack.te
+
+(neverallow base_typeattr_451 hal_memtrack_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_memtrack_client hal_memtrack_service (service_manager (find)))
+(allow hal_memtrack_server hal_memtrack_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_memtrack.te
+
+(neverallow base_typeattr_450 hal_memtrack_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_memtrack.te
+
+(neverallow base_typeattr_452 hal_memtrack_service (service_manager (find)))
+;;* lme
+
+(allow hal_memtrack_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_memtrack_server (binder (transfer)))
+(allow hal_memtrack_server servicemanager (fd (use)))
+(allow hal_neuralnetworks_client hal_neuralnetworks_server (binder (call transfer)))
+(allow hal_neuralnetworks_server hal_neuralnetworks_client (binder (transfer)))
+(allow hal_neuralnetworks_client hal_neuralnetworks_server (fd (use)))
+(allow hal_neuralnetworks_server hal_neuralnetworks_client (binder (call transfer)))
+(allow hal_neuralnetworks_client hal_neuralnetworks_server (binder (transfer)))
+(allow hal_neuralnetworks_server hal_neuralnetworks_client (fd (use)))
+(allow hal_neuralnetworks_client hal_neuralnetworks_hwservice (hwservice_manager (find)))
+(allow hal_neuralnetworks_server hal_neuralnetworks_hwservice (hwservice_manager (add find)))
+(allow hal_neuralnetworks_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_neuralnetworks.te
+
+(neverallow base_typeattr_453 hal_neuralnetworks_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_neuralnetworks.te
+
+(neverallow base_typeattr_454 hal_neuralnetworks_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_neuralnetworks hidl_memory_hwservice (hwservice_manager (find)))
+(allow hal_neuralnetworks hal_allocator (fd (use)))
+(allow hal_neuralnetworks hal_graphics_mapper_hwservice (hwservice_manager (find)))
+(allow hal_neuralnetworks hal_graphics_allocator (fd (use)))
+(allow hal_neuralnetworks gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_neuralnetworks gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_neuralnetworks_server app_data_file (file (read write getattr map)))
+(allow hal_neuralnetworks_server privapp_data_file (file (read write getattr map)))
+(allow hal_neuralnetworks_server shell_data_file (file (read write getattr map)))
+(allow hal_neuralnetworks_server ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_neuralnetworks_server storage_file (file (read getattr map)))
+(allow hal_neuralnetworks_server apk_data_file (file (read getattr map)))
+(allow hal_neuralnetworks_client nnapi_ext_deny_product_prop (file (read getattr map open)))
+(allow hal_neuralnetworks_client device_config_nnapi_native_prop (file (read getattr map open)))
+;;* lmx 39 system/sepolicy/public/hal_neuralnetworks.te
+
+(neverallow base_typeattr_223 nnapi_ext_deny_product_prop (property_service (set)))
+;;* lme
+
+(allow hal_neuralnetworks_client hal_neuralnetworks_service (service_manager (find)))
+(allow hal_neuralnetworks_server hal_neuralnetworks_service (service_manager (add find)))
+;;* lmx 42 system/sepolicy/public/hal_neuralnetworks.te
+
+(neverallow base_typeattr_453 hal_neuralnetworks_service (service_manager (add)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/public/hal_neuralnetworks.te
+
+(neverallow base_typeattr_455 hal_neuralnetworks_service (service_manager (find)))
+;;* lme
+
+(allow hal_neuralnetworks_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_neuralnetworks_server (binder (transfer)))
+(allow hal_neuralnetworks_server servicemanager (fd (use)))
+(allow hal_neuralnetworks_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_neuralnetworks_server (binder (call transfer)))
+(allow servicemanager hal_neuralnetworks_server (dir (search)))
+(allow servicemanager hal_neuralnetworks_server (file (read open)))
+(allow servicemanager hal_neuralnetworks_server (process (getattr)))
+(allow hal_neuralnetworks_server dumpstate (fifo_file (write)))
+;;* lmx 16 system/sepolicy/public/hal_neverallows.te
+
+(neverallow base_typeattr_456 self (capability (net_admin net_raw)))
+(neverallow base_typeattr_456 self (cap_userns (net_admin net_raw)))
+;;* lme
+
+;;* lmx 38 system/sepolicy/public/hal_neverallows.te
+
+(neverallow base_typeattr_457 domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow base_typeattr_457 domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 54 system/sepolicy/public/hal_neverallows.te
+
+(neverallow base_typeattr_458 domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+;;* lmx 58 system/sepolicy/public/hal_neverallows.te
+
+(neverallow hal_uwb_vendor_server self (capability (net_raw)))
+(neverallow hal_uwb_vendor_server self (cap_userns (net_raw)))
+;;* lme
+
+;;* lmx 62 system/sepolicy/public/hal_neverallows.te
+
+(neverallow hal_uwb_vendor_server domain (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_route_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_readpriv nlmsg_getneigh)))
+(neverallow hal_uwb_vendor_server domain (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow hal_uwb_vendor_server domain (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow hal_uwb_vendor_server domain (netlink_selinux_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow hal_uwb_vendor_server domain (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow hal_uwb_vendor_server domain (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow hal_uwb_vendor_server domain (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 95 system/sepolicy/public/hal_neverallows.te
+
+(neverallow base_typeattr_459 base_typeattr_460 (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 97 system/sepolicy/public/hal_neverallows.te
+
+(neverallow base_typeattr_223 halserverdomain (process (transition)))
+;;* lme
+
+;;* lmx 101 system/sepolicy/public/hal_neverallows.te
+
+(neverallow base_typeattr_224 halserverdomain (process (dyntransition)))
+;;* lme
+
+(allow hal_nfc_client hal_nfc_server (binder (call transfer)))
+(allow hal_nfc_server hal_nfc_client (binder (transfer)))
+(allow hal_nfc_client hal_nfc_server (fd (use)))
+(allow hal_nfc_server hal_nfc_client (binder (call transfer)))
+(allow hal_nfc_client hal_nfc_server (binder (transfer)))
+(allow hal_nfc_server hal_nfc_client (fd (use)))
+(allow hal_nfc_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_nfc_server (binder (transfer)))
+(allow hal_nfc_server servicemanager (fd (use)))
+(allow hal_nfc_client hal_nfc_hwservice (hwservice_manager (find)))
+(allow hal_nfc_server hal_nfc_hwservice (hwservice_manager (add find)))
+(allow hal_nfc_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 6 system/sepolicy/public/hal_nfc.te
+
+(neverallow base_typeattr_461 hal_nfc_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_nfc.te
+
+(neverallow base_typeattr_462 hal_nfc_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_nfc_client hal_nfc_service (service_manager (find)))
+(allow hal_nfc_server hal_nfc_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/public/hal_nfc.te
+
+(neverallow base_typeattr_461 hal_nfc_service (service_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_nfc.te
+
+(neverallow base_typeattr_463 hal_nfc_service (service_manager (find)))
+;;* lme
+
+(allow hal_nfc property_socket (sock_file (write)))
+(allow hal_nfc init (unix_stream_socket (connectto)))
+(allow hal_nfc nfc_prop (property_service (set)))
+(allow hal_nfc nfc_prop (file (read getattr map open)))
+(allow hal_nfc nfc_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_nlinterceptor_client hal_nlinterceptor_server (binder (call transfer)))
+(allow hal_nlinterceptor_server hal_nlinterceptor_client (binder (transfer)))
+(allow hal_nlinterceptor_client hal_nlinterceptor_server (fd (use)))
+(allow hal_nlinterceptor_client hal_nlinterceptor_service (service_manager (find)))
+(allow hal_nlinterceptor_server hal_nlinterceptor_service (service_manager (add find)))
+;;* lmx 3 system/sepolicy/public/hal_nlinterceptor.te
+
+(neverallow base_typeattr_464 hal_nlinterceptor_service (service_manager (add)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/public/hal_nlinterceptor.te
+
+(neverallow base_typeattr_465 hal_nlinterceptor_service (service_manager (find)))
+;;* lme
+
+(allow hal_nlinterceptor servicemanager (binder (call transfer)))
+(allow servicemanager hal_nlinterceptor (binder (transfer)))
+(allow hal_nlinterceptor servicemanager (fd (use)))
+(allow hal_nlinterceptor self (capability (net_admin)))
+(allow hal_nlinterceptor self (cap_userns (net_admin)))
+(allow hal_nlinterceptor self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_nlinterceptor self (netlink_route_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_write nlmsg_readpriv)))
+(allow hal_oemlock_client hal_oemlock_server (binder (call transfer)))
+(allow hal_oemlock_server hal_oemlock_client (binder (transfer)))
+(allow hal_oemlock_client hal_oemlock_server (fd (use)))
+(allow hal_oemlock_client hal_oemlock_hwservice (hwservice_manager (find)))
+(allow hal_oemlock_server hal_oemlock_hwservice (hwservice_manager (add find)))
+(allow hal_oemlock_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_oemlock.te
+
+(neverallow base_typeattr_466 hal_oemlock_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_oemlock.te
+
+(neverallow base_typeattr_467 hal_oemlock_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_oemlock_client hal_oemlock_service (service_manager (find)))
+(allow hal_oemlock_server hal_oemlock_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_oemlock.te
+
+(neverallow base_typeattr_466 hal_oemlock_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_oemlock.te
+
+(neverallow base_typeattr_468 hal_oemlock_service (service_manager (find)))
+;;* lme
+
+(allow hal_oemlock_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_oemlock_server (binder (transfer)))
+(allow hal_oemlock_server servicemanager (fd (use)))
+(allow hal_omx_server binderservicedomain (binder (call transfer)))
+(allow binderservicedomain hal_omx_server (binder (transfer)))
+(allow hal_omx_server binderservicedomain (fd (use)))
+(allow hal_omx_server base_typeattr_369 (binder (call transfer)))
+(allow base_typeattr_369 hal_omx_server (binder (transfer)))
+(allow hal_omx_server base_typeattr_369 (fd (use)))
+(allow hal_omx_server hal_graphics_composer (fd (use)))
+(allow hal_omx_server ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_omx_server hal_camera (fd (use)))
+(allow hal_omx_server anr_data_file (file (append)))
+(allow hal_omx_server dumpstate (fd (use)))
+(allow hal_omx_server incidentd (fd (use)))
+(allow hal_omx_server dumpstate (fifo_file (write append)))
+(allow hal_omx_server incidentd (fifo_file (write append)))
+(allow hal_omx_server system_server (fifo_file (write append)))
+(allow hal_omx_server tombstoned (unix_stream_socket (connectto)))
+(allow hal_omx_server tombstoned (fd (use)))
+(allow hal_omx_server tombstoned_crash_socket (sock_file (write)))
+(allow hal_omx_server tombstone_data_file (file (append)))
+(allow hal_omx_server bufferhubd (fd (use)))
+(allow hal_omx_client hal_omx_hwservice (hwservice_manager (find)))
+(allow hal_omx_server hal_omx_hwservice (hwservice_manager (add find)))
+(allow hal_omx_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 21 system/sepolicy/public/hal_omx.te
+
+(neverallow base_typeattr_469 hal_omx_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 21 system/sepolicy/public/hal_omx.te
+
+(neverallow base_typeattr_470 hal_omx_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_omx_client hidl_token_hwservice (hwservice_manager (find)))
+(allow hal_omx_client media_variant_prop (file (read getattr map open)))
+(allow hal_omx_server media_variant_prop (file (read getattr map open)))
+(allow hal_omx_client hal_omx_server (binder (call transfer)))
+(allow hal_omx_server hal_omx_client (binder (transfer)))
+(allow hal_omx_client hal_omx_server (fd (use)))
+(allow hal_omx_server hal_omx_client (binder (call transfer)))
+(allow hal_omx_client hal_omx_server (binder (transfer)))
+(allow hal_omx_server hal_omx_client (fd (use)))
+;;* lmx 37 system/sepolicy/public/hal_omx.te
+
+(neverallow hal_omx_server fs_type (file (execute_no_trans)))
+(neverallow hal_omx_server file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 49 system/sepolicy/public/hal_omx.te
+
+(neverallow hal_omx_server domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow hal_omx_server domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 50 system/sepolicy/public/hal_omx.te
+
+(neverallow hal_omx_server domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+(allow hal_power_client hal_power_server (binder (call transfer)))
+(allow hal_power_server hal_power_client (binder (transfer)))
+(allow hal_power_client hal_power_server (fd (use)))
+(allow hal_power_server hal_power_client (binder (call transfer)))
+(allow hal_power_client hal_power_server (binder (transfer)))
+(allow hal_power_server hal_power_client (fd (use)))
+(allow hal_power_client hal_power_hwservice (hwservice_manager (find)))
+(allow hal_power_server hal_power_hwservice (hwservice_manager (add find)))
+(allow hal_power_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_power.te
+
+(neverallow base_typeattr_471 hal_power_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_power.te
+
+(neverallow base_typeattr_472 hal_power_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_power_client hal_power_service (service_manager (find)))
+(allow hal_power_server hal_power_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_power.te
+
+(neverallow base_typeattr_471 hal_power_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_power.te
+
+(neverallow base_typeattr_473 hal_power_service (service_manager (find)))
+;;* lme
+
+(allow hal_power_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_power_server (binder (transfer)))
+(allow hal_power_server servicemanager (fd (use)))
+(allow hal_power_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_power_client (binder (transfer)))
+(allow hal_power_client servicemanager (fd (use)))
+(allow hal_power_stats_client hal_power_stats_server (binder (call transfer)))
+(allow hal_power_stats_server hal_power_stats_client (binder (transfer)))
+(allow hal_power_stats_client hal_power_stats_server (fd (use)))
+(allow hal_power_stats_server hal_power_stats_client (binder (call transfer)))
+(allow hal_power_stats_client hal_power_stats_server (binder (transfer)))
+(allow hal_power_stats_server hal_power_stats_client (fd (use)))
+(allow hal_power_stats_client hal_power_stats_hwservice (hwservice_manager (find)))
+(allow hal_power_stats_server hal_power_stats_hwservice (hwservice_manager (add find)))
+(allow hal_power_stats_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_power_stats.te
+
+(neverallow base_typeattr_474 hal_power_stats_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_power_stats.te
+
+(neverallow base_typeattr_475 hal_power_stats_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_power_stats_client hal_power_stats_service (service_manager (find)))
+(allow hal_power_stats_server hal_power_stats_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_power_stats.te
+
+(neverallow base_typeattr_474 hal_power_stats_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_power_stats.te
+
+(neverallow base_typeattr_476 hal_power_stats_service (service_manager (find)))
+;;* lme
+
+(allow hal_power_stats_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_power_stats_server (binder (transfer)))
+(allow hal_power_stats_server servicemanager (fd (use)))
+(allow hal_power_stats_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_power_stats_client (binder (transfer)))
+(allow hal_power_stats_client servicemanager (fd (use)))
+(allow hal_rebootescrow_client hal_rebootescrow_server (binder (call transfer)))
+(allow hal_rebootescrow_server hal_rebootescrow_client (binder (transfer)))
+(allow hal_rebootescrow_client hal_rebootescrow_server (fd (use)))
+(allow hal_rebootescrow_client hal_rebootescrow_service (service_manager (find)))
+(allow hal_rebootescrow_server hal_rebootescrow_service (service_manager (add find)))
+;;* lmx 4 system/sepolicy/public/hal_rebootescrow.te
+
+(neverallow base_typeattr_477 hal_rebootescrow_service (service_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_rebootescrow.te
+
+(neverallow base_typeattr_478 hal_rebootescrow_service (service_manager (find)))
+;;* lme
+
+(allow hal_rebootescrow_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_rebootescrow_server (binder (call transfer)))
+(allow servicemanager hal_rebootescrow_server (dir (search)))
+(allow servicemanager hal_rebootescrow_server (file (read open)))
+(allow servicemanager hal_rebootescrow_server (process (getattr)))
+(allow hal_remoteaccess_client hal_remoteaccess_server (binder (call transfer)))
+(allow hal_remoteaccess_server hal_remoteaccess_client (binder (transfer)))
+(allow hal_remoteaccess_client hal_remoteaccess_server (fd (use)))
+(allow hal_remoteaccess_server hal_remoteaccess_client (binder (call transfer)))
+(allow hal_remoteaccess_client hal_remoteaccess_server (binder (transfer)))
+(allow hal_remoteaccess_server hal_remoteaccess_client (fd (use)))
+(allow hal_remoteaccess_client hal_remoteaccess_service (service_manager (find)))
+(allow hal_remoteaccess_server hal_remoteaccess_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_remoteaccess.te
+
+(neverallow base_typeattr_479 hal_remoteaccess_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_remoteaccess.te
+
+(neverallow base_typeattr_480 hal_remoteaccess_service (service_manager (find)))
+;;* lme
+
+(allow hal_remotelyprovisionedcomponent_avf_client hal_remotelyprovisionedcomponent_avf_server (binder (call transfer)))
+(allow hal_remotelyprovisionedcomponent_avf_server hal_remotelyprovisionedcomponent_avf_client (binder (transfer)))
+(allow hal_remotelyprovisionedcomponent_avf_client hal_remotelyprovisionedcomponent_avf_server (fd (use)))
+(allow hal_remotelyprovisionedcomponent_avf_client hal_remotelyprovisionedcomponent_avf_service (service_manager (find)))
+(allow hal_remotelyprovisionedcomponent_avf_server hal_remotelyprovisionedcomponent_avf_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_remotelyprovisionedcomponent_avf.te
+
+(neverallow base_typeattr_481 hal_remotelyprovisionedcomponent_avf_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_remotelyprovisionedcomponent_avf.te
+
+(neverallow base_typeattr_482 hal_remotelyprovisionedcomponent_avf_service (service_manager (find)))
+;;* lme
+
+(allow hal_remotelyprovisionedcomponent_avf_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_remotelyprovisionedcomponent_avf_server (binder (call transfer)))
+(allow servicemanager hal_remotelyprovisionedcomponent_avf_server (dir (search)))
+(allow servicemanager hal_remotelyprovisionedcomponent_avf_server (file (read open)))
+(allow servicemanager hal_remotelyprovisionedcomponent_avf_server (process (getattr)))
+(allow hal_secretkeeper_client hal_secretkeeper_server (binder (call transfer)))
+(allow hal_secretkeeper_server hal_secretkeeper_client (binder (transfer)))
+(allow hal_secretkeeper_client hal_secretkeeper_server (fd (use)))
+(allow hal_secretkeeper_client hal_secretkeeper_service (service_manager (find)))
+(allow hal_secretkeeper_server hal_secretkeeper_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_secretkeeper.te
+
+(neverallow base_typeattr_483 hal_secretkeeper_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_secretkeeper.te
+
+(neverallow base_typeattr_484 hal_secretkeeper_service (service_manager (find)))
+;;* lme
+
+(allow hal_secretkeeper_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_secretkeeper_server (binder (call transfer)))
+(allow servicemanager hal_secretkeeper_server (dir (search)))
+(allow servicemanager hal_secretkeeper_server (file (read open)))
+(allow servicemanager hal_secretkeeper_server (process (getattr)))
+(allow hal_secretkeeper_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_secretkeeper_client (binder (call transfer)))
+(allow servicemanager hal_secretkeeper_client (dir (search)))
+(allow servicemanager hal_secretkeeper_client (file (read open)))
+(allow servicemanager hal_secretkeeper_client (process (getattr)))
+(allow hal_secretkeeper_server tee_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_secure_element_client hal_secure_element_server (binder (call transfer)))
+(allow hal_secure_element_server hal_secure_element_client (binder (transfer)))
+(allow hal_secure_element_client hal_secure_element_server (fd (use)))
+(allow hal_secure_element_server hal_secure_element_client (binder (call transfer)))
+(allow hal_secure_element_client hal_secure_element_server (binder (transfer)))
+(allow hal_secure_element_server hal_secure_element_client (fd (use)))
+(allow hal_secure_element_client hal_secure_element_hwservice (hwservice_manager (find)))
+(allow hal_secure_element_server hal_secure_element_hwservice (hwservice_manager (add find)))
+(allow hal_secure_element_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_secure_element.te
+
+(neverallow base_typeattr_485 hal_secure_element_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_secure_element.te
+
+(neverallow base_typeattr_486 hal_secure_element_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_secure_element_client hal_secure_element_service (service_manager (find)))
+(allow hal_secure_element_server hal_secure_element_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_secure_element.te
+
+(neverallow base_typeattr_485 hal_secure_element_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_secure_element.te
+
+(neverallow base_typeattr_487 hal_secure_element_service (service_manager (find)))
+;;* lme
+
+(allow hal_secure_element_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_secure_element_server (binder (call transfer)))
+(allow servicemanager hal_secure_element_server (dir (search)))
+(allow servicemanager hal_secure_element_server (file (read open)))
+(allow servicemanager hal_secure_element_server (process (getattr)))
+(allow hal_secure_element_client hal_secure_element_service (service_manager (find)))
+(allow hal_sensors_client hal_sensors_server (binder (call transfer)))
+(allow hal_sensors_server hal_sensors_client (binder (transfer)))
+(allow hal_sensors_client hal_sensors_server (fd (use)))
+(allow hal_sensors_client hal_sensors_hwservice (hwservice_manager (find)))
+(allow hal_sensors_server hal_sensors_hwservice (hwservice_manager (add find)))
+(allow hal_sensors_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_sensors.te
+
+(neverallow base_typeattr_488 hal_sensors_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_sensors.te
+
+(neverallow base_typeattr_489 hal_sensors_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_sensors base_typeattr_369 (fd (use)))
+(allow hal_sensors hal_allocator (fd (use)))
+(allow hal_sensors self (capability (sys_nice)))
+(allow hal_sensors self (cap_userns (sys_nice)))
+(allow hal_sensors_server hal_sensors_service (service_manager (add find)))
+;;* lmx 16 system/sepolicy/public/hal_sensors.te
+
+(neverallow base_typeattr_488 hal_sensors_service (service_manager (add)))
+;;* lme
+
+(allow hal_sensors_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_sensors_server (binder (transfer)))
+(allow hal_sensors_server servicemanager (fd (use)))
+(allow hal_sensors_client hal_sensors_service (service_manager (find)))
+(allow hal_telephony_client hal_telephony_server (binder (call transfer)))
+(allow hal_telephony_server hal_telephony_client (binder (transfer)))
+(allow hal_telephony_client hal_telephony_server (fd (use)))
+(allow hal_telephony_server hal_telephony_client (binder (call transfer)))
+(allow hal_telephony_client hal_telephony_server (binder (transfer)))
+(allow hal_telephony_server hal_telephony_client (fd (use)))
+(allow hal_telephony_client hal_telephony_hwservice (hwservice_manager (find)))
+(allow hal_telephony_server hal_telephony_hwservice (hwservice_manager (add find)))
+(allow hal_telephony_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_telephony.te
+
+(neverallow base_typeattr_490 hal_telephony_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_telephony.te
+
+(neverallow base_typeattr_491 hal_telephony_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_telephony_client hal_radio_service (service_manager (find)))
+(allow hal_telephony_server hal_radio_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_telephony.te
+
+(neverallow base_typeattr_490 hal_radio_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_telephony.te
+
+(neverallow base_typeattr_492 hal_radio_service (service_manager (find)))
+;;* lme
+
+(allowx hal_telephony_server self (ioctl udp_socket (0x6900 0x6902)))
+(allowx hal_telephony_server self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx hal_telephony_server self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow hal_telephony_server self (netlink_route_socket (nlmsg_write)))
+(allow hal_telephony_server self (capability (setgid setuid setpcap net_admin net_raw)))
+(allow hal_telephony_server self (cap_userns (setgid setuid setpcap net_admin net_raw)))
+(allow hal_telephony_server cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow hal_telephony_server cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server cgroup_v2 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow hal_telephony_server cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server radio_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_telephony_server radio_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server efs_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow hal_telephony_server efs_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow hal_telephony_server vendor_shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow hal_telephony_server bluetooth_efs_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server bluetooth_efs_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_telephony_server telephony_config_prop (file (read getattr map open)))
+(allow hal_telephony_server property_socket (sock_file (write)))
+(allow hal_telephony_server init (unix_stream_socket (connectto)))
+(allow hal_telephony_server radio_control_prop (property_service (set)))
+(allow hal_telephony_server radio_control_prop (file (read getattr map open)))
+(allow hal_telephony_server property_socket (sock_file (write)))
+(allow hal_telephony_server init (unix_stream_socket (connectto)))
+(allow hal_telephony_server radio_prop (property_service (set)))
+(allow hal_telephony_server radio_prop (file (read getattr map open)))
+(allow hal_telephony_server property_socket (sock_file (write)))
+(allow hal_telephony_server init (unix_stream_socket (connectto)))
+(allow hal_telephony_server telephony_status_prop (property_service (set)))
+(allow hal_telephony_server telephony_status_prop (file (read getattr map open)))
+(allow hal_telephony_server tty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_telephony_server self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_telephony_server self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_telephony_server self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_telephony_server sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_telephony_server self (capability2 (block_suspend)))
+(allow hal_telephony_server self (cap2_userns (block_suspend)))
+(allow hal_telephony_server system_suspend_server (binder (call transfer)))
+(allow system_suspend_server hal_telephony_server (binder (transfer)))
+(allow hal_telephony_server system_suspend_server (fd (use)))
+(allow hal_telephony_server system_suspend_hwservice (hwservice_manager (find)))
+(allow hal_telephony_server hwservicemanager (binder (call transfer)))
+(allow hwservicemanager hal_telephony_server (binder (call transfer)))
+(allow hwservicemanager hal_telephony_server (dir (search)))
+(allow hwservicemanager hal_telephony_server (file (read map open)))
+(allow hwservicemanager hal_telephony_server (process (getattr)))
+(allow hal_telephony_server hwservicemanager_prop (file (read getattr map open)))
+(allow hal_telephony_server hidl_manager_hwservice (hwservice_manager (find)))
+(allow hal_telephony_server hal_system_suspend_service (service_manager (find)))
+(allow hal_telephony_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_telephony_server (binder (call transfer)))
+(allow servicemanager hal_telephony_server (dir (search)))
+(allow servicemanager hal_telephony_server (file (read open)))
+(allow servicemanager hal_telephony_server (process (getattr)))
+(allow hal_telephony_server proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_telephony_server proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_telephony_server sysfs_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server sysfs_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_telephony_server self (socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_telephony_server hal_telephony_server (binder (call transfer)))
+(allow hal_telephony_server hal_telephony_server (binder (transfer)))
+(allow hal_telephony_server hal_telephony_server (fd (use)))
+(allow hal_tetheroffload_client hal_tetheroffload_server (binder (call transfer)))
+(allow hal_tetheroffload_server hal_tetheroffload_client (binder (transfer)))
+(allow hal_tetheroffload_client hal_tetheroffload_server (fd (use)))
+(allow hal_tetheroffload_server hal_tetheroffload_client (binder (call transfer)))
+(allow hal_tetheroffload_client hal_tetheroffload_server (binder (transfer)))
+(allow hal_tetheroffload_server hal_tetheroffload_client (fd (use)))
+(allow hal_tetheroffload_client hal_tetheroffload_hwservice (hwservice_manager (find)))
+(allow hal_tetheroffload_server hal_tetheroffload_hwservice (hwservice_manager (add find)))
+(allow hal_tetheroffload_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_tetheroffload.te
+
+(neverallow base_typeattr_493 hal_tetheroffload_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_tetheroffload.te
+
+(neverallow base_typeattr_494 hal_tetheroffload_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_tetheroffload_client hal_tetheroffload_service (service_manager (find)))
+(allow hal_tetheroffload_server hal_tetheroffload_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_tetheroffload.te
+
+(neverallow base_typeattr_493 hal_tetheroffload_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_tetheroffload.te
+
+(neverallow base_typeattr_495 hal_tetheroffload_service (service_manager (find)))
+;;* lme
+
+(allow hal_tetheroffload_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_tetheroffload_server (binder (call transfer)))
+(allow servicemanager hal_tetheroffload_server (dir (search)))
+(allow servicemanager hal_tetheroffload_server (file (read open)))
+(allow servicemanager hal_tetheroffload_server (process (getattr)))
+(allow hal_tetheroffload_server hal_tetheroffload_client (netlink_netfilter_socket (read write getattr setopt)))
+(allow hal_thermal_client hal_thermal_server (binder (call transfer)))
+(allow hal_thermal_server hal_thermal_client (binder (transfer)))
+(allow hal_thermal_client hal_thermal_server (fd (use)))
+(allow hal_thermal_server hal_thermal_client (binder (call transfer)))
+(allow hal_thermal_client hal_thermal_server (binder (transfer)))
+(allow hal_thermal_server hal_thermal_client (fd (use)))
+(allow hal_thermal_client hal_thermal_hwservice (hwservice_manager (find)))
+(allow hal_thermal_server hal_thermal_hwservice (hwservice_manager (add find)))
+(allow hal_thermal_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_thermal.te
+
+(neverallow base_typeattr_496 hal_thermal_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_thermal.te
+
+(neverallow base_typeattr_497 hal_thermal_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_thermal_client hal_thermal_service (service_manager (find)))
+(allow hal_thermal_server hal_thermal_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_thermal.te
+
+(neverallow base_typeattr_496 hal_thermal_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_thermal.te
+
+(neverallow base_typeattr_498 hal_thermal_service (service_manager (find)))
+;;* lme
+
+(allow hal_thermal_server hal_thermal_service (service_manager (add find)))
+;;* lmx 8 system/sepolicy/public/hal_thermal.te
+
+(neverallow base_typeattr_496 hal_thermal_service (service_manager (add)))
+;;* lme
+
+(allow hal_thermal_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_thermal_server (binder (transfer)))
+(allow hal_thermal_server servicemanager (fd (use)))
+(allow hal_thermal_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_thermal_client (binder (transfer)))
+(allow hal_thermal_client servicemanager (fd (use)))
+(allow hal_threadnetwork_client hal_threadnetwork_server (binder (call transfer)))
+(allow hal_threadnetwork_server hal_threadnetwork_client (binder (transfer)))
+(allow hal_threadnetwork_client hal_threadnetwork_server (fd (use)))
+(allow hal_threadnetwork_server hal_threadnetwork_client (binder (call transfer)))
+(allow hal_threadnetwork_client hal_threadnetwork_server (binder (transfer)))
+(allow hal_threadnetwork_server hal_threadnetwork_client (fd (use)))
+(allow hal_threadnetwork_client hal_threadnetwork_service (service_manager (find)))
+(allow hal_threadnetwork_server hal_threadnetwork_service (service_manager (add find)))
+;;* lmx 4 system/sepolicy/public/hal_threadnetwork.te
+
+(neverallow base_typeattr_499 hal_threadnetwork_service (service_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_threadnetwork.te
+
+(neverallow base_typeattr_500 hal_threadnetwork_service (service_manager (find)))
+;;* lme
+
+(allow hal_threadnetwork_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_threadnetwork_server (binder (transfer)))
+(allow hal_threadnetwork_server servicemanager (fd (use)))
+(allow hal_threadnetwork_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_threadnetwork_client (binder (transfer)))
+(allow hal_threadnetwork_client servicemanager (fd (use)))
+(allow hal_tv_cec_client hal_tv_cec_server (binder (call transfer)))
+(allow hal_tv_cec_server hal_tv_cec_client (binder (transfer)))
+(allow hal_tv_cec_client hal_tv_cec_server (fd (use)))
+(allow hal_tv_cec_server hal_tv_cec_client (binder (call transfer)))
+(allow hal_tv_cec_client hal_tv_cec_server (binder (transfer)))
+(allow hal_tv_cec_server hal_tv_cec_client (fd (use)))
+(allow hal_tv_cec_client hal_tv_cec_hwservice (hwservice_manager (find)))
+(allow hal_tv_cec_server hal_tv_cec_hwservice (hwservice_manager (add find)))
+(allow hal_tv_cec_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_tv_cec.te
+
+(neverallow base_typeattr_501 hal_tv_cec_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_tv_cec.te
+
+(neverallow base_typeattr_502 hal_tv_cec_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_server (binder (call transfer)))
+(allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_client (binder (transfer)))
+(allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_server (fd (use)))
+(allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_client (binder (call transfer)))
+(allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_server (binder (transfer)))
+(allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_client (fd (use)))
+(allow hal_tv_hdmi_cec_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_cec_client (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_cec_client (dir (search)))
+(allow servicemanager hal_tv_hdmi_cec_client (file (read open)))
+(allow servicemanager hal_tv_hdmi_cec_client (process (getattr)))
+(allow hal_tv_hdmi_cec_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_cec_server (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_cec_server (dir (search)))
+(allow servicemanager hal_tv_hdmi_cec_server (file (read open)))
+(allow servicemanager hal_tv_hdmi_cec_server (process (getattr)))
+(allow hal_tv_hdmi_cec_client hal_tv_hdmi_cec_service (service_manager (find)))
+(allow hal_tv_hdmi_cec_server hal_tv_hdmi_cec_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/public/hal_tv_hdmi_cec.te
+
+(neverallow base_typeattr_503 hal_tv_hdmi_cec_service (service_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_tv_hdmi_cec.te
+
+(neverallow base_typeattr_504 hal_tv_hdmi_cec_service (service_manager (find)))
+;;* lme
+
+(allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_server (binder (call transfer)))
+(allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_client (binder (transfer)))
+(allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_server (fd (use)))
+(allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_client (binder (call transfer)))
+(allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_server (binder (transfer)))
+(allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_client (fd (use)))
+(allow hal_tv_hdmi_connection_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_connection_client (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_connection_client (dir (search)))
+(allow servicemanager hal_tv_hdmi_connection_client (file (read open)))
+(allow servicemanager hal_tv_hdmi_connection_client (process (getattr)))
+(allow hal_tv_hdmi_connection_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_connection_server (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_connection_server (dir (search)))
+(allow servicemanager hal_tv_hdmi_connection_server (file (read open)))
+(allow servicemanager hal_tv_hdmi_connection_server (process (getattr)))
+(allow hal_tv_hdmi_connection_client hal_tv_hdmi_connection_service (service_manager (find)))
+(allow hal_tv_hdmi_connection_server hal_tv_hdmi_connection_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/public/hal_tv_hdmi_connection.te
+
+(neverallow base_typeattr_505 hal_tv_hdmi_connection_service (service_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_tv_hdmi_connection.te
+
+(neverallow base_typeattr_506 hal_tv_hdmi_connection_service (service_manager (find)))
+;;* lme
+
+(allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_server (binder (call transfer)))
+(allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_client (binder (transfer)))
+(allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_server (fd (use)))
+(allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_client (binder (call transfer)))
+(allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_server (binder (transfer)))
+(allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_client (fd (use)))
+(allow hal_tv_hdmi_earc_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_earc_client (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_earc_client (dir (search)))
+(allow servicemanager hal_tv_hdmi_earc_client (file (read open)))
+(allow servicemanager hal_tv_hdmi_earc_client (process (getattr)))
+(allow hal_tv_hdmi_earc_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_earc_server (binder (call transfer)))
+(allow servicemanager hal_tv_hdmi_earc_server (dir (search)))
+(allow servicemanager hal_tv_hdmi_earc_server (file (read open)))
+(allow servicemanager hal_tv_hdmi_earc_server (process (getattr)))
+(allow hal_tv_hdmi_earc_client hal_tv_hdmi_earc_service (service_manager (find)))
+(allow hal_tv_hdmi_earc_server hal_tv_hdmi_earc_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/public/hal_tv_hdmi_earc.te
+
+(neverallow base_typeattr_507 hal_tv_hdmi_earc_service (service_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_tv_hdmi_earc.te
+
+(neverallow base_typeattr_508 hal_tv_hdmi_earc_service (service_manager (find)))
+;;* lme
+
+(allow hal_tv_input_client hal_tv_input_server (binder (call transfer)))
+(allow hal_tv_input_server hal_tv_input_client (binder (transfer)))
+(allow hal_tv_input_client hal_tv_input_server (fd (use)))
+(allow hal_tv_input_server hal_tv_input_client (binder (call transfer)))
+(allow hal_tv_input_client hal_tv_input_server (binder (transfer)))
+(allow hal_tv_input_server hal_tv_input_client (fd (use)))
+(allow hal_tv_input_client hal_tv_input_hwservice (hwservice_manager (find)))
+(allow hal_tv_input_server hal_tv_input_hwservice (hwservice_manager (add find)))
+(allow hal_tv_input_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_tv_input.te
+
+(neverallow base_typeattr_509 hal_tv_input_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_tv_input.te
+
+(neverallow base_typeattr_510 hal_tv_input_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_tv_input_client hal_tv_input_service (service_manager (find)))
+(allow hal_tv_input_server hal_tv_input_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_tv_input.te
+
+(neverallow base_typeattr_509 hal_tv_input_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_tv_input.te
+
+(neverallow base_typeattr_511 hal_tv_input_service (service_manager (find)))
+;;* lme
+
+(allow hal_tv_input_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_input_server (binder (transfer)))
+(allow hal_tv_input_server servicemanager (fd (use)))
+(allow hal_tv_input_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_input_client (binder (transfer)))
+(allow hal_tv_input_client servicemanager (fd (use)))
+(allow hal_tv_tuner_client hal_tv_tuner_server (binder (call transfer)))
+(allow hal_tv_tuner_server hal_tv_tuner_client (binder (transfer)))
+(allow hal_tv_tuner_client hal_tv_tuner_server (fd (use)))
+(allow hal_tv_tuner_server hal_tv_tuner_client (binder (call transfer)))
+(allow hal_tv_tuner_client hal_tv_tuner_server (binder (transfer)))
+(allow hal_tv_tuner_server hal_tv_tuner_client (fd (use)))
+(allow hal_tv_tuner_client hal_tv_tuner_hwservice (hwservice_manager (find)))
+(allow hal_tv_tuner_server hal_tv_tuner_hwservice (hwservice_manager (add find)))
+(allow hal_tv_tuner_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_tv_tuner.te
+
+(neverallow base_typeattr_512 hal_tv_tuner_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_tv_tuner.te
+
+(neverallow base_typeattr_513 hal_tv_tuner_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_tv_tuner_client hal_tv_tuner_service (service_manager (find)))
+(allow hal_tv_tuner_server hal_tv_tuner_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_tv_tuner.te
+
+(neverallow base_typeattr_512 hal_tv_tuner_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_tv_tuner.te
+
+(neverallow base_typeattr_514 hal_tv_tuner_service (service_manager (find)))
+;;* lme
+
+(allow hal_tv_tuner_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_tuner_server (binder (transfer)))
+(allow hal_tv_tuner_server servicemanager (fd (use)))
+(allow hal_tv_tuner_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_tv_tuner_client (binder (transfer)))
+(allow hal_tv_tuner_client servicemanager (fd (use)))
+(allow hal_usb_client hal_usb_server (binder (call transfer)))
+(allow hal_usb_server hal_usb_client (binder (transfer)))
+(allow hal_usb_client hal_usb_server (fd (use)))
+(allow hal_usb_server hal_usb_client (binder (call transfer)))
+(allow hal_usb_client hal_usb_server (binder (transfer)))
+(allow hal_usb_server hal_usb_client (fd (use)))
+(allow hal_usb_client hal_usb_service (service_manager (find)))
+(allow hal_usb_server hal_usb_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_usb.te
+
+(neverallow base_typeattr_515 hal_usb_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_usb.te
+
+(neverallow base_typeattr_516 hal_usb_service (service_manager (find)))
+;;* lme
+
+(allow hal_usb_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_usb_server (binder (transfer)))
+(allow hal_usb_server servicemanager (fd (use)))
+(allow hal_usb_client hal_usb_hwservice (hwservice_manager (find)))
+(allow hal_usb_server hal_usb_hwservice (hwservice_manager (add find)))
+(allow hal_usb_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 8 system/sepolicy/public/hal_usb.te
+
+(neverallow base_typeattr_515 hal_usb_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/hal_usb.te
+
+(neverallow base_typeattr_517 hal_usb_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_usb self (netlink_kobject_uevent_socket (create)))
+(allow hal_usb self (netlink_kobject_uevent_socket (setopt)))
+(allow hal_usb self (netlink_kobject_uevent_socket (getopt)))
+(allow hal_usb self (netlink_kobject_uevent_socket (bind)))
+(allow hal_usb self (netlink_kobject_uevent_socket (read)))
+(allow hal_usb sysfs (dir (open)))
+(allow hal_usb sysfs (dir (read)))
+(allow hal_usb sysfs (file (read)))
+(allow hal_usb sysfs (file (open)))
+(allow hal_usb sysfs (file (write)))
+(allow hal_usb sysfs (file (getattr)))
+(allow hal_usb_gadget_client hal_usb_gadget_server (binder (call transfer)))
+(allow hal_usb_gadget_server hal_usb_gadget_client (binder (transfer)))
+(allow hal_usb_gadget_client hal_usb_gadget_server (fd (use)))
+(allow hal_usb_gadget_server hal_usb_gadget_client (binder (call transfer)))
+(allow hal_usb_gadget_client hal_usb_gadget_server (binder (transfer)))
+(allow hal_usb_gadget_server hal_usb_gadget_client (fd (use)))
+(allow hal_usb_gadget_client hal_usb_gadget_service (service_manager (find)))
+(allow hal_usb_gadget_server hal_usb_gadget_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_usb_gadget.te
+
+(neverallow base_typeattr_518 hal_usb_gadget_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_usb_gadget.te
+
+(neverallow base_typeattr_519 hal_usb_gadget_service (service_manager (find)))
+;;* lme
+
+(allow hal_usb_gadget_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_usb_gadget_server (binder (transfer)))
+(allow hal_usb_gadget_server servicemanager (fd (use)))
+(allow hal_usb_gadget_client hal_usb_gadget_hwservice (hwservice_manager (find)))
+(allow hal_usb_gadget_server hal_usb_gadget_hwservice (hwservice_manager (add find)))
+(allow hal_usb_gadget_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 8 system/sepolicy/public/hal_usb_gadget.te
+
+(neverallow base_typeattr_518 hal_usb_gadget_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/hal_usb_gadget.te
+
+(neverallow base_typeattr_520 hal_usb_gadget_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_usb_gadget_server configfs (lnk_file (read create unlink)))
+(allow hal_usb_gadget_server configfs (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow hal_usb_gadget_server configfs (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow hal_usb_gadget_server functionfs (dir (read search)))
+(allow hal_usb_gadget_server functionfs (file (read)))
+(allow hal_usb_gadget_server proc_interrupts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_usb_gadget_server usb_uvc_enabled_prop (file (read getattr map open)))
+(allow hal_uwb_client hal_uwb_server (binder (call transfer)))
+(allow hal_uwb_server hal_uwb_client (binder (transfer)))
+(allow hal_uwb_client hal_uwb_server (fd (use)))
+(allow hal_uwb_server hal_uwb_client (binder (call transfer)))
+(allow hal_uwb_client hal_uwb_server (binder (transfer)))
+(allow hal_uwb_server hal_uwb_client (fd (use)))
+(allow hal_uwb_client hal_uwb_service (service_manager (find)))
+(allow hal_uwb_server hal_uwb_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_uwb.te
+
+(neverallow base_typeattr_521 hal_uwb_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_uwb.te
+
+(neverallow base_typeattr_522 hal_uwb_service (service_manager (find)))
+;;* lme
+
+(allow hal_uwb_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_uwb_server (binder (transfer)))
+(allow hal_uwb_server servicemanager (fd (use)))
+(allow hal_uwb_client servicemanager (binder (call transfer)))
+(allow servicemanager hal_uwb_client (binder (transfer)))
+(allow hal_uwb_client servicemanager (fd (use)))
+(allow hal_vehicle_client hal_vehicle_server (binder (call transfer)))
+(allow hal_vehicle_server hal_vehicle_client (binder (transfer)))
+(allow hal_vehicle_client hal_vehicle_server (fd (use)))
+(allow hal_vehicle_server hal_vehicle_client (binder (call transfer)))
+(allow hal_vehicle_client hal_vehicle_server (binder (transfer)))
+(allow hal_vehicle_server hal_vehicle_client (fd (use)))
+(allow hal_vehicle_client hal_vehicle_hwservice (hwservice_manager (find)))
+(allow hal_vehicle_server hal_vehicle_hwservice (hwservice_manager (add find)))
+(allow hal_vehicle_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 6 system/sepolicy/public/hal_vehicle.te
+
+(neverallow base_typeattr_523 hal_vehicle_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_vehicle.te
+
+(neverallow base_typeattr_524 hal_vehicle_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_vehicle_client hal_vehicle_service (service_manager (find)))
+(allow hal_vehicle_server hal_vehicle_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/public/hal_vehicle.te
+
+(neverallow base_typeattr_523 hal_vehicle_service (service_manager (add)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/hal_vehicle.te
+
+(neverallow base_typeattr_525 hal_vehicle_service (service_manager (find)))
+;;* lme
+
+(allow hal_vibrator_client hal_vibrator_server (binder (call transfer)))
+(allow hal_vibrator_server hal_vibrator_client (binder (transfer)))
+(allow hal_vibrator_client hal_vibrator_server (fd (use)))
+(allow hal_vibrator_server hal_vibrator_client (binder (call transfer)))
+(allow hal_vibrator_client hal_vibrator_server (binder (transfer)))
+(allow hal_vibrator_server hal_vibrator_client (fd (use)))
+(allow hal_vibrator_client hal_vibrator_hwservice (hwservice_manager (find)))
+(allow hal_vibrator_server hal_vibrator_hwservice (hwservice_manager (add find)))
+(allow hal_vibrator_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_vibrator.te
+
+(neverallow base_typeattr_526 hal_vibrator_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_vibrator.te
+
+(neverallow base_typeattr_527 hal_vibrator_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_vibrator_client hal_vibrator_service (service_manager (find)))
+(allow hal_vibrator_server hal_vibrator_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_vibrator.te
+
+(neverallow base_typeattr_526 hal_vibrator_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_vibrator.te
+
+(neverallow base_typeattr_528 hal_vibrator_service (service_manager (find)))
+;;* lme
+
+(allow hal_vibrator_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_vibrator_server (binder (transfer)))
+(allow hal_vibrator_server servicemanager (fd (use)))
+(allow hal_vibrator_server dumpstate (fifo_file (write)))
+(allow hal_vibrator sysfs_vibrator (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow hal_vibrator sysfs_vibrator (dir (search)))
+(allow hal_vibrator fwk_vibrator_control_service (service_manager (find)))
+(allow hal_vr_client hal_vr_server (binder (call transfer)))
+(allow hal_vr_server hal_vr_client (binder (transfer)))
+(allow hal_vr_client hal_vr_server (fd (use)))
+(allow hal_vr_server hal_vr_client (binder (call transfer)))
+(allow hal_vr_client hal_vr_server (binder (transfer)))
+(allow hal_vr_server hal_vr_client (fd (use)))
+(allow hal_vr_client hal_vr_hwservice (hwservice_manager (find)))
+(allow hal_vr_server hal_vr_hwservice (hwservice_manager (add find)))
+(allow hal_vr_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_vr.te
+
+(neverallow base_typeattr_529 hal_vr_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_vr.te
+
+(neverallow base_typeattr_530 hal_vr_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_weaver_client hal_weaver_server (binder (call transfer)))
+(allow hal_weaver_server hal_weaver_client (binder (transfer)))
+(allow hal_weaver_client hal_weaver_server (fd (use)))
+(allow hal_weaver_client hal_weaver_hwservice (hwservice_manager (find)))
+(allow hal_weaver_server hal_weaver_hwservice (hwservice_manager (add find)))
+(allow hal_weaver_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 4 system/sepolicy/public/hal_weaver.te
+
+(neverallow base_typeattr_531 hal_weaver_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/public/hal_weaver.te
+
+(neverallow base_typeattr_532 hal_weaver_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_weaver_client hal_weaver_service (service_manager (find)))
+(allow hal_weaver_server hal_weaver_service (service_manager (add find)))
+;;* lmx 5 system/sepolicy/public/hal_weaver.te
+
+(neverallow base_typeattr_531 hal_weaver_service (service_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_weaver.te
+
+(neverallow base_typeattr_533 hal_weaver_service (service_manager (find)))
+;;* lme
+
+(allow hal_weaver_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_weaver_server (binder (transfer)))
+(allow hal_weaver_server servicemanager (fd (use)))
+(allow hal_wifi_client hal_wifi_server (binder (call transfer)))
+(allow hal_wifi_server hal_wifi_client (binder (transfer)))
+(allow hal_wifi_client hal_wifi_server (fd (use)))
+(allow hal_wifi_server hal_wifi_client (binder (call transfer)))
+(allow hal_wifi_client hal_wifi_server (binder (transfer)))
+(allow hal_wifi_server hal_wifi_client (fd (use)))
+(allow hal_wifi_client hal_wifi_hwservice (hwservice_manager (find)))
+(allow hal_wifi_server hal_wifi_hwservice (hwservice_manager (add find)))
+(allow hal_wifi_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_wifi.te
+
+(neverallow base_typeattr_534 hal_wifi_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_wifi.te
+
+(neverallow base_typeattr_535 hal_wifi_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_wifi_client hal_wifi_service (service_manager (find)))
+(allow hal_wifi_server hal_wifi_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_wifi.te
+
+(neverallow base_typeattr_534 hal_wifi_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_wifi.te
+
+(neverallow base_typeattr_536 hal_wifi_service (service_manager (find)))
+;;* lme
+
+(allow hal_wifi_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_wifi_server (binder (call transfer)))
+(allow servicemanager hal_wifi_server (dir (search)))
+(allow servicemanager hal_wifi_server (file (read open)))
+(allow servicemanager hal_wifi_server (process (getattr)))
+(allow hal_wifi proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_wifi proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_wifi sysfs_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi sysfs_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi_server property_socket (sock_file (write)))
+(allow hal_wifi_server init (unix_stream_socket (connectto)))
+(allow hal_wifi_server wifi_hal_prop (property_service (set)))
+(allow hal_wifi_server wifi_hal_prop (file (read getattr map open)))
+(allow hal_wifi property_socket (sock_file (write)))
+(allow hal_wifi init (unix_stream_socket (connectto)))
+(allow hal_wifi wifi_prop (property_service (set)))
+(allow hal_wifi wifi_prop (file (read getattr map open)))
+(allow hal_wifi self (udp_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allowx hal_wifi self (ioctl udp_socket (0x8914 0x8924 0x8946)))
+(allow hal_wifi self (capability (net_admin net_raw)))
+(allow hal_wifi self (cap_userns (net_admin net_raw)))
+(allow hal_wifi self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_wifi self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_wifi sysfs_wlan_fwpath (file (write lock append map open)))
+(allow hal_wifi proc_modules (file (read getattr open)))
+(allow hal_wifi dumpstate (fifo_file (write)))
+(allow hal_wifi_server tombstone_wifi_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow hal_wifi_server tombstone_wifi_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow hal_wifi_hostapd_client hal_wifi_hostapd_server (binder (call transfer)))
+(allow hal_wifi_hostapd_server hal_wifi_hostapd_client (binder (transfer)))
+(allow hal_wifi_hostapd_client hal_wifi_hostapd_server (fd (use)))
+(allow hal_wifi_hostapd_server hal_wifi_hostapd_client (binder (call transfer)))
+(allow hal_wifi_hostapd_client hal_wifi_hostapd_server (binder (transfer)))
+(allow hal_wifi_hostapd_server hal_wifi_hostapd_client (fd (use)))
+(allow hal_wifi_hostapd_client hal_wifi_hostapd_hwservice (hwservice_manager (find)))
+(allow hal_wifi_hostapd_server hal_wifi_hostapd_hwservice (hwservice_manager (add find)))
+(allow hal_wifi_hostapd_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_wifi_hostapd.te
+
+(neverallow base_typeattr_537 hal_wifi_hostapd_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_wifi_hostapd.te
+
+(neverallow base_typeattr_538 hal_wifi_hostapd_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_wifi_hostapd_client hal_wifi_hostapd_service (service_manager (find)))
+(allow hal_wifi_hostapd_server hal_wifi_hostapd_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_wifi_hostapd.te
+
+(neverallow base_typeattr_537 hal_wifi_hostapd_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_wifi_hostapd.te
+
+(neverallow base_typeattr_539 hal_wifi_hostapd_service (service_manager (find)))
+;;* lme
+
+(allow hal_wifi_hostapd_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_wifi_hostapd_server (binder (call transfer)))
+(allow servicemanager hal_wifi_hostapd_server (dir (search)))
+(allow servicemanager hal_wifi_hostapd_server (file (read open)))
+(allow servicemanager hal_wifi_hostapd_server (process (getattr)))
+(allow hal_wifi_hostapd_server dumpstate (fifo_file (write)))
+(allow hal_wifi_hostapd_server self (capability (net_admin net_raw)))
+(allow hal_wifi_hostapd_server self (cap_userns (net_admin net_raw)))
+(allow hal_wifi_hostapd_server sysfs_net (dir (search)))
+(allow hal_wifi_hostapd_server proc_net_type (file (read getattr open)))
+(allowx hal_wifi_hostapd_server self (ioctl udp_socket (0x6900 0x6902)))
+(allowx hal_wifi_hostapd_server self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx hal_wifi_hostapd_server self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow hal_wifi_hostapd_server self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_wifi_hostapd_server self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_wifi_hostapd_server self (packet_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_wifi_hostapd_server self (netlink_route_socket (nlmsg_write)))
+;;* lmx 31 system/sepolicy/public/hal_wifi_hostapd.te
+
+(neverallow hal_wifi_hostapd_server sdcard_type (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow hal_wifi_hostapd_server fuse (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 32 system/sepolicy/public/hal_wifi_hostapd.te
+
+(neverallow hal_wifi_hostapd_server sdcard_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_wifi_hostapd_server fuse (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow hal_wifi_supplicant_client hal_wifi_supplicant_server (binder (call transfer)))
+(allow hal_wifi_supplicant_server hal_wifi_supplicant_client (binder (transfer)))
+(allow hal_wifi_supplicant_client hal_wifi_supplicant_server (fd (use)))
+(allow hal_wifi_supplicant_server hal_wifi_supplicant_client (binder (call transfer)))
+(allow hal_wifi_supplicant_client hal_wifi_supplicant_server (binder (transfer)))
+(allow hal_wifi_supplicant_server hal_wifi_supplicant_client (fd (use)))
+(allow hal_wifi_supplicant_client hal_wifi_supplicant_hwservice (hwservice_manager (find)))
+(allow hal_wifi_supplicant_server hal_wifi_supplicant_hwservice (hwservice_manager (add find)))
+(allow hal_wifi_supplicant_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/public/hal_wifi_supplicant.te
+
+(neverallow base_typeattr_540 hal_wifi_supplicant_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/public/hal_wifi_supplicant.te
+
+(neverallow base_typeattr_541 hal_wifi_supplicant_hwservice (hwservice_manager (find)))
+;;* lme
+
+(allow hal_wifi_supplicant_client hal_wifi_supplicant_service (service_manager (find)))
+(allow hal_wifi_supplicant_server hal_wifi_supplicant_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/hal_wifi_supplicant.te
+
+(neverallow base_typeattr_540 hal_wifi_supplicant_service (service_manager (add)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/hal_wifi_supplicant.te
+
+(neverallow base_typeattr_542 hal_wifi_supplicant_service (service_manager (find)))
+;;* lme
+
+(allowx hal_wifi_supplicant self (ioctl udp_socket (0x6900 0x6902)))
+(allowx hal_wifi_supplicant self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx hal_wifi_supplicant self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow hal_wifi_supplicant sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_wifi_supplicant sysfs_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi_supplicant sysfs_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi_supplicant proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hal_wifi_supplicant proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi_supplicant proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hal_wifi_supplicant self (capability (setgid setuid net_admin net_raw)))
+(allow hal_wifi_supplicant self (cap_userns (setgid setuid net_admin net_raw)))
+(allow hal_wifi_supplicant cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow hal_wifi_supplicant cgroup_v2 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow hal_wifi_supplicant self (netlink_route_socket (nlmsg_write)))
+(allow hal_wifi_supplicant self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_wifi_supplicant self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow hal_wifi_supplicant self (packet_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allowx hal_wifi_supplicant self (ioctl packet_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx hal_wifi_supplicant self (ioctl packet_socket (0x6900 0x6902)))
+(allowx hal_wifi_supplicant self (ioctl packet_socket ((range 0x8906 0x8907) (range 0x890b 0x890d) (range 0x8910 0x8927) 0x8929 (range 0x8930 0x8939) (range 0x8940 0x8943) (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx hal_wifi_supplicant self (ioctl packet_socket ((range 0x8b00 0x8b02) (range 0x8b04 0x8b1d) (range 0x8b20 0x8b2d) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow keystore hal_wifi_supplicant (dir (search)))
+(allow keystore hal_wifi_supplicant (file (read open)))
+(allow keystore hal_wifi_supplicant (process (getattr)))
+(allow hal_wifi_supplicant apc_service (service_manager (find)))
+(allow hal_wifi_supplicant keystore_service (service_manager (find)))
+(allow hal_wifi_supplicant legacykeystore_service (service_manager (find)))
+(allow hal_wifi_supplicant keystore (binder (call transfer)))
+(allow keystore hal_wifi_supplicant (binder (transfer)))
+(allow hal_wifi_supplicant keystore (fd (use)))
+(allow keystore hal_wifi_supplicant (binder (call transfer)))
+(allow hal_wifi_supplicant keystore (binder (transfer)))
+(allow keystore hal_wifi_supplicant (fd (use)))
+(allow hal_wifi_supplicant_server servicemanager (binder (call transfer)))
+(allow servicemanager hal_wifi_supplicant_server (binder (call transfer)))
+(allow servicemanager hal_wifi_supplicant_server (dir (search)))
+(allow servicemanager hal_wifi_supplicant_server (file (read open)))
+(allow servicemanager hal_wifi_supplicant_server (process (getattr)))
+(allow hal_wifi_supplicant wifi_key (keystore2_key (get_info use)))
+;;* lmx 37 system/sepolicy/public/hal_wifi_supplicant.te
+
+(neverallow hal_wifi_supplicant_server sdcard_type (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow hal_wifi_supplicant_server fuse (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 38 system/sepolicy/public/hal_wifi_supplicant.te
+
+(neverallow hal_wifi_supplicant_server sdcard_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow hal_wifi_supplicant_server fuse (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 102 system/sepolicy/public/hwservice.te
+
+(neverallow domain base_typeattr_543 (hwservice_manager (add find)))
+;;* lme
+
+(allow hwservicemanager self (binder (set_context_mgr)))
+(allow hwservicemanager system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hwservicemanager hwservice_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hwservicemanager selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hwservicemanager selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hwservicemanager selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow hwservicemanager selinuxfs (file (write lock append map open)))
+(allow hwservicemanager kernel (security (compute_av)))
+(allow hwservicemanager self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow idmap resourcecache_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow idmap resourcecache_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow idmap apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow idmap apk_data_file (dir (search)))
+(allow idmap apk_tmp_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow idmap apk_private_tmp_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow idmap apk_tmp_file (dir (search)))
+(allow idmap apk_private_tmp_file (dir (search)))
+(allow idmap vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow idmap vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow idmap vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow idmap vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow idmap vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow idmap vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow idmap servicemanager (binder (call transfer)))
+(allow servicemanager idmap (binder (call transfer)))
+(allow servicemanager idmap (dir (search)))
+(allow servicemanager idmap (file (read open)))
+(allow servicemanager idmap (process (getattr)))
+(allow idmap idmap_service (service_manager (add find)))
+;;* lmx 26 system/sepolicy/public/idmap.te
+
+(neverallow base_typeattr_544 idmap_service (service_manager (add)))
+;;* lme
+
+(allow init tmpfs (chr_file (ioctl read write create getattr setattr lock append map unlink open watch watch_reads)))
+(allow init tmpfs (chr_file (relabelfrom)))
+(allow init kmsg_device (chr_file (write getattr relabelto)))
+(allow init properties_device (dir (relabelto)))
+(allow init properties_serial (file (write relabelto)))
+(allow init property_type (file (read write create getattr setattr relabelto append map unlink rename open)))
+(allow init properties_device (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow init property_info (file (relabelto)))
+(allow init device (file (relabelfrom)))
+(allow init runtime_event_log_tags_file (file (write create setattr relabelto open)))
+(allow init device (dir (relabelto)))
+(allow init dm_user_device (dir (relabelto)))
+(allow init socket_device (dir (relabelto)))
+(allow init lmkd_socket (sock_file (write)))
+(allow init lmkd (unix_stream_socket (connectto)))
+(allow init console_device (chr_file (relabelto)))
+(allow init ptmx_device (chr_file (relabelto)))
+(allow init null_device (chr_file (relabelto)))
+(allow init random_device (chr_file (relabelto)))
+(allow init tmpfs (chr_file (relabelfrom)))
+(allow init tmpfs (blk_file (relabelfrom)))
+(allow init tmpfs (blk_file (getattr)))
+(allow init block_device (dir (relabelto)))
+(allow init block_device (lnk_file (relabelto)))
+(allow init block_device (blk_file (relabelto)))
+(allow init dm_device (chr_file (relabelto)))
+(allow init dm_device (blk_file (relabelto)))
+(allow init dm_user_device (chr_file (relabelto)))
+(allow init kernel (fd (use)))
+(allow init tmpfs (lnk_file (read getattr relabelfrom)))
+(allow init system_block_device (lnk_file (relabelto)))
+(allow init system_block_device (blk_file (relabelto)))
+(allow init recovery_block_device (lnk_file (relabelto)))
+(allow init recovery_block_device (blk_file (relabelto)))
+(allow init userdata_block_device (lnk_file (relabelto)))
+(allow init userdata_block_device (blk_file (relabelto)))
+(allow init metadata_block_device (lnk_file (relabelto)))
+(allow init metadata_block_device (blk_file (relabelto)))
+(allow init misc_block_device (lnk_file (relabelto)))
+(allow init misc_block_device (blk_file (relabelto)))
+(allow init dtbo_block_device (lnk_file (relabelto)))
+(allow init super_block_device (lnk_file (relabelto)))
+(allow init mnt_sdcard_file (lnk_file (create)))
+(allow init self (capability (sys_resource)))
+(allow init self (cap_userns (sys_resource)))
+(allow init tmpfs (file (getattr unlink)))
+(allow init devpts (chr_file (read write open)))
+(allow init fscklogs (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow init tmpfs (chr_file (write)))
+(allow init console_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init tty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init self (capability (sys_admin)))
+(allow init self (cap_userns (sys_admin)))
+(allow init self (capability (sys_chroot)))
+(allow init self (cap_userns (sys_chroot)))
+(allow init rootfs (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init rootfs (dir (mounton)))
+(allow init cgroup (dir (mounton)))
+(allow init system_file (dir (mounton)))
+(allow init linkerconfig_file (dir (mounton)))
+(allow init vendor_file (dir (mounton)))
+(allow init system_data_root_file (dir (mounton)))
+(allow init system_data_file (dir (mounton)))
+(allow init shell_data_file (dir (mounton)))
+(allow init mnt_user_file (dir (mounton)))
+(allow init storage_file (dir (mounton)))
+(allow init postinstall_mnt_dir (dir (mounton)))
+(allow init mirror_data_file (dir (mounton)))
+(allow init cache_file (dir (mounton)))
+(allow init system_dlkm_file (dir (mounton)))
+(allow init fs_bpf (dir (mounton)))
+(allow init device (dir (mounton)))
+(allow init apex_mnt_dir (dir (mounton)))
+(allow init art_apex_dir (dir (mounton)))
+(allow init rootfs (lnk_file (create unlink)))
+(allow init sysfs (dir (mounton)))
+(allow init tmpfs (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init tmpfs (dir (mounton)))
+(allow init cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init cgroup (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init cgroup_rc_file (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init cgroup_desc_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init cgroup_desc_api_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init vendor_cgroup_desc_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init cgroup_v2 (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init cgroup_v2 (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init configfs (dir (mounton)))
+(allow init configfs (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init configfs (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow init configfs (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow init metadata_file (dir (mounton)))
+(allow init tmpfs (dir (relabelfrom)))
+(allow init self (capability (dac_override dac_read_search)))
+(allow init self (cap_userns (dac_override dac_read_search)))
+(allow init self (capability (sys_time)))
+(allow init self (cap_userns (sys_time)))
+(allow init self (capability (sys_rawio mknod)))
+(allow init self (cap_userns (sys_rawio mknod)))
+(allow init dev_type (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allowx init dev_type (ioctl blk_file (0x125d)))
+(allowx init system_data_root_file (ioctl dir (0x587d)))
+(allow init base_typeattr_545 (filesystem (mount remount unmount getattr relabelfrom associate quotamod quotaget watch)))
+(allow init debugfs_tracing_debug (filesystem (mount)))
+(allow init unlabeled (filesystem (mount remount unmount getattr relabelfrom associate quotamod quotaget watch)))
+(allow init contextmount_type (filesystem (relabelto)))
+(allow init contextmount_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init contextmount_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init contextmount_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init contextmount_type (sock_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init contextmount_type (fifo_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init rootfs (file (relabelfrom)))
+(allow init rootfs (dir (relabelfrom)))
+(allow init self (capability (chown fowner fsetid)))
+(allow init self (cap_userns (chown fowner fsetid)))
+(allow init base_typeattr_546 (dir (ioctl read create getattr setattr open search)))
+(allow init base_typeattr_547 (dir (write relabelfrom add_name remove_name rmdir)))
+(allow init base_typeattr_548 (file (read write create getattr setattr relabelfrom map unlink open)))
+(allow init tracefs_type (file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow init apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init base_typeattr_549 (sock_file (read create getattr setattr relabelfrom unlink open)))
+(allow init base_typeattr_549 (fifo_file (read create getattr setattr relabelfrom unlink open)))
+(allow init base_typeattr_550 (lnk_file (create getattr setattr relabelfrom unlink)))
+(allow init cache_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init base_typeattr_551 (file (relabelto)))
+(allow init base_typeattr_551 (dir (relabelto)))
+(allow init base_typeattr_551 (lnk_file (relabelto)))
+(allow init base_typeattr_551 (chr_file (relabelto)))
+(allow init base_typeattr_551 (blk_file (relabelto)))
+(allow init base_typeattr_551 (sock_file (relabelto)))
+(allow init base_typeattr_551 (fifo_file (relabelto)))
+(allow init sysfs (file (getattr relabelfrom)))
+(allow init sysfs (dir (getattr relabelfrom)))
+(allow init sysfs (lnk_file (getattr relabelfrom)))
+(allow init debugfs_tracing (file (getattr relabelfrom)))
+(allow init debugfs_tracing (dir (getattr relabelfrom)))
+(allow init debugfs_tracing (lnk_file (getattr relabelfrom)))
+(allow init debugfs_tracing_debug (file (getattr relabelfrom)))
+(allow init debugfs_tracing_debug (dir (getattr relabelfrom)))
+(allow init debugfs_tracing_debug (lnk_file (getattr relabelfrom)))
+(allow init sysfs_type (file (getattr relabelto)))
+(allow init sysfs_type (dir (getattr relabelto)))
+(allow init sysfs_type (lnk_file (getattr relabelto)))
+(allow init tracefs_type (file (getattr relabelto)))
+(allow init tracefs_type (dir (getattr relabelto)))
+(allow init tracefs_type (lnk_file (getattr relabelto)))
+(allow init dev_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init dev_type (lnk_file (create)))
+(allow init debugfs_tracing (file (write lock append map open)))
+(allow init debugfs_tracing_instances (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init debugfs_tracing_instances (file (write lock append map open)))
+(allow init debugfs_wifi_tracing (file (write lock append map open)))
+(allow init base_typeattr_552 (file (read setattr open)))
+(allow init base_typeattr_553 (dir (read setattr open search)))
+(allow init binder_device (chr_file (read open)))
+(allow init hwbinder_device (chr_file (read open)))
+(allow init dm_device (chr_file (read open)))
+(allow init pmsg_device (chr_file (read open)))
+(allow init console_device (chr_file (read open)))
+(allow init input_device (chr_file (read open)))
+(allow init ptmx_device (chr_file (read open)))
+(allow init kmsg_device (chr_file (read open)))
+(allow init null_device (chr_file (read open)))
+(allow init random_device (chr_file (read open)))
+(allow init owntty_device (chr_file (read open)))
+(allow init tty_device (chr_file (read open)))
+(allow init zero_device (chr_file (read open)))
+(allow init devpts (chr_file (read open)))
+(allow init unlabeled (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init unlabeled (file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow init unlabeled (lnk_file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow init unlabeled (sock_file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow init unlabeled (fifo_file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow init kernel (system (syslog_mod)))
+(allow init self (capability2 (syslog)))
+(allow init self (cap2_userns (syslog)))
+(allow init proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_diskstats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_kmsg (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_uptime (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init proc_net_type (file (write lock append map open)))
+(allow init proc_overcommit_memory (file (write lock append map open)))
+(allow init proc_min_free_order_shift (file (write lock append map open)))
+(allow init proc_watermark_boost_factor (file (write lock append map open)))
+(allow init proc_abi (file (write lock append map open)))
+(allow init proc_cpu_alignment (file (write lock append map open)))
+(allow init proc_dirty (file (write lock append map open)))
+(allow init proc_extra_free_kbytes (file (write lock append map open)))
+(allow init proc_hostname (file (write lock append map open)))
+(allow init proc_hung_task (file (write lock append map open)))
+(allow init proc_max_map_count (file (write lock append map open)))
+(allow init proc_page_cluster (file (write lock append map open)))
+(allow init proc_panic (file (write lock append map open)))
+(allow init proc_perf (file (write lock append map open)))
+(allow init proc_sched (file (write lock append map open)))
+(allow init proc_sysrq (file (write lock append map open)))
+(allow init proc_security (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init proc_qtaguid_ctrl (file (setattr)))
+(allow init proc_qtaguid_stat (file (setattr)))
+(allow init proc_bootconfig (file (setattr)))
+(allow init proc_cmdline (file (setattr)))
+(allow init proc_kmsg (file (setattr)))
+(allow init proc_net (file (setattr)))
+(allow init proc_pagetypeinfo (file (setattr)))
+(allow init proc_slabinfo (file (setattr)))
+(allow init proc_sysrq (file (setattr)))
+(allow init proc_vmallocinfo (file (setattr)))
+(allow init sysfs_android_usb (file (write lock append map open)))
+(allow init sysfs_dm (file (write lock append map open)))
+(allow init sysfs_dm_verity (file (write lock append map open)))
+(allow init sysfs_leds (file (write lock append map open)))
+(allow init sysfs_power (file (write lock append map open)))
+(allow init sysfs_lru_gen_enabled (file (write lock append map open)))
+(allow init sysfs_fs_f2fs (file (write lock append map open)))
+(allow init sysfs_dt_firmware_android (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init sysfs_fs_ext4_features (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init sysfs_zram (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init loop_control_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init loop_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx init loop_device (ioctl blk_file ((range 0x4c00 0x4c01) (range 0x4c03 0x4c04) (range 0x4c08 0x4c09) 0x4c82)))
+(allow init sysfs_vibrator (file (write lock append map open)))
+(allow init sysfs_android_usb (file (setattr)))
+(allow init sysfs_ipv4 (file (setattr)))
+(allow init sysfs_leds (file (setattr)))
+(allow init sysfs_wake_lock (file (setattr)))
+(allow init sysfs_power (file (setattr)))
+(allow init sysfs_devices_system_cpu (file (setattr)))
+(allow init sysfs_lowmemorykiller (file (setattr)))
+(allow init sysfs_vibrator (file (setattr)))
+(allow init sysfs_zram (file (setattr)))
+(allow init usermodehelper (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init sysfs_usermodehelper (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init self (capability (net_admin)))
+(allow init self (cap_userns (net_admin)))
+(allow init self (capability (sys_boot)))
+(allow init self (cap_userns (sys_boot)))
+(allow init misc_logd_file (dir (read write create getattr setattr open add_name search)))
+(allow init misc_logd_file (file (write create getattr setattr open)))
+(allow init self (capability (kill)))
+(allow init self (cap_userns (kill)))
+(allow init domain (process (sigkill signal getpgid)))
+(allow init credstore_data_file (dir (read create getattr setattr open search)))
+(allow init credstore_data_file (file (getattr)))
+(allow init keystore_data_file (dir (read create getattr setattr open search)))
+(allow init keystore_data_file (file (getattr)))
+(allow init vold_data_file (dir (read create getattr setattr open search)))
+(allow init vold_data_file (file (getattr)))
+(allow init shell_data_file (dir (read create getattr setattr open search)))
+(allow init shell_data_file (file (getattr)))
+(allow init self (capability (setgid setuid setpcap)))
+(allow init self (cap_userns (setgid setuid setpcap)))
+(allow init domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init self (process (setexec setfscreate setsockcreate)))
+(allow init file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init sepolicy_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init selinuxfs (file (write lock append map open)))
+(allow init kernel (security (compute_av)))
+(allow init self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow init kernel (security (compute_create)))
+(allow init domain (unix_stream_socket (create bind setopt)))
+(allow init domain (unix_dgram_socket (create bind setopt)))
+(allow init property_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init property_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow init property_type (property_service (set)))
+(allow init self (netlink_audit_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_relay)))
+(allow init self (capability (audit_write)))
+(allow init self (cap_userns (audit_write)))
+(allow init self (udp_socket (ioctl create)))
+(allowx init self (ioctl udp_socket (0x8914)))
+(allow init self (capability (net_raw)))
+(allow init self (cap_userns (net_raw)))
+(allow init kernel (process (getsched setsched)))
+(allow init swap_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init device (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow init input_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init input_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init dm_user_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init metadata_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init pstorefs (dir (search)))
+(allow init pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init kernel (system (syslog_read)))
+(allow init init (key (write search setattr)))
+(allow init unencrypted_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allowx init data_file_type (ioctl dir (0x6613 0x6615)))
+(allowx init unlabeled (ioctl dir (0x6613 0x6615)))
+(allow init misc_block_device (blk_file (write lock append map open)))
+(allow init system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init system_dlkm_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init system_dlkm_file_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init system_dlkm_file_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init vendor_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init vendor_file_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init vendor_file_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init system_data_file (file (read getattr)))
+(allow init system_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init vendor_shell_exec (file (execute)))
+(allow init vold_metadata_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init vold_metadata_file (file (getattr)))
+(allow init metadata_bootstat_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow init metadata_bootstat_file (file (write lock append map open)))
+(allow init userspace_reboot_metadata_file (file (write lock append map open)))
+(allow init proc_pressure_mem (file (ioctl read write getattr setattr lock append map open watch watch_reads)))
+(allow init system_bootstrap_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init system_bootstrap_lib_file (file (read getattr map execute open)))
+(allow init fuse (dir (getattr search)))
+(allow init userdata_sysdev (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow init rootdisk_sysdev (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+;;* lmx 659 system/sepolicy/public/init.te
+
+(neverallow domain init (process (dyntransition)))
+;;* lme
+
+;;* lmx 660 system/sepolicy/public/init.te
+
+(neverallow base_typeattr_254 init (process (transition)))
+;;* lme
+
+;;* lmx 661 system/sepolicy/public/init.te
+
+(neverallow init base_typeattr_554 (file (entrypoint)))
+;;* lme
+
+;;* lmx 664 system/sepolicy/public/init.te
+
+(neverallow init shell_data_file (lnk_file (read)))
+;;* lme
+
+;;* lmx 665 system/sepolicy/public/init.te
+
+(neverallow init app_data_file_type (lnk_file (read)))
+;;* lme
+
+;;* lmx 668 system/sepolicy/public/init.te
+
+(neverallow init fs_type (file (execute_no_trans)))
+(neverallow init file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 677 system/sepolicy/public/init.te
+
+(neverallow init base_typeattr_224 (process (noatsecure)))
+;;* lme
+
+;;* lmx 680 system/sepolicy/public/init.te
+
+(neverallow init service_manager_type (service_manager (add find)))
+;;* lme
+
+;;* lmx 682 system/sepolicy/public/init.te
+
+(neverallow init servicemanager (service_manager (list)))
+;;* lme
+
+;;* lmx 685 system/sepolicy/public/init.te
+
+(neverallow init shell_data_file (dir (write add_name remove_name)))
+;;* lme
+
+;;* lmx 688 system/sepolicy/public/init.te
+
+(neverallow init sysfs (file (write open)))
+;;* lme
+
+;;* lmx 691 system/sepolicy/public/init.te
+
+(neverallow base_typeattr_224 init (process (ptrace)))
+;;* lme
+
+;;* lmx 696 system/sepolicy/public/init.te
+
+(neverallow base_typeattr_555 system_data_root_file (dir (write add_name remove_name)))
+;;* lme
+
+(allow inputflinger servicemanager (binder (call transfer)))
+(allow servicemanager inputflinger (binder (call transfer)))
+(allow servicemanager inputflinger (dir (search)))
+(allow servicemanager inputflinger (file (read open)))
+(allow servicemanager inputflinger (process (getattr)))
+(allow inputflinger system_server (binder (call transfer)))
+(allow system_server inputflinger (binder (transfer)))
+(allow inputflinger system_server (fd (use)))
+(allow inputflinger sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow inputflinger self (capability2 (block_suspend)))
+(allow inputflinger self (cap2_userns (block_suspend)))
+(allow inputflinger system_suspend_server (binder (call transfer)))
+(allow system_suspend_server inputflinger (binder (transfer)))
+(allow inputflinger system_suspend_server (fd (use)))
+(allow inputflinger system_suspend_hwservice (hwservice_manager (find)))
+(allow inputflinger hwservicemanager (binder (call transfer)))
+(allow hwservicemanager inputflinger (binder (call transfer)))
+(allow hwservicemanager inputflinger (dir (search)))
+(allow hwservicemanager inputflinger (file (read map open)))
+(allow hwservicemanager inputflinger (process (getattr)))
+(allow inputflinger hwservicemanager_prop (file (read getattr map open)))
+(allow inputflinger hidl_manager_hwservice (hwservice_manager (find)))
+(allow inputflinger hal_system_suspend_service (service_manager (find)))
+(allow inputflinger servicemanager (binder (call transfer)))
+(allow servicemanager inputflinger (binder (call transfer)))
+(allow servicemanager inputflinger (dir (search)))
+(allow servicemanager inputflinger (file (read open)))
+(allow servicemanager inputflinger (process (getattr)))
+(allow inputflinger input_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow inputflinger input_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow inputflinger cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow inputflinger cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow inputflinger cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow inputflinger cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow inputflinger cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow inputflinger cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd self (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid sys_admin)))
+(allow installd self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setgid setuid sys_admin)))
+(allow installd dalvikcache_data_file (dir (relabelto)))
+(allow installd dalvikcache_data_file (file (relabelto link)))
+(allow installd apk_data_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd apk_data_file (file (ioctl read write create getattr setattr lock relabelfrom append map unlink link rename open watch watch_reads)))
+(allow installd apk_data_file (lnk_file (ioctl read create getattr lock map unlink open watch watch_reads)))
+(allow installd asec_apk_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd apk_tmp_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow installd apk_tmp_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd oemfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd oemfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd cgroup_v2 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd mnt_expand_file (dir (getattr search)))
+(allow installd selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd selinuxfs (file (write lock append map open)))
+(allow installd kernel (security (check_context)))
+(allow installd rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd vendor_framework_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd vendor_framework_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd vendor_framework_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd vendor_apex_metadata_file (dir (getattr search)))
+(allow installd file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd asec_image_file (dir (search)))
+(allow installd asec_image_file (file (getattr)))
+(allow installd system_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd system_data_file (lnk_file (read create getattr setattr unlink)))
+(allow installd mnt_pass_through_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd media_rw_data_file (file (getattr unlink)))
+(allow installd system_data_file (dir (relabelfrom)))
+(allow installd media_rw_data_file (dir (relabelto)))
+(allow installd media_userdir_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd tmpfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd storage_file (dir (search)))
+(allow installd sdcard_type (dir (read write getattr open remove_name search rmdir)))
+(allow installd fuse (dir (read write getattr open remove_name search rmdir)))
+(allow installd sdcard_type (file (getattr unlink)))
+(allow installd fuse (file (getattr unlink)))
+(allow installd mirror_data_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd system_userdir_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow installd misc_user_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd misc_user_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow installd keychain_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd keychain_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow installd install_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow installd install_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow installd dalvikcache_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd dalvikcache_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow installd dalvikcache_data_file (lnk_file (getattr)))
+(allow installd resourcecache_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow installd resourcecache_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow installd unlabeled (dir (ioctl read write getattr lock relabelfrom open watch watch_reads add_name remove_name search rmdir)))
+(allow installd unlabeled (file (getattr setattr relabelfrom unlink rename)))
+(allow installd unlabeled (lnk_file (getattr setattr relabelfrom unlink rename)))
+(allow installd unlabeled (sock_file (getattr setattr relabelfrom unlink rename)))
+(allow installd unlabeled (fifo_file (getattr setattr relabelfrom unlink rename)))
+(allow installd unlabeled (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd system_data_file (file (getattr relabelfrom unlink)))
+(allow installd system_data_file (lnk_file (getattr relabelfrom unlink)))
+(allow installd system_data_file (sock_file (getattr relabelfrom unlink)))
+(allow installd system_data_file (fifo_file (getattr relabelfrom unlink)))
+(allow installd app_data_file_type (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd app_data_file_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink rename open watch watch_reads)))
+(allow installd app_data_file_type (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink rename open watch watch_reads)))
+(allow installd app_data_file_type (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink rename open watch watch_reads)))
+(allow installd app_data_file_type (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink rename open watch watch_reads)))
+(allowx installd app_data_file_type (ioctl file ((range 0x581f 0x5820))))
+(allowx installd app_data_file_type (ioctl dir ((range 0x581f 0x5820))))
+(allowx installd system_data_file (ioctl file ((range 0x581f 0x5820))))
+(allowx installd system_data_file (ioctl dir ((range 0x581f 0x5820))))
+(allowx installd install_data_file (ioctl file ((range 0x581f 0x5820))))
+(allowx installd install_data_file (ioctl dir ((range 0x581f 0x5820))))
+(allowx installd app_data_file_type (ioctl file ((range 0x6601 0x6602))))
+(allowx installd app_data_file_type (ioctl dir ((range 0x6601 0x6602))))
+(allowx installd system_data_file (ioctl file ((range 0x6601 0x6602))))
+(allowx installd system_data_file (ioctl dir ((range 0x6601 0x6602))))
+(allowx installd install_data_file (ioctl file ((range 0x6601 0x6602))))
+(allowx installd install_data_file (ioctl dir ((range 0x6601 0x6602))))
+(allow installd user_profile_root_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd user_profile_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd user_profile_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow installd user_profile_data_file (file (unlink)))
+(allow installd labeledfs (filesystem (unmount)))
+(allow installd profman_dump_data_file (dir (write add_name search)))
+(allow installd profman_dump_data_file (file (write create setattr open)))
+(allow installd devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow installd toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow installd servicemanager (binder (call transfer)))
+(allow servicemanager installd (binder (call transfer)))
+(allow servicemanager installd (dir (search)))
+(allow servicemanager installd (file (read open)))
+(allow servicemanager installd (process (getattr)))
+(allow installd installd_service (service_manager (add find)))
+;;* lmx 145 system/sepolicy/public/installd.te
+
+(neverallow base_typeattr_556 installd_service (service_manager (add)))
+;;* lme
+
+(allow installd dumpstate (fifo_file (write getattr)))
+(allow installd system_server (binder (call transfer)))
+(allow system_server installd (binder (transfer)))
+(allow installd system_server (fd (use)))
+(allow installd permission_service (service_manager (find)))
+(allow installd block_device (dir (search)))
+(allow installd labeledfs (filesystem (quotamod quotaget)))
+(allow installd preloads_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow installd preloads_data_file (dir (ioctl read write getattr lock open watch watch_reads remove_name search rmdir)))
+(allow installd preloads_media_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow installd preloads_media_file (dir (ioctl read write getattr lock open watch watch_reads remove_name search rmdir)))
+(allow installd proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd storage_config_prop (file (read getattr map open)))
+(allow installd vold (fd (use)))
+;;* lmx 178 system/sepolicy/public/installd.te
+
+(neverallow base_typeattr_557 installd_service (service_manager (find)))
+;;* lme
+
+;;* lmx 179 system/sepolicy/public/installd.te
+
+(neverallow base_typeattr_558 installd (binder (call)))
+;;* lme
+
+;;* lmx 185 system/sepolicy/public/installd.te
+
+(neverallow installd base_typeattr_559 (binder (call)))
+;;* lme
+
+(allow kernel self (capability (sys_nice)))
+(allow kernel self (cap_userns (sys_nice)))
+(allow kernel rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow kernel rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow kernel rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow kernel proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow kernel proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow kernel selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow kernel selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow kernel file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow kernel rootfs (file (relabelfrom)))
+(allow kernel init_exec (file (relabelto)))
+(allow kernel init (process (share)))
+(allow kernel unlabeled (dir (search)))
+(allow kernel usbfs (filesystem (mount)))
+(allow kernel usbfs (dir (search)))
+(dontaudit kernel self (security (setenforce)))
+(allow kernel self (capability (sys_resource)))
+(allow kernel self (cap_userns (sys_resource)))
+(allow kernel self (capability (sys_boot)))
+(allow kernel self (cap_userns (sys_boot)))
+(allow kernel proc_sysrq (file (write lock append map open)))
+(allow kernel tmpfs (chr_file (write)))
+(allow kernel selinuxfs (file (write)))
+(allow kernel self (security (setcheckreqprot)))
+(allow kernel sdcard_type (file (read write)))
+(allow kernel fuse (file (read write)))
+(allow kernel mediaprovider (fd (use)))
+(allow kernel vold (fd (use)))
+(allow kernel app_data_file (file (read)))
+(allow kernel privapp_data_file (file (read)))
+(allow kernel asec_image_file (file (read)))
+(allow kernel media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow kernel media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow kernel vold_data_file (file (read write)))
+(allow kernel apexd (fd (use)))
+(allow kernel apex_data_file (file (read)))
+(allow kernel staging_data_file (file (read)))
+(allow kernel vendor_apex_file (file (read)))
+(allow kernel system_file (file (execute)))
+(allow kernel appdomain_tmpfs (file (read write)))
+;;* lmx 128 system/sepolicy/public/kernel.te
+
+(neverallow base_typeattr_224 kernel (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 138 system/sepolicy/public/kernel.te
+
+(neverallow kernel base_typeattr_224 (file (execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 143 system/sepolicy/public/kernel.te
+
+(neverallow kernel self (capability (dac_override dac_read_search)))
+(neverallow kernel self (cap_userns (dac_override dac_read_search)))
+;;* lme
+
+;;* lmx 146 system/sepolicy/public/kernel.te
+
+(neverallow base_typeattr_224 kernel (process (ptrace)))
+;;* lme
+
+(allow keystore servicemanager (binder (call transfer)))
+(allow servicemanager keystore (binder (call transfer)))
+(allow servicemanager keystore (dir (search)))
+(allow servicemanager keystore (file (read open)))
+(allow servicemanager keystore (process (getattr)))
+(allow keystore remote_provisioning_service_server (binder (call transfer)))
+(allow remote_provisioning_service_server keystore (binder (transfer)))
+(allow keystore remote_provisioning_service_server (fd (use)))
+(allow keystore system_server (binder (call transfer)))
+(allow system_server keystore (binder (transfer)))
+(allow keystore system_server (fd (use)))
+(allow keystore wificond (binder (call transfer)))
+(allow wificond keystore (binder (transfer)))
+(allow keystore wificond (fd (use)))
+(allow keystore keystore_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow keystore keystore_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow keystore keystore_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow keystore keystore_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow keystore keystore_data_file (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow keystore keystore_exec (file (getattr)))
+(allow keystore keystore_service (service_manager (add find)))
+;;* lmx 16 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 keystore_service (service_manager (add)))
+;;* lme
+
+(allow keystore sec_key_att_app_id_provider_service (service_manager (find)))
+(allow keystore dropbox_service (service_manager (find)))
+(allow keystore remote_provisioning_service (service_manager (find)))
+(allow keystore apc_service (service_manager (add find)))
+;;* lmx 20 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 apc_service (service_manager (add)))
+;;* lme
+
+(allow keystore keystore_compat_hal_service (service_manager (add find)))
+;;* lmx 21 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 keystore_compat_hal_service (service_manager (add)))
+;;* lme
+
+(allow keystore authorization_service (service_manager (add find)))
+;;* lmx 22 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 authorization_service (service_manager (add)))
+;;* lme
+
+(allow keystore keystore_maintenance_service (service_manager (add find)))
+;;* lmx 23 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 keystore_maintenance_service (service_manager (add)))
+;;* lme
+
+(allow keystore keystore_metrics_service (service_manager (add find)))
+;;* lmx 24 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 keystore_metrics_service (service_manager (add)))
+;;* lme
+
+(allow keystore legacykeystore_service (service_manager (add find)))
+;;* lmx 25 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 legacykeystore_service (service_manager (add)))
+;;* lme
+
+(allow keystore selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow keystore selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore selinuxfs (file (write lock append map open)))
+(allow keystore kernel (security (compute_av)))
+(allow keystore self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow keystore cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow keystore cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow keystore cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 39 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 keystore_data_file (dir (write lock relabelfrom append map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 40 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_560 keystore_data_file (file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_560 keystore_data_file (lnk_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_560 keystore_data_file (sock_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_560 keystore_data_file (fifo_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_561 keystore_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/public/keystore.te
+
+(neverallow base_typeattr_561 keystore_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_561 keystore_data_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_561 keystore_data_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_561 keystore_data_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 46 system/sepolicy/public/keystore.te
+
+(neverallow domain keystore (process (ptrace)))
+;;* lme
+
+(allow keystore vendor_security_patch_level_prop (file (read getattr map open)))
+(allow keystore keystore_config_prop (file (read getattr map open)))
+(allow lmkd self (capability (dac_override dac_read_search kill sys_resource)))
+(allow lmkd self (cap_userns (dac_override dac_read_search kill sys_resource)))
+(allow lmkd self (capability (ipc_lock)))
+(allow lmkd self (cap_userns (ipc_lock)))
+(allow lmkd domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow lmkd domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd domain (file (write)))
+(allow lmkd sysfs_lowmemorykiller (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow lmkd sysfs_lowmemorykiller (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd sysfs_lowmemorykiller (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd sysfs_lowmemorykiller (file (write lock append map open)))
+(allow lmkd domain (process (sigkill setsched)))
+(allow lmkd kernel (process (setsched)))
+(allow lmkd cgroup (dir (remove_name rmdir)))
+(allow lmkd cgroup_v2 (dir (remove_name rmdir)))
+(allow lmkd cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd self (capability (sys_nice)))
+(allow lmkd self (cap_userns (sys_nice)))
+(allow lmkd proc_zoneinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd domain (dir (read open search)))
+(allow lmkd domain (file (read open)))
+(allow lmkd proc_sysrq (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow lmkd proc_lowmemorykiller (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd proc_pressure_cpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd proc_pressure_io (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lmkd proc_pressure_mem (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow lmkd lmkd_socket (sock_file (write)))
+(allow lmkd statsdw_socket (sock_file (write)))
+(allow lmkd statsd (unix_dgram_socket (sendto)))
+;;* lmx 71 system/sepolicy/public/lmkd.te
+
+(neverallow base_typeattr_224 lmkd (process (noatsecure)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/public/lmkd.te
+
+(neverallow lmkd self (capability (sys_ptrace)))
+(neverallow lmkd self (cap_userns (sys_ptrace)))
+;;* lme
+
+(allow logd cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow logd cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow logd cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd proc_kmsg (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow logd proc_kmsg (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd proc_kmsg (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd proc_meminfo (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow logd proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd proc_meminfo (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd self (capability (setgid setuid setpcap sys_nice audit_control)))
+(allow logd self (cap_userns (setgid setuid setpcap sys_nice audit_control)))
+(allow logd self (capability2 (syslog)))
+(allow logd self (cap2_userns (syslog)))
+(allow logd self (netlink_audit_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_write)))
+(allow logd kernel (system (syslog_read)))
+(allow logd kmsg_device (chr_file (write getattr lock append map open)))
+(allow logd system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd system_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd pstorefs (dir (search)))
+(allow logd pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd runtime_event_log_tags_file (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow logd domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow logd domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow logd kernel (system (syslog_mod)))
+(allow logd logd_socket (sock_file (write)))
+(allow logd logd (unix_stream_socket (connectto)))
+(allow logd runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow runtime_event_log_tags_file tmpfs (filesystem (associate)))
+(dontaudit domain runtime_event_log_tags_file (file (read map open)))
+(allow logd property_socket (sock_file (write)))
+(allow logd init (unix_stream_socket (connectto)))
+(allow logd logd_prop (property_service (set)))
+(allow logd logd_prop (file (read getattr map open)))
+;;* lmx 51 system/sepolicy/public/logd.te
+
+(neverallow logd dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 54 system/sepolicy/public/logd.te
+
+(neverallow logd domain (process (ptrace)))
+;;* lme
+
+;;* lmx 57 system/sepolicy/public/logd.te
+
+(neverallow domain logd (process (ptrace)))
+;;* lme
+
+;;* lmx 60 system/sepolicy/public/logd.te
+
+(neverallow logd system_file_type (file (write)))
+(neverallow logd system_file_type (dir (write)))
+(neverallow logd system_file_type (lnk_file (write)))
+(neverallow logd system_file_type (chr_file (write)))
+(neverallow logd system_file_type (blk_file (write)))
+(neverallow logd system_file_type (sock_file (write)))
+(neverallow logd system_file_type (fifo_file (write)))
+;;* lme
+
+;;* lmx 68 system/sepolicy/public/logd.te
+
+(neverallow logd base_typeattr_562 (file (write)))
+(neverallow logd base_typeattr_562 (dir (write)))
+(neverallow logd base_typeattr_562 (lnk_file (write)))
+(neverallow logd base_typeattr_562 (chr_file (write)))
+(neverallow logd base_typeattr_562 (blk_file (write)))
+(neverallow logd base_typeattr_562 (sock_file (write)))
+(neverallow logd base_typeattr_562 (fifo_file (write)))
+;;* lme
+
+;;* lmx 71 system/sepolicy/public/logd.te
+
+(neverallow base_typeattr_223 logd (process (transition)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/public/logd.te
+
+(neverallow base_typeattr_224 logd (process (dyntransition)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/public/logd.te
+
+(neverallow base_typeattr_563 runtime_event_log_tags_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+(allow logpersist shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow logpersist logcat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+;;* lmx 15 system/sepolicy/public/logpersist.te
+
+(neverallow logpersist dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 18 system/sepolicy/public/logpersist.te
+
+(neverallow logpersist domain (process (ptrace)))
+;;* lme
+
+;;* lmx 21 system/sepolicy/public/logpersist.te
+
+(neverallow logpersist app_data_file_type (file (write)))
+(neverallow logpersist app_data_file_type (dir (write)))
+(neverallow logpersist app_data_file_type (lnk_file (write)))
+(neverallow logpersist app_data_file_type (chr_file (write)))
+(neverallow logpersist app_data_file_type (blk_file (write)))
+(neverallow logpersist app_data_file_type (sock_file (write)))
+(neverallow logpersist app_data_file_type (fifo_file (write)))
+(neverallow logpersist system_data_file (file (write)))
+(neverallow logpersist system_data_file (dir (write)))
+(neverallow logpersist system_data_file (lnk_file (write)))
+(neverallow logpersist system_data_file (chr_file (write)))
+(neverallow logpersist system_data_file (blk_file (write)))
+(neverallow logpersist system_data_file (sock_file (write)))
+(neverallow logpersist system_data_file (fifo_file (write)))
+;;* lme
+
+;;* lmx 31 system/sepolicy/public/logpersist.te
+
+(neverallow base_typeattr_224 logpersist (process (dyntransition)))
+;;* lme
+
+(allowx logpersist misc_logd_file (ioctl file (0x6602)))
+(allowx logpersist misc_logd_file (ioctl file (0xf512)))
+(allow mediadrmserver servicemanager (binder (call transfer)))
+(allow servicemanager mediadrmserver (binder (call transfer)))
+(allow servicemanager mediadrmserver (dir (search)))
+(allow servicemanager mediadrmserver (file (read open)))
+(allow servicemanager mediadrmserver (process (getattr)))
+(allow mediadrmserver binderservicedomain (binder (call transfer)))
+(allow binderservicedomain mediadrmserver (binder (transfer)))
+(allow mediadrmserver binderservicedomain (fd (use)))
+(allow mediadrmserver appdomain (binder (call transfer)))
+(allow appdomain mediadrmserver (binder (transfer)))
+(allow mediadrmserver appdomain (fd (use)))
+(allow mediadrmserver mediadrmserver_service (service_manager (add find)))
+;;* lmx 14 system/sepolicy/public/mediadrmserver.te
+
+(neverallow base_typeattr_564 mediadrmserver_service (service_manager (add)))
+;;* lme
+
+(allow mediadrmserver mediaserver_service (service_manager (find)))
+(allow mediadrmserver mediametrics_service (service_manager (find)))
+(allow mediadrmserver processinfo_service (service_manager (find)))
+(allow mediadrmserver surfaceflinger_service (service_manager (find)))
+(allow mediadrmserver system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediadrmserver hal_omx_server (binder (call transfer)))
+(allow hal_omx_server mediadrmserver (binder (transfer)))
+(allow mediadrmserver hal_omx_server (fd (use)))
+;;* lmx 30 system/sepolicy/public/mediadrmserver.te
+
+(neverallow mediadrmserver fs_type (file (execute_no_trans)))
+(neverallow mediadrmserver file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 33 system/sepolicy/public/mediadrmserver.te
+
+(neverallowx mediadrmserver domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx mediadrmserver domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx mediadrmserver domain (ioctl rawip_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 33 system/sepolicy/public/mediadrmserver.te
+
+(neverallowx mediadrmserver domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediadrmserver domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediadrmserver domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 33 system/sepolicy/public/mediadrmserver.te
+
+(neverallowx mediadrmserver domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediadrmserver domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediadrmserver domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+(allow mediaextractor servicemanager (binder (call transfer)))
+(allow servicemanager mediaextractor (binder (call transfer)))
+(allow servicemanager mediaextractor (dir (search)))
+(allow servicemanager mediaextractor (file (read open)))
+(allow servicemanager mediaextractor (process (getattr)))
+(allow mediaextractor binderservicedomain (binder (call transfer)))
+(allow binderservicedomain mediaextractor (binder (transfer)))
+(allow mediaextractor binderservicedomain (fd (use)))
+(allow mediaextractor appdomain (binder (call transfer)))
+(allow appdomain mediaextractor (binder (transfer)))
+(allow mediaextractor appdomain (fd (use)))
+(allow mediaextractor mediaextractor_service (service_manager (add find)))
+;;* lmx 13 system/sepolicy/public/mediaextractor.te
+
+(neverallow base_typeattr_565 mediaextractor_service (service_manager (add)))
+;;* lme
+
+(allow mediaextractor mediametrics_service (service_manager (find)))
+(allow mediaextractor hidl_token_hwservice (hwservice_manager (find)))
+(allow mediaextractor system_server (fd (use)))
+(allow mediaextractor cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaextractor cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaextractor cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaextractor cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaextractor cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaextractor cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaextractor proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaextractor anr_data_file (file (append)))
+(allow mediaextractor dumpstate (fd (use)))
+(allow mediaextractor incidentd (fd (use)))
+(allow mediaextractor dumpstate (fifo_file (write append)))
+(allow mediaextractor incidentd (fifo_file (write append)))
+(allow mediaextractor system_server (fifo_file (write append)))
+(allow mediaextractor tombstoned (unix_stream_socket (connectto)))
+(allow mediaextractor tombstoned (fd (use)))
+(allow mediaextractor tombstoned_crash_socket (sock_file (write)))
+(allow mediaextractor tombstone_data_file (file (append)))
+(allow mediaextractor sdcard_type (file (read getattr)))
+(allow mediaextractor fuse (file (read getattr)))
+(allow mediaextractor media_rw_data_file (file (read getattr)))
+(allow mediaextractor app_data_file (file (read getattr)))
+(allow mediaextractor privapp_data_file (file (read getattr)))
+(allow mediaextractor apk_data_file (file (read getattr)))
+(allow mediaextractor asec_apk_file (file (read getattr)))
+(allow mediaextractor ringtone_file (file (read getattr)))
+(allow mediaextractor vendor_overlay_file (file (read map)))
+(allow mediaextractor system_file (dir (read open)))
+;;* lmx 50 system/sepolicy/public/mediaextractor.te
+
+(neverallow mediaextractor fs_type (file (execute_no_trans)))
+(neverallow mediaextractor file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 62 system/sepolicy/public/mediaextractor.te
+
+(neverallow mediaextractor domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow mediaextractor domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 63 system/sepolicy/public/mediaextractor.te
+
+(neverallow mediaextractor domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/public/mediaextractor.te
+
+(neverallow mediaextractor data_file_type (file (open)))
+;;* lme
+
+(allow mediametrics servicemanager (binder (call transfer)))
+(allow servicemanager mediametrics (binder (call transfer)))
+(allow servicemanager mediametrics (dir (search)))
+(allow servicemanager mediametrics (file (read open)))
+(allow servicemanager mediametrics (process (getattr)))
+(allow mediametrics binderservicedomain (binder (call transfer)))
+(allow binderservicedomain mediametrics (binder (transfer)))
+(allow mediametrics binderservicedomain (fd (use)))
+(allow mediametrics mediametrics_service (service_manager (add find)))
+;;* lmx 10 system/sepolicy/public/mediametrics.te
+
+(neverallow base_typeattr_566 mediametrics_service (service_manager (add)))
+;;* lme
+
+(allow mediametrics system_server (fd (use)))
+(allow mediametrics cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediametrics cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediametrics cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediametrics cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediametrics cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediametrics cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediametrics proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediametrics app_data_file (file (write)))
+(allow mediametrics privapp_data_file (file (write)))
+(allow mediametrics package_native_service (service_manager (find)))
+(allow mediametrics statsdw_socket (sock_file (write)))
+(allow mediametrics statsd (unix_dgram_socket (sendto)))
+;;* lmx 33 system/sepolicy/public/mediametrics.te
+
+(neverallow mediametrics fs_type (file (execute_no_trans)))
+(neverallow mediametrics file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/public/mediametrics.te
+
+(neverallow mediametrics domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow mediametrics domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 46 system/sepolicy/public/mediametrics.te
+
+(neverallow mediametrics domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+(allow mediaserver sdcard_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver sdcard_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver sdcard_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver fuse (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver fuse (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver fuse (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver proc (lnk_file (getattr)))
+(allow mediaserver system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver servicemanager (binder (call transfer)))
+(allow servicemanager mediaserver (binder (call transfer)))
+(allow servicemanager mediaserver (dir (search)))
+(allow servicemanager mediaserver (file (read open)))
+(allow servicemanager mediaserver (process (getattr)))
+(allow mediaserver binderservicedomain (binder (call transfer)))
+(allow binderservicedomain mediaserver (binder (transfer)))
+(allow mediaserver binderservicedomain (fd (use)))
+(allow mediaserver appdomain (binder (call transfer)))
+(allow appdomain mediaserver (binder (transfer)))
+(allow mediaserver appdomain (fd (use)))
+(allow mediaserver media_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow mediaserver media_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow mediaserver app_data_file (file (ioctl read write getattr lock append map)))
+(allow mediaserver privapp_data_file (file (ioctl read write getattr lock append map)))
+(allow mediaserver sdcard_type (file (write)))
+(allow mediaserver fuse (file (write)))
+(allow mediaserver gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mediaserver gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver video_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver video_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mediaserver apk_data_file (file (read getattr)))
+(allow mediaserver asec_apk_file (file (read getattr)))
+(allow mediaserver ringtone_file (file (read getattr)))
+(allow mediaserver radio_data_file (file (read getattr)))
+(allow mediaserver appdomain (fifo_file (read write getattr)))
+(allow mediaserver rpmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mediaserver system_server (fifo_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver media_rw_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaserver media_rw_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver media_rw_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver app_fuse_file (file (read getattr)))
+(allow mediaserver drmserver_socket (sock_file (write)))
+(allow mediaserver drmserver (unix_stream_socket (connectto)))
+(allow mediaserver bluetooth_socket (sock_file (write)))
+(allow mediaserver bluetooth (unix_stream_socket (connectto)))
+(allow mediaserver statsdw_socket (sock_file (write)))
+(allow mediaserver statsd (unix_dgram_socket (sendto)))
+(allow mediaserver mediaserver_service (service_manager (add find)))
+;;* lmx 72 system/sepolicy/public/mediaserver.te
+
+(neverallow base_typeattr_567 mediaserver_service (service_manager (add)))
+;;* lme
+
+(allow mediaserver activity_service (service_manager (find)))
+(allow mediaserver appops_service (service_manager (find)))
+(allow mediaserver audio_service (service_manager (find)))
+(allow mediaserver audioserver_service (service_manager (find)))
+(allow mediaserver cameraserver_service (service_manager (find)))
+(allow mediaserver batterystats_service (service_manager (find)))
+(allow mediaserver drmserver_service (service_manager (find)))
+(allow mediaserver mediaextractor_service (service_manager (find)))
+(allow mediaserver mediametrics_service (service_manager (find)))
+(allow mediaserver media_session_service (service_manager (find)))
+(allow mediaserver package_native_service (service_manager (find)))
+(allow mediaserver permission_service (service_manager (find)))
+(allow mediaserver permission_checker_service (service_manager (find)))
+(allow mediaserver power_service (service_manager (find)))
+(allow mediaserver processinfo_service (service_manager (find)))
+(allow mediaserver scheduling_policy_service (service_manager (find)))
+(allow mediaserver surfaceflinger_service (service_manager (find)))
+(allow mediaserver mediadrmserver_service (service_manager (find)))
+(allow mediaserver hidl_token_hwservice (hwservice_manager (find)))
+(allow mediaserver oemfs (dir (search)))
+(allow mediaserver oemfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver bootanim_oem_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver vendor_app_file (file (read getattr map)))
+(allow drmserver mediaserver (dir (search)))
+(allow drmserver mediaserver (file (read open)))
+(allow drmserver mediaserver (process (getattr)))
+(allow mediaserver drmserver (drmservice (consumeRights setPlaybackStatus openDecryptSession closeDecryptSession initializeDecryptUnit decrypt finalizeDecryptUnit pread)))
+(allowx mediaserver self (ioctl tcp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx mediaserver self (ioctl udp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx mediaserver self (ioctl rawip_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx mediaserver self (ioctl tcp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx mediaserver self (ioctl udp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx mediaserver self (ioctl rawip_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx mediaserver self (ioctl tcp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx mediaserver self (ioctl udp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx mediaserver self (ioctl rawip_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allow mediaserver media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow mediaserver media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow mediaserver preloads_media_file (file (ioctl read getattr)))
+(allow mediaserver ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver dmabuf_system_secure_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaserver hal_graphics_allocator (fd (use)))
+(allow mediaserver hal_graphics_composer (fd (use)))
+(allow mediaserver hal_camera (fd (use)))
+(allow mediaserver system_server (fd (use)))
+(allow mediaserver vold (fd (use)))
+(allow mediaserver vendor_overlay_file (file (read getattr map)))
+;;* lmx 155 system/sepolicy/public/mediaserver.te
+
+(neverallow mediaserver fs_type (file (execute_no_trans)))
+(neverallow mediaserver file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 158 system/sepolicy/public/mediaserver.te
+
+(neverallowx mediaserver domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx mediaserver domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx mediaserver domain (ioctl rawip_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 158 system/sepolicy/public/mediaserver.te
+
+(neverallowx mediaserver domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaserver domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaserver domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 158 system/sepolicy/public/mediaserver.te
+
+(neverallowx mediaserver domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaserver domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaserver domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+(allow mediaswcodec aac_drc_prop (file (read getattr map open)))
+(allow mediaswcodec anr_data_file (file (append)))
+(allow mediaswcodec dumpstate (fd (use)))
+(allow mediaswcodec incidentd (fd (use)))
+(allow mediaswcodec dumpstate (fifo_file (write append)))
+(allow mediaswcodec incidentd (fifo_file (write append)))
+(allow mediaswcodec system_server (fifo_file (write append)))
+(allow mediaswcodec tombstoned (unix_stream_socket (connectto)))
+(allow mediaswcodec tombstoned (fd (use)))
+(allow mediaswcodec tombstoned_crash_socket (sock_file (write)))
+(allow mediaswcodec tombstone_data_file (file (append)))
+;;* lmx 21 system/sepolicy/public/mediaswcodec.te
+
+(neverallow mediaswcodec fs_type (file (execute_no_trans)))
+(neverallow mediaswcodec file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 27 system/sepolicy/public/mediaswcodec.te
+
+(neverallow mediaswcodec domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow mediaswcodec domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 28 system/sepolicy/public/mediaswcodec.te
+
+(neverallow mediaswcodec domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+(allow mediaswcodec dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaswcodec dmabuf_system_secure_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaswcodec gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mediaswcodec gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow modprobe proc_modules (file (ioctl read getattr lock map open watch watch_reads)))
+(allow modprobe proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow modprobe self (capability (sys_module)))
+(allow modprobe self (cap_userns (sys_module)))
+(allow modprobe kernel (key (search)))
+(allow modprobe system_dlkm_file (dir (search)))
+(allow modprobe system_dlkm_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow modprobe system_dlkm_file (system (module_load)))
+(allow netdomain self (tcp_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+(allow netdomain self (udp_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netdomain self (rawip_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netdomain self (icmp_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netdomain port_type (tcp_socket (name_connect)))
+(allow netdomain self (netlink_route_socket (read write create getattr setattr lock append connect getopt setopt shutdown nlmsg_read)))
+(allow netdomain dnsproxyd_socket (sock_file (write)))
+(allow netdomain netd (unix_stream_socket (connectto)))
+(allow netdomain fwmarkd_socket (sock_file (write)))
+(allow netdomain netd (unix_stream_socket (connectto)))
+(allow netd mdnsd_socket (sock_file (write)))
+(allow netd mdnsd (unix_stream_socket (connectto)))
+(allowx netd self (ioctl udp_socket (0x6900 0x6902)))
+(allowx netd self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx netd self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow netd cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow netd cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd system_server (fd (use)))
+(allow netd self (capability (kill net_admin net_raw)))
+(allow netd self (cap_userns (kill net_admin net_raw)))
+(dontaudit netd self (capability (fsetid)))
+(dontaudit netd self (cap_userns (fsetid)))
+(allow netd tun_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx netd tun_device (ioctl chr_file (0x54ca 0x54d2)))
+(allow netd self (tun_socket (create)))
+(allow netd self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netd self (netlink_route_socket (nlmsg_write)))
+(allow netd self (netlink_nflog_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netd self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netd self (netlink_tcpdiag_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read nlmsg_write)))
+(allow netd self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netd self (netlink_netfilter_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netd shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow netd system_file (file (getattr map execute execute_no_trans)))
+(allow netd devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow netd system_file (file (lock)))
+(dontaudit netd system_file (dir (write)))
+(allow netd proc_qtaguid_ctrl (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow netd qtaguid_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow netd proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd proc_net_type (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow netd sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow netd sysfs_net (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow netd sysfs_net (file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd sysfs_net (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd sysfs_net (file (write lock append map open)))
+(allow netd sysfs_usb (file (write)))
+(allow netd cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow netd cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow netd self (capability (chown dac_override dac_read_search)))
+(allow netd self (cap_userns (chown dac_override dac_read_search)))
+(allow netd net_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow netd net_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow netd self (capability (fowner)))
+(allow netd self (cap_userns (fowner)))
+(allow netd system_file (file (lock)))
+(allow netd dnsmasq (process (sigkill signal)))
+(allow netd servicemanager (binder (call transfer)))
+(allow servicemanager netd (binder (call transfer)))
+(allow servicemanager netd (dir (search)))
+(allow servicemanager netd (file (read open)))
+(allow servicemanager netd (process (getattr)))
+(allow netd netd_service (service_manager (add find)))
+;;* lmx 87 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_568 netd_service (service_manager (add)))
+;;* lme
+
+(allow netd dnsresolver_service (service_manager (add find)))
+;;* lmx 88 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_568 dnsresolver_service (service_manager (add)))
+;;* lme
+
+(allow netd mdns_service (service_manager (add find)))
+;;* lmx 89 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_568 mdns_service (service_manager (add)))
+;;* lme
+
+(allow netd dumpstate (fifo_file (write getattr)))
+(allow netd system_server (binder (call)))
+(allow netd permission_service (service_manager (find)))
+(allow netd netd_listener_service (service_manager (find)))
+(allow netd netdomain (tcp_socket (read write getattr setattr getopt setopt)))
+(allow netd netdomain (udp_socket (read write getattr setattr getopt setopt)))
+(allow netd netdomain (rawip_socket (read write getattr setattr getopt setopt)))
+(allow netd netdomain (tun_socket (read write getattr setattr getopt setopt)))
+(allow netd netdomain (icmp_socket (read write getattr setattr getopt setopt)))
+(allow netd netdomain (fd (use)))
+(allow netd self (netlink_xfrm_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read nlmsg_write)))
+(allow netd system_net_netd_hwservice (hwservice_manager (add find)))
+(allow netd hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 113 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_568 system_net_netd_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow netd hwservicemanager (binder (call transfer)))
+(allow hwservicemanager netd (binder (call transfer)))
+(allow hwservicemanager netd (dir (search)))
+(allow hwservicemanager netd (file (read map open)))
+(allow hwservicemanager netd (process (getattr)))
+(allow system_net_netd_service servicemanager (binder (call transfer)))
+(allow servicemanager system_net_netd_service (binder (transfer)))
+(allow system_net_netd_service servicemanager (fd (use)))
+(allow netd system_net_netd_service (service_manager (add find)))
+;;* lmx 118 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_568 system_net_netd_service (service_manager (add)))
+;;* lme
+
+;;* lmx 126 system/sepolicy/public/netd.te
+
+(neverallow netd dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 129 system/sepolicy/public/netd.te
+
+(neverallow netd domain (process (ptrace)))
+;;* lme
+
+;;* lmx 132 system/sepolicy/public/netd.te
+
+(neverallow netd system_file_type (file (write)))
+(neverallow netd system_file_type (dir (write)))
+(neverallow netd system_file_type (lnk_file (write)))
+(neverallow netd system_file_type (chr_file (write)))
+(neverallow netd system_file_type (blk_file (write)))
+(neverallow netd system_file_type (sock_file (write)))
+(neverallow netd system_file_type (fifo_file (write)))
+;;* lme
+
+;;* lmx 135 system/sepolicy/public/netd.te
+
+(neverallow netd app_data_file_type (file (write)))
+(neverallow netd app_data_file_type (dir (write)))
+(neverallow netd app_data_file_type (lnk_file (write)))
+(neverallow netd app_data_file_type (chr_file (write)))
+(neverallow netd app_data_file_type (blk_file (write)))
+(neverallow netd app_data_file_type (sock_file (write)))
+(neverallow netd app_data_file_type (fifo_file (write)))
+(neverallow netd system_data_file (file (write)))
+(neverallow netd system_data_file (dir (write)))
+(neverallow netd system_data_file (lnk_file (write)))
+(neverallow netd system_data_file (chr_file (write)))
+(neverallow netd system_data_file (blk_file (write)))
+(neverallow netd system_data_file (sock_file (write)))
+(neverallow netd system_data_file (fifo_file (write)))
+;;* lme
+
+;;* lmx 145 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_569 netd_service (service_manager (find)))
+;;* lme
+
+;;* lmx 155 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_569 dnsresolver_service (service_manager (find)))
+;;* lme
+
+;;* lmx 165 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_569 mdns_service (service_manager (find)))
+;;* lme
+
+;;* lmx 168 system/sepolicy/public/netd.te
+
+(neverallow base_typeattr_231 netd (binder (call)))
+;;* lme
+
+;;* lmx 169 system/sepolicy/public/netd.te
+
+(neverallow netd base_typeattr_231 (binder (call)))
+;;* lme
+
+;;* lmx 174 system/sepolicy/public/netd.te
+
+(neverallow netd proc_net (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+(dontaudit netd proc_net (dir (write)))
+;;* lmx 177 system/sepolicy/public/netd.te
+
+(neverallow netd sysfs_net (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+(dontaudit netd sysfs_net (dir (write)))
+;;* lmx 181 system/sepolicy/public/netd.te
+
+(neverallow netd self (capability (sys_admin)))
+;;* lme
+
+(dontaudit netd self (capability (sys_admin)))
+(dontaudit netd self (capability (sys_module)))
+(dontaudit netd appdomain (unix_stream_socket (read write)))
+;;* lmx 5 system/sepolicy/public/netutils_wrapper.te
+
+(neverallow domain netutils_wrapper_exec (file (execute_no_trans)))
+;;* lme
+
+(allow performanced servicemanager (binder (call transfer)))
+(allow servicemanager performanced (binder (call transfer)))
+(allow servicemanager performanced (dir (search)))
+(allow servicemanager performanced (file (read open)))
+(allow servicemanager performanced (process (getattr)))
+(allow performanced system_server (binder (call transfer)))
+(allow system_server performanced (binder (transfer)))
+(allow performanced system_server (fd (use)))
+(allow performanced permission_service (service_manager (find)))
+(allow init pdx_performance_client_endpoint_socket_type (unix_stream_socket (create bind)))
+(allow performanced pdx_performance_client_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown)))
+(allow performanced self (process (setsockcreate)))
+(allow performanced pdx_performance_client_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+;;* lmx 10 system/sepolicy/public/performanced.te
+
+(neverallow base_typeattr_570 pdx_performance_client_endpoint_socket_type (unix_stream_socket (listen accept)))
+;;* lme
+
+(allow performanced self (capability (setgid setuid sys_nice)))
+(allow performanced self (cap_userns (setgid setuid sys_nice)))
+(allow performanced appdomain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow performanced bufferhubd (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow performanced kernel (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow performanced surfaceflinger (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow performanced appdomain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced appdomain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced bufferhubd (file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced bufferhubd (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced kernel (file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced kernel (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced surfaceflinger (file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced surfaceflinger (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit performanced domain (dir (read)))
+(allow performanced appdomain (process (setsched)))
+(allow performanced bufferhubd (process (setsched)))
+(allow performanced kernel (process (setsched)))
+(allow performanced surfaceflinger (process (setsched)))
+(allow performanced cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow performanced cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow performanced cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow performanced cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall update_engine_common (fd (use)))
+(allow postinstall update_engine_common (fifo_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow postinstall postinstall_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow postinstall postinstall_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall postinstall_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow postinstall system_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow postinstall toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow postinstall servicemanager (binder (call transfer)))
+(allow servicemanager postinstall (binder (call transfer)))
+(allow servicemanager postinstall (dir (search)))
+(allow servicemanager postinstall (file (read open)))
+(allow servicemanager postinstall (process (getattr)))
+(allow postinstall system_server (binder (call transfer)))
+(allow system_server postinstall (binder (transfer)))
+(allow postinstall system_server (fd (use)))
+(allow postinstall otadexopt_service (service_manager (find)))
+(allow postinstall sysfs_fs_f2fs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow postinstall sysfs_fs_f2fs (dir (ioctl read getattr lock open watch watch_reads search)))
+;;* lmx 45 system/sepolicy/public/postinstall.te
+
+(neverallow base_typeattr_571 postinstall (process (transition dyntransition)))
+;;* lme
+
+(allow profman user_profile_data_file (file (read write getattr lock map)))
+(allow profman asec_apk_file (file (read map)))
+(allow profman apk_data_file (file (read getattr map)))
+(allow profman apk_data_file (dir (read getattr search)))
+(allow profman oemfs (file (read map)))
+(allow profman tmpfs (file (read map)))
+(allow profman profman_dump_data_file (file (write map)))
+(allow profman app_data_file (file (read write getattr lock map)))
+(allow profman privapp_data_file (file (read write getattr lock map)))
+(allow profman app_data_file (dir (read getattr search)))
+(allow profman privapp_data_file (dir (read getattr search)))
+(allow profman device_config_runtime_native_prop (file (read getattr map open)))
+(allow profman device_config_runtime_native_boot_prop (file (read getattr map open)))
+;;* lmx 31 system/sepolicy/public/profman.te
+
+(neverallow profman app_data_file_type (file (open)))
+(neverallow profman app_data_file_type (lnk_file (open)))
+(neverallow profman app_data_file_type (sock_file (open)))
+(neverallow profman app_data_file_type (fifo_file (open)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 apexd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 bootloader_boot_reason_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_activity_manager_native_boot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_boot_count_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_input_native_boot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_netd_native_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 12 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_reset_performed_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 firstboot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 boottime_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 charger_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 cold_boot_done_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_adbd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_apexd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_bootanim_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_bugreport_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_console_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_dumpstate_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_fuse_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_gsid_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_interface_restart_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_interface_stop_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_mdnsd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_restart_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_rildaemon_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ctl_sigstop_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 dynamic_system_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 heapprofd_enabled_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 llkd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 lpdumpd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 mmc_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 mock_ota_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 net_dns_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 overlay_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 persistent_properties_ready_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 safemode_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 system_lmk_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 system_trace_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 test_boot_reason_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 time_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 traced_enabled_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 traced_lazy_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 53 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 aac_drc_prop (property_service (set)))
+;;* lme
+
+;;* lmx 54 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 adaptive_haptics_prop (property_service (set)))
+;;* lme
+
+;;* lmx 55 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 apex_ready_prop (property_service (set)))
+;;* lme
+
+;;* lmx 56 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 arm64_memtag_prop (property_service (set)))
+;;* lme
+
+;;* lmx 57 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 binder_cache_bluetooth_server_prop (property_service (set)))
+;;* lme
+
+;;* lmx 58 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 binder_cache_system_server_prop (property_service (set)))
+;;* lme
+
+;;* lmx 59 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 binder_cache_telephony_server_prop (property_service (set)))
+;;* lme
+
+;;* lmx 60 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 boot_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 61 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 bootanim_system_prop (property_service (set)))
+;;* lme
+
+;;* lmx 62 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 bootloader_prop (property_service (set)))
+;;* lme
+
+;;* lmx 63 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 boottime_public_prop (property_service (set)))
+;;* lme
+
+;;* lmx 64 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 bq_config_prop (property_service (set)))
+;;* lme
+
+;;* lmx 65 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 build_bootimage_prop (property_service (set)))
+;;* lme
+
+;;* lmx 66 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 build_prop (property_service (set)))
+;;* lme
+
+;;* lmx 67 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 composd_vm_art_prop (property_service (set)))
+;;* lme
+
+;;* lmx 68 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_aconfig_flags_prop (property_service (set)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_camera_native_prop (property_service (set)))
+;;* lme
+
+;;* lmx 70 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_edgetpu_native_prop (property_service (set)))
+;;* lme
+
+;;* lmx 71 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_media_native_prop (property_service (set)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_nnapi_native_prop (property_service (set)))
+;;* lme
+
+;;* lmx 73 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_runtime_native_boot_prop (property_service (set)))
+;;* lme
+
+;;* lmx 74 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_runtime_native_prop (property_service (set)))
+;;* lme
+
+;;* lmx 75 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_surface_flinger_native_boot_prop (property_service (set)))
+;;* lme
+
+;;* lmx 76 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_vendor_system_native_prop (property_service (set)))
+;;* lme
+
+;;* lmx 77 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_config_vendor_system_native_boot_prop (property_service (set)))
+;;* lme
+
+;;* lmx 78 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 drm_forcel3_prop (property_service (set)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 fingerprint_prop (property_service (set)))
+;;* lme
+
+;;* lmx 80 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 gwp_asan_prop (property_service (set)))
+;;* lme
+
+;;* lmx 81 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 hal_instrumentation_prop (property_service (set)))
+;;* lme
+
+;;* lmx 82 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 userdebug_or_eng_prop (property_service (set)))
+;;* lme
+
+;;* lmx 83 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 init_service_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 84 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 libc_debug_prop (property_service (set)))
+;;* lme
+
+;;* lmx 85 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 module_sdkextensions_prop (property_service (set)))
+;;* lme
+
+;;* lmx 86 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 nnapi_ext_deny_product_prop (property_service (set)))
+;;* lme
+
+;;* lmx 87 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 persist_wm_debug_prop (property_service (set)))
+;;* lme
+
+;;* lmx 88 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 power_debug_prop (property_service (set)))
+;;* lme
+
+;;* lmx 89 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 property_service_version_prop (property_service (set)))
+;;* lme
+
+;;* lmx 90 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 provisioned_prop (property_service (set)))
+;;* lme
+
+;;* lmx 91 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 restorecon_prop (property_service (set)))
+;;* lme
+
+;;* lmx 92 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 retaildemo_prop (property_service (set)))
+;;* lme
+
+;;* lmx 93 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 servicemanager_prop (property_service (set)))
+;;* lme
+
+;;* lmx 94 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 smart_idle_maint_enabled_prop (property_service (set)))
+;;* lme
+
+;;* lmx 95 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 socket_hook_prop (property_service (set)))
+;;* lme
+
+;;* lmx 96 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 sqlite_log_prop (property_service (set)))
+;;* lme
+
+;;* lmx 97 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 surfaceflinger_display_prop (property_service (set)))
+;;* lme
+
+;;* lmx 98 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 system_boot_reason_prop (property_service (set)))
+;;* lme
+
+;;* lmx 99 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 system_jvmti_agent_prop (property_service (set)))
+;;* lme
+
+;;* lmx 100 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 traced_oome_heap_session_count_prop (property_service (set)))
+;;* lme
+
+;;* lmx 101 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 ab_update_gki_prop (property_service (set)))
+;;* lme
+
+;;* lmx 102 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 usb_prop (property_service (set)))
+;;* lme
+
+;;* lmx 103 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 userspace_reboot_exported_prop (property_service (set)))
+;;* lme
+
+;;* lmx 104 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 vold_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 105 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 vts_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 config_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 cppreopt_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 dalvik_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 debuggerd_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 device_logging_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 dhcp_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 dumpstate_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 exported3_system_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 exported_dumpstate_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 exported_secure_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 heapprofd_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 net_radio_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 pan_result_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 persist_debug_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 shell_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 test_harness_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 theme_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 use_memfd_prop (property_service (set)))
+;;* lme
+
+;;* lmx 107 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 vold_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init apexd_config_prop (property_service (set)))
+(allow vendor_init apexd_config_prop (file (read getattr map open)))
+;;* lmx 131 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 apexd_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init apexd_select_prop (property_service (set)))
+(allow vendor_init apexd_select_prop (file (read getattr map open)))
+;;* lmx 132 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 apexd_select_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init aaudio_config_prop (property_service (set)))
+(allow vendor_init aaudio_config_prop (file (read getattr map open)))
+;;* lmx 133 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 aaudio_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init apk_verity_prop (property_service (set)))
+(allow vendor_init apk_verity_prop (file (read getattr map open)))
+;;* lmx 134 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 apk_verity_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init audio_config_prop (property_service (set)))
+(allow vendor_init audio_config_prop (file (read getattr map open)))
+;;* lmx 135 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 audio_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init bootanim_config_prop (property_service (set)))
+(allow vendor_init bootanim_config_prop (file (read getattr map open)))
+;;* lmx 136 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 bootanim_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init bluetooth_config_prop (property_service (set)))
+(allow vendor_init bluetooth_config_prop (file (read getattr map open)))
+;;* lmx 137 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 bluetooth_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init build_attestation_prop (property_service (set)))
+(allow vendor_init build_attestation_prop (file (read getattr map open)))
+;;* lmx 138 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 build_attestation_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init build_config_prop (property_service (set)))
+(allow vendor_init build_config_prop (file (read getattr map open)))
+;;* lmx 139 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 build_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init build_odm_prop (property_service (set)))
+(allow vendor_init build_odm_prop (file (read getattr map open)))
+;;* lmx 140 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 build_odm_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init build_vendor_prop (property_service (set)))
+(allow vendor_init build_vendor_prop (file (read getattr map open)))
+;;* lmx 141 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 build_vendor_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init camera_calibration_prop (property_service (set)))
+(allow vendor_init camera_calibration_prop (file (read getattr map open)))
+;;* lmx 142 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 camera_calibration_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init camera_config_prop (property_service (set)))
+(allow vendor_init camera_config_prop (file (read getattr map open)))
+;;* lmx 143 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 camera_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init camera2_extensions_prop (property_service (set)))
+(allow vendor_init camera2_extensions_prop (file (read getattr map open)))
+;;* lmx 144 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 camera2_extensions_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init camerax_extensions_prop (property_service (set)))
+(allow vendor_init camerax_extensions_prop (file (read getattr map open)))
+;;* lmx 145 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 camerax_extensions_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init charger_config_prop (property_service (set)))
+(allow vendor_init charger_config_prop (file (read getattr map open)))
+;;* lmx 146 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 charger_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init codec2_config_prop (property_service (set)))
+(allow vendor_init codec2_config_prop (file (read getattr map open)))
+;;* lmx 147 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 codec2_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init composd_vm_vendor_prop (property_service (set)))
+(allow vendor_init composd_vm_vendor_prop (file (read getattr map open)))
+;;* lmx 148 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 composd_vm_vendor_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init cpu_variant_prop (property_service (set)))
+(allow vendor_init cpu_variant_prop (file (read getattr map open)))
+;;* lmx 149 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 cpu_variant_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init debugfs_restriction_prop (property_service (set)))
+(allow vendor_init debugfs_restriction_prop (file (read getattr map open)))
+;;* lmx 150 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 debugfs_restriction_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init drm_service_config_prop (property_service (set)))
+(allow vendor_init drm_service_config_prop (file (read getattr map open)))
+;;* lmx 151 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 drm_service_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_camera_prop (property_service (set)))
+(allow vendor_init exported_camera_prop (file (read getattr map open)))
+;;* lmx 152 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 exported_camera_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_config_prop (property_service (set)))
+(allow vendor_init exported_config_prop (file (read getattr map open)))
+;;* lmx 153 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 exported_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_default_prop (property_service (set)))
+(allow vendor_init exported_default_prop (file (read getattr map open)))
+;;* lmx 154 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 exported_default_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init ffs_config_prop (property_service (set)))
+(allow vendor_init ffs_config_prop (file (read getattr map open)))
+;;* lmx 155 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 ffs_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init framework_watchdog_config_prop (property_service (set)))
+(allow vendor_init framework_watchdog_config_prop (file (read getattr map open)))
+;;* lmx 156 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 framework_watchdog_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init graphics_config_prop (property_service (set)))
+(allow vendor_init graphics_config_prop (file (read getattr map open)))
+;;* lmx 157 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 graphics_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init hdmi_config_prop (property_service (set)))
+(allow vendor_init hdmi_config_prop (file (read getattr map open)))
+;;* lmx 158 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 hdmi_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init hw_timeout_multiplier_prop (property_service (set)))
+(allow vendor_init hw_timeout_multiplier_prop (file (read getattr map open)))
+;;* lmx 159 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 hw_timeout_multiplier_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init hypervisor_prop (property_service (set)))
+(allow vendor_init hypervisor_prop (file (read getattr map open)))
+;;* lmx 160 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 hypervisor_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init hypervisor_restricted_prop (property_service (set)))
+(allow vendor_init hypervisor_restricted_prop (file (read getattr map open)))
+;;* lmx 161 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 hypervisor_restricted_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init incremental_prop (property_service (set)))
+(allow vendor_init incremental_prop (file (read getattr map open)))
+;;* lmx 162 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 incremental_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init input_device_config_prop (property_service (set)))
+(allow vendor_init input_device_config_prop (file (read getattr map open)))
+;;* lmx 163 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 input_device_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init keyguard_config_prop (property_service (set)))
+(allow vendor_init keyguard_config_prop (file (read getattr map open)))
+;;* lmx 164 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 keyguard_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init keystore_config_prop (property_service (set)))
+(allow vendor_init keystore_config_prop (file (read getattr map open)))
+;;* lmx 165 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 keystore_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init lmkd_config_prop (property_service (set)))
+(allow vendor_init lmkd_config_prop (file (read getattr map open)))
+;;* lmx 166 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 lmkd_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init media_config_prop (property_service (set)))
+(allow vendor_init media_config_prop (file (read getattr map open)))
+;;* lmx 167 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 media_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init media_variant_prop (property_service (set)))
+(allow vendor_init media_variant_prop (file (read getattr map open)))
+;;* lmx 168 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 media_variant_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init mediadrm_config_prop (property_service (set)))
+(allow vendor_init mediadrm_config_prop (file (read getattr map open)))
+;;* lmx 169 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 mediadrm_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init mm_events_config_prop (property_service (set)))
+(allow vendor_init mm_events_config_prop (file (read getattr map open)))
+;;* lmx 170 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 mm_events_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init oem_unlock_prop (property_service (set)))
+(allow vendor_init oem_unlock_prop (file (read getattr map open)))
+;;* lmx 171 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 oem_unlock_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init ota_build_prop (property_service (set)))
+(allow vendor_init ota_build_prop (file (read getattr map open)))
+;;* lmx 172 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 ota_build_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init packagemanager_config_prop (property_service (set)))
+(allow vendor_init packagemanager_config_prop (file (read getattr map open)))
+;;* lmx 173 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 packagemanager_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init quick_start_prop (property_service (set)))
+(allow vendor_init quick_start_prop (file (read getattr map open)))
+;;* lmx 174 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 quick_start_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init recovery_config_prop (property_service (set)))
+(allow vendor_init recovery_config_prop (file (read getattr map open)))
+;;* lmx 175 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 recovery_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init recovery_usb_config_prop (property_service (set)))
+(allow vendor_init recovery_usb_config_prop (file (read getattr map open)))
+;;* lmx 176 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 recovery_usb_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init sendbug_config_prop (property_service (set)))
+(allow vendor_init sendbug_config_prop (file (read getattr map open)))
+;;* lmx 177 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 sendbug_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init soc_prop (property_service (set)))
+(allow vendor_init soc_prop (file (read getattr map open)))
+;;* lmx 178 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 soc_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init storage_config_prop (property_service (set)))
+(allow vendor_init storage_config_prop (file (read getattr map open)))
+;;* lmx 179 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 storage_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init storagemanager_config_prop (property_service (set)))
+(allow vendor_init storagemanager_config_prop (file (read getattr map open)))
+;;* lmx 180 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 storagemanager_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init surfaceflinger_prop (property_service (set)))
+(allow vendor_init surfaceflinger_prop (file (read getattr map open)))
+;;* lmx 181 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 surfaceflinger_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init suspend_prop (property_service (set)))
+(allow vendor_init suspend_prop (file (read getattr map open)))
+;;* lmx 182 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 suspend_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init systemsound_config_prop (property_service (set)))
+(allow vendor_init systemsound_config_prop (file (read getattr map open)))
+;;* lmx 183 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 systemsound_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init telephony_config_prop (property_service (set)))
+(allow vendor_init telephony_config_prop (file (read getattr map open)))
+;;* lmx 184 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 telephony_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init threadnetwork_config_prop (property_service (set)))
+(allow vendor_init threadnetwork_config_prop (file (read getattr map open)))
+;;* lmx 185 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 threadnetwork_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init tombstone_config_prop (property_service (set)))
+(allow vendor_init tombstone_config_prop (file (read getattr map open)))
+;;* lmx 186 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 tombstone_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init usb_config_prop (property_service (set)))
+(allow vendor_init usb_config_prop (file (read getattr map open)))
+;;* lmx 187 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 usb_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init userspace_reboot_config_prop (property_service (set)))
+(allow vendor_init userspace_reboot_config_prop (file (read getattr map open)))
+;;* lmx 188 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 userspace_reboot_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vehicle_hal_prop (property_service (set)))
+(allow vendor_init vehicle_hal_prop (file (read getattr map open)))
+;;* lmx 189 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 vehicle_hal_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vendor_security_patch_level_prop (property_service (set)))
+(allow vendor_init vendor_security_patch_level_prop (file (read getattr map open)))
+;;* lmx 190 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 vendor_security_patch_level_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vendor_socket_hook_prop (property_service (set)))
+(allow vendor_init vendor_socket_hook_prop (file (read getattr map open)))
+;;* lmx 191 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 vendor_socket_hook_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init virtual_ab_prop (property_service (set)))
+(allow vendor_init virtual_ab_prop (file (read getattr map open)))
+;;* lmx 192 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 virtual_ab_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vndk_prop (property_service (set)))
+(allow vendor_init vndk_prop (file (read getattr map open)))
+;;* lmx 193 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 vndk_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vts_config_prop (property_service (set)))
+(allow vendor_init vts_config_prop (file (read getattr map open)))
+;;* lmx 194 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 vts_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vold_config_prop (property_service (set)))
+(allow vendor_init vold_config_prop (file (read getattr map open)))
+;;* lmx 195 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 vold_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init wifi_config_prop (property_service (set)))
+(allow vendor_init wifi_config_prop (file (read getattr map open)))
+;;* lmx 196 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 wifi_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init zram_config_prop (property_service (set)))
+(allow vendor_init zram_config_prop (file (read getattr map open)))
+;;* lmx 197 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 zram_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init zygote_config_prop (property_service (set)))
+(allow vendor_init zygote_config_prop (file (read getattr map open)))
+;;* lmx 198 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 zygote_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init dck_prop (property_service (set)))
+(allow vendor_init dck_prop (file (read getattr map open)))
+;;* lmx 199 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 dck_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init tuner_config_prop (property_service (set)))
+(allow vendor_init tuner_config_prop (file (read getattr map open)))
+;;* lmx 200 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 tuner_config_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init usb_uvc_enabled_prop (property_service (set)))
+(allow vendor_init usb_uvc_enabled_prop (file (read getattr map open)))
+;;* lmx 201 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 usb_uvc_enabled_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init setupwizard_mode_prop (property_service (set)))
+(allow vendor_init setupwizard_mode_prop (file (read getattr map open)))
+;;* lmx 202 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 setupwizard_mode_prop (property_service (set)))
+;;* lme
+
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init pm_archiving_enabled_prop (property_service (set)))
+(allow vendor_init pm_archiving_enabled_prop (file (read getattr map open)))
+;;* lmx 203 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_259 pm_archiving_enabled_prop (property_service (set)))
+;;* lme
+
+;;* lmx 265 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_250 default_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 268 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_572 rebootescrow_hal_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 271 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_572 virtual_face_hal_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 274 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_572 virtual_fingerprint_hal_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 341 system/sepolicy/public/property.te
+
+(neverallow base_typeattr_572 vendor_default_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow property_type tmpfs (filesystem (associate)))
+(allow radio radio_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow radio radio_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow radio radio_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow radio radio_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow radio radio_data_file (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow radio radio_core_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow radio radio_core_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow radio net_data_file (dir (search)))
+(allow radio net_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow radio radio_service (service_manager (add find)))
+;;* lmx 20 system/sepolicy/public/radio.te
+
+(neverallow base_typeattr_573 radio_service (service_manager (add)))
+;;* lme
+
+(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 app_api_service (service_manager (find)))
+(allow radio system_api_service (service_manager (find)))
+(allow radio timedetector_service (service_manager (find)))
+(allow radio timezonedetector_service (service_manager (find)))
+(allow radio hwservicemanager (binder (call transfer)))
+(allow hwservicemanager radio (binder (call transfer)))
+(allow hwservicemanager radio (dir (search)))
+(allow hwservicemanager radio (file (read map open)))
+(allow hwservicemanager radio (process (getattr)))
+(allow radio proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 165 system/sepolicy/public/recovery.te
+
+(neverallow recovery base_typeattr_574 (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 171 system/sepolicy/public/recovery.te
+
+(neverallow recovery base_typeattr_574 (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+(allow recovery_persist pstorefs (dir (search)))
+(allow recovery_persist pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow recovery_persist recovery_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow recovery_persist recovery_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow recovery_persist cache_file (dir (search)))
+(allow recovery_persist cache_file (lnk_file (read)))
+(allow recovery_persist cache_recovery_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow recovery_persist cache_recovery_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+;;* lmx 23 system/sepolicy/public/recovery_persist.te
+
+(neverallow recovery_persist dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/public/recovery_persist.te
+
+(neverallow recovery_persist domain (process (ptrace)))
+;;* lme
+
+;;* lmx 29 system/sepolicy/public/recovery_persist.te
+
+(neverallow recovery_persist system_file_type (file (write)))
+(neverallow recovery_persist system_file_type (dir (write)))
+(neverallow recovery_persist system_file_type (lnk_file (write)))
+(neverallow recovery_persist system_file_type (chr_file (write)))
+(neverallow recovery_persist system_file_type (blk_file (write)))
+(neverallow recovery_persist system_file_type (sock_file (write)))
+(neverallow recovery_persist system_file_type (fifo_file (write)))
+;;* lme
+
+;;* lmx 32 system/sepolicy/public/recovery_persist.te
+
+(neverallow recovery_persist app_data_file_type (file (write)))
+(neverallow recovery_persist app_data_file_type (dir (write)))
+(neverallow recovery_persist app_data_file_type (lnk_file (write)))
+(neverallow recovery_persist app_data_file_type (chr_file (write)))
+(neverallow recovery_persist app_data_file_type (blk_file (write)))
+(neverallow recovery_persist app_data_file_type (sock_file (write)))
+(neverallow recovery_persist app_data_file_type (fifo_file (write)))
+(neverallow recovery_persist system_data_file (file (write)))
+(neverallow recovery_persist system_data_file (dir (write)))
+(neverallow recovery_persist system_data_file (lnk_file (write)))
+(neverallow recovery_persist system_data_file (chr_file (write)))
+(neverallow recovery_persist system_data_file (blk_file (write)))
+(neverallow recovery_persist system_data_file (sock_file (write)))
+(neverallow recovery_persist system_data_file (fifo_file (write)))
+;;* lme
+
+(allow recovery_refresh pstorefs (dir (search)))
+(allow recovery_refresh pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 16 system/sepolicy/public/recovery_refresh.te
+
+(neverallow recovery_refresh dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 19 system/sepolicy/public/recovery_refresh.te
+
+(neverallow recovery_refresh domain (process (ptrace)))
+;;* lme
+
+;;* lmx 22 system/sepolicy/public/recovery_refresh.te
+
+(neverallow recovery_refresh system_file_type (file (write)))
+(neverallow recovery_refresh system_file_type (dir (write)))
+(neverallow recovery_refresh system_file_type (lnk_file (write)))
+(neverallow recovery_refresh system_file_type (chr_file (write)))
+(neverallow recovery_refresh system_file_type (blk_file (write)))
+(neverallow recovery_refresh system_file_type (sock_file (write)))
+(neverallow recovery_refresh system_file_type (fifo_file (write)))
+;;* lme
+
+;;* lmx 25 system/sepolicy/public/recovery_refresh.te
+
+(neverallow recovery_refresh app_data_file_type (file (write)))
+(neverallow recovery_refresh app_data_file_type (dir (write)))
+(neverallow recovery_refresh app_data_file_type (lnk_file (write)))
+(neverallow recovery_refresh app_data_file_type (chr_file (write)))
+(neverallow recovery_refresh app_data_file_type (blk_file (write)))
+(neverallow recovery_refresh app_data_file_type (sock_file (write)))
+(neverallow recovery_refresh app_data_file_type (fifo_file (write)))
+(neverallow recovery_refresh system_data_file (file (write)))
+(neverallow recovery_refresh system_data_file (dir (write)))
+(neverallow recovery_refresh system_data_file (lnk_file (write)))
+(neverallow recovery_refresh system_data_file (chr_file (write)))
+(neverallow recovery_refresh system_data_file (blk_file (write)))
+(neverallow recovery_refresh system_data_file (sock_file (write)))
+(neverallow recovery_refresh system_data_file (fifo_file (write)))
+;;* lme
+
+(allow remote_provisioning_service_server remote_provisioning_service (service_manager (add find)))
+;;* lmx 3 system/sepolicy/public/remote_provisioning_service_server.te
+
+(neverallow base_typeattr_575 remote_provisioning_service (service_manager (add)))
+;;* lme
+
+(allow remote_provisioning_service_server servicemanager (binder (call transfer)))
+(allow servicemanager remote_provisioning_service_server (binder (call transfer)))
+(allow servicemanager remote_provisioning_service_server (dir (search)))
+(allow servicemanager remote_provisioning_service_server (file (read open)))
+(allow servicemanager remote_provisioning_service_server (process (getattr)))
+(allow rootdisk_sysdev sysfs (filesystem (associate)))
+(allow runas adbd (fd (use)))
+(allow runas adbd (process (sigchld)))
+(allow runas adbd (unix_stream_socket (read write)))
+(allow runas shell (fd (use)))
+(allow runas shell (fifo_file (read write)))
+(allow runas shell (unix_stream_socket (read write)))
+(allow runas devpts (chr_file (ioctl read write)))
+(allow runas shell_data_file (file (read write)))
+(allow runas system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow runas system_data_file (lnk_file (getattr)))
+(allow runas packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow runas system_data_file (lnk_file (read)))
+(dontaudit runas self (capability (dac_override dac_read_search)))
+(dontaudit runas self (cap_userns (dac_override dac_read_search)))
+(allow runas app_data_file (dir (getattr search)))
+(allow runas self (capability (setgid setuid)))
+(allow runas self (cap_userns (setgid setuid)))
+(allow runas selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow runas selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow runas selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow runas selinuxfs (file (write lock append map open)))
+(allow runas kernel (security (check_context)))
+(allow runas self (process (setcurrent)))
+(allow runas base_typeattr_576 (process (dyntransition)))
+(allow runas seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 42 system/sepolicy/public/runas.te
+
+(neverallow runas self (capability (chown dac_override dac_read_search fowner fsetid kill setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow runas self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/public/runas.te
+
+(neverallow runas self (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+(neverallow runas self (cap2_userns (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+;;* lme
+
+(allow scheduler_service_server fwk_scheduler_hwservice (hwservice_manager (add find)))
+(allow scheduler_service_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 1 system/sepolicy/public/scheduler_service_server.te
+
+(neverallow base_typeattr_577 fwk_scheduler_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow sdcardd cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow sdcardd cgroup_v2 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow sdcardd fuse_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow sdcardd rootfs (dir (mounton)))
+(allow sdcardd sdcardfs (filesystem (remount)))
+(allow sdcardd tmpfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow sdcardd mnt_media_rw_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow sdcardd storage_file (dir (search)))
+(allow sdcardd storage_stub_file (dir (mounton search)))
+(allow sdcardd sdcard_type (filesystem (mount unmount)))
+(allow sdcardd fuse (filesystem (mount unmount)))
+(allow sdcardd self (capability (dac_override dac_read_search setgid setuid sys_admin sys_resource)))
+(allow sdcardd self (cap_userns (dac_override dac_read_search setgid setuid sys_admin sys_resource)))
+(allow sdcardd sdcard_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow sdcardd fuse (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow sdcardd sdcard_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow sdcardd fuse (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow sdcardd media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow sdcardd media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow sdcardd system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow sdcardd packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow sdcardd install_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow sdcardd install_data_file (dir (search)))
+(allow sdcardd vold (fd (use)))
+(allow sdcardd vold (fifo_file (read write getattr)))
+(allow sdcardd mnt_expand_file (dir (search)))
+(allow sdcardd proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 46 system/sepolicy/public/sdcardd.te
+
+(neverallow init sdcardd_exec (file (execute)))
+;;* lme
+
+;;* lmx 47 system/sepolicy/public/sdcardd.te
+
+(neverallow init sdcardd (process (transition dyntransition)))
+;;* lme
+
+(allow sensor_service_server fwk_sensor_hwservice (hwservice_manager (add find)))
+(allow sensor_service_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 1 system/sepolicy/public/sensor_service_server.te
+
+(neverallow base_typeattr_578 fwk_sensor_hwservice (hwservice_manager (add)))
+;;* lme
+
+;;* lmx 366 system/sepolicy/public/service.te
+
+(neverallow domain base_typeattr_579 (service_manager (add find)))
+;;* lme
+
+(allow servicemanager self (binder (set_context_mgr)))
+(allow servicemanager base_typeattr_580 (binder (transfer)))
+(allow servicemanager service_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow servicemanager vendor_service_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow servicemanager service_manager_service (service_manager (add find)))
+;;* lmx 27 system/sepolicy/public/servicemanager.te
+
+(neverallow base_typeattr_581 service_manager_service (service_manager (add)))
+;;* lme
+
+(allow servicemanager dumpstate (fd (use)))
+(allow servicemanager dumpstate (fifo_file (write)))
+(allow servicemanager selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow servicemanager selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow servicemanager selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow servicemanager selinuxfs (file (write lock append map open)))
+(allow servicemanager kernel (security (compute_av)))
+(allow servicemanager self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow servicemanager kmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow sgdisk block_device (dir (search)))
+(allow sgdisk vold_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx sgdisk vold_device (ioctl blk_file (0x301)))
+(allowx sgdisk vold_device (ioctl blk_file (0x1260)))
+(allowx sgdisk vold_device (ioctl blk_file (0x125f)))
+(allowx sgdisk vold_device (ioctl blk_file (0x127b)))
+(allow sgdisk devpts (chr_file (ioctl read write getattr)))
+(allow sgdisk vold (fd (use)))
+(allow sgdisk vold (fifo_file (read write getattr)))
+(allow sgdisk self (capability (sys_admin)))
+(allow sgdisk self (cap_userns (sys_admin)))
+;;* lmx 35 system/sepolicy/public/sgdisk.te
+
+(neverallow base_typeattr_339 sgdisk (process (transition)))
+;;* lme
+
+;;* lmx 36 system/sepolicy/public/sgdisk.te
+
+(neverallow base_typeattr_224 sgdisk (process (dyntransition)))
+;;* lme
+
+;;* lmx 37 system/sepolicy/public/sgdisk.te
+
+(neverallow sgdisk base_typeattr_582 (file (entrypoint)))
+;;* lme
+
+(allow shell logcat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell logdr_socket (sock_file (write)))
+(allow shell logd (unix_stream_socket (connectto)))
+(allow shell logd_socket (sock_file (write)))
+(allow shell logd (unix_stream_socket (connectto)))
+(allow shell logd_prop (file (read getattr map open)))
+(allow shell pstorefs (dir (search)))
+(allow shell pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell anr_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell anr_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell shell_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow shell shell_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shell shell_data_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell shell_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shell shell_test_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow shell shell_test_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shell shell_test_data_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell shell_test_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shell shell_test_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shell trace_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow shell trace_data_file (dir (ioctl read write getattr lock open watch watch_reads remove_name search)))
+(allow shell profman_dump_data_file (dir (ioctl read write getattr lock open watch watch_reads remove_name search)))
+(allow shell profman_dump_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow shell dumpstate_socket (sock_file (write)))
+(allow shell dumpstate (unix_stream_socket (connectto)))
+(allow shell devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow shell tty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow shell console_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow shell input_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell input_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell system_file (file (getattr map execute execute_no_trans)))
+(allow shell toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell zygote_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell servicemanager (service_manager (list)))
+(allow shell base_typeattr_583 (service_manager (find)))
+(allow shell dumpstate (binder (call)))
+(allow shell hwservicemanager (binder (call transfer)))
+(allow hwservicemanager shell (binder (call transfer)))
+(allow hwservicemanager shell (dir (search)))
+(allow hwservicemanager shell (file (read map open)))
+(allow hwservicemanager shell (process (getattr)))
+(allow shell hwservicemanager (hwservice_manager (list)))
+(allow shell proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_asound (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_interrupts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_loadavg (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_modules (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_pid_max (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_slabinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_timer (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_uptime (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_zoneinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell sysfs_net (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell cgroup_desc_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell cgroup_desc_api_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell vendor_cgroup_desc_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell domain (dir (read getattr open search)))
+(allow shell domain (file (read getattr open)))
+(allow shell domain (lnk_file (read getattr open)))
+(allow shell labeledfs (filesystem (getattr)))
+(allow shell proc (filesystem (getattr)))
+(allow shell device (dir (getattr)))
+(allow shell domain (process (getattr)))
+(allow shell selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell bootchart_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow shell bootchart_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shell self (process (ptrace)))
+(allow shell sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell sysfs_batteryinfo (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell sysfs_batteryinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow shell dev_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell dev_type (chr_file (getattr)))
+(allow shell proc (lnk_file (getattr)))
+(allow shell dev_type (blk_file (getattr)))
+(allow shell file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell property_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell service_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell sepolicy_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell vendor_shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+;;* lmx 206 system/sepolicy/public/shell.te
+
+(neverallow shell hal_keymint_service (service_manager (find)))
+(neverallow shell hal_secureclock_service (service_manager (find)))
+(neverallow shell hal_sharedsecret_service (service_manager (find)))
+;;* lme
+
+;;* lmx 214 system/sepolicy/public/shell.te
+
+(neverallow shell file_type (file (link)))
+;;* lme
+
+;;* lmx 217 system/sepolicy/public/shell.te
+
+(neverallowx shell domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx shell domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx shell domain (ioctl rawip_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 217 system/sepolicy/public/shell.te
+
+(neverallowx shell domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx shell domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx shell domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 217 system/sepolicy/public/shell.te
+
+(neverallowx shell domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx shell domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx shell domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+;;* lmx 225 system/sepolicy/public/shell.te
+
+(neverallow shell hw_random_device (chr_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow shell port_device (chr_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow shell fuse_device (chr_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 228 system/sepolicy/public/shell.te
+
+(neverallow shell dev_type (blk_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 237 system/sepolicy/public/shell.te
+
+(neverallow shell input_device (chr_file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+(allow slideshow kmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow slideshow sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow slideshow self (capability2 (block_suspend)))
+(allow slideshow self (cap2_userns (block_suspend)))
+(allow slideshow system_suspend_server (binder (call transfer)))
+(allow system_suspend_server slideshow (binder (transfer)))
+(allow slideshow system_suspend_server (fd (use)))
+(allow slideshow system_suspend_hwservice (hwservice_manager (find)))
+(allow slideshow hwservicemanager (binder (call transfer)))
+(allow hwservicemanager slideshow (binder (call transfer)))
+(allow hwservicemanager slideshow (dir (search)))
+(allow hwservicemanager slideshow (file (read map open)))
+(allow hwservicemanager slideshow (process (getattr)))
+(allow slideshow hwservicemanager_prop (file (read getattr map open)))
+(allow slideshow hidl_manager_hwservice (hwservice_manager (find)))
+(allow slideshow hal_system_suspend_service (service_manager (find)))
+(allow slideshow servicemanager (binder (call transfer)))
+(allow servicemanager slideshow (binder (call transfer)))
+(allow servicemanager slideshow (dir (search)))
+(allow servicemanager slideshow (file (read open)))
+(allow servicemanager slideshow (process (getattr)))
+(allow slideshow device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow slideshow self (capability (sys_tty_config)))
+(allow slideshow self (cap_userns (sys_tty_config)))
+(allow slideshow graphics_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow slideshow graphics_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow slideshow input_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow slideshow input_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow slideshow tty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow stats_service_server fwk_stats_hwservice (hwservice_manager (add find)))
+(allow stats_service_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 1 system/sepolicy/public/stats_service_server.te
+
+(neverallow base_typeattr_584 fwk_stats_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow stats_service_server fwk_stats_service (service_manager (add find)))
+;;* lmx 2 system/sepolicy/public/stats_service_server.te
+
+(neverallow base_typeattr_584 fwk_stats_service (service_manager (add)))
+;;* lme
+
+(allow stats_service_server servicemanager (binder (call transfer)))
+(allow servicemanager stats_service_server (binder (call transfer)))
+(allow servicemanager stats_service_server (dir (search)))
+(allow servicemanager stats_service_server (file (read open)))
+(allow servicemanager stats_service_server (process (getattr)))
+(allow statsd servicemanager (binder (call transfer)))
+(allow servicemanager statsd (binder (call transfer)))
+(allow servicemanager statsd (dir (search)))
+(allow servicemanager statsd (file (read open)))
+(allow servicemanager statsd (process (getattr)))
+(allow statsd domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow statsd domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow statsd domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow statsd devpts (chr_file (ioctl read write getattr)))
+(allow statsd shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow statsd system_file (file (execute_no_trans)))
+(allow statsd toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow statsd stats_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow statsd stats_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow statsd stats_config_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow statsd stats_config_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow statsd appdomain (binder (call transfer)))
+(allow appdomain statsd (binder (transfer)))
+(allow statsd appdomain (fd (use)))
+(allow statsd incidentd (binder (call transfer)))
+(allow incidentd statsd (binder (transfer)))
+(allow statsd incidentd (fd (use)))
+(allow statsd system_server (binder (call transfer)))
+(allow system_server statsd (binder (transfer)))
+(allow statsd system_server (fd (use)))
+(allow statsd traced_probes (binder (call transfer)))
+(allow traced_probes statsd (binder (transfer)))
+(allow statsd traced_probes (fd (use)))
+(allow statsd gpu_service (service_manager (find)))
+(allow statsd gpuservice (binder (call transfer)))
+(allow gpuservice statsd (binder (transfer)))
+(allow statsd gpuservice (fd (use)))
+(allow statsd keystore_service (service_manager (find)))
+(allow statsd keystore (binder (call transfer)))
+(allow keystore statsd (binder (transfer)))
+(allow statsd keystore (fd (use)))
+(allow statsd mediametrics_service (service_manager (find)))
+(allow statsd mediametrics (binder (call transfer)))
+(allow mediametrics statsd (binder (transfer)))
+(allow statsd mediametrics (fd (use)))
+(allow statsd mediaserver_service (service_manager (find)))
+(allow statsd mediaserver (binder (call transfer)))
+(allow mediaserver statsd (binder (transfer)))
+(allow statsd mediaserver (fd (use)))
+(allow statsd logcat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow statsd logdr_socket (sock_file (write)))
+(allow statsd logd (unix_stream_socket (connectto)))
+(allow statsd logd_socket (sock_file (write)))
+(allow statsd logd (unix_stream_socket (connectto)))
+(allow statsd app_api_service (service_manager (find)))
+(allow statsd system_api_service (service_manager (find)))
+(allow statsd incident_service (service_manager (find)))
+(allow statsd hal_health_hwservice (hwservice_manager (find)))
+(allow statsd dumpstate (fd (use)))
+(allow statsd dumpstate (fifo_file (write getattr)))
+(allow statsd proc_uid_cputime_showstat (file (read getattr open)))
+(allow statsd adbd (fd (use)))
+(allow statsd adbd (unix_stream_socket (read write getattr)))
+(allow statsd shell (fifo_file (read write getattr)))
+(allow statsd statsdw_socket (sock_file (write)))
+(allow statsd statsd (unix_dgram_socket (sendto)))
+;;* lmx 94 system/sepolicy/public/statsd.te
+
+(neverallow base_typeattr_585 stats_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 95 system/sepolicy/public/statsd.te
+
+(neverallow base_typeattr_586 stats_config_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 99 system/sepolicy/public/statsd.te
+
+(neverallow base_typeattr_585 stats_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 100 system/sepolicy/public/statsd.te
+
+(neverallow base_typeattr_586 stats_config_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+(allow system_server power_debug_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server power_debug_prop (property_service (set)))
+(allow system_server power_debug_prop (file (read getattr map open)))
+;;* lmx 18 system/sepolicy/public/system_server.te
+
+(neverallow base_typeattr_587 power_debug_prop (property_service (set)))
+;;* lme
+
+(allow system_suspend_internal_server system_suspend_control_internal_service (service_manager (add find)))
+;;* lmx 2 system/sepolicy/public/system_suspend_internal_server.te
+
+(neverallow base_typeattr_588 system_suspend_control_internal_service (service_manager (add)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/public/system_suspend_internal_server.te
+
+(neverallow base_typeattr_589 system_suspend_control_internal_service (service_manager (find)))
+;;* lme
+
+(allow system_suspend_server hwservicemanager (binder (call transfer)))
+(allow hwservicemanager system_suspend_server (binder (call transfer)))
+(allow hwservicemanager system_suspend_server (dir (search)))
+(allow hwservicemanager system_suspend_server (file (read map open)))
+(allow hwservicemanager system_suspend_server (process (getattr)))
+(allow system_suspend_server hwservicemanager_prop (file (read getattr map open)))
+(allow system_suspend_server system_suspend_hwservice (hwservice_manager (add find)))
+(allow system_suspend_server hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 6 system/sepolicy/public/system_suspend_server.te
+
+(neverallow base_typeattr_590 system_suspend_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow tee fingerprint_vendor_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow tee fingerprint_vendor_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow tombstoned domain (fd (use)))
+(allow tombstoned domain (fifo_file (write)))
+(allow tombstoned domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow tombstoned domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow tombstoned tombstone_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow tombstoned tombstone_data_file (file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow tombstoned anr_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow tombstoned anr_data_file (file (create getattr append unlink link open)))
+(allow toolbox tmpfs (chr_file (ioctl read write)))
+(allow toolbox devpts (chr_file (ioctl read write getattr)))
+(allow toolbox block_device (dir (search)))
+(allow toolbox swap_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lmx 22 system/sepolicy/public/toolbox.te
+
+(neverallow base_typeattr_223 toolbox (process (transition)))
+;;* lme
+
+;;* lmx 23 system/sepolicy/public/toolbox.te
+
+(neverallow base_typeattr_224 toolbox (process (dyntransition)))
+;;* lme
+
+;;* lmx 24 system/sepolicy/public/toolbox.te
+
+(neverallow toolbox base_typeattr_591 (file (entrypoint)))
+;;* lme
+
+(allow toolbox system_data_root_file (dir (write remove_name)))
+(allow toolbox system_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search rmdir)))
+(allow toolbox system_data_file (file (getattr unlink)))
+(allow toolbox media_userdir_file (dir (ioctl read getattr setattr lock open watch watch_reads search)))
+(allowx toolbox media_userdir_file (ioctl dir ((range 0x6601 0x6602))))
+(allow traceur_app servicemanager (service_manager (list)))
+(allow traceur_app hwservicemanager (hwservice_manager (list)))
+(allow traceur_app base_typeattr_592 (service_manager (find)))
+(dontaudit traceur_app service_manager_type (service_manager (find)))
+(dontaudit traceur_app hwservice_manager_type (hwservice_manager (find)))
+(dontaudit traceur_app domain (binder (call)))
+(allow ueventd kmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow ueventd self (capability (chown dac_override dac_read_search fowner fsetid setgid setuid net_admin sys_rawio mknod)))
+(allow ueventd self (cap_userns (chown dac_override dac_read_search fowner fsetid setgid setuid net_admin sys_rawio mknod)))
+(allow ueventd device (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow ueventd rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow ueventd rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd sysfs_type (file (write lock append map open)))
+(allow ueventd sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow ueventd sysfs_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd sysfs_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd sysfs_type (file (setattr relabelfrom relabelto)))
+(allow ueventd sysfs_type (lnk_file (setattr relabelfrom relabelto)))
+(allow ueventd sysfs_type (dir (setattr relabelfrom relabelto)))
+(allow ueventd tmpfs (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow ueventd dev_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow ueventd dev_type (lnk_file (create unlink)))
+(allow ueventd dev_type (chr_file (create getattr setattr unlink)))
+(allow ueventd dev_type (blk_file (create getattr setattr relabelfrom relabelto unlink)))
+(allow ueventd self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow ueventd efs_file (dir (search)))
+(allow ueventd efs_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow ueventd selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd base_typeattr_593 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow ueventd base_typeattr_593 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd base_typeattr_593 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow ueventd file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd self (process (setfscreate)))
+(allow ueventd proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow ueventd proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit ueventd postinstall_mnt_dir (dir (getattr)))
+(allow ueventd self (capability (sys_module)))
+(allow ueventd self (cap_userns (sys_module)))
+(allow ueventd vendor_file (system (module_load)))
+(allow ueventd kernel (key (search)))
+(allow ueventd system_bootstrap_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow ueventd system_bootstrap_lib_file (file (read getattr map execute open)))
+(allow ueventd vendor_shell_exec (file (execute)))
+(allow ueventd dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow ueventd self (capability (sys_admin)))
+(allow ueventd apexd_prop (file (read getattr map open)))
+;;* lmx 80 system/sepolicy/public/ueventd.te
+
+(neverallow ueventd dev_type (blk_file (ioctl read write lock append map link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 83 system/sepolicy/public/ueventd.te
+
+(neverallow ueventd port_device (chr_file (ioctl read write lock relabelfrom append map link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 86 system/sepolicy/public/ueventd.te
+
+(neverallow base_typeattr_224 ueventd (process (ptrace)))
+;;* lme
+
+;;* lmx 89 system/sepolicy/public/ueventd.te
+
+(neverallow ueventd fs_type (file (execute_no_trans)))
+(neverallow ueventd file_type (file (execute_no_trans)))
+;;* lme
+
+(allow uncrypt self (capability (dac_override dac_read_search)))
+(allow uncrypt self (cap_userns (dac_override dac_read_search)))
+(allow uncrypt cache_file (dir (search)))
+(allow uncrypt cache_recovery_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow uncrypt cache_recovery_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow uncrypt ota_package_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow uncrypt ota_package_file (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow uncrypt uncrypt_socket (sock_file (write)))
+(allow uncrypt uncrypt (unix_stream_socket (connectto)))
+(allow uncrypt self (capability (sys_rawio)))
+(allow uncrypt self (cap_userns (sys_rawio)))
+(allow uncrypt misc_block_device (blk_file (write lock append map open)))
+(allow uncrypt block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow uncrypt userdata_block_device (blk_file (write lock append map open)))
+(allow uncrypt rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow uncrypt rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt sysfs_dt_firmware_android (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow uncrypt sysfs_dt_firmware_android (file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt sysfs_dt_firmware_android (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt gsi_metadata_file_type (dir (search)))
+(allow uncrypt metadata_file (dir (search)))
+(allow uncrypt gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow uncrypt proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine self (process (setsched)))
+(allow update_engine self (capability (fowner sys_admin)))
+(allow update_engine self (cap_userns (fowner sys_admin)))
+(dontaudit update_engine self (capability (fsetid)))
+(dontaudit update_engine self (cap_userns (fsetid)))
+(allow update_engine kmsg_device (chr_file (write getattr lock append map open)))
+(allow update_engine update_engine_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow update_engine sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow update_engine self (capability2 (block_suspend)))
+(allow update_engine self (cap2_userns (block_suspend)))
+(allow update_engine system_suspend_server (binder (call transfer)))
+(allow system_suspend_server update_engine (binder (transfer)))
+(allow update_engine system_suspend_server (fd (use)))
+(allow update_engine system_suspend_hwservice (hwservice_manager (find)))
+(allow update_engine hwservicemanager (binder (call transfer)))
+(allow hwservicemanager update_engine (binder (call transfer)))
+(allow hwservicemanager update_engine (dir (search)))
+(allow hwservicemanager update_engine (file (read map open)))
+(allow hwservicemanager update_engine (process (getattr)))
+(allow update_engine hwservicemanager_prop (file (read getattr map open)))
+(allow update_engine hidl_manager_hwservice (hwservice_manager (find)))
+(allow update_engine hal_system_suspend_service (service_manager (find)))
+(allow update_engine servicemanager (binder (call transfer)))
+(allow servicemanager update_engine (binder (call transfer)))
+(allow servicemanager update_engine (dir (search)))
+(allow servicemanager update_engine (file (read open)))
+(allow servicemanager update_engine (process (getattr)))
+(dontaudit update_engine kernel (process (setsched)))
+(dontaudit update_engine self (capability (sys_rawio)))
+(dontaudit update_engine self (cap_userns (sys_rawio)))
+(allow update_engine update_engine_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow update_engine update_engine_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow update_engine update_engine_log_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow update_engine update_engine_log_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow update_engine servicemanager (binder (call transfer)))
+(allow servicemanager update_engine (binder (call transfer)))
+(allow servicemanager update_engine (dir (search)))
+(allow servicemanager update_engine (file (read open)))
+(allow servicemanager update_engine (process (getattr)))
+(allow update_engine update_engine_service (service_manager (add find)))
+;;* lmx 34 system/sepolicy/public/update_engine.te
+
+(neverallow base_typeattr_594 update_engine_service (service_manager (add)))
+;;* lme
+
+(allow update_engine update_engine_stable_service (service_manager (add find)))
+;;* lmx 35 system/sepolicy/public/update_engine.te
+
+(neverallow base_typeattr_594 update_engine_stable_service (service_manager (add)))
+;;* lme
+
+(allow update_engine priv_app (binder (call transfer)))
+(allow priv_app update_engine (binder (transfer)))
+(allow update_engine priv_app (fd (use)))
+(allow update_engine gmscore_app (binder (call transfer)))
+(allow gmscore_app update_engine (binder (transfer)))
+(allow update_engine gmscore_app (fd (use)))
+(allow update_engine system_server (binder (call transfer)))
+(allow system_server update_engine (binder (transfer)))
+(allow update_engine system_server (fd (use)))
+(allow update_engine ota_package_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine ota_package_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine proc_misc (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine gsi_metadata_file_type (dir (search)))
+(allow update_engine metadata_file (dir (search)))
+(allow update_engine gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common block_device (dir (search)))
+(allow update_engine_common boot_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow update_engine_common system_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx update_engine_common dev_type (ioctl blk_file ((range 0x125d 0x125e) 0x1277 (range 0x127c 0x127d) 0x127f)))
+(allow update_engine_common misc_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow update_engine_common rootfs (dir (getattr)))
+(allow update_engine_common rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common postinstall_mnt_dir (dir (getattr mounton search)))
+(allow update_engine_common postinstall_file (filesystem (mount unmount relabelfrom relabelto)))
+(allow update_engine_common labeledfs (filesystem (mount unmount relabelfrom)))
+(allow update_engine_common postinstall_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow update_engine_common postinstall_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common postinstall_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine_common cache_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine_common cache_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common cache_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow update_engine_common postinstall (process (sigkill sigstop signal)))
+(allow update_engine_common proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common sysfs_dt_firmware_android (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine_common sysfs_dt_firmware_android (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common sysfs_dt_firmware_android (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common sysfs_dm (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine_common sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common sysfs_dm (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine_common sysfs_fs_f2fs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine_common dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow update_engine_common dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow update_engine dm_user_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine dm_user_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_engine_common super_block_device_type (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx update_engine_common super_block_device_type (ioctl blk_file (0x1278 0x127a)))
+(allow update_engine_common block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_engine_common statsdw_socket (sock_file (write)))
+(allow update_engine_common statsd (unix_dgram_socket (sendto)))
+(allow update_engine_common virtual_ab_prop (file (read getattr map open)))
+(allow update_engine_common ab_update_gki_prop (file (read getattr map open)))
+(allow update_engine_common build_bootimage_prop (file (read getattr map open)))
+(allow update_engine_common metadata_file (dir (search)))
+(allow update_engine_common ota_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow update_engine_common ota_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow update_verifier block_device (dir (search)))
+(allow update_verifier ota_package_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_verifier ota_package_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_verifier sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_verifier sysfs_dm (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow update_verifier sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_verifier dm_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow update_verifier kmsg_device (chr_file (write getattr lock append map open)))
+(allow update_verifier vold_service (service_manager (find)))
+(allow update_verifier servicemanager (binder (call transfer)))
+(allow servicemanager update_verifier (binder (transfer)))
+(allow update_verifier servicemanager (fd (use)))
+(allow update_verifier vold (binder (call transfer)))
+(allow vold update_verifier (binder (transfer)))
+(allow update_verifier vold (fd (use)))
+(allow usbd servicemanager (binder (call transfer)))
+(allow servicemanager usbd (binder (transfer)))
+(allow usbd servicemanager (fd (use)))
+(allow userdata_sysdev sysfs (filesystem (associate)))
+(allow vdc devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vdc kmsg_device (chr_file (write getattr lock append map open)))
+(allow vdc servicemanager (binder (call transfer)))
+(allow servicemanager vdc (binder (call transfer)))
+(allow servicemanager vdc (dir (search)))
+(allow servicemanager vdc (file (read open)))
+(allow servicemanager vdc (process (getattr)))
+(allow vdc vold (binder (call transfer)))
+(allow vold vdc (binder (transfer)))
+(allow vdc vold (fd (use)))
+(allow vdc vold_service (service_manager (find)))
+(allow vendor_init init (unix_stream_socket (read write)))
+(allow vendor_init kmsg_device (chr_file (write getattr open)))
+(allow vendor_init device (dir (mounton)))
+(allow vendor_init rootfs (lnk_file (create unlink)))
+(allow vendor_init cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vendor_init cgroup (file (write lock append map open)))
+(allow vendor_init cgroup_v2 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vendor_init cgroup_v2 (file (write lock append map open)))
+(allow vendor_init configfs (dir (mounton)))
+(allow vendor_init configfs (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vendor_init configfs (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vendor_init configfs (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vendor_init self (capability (dac_override dac_read_search)))
+(allow vendor_init self (cap_userns (dac_override dac_read_search)))
+(allow vendor_init self (capability (chown fowner fsetid)))
+(allow vendor_init self (cap_userns (chown fowner fsetid)))
+(allow vendor_init unencrypted_data_file (dir (search)))
+(allow vendor_init unencrypted_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allowx vendor_init data_file_type (ioctl dir (0x6613 0x6615)))
+(allow vendor_init system_data_file (dir (getattr)))
+(allow vendor_init base_typeattr_595 (dir (ioctl read write create getattr setattr relabelfrom open add_name remove_name search rmdir)))
+(allow vendor_init unlabeled (file (getattr relabelfrom)))
+(allow vendor_init unlabeled (dir (getattr relabelfrom)))
+(allow vendor_init unlabeled (lnk_file (getattr relabelfrom)))
+(allow vendor_init unlabeled (sock_file (getattr relabelfrom)))
+(allow vendor_init unlabeled (fifo_file (getattr relabelfrom)))
+(allow vendor_init base_typeattr_596 (file (read write create getattr setattr relabelfrom map unlink open)))
+(allow vendor_init base_typeattr_597 (sock_file (read create getattr setattr relabelfrom unlink open)))
+(allow vendor_init base_typeattr_597 (fifo_file (read create getattr setattr relabelfrom unlink open)))
+(allow vendor_init base_typeattr_598 (lnk_file (create getattr setattr relabelfrom unlink)))
+(allow vendor_init base_typeattr_599 (file (relabelto)))
+(allow vendor_init base_typeattr_599 (dir (relabelto)))
+(allow vendor_init base_typeattr_599 (lnk_file (relabelto)))
+(allow vendor_init base_typeattr_599 (chr_file (relabelto)))
+(allow vendor_init base_typeattr_599 (blk_file (relabelto)))
+(allow vendor_init base_typeattr_599 (sock_file (relabelto)))
+(allow vendor_init base_typeattr_599 (fifo_file (relabelto)))
+(allow vendor_init dev_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vendor_init dev_type (lnk_file (create)))
+(allow vendor_init debugfs_tracing (file (write lock append map open)))
+(allow vendor_init base_typeattr_600 (file (read setattr map open)))
+(allow vendor_init tracefs_type (file (read setattr map open)))
+(allow vendor_init base_typeattr_601 (dir (read setattr open search)))
+(allow vendor_init dev_type (blk_file (getattr)))
+(allow vendor_init proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vendor_init proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_init proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_init proc_net_type (file (write lock append map open)))
+(allow vendor_init self (capability (net_admin)))
+(allow vendor_init self (cap_userns (net_admin)))
+(allow vendor_init proc_page_cluster (file (write lock append map open)))
+(allow vendor_init sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vendor_init sysfs_type (lnk_file (read)))
+(allow vendor_init base_typeattr_602 (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vendor_init self (process (setfscreate)))
+(allow vendor_init vendor_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vendor_init vendor_file_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_init vendor_file_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_init serialno_prop (file (read getattr map open)))
+(allow vendor_init self (capability (sys_admin)))
+(allow vendor_init self (cap_userns (sys_admin)))
+(allow vendor_init misc_block_device (blk_file (write lock append map open)))
+(allow vendor_init system_bootstrap_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vendor_init system_bootstrap_lib_file (file (read getattr map execute open)))
+(allow vendor_init userdata_sysdev (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vendor_init file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_init self (capability (sys_nice)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init apk_verity_prop (property_service (set)))
+(allow vendor_init apk_verity_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init bluetooth_a2dp_offload_prop (property_service (set)))
+(allow vendor_init bluetooth_a2dp_offload_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init bluetooth_audio_hal_prop (property_service (set)))
+(allow vendor_init bluetooth_audio_hal_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init bluetooth_config_prop (property_service (set)))
+(allow vendor_init bluetooth_config_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init camera2_extensions_prop (property_service (set)))
+(allow vendor_init camera2_extensions_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init camerax_extensions_prop (property_service (set)))
+(allow vendor_init camerax_extensions_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init cpu_variant_prop (property_service (set)))
+(allow vendor_init cpu_variant_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init dalvik_config_prop (property_service (set)))
+(allow vendor_init dalvik_config_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init dalvik_dynamic_config_prop (property_service (set)))
+(allow vendor_init dalvik_dynamic_config_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init dalvik_runtime_prop (property_service (set)))
+(allow vendor_init dalvik_runtime_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init debug_prop (property_service (set)))
+(allow vendor_init debug_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_bluetooth_prop (property_service (set)))
+(allow vendor_init exported_bluetooth_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_camera_prop (property_service (set)))
+(allow vendor_init exported_camera_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_config_prop (property_service (set)))
+(allow vendor_init exported_config_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_default_prop (property_service (set)))
+(allow vendor_init exported_default_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_overlay_prop (property_service (set)))
+(allow vendor_init exported_overlay_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init exported_pm_prop (property_service (set)))
+(allow vendor_init exported_pm_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init ffs_control_prop (property_service (set)))
+(allow vendor_init ffs_control_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init hw_timeout_multiplier_prop (property_service (set)))
+(allow vendor_init hw_timeout_multiplier_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init incremental_prop (property_service (set)))
+(allow vendor_init incremental_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init lmkd_prop (property_service (set)))
+(allow vendor_init lmkd_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init logd_prop (property_service (set)))
+(allow vendor_init logd_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init log_tag_prop (property_service (set)))
+(allow vendor_init log_tag_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init log_prop (property_service (set)))
+(allow vendor_init log_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init graphics_config_writable_prop (property_service (set)))
+(allow vendor_init graphics_config_writable_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init qemu_hw_prop (property_service (set)))
+(allow vendor_init qemu_hw_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init radio_control_prop (property_service (set)))
+(allow vendor_init radio_control_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init rebootescrow_hal_prop (property_service (set)))
+(allow vendor_init rebootescrow_hal_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init serialno_prop (property_service (set)))
+(allow vendor_init serialno_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init soc_prop (property_service (set)))
+(allow vendor_init soc_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init surfaceflinger_color_prop (property_service (set)))
+(allow vendor_init surfaceflinger_color_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init usb_control_prop (property_service (set)))
+(allow vendor_init usb_control_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init userspace_reboot_config_prop (property_service (set)))
+(allow vendor_init userspace_reboot_config_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vehicle_hal_prop (property_service (set)))
+(allow vendor_init vehicle_hal_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vendor_default_prop (property_service (set)))
+(allow vendor_init vendor_default_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init keystore_config_prop (property_service (set)))
+(allow vendor_init keystore_config_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vendor_security_patch_level_prop (property_service (set)))
+(allow vendor_init vendor_security_patch_level_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vndk_prop (property_service (set)))
+(allow vendor_init vndk_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init virtual_ab_prop (property_service (set)))
+(allow vendor_init virtual_ab_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init vold_post_fs_data_prop (property_service (set)))
+(allow vendor_init vold_post_fs_data_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init wifi_hal_prop (property_service (set)))
+(allow vendor_init wifi_hal_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init wifi_log_prop (property_service (set)))
+(allow vendor_init wifi_log_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init zram_control_prop (property_service (set)))
+(allow vendor_init zram_control_prop (file (read getattr map open)))
+(allow vendor_init boot_status_prop (file (read getattr map open)))
+(allow vendor_init exported3_system_prop (file (read getattr map open)))
+(allow vendor_init ota_prop (file (read getattr map open)))
+(allow vendor_init power_debug_prop (file (read getattr map open)))
+(allow vendor_init provisioned_prop (file (read getattr map open)))
+(allow vendor_init retaildemo_prop (file (read getattr map open)))
+(allow vendor_init surfaceflinger_display_prop (file (read getattr map open)))
+(allow vendor_init test_harness_prop (file (read getattr map open)))
+(allow vendor_init theme_prop (file (read getattr map open)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init dck_prop (property_service (set)))
+(allow vendor_init dck_prop (file (read getattr map open)))
+(allow vendor_init device_config_vendor_system_native_prop (file (read getattr map open)))
+(allow vendor_init device_config_vendor_system_native_boot_prop (file (read getattr map open)))
+;;* lmx 305 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init base_typeattr_603 (socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (tcp_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (udp_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (rawip_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (packet_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (key_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (unix_stream_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (unix_dgram_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_route_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_tcpdiag_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_nflog_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_xfrm_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_selinux_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_audit_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_dnrt_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_kobject_uevent_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (appletalk_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (tun_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_iscsi_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_fib_lookup_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_connector_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_netfilter_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_generic_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_scsitransport_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_rdma_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netlink_crypto_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (sctp_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (icmp_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (ax25_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (ipx_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (netrom_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (atmpvc_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (x25_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (rose_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (decnet_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (atmsvc_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (rds_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (irda_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (pppox_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (llc_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (can_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (tipc_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (bluetooth_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (iucv_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (rxrpc_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (isdn_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (phonet_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (ieee802154_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (caif_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (alg_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (nfc_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (vsock_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (kcm_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (qipcrtr_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (smc_socket (connect sendto)))
+(neverallow vendor_init base_typeattr_603 (xdp_socket (connect sendto)))
+;;* lme
+
+;;* lmx 305 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init base_typeattr_603 (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 310 system/sepolicy/public/vendor_init.te
+
+(neverallow domain vendor_init (process (dyntransition)))
+;;* lme
+
+;;* lmx 311 system/sepolicy/public/vendor_init.te
+
+(neverallow base_typeattr_223 vendor_init (process (transition)))
+;;* lme
+
+;;* lmx 312 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init base_typeattr_554 (file (entrypoint)))
+;;* lme
+
+;;* lmx 315 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init app_data_file_type (lnk_file (read)))
+;;* lme
+
+;;* lmx 316 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init shell_data_file (lnk_file (read)))
+;;* lme
+
+;;* lmx 318 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init shell_data_file (dir (write add_name remove_name)))
+;;* lme
+
+;;* lmx 321 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init fs_type (file (execute_no_trans)))
+(neverallow vendor_init file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 324 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init service_manager_type (service_manager (add find)))
+;;* lme
+
+;;* lmx 325 system/sepolicy/public/vendor_init.te
+
+(neverallow vendor_init servicemanager (service_manager (list)))
+;;* lme
+
+;;* lmx 328 system/sepolicy/public/vendor_init.te
+
+(neverallow base_typeattr_224 vendor_init (process (ptrace)))
+;;* lme
+
+(allow vendor_misc_writer misc_block_device (blk_file (write lock append map open)))
+(allow vendor_misc_writer block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit vendor_misc_writer proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit vendor_misc_writer sysfs_dt_firmware_android (dir (search)))
+(dontaudit vendor_misc_writer proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_misc_writer gsi_metadata_file_type (dir (search)))
+(allow vendor_misc_writer metadata_file (dir (search)))
+(allow vendor_misc_writer gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_misc_writer proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_misc_writer proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vendor_shell vendor_shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow vendor_shell vendor_toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow vendor_shell shell (fd (use)))
+(allow vendor_shell adbd (fd (use)))
+(allow vendor_shell adbd (process (sigchld)))
+(allow vendor_shell adbd (unix_stream_socket (ioctl read write getattr)))
+(allow vendor_shell devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vendor_shell tty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vendor_shell console_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vendor_shell input_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vendor_shell input_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lmx 8 system/sepolicy/public/vendor_toolbox.te
+
+(neverallow base_typeattr_604 vendor_toolbox_exec (file (execute execute_no_trans entrypoint)))
+;;* lme
+
+(allow virtual_touchpad servicemanager (binder (call transfer)))
+(allow servicemanager virtual_touchpad (binder (call transfer)))
+(allow servicemanager virtual_touchpad (dir (search)))
+(allow servicemanager virtual_touchpad (file (read open)))
+(allow servicemanager virtual_touchpad (process (getattr)))
+(allow virtual_touchpad virtual_touchpad_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/public/virtual_touchpad.te
+
+(neverallow base_typeattr_605 virtual_touchpad_service (service_manager (add)))
+;;* lme
+
+(allow virtual_touchpad system_server (binder (call transfer)))
+(allow system_server virtual_touchpad (binder (transfer)))
+(allow virtual_touchpad system_server (fd (use)))
+(allow virtual_touchpad uhid_device (chr_file (ioctl write lock append map open)))
+(allow virtual_touchpad permission_service (service_manager (find)))
+(allow vold cache_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vold cache_file (file (read getattr)))
+(allow vold cache_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold base_typeattr_606 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vold base_typeattr_606 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold base_typeattr_606 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold sysfs (file (write lock append map open)))
+(allow vold sysfs_devices_block (file (write lock append map open)))
+(allow vold sysfs_dm (file (write lock append map open)))
+(allow vold sysfs_loop (file (write lock append map open)))
+(allow vold sysfs_usb (file (write lock append map open)))
+(allow vold sysfs_fs_f2fs (file (write lock append map open)))
+(allow vold sysfs_zram_uevent (file (write lock append map open)))
+(allow vold rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vold rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vold metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_drop_caches (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_mounts (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold self (process (setexec)))
+(allow vold e2fs_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allowx vold fs_type (ioctl dir (0x5879)))
+(allowx vold file_type (ioctl dir (0x5879)))
+(allowx vold data_file_type (ioctl dir (0x6613 0x6615 (range 0x6617 0x6618) 0x661a)))
+;;* lmx 63 system/sepolicy/public/vold.te
+
+(neverallowx base_typeattr_321 data_file_type (ioctl dir (0x6613)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/public/vold.te
+
+(neverallowx base_typeattr_339 data_file_type (ioctl dir ((range 0x6617 0x6618) 0x661a)))
+;;* lme
+
+(allowx vold vold_metadata_file (ioctl file (0x660b)))
+(allowx vold vold_data_file (ioctl file (0x660b)))
+(allowx vold vold_metadata_file (ioctl file (0xf514)))
+(allowx vold vold_data_file (ioctl file (0xf514)))
+(allow vold self (process (setfscreate)))
+(allow vold system_file (file (getattr map execute execute_no_trans)))
+(allow vold block_device (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold device (dir (write)))
+(allow vold devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold rootfs (dir (mounton)))
+(allow vold sdcard_type (dir (mounton)))
+(allow vold fuse (dir (mounton)))
+(allow vold sdcard_type (filesystem (mount remount unmount)))
+(allow vold fuse (filesystem (mount remount unmount)))
+(allow vold sdcard_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold fuse (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold mnt_media_rw_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold storage_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold sdcard_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold fuse (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold mnt_media_rw_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold storage_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold media_rw_data_file (dir (mounton)))
+(allowx vold media_rw_data_file (ioctl file ((range 0x581f 0x5820))))
+(allowx vold media_rw_data_file (ioctl dir ((range 0x581f 0x5820))))
+(allowx vold media_rw_data_file (ioctl file ((range 0x6601 0x6602))))
+(allowx vold media_rw_data_file (ioctl dir ((range 0x6601 0x6602))))
+(allow vold mnt_media_rw_stub_file (dir (create getattr setattr mounton rmdir)))
+(allow vold storage_stub_file (dir (create getattr setattr mounton rmdir)))
+(allow vold mnt_user_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold mnt_user_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold mnt_user_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold mnt_pass_through_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold mnt_pass_through_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold mnt_expand_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold apk_data_file (dir (create getattr setattr)))
+(allow vold shell_data_file (dir (create getattr setattr)))
+(allow vold system_userdir_file (dir (create getattr setattr)))
+(allow vold media_userdir_file (dir (ioctl read create getattr setattr open)))
+(allowx vold media_userdir_file (ioctl dir ((range 0x6601 0x6602))))
+(allow vold apk_data_file (dir (ioctl read write getattr lock mounton open watch watch_reads add_name remove_name search)))
+(allow vold apk_data_file (file (ioctl read write getattr lock append map unlink open watch watch_reads)))
+(allow vold apk_tmp_file (dir (ioctl read getattr lock mounton open watch watch_reads search)))
+(allow vold incremental_control_file (file (ioctl read getattr lock relabelto map open watch watch_reads)))
+(allow vold tmpfs (filesystem (mount unmount)))
+(allow vold tmpfs (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold tmpfs (dir (mounton)))
+(allow vold self (capability (chown dac_override dac_read_search fowner fsetid net_admin sys_admin mknod)))
+(allow vold self (cap_userns (chown dac_override dac_read_search fowner fsetid net_admin sys_admin mknod)))
+(allow vold self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow vold loop_control_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold loop_device (blk_file (ioctl read write create getattr setattr lock append map unlink open watch watch_reads)))
+(allowx vold loop_device (ioctl blk_file ((range 0x4c00 0x4c01) (range 0x4c04 0x4c05) 0x4c82)))
+(allow vold vold_device (blk_file (ioctl read write create getattr setattr lock append map unlink open watch watch_reads)))
+(allowx vold vold_device (ioctl blk_file (0x1260 0x1277)))
+(allow vold dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx vold dm_device (ioctl blk_file (0x1277 0x127d (range 0x1282 0x1283))))
+(allow vold domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow vold domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold domain (process (sigkill signal)))
+(allow vold self (capability (kill sys_ptrace)))
+(allow vold self (cap_userns (kill sys_ptrace)))
+(allow vold kmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold fsck_exec (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow vold fscklogs (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow vold fscklogs (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold labeledfs (filesystem (mount remount unmount)))
+(allow vold system_data_root_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold system_data_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold system_data_file (lnk_file (getattr)))
+(allow vold vendor_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold system_data_file (file (read)))
+(allow vold kernel (process (setsched)))
+(allow vold asec_image_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold asec_image_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow vold asec_apk_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold asec_public_file (dir (setattr relabelto)))
+(allow vold asec_apk_file (file (ioctl read getattr setattr lock relabelfrom relabelto map open watch watch_reads)))
+(allow vold asec_public_file (file (setattr relabelto)))
+(allow vold unlabeled (dir (ioctl read getattr setattr lock relabelfrom open watch watch_reads search)))
+(allow vold unlabeled (file (ioctl read getattr setattr lock relabelfrom map open watch watch_reads)))
+(allow vold fusectlfs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold fusectlfs (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow vold sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold self (capability2 (block_suspend)))
+(allow vold self (cap2_userns (block_suspend)))
+(allow vold system_suspend_server (binder (call transfer)))
+(allow system_suspend_server vold (binder (transfer)))
+(allow vold system_suspend_server (fd (use)))
+(allow vold system_suspend_hwservice (hwservice_manager (find)))
+(allow vold hwservicemanager (binder (call transfer)))
+(allow hwservicemanager vold (binder (call transfer)))
+(allow hwservicemanager vold (dir (search)))
+(allow hwservicemanager vold (file (read map open)))
+(allow hwservicemanager vold (process (getattr)))
+(allow vold hwservicemanager_prop (file (read getattr map open)))
+(allow vold hidl_manager_hwservice (hwservice_manager (find)))
+(allow vold hal_system_suspend_service (service_manager (find)))
+(allow vold servicemanager (binder (call transfer)))
+(allow servicemanager vold (binder (call transfer)))
+(allow servicemanager vold (dir (search)))
+(allow servicemanager vold (file (read open)))
+(allow servicemanager vold (process (getattr)))
+(allow vold servicemanager (binder (call transfer)))
+(allow servicemanager vold (binder (call transfer)))
+(allow servicemanager vold (dir (search)))
+(allow servicemanager vold (file (read open)))
+(allow servicemanager vold (process (getattr)))
+(allow vold vold_service (service_manager (add find)))
+;;* lmx 218 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_339 vold_service (service_manager (add)))
+;;* lme
+
+(allow vold system_server (binder (call transfer)))
+(allow system_server vold (binder (transfer)))
+(allow vold system_server (fd (use)))
+(allow vold permission_service (service_manager (find)))
+(allow vold userdata_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx vold userdata_block_device (ioctl blk_file (0x127d)))
+(allow vold zoned_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold metadata_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx vold metadata_block_device (ioctl blk_file (0x127d)))
+(allow vold unencrypted_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold unencrypted_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold proc_drop_caches (file (write lock append map open)))
+(allow vold vold_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold vold_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold vold_metadata_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold vold_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vold init (key (write search setattr)))
+(allow vold vold (key (write search setattr)))
+(allow vold self (capability (sys_nice)))
+(allow vold self (cap_userns (sys_nice)))
+(allow vold self (capability (sys_chroot)))
+(allow vold self (cap_userns (sys_chroot)))
+(allow vold storage_file (dir (mounton)))
+(allow vold fuse_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold fuse (filesystem (relabelfrom)))
+(allow vold app_fusefs (filesystem (relabelfrom relabelto)))
+(allow vold app_fusefs (filesystem (mount unmount)))
+(allow vold app_fuse_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow vold app_fuse_file (file (read write getattr append open)))
+(allow vold toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow vold user_profile_root_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold user_profile_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold misc_block_device (blk_file (write lock append map open)))
+(allow vold mnt_vendor_file (dir (search)))
+(dontaudit vold self (capability (sys_resource)))
+(dontaudit vold self (cap_userns (sys_resource)))
+(allow vold gsi_metadata_file_type (dir (search)))
+(allow vold metadata_file (dir (search)))
+(allow vold gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold vendor_apex_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 299 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_607 vold_data_file (dir (write lock append map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 306 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_608 vold_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 312 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_337 vold_metadata_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 319 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_609 vold_data_file (file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_609 vold_data_file (lnk_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_609 vold_data_file (sock_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_609 vold_data_file (fifo_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 326 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_608 vold_metadata_file (file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_608 vold_metadata_file (lnk_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_608 vold_metadata_file (sock_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_608 vold_metadata_file (fifo_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 334 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_610 vold_metadata_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_610 vold_metadata_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_610 vold_metadata_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_610 vold_metadata_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_610 vold_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_610 vold_data_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_610 vold_data_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_610 vold_data_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 336 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_337 restorecon_prop (property_service (set)))
+;;* lme
+
+;;* lmx 349 system/sepolicy/public/vold.te
+
+(neverallow vold base_typeattr_611 (binder (call)))
+;;* lme
+
+;;* lmx 351 system/sepolicy/public/vold.te
+
+(neverallow vold fsck_exec (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 352 system/sepolicy/public/vold.te
+
+(neverallow base_typeattr_223 vold (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 353 system/sepolicy/public/vold.te
+
+(neverallow vold base_typeattr_224 (process (ptrace)))
+;;* lme
+
+;;* lmx 354 system/sepolicy/public/vold.te
+
+(neverallow vold base_typeattr_224 (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+(allow watchdogd watchdog_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow watchdogd kmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow wificond servicemanager (binder (call transfer)))
+(allow servicemanager wificond (binder (call transfer)))
+(allow servicemanager wificond (dir (search)))
+(allow servicemanager wificond (file (read open)))
+(allow servicemanager wificond (process (getattr)))
+(allow wificond system_server (binder (call transfer)))
+(allow system_server wificond (binder (transfer)))
+(allow wificond system_server (fd (use)))
+(allow wificond keystore (binder (call transfer)))
+(allow keystore wificond (binder (transfer)))
+(allow wificond keystore (fd (use)))
+(allow wificond wifinl80211_service (service_manager (add find)))
+;;* lmx 9 system/sepolicy/public/wificond.te
+
+(neverallow base_typeattr_612 wifinl80211_service (service_manager (add)))
+;;* lme
+
+(allow wificond self (udp_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allowx wificond self (ioctl udp_socket (0x8914 0x8924)))
+(allow wificond self (capability (net_admin net_raw)))
+(allow wificond self (cap_userns (net_admin net_raw)))
+(allow wificond self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow wificond self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow wificond proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow wificond proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow wificond proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow wificond permission_service (service_manager (find)))
+(allow wificond dumpstate (fd (use)))
+(allow wificond dumpstate (fifo_file (write)))
+(allow wificond hwservicemanager (binder (call transfer)))
+(allow hwservicemanager wificond (binder (call transfer)))
+(allow hwservicemanager wificond (dir (search)))
+(allow hwservicemanager wificond (file (read map open)))
+(allow hwservicemanager wificond (process (getattr)))
+(allow wificond system_wifi_keystore_hwservice (hwservice_manager (add find)))
+(allow wificond hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 34 system/sepolicy/public/wificond.te
+
+(neverallow base_typeattr_612 system_wifi_keystore_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow wificond keystore_service (service_manager (find)))
+(allow wificond wifi_key (keystore2_key (get_info use)))
+;;* lmx 1 system/sepolicy/private/attributes
+
+(neverallow base_typeattr_613 domain (process (fork)))
+;;* lme
+
+;;* lmx 1 system/sepolicy/private/attributes
+
+(neverallow base_typeattr_614 domain (process (fork)))
+;;* lme
+
+;;* lmx 1 system/sepolicy/private/attributes
+
+(neverallow base_typeattr_615 domain (process (fork)))
+;;* lme
+
+(allow init aconfigd_exec (file (read getattr map execute open)))
+(allow init aconfigd (process (transition)))
+(allow aconfigd aconfigd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init aconfigd (process (noatsecure)))
+(allow init aconfigd (process (siginh rlimitinh)))
+(typetransition init aconfigd_exec process aconfigd)
+;;* lmx 10 system/sepolicy/private/aconfigd.te
+
+(neverallow base_typeattr_223 aconfigd (process (transition)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/private/aconfigd.te
+
+(neverallow base_typeattr_224 aconfigd (process (dyntransition)))
+;;* lme
+
+(allow aconfigd metadata_file (dir (search)))
+(allow aconfigd aconfig_storage_metadata_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow aconfigd aconfig_storage_flags_metadata_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow aconfigd aconfig_storage_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow aconfigd aconfig_storage_flags_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow aconfigd aconfigd_socket (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow aconfigd kmsg_device (chr_file (write lock append map open)))
+(allow aconfigd system_aconfig_storage_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow aconfigd system_aconfig_storage_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow aconfigd vendor_aconfig_storage_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow aconfigd vendor_aconfig_storage_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init adbd_exec (file (read getattr map execute open)))
+(allow init adbd (process (transition)))
+(allow adbd adbd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init adbd (process (noatsecure)))
+(allow init adbd (process (siginh rlimitinh)))
+(typetransition init adbd_exec process adbd)
+(allow adbd shell_exec (file (read getattr map execute open)))
+(allow adbd shell (process (transition)))
+(allow shell shell_exec (file (read getattr map execute open entrypoint)))
+(allow shell adbd (process (sigchld)))
+(dontaudit adbd shell (process (noatsecure)))
+(allow adbd shell (process (siginh rlimitinh)))
+(typetransition adbd shell_exec process shell)
+(allow adbd traced_consumer_socket (sock_file (write)))
+(allow adbd traced (unix_stream_socket (connectto)))
+(allow adbd shell (process (signal noatsecure)))
+(allow adbd self (capability (setgid setuid)))
+(allow adbd self (cap_userns (setgid setuid)))
+(allow adbd self (capability (setpcap)))
+(allow adbd self (cap_userns (setpcap)))
+(dontaudit adbd self (capability (sys_resource)))
+(dontaudit adbd self (cap_userns (sys_resource)))
+(dontaudit adbd self (socket (create)))
+(dontaudit adbd self (vsock_socket (create)))
+(allow adbd self (vsock_socket (read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+(allow adbd mdnsd_socket (sock_file (write)))
+(allow adbd mdnsd (unix_stream_socket (connectto)))
+(allow adbd functionfs (dir (search)))
+(allow adbd functionfs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx adbd functionfs (ioctl file (0x6703 0x6782)))
+(allow adbd devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow adbd shell_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow adbd shell_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow adbd trace_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd trace_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd profman_dump_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd profman_dump_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd tmpfs (dir (search)))
+(allow adbd rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd tmpfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd sdcard_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow adbd fuse (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow adbd sdcard_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow adbd fuse (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow adbd anr_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd anr_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd vendor_framework_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd vendor_framework_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd property_socket (sock_file (write)))
+(allow adbd init (unix_stream_socket (connectto)))
+(allow adbd shell_prop (property_service (set)))
+(allow adbd shell_prop (file (read getattr map open)))
+(allow adbd property_socket (sock_file (write)))
+(allow adbd init (unix_stream_socket (connectto)))
+(allow adbd powerctl_prop (property_service (set)))
+(allow adbd powerctl_prop (file (read getattr map open)))
+(allow adbd ffs_config_prop (file (read getattr map open)))
+(allow adbd property_socket (sock_file (write)))
+(allow adbd init (unix_stream_socket (connectto)))
+(allow adbd ffs_control_prop (property_service (set)))
+(allow adbd ffs_control_prop (file (read getattr map open)))
+(allow adbd property_socket (sock_file (write)))
+(allow adbd init (unix_stream_socket (connectto)))
+(allow adbd adbd_prop (property_service (set)))
+(allow adbd adbd_prop (file (read getattr map open)))
+(allow adbd property_socket (sock_file (write)))
+(allow adbd init (unix_stream_socket (connectto)))
+(allow adbd adbd_config_prop (property_service (set)))
+(allow adbd adbd_config_prop (file (read getattr map open)))
+(allow adbd property_socket (sock_file (write)))
+(allow adbd init (unix_stream_socket (connectto)))
+(allow adbd ctl_mdnsd_prop (property_service (set)))
+(allow adbd ctl_mdnsd_prop (file (read getattr map open)))
+(allow adbd device_logging_prop (file (read getattr map open)))
+(allow adbd serialno_prop (file (read getattr map open)))
+(allow adbd test_harness_prop (file (read getattr map open)))
+(allow adbd system_adbd_prop (file (read getattr map open)))
+(allow adbd system_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow adbd servicemanager (binder (call transfer)))
+(allow servicemanager adbd (binder (call transfer)))
+(allow servicemanager adbd (dir (search)))
+(allow servicemanager adbd (file (read open)))
+(allow servicemanager adbd (process (getattr)))
+(allow adbd surfaceflinger (binder (call transfer)))
+(allow surfaceflinger adbd (binder (transfer)))
+(allow adbd surfaceflinger (fd (use)))
+(allow adbd gpuservice (binder (call transfer)))
+(allow gpuservice adbd (binder (transfer)))
+(allow adbd gpuservice (fd (use)))
+(allow adbd gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow adbd gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd ion_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow adbd system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd adb_keys_file (dir (search)))
+(allow adbd adb_keys_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd app_data_file (dir (search)))
+(allow adbd app_data_file (sock_file (write)))
+(allow adbd appdomain (unix_stream_socket (connectto)))
+(allow adbd zygote_exec (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd kernel (security (read_policy)))
+(allow adbd service_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd property_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd sepolicy_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd config_gz (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd proc_net_tcp_udp (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd gpu_service (service_manager (find)))
+(allow adbd surfaceflinger_service (service_manager (find)))
+(allow adbd bootchart_data_file (dir (search)))
+(allow adbd bootchart_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd storage_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd storage_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd mnt_user_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd mnt_user_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow adbd media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow adbd apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd perfetto (process (signal)))
+(allow adbd perfetto_traces_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd perfetto_traces_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd perfetto_configs_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow adbd perfetto_configs_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow adbd shell (unix_stream_socket (read write shutdown)))
+(allow adbd shell (fd (use)))
+(allow adbd vendor_apex_file (dir (search)))
+(allow adbd vendor_apex_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd apex_data_file (dir (search)))
+(allow adbd staging_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow adbd tombstone_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow adbd tombstone_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 240 system/sepolicy/private/adbd.te
+
+(neverallow adbd base_typeattr_616 (process (transition)))
+;;* lme
+
+;;* lmx 241 system/sepolicy/private/adbd.te
+
+(neverallow adbd domain (process (dyntransition)))
+;;* lme
+
+(allow init apexd_exec (file (read getattr map execute open)))
+(allow init apexd (process (transition)))
+(allow apexd apexd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init apexd (process (noatsecure)))
+(allow init apexd (process (siginh rlimitinh)))
+(typetransition init apexd_exec process apexd)
+(allow apexd apex_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd apex_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow apexd apex_data_file (file (relabelfrom)))
+(allow apexd metadata_file (dir (search)))
+(allow apexd apex_metadata_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd apex_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow apexd apex_ota_reserved_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd apex_ota_reserved_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow apexd apex_data_file_type (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd apex_data_file_type (file (ioctl read write create getattr setattr lock relabelto append map unlink rename open watch watch_reads)))
+(allow apexd apex_module_data_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd apex_module_data_file (file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow apexd apex_rollback_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd apex_rollback_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow apexd system_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd system_userdir_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd loop_control_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow apexd loop_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx apexd loop_device (ioctl blk_file (0x1261)))
+(allowx apexd loop_device (ioctl blk_file ((range 0x4c00 0x4c01) (range 0x4c04 0x4c05) (range 0x4c08 0x4c0a))))
+(allow apexd dev_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd dev_type (blk_file (getattr)))
+(allow apexd vd_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow apexd dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow apexd self (capability (chown dac_override dac_read_search fowner sys_admin)))
+(allow apexd self (cap_userns (chown dac_override dac_read_search fowner sys_admin)))
+(dontaudit apexd self (capability (fsetid)))
+(dontaudit apexd self (cap_userns (fsetid)))
+(allow apexd apex_mnt_dir (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd apex_mnt_dir (filesystem (mount unmount)))
+(allow apexd apex_mnt_dir (dir (mounton)))
+(allow apexd apex_mnt_dir (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow apexd apex_mnt_dir (file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename mounton open watch watch_reads)))
+(allow apexd apex_info_file (file (relabelto)))
+(allow apexd apex_info_file (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow apexd staging_data_file (file (unlink)))
+(allow apexd staging_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd staging_data_file (file (ioctl read getattr lock map link open watch watch_reads)))
+(allow apexd staging_data_file (file (relabelto)))
+(allow apexd vendor_apex_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd vendor_apex_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd vendor_apex_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd vendor_apex_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd vendor_apex_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd labeledfs (filesystem (mount unmount)))
+(allow apexd sysfs_type (dir (search)))
+(allow apexd sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd sysfs_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd sysfs_dm (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd sysfs_dm (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow apexd sysfs_loop (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd sysfs_loop (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow apexd kmsg_device (chr_file (write lock append map open)))
+(allow apexd property_socket (sock_file (write)))
+(allow apexd init (unix_stream_socket (connectto)))
+(allow apexd powerctl_prop (property_service (set)))
+(allow apexd powerctl_prop (file (read getattr map open)))
+(allow apexd property_socket (sock_file (write)))
+(allow apexd init (unix_stream_socket (connectto)))
+(allow apexd ctl_apexd_prop (property_service (set)))
+(allow apexd ctl_apexd_prop (file (read getattr map open)))
+(allow apexd property_socket (sock_file (write)))
+(allow apexd init (unix_stream_socket (connectto)))
+(allow apexd ctl_apex_load_prop (property_service (set)))
+(allow apexd ctl_apex_load_prop (file (read getattr map open)))
+(allow apexd vold_service (service_manager (find)))
+(allow apexd vold (binder (call transfer)))
+(allow vold apexd (binder (transfer)))
+(allow apexd vold (fd (use)))
+(allow apexd system_bootstrap_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow apexd system_bootstrap_lib_file (file (read getattr map execute open)))
+(allow apexd devpts (chr_file (read write)))
+(typetransition apexd devpts chr_file apexd_devpts)
+(allow apexd apexd_devpts (chr_file (ioctl read write getattr open)))
+(allowx apexd apexd_devpts (ioctl chr_file ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+;;* lmx 141 system/sepolicy/private/apexd.te
+
+(neverallowx base_typeattr_224 apexd_devpts (ioctl chr_file (0x5412)))
+;;* lme
+
+(allow apexd file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allowx apexd staging_data_file (ioctl file (0x6601)))
+(allowx apexd staging_data_file (ioctl file (0xf512)))
+(allow apexd cold_boot_done_prop (file (read getattr map open)))
+(allow apexd apexd_config_prop (file (read getattr map open)))
+(allow apexd apexd_select_prop (file (read getattr map open)))
+(allow apexd apexd_payload_metadata_prop (file (read getattr map open)))
+;;* lmx 169 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_617 apex_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 170 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_617 apex_metadata_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 171 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_618 apex_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 172 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_618 apex_metadata_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 173 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_225 apex_mnt_dir (lnk_file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 175 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_619 apex_module_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 176 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_619 apex_module_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 178 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_619 apex_rollback_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 179 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_619 apex_rollback_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+(allow apexd property_socket (sock_file (write)))
+(allow apexd init (unix_stream_socket (connectto)))
+(allow apexd apexd_prop (property_service (set)))
+(allow apexd apexd_prop (file (read getattr map open)))
+;;* lmx 183 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_617 apexd_prop (property_service (set)))
+;;* lme
+
+;;* lmx 186 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_225 apex_info_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 192 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_620 apex_mnt_dir (filesystem (mount unmount)))
+;;* lme
+
+;;* lmx 193 system/sepolicy/private/apexd.te
+
+(neverallow base_typeattr_620 apex_mnt_dir (dir (mounton)))
+;;* lme
+
+(allow apexd otapreopt_chroot (fd (use)))
+(allow apexd postinstall_apex_mnt_dir (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow apexd postinstall_apex_mnt_dir (file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow apexd postinstall_apex_mnt_dir (lnk_file (create)))
+(allow apexd proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow apexd derive_classpath_exec (file (read getattr map execute open)))
+(allow apexd apexd_derive_classpath (process (transition)))
+(allow apexd_derive_classpath derive_classpath_exec (file (read getattr map execute open entrypoint)))
+(allow apexd_derive_classpath apexd (process (sigchld)))
+(dontaudit apexd apexd_derive_classpath (process (noatsecure)))
+(allow apexd apexd_derive_classpath (process (siginh rlimitinh)))
+(typetransition apexd derive_classpath_exec process apexd_derive_classpath)
+(allow apexd property_socket (sock_file (write)))
+(allow apexd init (unix_stream_socket (connectto)))
+(allow apexd apex_ready_prop (property_service (set)))
+(allow apexd apex_ready_prop (file (read getattr map open)))
+(allow apexd_derive_classpath apexd (fd (use)))
+(allow apexd_derive_classpath apex_mnt_dir (file (write open)))
+(allow apexd_derive_classpath apexd_devpts (chr_file (read write)))
+(allow base_typeattr_621 proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_621 proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_621 proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain test_harness_prop (file (read getattr map open)))
+(allow appdomain boot_status_prop (file (read getattr map open)))
+(allow appdomain dalvik_config_prop_type (file (read getattr map open)))
+(allow appdomain media_config_prop (file (read getattr map open)))
+(allow appdomain packagemanager_config_prop (file (read getattr map open)))
+(allow appdomain radio_control_prop (file (read getattr map open)))
+(allow appdomain surfaceflinger_color_prop (file (read getattr map open)))
+(allow appdomain systemsound_config_prop (file (read getattr map open)))
+(allow appdomain telephony_config_prop (file (read getattr map open)))
+(allow appdomain userspace_reboot_config_prop (file (read getattr map open)))
+(allow appdomain vold_config_prop (file (read getattr map open)))
+(allow appdomain adbd_config_prop (file (read getattr map open)))
+(allow appdomain dck_prop (file (read getattr map open)))
+(allow appdomain persist_wm_debug_prop (file (read getattr map open)))
+(allow appdomain persist_sysui_builder_extras_prop (file (read getattr map open)))
+(allow appdomain persist_sysui_ranking_update_prop (file (read getattr map open)))
+(allow appdomain traced_oome_heap_session_count_prop (file (read getattr map open)))
+(allow appdomain camera2_extensions_prop (file (read getattr map open)))
+(allow appdomain camerax_extensions_prop (file (read getattr map open)))
+(dontaudit appdomain storage_stub_file (dir (getattr)))
+(dontaudit appdomain system_data_file (dir (write)))
+(dontaudit appdomain vendor_default_prop (file (read)))
+(allow base_typeattr_622 mnt_media_rw_file (dir (search)))
+(allow appdomain system_server (udp_socket (read write getattr connect getopt setopt recvfrom sendto)))
+;;* lmx 89 system/sepolicy/private/app.te
+
+(neverallow appdomain system_server (udp_socket (ioctl create setattr lock relabelfrom relabelto append bind listen accept shutdown name_bind)))
+;;* lme
+
+;;* lmx 98 system/sepolicy/private/app.te
+
+(neverallow base_typeattr_235 base_typeattr_623 (process (transition)))
+;;* lme
+
+;;* lmx 100 system/sepolicy/private/app.te
+
+(neverallow base_typeattr_235 base_typeattr_233 (process (dyntransition)))
+;;* lme
+
+;;* lmx 103 system/sepolicy/private/app.te
+
+(neverallow base_typeattr_624 storage_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(dontaudit appdomain system_font_fallback_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 107 system/sepolicy/private/app.te
+
+(neverallow appdomain system_font_fallback_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow appdomain sendbug_config_prop (file (read getattr map open)))
+(allow appdomain graphics_config_prop (file (read getattr map open)))
+(allow appdomain camera_calibration_prop (file (read getattr map open)))
+(allow appdomain sqlite_log_prop (file (read getattr map open)))
+(allow appdomain font_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain font_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain apex_module_data_file (dir (search)))
+(allow appdomain apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain apex_art_data_file (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow appdomain tombstone_data_file (file (read getattr)))
+;;* lmx 137 system/sepolicy/private/app.te
+
+(neverallow base_typeattr_235 tombstone_data_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow base_typeattr_625 shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow base_typeattr_625 toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow base_typeattr_625 vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_625 vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_625 vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_625 vendor_app_file (file (execute)))
+(allow base_typeattr_626 vendor_microdroid_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_626 vendor_microdroid_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_626 vendor_microdroid_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain sdk_sandbox_all (binder (call transfer)))
+(allow sdk_sandbox_all appdomain (binder (transfer)))
+(allow appdomain sdk_sandbox_all (fd (use)))
+(allow appdomain virtual_camera (binder (call transfer)))
+(allow virtual_camera appdomain (binder (transfer)))
+(allow appdomain virtual_camera (fd (use)))
+(allow base_typeattr_626 storage_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_626 storage_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_626 mnt_user_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_626 mnt_user_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_626 sdcard_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow base_typeattr_626 fuse (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow base_typeattr_626 sdcard_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow base_typeattr_626 fuse (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow base_typeattr_626 media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow base_typeattr_626 media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow base_typeattr_626 usb_device (chr_file (ioctl read write getattr)))
+(allow base_typeattr_626 usbaccessory_device (chr_file (read write getattr)))
+(allow base_typeattr_625 logd_socket (sock_file (write)))
+(allow base_typeattr_625 logd (unix_stream_socket (connectto)))
+(allow base_typeattr_626 keystore (keystore2_key (delete get_info rebind update use)))
+(allow base_typeattr_626 keystore_maintenance_service (service_manager (find)))
+(allow keystore base_typeattr_626 (dir (search)))
+(allow keystore base_typeattr_626 (file (read open)))
+(allow keystore base_typeattr_626 (process (getattr)))
+(allow base_typeattr_626 apc_service (service_manager (find)))
+(allow base_typeattr_626 keystore_service (service_manager (find)))
+(allow base_typeattr_626 legacykeystore_service (service_manager (find)))
+(allow base_typeattr_626 keystore (binder (call transfer)))
+(allow keystore base_typeattr_626 (binder (transfer)))
+(allow base_typeattr_626 keystore (fd (use)))
+(allow keystore base_typeattr_626 (binder (call transfer)))
+(allow base_typeattr_626 keystore (binder (transfer)))
+(allow keystore base_typeattr_626 (fd (use)))
+(allow credstore base_typeattr_626 (dir (search)))
+(allow credstore base_typeattr_626 (file (read open)))
+(allow credstore base_typeattr_626 (process (getattr)))
+(allow base_typeattr_626 credstore_service (service_manager (find)))
+(allow base_typeattr_626 credstore (binder (call transfer)))
+(allow credstore base_typeattr_626 (binder (transfer)))
+(allow base_typeattr_626 credstore (fd (use)))
+(allow credstore base_typeattr_626 (binder (call transfer)))
+(allow base_typeattr_626 credstore (binder (transfer)))
+(allow credstore base_typeattr_626 (fd (use)))
+(allow base_typeattr_626 pdx_display_client_endpoint_dir_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_626 pdx_display_client_endpoint_socket_type (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow base_typeattr_626 pdx_display_client_endpoint_socket_type (unix_stream_socket (read write shutdown connectto)))
+(allow base_typeattr_626 pdx_display_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow base_typeattr_626 pdx_display_client_server_type (fd (use)))
+(allow pdx_display_client_server_type base_typeattr_626 (fd (use)))
+(allow base_typeattr_626 pdx_display_manager_endpoint_dir_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_626 pdx_display_manager_endpoint_socket_type (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow base_typeattr_626 pdx_display_manager_endpoint_socket_type (unix_stream_socket (read write shutdown connectto)))
+(allow base_typeattr_626 pdx_display_manager_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow base_typeattr_626 pdx_display_manager_server_type (fd (use)))
+(allow pdx_display_manager_server_type base_typeattr_626 (fd (use)))
+(allow base_typeattr_626 pdx_display_vsync_endpoint_dir_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_626 pdx_display_vsync_endpoint_socket_type (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow base_typeattr_626 pdx_display_vsync_endpoint_socket_type (unix_stream_socket (read write shutdown connectto)))
+(allow base_typeattr_626 pdx_display_vsync_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow base_typeattr_626 pdx_display_vsync_server_type (fd (use)))
+(allow pdx_display_vsync_server_type base_typeattr_626 (fd (use)))
+(allow base_typeattr_626 pdx_performance_client_endpoint_dir_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_626 pdx_performance_client_endpoint_socket_type (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow base_typeattr_626 pdx_performance_client_endpoint_socket_type (unix_stream_socket (read write shutdown connectto)))
+(allow base_typeattr_626 pdx_performance_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow base_typeattr_626 pdx_performance_client_server_type (fd (use)))
+(allow pdx_performance_client_server_type base_typeattr_626 (fd (use)))
+(allow base_typeattr_626 pdx_bufferhub_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow base_typeattr_626 pdx_bufferhub_client_server_type (fd (use)))
+(allow pdx_bufferhub_client_server_type base_typeattr_626 (fd (use)))
+(allow base_typeattr_626 tun_device (chr_file (ioctl read write getattr append)))
+(allowx base_typeattr_626 tun_device (ioctl chr_file (0x54d2)))
+(allow appdomain self (process (execmem)))
+(allow appdomain ashmem_device (chr_file (execute)))
+(allow appdomain ashmem_libcutils_device (chr_file (execute)))
+(allow appdomain zygote (fd (use)))
+(allow appdomain app_zygote (fd (use)))
+(allow appdomain zygote_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow appdomain zygote (process (sigchld)))
+(allow appdomain dalvikcache_data_file (dir (getattr search)))
+(allow appdomain dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_627 rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_627 tmpfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_622 tmpfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain zygote (fifo_file (write)))
+(allow appdomain shell (process (sigchld)))
+(allow appdomain adbd (process (sigchld)))
+(allow appdomain devpts (chr_file (ioctl read write getattr)))
+(allow appdomain system_server (fd (use)))
+(allow appdomain system_server (fifo_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow appdomain system_server (unix_stream_socket (read write getattr getopt setopt shutdown)))
+(allow appdomain system_server (tcp_socket (read write getattr getopt shutdown)))
+(allow appdomain vold (fd (use)))
+(allow appdomain appdomain (fifo_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow appdomain surfaceflinger (unix_stream_socket (read write getattr getopt setopt shutdown)))
+(allow base_typeattr_628 app_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow base_typeattr_628 privapp_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow base_typeattr_628 app_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow base_typeattr_628 privapp_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allowx base_typeattr_628 app_data_file (ioctl file (0x6686)))
+(allowx base_typeattr_628 privapp_data_file (ioctl file (0x6686)))
+(allow base_typeattr_627 app_data_file (file (read write getattr map)))
+(allow base_typeattr_627 privapp_data_file (file (read write getattr map)))
+(allow base_typeattr_627 system_app_data_file (file (read write getattr map)))
+(allow appdomain sdk_sandbox_data_file (file (read getattr)))
+(allow appdomain mnt_expand_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain keychain_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain keychain_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain keychain_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain misc_user_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain misc_user_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_382 textclassifier_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_382 textclassifier_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_382 textclassifier_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain oemfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain oemfs (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow appdomain system_file (file (getattr map execute execute_no_trans)))
+(allow appdomain system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain system_file (lnk_file (read getattr open)))
+(allow base_typeattr_382 vendor_file (dir (read open)))
+(allow appdomain vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain vendor_framework_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain vendor_framework_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain vendor_framework_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain vendor_public_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain vendor_public_framework_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain vendor_public_lib_file (file (read getattr map execute open)))
+(allow appdomain vendor_public_framework_file (file (read getattr map execute open)))
+(allow appdomain wallpaper_file (file (read write getattr map)))
+(allow appdomain ringtone_file (file (read write getattr map)))
+(allow appdomain shortcut_manager_icons (file (read getattr map)))
+(allow appdomain icon_file (file (read getattr map)))
+(allow appdomain anr_data_file (dir (search)))
+(allow appdomain anr_data_file (file (append open)))
+(allow appdomain tombstoned_java_trace_socket (sock_file (write)))
+(allow appdomain tombstoned (unix_stream_socket (connectto)))
+(allow appdomain tombstoned (fd (use)))
+(allow appdomain dumpstate (fifo_file (append)))
+(allow appdomain incidentd (fifo_file (append)))
+(allow appdomain dumpstate (fd (use)))
+(allow appdomain dumpstate (unix_stream_socket (read write getattr getopt shutdown)))
+(allow appdomain dumpstate (fifo_file (write getattr)))
+(allow appdomain shell_data_file (file (write getattr)))
+(allow appdomain incidentd (fd (use)))
+(allow appdomain incidentd (fifo_file (write getattr)))
+(allow appdomain statsdw_socket (sock_file (write)))
+(allow appdomain statsd (unix_dgram_socket (sendto)))
+(allow appdomain user_profile_root_file (dir (search)))
+(allow appdomain user_profile_data_file (dir (write lock open add_name remove_name search)))
+(allow appdomain user_profile_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow appdomain traced (fd (use)))
+(allow appdomain traced_tmpfs (file (read write getattr map)))
+(allow appdomain traced_producer_socket (sock_file (write)))
+(allow appdomain traced (unix_stream_socket (connectto)))
+(allow traced appdomain (fd (use)))
+(allow base_typeattr_382 gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow base_typeattr_382 gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow base_typeattr_382 sysfs_gpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain servicemanager (binder (call transfer)))
+(allow servicemanager appdomain (binder (call transfer)))
+(allow servicemanager appdomain (dir (search)))
+(allow servicemanager appdomain (file (read open)))
+(allow servicemanager appdomain (process (getattr)))
+(allow appdomain binderservicedomain (binder (call transfer)))
+(allow binderservicedomain appdomain (binder (transfer)))
+(allow appdomain binderservicedomain (fd (use)))
+(allow appdomain appdomain (binder (call transfer)))
+(allow appdomain appdomain (binder (transfer)))
+(allow appdomain appdomain (fd (use)))
+(allow appdomain ephemeral_app (binder (call transfer)))
+(allow ephemeral_app appdomain (binder (transfer)))
+(allow appdomain ephemeral_app (fd (use)))
+(allow base_typeattr_382 gpuservice (binder (call transfer)))
+(allow gpuservice base_typeattr_382 (binder (transfer)))
+(allow base_typeattr_382 gpuservice (fd (use)))
+(allow appdomain hal_graphics_composer (fd (use)))
+(allow appdomain appdomain (unix_stream_socket (read write getattr getopt shutdown)))
+(allow appdomain backup_data_file (file (read write getattr map)))
+(allow appdomain cache_backup_file (file (read write getattr map)))
+(allow appdomain cache_backup_file (dir (getattr)))
+(allow appdomain system_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain system_data_file (file (read getattr map)))
+(allow base_typeattr_627 media_rw_data_file (file (read getattr)))
+(allow base_typeattr_382 radio_data_file (file (read write getattr)))
+(allow appdomain dalvikcache_data_file (file (execute)))
+(allow appdomain dalvikcache_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain shared_relro_file (dir (search)))
+(allow appdomain shared_relro_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain apk_data_file (dir (ioctl read getattr lock open search)))
+(allow appdomain apk_data_file (file (ioctl read getattr lock map execute open execute_no_trans)))
+(allow appdomain resourcecache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain resourcecache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow appdomain logcat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow appdomain logdr_socket (sock_file (write)))
+(allow appdomain logd (unix_stream_socket (connectto)))
+(allow appdomain zygote (unix_dgram_socket (write)))
+(allow appdomain console_device (chr_file (read write)))
+(allowx base_typeattr_230 self (ioctl tcp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx base_typeattr_230 self (ioctl udp_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx base_typeattr_230 self (ioctl rawip_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(allowx base_typeattr_230 self (ioctl tcp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx base_typeattr_230 self (ioctl udp_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx base_typeattr_230 self (ioctl rawip_socket ((range 0x8906 0x8907) 0x8910 (range 0x8912 0x8913) 0x8915 0x8917 0x8919 0x891b 0x8921 0x8933 0x8938 0x8942)))
+(allowx base_typeattr_230 self (ioctl tcp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx base_typeattr_230 self (ioctl udp_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allowx base_typeattr_230 self (ioctl rawip_socket (0x8b01 0x8b05 0x8b07 0x8b09 0x8b0b 0x8b0d 0x8b0f (range 0x8b11 0x8b13) 0x8b21 0x8b23 0x8b25 0x8b27 0x8b29 0x8b2d)))
+(allow base_typeattr_382 ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_382 dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_382 dmabuf_system_secure_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_382 hal_audio (fd (use)))
+(allow base_typeattr_382 hal_camera (fd (use)))
+(allow base_typeattr_382 hal_tv_tuner_server (fd (use)))
+(allow base_typeattr_382 hal_renderscript_hwservice (hwservice_manager (find)))
+(allow appdomain same_process_hal_file (file (read getattr map execute open)))
+(allow appdomain proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow appdomain app_fuse_file (file (read write getattr append map)))
+(allow appdomain runas_exec (file (getattr)))
+(allow appdomain adbd (unix_stream_socket (connectto)))
+(allow appdomain adbd (fd (use)))
+(allow appdomain adbd (unix_stream_socket (ioctl read write getattr getopt shutdown)))
+(allow appdomain cache_file (dir (getattr)))
+(allow appdomain dropbox_data_file (file (read getattr)))
+(allow appdomain audioserver_tmpfs (file (read write getattr map)))
+(allow appdomain system_server_tmpfs (file (read write getattr map)))
+(allow appdomain zygote_tmpfs (file (read map)))
+;;* lmx 522 system/sepolicy/private/app.te
+
+(neverallow isolated_app_all base_typeattr_629 (file (execute execute_no_trans)))
+(neverallow bluetooth base_typeattr_629 (file (execute execute_no_trans)))
+(neverallow nfc base_typeattr_629 (file (execute execute_no_trans)))
+(neverallow radio base_typeattr_629 (file (execute execute_no_trans)))
+(neverallow shared_relro base_typeattr_629 (file (execute execute_no_trans)))
+(neverallow system_app base_typeattr_629 (file (execute execute_no_trans)))
+(neverallow sdk_sandbox_all base_typeattr_629 (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 531 system/sepolicy/private/app.te
+
+(neverallow appdomain audio_device (chr_file (read write)))
+(neverallow appdomain camera_device (chr_file (read write)))
+(neverallow appdomain dm_device (chr_file (read write)))
+(neverallow appdomain radio_device (chr_file (read write)))
+(neverallow appdomain rpmsg_device (chr_file (read write)))
+;;* lme
+
+;;* lmx 538 system/sepolicy/private/app.te
+
+(neverallow base_typeattr_630 video_device (chr_file (read write)))
+;;* lme
+
+;;* lmx 550 system/sepolicy/private/app.te
+
+(neverallow base_typeattr_631 apk_data_file (dir (watch watch_reads)))
+;;* lme
+
+;;* lmx 558 system/sepolicy/private/app.te
+
+(neverallow base_typeattr_631 apk_data_file (file (watch watch_reads)))
+;;* lme
+
+;;* lmx 20 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 23 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow ephemeral_app kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_compute_app kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_30 kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_29 kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_27 kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_25 kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider_app kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 30 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all base_typeattr_632 (file (read)))
+(neverallow isolated_app_all base_typeattr_632 (file (read)))
+(neverallow ephemeral_app base_typeattr_632 (file (read)))
+(neverallow isolated_app base_typeattr_632 (file (read)))
+(neverallow isolated_compute_app base_typeattr_632 (file (read)))
+(neverallow mediaprovider base_typeattr_632 (file (read)))
+(neverallow untrusted_app base_typeattr_632 (file (read)))
+(neverallow untrusted_app_30 base_typeattr_632 (file (read)))
+(neverallow untrusted_app_29 base_typeattr_632 (file (read)))
+(neverallow untrusted_app_27 base_typeattr_632 (file (read)))
+(neverallow untrusted_app_25 base_typeattr_632 (file (read)))
+(neverallow mediaprovider_app base_typeattr_632 (file (read)))
+;;* lme
+
+;;* lmx 31 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all debugfs_type (file (read)))
+(neverallow untrusted_app_all debugfs_type (lnk_file (read)))
+(neverallow isolated_app_all debugfs_type (file (read)))
+(neverallow isolated_app_all debugfs_type (lnk_file (read)))
+(neverallow ephemeral_app debugfs_type (file (read)))
+(neverallow ephemeral_app debugfs_type (lnk_file (read)))
+(neverallow isolated_app debugfs_type (file (read)))
+(neverallow isolated_app debugfs_type (lnk_file (read)))
+(neverallow isolated_compute_app debugfs_type (file (read)))
+(neverallow isolated_compute_app debugfs_type (lnk_file (read)))
+(neverallow mediaprovider debugfs_type (file (read)))
+(neverallow mediaprovider debugfs_type (lnk_file (read)))
+(neverallow untrusted_app debugfs_type (file (read)))
+(neverallow untrusted_app debugfs_type (lnk_file (read)))
+(neverallow untrusted_app_30 debugfs_type (file (read)))
+(neverallow untrusted_app_30 debugfs_type (lnk_file (read)))
+(neverallow untrusted_app_29 debugfs_type (file (read)))
+(neverallow untrusted_app_29 debugfs_type (lnk_file (read)))
+(neverallow untrusted_app_27 debugfs_type (file (read)))
+(neverallow untrusted_app_27 debugfs_type (lnk_file (read)))
+(neverallow untrusted_app_25 debugfs_type (file (read)))
+(neverallow untrusted_app_25 debugfs_type (lnk_file (read)))
+(neverallow mediaprovider_app debugfs_type (file (read)))
+(neverallow mediaprovider_app debugfs_type (lnk_file (read)))
+;;* lme
+
+;;* lmx 36 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all service_manager_type (service_manager (add)))
+(neverallow isolated_app_all service_manager_type (service_manager (add)))
+(neverallow ephemeral_app service_manager_type (service_manager (add)))
+(neverallow isolated_app service_manager_type (service_manager (add)))
+(neverallow isolated_compute_app service_manager_type (service_manager (add)))
+(neverallow mediaprovider service_manager_type (service_manager (add)))
+(neverallow untrusted_app service_manager_type (service_manager (add)))
+(neverallow untrusted_app_30 service_manager_type (service_manager (add)))
+(neverallow untrusted_app_29 service_manager_type (service_manager (add)))
+(neverallow untrusted_app_27 service_manager_type (service_manager (add)))
+(neverallow untrusted_app_25 service_manager_type (service_manager (add)))
+(neverallow mediaprovider_app service_manager_type (service_manager (add)))
+;;* lme
+
+;;* lmx 39 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow ephemeral_app vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_compute_app vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_30 vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_29 vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_27 vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_25 vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider_app vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 40 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all vndservice_manager_type (service_manager (add find list)))
+(neverallow isolated_app_all vndservice_manager_type (service_manager (add find list)))
+(neverallow ephemeral_app vndservice_manager_type (service_manager (add find list)))
+(neverallow isolated_app vndservice_manager_type (service_manager (add find list)))
+(neverallow isolated_compute_app vndservice_manager_type (service_manager (add find list)))
+(neverallow mediaprovider vndservice_manager_type (service_manager (add find list)))
+(neverallow untrusted_app vndservice_manager_type (service_manager (add find list)))
+(neverallow untrusted_app_30 vndservice_manager_type (service_manager (add find list)))
+(neverallow untrusted_app_29 vndservice_manager_type (service_manager (add find list)))
+(neverallow untrusted_app_27 vndservice_manager_type (service_manager (add find list)))
+(neverallow untrusted_app_25 vndservice_manager_type (service_manager (add find list)))
+(neverallow mediaprovider_app vndservice_manager_type (service_manager (add find list)))
+;;* lme
+
+;;* lmx 44 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_633 property_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_633 init (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 46 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_633 property_type (property_service (set)))
+;;* lme
+
+;;* lmx 49 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all net_dns_prop (file (read)))
+(neverallow isolated_app_all net_dns_prop (file (read)))
+(neverallow ephemeral_app net_dns_prop (file (read)))
+(neverallow isolated_app net_dns_prop (file (read)))
+(neverallow isolated_compute_app net_dns_prop (file (read)))
+(neverallow mediaprovider net_dns_prop (file (read)))
+(neverallow untrusted_app net_dns_prop (file (read)))
+(neverallow untrusted_app_30 net_dns_prop (file (read)))
+(neverallow untrusted_app_29 net_dns_prop (file (read)))
+(neverallow untrusted_app_27 net_dns_prop (file (read)))
+(neverallow untrusted_app_25 net_dns_prop (file (read)))
+(neverallow mediaprovider_app net_dns_prop (file (read)))
+;;* lme
+
+;;* lmx 52 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all radio_cdma_ecm_prop (file (read)))
+(neverallow isolated_app_all radio_cdma_ecm_prop (file (read)))
+(neverallow ephemeral_app radio_cdma_ecm_prop (file (read)))
+(neverallow isolated_app radio_cdma_ecm_prop (file (read)))
+(neverallow isolated_compute_app radio_cdma_ecm_prop (file (read)))
+(neverallow mediaprovider radio_cdma_ecm_prop (file (read)))
+(neverallow untrusted_app radio_cdma_ecm_prop (file (read)))
+(neverallow untrusted_app_30 radio_cdma_ecm_prop (file (read)))
+(neverallow untrusted_app_29 radio_cdma_ecm_prop (file (read)))
+(neverallow untrusted_app_27 radio_cdma_ecm_prop (file (read)))
+(neverallow untrusted_app_25 radio_cdma_ecm_prop (file (read)))
+(neverallow mediaprovider_app radio_cdma_ecm_prop (file (read)))
+;;* lme
+
+;;* lmx 58 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow isolated_app_all app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow ephemeral_app app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow isolated_app app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow isolated_compute_app app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow mediaprovider app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow untrusted_app app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow untrusted_app_30 app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow untrusted_app_29 app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow untrusted_app_27 app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow untrusted_app_25 app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+(neverallow mediaprovider_app app_exec_data_file (file (write create setattr relabelfrom relabelto append link rename)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_634 app_data_file (file (execute_no_trans)))
+(neverallow base_typeattr_634 privapp_data_file (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 78 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_635 dex2oat_exec (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 88 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all mlstrustedsubject (process (fork)))
+(neverallow isolated_app_all mlstrustedsubject (process (fork)))
+(neverallow ephemeral_app mlstrustedsubject (process (fork)))
+(neverallow isolated_app mlstrustedsubject (process (fork)))
+(neverallow isolated_compute_app mlstrustedsubject (process (fork)))
+(neverallow mediaprovider mlstrustedsubject (process (fork)))
+(neverallow untrusted_app mlstrustedsubject (process (fork)))
+(neverallow untrusted_app_30 mlstrustedsubject (process (fork)))
+(neverallow untrusted_app_29 mlstrustedsubject (process (fork)))
+(neverallow untrusted_app_27 mlstrustedsubject (process (fork)))
+(neverallow untrusted_app_25 mlstrustedsubject (process (fork)))
+(neverallow mediaprovider_app mlstrustedsubject (process (fork)))
+;;* lme
+
+;;* lmx 96 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all file_type (file (link)))
+(neverallow isolated_app_all file_type (file (link)))
+(neverallow ephemeral_app file_type (file (link)))
+(neverallow isolated_app file_type (file (link)))
+(neverallow isolated_compute_app file_type (file (link)))
+(neverallow mediaprovider file_type (file (link)))
+(neverallow untrusted_app file_type (file (link)))
+(neverallow untrusted_app_30 file_type (file (link)))
+(neverallow untrusted_app_29 file_type (file (link)))
+(neverallow untrusted_app_27 file_type (file (link)))
+(neverallow untrusted_app_25 file_type (file (link)))
+(neverallow mediaprovider_app file_type (file (link)))
+;;* lme
+
+;;* lmx 99 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow ephemeral_app sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_compute_app sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_30 sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_29 sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_27 sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_25 sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider_app sysfs_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 102 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow isolated_app_all sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow ephemeral_app sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow isolated_app sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow isolated_compute_app sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow mediaprovider sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow untrusted_app sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow untrusted_app_30 sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow untrusted_app_29 sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow untrusted_app_27 sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow untrusted_app_25 sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+(neverallow mediaprovider_app sysfs_type (file (write create setattr relabelfrom append unlink link rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 105 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow ephemeral_app sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_compute_app sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_30 sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_29 sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_27 sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_25 sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider_app sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 109 system/sepolicy/private/app_neverallows.te
+
+(neverallowx untrusted_app_all domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_all domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_all domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_all domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx isolated_app_all domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx isolated_app_all domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx isolated_app_all domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx isolated_app_all domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx ephemeral_app domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx ephemeral_app domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx ephemeral_app domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx ephemeral_app domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx isolated_app domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx isolated_app domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx isolated_app domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx isolated_app domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx isolated_compute_app domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx isolated_compute_app domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx isolated_compute_app domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx isolated_compute_app domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx mediaprovider domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx mediaprovider domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx mediaprovider domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx mediaprovider domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx untrusted_app domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_30 domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_30 domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_30 domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_30 domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_29 domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_29 domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_29 domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_29 domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_27 domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_27 domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_27 domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_27 domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_25 domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_25 domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_25 domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx untrusted_app_25 domain (ioctl icmp_socket (0x6900 0x6902)))
+(neverallowx mediaprovider_app domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx mediaprovider_app domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx mediaprovider_app domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx mediaprovider_app domain (ioctl icmp_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 109 system/sepolicy/private/app_neverallows.te
+
+(neverallowx untrusted_app_all domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_all domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_all domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_all domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app_all domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app_all domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app_all domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app_all domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx ephemeral_app domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx ephemeral_app domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx ephemeral_app domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx ephemeral_app domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_app domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_compute_app domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_compute_app domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_compute_app domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx isolated_compute_app domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_30 domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_30 domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_30 domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_30 domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_29 domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_29 domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_29 domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_29 domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_27 domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_27 domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_27 domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_27 domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_25 domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_25 domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_25 domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx untrusted_app_25 domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider_app domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider_app domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider_app domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediaprovider_app domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 109 system/sepolicy/private/app_neverallows.te
+
+(neverallowx untrusted_app_all domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_all domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_all domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_all domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app_all domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app_all domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app_all domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app_all domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx ephemeral_app domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx ephemeral_app domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx ephemeral_app domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx ephemeral_app domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_app domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_compute_app domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_compute_app domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_compute_app domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx isolated_compute_app domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_30 domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_30 domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_30 domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_30 domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_29 domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_29 domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_29 domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_29 domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_27 domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_27 domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_27 domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_27 domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_25 domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_25 domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_25 domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx untrusted_app_25 domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider_app domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider_app domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider_app domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediaprovider_app domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+;;* lmx 110 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow isolated_app base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow isolated_app base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow mediaprovider base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow mediaprovider base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow untrusted_app base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow untrusted_app base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_selinux_socket (ioctl)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_selinux_socket (ioctl)))
+;;* lme
+
+;;* lmx 123 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow untrusted_app_all base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_all base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow isolated_app_all base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow ephemeral_app base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow isolated_app base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow isolated_app base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow isolated_app base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow isolated_app base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow isolated_app base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow isolated_compute_app base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow mediaprovider base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow mediaprovider base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow mediaprovider base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow mediaprovider base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow mediaprovider base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow untrusted_app base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow untrusted_app base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow untrusted_app base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow untrusted_app_30 base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow untrusted_app_29 base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow untrusted_app_27 base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow untrusted_app_25 base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow mediaprovider_app base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 128 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app_all base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow ephemeral_app base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_app base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow isolated_compute_app base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_30 base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_29 base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_27 base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow untrusted_app_25 base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+(neverallow mediaprovider_app base_typeattr_224 (vsock_socket (ioctl create setattr lock relabelfrom relabelto append map bind connect listen accept setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 131 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow isolated_app_all domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow ephemeral_app domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow isolated_app domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow isolated_compute_app domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow mediaprovider domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow untrusted_app domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow untrusted_app_30 domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow untrusted_app_29 domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow untrusted_app_27 domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow untrusted_app_25 domain (netlink_route_socket (bind nlmsg_readpriv)))
+(neverallow mediaprovider_app domain (netlink_route_socket (bind nlmsg_readpriv)))
+;;* lme
+
+;;* lmx 132 system/sepolicy/private/app_neverallows.te
+
+(neverallow priv_app domain (netlink_route_socket (bind nlmsg_readpriv)))
+;;* lme
+
+;;* lmx 141 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_636 domain (netlink_route_socket (nlmsg_getneigh)))
+;;* lme
+
+;;* lmx 144 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_633 cache_file (dir (write create setattr relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm add_name remove_name reparent rmdir)))
+(neverallow base_typeattr_633 cache_recovery_file (dir (write create setattr relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 145 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_633 cache_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_633 cache_recovery_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 167 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_633 base_typeattr_637 (file (create unlink)))
+(neverallow base_typeattr_633 base_typeattr_637 (dir (create unlink)))
+(neverallow base_typeattr_633 base_typeattr_637 (lnk_file (create unlink)))
+(neverallow base_typeattr_633 base_typeattr_637 (chr_file (create unlink)))
+(neverallow base_typeattr_633 base_typeattr_637 (blk_file (create unlink)))
+(neverallow base_typeattr_633 base_typeattr_637 (sock_file (create unlink)))
+(neverallow base_typeattr_633 base_typeattr_637 (fifo_file (create unlink)))
+;;* lme
+
+;;* lmx 170 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_638 fuse_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 173 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all tun_device (chr_file (open)))
+(neverallow isolated_app_all tun_device (chr_file (open)))
+(neverallow ephemeral_app tun_device (chr_file (open)))
+(neverallow isolated_app tun_device (chr_file (open)))
+(neverallow isolated_compute_app tun_device (chr_file (open)))
+(neverallow mediaprovider tun_device (chr_file (open)))
+(neverallow untrusted_app tun_device (chr_file (open)))
+(neverallow untrusted_app_30 tun_device (chr_file (open)))
+(neverallow untrusted_app_29 tun_device (chr_file (open)))
+(neverallow untrusted_app_27 tun_device (chr_file (open)))
+(neverallow untrusted_app_25 tun_device (chr_file (open)))
+(neverallow mediaprovider_app tun_device (chr_file (open)))
+;;* lme
+
+;;* lmx 177 system/sepolicy/private/app_neverallows.te
+
+(neverallowx untrusted_app_all tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx isolated_app_all tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx ephemeral_app tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx isolated_app tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx isolated_compute_app tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx mediaprovider tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx untrusted_app tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx untrusted_app_30 tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx untrusted_app_29 tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx untrusted_app_27 tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx untrusted_app_25 tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+(neverallowx mediaprovider_app tun_device (ioctl chr_file ((range 0x0 0x53ff) (range 0x5500 0xffff))))
+;;* lme
+
+;;* lmx 177 system/sepolicy/private/app_neverallows.te
+
+(neverallowx untrusted_app_all tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx isolated_app_all tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx ephemeral_app tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx isolated_app tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx isolated_compute_app tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx mediaprovider tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx untrusted_app tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx untrusted_app_30 tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx untrusted_app_29 tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx untrusted_app_27 tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx untrusted_app_25 tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+(neverallowx mediaprovider_app tun_device (ioctl chr_file ((range 0x5400 0x544f) (range 0x5452 0x54d1) (range 0x54d3 0x54ff))))
+;;* lme
+
+;;* lmx 180 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow ephemeral_app anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_compute_app anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_30 anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_29 anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_27 anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_25 anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider_app anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 181 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow isolated_app_all anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow ephemeral_app anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow isolated_app anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow isolated_compute_app anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow mediaprovider anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow untrusted_app anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow untrusted_app_30 anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow untrusted_app_29 anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow untrusted_app_27 anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow untrusted_app_25 anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow mediaprovider_app anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 199 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_all proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_asound (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_kmsg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_loadavg (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_mounts (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_pagetypeinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_slabinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_stat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_swaps (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_uptime (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_version (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_vmallocinfo (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app proc_vmstat (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 203 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_638 proc_filesystems (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 206 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app_all config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow ephemeral_app config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_app config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow isolated_compute_app config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_30 config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_29 config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_27 config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow untrusted_app_25 config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+(neverallow mediaprovider_app config_gz (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 209 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow ephemeral_app preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_compute_app preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_30 preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_29 preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_27 preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_25 preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider_app preloads_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 213 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all system_file (file (lock)))
+(neverallow isolated_app_all system_file (file (lock)))
+(neverallow ephemeral_app system_file (file (lock)))
+(neverallow isolated_app system_file (file (lock)))
+(neverallow isolated_compute_app system_file (file (lock)))
+(neverallow mediaprovider system_file (file (lock)))
+(neverallow untrusted_app system_file (file (lock)))
+(neverallow untrusted_app_30 system_file (file (lock)))
+(neverallow untrusted_app_29 system_file (file (lock)))
+(neverallow untrusted_app_27 system_file (file (lock)))
+(neverallow untrusted_app_25 system_file (file (lock)))
+(neverallow mediaprovider_app system_file (file (lock)))
+;;* lme
+
+;;* lmx 217 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all base_typeattr_224 (hwservice_manager (add list)))
+(neverallow isolated_app_all base_typeattr_224 (hwservice_manager (add list)))
+(neverallow ephemeral_app base_typeattr_224 (hwservice_manager (add list)))
+(neverallow isolated_app base_typeattr_224 (hwservice_manager (add list)))
+(neverallow isolated_compute_app base_typeattr_224 (hwservice_manager (add list)))
+(neverallow mediaprovider base_typeattr_224 (hwservice_manager (add list)))
+(neverallow untrusted_app base_typeattr_224 (hwservice_manager (add list)))
+(neverallow untrusted_app_30 base_typeattr_224 (hwservice_manager (add list)))
+(neverallow untrusted_app_29 base_typeattr_224 (hwservice_manager (add list)))
+(neverallow untrusted_app_27 base_typeattr_224 (hwservice_manager (add list)))
+(neverallow untrusted_app_25 base_typeattr_224 (hwservice_manager (add list)))
+(neverallow mediaprovider_app base_typeattr_224 (hwservice_manager (add list)))
+;;* lme
+
+;;* lmx 232 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all protected_hwservice (hwservice_manager (find)))
+(neverallow isolated_app_all protected_hwservice (hwservice_manager (find)))
+(neverallow ephemeral_app protected_hwservice (hwservice_manager (find)))
+(neverallow isolated_app protected_hwservice (hwservice_manager (find)))
+(neverallow isolated_compute_app protected_hwservice (hwservice_manager (find)))
+(neverallow mediaprovider protected_hwservice (hwservice_manager (find)))
+(neverallow untrusted_app protected_hwservice (hwservice_manager (find)))
+(neverallow untrusted_app_30 protected_hwservice (hwservice_manager (find)))
+(neverallow untrusted_app_29 protected_hwservice (hwservice_manager (find)))
+(neverallow untrusted_app_27 protected_hwservice (hwservice_manager (find)))
+(neverallow untrusted_app_25 protected_hwservice (hwservice_manager (find)))
+(neverallow mediaprovider_app protected_hwservice (hwservice_manager (find)))
+;;* lme
+
+;;* lmx 233 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all protected_service (service_manager (find)))
+(neverallow isolated_app_all protected_service (service_manager (find)))
+(neverallow ephemeral_app protected_service (service_manager (find)))
+(neverallow isolated_app protected_service (service_manager (find)))
+(neverallow isolated_compute_app protected_service (service_manager (find)))
+(neverallow mediaprovider protected_service (service_manager (find)))
+(neverallow untrusted_app protected_service (service_manager (find)))
+(neverallow untrusted_app_30 protected_service (service_manager (find)))
+(neverallow untrusted_app_29 protected_service (service_manager (find)))
+(neverallow untrusted_app_27 protected_service (service_manager (find)))
+(neverallow untrusted_app_25 protected_service (service_manager (find)))
+(neverallow mediaprovider_app protected_service (service_manager (find)))
+;;* lme
+
+;;* lmx 236 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow ephemeral_app selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_compute_app selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_30 selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_29 selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_27 selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_25 selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider_app selinuxfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 243 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_639 proc_tty_drivers (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 244 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow isolated_app_all proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow ephemeral_app proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow isolated_app proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow isolated_compute_app proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow mediaprovider proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow untrusted_app proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow untrusted_app_30 proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow untrusted_app_29 proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow untrusted_app_27 proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow untrusted_app_25 proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow mediaprovider_app proc_tty_drivers (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 247 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow ephemeral_app cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_compute_app cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_30 cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_29 cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_27 cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_25 cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider_app cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 248 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow ephemeral_app cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_compute_app cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_30 cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_29 cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_27 cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_25 cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider_app cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 256 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_635 mnt_sdcard_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 259 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all incident_service (service_manager (find)))
+(neverallow isolated_app_all incident_service (service_manager (find)))
+(neverallow ephemeral_app incident_service (service_manager (find)))
+(neverallow isolated_app incident_service (service_manager (find)))
+(neverallow isolated_compute_app incident_service (service_manager (find)))
+(neverallow mediaprovider incident_service (service_manager (find)))
+(neverallow untrusted_app incident_service (service_manager (find)))
+(neverallow untrusted_app_30 incident_service (service_manager (find)))
+(neverallow untrusted_app_29 incident_service (service_manager (find)))
+(neverallow untrusted_app_27 incident_service (service_manager (find)))
+(neverallow untrusted_app_25 incident_service (service_manager (find)))
+(neverallow mediaprovider_app incident_service (service_manager (find)))
+;;* lme
+
+;;* lmx 262 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all stats_service (service_manager (find)))
+(neverallow isolated_app_all stats_service (service_manager (find)))
+(neverallow ephemeral_app stats_service (service_manager (find)))
+(neverallow isolated_app stats_service (service_manager (find)))
+(neverallow isolated_compute_app stats_service (service_manager (find)))
+(neverallow mediaprovider stats_service (service_manager (find)))
+(neverallow untrusted_app stats_service (service_manager (find)))
+(neverallow untrusted_app_30 stats_service (service_manager (find)))
+(neverallow untrusted_app_29 stats_service (service_manager (find)))
+(neverallow untrusted_app_27 stats_service (service_manager (find)))
+(neverallow untrusted_app_25 stats_service (service_manager (find)))
+(neverallow mediaprovider_app stats_service (service_manager (find)))
+;;* lme
+
+;;* lmx 272 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_640 userdebug_or_eng_prop (file (read)))
+;;* lme
+
+;;* lmx 286 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_641 mdnsd_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 294 system/sepolicy/private/app_neverallows.te
+
+(neverallow base_typeattr_641 mdnsd (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 300 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow ephemeral_app domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_compute_app domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_30 domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_29 domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_27 domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow untrusted_app_25 domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow mediaprovider_app domain (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 303 system/sepolicy/private/app_neverallows.te
+
+(neverallow untrusted_app_all hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow ephemeral_app hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_compute_app hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_30 hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_29 hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_27 hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow untrusted_app_25 hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow mediaprovider_app hidraw_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(typetransition app_zygote tmpfs file app_zygote_tmpfs)
+(allow app_zygote app_zygote_tmpfs (file (read write getattr map)))
+(allow app_zygote self (capability (setgid setuid)))
+(allow app_zygote self (cap_userns (setgid setuid)))
+(allow app_zygote self (capability (setpcap)))
+(allow app_zygote self (cap_userns (setpcap)))
+(allow app_zygote self (process (setcurrent)))
+(allow app_zygote isolated_app (process (dyntransition)))
+(allow app_zygote self (process (execmem)))
+(allow app_zygote app_zygote_tmpfs (file (execute)))
+(allow app_zygote debugfs_trace_marker (file (getattr)))
+(allow app_zygote system_server (process (getpgid)))
+(allow app_zygote isolated_app (process (setpgid)))
+(dontaudit app_zygote mnt_expand_file (dir (getattr)))
+(allow app_zygote seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow app_zygote selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote selinuxfs (file (write lock append map open)))
+(allow app_zygote kernel (security (check_context)))
+(allow app_zygote selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow app_zygote selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote selinuxfs (file (write lock append map open)))
+(allow app_zygote kernel (security (compute_av)))
+(allow app_zygote self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow app_zygote zygote_tmpfs (file (read getattr)))
+(allow app_zygote zygote (fd (use)))
+(allow app_zygote zygote (process (sigchld)))
+(allow app_zygote dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow app_zygote dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote dalvikcache_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote dalvikcache_data_file (file (execute)))
+(allow app_zygote app_zygote_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su app_zygote_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 63 system/sepolicy/private/app_zygote.te
+
+(neverallow base_typeattr_642 app_zygote_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow app_zygote apex_module_data_file (dir (search)))
+(allow app_zygote apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow app_zygote apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote apex_art_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow app_zygote apk_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow app_zygote oemfs (dir (search)))
+(allow app_zygote vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow app_zygote vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote vendor_apex_metadata_file (dir (getattr search)))
+(allow app_zygote system_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote system_data_file (file (read getattr map)))
+(allow app_zygote system_unsolzygote_socket (sock_file (write)))
+(allow app_zygote system_server (unix_dgram_socket (sendto)))
+(allow app_zygote device_config_runtime_native_prop (file (read getattr map open)))
+(allow app_zygote device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow app_zygote odsign_prop (file (read getattr map open)))
+(allow app_zygote resourcecache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow app_zygote resourcecache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+;;* lmx 105 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote base_typeattr_643 (process (dyntransition)))
+;;* lme
+
+;;* lmx 108 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote base_typeattr_644 (process (transition)))
+;;* lme
+
+;;* lmx 112 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote base_typeattr_224 (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 116 system/sepolicy/private/app_zygote.te
+
+(neverallow base_typeattr_645 app_zygote (process (dyntransition)))
+;;* lme
+
+;;* lmx 119 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote property_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 120 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote property_type (property_service (set)))
+;;* lme
+
+;;* lmx 123 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote app_data_file_type (file (ioctl read write getattr lock append map execute open watch watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 129 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote base_typeattr_646 (service_manager (find)))
+;;* lme
+
+;;* lmx 132 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote gpu_device (chr_file (ioctl read write getattr lock append map execute open watch watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 135 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote cache_file (dir (write create setattr relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 136 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote cache_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 152 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote domain (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+(neverallow app_zygote domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow app_zygote domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow app_zygote domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_route_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_readpriv nlmsg_getneigh)))
+(neverallow app_zygote domain (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow app_zygote domain (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow app_zygote domain (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow app_zygote domain (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow app_zygote domain (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow app_zygote domain (icmp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow app_zygote domain (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (vsock_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow app_zygote domain (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 163 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote base_typeattr_647 (unix_dgram_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 170 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote base_typeattr_648 (unix_stream_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind connectto)))
+;;* lme
+
+;;* lmx 173 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote base_typeattr_224 (process (ptrace)))
+;;* lme
+
+;;* lmx 182 system/sepolicy/private/app_zygote.te
+
+(neverallow app_zygote bluetooth_a2dp_offload_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow app_zygote bluetooth_audio_hal_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow app_zygote bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow app_zygote exported_bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+;;* lme
+
+(allow init art_boot_exec (file (read getattr map execute open)))
+(allow init art_boot (process (transition)))
+(allow art_boot art_boot_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init art_boot (process (noatsecure)))
+(allow init art_boot (process (siginh rlimitinh)))
+(typetransition init art_boot_exec process art_boot)
+(allow art_boot device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow art_boot device_config_runtime_native_prop (file (read getattr map open)))
+(allow art_boot property_socket (sock_file (write)))
+(allow art_boot init (unix_stream_socket (connectto)))
+(allow art_boot dalvik_config_prop_type (property_service (set)))
+(allow art_boot dalvik_config_prop_type (file (read getattr map open)))
+(allow artd servicemanager (binder (call transfer)))
+(allow servicemanager artd (binder (call transfer)))
+(allow servicemanager artd (dir (search)))
+(allow servicemanager artd (file (read open)))
+(allow servicemanager artd (process (getattr)))
+(allow artd artd_service (service_manager (add find)))
+;;* lmx 9 system/sepolicy/private/artd.te
+
+(neverallow base_typeattr_649 artd_service (service_manager (add)))
+;;* lme
+
+(allow artd artd_pre_reboot_service (service_manager (add find)))
+;;* lmx 10 system/sepolicy/private/artd.te
+
+(neverallow base_typeattr_649 artd_pre_reboot_service (service_manager (add)))
+;;* lme
+
+(allow artd dumpstate (fifo_file (write getattr)))
+(allow artd dumpstate (fd (use)))
+(allow init artd_exec (file (read getattr map execute open)))
+(allow init artd (process (transition)))
+(allow artd artd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init artd (process (noatsecure)))
+(allow init artd (process (siginh rlimitinh)))
+(typetransition init artd_exec process artd)
+(allow artd device_config_runtime_native_prop (file (read getattr map open)))
+(allow artd device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow artd odsign_prop (file (read getattr map open)))
+(typetransition artd tmpfs file artd_tmpfs)
+(allow artd artd_tmpfs (file (read write getattr map)))
+(allow artd artd_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su artd_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 32 system/sepolicy/private/artd.te
+
+(neverallow base_typeattr_649 artd_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow artd mnt_expand_file (dir (getattr search)))
+(allow artd apk_data_file (dir (ioctl read write create getattr setattr lock relabelfrom open watch watch_reads add_name remove_name search)))
+(allow artd apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd oemfs (dir (getattr search)))
+(allow artd vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd vendor_apex_metadata_file (dir (getattr search)))
+(allow artd vendor_framework_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd vendor_framework_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd vendor_framework_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd dalvikcache_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow artd dalvikcache_data_file (file (ioctl read write create getattr setattr lock relabelto append map unlink rename open watch watch_reads)))
+(allow artd apex_module_data_file (dir (getattr search)))
+(allow artd apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd apex_art_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd self (capability (chown dac_override dac_read_search fowner)))
+(allow artd self (cap_userns (chown dac_override dac_read_search fowner)))
+(allow artd user_profile_root_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd user_profile_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow artd user_profile_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow artd app_data_file_type (dir (ioctl read write create getattr setattr lock relabelfrom relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow artd app_data_file_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink rename open watch watch_reads)))
+(allow artd privapp_data_file (lnk_file (read getattr)))
+(allow artd file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd selinuxfs (file (write lock append map open)))
+(allow artd kernel (security (check_context)))
+(allow artd rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd system_data_root_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd tmpfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd mnt_expand_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd system_userdir_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd system_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+;;* lmx 127 system/sepolicy/private/artd.te
+
+(neverallow artd base_typeattr_650 (file (execute_no_trans)))
+;;* lme
+
+(allow artd art_exec_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow artd profman_exec (file (read getattr map execute open)))
+(allow artd profman (process (transition)))
+(allow profman profman_exec (file (read getattr map execute open entrypoint)))
+(allow profman artd (process (sigchld)))
+(dontaudit artd profman (process (noatsecure)))
+(allow artd profman (process (siginh rlimitinh)))
+(typetransition artd profman_exec process profman)
+(allow artd dex2oat_exec (file (read getattr map execute open)))
+(allow artd dex2oat (process (transition)))
+(allow dex2oat dex2oat_exec (file (read getattr map execute open entrypoint)))
+(allow dex2oat artd (process (sigchld)))
+(dontaudit artd dex2oat (process (noatsecure)))
+(allow artd dex2oat (process (siginh rlimitinh)))
+(typetransition artd dex2oat_exec process dex2oat)
+(allow artd profman (process (sigkill)))
+(allow artd dex2oat (process (sigkill)))
+(allow artd profman (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd profman (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd profman (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd dex2oat (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow artd dex2oat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd dex2oat (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow artd artd_tmpfs (file (open)))
+(allow atrace boottrace_data_file (dir (search)))
+(allow atrace boottrace_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow atrace debugfs_tracing (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow atrace debugfs_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow atrace debugfs_trace_marker (file (getattr)))
+(allow atrace traced_probes (fd (use)))
+(allow atrace traced_probes (fifo_file (write getattr)))
+(allow atrace property_socket (sock_file (write)))
+(allow atrace init (unix_stream_socket (connectto)))
+(allow atrace debug_prop (property_service (set)))
+(allow atrace debug_prop (file (read getattr map open)))
+(allow atrace base_typeattr_651 (service_manager (find)))
+(allow atrace servicemanager (service_manager (list)))
+(allow atrace servicemanager (binder (call transfer)))
+(allow servicemanager atrace (binder (call transfer)))
+(allow servicemanager atrace (dir (search)))
+(allow servicemanager atrace (file (read open)))
+(allow servicemanager atrace (process (getattr)))
+(allow atrace surfaceflinger (binder (call)))
+(allow atrace system_server (binder (call)))
+(allow atrace cameraserver (binder (call)))
+(dontaudit atrace hwservice_manager_type (hwservice_manager (find)))
+(dontaudit atrace service_manager_type (service_manager (find)))
+(dontaudit atrace domain (binder (call)))
+(allow atrace hwservicemanager_prop (file (read getattr map open)))
+(dontaudit atrace debugfs_tracing_debug (file (audit_access)))
+(allow init audioserver_exec (file (read getattr map execute open)))
+(allow init audioserver (process (transition)))
+(allow audioserver audioserver_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init audioserver (process (noatsecure)))
+(allow init audioserver (process (siginh rlimitinh)))
+(typetransition init audioserver_exec process audioserver)
+(typetransition audioserver tmpfs file audioserver_tmpfs)
+(allow audioserver audioserver_tmpfs (file (read write getattr map)))
+(allow audioserver sdcard_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow audioserver sdcard_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow audioserver sdcard_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow audioserver fuse (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow audioserver fuse (file (ioctl read getattr lock map open watch watch_reads)))
+(allow audioserver fuse (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow audioserver servicemanager (binder (call transfer)))
+(allow servicemanager audioserver (binder (call transfer)))
+(allow servicemanager audioserver (dir (search)))
+(allow servicemanager audioserver (file (read open)))
+(allow servicemanager audioserver (process (getattr)))
+(allow audioserver binderservicedomain (binder (call transfer)))
+(allow binderservicedomain audioserver (binder (transfer)))
+(allow audioserver binderservicedomain (fd (use)))
+(allow audioserver appdomain (binder (call transfer)))
+(allow appdomain audioserver (binder (transfer)))
+(allow audioserver appdomain (fd (use)))
+(allow audioserver system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow audioserver system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow audioserver system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow audioserver audioserver_service (service_manager (add find)))
+;;* lmx 33 system/sepolicy/private/audioserver.te
+
+(neverallow base_typeattr_652 audioserver_service (service_manager (add)))
+;;* lme
+
+(allow audioserver activity_service (service_manager (find)))
+(allow audioserver appops_service (service_manager (find)))
+(allow audioserver batterystats_service (service_manager (find)))
+(allow audioserver external_vibrator_service (service_manager (find)))
+(allow audioserver package_native_service (service_manager (find)))
+(allow audioserver permission_service (service_manager (find)))
+(allow audioserver permission_checker_service (service_manager (find)))
+(allow audioserver power_service (service_manager (find)))
+(allow audioserver scheduling_policy_service (service_manager (find)))
+(allow audioserver mediametrics_service (service_manager (find)))
+(allow audioserver sensor_privacy_service (service_manager (find)))
+(allow audioserver soundtrigger_middleware_service (service_manager (find)))
+(allow audioserver audio_service (service_manager (find)))
+(allow audioserver property_socket (sock_file (write)))
+(allow audioserver init (unix_stream_socket (connectto)))
+(allow audioserver bluetooth_a2dp_offload_prop (property_service (set)))
+(allow audioserver bluetooth_a2dp_offload_prop (file (read getattr map open)))
+(allow audioserver property_socket (sock_file (write)))
+(allow audioserver init (unix_stream_socket (connectto)))
+(allow audioserver bluetooth_audio_hal_prop (property_service (set)))
+(allow audioserver bluetooth_audio_hal_prop (file (read getattr map open)))
+(allow audioserver property_socket (sock_file (write)))
+(allow audioserver init (unix_stream_socket (connectto)))
+(allow audioserver bluetooth_prop (property_service (set)))
+(allow audioserver bluetooth_prop (file (read getattr map open)))
+(allow audioserver property_socket (sock_file (write)))
+(allow audioserver init (unix_stream_socket (connectto)))
+(allow audioserver exported_bluetooth_prop (property_service (set)))
+(allow audioserver exported_bluetooth_prop (file (read getattr map open)))
+(allow audioserver audio_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name search)))
+(allow audioserver audio_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow audioserver audio_device (chr_file (read write)))
+(allow audioserver bluetooth_socket (sock_file (write)))
+(allow audioserver bluetooth (unix_stream_socket (connectto)))
+(allow audioserver adbd (fd (use)))
+(allow audioserver adbd (unix_stream_socket (read write)))
+(allow audioserver shell (fifo_file (read write)))
+(allow audioserver property_socket (sock_file (write)))
+(allow audioserver init (unix_stream_socket (connectto)))
+(allow audioserver log_tag_prop (property_service (set)))
+(allow audioserver log_tag_prop (file (read getattr map open)))
+;;* lmx 88 system/sepolicy/private/audioserver.te
+
+(neverallow audioserver fs_type (file (execute_no_trans)))
+(neverallow audioserver file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 100 system/sepolicy/private/audioserver.te
+
+(neverallow audioserver domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow audioserver domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 101 system/sepolicy/private/audioserver.te
+
+(neverallow audioserver domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+(allow audioserver sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow audioserver self (capability2 (block_suspend)))
+(allow audioserver self (cap2_userns (block_suspend)))
+(allow audioserver system_suspend_server (binder (call transfer)))
+(allow system_suspend_server audioserver (binder (transfer)))
+(allow audioserver system_suspend_server (fd (use)))
+(allow audioserver system_suspend_hwservice (hwservice_manager (find)))
+(allow audioserver hwservicemanager (binder (call transfer)))
+(allow hwservicemanager audioserver (binder (call transfer)))
+(allow hwservicemanager audioserver (dir (search)))
+(allow hwservicemanager audioserver (file (read map open)))
+(allow hwservicemanager audioserver (process (getattr)))
+(allow audioserver hwservicemanager_prop (file (read getattr map open)))
+(allow audioserver hidl_manager_hwservice (hwservice_manager (find)))
+(allow audioserver hal_system_suspend_service (service_manager (find)))
+(allow audioserver servicemanager (binder (call transfer)))
+(allow servicemanager audioserver (binder (call transfer)))
+(allow servicemanager audioserver (dir (search)))
+(allow servicemanager audioserver (file (read open)))
+(allow servicemanager audioserver (process (getattr)))
+(allow audioserver audio_config_prop (file (read getattr map open)))
+(allow audioserver system_audio_config_prop (file (read getattr map open)))
+(allow init auditctl_exec (file (read getattr map execute open)))
+(allow init auditctl (process (transition)))
+(allow auditctl auditctl_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init auditctl (process (noatsecure)))
+(allow init auditctl (process (siginh rlimitinh)))
+(typetransition init auditctl_exec process auditctl)
+(allow auditctl self (capability (audit_control)))
+(allow auditctl self (cap_userns (audit_control)))
+(allow auditctl self (netlink_audit_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_write)))
+(allow automotive_display_service fwk_automotive_display_hwservice (hwservice_manager (add find)))
+(allow automotive_display_service hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 8 system/sepolicy/private/automotive_display_service.te
+
+(neverallow base_typeattr_653 fwk_automotive_display_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow init automotive_display_service_exec (file (read getattr map execute open)))
+(allow init automotive_display_service (process (transition)))
+(allow automotive_display_service automotive_display_service_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init automotive_display_service (process (noatsecure)))
+(allow init automotive_display_service (process (siginh rlimitinh)))
+(typetransition init automotive_display_service_exec process automotive_display_service)
+(allow automotive_display_service servicemanager (binder (call transfer)))
+(allow servicemanager automotive_display_service (binder (call transfer)))
+(allow servicemanager automotive_display_service (dir (search)))
+(allow servicemanager automotive_display_service (file (read open)))
+(allow servicemanager automotive_display_service (process (getattr)))
+(allow automotive_display_service hwservicemanager (binder (call transfer)))
+(allow hwservicemanager automotive_display_service (binder (call transfer)))
+(allow hwservicemanager automotive_display_service (dir (search)))
+(allow hwservicemanager automotive_display_service (file (read map open)))
+(allow hwservicemanager automotive_display_service (process (getattr)))
+(allow automotive_display_service hwservicemanager_prop (file (read getattr map open)))
+(allow automotive_display_service surfaceflinger_service (service_manager (find)))
+(allow automotive_display_service surfaceflinger (binder (call transfer)))
+(allow surfaceflinger automotive_display_service (binder (transfer)))
+(allow automotive_display_service surfaceflinger (fd (use)))
+(allow automotive_display_service hal_graphics_mapper_hwservice (hwservice_manager (find)))
+(allow automotive_display_service hidl_token_hwservice (hwservice_manager (find)))
+(allow automotive_display_service gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow automotive_display_service gpu_device (dir (search)))
+(allow automotive_display_service fwk_automotive_display_service (service_manager (add find)))
+;;* lmx 41 system/sepolicy/private/automotive_display_service.te
+
+(neverallow base_typeattr_653 fwk_automotive_display_service (service_manager (add)))
+;;* lme
+
+(allow automotive_display_service hal_evs (binder (call transfer)))
+(allow hal_evs automotive_display_service (binder (transfer)))
+(allow automotive_display_service hal_evs (fd (use)))
+(allow binderservicedomain dumpstate (fd (use)))
+(allow binderservicedomain incidentd (fd (use)))
+(allow binderservicedomain dumpstate (unix_stream_socket (read write getattr getopt)))
+(allow binderservicedomain incidentd (unix_stream_socket (read write getattr getopt)))
+(allow binderservicedomain dumpstate (fifo_file (write getattr)))
+(allow binderservicedomain incidentd (fifo_file (write getattr)))
+(allow binderservicedomain shell_data_file (file (write getattr)))
+(allow binderservicedomain devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow binderservicedomain console_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow binderservicedomain appdomain (fd (use)))
+(allow binderservicedomain appdomain (fifo_file (write)))
+(allow binderservicedomain permission_service (service_manager (find)))
+(allow binderservicedomain keystore (keystore2_key (delete get_info rebind use)))
+(allow keystore binderservicedomain (dir (search)))
+(allow keystore binderservicedomain (file (read open)))
+(allow keystore binderservicedomain (process (getattr)))
+(allow binderservicedomain apc_service (service_manager (find)))
+(allow binderservicedomain keystore_service (service_manager (find)))
+(allow binderservicedomain legacykeystore_service (service_manager (find)))
+(allow binderservicedomain keystore (binder (call transfer)))
+(allow keystore binderservicedomain (binder (transfer)))
+(allow binderservicedomain keystore (fd (use)))
+(allow keystore binderservicedomain (binder (call transfer)))
+(allow binderservicedomain keystore (binder (transfer)))
+(allow keystore binderservicedomain (fd (use)))
+(allow binderservicedomain apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow binderservicedomain apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow binderservicedomain vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow binderservicedomain vendor_apex_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow binderservicedomain vendor_apex_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init blank_screen_exec (file (read getattr map execute open)))
+(allow init blank_screen (process (transition)))
+(allow blank_screen blank_screen_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init blank_screen (process (noatsecure)))
+(allow init blank_screen (process (siginh rlimitinh)))
+(typetransition init blank_screen_exec process blank_screen)
+(allow blkid block_device (dir (search)))
+(allow blkid userdata_block_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow blkid dm_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow blkid vold (fd (use)))
+(allow blkid vold (fifo_file (read write getattr)))
+(allow blkid blkid_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+;;* lmx 21 system/sepolicy/private/blkid.te
+
+(neverallow base_typeattr_339 blkid (process (transition)))
+;;* lme
+
+;;* lmx 22 system/sepolicy/private/blkid.te
+
+(neverallow base_typeattr_224 blkid (process (dyntransition)))
+;;* lme
+
+;;* lmx 23 system/sepolicy/private/blkid.te
+
+(neverallow blkid base_typeattr_654 (file (entrypoint)))
+;;* lme
+
+(allow blkid_untrusted block_device (dir (search)))
+(allow blkid_untrusted vold_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow blkid_untrusted vold (fd (use)))
+(allow blkid_untrusted vold (fifo_file (read write getattr)))
+(allow blkid_untrusted blkid_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+;;* lmx 33 system/sepolicy/private/blkid_untrusted.te
+
+(neverallow blkid_untrusted dm_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted root_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted frp_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted system_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted recovery_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted boot_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted userdata_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted cache_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted swap_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow blkid_untrusted metadata_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 36 system/sepolicy/private/blkid_untrusted.te
+
+(neverallow base_typeattr_339 blkid_untrusted (process (transition)))
+;;* lme
+
+;;* lmx 37 system/sepolicy/private/blkid_untrusted.te
+
+(neverallow base_typeattr_224 blkid_untrusted (process (dyntransition)))
+;;* lme
+
+;;* lmx 38 system/sepolicy/private/blkid_untrusted.te
+
+(neverallow blkid_untrusted base_typeattr_654 (file (entrypoint)))
+;;* lme
+
+(typetransition bluetooth tmpfs file appdomain_tmpfs)
+(allow bluetooth bluetooth_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su bluetooth_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 5 system/sepolicy/private/bluetooth.te
+
+(neverallow base_typeattr_655 bluetooth_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow bluetooth appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 5 system/sepolicy/private/bluetooth.te
+
+(neverallow base_typeattr_656 base_typeattr_655 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/private/bluetooth.te
+
+(neverallow base_typeattr_657 bluetooth (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/private/bluetooth.te
+
+(neverallow base_typeattr_658 bluetooth (process (ptrace)))
+;;* lme
+
+(typetransition bluetooth bluetooth_data_file sock_file bluetooth_socket)
+(allowx bluetooth self (ioctl udp_socket (0x6900 0x6902)))
+(allowx bluetooth self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx bluetooth self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow bluetooth sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bluetooth self (capability2 (block_suspend)))
+(allow bluetooth self (cap2_userns (block_suspend)))
+(allow bluetooth system_suspend_server (binder (call transfer)))
+(allow system_suspend_server bluetooth (binder (transfer)))
+(allow bluetooth system_suspend_server (fd (use)))
+(allow bluetooth system_suspend_hwservice (hwservice_manager (find)))
+(allow bluetooth hwservicemanager (binder (call transfer)))
+(allow hwservicemanager bluetooth (binder (call transfer)))
+(allow hwservicemanager bluetooth (dir (search)))
+(allow hwservicemanager bluetooth (file (read map open)))
+(allow hwservicemanager bluetooth (process (getattr)))
+(allow bluetooth hwservicemanager_prop (file (read getattr map open)))
+(allow bluetooth hidl_manager_hwservice (hwservice_manager (find)))
+(allow bluetooth hal_system_suspend_service (service_manager (find)))
+(allow bluetooth servicemanager (binder (call transfer)))
+(allow servicemanager bluetooth (binder (call transfer)))
+(allow servicemanager bluetooth (dir (search)))
+(allow servicemanager bluetooth (file (read open)))
+(allow servicemanager bluetooth (process (getattr)))
+(allow bluetooth bluetooth_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow bluetooth bluetooth_data_file (file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow bluetooth bluetooth_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow bluetooth bluetooth_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow bluetooth bluetooth_data_file (fifo_file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow bluetooth bluetooth_logs_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow bluetooth bluetooth_logs_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow bluetooth bluetooth_socket (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow bluetooth self (capability (net_admin)))
+(allow bluetooth self (cap_userns (net_admin)))
+(allow bluetooth self (capability2 (wake_alarm)))
+(allow bluetooth self (cap2_userns (wake_alarm)))
+(allow bluetooth self (packet_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow bluetooth self (capability (net_bind_service net_admin net_raw)))
+(allow bluetooth self (cap_userns (net_bind_service net_admin net_raw)))
+(allow bluetooth self (tun_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow bluetooth tun_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx bluetooth tun_device (ioctl chr_file (0x54ca 0x54d2)))
+(allow bluetooth efs_file (dir (search)))
+(allow bluetooth uhid_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bluetooth gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bluetooth gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow bluetooth proc_bluetooth_writable (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow bluetooth proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bluetooth incremental_prop (file (read getattr map open)))
+(allow bluetooth device_logging_prop (file (read getattr map open)))
+(allow bluetooth property_socket (sock_file (write)))
+(allow bluetooth init (unix_stream_socket (connectto)))
+(allow bluetooth binder_cache_bluetooth_server_prop (property_service (set)))
+(allow bluetooth binder_cache_bluetooth_server_prop (file (read getattr map open)))
+;;* lmx 55 system/sepolicy/private/bluetooth.te
+
+(neverallow base_typeattr_659 binder_cache_bluetooth_server_prop (property_service (set)))
+;;* lme
+
+(allow bluetooth property_socket (sock_file (write)))
+(allow bluetooth init (unix_stream_socket (connectto)))
+(allow bluetooth bluetooth_a2dp_offload_prop (property_service (set)))
+(allow bluetooth bluetooth_a2dp_offload_prop (file (read getattr map open)))
+(allow bluetooth property_socket (sock_file (write)))
+(allow bluetooth init (unix_stream_socket (connectto)))
+(allow bluetooth bluetooth_audio_hal_prop (property_service (set)))
+(allow bluetooth bluetooth_audio_hal_prop (file (read getattr map open)))
+(allow bluetooth property_socket (sock_file (write)))
+(allow bluetooth init (unix_stream_socket (connectto)))
+(allow bluetooth bluetooth_prop (property_service (set)))
+(allow bluetooth bluetooth_prop (file (read getattr map open)))
+(allow bluetooth property_socket (sock_file (write)))
+(allow bluetooth init (unix_stream_socket (connectto)))
+(allow bluetooth exported_bluetooth_prop (property_service (set)))
+(allow bluetooth exported_bluetooth_prop (file (read getattr map open)))
+(allow bluetooth property_socket (sock_file (write)))
+(allow bluetooth init (unix_stream_socket (connectto)))
+(allow bluetooth pan_result_prop (property_service (set)))
+(allow bluetooth pan_result_prop (file (read getattr map open)))
+(allow bluetooth audioserver_service (service_manager (find)))
+(allow bluetooth bluetooth_service (service_manager (find)))
+(allow bluetooth drmserver_service (service_manager (find)))
+(allow bluetooth mediaserver_service (service_manager (find)))
+(allow bluetooth radio_service (service_manager (find)))
+(allow bluetooth app_api_service (service_manager (find)))
+(allow bluetooth system_api_service (service_manager (find)))
+(allow bluetooth network_stack_service (service_manager (find)))
+(allow bluetooth system_suspend_control_service (service_manager (find)))
+(allow bluetooth hal_audio_service (service_manager (find)))
+(allow bluetooth shell_data_file (file (read)))
+(allow bluetooth self (capability (sys_nice)))
+(allow bluetooth self (cap_userns (sys_nice)))
+(allow bluetooth runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 97 system/sepolicy/private/bluetooth.te
+
+(neverallow bluetooth self (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_broadcast ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow bluetooth self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_broadcast ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+;;* lme
+
+;;* lmx 98 system/sepolicy/private/bluetooth.te
+
+(neverallow bluetooth self (capability2 (mac_override mac_admin syslog audit_read perfmon)))
+(neverallow bluetooth self (cap2_userns (mac_override mac_admin syslog audit_read perfmon)))
+;;* lme
+
+(allow bluetoothdomain bluetooth (unix_stream_socket (ioctl read write getattr getopt setopt shutdown)))
+(allow init bootanim_exec (file (read getattr map execute open)))
+(allow init bootanim (process (transition)))
+(allow bootanim bootanim_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init bootanim (process (noatsecure)))
+(allow init bootanim (process (siginh rlimitinh)))
+(typetransition init bootanim_exec process bootanim)
+(dontaudit bootanim unlabeled (dir (search)))
+(dontaudit bootanim vendor_default_prop (file (read)))
+(allow bootanim bootloader_boot_reason_prop (file (read getattr map open)))
+(allow bootanim bootanim_config_prop (file (read getattr map open)))
+(allow bootanim property_socket (sock_file (write)))
+(allow bootanim init (unix_stream_socket (connectto)))
+(allow bootanim bootanim_system_prop (property_service (set)))
+(allow bootanim bootanim_system_prop (file (read getattr map open)))
+(allow bootanim bootanim_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow bootanim bootanim_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootanim bootanim_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow bootanim vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init bootstat_exec (file (read getattr map execute open)))
+(allow init bootstat (process (transition)))
+(allow bootstat bootstat_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init bootstat (process (noatsecure)))
+(allow init bootstat (process (siginh rlimitinh)))
+(typetransition init bootstat_exec process bootstat)
+(allow bootstat boottime_prop (file (read getattr map open)))
+(allow bootstat property_socket (sock_file (write)))
+(allow bootstat init (unix_stream_socket (connectto)))
+(allow bootstat bootloader_boot_reason_prop (property_service (set)))
+(allow bootstat bootloader_boot_reason_prop (file (read getattr map open)))
+(allow bootstat property_socket (sock_file (write)))
+(allow bootstat init (unix_stream_socket (connectto)))
+(allow bootstat system_boot_reason_prop (property_service (set)))
+(allow bootstat system_boot_reason_prop (file (read getattr map open)))
+(allow bootstat property_socket (sock_file (write)))
+(allow bootstat init (unix_stream_socket (connectto)))
+(allow bootstat last_boot_reason_prop (property_service (set)))
+(allow bootstat last_boot_reason_prop (file (read getattr map open)))
+;;* lmx 24 system/sepolicy/private/bootstat.te
+
+(neverallow base_typeattr_660 bootloader_boot_reason_prop (file (ioctl read getattr lock map open watch watch_reads)))
+(neverallow base_typeattr_660 last_boot_reason_prop (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/private/bootstat.te
+
+(neverallow bootanim last_boot_reason_prop (file (ioctl read getattr lock map open watch watch_reads)))
+(neverallow recovery last_boot_reason_prop (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 33 system/sepolicy/private/bootstat.te
+
+(neverallow base_typeattr_661 bootloader_boot_reason_prop (property_service (set)))
+(neverallow base_typeattr_661 last_boot_reason_prop (property_service (set)))
+;;* lme
+
+;;* lmx 35 system/sepolicy/private/bootstat.te
+
+(neverallow system_server bootloader_boot_reason_prop (property_service (set)))
+;;* lme
+
+(allow init boringssl_self_test_exec (file (read getattr map execute open)))
+(allow init boringssl_self_test (process (transition)))
+(allow boringssl_self_test boringssl_self_test_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init boringssl_self_test (process (noatsecure)))
+(allow init boringssl_self_test (process (siginh rlimitinh)))
+(typetransition init boringssl_self_test_exec process boringssl_self_test)
+(allow init vendor_boringssl_self_test_exec (file (read getattr map execute open)))
+(allow init vendor_boringssl_self_test (process (transition)))
+(allow vendor_boringssl_self_test vendor_boringssl_self_test_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init vendor_boringssl_self_test (process (noatsecure)))
+(allow init vendor_boringssl_self_test (process (siginh rlimitinh)))
+(typetransition init vendor_boringssl_self_test_exec process vendor_boringssl_self_test)
+(allow boringssl_self_test boringssl_self_test_marker (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow vendor_boringssl_self_test boringssl_self_test_marker (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow boringssl_self_test boringssl_self_test_marker (dir (ioctl read write getattr lock open watch watch_reads add_name search)))
+(allow vendor_boringssl_self_test boringssl_self_test_marker (dir (ioctl read write getattr lock open watch watch_reads add_name search)))
+(allow boringssl_self_test kmsg_debug_device (chr_file (ioctl write getattr lock append map open)))
+(allow vendor_boringssl_self_test kmsg_debug_device (chr_file (ioctl write getattr lock append map open)))
+;;* lmx 66 system/sepolicy/private/boringssl_self_test.te
+
+(neverallow base_typeattr_662 boringssl_self_test_marker (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 74 system/sepolicy/private/boringssl_self_test.te
+
+(neverallow base_typeattr_662 boringssl_self_test_marker (dir (write)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/private/bpfdomain.te
+
+(neverallow base_typeattr_663 self (capability (net_admin net_raw)))
+(neverallow base_typeattr_663 self (cap_userns (net_admin net_raw)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/bpfdomain.te
+
+(neverallow base_typeattr_664 base_typeattr_224 (bpf (map_create map_read map_write prog_load prog_run)))
+;;* lme
+
+(allow bpfdomain fs_bpf (dir (search)))
+(allow bpfdomain bpffs_type (lnk_file (read)))
+(allow bpfdomain bpf_progs_loaded_prop (file (read getattr map open)))
+(allow bpfloader kmsg_device (chr_file (write lock append map open)))
+(allow bpfloader bpffs_type (dir (write create add_name remove_name search)))
+(allow bpfloader bpffs_type (file (read create getattr setattr rename)))
+(allow bpfloader bpffs_type (lnk_file (read create getattr)))
+(allow base_typeattr_665 fs_bpf (filesystem (associate)))
+(allow bpfloader self (bpf (map_create map_read map_write prog_load prog_run)))
+(allow bpfloader self (capability (chown net_admin sys_admin)))
+(allow bpfloader sysfs_fs_fuse_bpf (file (ioctl read getattr lock map open watch watch_reads)))
+(allow bpfloader proc_bpf (file (write lock append map open)))
+(allow bpfloader property_socket (sock_file (write)))
+(allow bpfloader init (unix_stream_socket (connectto)))
+(allow bpfloader bpf_progs_loaded_prop (property_service (set)))
+(allow bpfloader bpf_progs_loaded_prop (file (read getattr map open)))
+(allow bpfloader bpfloader_exec (file (execute_no_trans)))
+;;* lmx 32 system/sepolicy/private/bpfloader.te
+
+(neverallow domain bpffs_type (dir (ioctl read setattr lock relabelfrom relabelto append map unlink link rename execute quotaon audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads reparent rmdir)))
+;;* lme
+
+;;* lmx 33 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 bpffs_type (dir (write create add_name remove_name)))
+;;* lme
+
+;;* lmx 35 system/sepolicy/private/bpfloader.te
+
+(neverallow domain bpffs_type (file (ioctl lock relabelfrom relabelto append unlink link execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 36 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 bpffs_type (file (create setattr map rename open)))
+;;* lme
+
+;;* lmx 37 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_667 fs_bpf (file (read getattr)))
+;;* lme
+
+;;* lmx 38 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 fs_bpf_loader (file (read getattr)))
+;;* lme
+
+;;* lmx 39 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_668 fs_bpf_net_private (file (read getattr)))
+;;* lme
+
+;;* lmx 40 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_669 fs_bpf_net_shared (file (read getattr)))
+;;* lme
+
+;;* lmx 41 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_670 fs_bpf_netd_readonly (file (read getattr)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_671 fs_bpf_netd_shared (file (read getattr)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_668 fs_bpf_tethering (file (read getattr)))
+;;* lme
+
+;;* lmx 44 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_672 fs_bpf_uprobestats (file (read getattr)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_673 base_typeattr_674 (file (write)))
+;;* lme
+
+;;* lmx 47 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 bpffs_type (lnk_file (ioctl write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 48 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_664 bpffs_type (lnk_file (read)))
+;;* lme
+
+;;* lmx 50 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 base_typeattr_224 (bpf (map_create prog_load)))
+;;* lme
+
+;;* lmx 53 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 fs_bpf_loader (bpf (map_create map_read map_write prog_load prog_run)))
+;;* lme
+
+;;* lmx 54 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 fs_bpf_loader (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 67 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_675 base_typeattr_224 (bpf (prog_run)))
+;;* lme
+
+;;* lmx 68 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_676 base_typeattr_224 (bpf (map_read map_write)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_677 bpfloader_exec (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 71 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_678 fs_bpf_vendor (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 73 system/sepolicy/private/bpfloader.te
+
+(neverallow bpfloader base_typeattr_224 (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+(neverallow bpfloader base_typeattr_224 (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow bpfloader base_typeattr_224 (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 76 system/sepolicy/private/bpfloader.te
+
+(neverallow domain bpfloader (process (ptrace)))
+;;* lme
+
+;;* lmx 78 system/sepolicy/private/bpfloader.te
+
+(neverallow base_typeattr_666 proc_bpf (file (write)))
+;;* lme
+
+(allow init bufferhubd_exec (file (read getattr map execute open)))
+(allow init bufferhubd (process (transition)))
+(allow bufferhubd bufferhubd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init bufferhubd (process (noatsecure)))
+(allow init bufferhubd (process (siginh rlimitinh)))
+(typetransition init bufferhubd_exec process bufferhubd)
+(allow init cameraserver_exec (file (read getattr map execute open)))
+(allow init cameraserver (process (transition)))
+(allow cameraserver cameraserver_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init cameraserver (process (noatsecure)))
+(allow init cameraserver (process (siginh rlimitinh)))
+(typetransition init cameraserver_exec process cameraserver)
+(typetransition cameraserver tmpfs file cameraserver_tmpfs)
+(allow cameraserver cameraserver_tmpfs (file (read write getattr map)))
+(allow cameraserver gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow cameraserver gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow cameraserver virtual_camera (binder (call)))
+(allow init canhalconfigurator_exec (file (read getattr map execute open)))
+(allow init canhalconfigurator (process (transition)))
+(allow canhalconfigurator canhalconfigurator_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init canhalconfigurator (process (noatsecure)))
+(allow init canhalconfigurator (process (siginh rlimitinh)))
+(typetransition init canhalconfigurator_exec process canhalconfigurator)
+(allow canhalconfigurator servicemanager (binder (call transfer)))
+(allow servicemanager canhalconfigurator (binder (call transfer)))
+(allow servicemanager canhalconfigurator (dir (search)))
+(allow servicemanager canhalconfigurator (file (read open)))
+(allow servicemanager canhalconfigurator (process (getattr)))
+(allow hal_can_controller canhalconfigurator (binder (call transfer)))
+(allow canhalconfigurator hal_can_controller (binder (transfer)))
+(allow hal_can_controller canhalconfigurator (fd (use)))
+(allow charger property_socket (sock_file (write)))
+(allow charger init (unix_stream_socket (connectto)))
+(allow charger system_prop (property_service (set)))
+(allow charger system_prop (file (read getattr map open)))
+(allow charger property_socket (sock_file (write)))
+(allow charger init (unix_stream_socket (connectto)))
+(allow charger exported_system_prop (property_service (set)))
+(allow charger exported_system_prop (file (read getattr map open)))
+(allow charger property_socket (sock_file (write)))
+(allow charger init (unix_stream_socket (connectto)))
+(allow charger exported3_system_prop (property_service (set)))
+(allow charger exported3_system_prop (file (read getattr map open)))
+(allow charger charger_prop (file (read getattr map open)))
+;;* lmx 13 system/sepolicy/private/charger.te
+
+(neverallow base_typeattr_679 charger_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow charger_type property_socket (sock_file (write)))
+(allow charger_type init (unix_stream_socket (connectto)))
+(allow charger_type charger_status_prop (property_service (set)))
+(allow charger_type charger_status_prop (file (read getattr map open)))
+(allow charger_type charger_config_prop (file (read getattr map open)))
+(allow charger_type recovery_config_prop (file (read getattr map open)))
+;;* lmx 16 system/sepolicy/private/charger_type.te
+
+(neverallow base_typeattr_259 charger_config_prop (property_service (set)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/private/charger_type.te
+
+(neverallow base_typeattr_680 charger_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 38 system/sepolicy/private/charger_type.te
+
+(neverallow base_typeattr_681 charger_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_681 charger_status_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow clatd system_server (fd (use)))
+(allow clatd system_server (packet_socket (read write)))
+(allow clatd system_server (rawip_socket (read write)))
+(allow clatd tun_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow compos_fd_server composd (fd (use)))
+(allow compos_fd_server apex_art_staging_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow compos_fd_server apex_art_staging_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow compos_fd_server apex_art_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow compos_fd_server apex_art_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow compos_fd_server composd (fifo_file (write)))
+(allow compos_fd_server composd (fifo_file (read)))
+(allow compos_fd_server self (vsock_socket (read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+;;* lmx 26 system/sepolicy/private/compos_fd_server.te
+
+(neverallow base_typeattr_682 compos_fd_server (process (transition)))
+;;* lme
+
+;;* lmx 27 system/sepolicy/private/compos_fd_server.te
+
+(neverallow base_typeattr_224 compos_fd_server (process (dyntransition)))
+;;* lme
+
+(allow compos_verify servicemanager (binder (call transfer)))
+(allow servicemanager compos_verify (binder (call transfer)))
+(allow servicemanager compos_verify (dir (search)))
+(allow servicemanager compos_verify (file (read open)))
+(allow servicemanager compos_verify (process (getattr)))
+(allow compos_verify virtualizationmanager_exec (file (read getattr map execute open)))
+(allow compos_verify virtualizationmanager (process (transition)))
+(allow virtualizationmanager virtualizationmanager_exec (file (read getattr map execute open entrypoint)))
+(allow virtualizationmanager compos_verify (process (sigchld)))
+(dontaudit compos_verify virtualizationmanager (process (noatsecure)))
+(allow compos_verify virtualizationmanager (process (siginh rlimitinh)))
+(typetransition compos_verify virtualizationmanager_exec process virtualizationmanager)
+(allow crosvm compos_verify (unix_stream_socket (ioctl read write getattr)))
+(allow virtualizationmanager compos_verify (unix_stream_socket (ioctl read write getattr)))
+(allow crosvm compos_verify (fd (use)))
+(allow virtualizationmanager compos_verify (fd (use)))
+(allow compos_verify virtualizationmanager (fd (use)))
+(allow crosvm compos_verify (fifo_file (ioctl read write getattr)))
+(allow virtualizationmanager compos_verify (fifo_file (ioctl read write getattr)))
+(allow compos_verify virtualizationmanager (vsock_socket (read write getattr getopt)))
+(allow compos_verify hypervisor_prop (file (read getattr map open)))
+(allow compos_verify virtualizationservice_data_file (file (read getattr)))
+(allow compos_verify apex_module_data_file (dir (search)))
+(allow compos_verify apex_compos_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow compos_verify apex_compos_data_file (file (ioctl read write create getattr lock append map open watch watch_reads)))
+(allow compos_verify apex_art_data_file (dir (search)))
+(allow compos_verify apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow compos_verify odsign (fd (use)))
+(allow compos_verify odsign_devpts (chr_file (read write)))
+;;* lmx 23 system/sepolicy/private/compos_verify.te
+
+(neverallow base_typeattr_683 compos_verify (process (transition)))
+;;* lme
+
+;;* lmx 24 system/sepolicy/private/compos_verify.te
+
+(neverallow base_typeattr_224 compos_verify (process (dyntransition)))
+;;* lme
+
+(allow init composd_exec (file (read getattr map execute open)))
+(allow init composd (process (transition)))
+(allow composd composd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init composd (process (noatsecure)))
+(allow init composd (process (siginh rlimitinh)))
+(typetransition init composd_exec process composd)
+(allow composd servicemanager (binder (call transfer)))
+(allow servicemanager composd (binder (call transfer)))
+(allow servicemanager composd (dir (search)))
+(allow servicemanager composd (file (read open)))
+(allow servicemanager composd (process (getattr)))
+(allow composd compos_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/private/composd.te
+
+(neverallow base_typeattr_682 compos_service (service_manager (add)))
+;;* lme
+
+(allow composd system_server (binder (call transfer)))
+(allow system_server composd (binder (transfer)))
+(allow composd system_server (fd (use)))
+(allow composd virtualizationmanager_exec (file (read getattr map execute open)))
+(allow composd virtualizationmanager (process (transition)))
+(allow virtualizationmanager virtualizationmanager_exec (file (read getattr map execute open entrypoint)))
+(allow virtualizationmanager composd (process (sigchld)))
+(dontaudit composd virtualizationmanager (process (noatsecure)))
+(allow composd virtualizationmanager (process (siginh rlimitinh)))
+(typetransition composd virtualizationmanager_exec process virtualizationmanager)
+(allow crosvm composd (unix_stream_socket (ioctl read write getattr)))
+(allow virtualizationmanager composd (unix_stream_socket (ioctl read write getattr)))
+(allow crosvm composd (fd (use)))
+(allow virtualizationmanager composd (fd (use)))
+(allow composd virtualizationmanager (fd (use)))
+(allow crosvm composd (fifo_file (ioctl read write getattr)))
+(allow virtualizationmanager composd (fifo_file (ioctl read write getattr)))
+(allow composd virtualizationmanager (vsock_socket (read write getattr getopt)))
+(allow composd hypervisor_prop (file (read getattr map open)))
+(allow composd virtualizationservice_data_file (file (read getattr)))
+(allow composd apex_art_data_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow composd apex_art_staging_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow composd apex_art_staging_data_file (file (getattr unlink)))
+(allow composd apex_art_data_file (file (ioctl read write unlink open)))
+(allowx composd apex_art_data_file (ioctl file (0x6685)))
+(allow composd apex_module_data_file (dir (search)))
+(allow composd apex_compos_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow composd apex_compos_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow composd fd_server_exec (file (read getattr map execute open)))
+(allow composd compos_fd_server (process (transition)))
+(allow compos_fd_server fd_server_exec (file (read getattr map execute open entrypoint)))
+(allow compos_fd_server composd (process (sigchld)))
+(dontaudit composd compos_fd_server (process (noatsecure)))
+(allow composd compos_fd_server (process (siginh rlimitinh)))
+(typetransition composd fd_server_exec process compos_fd_server)
+(allow composd compos_fd_server (process (signal)))
+(allow composd composd_vm_art_prop (file (read getattr map open)))
+(allow composd composd_vm_vendor_prop (file (read getattr map open)))
+(allow composd dalvik_config_prop_type (file (read getattr map open)))
+(allow composd device_config_runtime_native_boot_prop (file (read getattr map open)))
+;;* lmx 42 system/sepolicy/private/composd.te
+
+(neverallow composd apex_art_data_file (file (create)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/private/composd.te
+
+(neverallow base_typeattr_223 composd_vm_art_prop (property_service (set)))
+;;* lme
+
+(allow coredomain apex_ready_prop (file (read getattr map open)))
+(allow coredomain boot_status_prop (file (read getattr map open)))
+(allow coredomain camera_config_prop (file (read getattr map open)))
+(allow coredomain dalvik_config_prop_type (file (read getattr map open)))
+(allow coredomain dalvik_runtime_prop (file (read getattr map open)))
+(allow coredomain exported_pm_prop (file (read getattr map open)))
+(allow coredomain ffs_config_prop (file (read getattr map open)))
+(allow coredomain graphics_config_prop (file (read getattr map open)))
+(allow coredomain graphics_config_writable_prop (file (read getattr map open)))
+(allow coredomain hdmi_config_prop (file (read getattr map open)))
+(allow coredomain init_service_status_private_prop (file (read getattr map open)))
+(allow coredomain lmkd_config_prop (file (read getattr map open)))
+(allow coredomain localization_prop (file (read getattr map open)))
+(allow coredomain pm_prop (file (read getattr map open)))
+(allow coredomain radio_control_prop (file (read getattr map open)))
+(allow coredomain rollback_test_prop (file (read getattr map open)))
+(allow coredomain setupwizard_prop (file (read getattr map open)))
+(allow coredomain setupwizard_mode_prop (file (read getattr map open)))
+(allow coredomain sqlite_log_prop (file (read getattr map open)))
+(allow coredomain storagemanager_config_prop (file (read getattr map open)))
+(allow coredomain surfaceflinger_color_prop (file (read getattr map open)))
+(allow coredomain systemsound_config_prop (file (read getattr map open)))
+(allow coredomain telephony_config_prop (file (read getattr map open)))
+(allow coredomain usb_config_prop (file (read getattr map open)))
+(allow coredomain usb_control_prop (file (read getattr map open)))
+(allow coredomain userspace_reboot_config_prop (file (read getattr map open)))
+(allow coredomain vold_config_prop (file (read getattr map open)))
+(allow coredomain vts_status_prop (file (read getattr map open)))
+(allow coredomain zygote_config_prop (file (read getattr map open)))
+(allow coredomain zygote_wrap_prop (file (read getattr map open)))
+(allow coredomain default_prop (file (read getattr map open)))
+;;* lmx 35 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_684 sysfs_leds (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 51 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_685 vendor_app_file (dir (read getattr open search)))
+;;* lme
+
+;;* lmx 70 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_686 vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 92 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_687 vendor_overlay_file (dir (read getattr open search)))
+;;* lme
+
+;;* lmx 114 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_687 vendor_overlay_file (file (open)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_688 proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_684 sysfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_689 device (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_689 device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow coredomain debugfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_690 debugfs_tracing (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_691 inotify (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_692 pstorefs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_693 configfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_694 functionfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_691 usbfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_691 binfmt_miscfs (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 140 system/sepolicy/private/coredomain.te
+
+(neverallow base_typeattr_695 base_typeattr_696 (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 254 system/sepolicy/private/coredomain.te
+
+(neverallow coredomain radio_device (chr_file (ioctl read write append open)))
+(neverallow coredomain iio_device (chr_file (ioctl read write append open)))
+;;* lme
+
+;;* lmx 258 system/sepolicy/private/coredomain.te
+
+(neverallow coredomain tee_device (chr_file (ioctl read write append open)))
+;;* lme
+
+(allow init cppreopts_exec (file (read getattr map execute open)))
+(allow init cppreopts (process (transition)))
+(allow cppreopts cppreopts_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init cppreopts (process (noatsecure)))
+(allow init cppreopts (process (siginh rlimitinh)))
+(typetransition init cppreopts_exec process cppreopts)
+(allow cppreopts preopt2cachename_exec (file (read getattr map execute open)))
+(allow cppreopts preopt2cachename (process (transition)))
+(allow preopt2cachename preopt2cachename_exec (file (read getattr map execute open entrypoint)))
+(allow preopt2cachename cppreopts (process (sigchld)))
+(dontaudit cppreopts preopt2cachename (process (noatsecure)))
+(allow cppreopts preopt2cachename (process (siginh rlimitinh)))
+(typetransition cppreopts preopt2cachename_exec process preopt2cachename)
+(allow cppreopts dalvikcache_data_file (dir (write add_name remove_name search)))
+(allow cppreopts dalvikcache_data_file (file (read write create getattr unlink rename open)))
+(allow cppreopts shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow cppreopts system_file (dir (read open)))
+(allow cppreopts toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(dontaudit cppreopts postinstall_mnt_dir (dir (search)))
+(dontaudit crash_dump dev_type (chr_file (read write)))
+(dontaudit crash_dump devpts (chr_file (read write)))
+(allow crash_dump base_typeattr_697 (process (sigchld sigkill sigstop signal ptrace)))
+(allow crash_dump apex_art_data_file (dir (getattr search)))
+(allow crash_dump apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump system_bootstrap_lib_file (dir (getattr search)))
+(allow crash_dump system_bootstrap_lib_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow crash_dump vendor_apex_metadata_file (dir (getattr search)))
+;;* lmx 64 system/sepolicy/private/crash_dump.te
+
+(neverallow crash_dump apexd (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump bpfloader (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump init (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump kernel (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump keystore (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump llkd (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump logd (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump ueventd (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump vendor_init (process (sigkill sigstop signal ptrace)))
+(neverallow crash_dump vold (process (sigkill sigstop signal ptrace)))
+;;* lme
+
+;;* lmx 66 system/sepolicy/private/crash_dump.te
+
+(neverallow crash_dump self (process (ptrace)))
+;;* lme
+
+;;* lmx 67 system/sepolicy/private/crash_dump.te
+
+(neverallow crash_dump gpu_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow init credstore_exec (file (read getattr map execute open)))
+(allow init credstore (process (transition)))
+(allow credstore credstore_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init credstore (process (noatsecure)))
+(allow init credstore (process (siginh rlimitinh)))
+(typetransition init credstore_exec process credstore)
+(allow credstore remote_prov_prop (file (read getattr map open)))
+(allow credstore remote_provisioning_service (service_manager (find)))
+(allow crosvm vm_manager_device_type (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lmx 10 system/sepolicy/private/crosvm.te
+
+(neverallow base_typeattr_698 kvm_device (chr_file (getattr)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/private/crosvm.te
+
+(neverallow base_typeattr_699 kvm_device (chr_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 12 system/sepolicy/private/crosvm.te
+
+(neverallowx base_typeattr_700 kvm_device (ioctl chr_file ((range 0x0 0xadff) (range 0xaf00 0xffff))))
+;;* lme
+
+;;* lmx 12 system/sepolicy/private/crosvm.te
+
+(neverallowx base_typeattr_700 kvm_device (ioctl chr_file ((range 0xae00 0xae02) (range 0xae04 0xaeff))))
+;;* lme
+
+;;* lmx 17 system/sepolicy/private/crosvm.te
+
+(neverallow base_typeattr_701 vm_manager_device_type (chr_file (getattr)))
+;;* lme
+
+;;* lmx 18 system/sepolicy/private/crosvm.te
+
+(neverallow base_typeattr_702 vm_manager_device_type (chr_file (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(typetransition crosvm tmpfs file crosvm_tmpfs)
+(allow crosvm crosvm_tmpfs (file (read write getattr map)))
+(allow crosvm virtualizationmanager (fd (use)))
+(allow crosvm virtualizationmanager (fifo_file (write)))
+(allow crosvm vendor_microdroid_file (file (ioctl read getattr lock)))
+(allow crosvm apk_data_file (file (ioctl read getattr lock)))
+(allow crosvm shell_data_file (file (ioctl read getattr lock)))
+(allow crosvm staging_data_file (file (ioctl read getattr lock)))
+(allow crosvm app_data_file (file (ioctl read getattr lock)))
+(allow crosvm privapp_data_file (file (ioctl read getattr lock)))
+(allow crosvm apex_compos_data_file (file (ioctl read getattr lock)))
+(allow crosvm apex_virt_data_file (file (ioctl read getattr lock)))
+(allow crosvm virtualizationservice_data_file (file (ioctl read getattr lock)))
+(allow crosvm virtualizationservice_data_file (dir (search)))
+(allow crosvm self (capability (sys_nice)))
+(allow crosvm self (cap_userns (sys_nice)))
+(allow crosvm virtualizationmanager (unix_stream_socket (read write getattr accept getopt)))
+(allow crosvm app_data_file (file (write)))
+(allow crosvm privapp_data_file (file (write)))
+(allow crosvm apex_compos_data_file (file (write)))
+(allow crosvm apex_virt_data_file (file (write)))
+(allow crosvm virtualizationservice_data_file (file (write)))
+(allow crosvm adbd (fd (use)))
+(allow crosvm adbd (unix_stream_socket (read write)))
+(allow crosvm devpts (chr_file (ioctl read write getattr)))
+(dontaudit crosvm self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow crosvm shell_data_file (file (write)))
+(dontaudit crosvm virtualizationmanager (fifo_file (read getattr)))
+(allow crosvm self (tcp_socket (read write create bind listen accept setopt)))
+(allow crosvm port (tcp_socket (name_bind)))
+(allow crosvm adbd (unix_stream_socket (ioctl)))
+(allow crosvm node (tcp_socket (node_bind)))
+(allow crosvm vfio_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow crosvm vfio_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow crosvm virtualizationmanager (fd (use)))
+(allow crosvm virtualizationservice_data_file (file (read)))
+;;* lmx 125 system/sepolicy/private/crosvm.te
+
+(neverallow crosvm apk_data_file (file (open)))
+(neverallow crosvm staging_data_file (file (open)))
+(neverallow crosvm app_data_file (file (open)))
+(neverallow crosvm privapp_data_file (file (open)))
+(neverallow crosvm virtualizationservice_data_file (file (open)))
+;;* lme
+
+;;* lmx 128 system/sepolicy/private/crosvm.te
+
+(neverallow crosvm base_typeattr_703 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 151 system/sepolicy/private/crosvm.te
+
+(neverallow crosvm base_typeattr_704 (file (read)))
+;;* lme
+
+;;* lmx 158 system/sepolicy/private/crosvm.te
+
+(neverallow base_typeattr_705 crosvm_exec (file (execute execute_no_trans)))
+;;* lme
+
+(allow init derive_classpath_exec (file (read getattr map execute open)))
+(allow init derive_classpath (process (transition)))
+(allow derive_classpath derive_classpath_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init derive_classpath (process (noatsecure)))
+(allow init derive_classpath (process (siginh rlimitinh)))
+(typetransition init derive_classpath_exec process derive_classpath)
+(allow derive_classpath apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow derive_classpath vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow derive_classpath environ_system_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow derive_classpath environ_system_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow derive_classpath unlabeled (dir (search)))
+(allow derive_classpath postinstall_apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow derive_classpath postinstall_dexopt (dir (search)))
+(allow derive_classpath postinstall_dexopt (fd (use)))
+(allow derive_classpath postinstall_dexopt (file (read)))
+(allow derive_classpath postinstall_dexopt (lnk_file (read)))
+(allow derive_classpath postinstall_dexopt_tmpfs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init derive_sdk_exec (file (read getattr map execute open)))
+(allow init derive_sdk (process (transition)))
+(allow derive_sdk derive_sdk_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init derive_sdk (process (noatsecure)))
+(allow init derive_sdk (process (siginh rlimitinh)))
+(typetransition init derive_sdk_exec process derive_sdk)
+(allow derive_sdk apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow derive_sdk vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow derive_sdk property_socket (sock_file (write)))
+(allow derive_sdk init (unix_stream_socket (connectto)))
+(allow derive_sdk module_sdkextensions_prop (property_service (set)))
+(allow derive_sdk module_sdkextensions_prop (file (read getattr map open)))
+;;* lmx 13 system/sepolicy/private/derive_sdk.te
+
+(neverallow base_typeattr_706 module_sdkextensions_prop (property_service (set)))
+;;* lme
+
+(allow derive_sdk dumpstate (fd (use)))
+(allow derive_sdk dumpstate (unix_stream_socket (read write)))
+(allow derive_sdk shell_data_file (file (read write getattr append)))
+(typetransition device_as_webcam tmpfs file appdomain_tmpfs)
+(allow device_as_webcam device_as_webcam_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su device_as_webcam_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 4 system/sepolicy/private/device_as_webcam.te
+
+(neverallow base_typeattr_707 device_as_webcam_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow device_as_webcam appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 4 system/sepolicy/private/device_as_webcam.te
+
+(neverallow base_typeattr_708 base_typeattr_707 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/private/device_as_webcam.te
+
+(neverallow base_typeattr_709 device_as_webcam (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/private/device_as_webcam.te
+
+(neverallow base_typeattr_710 device_as_webcam (process (ptrace)))
+;;* lme
+
+(allow device_as_webcam system_app_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow device_as_webcam system_app_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow device_as_webcam app_api_service (service_manager (find)))
+(allow device_as_webcam cameraserver_service (service_manager (find)))
+(allow device_as_webcam usb_uvc_enabled_prop (file (read getattr map open)))
+(allow device_as_webcam device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow device_as_webcam video_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow device_as_webcam video_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow dex2oat dex2oat_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su dex2oat_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 5 system/sepolicy/private/dex2oat.te
+
+(neverallow base_typeattr_711 dex2oat_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow dex2oat apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dex2oat apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dex2oat vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat vendor_framework_file (dir (getattr search)))
+(allow dex2oat vendor_framework_file (file (read getattr map open)))
+(allow dex2oat vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dex2oat vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat vendor_apex_metadata_file (dir (getattr search)))
+(allow dex2oat tmpfs (file (read getattr map)))
+(allow dex2oat dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dex2oat dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat dalvikcache_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat dalvikcache_data_file (file (write)))
+(allow dex2oat system_file (file (lock)))
+(allow dex2oat postinstall_file (file (lock)))
+(allow dex2oat asec_apk_file (file (read map)))
+(allow dex2oat unlabeled (file (read map)))
+(allow dex2oat oemfs (file (read map)))
+(allow dex2oat apk_tmp_file (dir (search)))
+(allow dex2oat apk_tmp_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat user_profile_data_file (file (read getattr lock map)))
+(allow dex2oat app_data_file (file (read write getattr lock map)))
+(allow dex2oat privapp_data_file (file (read write getattr lock map)))
+(allow dex2oat apex_module_data_file (dir (search)))
+(allow dex2oat odsign_devpts (chr_file (read write)))
+(allow dex2oat apex_art_staging_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dex2oat apex_art_staging_data_file (file (read write getattr map unlink)))
+(allow dex2oat apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dex2oat apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat device_config_runtime_native_prop (file (read getattr map open)))
+(allow dex2oat device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow dex2oat apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat artd (fd (use)))
+(allow dex2oat installd (fd (use)))
+(allow dex2oat odrefresh (fd (use)))
+(allow dex2oat odsign (fd (use)))
+(allow dex2oat proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat postinstall_dexopt (fd (use)))
+(allow dex2oat postinstall_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dex2oat postinstall_file (filesystem (getattr)))
+(allow dex2oat postinstall_file (lnk_file (read getattr)))
+(allow dex2oat postinstall_file (file (read)))
+(allow dex2oat postinstall_file (file (getattr execute open)))
+(allow dex2oat postinstall_apex_mnt_dir (dir (getattr search)))
+(allow dex2oat postinstall_apex_mnt_dir (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat postinstall_apex_mnt_dir (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat ota_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name search)))
+(allow dex2oat ota_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dex2oat ota_data_file (lnk_file (read create)))
+(allow dex2oat ota_data_file (file (write create setattr lock append map open)))
+(allow dex2oat apexd (fd (use)))
+;;* lmx 115 system/sepolicy/private/dex2oat.te
+
+(neverallow dex2oat app_data_file_type (file (open)))
+(neverallow dex2oat app_data_file_type (lnk_file (open)))
+(neverallow dex2oat app_data_file_type (sock_file (open)))
+(neverallow dex2oat app_data_file_type (fifo_file (open)))
+;;* lme
+
+(allow dexopt_chroot_setup servicemanager (binder (call transfer)))
+(allow servicemanager dexopt_chroot_setup (binder (call transfer)))
+(allow servicemanager dexopt_chroot_setup (dir (search)))
+(allow servicemanager dexopt_chroot_setup (file (read open)))
+(allow servicemanager dexopt_chroot_setup (process (getattr)))
+(allow dexopt_chroot_setup dexopt_chroot_setup_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/private/dexopt_chroot_setup.te
+
+(neverallow base_typeattr_712 dexopt_chroot_setup_service (service_manager (add)))
+;;* lme
+
+(allow dexopt_chroot_setup dumpstate (fifo_file (write getattr)))
+(allow dexopt_chroot_setup dumpstate (fd (use)))
+(allow init dexopt_chroot_setup_exec (file (read getattr map execute open)))
+(allow init dexopt_chroot_setup (process (transition)))
+(allow dexopt_chroot_setup dexopt_chroot_setup_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init dexopt_chroot_setup (process (noatsecure)))
+(allow init dexopt_chroot_setup (process (siginh rlimitinh)))
+(typetransition init dexopt_chroot_setup_exec process dexopt_chroot_setup)
+(typetransition dexopt_chroot_setup tmpfs file dexopt_chroot_setup_tmpfs)
+(allow dexopt_chroot_setup dexopt_chroot_setup_tmpfs (file (read write getattr map)))
+(allow dexopt_chroot_setup apex_module_data_file (dir (getattr search)))
+(allow dexopt_chroot_setup apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dexopt_chroot_setup apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dexopt_chroot_setup apex_art_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dexopt_chroot_setup dexopt_chroot_setup_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su dexopt_chroot_setup_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 23 system/sepolicy/private/dexopt_chroot_setup.te
+
+(neverallow base_typeattr_712 dexopt_chroot_setup_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow dexoptanalyzer apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dexoptanalyzer apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dexoptanalyzer apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dexoptanalyzer vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dexoptanalyzer vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dexoptanalyzer vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(typetransition dexoptanalyzer tmpfs file dexoptanalyzer_tmpfs)
+(allow dexoptanalyzer dexoptanalyzer_tmpfs (file (read write getattr map)))
+(allow dexoptanalyzer dexoptanalyzer_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su dexoptanalyzer_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 17 system/sepolicy/private/dexoptanalyzer.te
+
+(neverallow base_typeattr_713 dexoptanalyzer_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow dexoptanalyzer dalvikcache_data_file (dir (getattr search)))
+(allow dexoptanalyzer dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dexoptanalyzer dalvikcache_data_file (lnk_file (read)))
+(allow dexoptanalyzer apex_module_data_file (dir (getattr search)))
+(allow dexoptanalyzer apex_art_data_file (dir (getattr search)))
+(allow dexoptanalyzer apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dexoptanalyzer odrefresh (fd (use)))
+(allow dexoptanalyzer odsign (fd (use)))
+(allow dexoptanalyzer odsign_devpts (chr_file (read write)))
+(allow dexoptanalyzer installd (fd (use)))
+(allow dexoptanalyzer installd (fifo_file (write getattr)))
+(allow dexoptanalyzer system_file (file (lock)))
+(allow dexoptanalyzer app_data_file (file (read getattr map)))
+(allow dexoptanalyzer privapp_data_file (file (read getattr map)))
+(dontaudit dexoptanalyzer app_data_file (dir (search)))
+(dontaudit dexoptanalyzer privapp_data_file (dir (search)))
+(allow dexoptanalyzer system_data_file (lnk_file (getattr)))
+(allow dexoptanalyzer device_config_runtime_native_prop (file (read getattr map open)))
+(allow dexoptanalyzer device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow dexoptanalyzer apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init dhcp_exec (file (read getattr map execute open)))
+(allow init dhcp (process (transition)))
+(allow dhcp dhcp_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init dhcp (process (noatsecure)))
+(allow init dhcp (process (siginh rlimitinh)))
+(typetransition init dhcp_exec process dhcp)
+(typetransition dhcp system_data_file dir dhcp_data_file)
+(typetransition dhcp system_data_file file dhcp_data_file)
+(allow dhcp property_socket (sock_file (write)))
+(allow dhcp init (unix_stream_socket (connectto)))
+(allow dhcp dhcp_prop (property_service (set)))
+(allow dhcp dhcp_prop (file (read getattr map open)))
+(allow dhcp property_socket (sock_file (write)))
+(allow dhcp init (unix_stream_socket (connectto)))
+(allow dhcp pan_result_prop (property_service (set)))
+(allow dhcp pan_result_prop (file (read getattr map open)))
+(allow init dmesgd_exec (file (read getattr map execute open)))
+(allow init dmesgd (process (transition)))
+(allow dmesgd dmesgd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init dmesgd (process (noatsecure)))
+(allow init dmesgd (process (siginh rlimitinh)))
+(typetransition init dmesgd_exec process dmesgd)
+(allow dmesgd dmesgd_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow dmesgd dmesgd_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow dmesgd kernel (system (syslog_read)))
+(allow dmesgd shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dmesgd toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dmesgd servicemanager (binder (call transfer)))
+(allow servicemanager dmesgd (binder (call transfer)))
+(allow servicemanager dmesgd (dir (search)))
+(allow servicemanager dmesgd (file (read open)))
+(allow servicemanager dmesgd (process (getattr)))
+(allow dmesgd system_server (binder (call transfer)))
+(allow system_server dmesgd (binder (transfer)))
+(allow dmesgd system_server (fd (use)))
+(allow dmesgd dropbox_service (service_manager (find)))
+(allow dmesgd proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain crash_dump_exec (file (read getattr map execute open)))
+(allow domain crash_dump (process (transition)))
+(allow crash_dump crash_dump_exec (file (read getattr map execute open entrypoint)))
+(allow crash_dump domain (process (sigchld)))
+(dontaudit domain crash_dump (process (noatsecure)))
+(allow domain crash_dump (process (siginh rlimitinh)))
+(typetransition domain crash_dump_exec process crash_dump)
+(allow domain crash_dump (process (sigchld)))
+(allow domain heapprofd_prop (file (read getattr map open)))
+(allow heapprofd base_typeattr_714 (process (signal)))
+(allow base_typeattr_714 heapprofd_socket (sock_file (write)))
+(allow base_typeattr_714 heapprofd (unix_stream_socket (connectto)))
+(allow heapprofd base_typeattr_714 (fd (use)))
+(allow base_typeattr_714 heapprofd_tmpfs (file (read write getattr map)))
+(allow base_typeattr_714 heapprofd (fd (use)))
+(allow heapprofd base_typeattr_714 (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow heapprofd base_typeattr_714 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf base_typeattr_715 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf base_typeattr_715 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf base_typeattr_715 (process (signal)))
+(allow base_typeattr_715 traced_perf_socket (sock_file (write)))
+(allow base_typeattr_715 traced_perf (unix_stream_socket (connectto)))
+(allow traced_perf base_typeattr_715 (fd (use)))
+(allow domain sysfs_fs_incfs_features (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain sysfs_fs_incfs_features (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain sysfs_fs_incfs_features (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain sysfs_fs_fuse_features (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow domain sysfs_fs_fuse_features (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain sysfs_fs_fuse_features (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain cgroup (dir (search)))
+(allow base_typeattr_716 cgroup (dir (write lock open add_name remove_name search)))
+(allow base_typeattr_716 cgroup (file (write lock append map open)))
+(allow domain cgroup_v2 (dir (search)))
+(allow base_typeattr_716 cgroup_v2 (dir (write lock open add_name remove_name search)))
+(allow base_typeattr_716 cgroup_v2 (file (write lock append map open)))
+(allow domain cgroup_rc_file (dir (search)))
+(allow domain cgroup_rc_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain task_profiles_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain task_profiles_api_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain vendor_task_profiles_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain use_memfd_prop (file (read getattr map open)))
+(allow domain module_sdkextensions_prop (file (read getattr map open)))
+(allow domain bq_config_prop (file (read getattr map open)))
+(allow domain permissive_mte_prop (file (read getattr map open)))
+(allow domain device_config_memory_safety_native_boot_prop (file (read getattr map open)))
+(allow domain device_config_memory_safety_native_prop (file (read getattr map open)))
+(allow domain device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow domain device_config_runtime_native_prop (file (read getattr map open)))
+(allow appdomain core_property_type (file (read getattr map open)))
+(allow coredomain core_property_type (file (read getattr map open)))
+(allow shell core_property_type (file (read getattr map open)))
+(allow appdomain exported3_system_prop (file (read getattr map open)))
+(allow coredomain exported3_system_prop (file (read getattr map open)))
+(allow shell exported3_system_prop (file (read getattr map open)))
+(allow appdomain exported_camera_prop (file (read getattr map open)))
+(allow coredomain exported_camera_prop (file (read getattr map open)))
+(allow shell exported_camera_prop (file (read getattr map open)))
+(allow coredomain userspace_reboot_exported_prop (file (read getattr map open)))
+(allow shell userspace_reboot_exported_prop (file (read getattr map open)))
+(allow coredomain userspace_reboot_log_prop (file (read getattr map open)))
+(allow shell userspace_reboot_log_prop (file (read getattr map open)))
+(allow coredomain userspace_reboot_test_prop (file (read getattr map open)))
+(allow shell userspace_reboot_test_prop (file (read getattr map open)))
+(allow base_typeattr_717 vendor_default_prop (file (read getattr map open)))
+(allow domain aaudio_config_prop (file (read getattr map open)))
+(allow domain apexd_select_prop (file (read getattr map open)))
+(allow domain arm64_memtag_prop (file (read getattr map open)))
+(allow domain bluetooth_config_prop (file (read getattr map open)))
+(allow domain bootloader_prop (file (read getattr map open)))
+(allow domain build_odm_prop (file (read getattr map open)))
+(allow domain build_prop (file (read getattr map open)))
+(allow domain build_vendor_prop (file (read getattr map open)))
+(allow domain debug_prop (file (read getattr map open)))
+(allow domain exported_config_prop (file (read getattr map open)))
+(allow domain exported_default_prop (file (read getattr map open)))
+(allow domain exported_dumpstate_prop (file (read getattr map open)))
+(allow domain exported_secure_prop (file (read getattr map open)))
+(allow domain exported_system_prop (file (read getattr map open)))
+(allow domain fingerprint_prop (file (read getattr map open)))
+(allow domain framework_status_prop (file (read getattr map open)))
+(allow domain gwp_asan_prop (file (read getattr map open)))
+(allow domain hal_instrumentation_prop (file (read getattr map open)))
+(allow domain hw_timeout_multiplier_prop (file (read getattr map open)))
+(allow domain init_service_status_prop (file (read getattr map open)))
+(allow domain libc_debug_prop (file (read getattr map open)))
+(allow domain locale_prop (file (read getattr map open)))
+(allow domain logd_prop (file (read getattr map open)))
+(allow domain mediadrm_config_prop (file (read getattr map open)))
+(allow domain property_service_version_prop (file (read getattr map open)))
+(allow domain soc_prop (file (read getattr map open)))
+(allow domain socket_hook_prop (file (read getattr map open)))
+(allow domain surfaceflinger_prop (file (read getattr map open)))
+(allow domain telephony_status_prop (file (read getattr map open)))
+(allow domain timezone_prop (file (read getattr map open)))
+(allow base_typeattr_718 userdebug_or_eng_prop (file (read getattr map open)))
+(allow domain vendor_socket_hook_prop (file (read getattr map open)))
+(allow domain vndk_prop (file (read getattr map open)))
+(allow domain vold_status_prop (file (read getattr map open)))
+(allow domain vts_config_prop (file (read getattr map open)))
+(allow domain binder_cache_bluetooth_server_prop (file (read getattr map open)))
+(allow domain binder_cache_system_server_prop (file (read getattr map open)))
+(allow domain binder_cache_telephony_server_prop (file (read getattr map open)))
+(allow domain kernel (key (search)))
+(allow domain fsverity_init (key (search)))
+(allow domain linkerconfig_file (dir (search)))
+(allow domain linkerconfig_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow domain boringssl_self_test_marker (dir (search)))
+(allow domain log_file_logger_prop (file (read getattr map open)))
+(allow domain prng_seeder_socket (sock_file (write)))
+(allow domain prng_seeder (unix_stream_socket (connectto)))
+(allow base_typeattr_719 shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow base_typeattr_719 toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+;;* lmx 230 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_720 misc_block_device (blk_file (ioctl read write lock relabelfrom append link rename open)))
+;;* lme
+
+;;* lmx 244 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_721 self (capability (sys_ptrace)))
+(neverallow base_typeattr_721 self (cap_userns (sys_ptrace)))
+;;* lme
+
+;;* lmx 247 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_722 base_typeattr_224 (keystore2_key (gen_unique_id)))
+;;* lme
+
+;;* lmx 248 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_305 base_typeattr_224 (keystore2_key (use_dev_id)))
+;;* lme
+
+;;* lmx 249 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_305 keystore (keystore2 (clear_ns lock reset unlock)))
+;;* lme
+
+;;* lmx 256 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_259 debugfs_tracing_debug (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 265 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_308 dropbox_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 271 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_308 dropbox_data_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 280 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_317 app_data_file (file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (dir (create unlink)))
+(neverallow base_typeattr_317 app_data_file (lnk_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (chr_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (blk_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (sock_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (fifo_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (dir (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (lnk_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (chr_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (blk_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (sock_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (fifo_file (create unlink)))
+;;* lme
+
+;;* lmx 298 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_723 app_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow base_typeattr_723 privapp_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 308 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_724 app_data_file (dir (write create setattr relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm add_name remove_name reparent rmdir)))
+(neverallow base_typeattr_724 privapp_data_file (dir (write create setattr relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 317 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_725 app_data_file (file (open)))
+(neverallow base_typeattr_725 app_data_file (lnk_file (open)))
+(neverallow base_typeattr_725 app_data_file (chr_file (open)))
+(neverallow base_typeattr_725 app_data_file (blk_file (open)))
+(neverallow base_typeattr_725 app_data_file (sock_file (open)))
+(neverallow base_typeattr_725 app_data_file (fifo_file (open)))
+(neverallow base_typeattr_725 privapp_data_file (file (open)))
+(neverallow base_typeattr_725 privapp_data_file (lnk_file (open)))
+(neverallow base_typeattr_725 privapp_data_file (chr_file (open)))
+(neverallow base_typeattr_725 privapp_data_file (blk_file (open)))
+(neverallow base_typeattr_725 privapp_data_file (sock_file (open)))
+(neverallow base_typeattr_725 privapp_data_file (fifo_file (open)))
+;;* lme
+
+;;* lmx 324 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_317 app_data_file (file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (dir (create unlink)))
+(neverallow base_typeattr_317 app_data_file (lnk_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (chr_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (blk_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (sock_file (create unlink)))
+(neverallow base_typeattr_317 app_data_file (fifo_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (dir (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (lnk_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (chr_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (blk_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (sock_file (create unlink)))
+(neverallow base_typeattr_317 privapp_data_file (fifo_file (create unlink)))
+;;* lme
+
+;;* lmx 330 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_726 app_data_file (file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 app_data_file (dir (relabelfrom relabelto)))
+(neverallow base_typeattr_726 app_data_file (lnk_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 app_data_file (chr_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 app_data_file (blk_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 app_data_file (sock_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 app_data_file (fifo_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 privapp_data_file (file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 privapp_data_file (dir (relabelfrom relabelto)))
+(neverallow base_typeattr_726 privapp_data_file (lnk_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 privapp_data_file (chr_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 privapp_data_file (blk_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 privapp_data_file (sock_file (relabelfrom relabelto)))
+(neverallow base_typeattr_726 privapp_data_file (fifo_file (relabelfrom relabelto)))
+;;* lme
+
+;;* lmx 344 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_727 staging_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 358 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_728 staging_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 359 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_729 staging_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 363 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_308 staging_data_file (file (write create setattr relabelfrom append rename execute execute_no_trans)))
+;;* lme
+
+;;* lmx 370 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_730 base_typeattr_731 (file (execute)))
+;;* lme
+
+;;* lmx 399 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_732 base_typeattr_733 (file (execute)))
+;;* lme
+
+;;* lmx 406 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_259 cgroup_rc_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 419 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_734 dalvikcache_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 431 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_734 dalvikcache_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 446 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_735 apex_art_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 459 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_735 apex_art_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 471 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_233 base_typeattr_629 (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 499 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_736 self (capability (dac_override)))
+(neverallow base_typeattr_736 self (cap_userns (dac_override)))
+;;* lme
+
+;;* lmx 509 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_737 self (capability (dac_read_search)))
+(neverallow base_typeattr_737 self (cap_userns (dac_read_search)))
+;;* lme
+
+;;* lmx 528 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_738 base_typeattr_739 (filesystem (mount remount relabelfrom relabelto)))
+;;* lme
+
+;;* lmx 530 system/sepolicy/private/domain.te
+
+(neverallow domain base_typeattr_740 (filesystem (mount remount relabelfrom relabelto)))
+;;* lme
+
+;;* lmx 549 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_741 self (capability (sys_rawio)))
+(neverallow base_typeattr_741 self (cap_userns (sys_rawio)))
+;;* lme
+
+;;* lmx 558 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_742 mirror_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 561 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_266 net_dns_prop (property_service (set)))
+;;* lme
+
+;;* lmx 562 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_261 net_dns_prop (file (read)))
+;;* lme
+
+;;* lmx 565 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_308 pm_prop (property_service (set)))
+;;* lme
+
+;;* lmx 566 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_250 pm_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 569 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_743 firstboot_prop (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 573 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_744 dalvik_config_prop (property_service (set)))
+;;* lme
+
+;;* lmx 576 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_259 debugfs_kprobes (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 580 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_745 vendor_file (file (write create setattr relabelfrom append unlink link rename execute open execute_no_trans)))
+;;* lme
+
+;;* lmx 597 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_746 base_typeattr_747 (socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (tcp_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (udp_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (rawip_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (packet_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (key_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (unix_stream_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (unix_dgram_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_route_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_tcpdiag_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_nflog_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_xfrm_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_selinux_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_audit_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_dnrt_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_kobject_uevent_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (appletalk_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (tun_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_iscsi_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_fib_lookup_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_connector_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_netfilter_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_generic_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_scsitransport_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_rdma_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netlink_crypto_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (sctp_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (icmp_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (ax25_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (ipx_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (netrom_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (atmpvc_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (x25_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (rose_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (decnet_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (atmsvc_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (rds_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (irda_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (pppox_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (llc_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (can_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (tipc_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (bluetooth_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (iucv_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (rxrpc_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (isdn_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (phonet_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (ieee802154_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (caif_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (alg_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (nfc_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (vsock_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (kcm_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (qipcrtr_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (smc_socket (connect sendto)))
+(neverallow base_typeattr_746 base_typeattr_747 (xdp_socket (connect sendto)))
+;;* lme
+
+;;* lmx 597 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_746 base_typeattr_747 (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 618 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_748 base_typeattr_749 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 663 system/sepolicy/private/domain.te
+
+(neverallow domain mlsvendorcompat (process (fork)))
+;;* lme
+
+;;* lmx 667 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_750 system_file_type (file (mounton)))
+(neverallow base_typeattr_750 system_file_type (dir (mounton)))
+(neverallow base_typeattr_750 system_file_type (lnk_file (mounton)))
+(neverallow base_typeattr_750 system_file_type (chr_file (mounton)))
+(neverallow base_typeattr_750 system_file_type (blk_file (mounton)))
+(neverallow base_typeattr_750 system_file_type (sock_file (mounton)))
+(neverallow base_typeattr_750 system_file_type (fifo_file (mounton)))
+(neverallow base_typeattr_750 vendor_file_type (file (mounton)))
+(neverallow base_typeattr_750 vendor_file_type (dir (mounton)))
+(neverallow base_typeattr_750 vendor_file_type (lnk_file (mounton)))
+(neverallow base_typeattr_750 vendor_file_type (chr_file (mounton)))
+(neverallow base_typeattr_750 vendor_file_type (blk_file (mounton)))
+(neverallow base_typeattr_750 vendor_file_type (sock_file (mounton)))
+(neverallow base_typeattr_750 vendor_file_type (fifo_file (mounton)))
+;;* lme
+
+;;* lmx 676 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_260 mm_events_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 689 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_751 proc_kallsyms (file (read open)))
+;;* lme
+
+;;* lmx 695 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_752 base_typeattr_753 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 711 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_754 sysfs_devices_cs_etm (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 721 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_755 self (capability2 (perfmon)))
+;;* lme
+
+;;* lmx 741 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_756 shell_data_file (file (open)))
+;;* lme
+
+;;* lmx 759 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_757 shell_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 772 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_758 shell_data_file (dir (open)))
+;;* lme
+
+;;* lmx 787 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_758 shell_data_file (dir (search)))
+;;* lme
+
+;;* lmx 799 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_759 system_app_data_file (file (create unlink open)))
+(neverallow base_typeattr_759 system_app_data_file (dir (create unlink open)))
+(neverallow base_typeattr_759 system_app_data_file (lnk_file (create unlink open)))
+(neverallow base_typeattr_759 system_app_data_file (chr_file (create unlink open)))
+(neverallow base_typeattr_759 system_app_data_file (blk_file (create unlink open)))
+(neverallow base_typeattr_759 system_app_data_file (sock_file (create unlink open)))
+(neverallow base_typeattr_759 system_app_data_file (fifo_file (create unlink open)))
+;;* lme
+
+;;* lmx 806 system/sepolicy/private/domain.te
+
+(neverallow untrusted_app_all system_app_data_file (file (create unlink open)))
+(neverallow untrusted_app_all system_app_data_file (dir (create unlink open)))
+(neverallow untrusted_app_all system_app_data_file (lnk_file (create unlink open)))
+(neverallow untrusted_app_all system_app_data_file (chr_file (create unlink open)))
+(neverallow untrusted_app_all system_app_data_file (blk_file (create unlink open)))
+(neverallow untrusted_app_all system_app_data_file (sock_file (create unlink open)))
+(neverallow untrusted_app_all system_app_data_file (fifo_file (create unlink open)))
+(neverallow isolated_app_all system_app_data_file (file (create unlink open)))
+(neverallow isolated_app_all system_app_data_file (dir (create unlink open)))
+(neverallow isolated_app_all system_app_data_file (lnk_file (create unlink open)))
+(neverallow isolated_app_all system_app_data_file (chr_file (create unlink open)))
+(neverallow isolated_app_all system_app_data_file (blk_file (create unlink open)))
+(neverallow isolated_app_all system_app_data_file (sock_file (create unlink open)))
+(neverallow isolated_app_all system_app_data_file (fifo_file (create unlink open)))
+(neverallow ephemeral_app system_app_data_file (file (create unlink open)))
+(neverallow ephemeral_app system_app_data_file (dir (create unlink open)))
+(neverallow ephemeral_app system_app_data_file (lnk_file (create unlink open)))
+(neverallow ephemeral_app system_app_data_file (chr_file (create unlink open)))
+(neverallow ephemeral_app system_app_data_file (blk_file (create unlink open)))
+(neverallow ephemeral_app system_app_data_file (sock_file (create unlink open)))
+(neverallow ephemeral_app system_app_data_file (fifo_file (create unlink open)))
+(neverallow priv_app system_app_data_file (file (create unlink open)))
+(neverallow priv_app system_app_data_file (dir (create unlink open)))
+(neverallow priv_app system_app_data_file (lnk_file (create unlink open)))
+(neverallow priv_app system_app_data_file (chr_file (create unlink open)))
+(neverallow priv_app system_app_data_file (blk_file (create unlink open)))
+(neverallow priv_app system_app_data_file (sock_file (create unlink open)))
+(neverallow priv_app system_app_data_file (fifo_file (create unlink open)))
+(neverallow sdk_sandbox_all system_app_data_file (file (create unlink open)))
+(neverallow sdk_sandbox_all system_app_data_file (dir (create unlink open)))
+(neverallow sdk_sandbox_all system_app_data_file (lnk_file (create unlink open)))
+(neverallow sdk_sandbox_all system_app_data_file (chr_file (create unlink open)))
+(neverallow sdk_sandbox_all system_app_data_file (blk_file (create unlink open)))
+(neverallow sdk_sandbox_all system_app_data_file (sock_file (create unlink open)))
+(neverallow sdk_sandbox_all system_app_data_file (fifo_file (create unlink open)))
+;;* lme
+
+;;* lmx 808 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_223 mtectrl (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 811 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_760 checkin_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_760 checkin_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 814 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_761 aconfig_storage_metadata_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 815 system/sepolicy/private/domain.te
+
+(neverallow base_typeattr_761 aconfig_storage_metadata_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+(allow init drmserver_exec (file (read getattr map execute open)))
+(allow init drmserver (process (transition)))
+(allow drmserver drmserver_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init drmserver (process (noatsecure)))
+(allow init drmserver (process (siginh rlimitinh)))
+(typetransition init drmserver_exec process drmserver)
+(typetransition drmserver apk_data_file sock_file drmserver_socket)
+(allow drmserver drm_service_config_prop (file (read getattr map open)))
+(allow init dumpstate_exec (file (read getattr map execute open)))
+(allow init dumpstate (process (transition)))
+(allow dumpstate dumpstate_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init dumpstate (process (noatsecure)))
+(allow init dumpstate (process (siginh rlimitinh)))
+(typetransition init dumpstate_exec process dumpstate)
+(allow dumpstate vdc_exec (file (read getattr map execute open)))
+(allow dumpstate vdc (process (transition)))
+(allow vdc vdc_exec (file (read getattr map execute open entrypoint)))
+(allow vdc dumpstate (process (sigchld)))
+(dontaudit dumpstate vdc (process (noatsecure)))
+(allow dumpstate vdc (process (siginh rlimitinh)))
+(typetransition dumpstate vdc_exec process vdc)
+(typetransition dumpstate tmpfs file dumpstate_tmpfs)
+(allow dumpstate dumpstate_tmpfs (file (read write getattr map)))
+(allow dumpstate system_file (file (lock)))
+(allow dumpstate storaged_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dumpstate incidentd (binder (call transfer)))
+(allow incidentd dumpstate (binder (transfer)))
+(allow dumpstate incidentd (fd (use)))
+(allow dumpstate incident (process (sigkill signal)))
+(allow dumpstate storaged (binder (call transfer)))
+(allow storaged dumpstate (binder (transfer)))
+(allow dumpstate storaged (fd (use)))
+(allow dumpstate statsd (binder (call transfer)))
+(allow statsd dumpstate (binder (transfer)))
+(allow dumpstate statsd (fd (use)))
+(allow dumpstate gpuservice (binder (call transfer)))
+(allow gpuservice dumpstate (binder (transfer)))
+(allow dumpstate gpuservice (fd (use)))
+(allow dumpstate idmap (binder (call transfer)))
+(allow idmap dumpstate (binder (transfer)))
+(allow dumpstate idmap (fd (use)))
+(allow dumpstate automotive_display_service (binder (call transfer)))
+(allow automotive_display_service dumpstate (binder (transfer)))
+(allow dumpstate automotive_display_service (fd (use)))
+(allow dumpstate virtual_camera (binder (call transfer)))
+(allow virtual_camera dumpstate (binder (transfer)))
+(allow dumpstate virtual_camera (fd (use)))
+(allow dumpstate ot_daemon (binder (call transfer)))
+(allow ot_daemon dumpstate (binder (transfer)))
+(allow dumpstate ot_daemon (fd (use)))
+(allow dumpstate boottime_prop (file (read getattr map open)))
+(allow dumpstate misctrl_prop (file (read getattr map open)))
+(allow dumpstate mediatranscoding (process (signal)))
+(allow dumpstate netd (process (signal)))
+(allow dumpstate statsd (process (signal)))
+(allow dumpstate ot_daemon (process (signal)))
+(allow dumpstate virtual_camera (process (signal)))
+(dontaudit dumpstate keystore (process (signal)))
+(allow dumpstate dev_type (blk_file (getattr)))
+(allow dumpstate webview_zygote (process (signal)))
+(allow dumpstate sysfs_dmabuf_stats (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit dumpstate update_engine (binder (call)))
+(allow dumpstate proc_net_tcp_udp (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate proc_pid_max (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate config_gz (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate incidentcompanion_service (binder (call transfer)))
+(allow incidentcompanion_service dumpstate (binder (transfer)))
+(allow dumpstate incidentcompanion_service (fd (use)))
+(allow dumpstate property_socket (sock_file (write)))
+(allow dumpstate init (unix_stream_socket (connectto)))
+(allow dumpstate dumpstate_prop (property_service (set)))
+(allow dumpstate dumpstate_prop (file (read getattr map open)))
+(allow dumpstate property_socket (sock_file (write)))
+(allow dumpstate init (unix_stream_socket (connectto)))
+(allow dumpstate exported_dumpstate_prop (property_service (set)))
+(allow dumpstate exported_dumpstate_prop (file (read getattr map open)))
+(allow dumpstate property_socket (sock_file (write)))
+(allow dumpstate init (unix_stream_socket (connectto)))
+(allow dumpstate dumpstate_options_prop (property_service (set)))
+(allow dumpstate dumpstate_options_prop (file (read getattr map open)))
+(allow dumpstate property_socket (sock_file (write)))
+(allow dumpstate init (unix_stream_socket (connectto)))
+(allow dumpstate ctl_dumpstate_prop (property_service (set)))
+(allow dumpstate ctl_dumpstate_prop (file (read getattr map open)))
+(allow dumpstate property_socket (sock_file (write)))
+(allow dumpstate init (unix_stream_socket (connectto)))
+(allow dumpstate lpdumpd_prop (property_service (set)))
+(allow dumpstate lpdumpd_prop (file (read getattr map open)))
+(allow dumpstate lpdumpd (binder (call transfer)))
+(allow lpdumpd dumpstate (binder (transfer)))
+(allow dumpstate lpdumpd (fd (use)))
+(allow dumpstate hypervisor_prop (file (read getattr map open)))
+(allow dumpstate gsid_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow dumpstate property_socket (sock_file (write)))
+(allow dumpstate init (unix_stream_socket (connectto)))
+(allow dumpstate ctl_gsid_prop (property_service (set)))
+(allow dumpstate ctl_gsid_prop (file (read getattr map open)))
+(allow dumpstate gsid (binder (call transfer)))
+(allow gsid dumpstate (binder (transfer)))
+(allow dumpstate gsid (fd (use)))
+(allow dumpstate ota_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow dumpstate ota_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate ota_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow dumpstate perfetto_exec (file (read getattr map execute open)))
+(allow dumpstate perfetto (process (transition)))
+(allow perfetto perfetto_exec (file (read getattr map execute open entrypoint)))
+(allow perfetto dumpstate (process (sigchld)))
+(dontaudit dumpstate perfetto (process (noatsecure)))
+(allow dumpstate perfetto (process (siginh rlimitinh)))
+(typetransition dumpstate perfetto_exec process perfetto)
+(allow dumpstate perfetto (process (signal)))
+(allow dumpstate perfetto_traces_data_file (dir (search)))
+(allow dumpstate perfetto_traces_bugreport_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow dumpstate perfetto_traces_bugreport_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow perfetto dumpstate_tmpfs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow perfetto dumpstate (fd (use)))
+(allow dumpstate system_dlkm_file (dir (getattr)))
+(allow dumpstate derive_sdk_exec (file (read getattr map execute open)))
+(allow dumpstate derive_sdk (process (transition)))
+(allow derive_sdk derive_sdk_exec (file (read getattr map execute open entrypoint)))
+(allow derive_sdk dumpstate (process (sigchld)))
+(dontaudit dumpstate derive_sdk (process (noatsecure)))
+(allow dumpstate derive_sdk (process (siginh rlimitinh)))
+(typetransition dumpstate derive_sdk_exec process derive_sdk)
+(typetransition ephemeral_app tmpfs file appdomain_tmpfs)
+(allow ephemeral_app ephemeral_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su ephemeral_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 17 system/sepolicy/private/ephemeral_app.te
+
+(neverallow base_typeattr_762 ephemeral_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow ephemeral_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 17 system/sepolicy/private/ephemeral_app.te
+
+(neverallow base_typeattr_763 base_typeattr_762 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 17 system/sepolicy/private/ephemeral_app.te
+
+(neverallow base_typeattr_764 ephemeral_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 17 system/sepolicy/private/ephemeral_app.te
+
+(neverallow base_typeattr_765 ephemeral_app (process (ptrace)))
+;;* lme
+
+(allow ephemeral_app sdcard_type (file (ioctl read write getattr lock append)))
+(allow ephemeral_app fuse (file (ioctl read write getattr lock append)))
+(allow ephemeral_app media_rw_data_file (file (ioctl read write getattr lock append)))
+(allow ephemeral_app privapp_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow ephemeral_app app_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow ephemeral_app privapp_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow ephemeral_app rs_exec (file (read getattr map execute open)))
+(allow ephemeral_app rs (process (transition)))
+(allow rs rs_exec (file (read getattr map execute open entrypoint)))
+(allow rs ephemeral_app (process (sigchld)))
+(dontaudit ephemeral_app rs (process (noatsecure)))
+(allow ephemeral_app rs (process (siginh rlimitinh)))
+(typetransition ephemeral_app rs_exec process rs)
+(allow ephemeral_app app_exec_data_file (file (ioctl read getattr lock map unlink execute open watch watch_reads)))
+(allow ephemeral_app audioserver_service (service_manager (find)))
+(allow ephemeral_app cameraserver_service (service_manager (find)))
+(allow ephemeral_app mediaserver_service (service_manager (find)))
+(allow ephemeral_app mediaextractor_service (service_manager (find)))
+(allow ephemeral_app mediametrics_service (service_manager (find)))
+(allow ephemeral_app mediadrmserver_service (service_manager (find)))
+(allow ephemeral_app drmserver_service (service_manager (find)))
+(allow ephemeral_app radio_service (service_manager (find)))
+(allow ephemeral_app ephemeral_app_api_service (service_manager (find)))
+(allow ephemeral_app system_server (udp_socket (read write getattr connect getopt setopt recvfrom sendto)))
+(allow ephemeral_app ashmem_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lmx 59 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app app_data_file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 62 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 65 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app debugfs_type (file (read)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app gpu_device (chr_file (execute)))
+;;* lme
+
+;;* lmx 75 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app sysfs (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 82 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app sdcard_type (file (create open)))
+(neverallow ephemeral_app fuse (file (create open)))
+(neverallow ephemeral_app media_rw_data_file (file (create open)))
+;;* lme
+
+;;* lmx 83 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app sdcard_type (dir (search)))
+(neverallow ephemeral_app fuse (dir (search)))
+(neverallow ephemeral_app media_rw_data_file (dir (search)))
+;;* lme
+
+;;* lmx 87 system/sepolicy/private/ephemeral_app.te
+
+(neverallow ephemeral_app proc_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow init evsmanagerd_exec (file (read getattr map execute open)))
+(allow init evsmanagerd (process (transition)))
+(allow evsmanagerd evsmanagerd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init evsmanagerd (process (noatsecure)))
+(allow init evsmanagerd (process (siginh rlimitinh)))
+(typetransition init evsmanagerd_exec process evsmanagerd)
+(allow evsmanagerd evsmanagerd_service (service_manager (add find)))
+;;* lmx 13 system/sepolicy/private/evsmanagerd.te
+
+(neverallow base_typeattr_766 evsmanagerd_service (service_manager (add)))
+;;* lme
+
+(allow evsmanagerd servicemanager (binder (call transfer)))
+(allow servicemanager evsmanagerd (binder (call transfer)))
+(allow servicemanager evsmanagerd (dir (search)))
+(allow servicemanager evsmanagerd (file (read open)))
+(allow servicemanager evsmanagerd (process (getattr)))
+(allow evsmanagerd system_server (binder (call transfer)))
+(allow system_server evsmanagerd (binder (transfer)))
+(allow evsmanagerd system_server (fd (use)))
+(allow evsmanagerd shell (fd (use)))
+(allow evsmanagerd shell (fifo_file (write)))
+(allow evsmanagerd hal_graphics_allocator (fd (use)))
+(allow evsmanagerd statsbootstrap_service (service_manager (find)))
+(allow evsmanagerd appdomain (binder (call transfer)))
+(allow appdomain evsmanagerd (binder (transfer)))
+(allow evsmanagerd appdomain (fd (use)))
+(allow evsmanagerd hal_evs_hwservice (hwservice_manager (add)))
+(allow evsmanagerd hidl_base_hwservice (hwservice_manager (add)))
+(allow init extra_free_kbytes_exec (file (read getattr map execute open)))
+(allow init extra_free_kbytes (process (transition)))
+(allow extra_free_kbytes extra_free_kbytes_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init extra_free_kbytes (process (noatsecure)))
+(allow init extra_free_kbytes (process (siginh rlimitinh)))
+(typetransition init extra_free_kbytes_exec process extra_free_kbytes)
+(allow extra_free_kbytes property_socket (sock_file (write)))
+(allow extra_free_kbytes init (unix_stream_socket (connectto)))
+(allow extra_free_kbytes init_storage_prop (property_service (set)))
+(allow extra_free_kbytes init_storage_prop (file (read getattr map open)))
+(allow fastbootd self (capability (ipc_lock)))
+(allow fastbootd fastbootd_iouring (anon_inode (read write create map)))
+(allow fastbootd self (io_uring (sqpoll)))
+;;* lmx 57 system/sepolicy/private/fastbootd.te
+
+(neverallow base_typeattr_767 fastbootd_iouring (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(dontaudit fastbootd self (capability (ipc_lock)))
+(dontaudit fastbootd self (cap_userns (ipc_lock)))
+(allow init fingerprintd_exec (file (read getattr map execute open)))
+(allow init fingerprintd (process (transition)))
+(allow fingerprintd fingerprintd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init fingerprintd (process (noatsecure)))
+(allow init fingerprintd (process (siginh rlimitinh)))
+(typetransition init fingerprintd_exec process fingerprintd)
+(allow init flags_health_check_exec (file (read getattr map execute open)))
+(allow init flags_health_check (process (transition)))
+(allow flags_health_check flags_health_check_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init flags_health_check (process (noatsecure)))
+(allow init flags_health_check (process (siginh rlimitinh)))
+(typetransition init flags_health_check_exec process flags_health_check)
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_boot_count_prop (property_service (set)))
+(allow flags_health_check device_config_boot_count_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_core_experiments_team_internal_prop (property_service (set)))
+(allow flags_health_check device_config_core_experiments_team_internal_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_edgetpu_native_prop (property_service (set)))
+(allow flags_health_check device_config_edgetpu_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_reset_performed_prop (property_service (set)))
+(allow flags_health_check device_config_reset_performed_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_runtime_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_runtime_native_prop (property_service (set)))
+(allow flags_health_check device_config_runtime_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_input_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_input_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_lmkd_native_prop (property_service (set)))
+(allow flags_health_check device_config_lmkd_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_netd_native_prop (property_service (set)))
+(allow flags_health_check device_config_netd_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_nnapi_native_prop (property_service (set)))
+(allow flags_health_check device_config_nnapi_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_activity_manager_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_activity_manager_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_media_native_prop (property_service (set)))
+(allow flags_health_check device_config_media_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_mglru_native_prop (property_service (set)))
+(allow flags_health_check device_config_mglru_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_profcollect_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_profcollect_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_statsd_native_prop (property_service (set)))
+(allow flags_health_check device_config_statsd_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_statsd_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_statsd_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_storage_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_storage_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_swcodec_native_prop (property_service (set)))
+(allow flags_health_check device_config_swcodec_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_sys_traced_prop (property_service (set)))
+(allow flags_health_check device_config_sys_traced_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_window_manager_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_window_manager_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_configuration_prop (property_service (set)))
+(allow flags_health_check device_config_configuration_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_connectivity_prop (property_service (set)))
+(allow flags_health_check device_config_connectivity_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_surface_flinger_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_surface_flinger_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_aconfig_flags_prop (property_service (set)))
+(allow flags_health_check device_config_aconfig_flags_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_vendor_system_native_prop (property_service (set)))
+(allow flags_health_check device_config_vendor_system_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_vendor_system_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_vendor_system_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_virtualization_framework_native_prop (property_service (set)))
+(allow flags_health_check device_config_virtualization_framework_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_memory_safety_native_boot_prop (property_service (set)))
+(allow flags_health_check device_config_memory_safety_native_boot_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_memory_safety_native_prop (property_service (set)))
+(allow flags_health_check device_config_memory_safety_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_remote_key_provisioning_native_prop (property_service (set)))
+(allow flags_health_check device_config_remote_key_provisioning_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_camera_native_prop (property_service (set)))
+(allow flags_health_check device_config_camera_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check device_config_tethering_u_or_later_native_prop (property_service (set)))
+(allow flags_health_check device_config_tethering_u_or_later_native_prop (file (read getattr map open)))
+(allow flags_health_check property_socket (sock_file (write)))
+(allow flags_health_check init (unix_stream_socket (connectto)))
+(allow flags_health_check next_boot_prop (property_service (set)))
+(allow flags_health_check next_boot_prop (file (read getattr map open)))
+;;* lmx 43 system/sepolicy/private/flags_health_check.te
+
+(neverallow base_typeattr_336 device_config_boot_count_prop (property_service (set)))
+;;* lme
+
+;;* lmx 48 system/sepolicy/private/flags_health_check.te
+
+(neverallow base_typeattr_336 device_config_reset_performed_prop (property_service (set)))
+;;* lme
+
+(allow init fsck_exec (file (read getattr map execute open)))
+(allow init fsck (process (transition)))
+(allow fsck fsck_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init fsck (process (noatsecure)))
+(allow init fsck (process (siginh rlimitinh)))
+(typetransition init fsck_exec process fsck)
+(allow fsck metadata_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init fsverity_init_exec (file (read getattr map execute open)))
+(allow init fsverity_init (process (transition)))
+(allow fsverity_init fsverity_init_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init fsverity_init (process (noatsecure)))
+(allow init fsverity_init (process (siginh rlimitinh)))
+(typetransition init fsverity_init_exec process fsverity_init)
+(allow fsverity_init proc_keys (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit fsverity_init domain (key (view)))
+(allow fsverity_init kernel (key (view write search setattr)))
+(allow fsverity_init fsverity_init (key (view write search)))
+(allow fsverity_init odsign (fd (use)))
+(allow fsverity_init odsign_data_file (file (read getattr)))
+(allow fuseblkd self (capability (sys_admin)))
+(allow fuseblkd self (cap_userns (sys_admin)))
+(allow fuseblkd fuse_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow fuseblkd fuseblk (filesystem (mount unmount)))
+(allow fuseblkd fuseblkd_untrusted (fd (use)))
+(allow fuseblkd block_device (dir (search)))
+(allow fuseblkd mnt_media_rw_file (dir (search)))
+(allow fuseblkd mnt_media_rw_stub_file (dir (mounton)))
+;;* lmx 30 system/sepolicy/private/fuseblkd.te
+
+(neverallow base_typeattr_768 fuseblkd (process (transition)))
+;;* lme
+
+;;* lmx 31 system/sepolicy/private/fuseblkd.te
+
+(neverallow base_typeattr_224 fuseblkd (process (dyntransition)))
+;;* lme
+
+;;* lmx 32 system/sepolicy/private/fuseblkd.te
+
+(neverallow fuseblkd base_typeattr_769 (file (entrypoint)))
+;;* lme
+
+(allow fuseblkd_untrusted fuseblkd_exec (file (read getattr map execute open)))
+(allow fuseblkd_untrusted fuseblkd (process (transition)))
+(allow fuseblkd fuseblkd_exec (file (read getattr map execute open entrypoint)))
+(allow fuseblkd fuseblkd_untrusted (process (sigchld)))
+(dontaudit fuseblkd_untrusted fuseblkd (process (noatsecure)))
+(allow fuseblkd_untrusted fuseblkd (process (siginh rlimitinh)))
+(typetransition fuseblkd_untrusted fuseblkd_exec process fuseblkd)
+(allow fuseblkd_untrusted vold (fd (use)))
+(allow fuseblkd_untrusted block_device (dir (search)))
+(allow fuseblkd_untrusted super_block_device (blk_file (getattr)))
+(allow fuseblkd_untrusted fuse_device (chr_file (read write getattr open)))
+(allow fuseblkd_untrusted mnt_media_rw_file (dir (getattr search)))
+(allow fuseblkd_untrusted mnt_media_rw_stub_file (dir (getattr)))
+(allow fuseblkd_untrusted sysfs_dm (dir (search)))
+(allow fuseblkd_untrusted sysfs_dm (file (read getattr open)))
+(allow fuseblkd_untrusted dm_device (blk_file (getattr)))
+(allow fuseblkd_untrusted tmpfs (lnk_file (read)))
+(allow fuseblkd_untrusted loop_device (blk_file (getattr)))
+(allow fuseblkd_untrusted proc_filesystems (file (read getattr open)))
+(dontaudit fuseblkd_untrusted self (capability (sys_admin)))
+;;* lmx 65 system/sepolicy/private/fuseblkd_untrusted.te
+
+(neverallow fuseblkd_untrusted dm_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted root_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted frp_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted system_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted recovery_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted boot_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted userdata_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted cache_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted swap_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow fuseblkd_untrusted metadata_block_device (blk_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 68 system/sepolicy/private/fuseblkd_untrusted.te
+
+(neverallow base_typeattr_339 fuseblkd_untrusted (process (transition)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/private/fuseblkd_untrusted.te
+
+(neverallow base_typeattr_224 fuseblkd_untrusted (process (dyntransition)))
+;;* lme
+
+;;* lmx 70 system/sepolicy/private/fuseblkd_untrusted.te
+
+(neverallow fuseblkd_untrusted base_typeattr_770 (file (entrypoint)))
+;;* lme
+
+;;* lmx 77 system/sepolicy/private/fuseblkd_untrusted.te
+
+(neverallow fuseblkd_untrusted self (capability (setgid setuid sys_admin)))
+;;* lme
+
+;;* lmx 78 system/sepolicy/private/fuseblkd_untrusted.te
+
+(neverallow fuseblkd_untrusted self (capability (setgid setuid sys_admin)))
+(neverallow fuseblkd_untrusted self (cap_userns (setgid setuid sys_admin)))
+;;* lme
+
+;;* lmx 82 system/sepolicy/private/fuseblkd_untrusted.te
+
+(neverallow fuseblkd_untrusted fuseblk (filesystem (mount unmount relabelfrom relabelto)))
+;;* lme
+
+(allow fwk_bufferhub ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init fwk_bufferhub_exec (file (read getattr map execute open)))
+(allow init fwk_bufferhub (process (transition)))
+(allow fwk_bufferhub fwk_bufferhub_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init fwk_bufferhub (process (noatsecure)))
+(allow init fwk_bufferhub (process (siginh rlimitinh)))
+(typetransition init fwk_bufferhub_exec process fwk_bufferhub)
+(allow init gatekeeperd_exec (file (read getattr map execute open)))
+(allow init gatekeeperd (process (transition)))
+(allow gatekeeperd gatekeeperd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init gatekeeperd (process (noatsecure)))
+(allow init gatekeeperd (process (siginh rlimitinh)))
+(typetransition init gatekeeperd_exec process gatekeeperd)
+(allow gatekeeperd gsid_prop (file (read getattr map open)))
+(allow gki_apex_prepostinstall shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow gki_apex_prepostinstall toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow gki_apex_prepostinstall gki_apex_prepostinstall_exec (file (execute_no_trans)))
+(allow gki_apex_prepostinstall servicemanager (binder (call transfer)))
+(allow servicemanager gki_apex_prepostinstall (binder (call transfer)))
+(allow servicemanager gki_apex_prepostinstall (dir (search)))
+(allow servicemanager gki_apex_prepostinstall (file (read open)))
+(allow servicemanager gki_apex_prepostinstall (process (getattr)))
+(allow gki_apex_prepostinstall update_engine_stable_service (service_manager (find)))
+(allow gki_apex_prepostinstall update_engine (binder (call transfer)))
+(allow update_engine gki_apex_prepostinstall (binder (transfer)))
+(allow gki_apex_prepostinstall update_engine (fd (use)))
+(allow gki_apex_prepostinstall apexd (fd (use)))
+(typetransition gmscore_app tmpfs file appdomain_tmpfs)
+(allow gmscore_app gmscore_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su gmscore_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 6 system/sepolicy/private/gmscore_app.te
+
+(neverallow base_typeattr_771 gmscore_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow gmscore_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 6 system/sepolicy/private/gmscore_app.te
+
+(neverallow base_typeattr_772 base_typeattr_771 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/gmscore_app.te
+
+(neverallow base_typeattr_773 gmscore_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/gmscore_app.te
+
+(neverallow base_typeattr_774 gmscore_app (process (ptrace)))
+;;* lme
+
+(allow gmscore_app sysfs_type (dir (search)))
+(allow gmscore_app sysfs_zram (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gmscore_app sysfs_zram (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app sysfs_zram (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gmscore_app rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app config_gz (file (read getattr open)))
+(allow gmscore_app update_engine (binder (call transfer)))
+(allow update_engine gmscore_app (binder (transfer)))
+(allow gmscore_app update_engine (fd (use)))
+(allow gmscore_app update_engine_service (service_manager (find)))
+(allow gmscore_app storaged (binder (call transfer)))
+(allow storaged gmscore_app (binder (transfer)))
+(allow gmscore_app storaged (fd (use)))
+(allow gmscore_app storaged_service (service_manager (find)))
+(allow gmscore_app system_update_service (service_manager (find)))
+(allow gmscore_app statsd (binder (call transfer)))
+(allow statsd gmscore_app (binder (transfer)))
+(allow gmscore_app statsd (fd (use)))
+(allow gmscore_app perfetto (fd (use)))
+(allow gmscore_app perfetto_traces_data_file (file (read getattr)))
+(allow gmscore_app keystore (keystore2_key (gen_unique_id)))
+(allow gmscore_app selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app exec_type (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app device (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit gmscore_app fs_bpf (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit gmscore_app kernel (security (compute_av compute_create compute_member check_context load_policy compute_relabel compute_user setenforce setbool setsecparam setcheckreqprot read_policy validate_trans)))
+(dontaudit gmscore_app net_dns_prop (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app proc (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app proc_interrupts (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app proc_modules (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app proc_net (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit gmscore_app sysfs (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app sysfs_android_usb (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app sysfs_loop (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app sysfs_net (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app sysfs_net (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit gmscore_app wifi_hal_prop (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app wifi_prop (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit gmscore_app mirror_data_file (dir (search)))
+(dontaudit gmscore_app mnt_vendor_file (dir (search)))
+(allow gmscore_app self (process (ptrace)))
+(allow gmscore_app privapp_data_file (file (execute)))
+(allow gmscore_app system_linker_exec (file (execute_no_trans)))
+(allow gmscore_app privapp_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gmscore_app proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app gpuservice (binder (call transfer)))
+(allow gpuservice gmscore_app (binder (transfer)))
+(allow gmscore_app gpuservice (fd (use)))
+(allow gmscore_app gpu_service (service_manager (find)))
+(allow gmscore_app app_api_service (service_manager (find)))
+(allow gmscore_app system_api_service (service_manager (find)))
+(allow gmscore_app audioserver_service (service_manager (find)))
+(allow gmscore_app cameraserver_service (service_manager (find)))
+(allow gmscore_app drmserver_service (service_manager (find)))
+(allow gmscore_app mediadrmserver_service (service_manager (find)))
+(allow gmscore_app mediaextractor_service (service_manager (find)))
+(allow gmscore_app mediametrics_service (service_manager (find)))
+(allow gmscore_app mediaserver_service (service_manager (find)))
+(allow gmscore_app network_watchlist_service (service_manager (find)))
+(allow gmscore_app nfc_service (service_manager (find)))
+(allow gmscore_app oem_lock_service (service_manager (find)))
+(allow gmscore_app persistent_data_block_service (service_manager (find)))
+(allow gmscore_app radio_service (service_manager (find)))
+(allow gmscore_app recovery_service (service_manager (find)))
+(allow gmscore_app stats_service (service_manager (find)))
+(allow gmscore_app shell_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app shell_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gmscore_app cache_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow gmscore_app cache_recovery_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow gmscore_app cache_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gmscore_app cache_recovery_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gmscore_app cache_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app ota_package_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow gmscore_app ota_package_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gmscore_app checkin_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow gmscore_app checkin_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gmscore_app shell_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app shell_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gmscore_app anr_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gmscore_app priv_app (tcp_socket (read write)))
+(allow gmscore_app virtual_ab_prop (file (read getattr map open)))
+(allow gmscore_app dck_prop (file (read getattr map open)))
+(allow gmscore_app remote_prov_prop (file (read getattr map open)))
+(allow gmscore_app quick_start_prop (file (read getattr map open)))
+;;* lmx 158 system/sepolicy/private/gmscore_app.te
+
+(neverallow base_typeattr_775 quick_start_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 161 system/sepolicy/private/gmscore_app.te
+
+(neverallow gmscore_app sysfs_net (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 165 system/sepolicy/private/gmscore_app.te
+
+(neverallowx gmscore_app domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx gmscore_app domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx gmscore_app domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx gmscore_app domain (ioctl icmp_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 165 system/sepolicy/private/gmscore_app.te
+
+(neverallowx gmscore_app domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx gmscore_app domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx gmscore_app domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx gmscore_app domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 165 system/sepolicy/private/gmscore_app.te
+
+(neverallowx gmscore_app domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx gmscore_app domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx gmscore_app domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx gmscore_app domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+;;* lmx 166 system/sepolicy/private/gmscore_app.te
+
+(neverallow gmscore_app base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow gmscore_app base_typeattr_224 (netlink_selinux_socket (ioctl)))
+;;* lme
+
+;;* lmx 179 system/sepolicy/private/gmscore_app.te
+
+(neverallow gmscore_app base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow gmscore_app base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow gmscore_app base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow gmscore_app base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow gmscore_app base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow gmscore_app base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow gmscore_app base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+(allow init gpuservice_exec (file (read getattr map execute open)))
+(allow init gpuservice (process (transition)))
+(allow gpuservice gpuservice_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init gpuservice (process (noatsecure)))
+(allow init gpuservice (process (siginh rlimitinh)))
+(typetransition init gpuservice_exec process gpuservice)
+(allow gpuservice adbd (binder (call transfer)))
+(allow adbd gpuservice (binder (transfer)))
+(allow gpuservice adbd (fd (use)))
+(allow gpuservice shell (binder (call transfer)))
+(allow shell gpuservice (binder (transfer)))
+(allow gpuservice shell (fd (use)))
+(allow gpuservice system_server (binder (call transfer)))
+(allow system_server gpuservice (binder (transfer)))
+(allow gpuservice system_server (fd (use)))
+(allow gpuservice servicemanager (binder (call transfer)))
+(allow servicemanager gpuservice (binder (call transfer)))
+(allow servicemanager gpuservice (dir (search)))
+(allow servicemanager gpuservice (file (read open)))
+(allow servicemanager gpuservice (process (getattr)))
+(allow gpuservice gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow gpuservice same_process_hal_file (file (read getattr map execute open)))
+(allow gpuservice ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gpuservice hwservicemanager_prop (file (read getattr map open)))
+(allow gpuservice hwservicemanager (binder (call transfer)))
+(allow hwservicemanager gpuservice (binder (call transfer)))
+(allow hwservicemanager gpuservice (dir (search)))
+(allow hwservicemanager gpuservice (file (read map open)))
+(allow hwservicemanager gpuservice (process (getattr)))
+(allow gpuservice graphics_device (dir (search)))
+(allow gpuservice graphics_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow gpuservice adbd (fd (use)))
+(allow gpuservice adbd (unix_stream_socket (read write getattr)))
+(allow gpuservice shell (fifo_file (read write getattr)))
+(allow gpuservice traced (fd (use)))
+(allow gpuservice traced_tmpfs (file (read write getattr map)))
+(allow gpuservice traced_producer_socket (sock_file (write)))
+(allow gpuservice traced (unix_stream_socket (connectto)))
+(allow traced gpuservice (fd (use)))
+(allow gpuservice devpts (chr_file (read write getattr)))
+(allow gpuservice dumpstate (fd (use)))
+(allow gpuservice dumpstate (fifo_file (write)))
+(allow gpuservice stats_service (service_manager (find)))
+(allow gpuservice statsmanager_service (service_manager (find)))
+(allow gpuservice statsd (binder (call transfer)))
+(allow statsd gpuservice (binder (transfer)))
+(allow gpuservice statsd (fd (use)))
+(allow gpuservice debugfs_tracing (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gpuservice self (perf_event (open cpu kernel write)))
+;;* lmx 52 system/sepolicy/private/gpuservice.te
+
+(neverallow gpuservice self (perf_event (tracepoint read)))
+;;* lme
+
+(allow gpuservice fs_bpf (file (read write)))
+(allow gpuservice bpfloader (bpf (map_read map_write prog_run)))
+(allow gpuservice gpu_service (service_manager (add find)))
+;;* lmx 61 system/sepolicy/private/gpuservice.te
+
+(neverallow base_typeattr_776 gpu_service (service_manager (add)))
+;;* lme
+
+(allow gpuservice property_socket (sock_file (write)))
+(allow gpuservice init (unix_stream_socket (connectto)))
+(allow gpuservice graphics_config_writable_prop (property_service (set)))
+(allow gpuservice graphics_config_writable_prop (file (read getattr map open)))
+;;* lmx 66 system/sepolicy/private/gpuservice.te
+
+(neverallow base_typeattr_777 graphics_config_writable_prop (property_service (set)))
+;;* lme
+
+(allow gpuservice permission_service (service_manager (find)))
+(allow init gsid_exec (file (read getattr map execute open)))
+(allow init gsid (process (transition)))
+(allow gsid gsid_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init gsid (process (noatsecure)))
+(allow init gsid (process (siginh rlimitinh)))
+(typetransition init gsid_exec process gsid)
+(allow gsid servicemanager (binder (call transfer)))
+(allow servicemanager gsid (binder (call transfer)))
+(allow servicemanager gsid (dir (search)))
+(allow servicemanager gsid (file (read open)))
+(allow servicemanager gsid (process (getattr)))
+(allow gsid gsi_service (service_manager (add find)))
+;;* lmx 11 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_778 gsi_service (service_manager (add)))
+;;* lme
+
+(allow gsid vold_service (service_manager (find)))
+(allow gsid vold (binder (call transfer)))
+(allow vold gsid (binder (transfer)))
+(allow gsid vold (fd (use)))
+(allow gsid property_socket (sock_file (write)))
+(allow gsid init (unix_stream_socket (connectto)))
+(allow gsid gsid_prop (property_service (set)))
+(allow gsid gsid_prop (file (read getattr map open)))
+(allow gsid dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow gsid dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow gsid self (capability (sys_admin)))
+(allow gsid self (cap_userns (sys_admin)))
+(dontaudit gsid self (capability (dac_override)))
+(dontaudit gsid self (cap_userns (dac_override)))
+(allow gsid loop_control_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow gsid loop_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx gsid loop_device (ioctl blk_file (0x1261)))
+(allowx gsid loop_device (ioctl blk_file ((range 0x4c00 0x4c01) (range 0x4c04 0x4c05) (range 0x4c08 0x4c09))))
+(allow gsid sysfs_dm (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gsid sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid sysfs_dm (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid sysfs_fs_f2fs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gsid sysfs_fs_f2fs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid sysfs_fs_f2fs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid gsi_metadata_file_type (dir (search)))
+(allow gsid metadata_file (dir (search)))
+(allow gsid gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid sysfs_dt_firmware_android (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gsid sysfs_dt_firmware_android (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gsid super_block_device_type (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allowx gsid super_block_device_type (ioctl blk_file (0x1278 0x127a)))
+(allowx gsid userdata_block_device (ioctl blk_file (0x1278 0x127a)))
+(allowx gsid sdcard_block_device (ioctl blk_file (0x1278 0x127a)))
+(allow gsid mnt_media_rw_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gsid mnt_media_rw_stub_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow gsid vfat (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow gsid vfat (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gsid sdcard_block_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid self (capability (sys_rawio)))
+(allow gsid self (cap_userns (sys_rawio)))
+;;* lmx 104 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_779 gsid_prop (property_service (set)))
+;;* lme
+
+(allow gsid userdata_block_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid metadata_file (dir (getattr search)))
+(allow gsid gsi_metadata_file_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow gsid ota_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow gsid gsi_metadata_file_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gsid ota_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gsid file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow gsid gsi_metadata_file (file (relabelfrom)))
+(allow gsid gsi_public_metadata_file (file (relabelto)))
+(allow gsid gsi_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow gsid ota_image_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow gsid gsi_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow gsid ota_image_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allowx gsid gsi_data_file (ioctl file (0x6601 0x660b)))
+(allowx gsid ota_image_data_file (ioctl file (0x6601 0x660b)))
+(allow gsid system_server (binder (call)))
+;;* lmx 176 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_780 gsi_metadata_file_type (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 183 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_780 base_typeattr_781 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_780 base_typeattr_781 (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_780 base_typeattr_781 (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_780 base_typeattr_781 (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_780 base_typeattr_781 (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_780 base_typeattr_781 (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 190 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_780 gsi_public_metadata_file (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow base_typeattr_780 gsi_public_metadata_file (lnk_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+(neverallow base_typeattr_780 gsi_public_metadata_file (chr_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow base_typeattr_780 gsi_public_metadata_file (blk_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+(neverallow base_typeattr_780 gsi_public_metadata_file (sock_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+(neverallow base_typeattr_780 gsi_public_metadata_file (fifo_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+;;* lme
+
+;;* lmx 196 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_235 gsi_metadata_file_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_235 gsi_metadata_file_type (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow base_typeattr_235 gsi_metadata_file_type (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_235 gsi_metadata_file_type (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_235 gsi_metadata_file_type (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_235 gsi_metadata_file_type (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_235 gsi_metadata_file_type (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 202 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_782 gsi_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_782 gsi_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow base_typeattr_782 gsi_data_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_782 gsi_data_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_782 gsi_data_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_782 gsi_data_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_782 gsi_data_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 207 system/sepolicy/private/gsid.te
+
+(neverallow base_typeattr_778 gsi_data_file (file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_778 gsi_data_file (lnk_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_778 gsi_data_file (chr_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_778 gsi_data_file (blk_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_778 gsi_data_file (sock_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_778 gsi_data_file (fifo_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow init hal_allocator_default_exec (file (read getattr map execute open)))
+(allow init hal_allocator_default (process (transition)))
+(allow hal_allocator_default hal_allocator_default_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init hal_allocator_default (process (noatsecure)))
+(allow init hal_allocator_default (process (siginh rlimitinh)))
+(typetransition init hal_allocator_default_exec process hal_allocator_default)
+(allow hal_allocator_default property_socket (sock_file (write)))
+(allow hal_allocator_default init (unix_stream_socket (connectto)))
+(allow hal_allocator_default hidl_memory_prop (property_service (set)))
+(allow hal_allocator_default hidl_memory_prop (file (read getattr map open)))
+(allow halclientdomain hwservicemanager (binder (call transfer)))
+(allow hwservicemanager halclientdomain (binder (call transfer)))
+(allow hwservicemanager halclientdomain (dir (search)))
+(allow hwservicemanager halclientdomain (file (read map open)))
+(allow hwservicemanager halclientdomain (process (getattr)))
+(allow halclientdomain hwservicemanager_prop (file (read getattr map open)))
+(allow halclientdomain hidl_manager_hwservice (hwservice_manager (find)))
+(allow halserverdomain hwservicemanager (binder (call transfer)))
+(allow hwservicemanager halserverdomain (binder (call transfer)))
+(allow hwservicemanager halserverdomain (dir (search)))
+(allow hwservicemanager halserverdomain (file (read map open)))
+(allow hwservicemanager halserverdomain (process (getattr)))
+(allow halserverdomain system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow halserverdomain hwservicemanager_prop (file (read getattr map open)))
+(allow init heapprofd_exec (file (read getattr map execute open)))
+(allow init heapprofd (process (transition)))
+(allow heapprofd heapprofd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init heapprofd (process (noatsecure)))
+(allow init heapprofd (process (siginh rlimitinh)))
+(typetransition init heapprofd_exec process heapprofd)
+(typetransition heapprofd tmpfs file heapprofd_tmpfs)
+(allow heapprofd heapprofd_tmpfs (file (read write getattr map)))
+(allow heapprofd property_socket (sock_file (write)))
+(allow heapprofd init (unix_stream_socket (connectto)))
+(allow heapprofd heapprofd_prop (property_service (set)))
+(allow heapprofd heapprofd_prop (file (read getattr map open)))
+(allow heapprofd self (capability (kill)))
+(dontaudit heapprofd domain (dir (open search)))
+(allow heapprofd traced (fd (use)))
+(allow heapprofd traced_tmpfs (file (read write getattr map)))
+(allow heapprofd traced_producer_socket (sock_file (write)))
+(allow heapprofd traced (unix_stream_socket (connectto)))
+(allow traced heapprofd (fd (use)))
+(allow heapprofd nativetest_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow heapprofd nativetest_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd nativetest_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd system_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow heapprofd system_file_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd system_file_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow heapprofd apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow heapprofd dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd dalvikcache_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd vendor_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow heapprofd vendor_file_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd vendor_file_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd shell_test_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow heapprofd shell_test_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd shell_test_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow heapprofd apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd apex_art_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow heapprofd apex_module_data_file (dir (getattr search)))
+(allow heapprofd self (capability (dac_read_search)))
+(allow heapprofd self (cap_userns (dac_read_search)))
+(allow heapprofd packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 51 system/sepolicy/private/heapprofd.te
+
+(neverallow heapprofd hal_configstore_server (file (read)))
+(neverallow heapprofd apexd (file (read)))
+(neverallow heapprofd app_zygote (file (read)))
+(neverallow heapprofd bpfloader (file (read)))
+(neverallow heapprofd init (file (read)))
+(neverallow heapprofd kernel (file (read)))
+(neverallow heapprofd keystore (file (read)))
+(neverallow heapprofd llkd (file (read)))
+(neverallow heapprofd logd (file (read)))
+(neverallow heapprofd logpersist (file (read)))
+(neverallow heapprofd recovery (file (read)))
+(neverallow heapprofd recovery_persist (file (read)))
+(neverallow heapprofd recovery_refresh (file (read)))
+(neverallow heapprofd ueventd (file (read)))
+(neverallow heapprofd vendor_init (file (read)))
+(neverallow heapprofd vold (file (read)))
+(neverallow heapprofd webview_zygote (file (read)))
+(neverallow heapprofd zygote (file (read)))
+;;* lme
+
+;;* lmx 51 system/sepolicy/private/heapprofd.te
+
+(neverallow heapprofd hal_configstore_server (process (signal)))
+(neverallow heapprofd apexd (process (signal)))
+(neverallow heapprofd app_zygote (process (signal)))
+(neverallow heapprofd bpfloader (process (signal)))
+(neverallow heapprofd init (process (signal)))
+(neverallow heapprofd kernel (process (signal)))
+(neverallow heapprofd keystore (process (signal)))
+(neverallow heapprofd llkd (process (signal)))
+(neverallow heapprofd logd (process (signal)))
+(neverallow heapprofd logpersist (process (signal)))
+(neverallow heapprofd recovery (process (signal)))
+(neverallow heapprofd recovery_persist (process (signal)))
+(neverallow heapprofd recovery_refresh (process (signal)))
+(neverallow heapprofd ueventd (process (signal)))
+(neverallow heapprofd vendor_init (process (signal)))
+(neverallow heapprofd vold (process (signal)))
+(neverallow heapprofd webview_zygote (process (signal)))
+(neverallow heapprofd zygote (process (signal)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/private/heapprofd.te
+
+(neverallow heapprofd vendor_file_type (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/private/heapprofd.te
+
+(neverallow heapprofd base_typeattr_783 (file (execute execute_no_trans)))
+;;* lme
+
+(allow init hwservicemanager_exec (file (read getattr map execute open)))
+(allow init hwservicemanager (process (transition)))
+(allow hwservicemanager hwservicemanager_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init hwservicemanager (process (noatsecure)))
+(allow init hwservicemanager (process (siginh rlimitinh)))
+(typetransition init hwservicemanager_exec process hwservicemanager)
+(allow hwservicemanager hidl_manager_hwservice (hwservice_manager (add find)))
+(allow hwservicemanager hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 5 system/sepolicy/private/hwservicemanager.te
+
+(neverallow base_typeattr_784 hidl_manager_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow hwservicemanager hidl_token_hwservice (hwservice_manager (add find)))
+(allow hwservicemanager hidl_base_hwservice (hwservice_manager (add)))
+;;* lmx 6 system/sepolicy/private/hwservicemanager.te
+
+(neverallow base_typeattr_784 hidl_token_hwservice (hwservice_manager (add)))
+;;* lme
+
+(allow hwservicemanager property_socket (sock_file (write)))
+(allow hwservicemanager init (unix_stream_socket (connectto)))
+(allow hwservicemanager ctl_interface_start_prop (property_service (set)))
+(allow hwservicemanager ctl_interface_start_prop (file (read getattr map open)))
+(allow hwservicemanager property_socket (sock_file (write)))
+(allow hwservicemanager init (unix_stream_socket (connectto)))
+(allow hwservicemanager hwservicemanager_prop (property_service (set)))
+(allow hwservicemanager hwservicemanager_prop (file (read getattr map open)))
+(allow hwservicemanager system_bootstrap_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hwservicemanager system_bootstrap_lib_file (file (read getattr map execute open)))
+(allow hwservicemanager apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hwservicemanager apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hwservicemanager vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow hwservicemanager vendor_apex_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow hwservicemanager vendor_apex_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init idmap_exec (file (read getattr map execute open)))
+(allow init idmap (process (transition)))
+(allow idmap idmap_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init idmap (process (noatsecure)))
+(allow init idmap (process (siginh rlimitinh)))
+(typetransition init idmap_exec process idmap)
+(allow shell incident_exec (file (read getattr map execute open)))
+(allow shell incident (process (transition)))
+(allow incident incident_exec (file (read getattr map execute open entrypoint)))
+(allow incident shell (process (sigchld)))
+(dontaudit shell incident (process (noatsecure)))
+(allow shell incident (process (siginh rlimitinh)))
+(typetransition shell incident_exec process incident)
+(allow dumpstate incident_exec (file (read getattr map execute open)))
+(allow dumpstate incident (process (transition)))
+(allow incident incident_exec (file (read getattr map execute open entrypoint)))
+(allow incident dumpstate (process (sigchld)))
+(dontaudit dumpstate incident (process (noatsecure)))
+(allow dumpstate incident (process (siginh rlimitinh)))
+(typetransition dumpstate incident_exec process incident)
+(allow incident shell (fd (use)))
+(allow incident dumpstate (fd (use)))
+(allow incident dumpstate (unix_stream_socket (read write)))
+(allow incident shell_data_file (file (write)))
+(allow incident devpts (chr_file (read write)))
+(allow incident adbd (fd (use)))
+(allow incident adbd (unix_stream_socket (read write)))
+(allow incident adbd (process (sigchld)))
+(allow incident servicemanager (binder (call transfer)))
+(allow servicemanager incident (binder (call transfer)))
+(allow servicemanager incident (dir (search)))
+(allow servicemanager incident (file (read open)))
+(allow servicemanager incident (process (getattr)))
+(allow incident incident_service (service_manager (find)))
+(allow incident incidentd (binder (call transfer)))
+(allow incidentd incident (binder (transfer)))
+(allow incident incidentd (fd (use)))
+(allow incident incidentd (fifo_file (write)))
+;;* lmx 37 system/sepolicy/private/incident.te
+
+(neverallow base_typeattr_785 incident_exec (file (execute execute_no_trans)))
+;;* lme
+
+(allow incidentd incident_helper_exec (file (read getattr map execute open)))
+(allow incidentd incident_helper (process (transition)))
+(allow incident_helper incident_helper_exec (file (read getattr map execute open entrypoint)))
+(allow incident_helper incidentd (process (sigchld)))
+(dontaudit incidentd incident_helper (process (noatsecure)))
+(allow incidentd incident_helper (process (siginh rlimitinh)))
+(typetransition incidentd incident_helper_exec process incident_helper)
+(allow incident_helper dumpstate (fd (use)))
+(allow incident_helper incident (fd (use)))
+(allow incident_helper incidentd (fd (use)))
+(allow incident_helper shell (fd (use)))
+(allow incident_helper dumpstate (fifo_file (read write getattr)))
+(allow incident_helper incident (fifo_file (read write getattr)))
+(allow incident_helper incidentd (fifo_file (read write getattr)))
+(allow incident_helper shell (fifo_file (read write getattr)))
+(allow incident_helper incidentd (unix_stream_socket (read write)))
+;;* lmx 14 system/sepolicy/private/incident_helper.te
+
+(neverallow base_typeattr_786 incident_helper_exec (file (execute execute_no_trans)))
+;;* lme
+
+(allow init incidentd_exec (file (read getattr map execute open)))
+(allow init incidentd (process (transition)))
+(allow incidentd incidentd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init incidentd (process (noatsecure)))
+(allow init incidentd (process (siginh rlimitinh)))
+(typetransition init incidentd_exec process incidentd)
+(allow incidentd servicemanager (binder (call transfer)))
+(allow servicemanager incidentd (binder (call transfer)))
+(allow servicemanager incidentd (dir (search)))
+(allow servicemanager incidentd (file (read open)))
+(allow servicemanager incidentd (process (getattr)))
+(allow incidentd sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow incidentd self (capability2 (block_suspend)))
+(allow incidentd self (cap2_userns (block_suspend)))
+(allow incidentd system_suspend_server (binder (call transfer)))
+(allow system_suspend_server incidentd (binder (transfer)))
+(allow incidentd system_suspend_server (fd (use)))
+(allow incidentd system_suspend_hwservice (hwservice_manager (find)))
+(allow incidentd hwservicemanager (binder (call transfer)))
+(allow hwservicemanager incidentd (binder (call transfer)))
+(allow hwservicemanager incidentd (dir (search)))
+(allow hwservicemanager incidentd (file (read map open)))
+(allow hwservicemanager incidentd (process (getattr)))
+(allow incidentd hwservicemanager_prop (file (read getattr map open)))
+(allow incidentd hidl_manager_hwservice (hwservice_manager (find)))
+(allow incidentd hal_system_suspend_service (service_manager (find)))
+(allow incidentd servicemanager (binder (call transfer)))
+(allow servicemanager incidentd (binder (call transfer)))
+(allow servicemanager incidentd (dir (search)))
+(allow servicemanager incidentd (file (read open)))
+(allow servicemanager incidentd (process (getattr)))
+(allow incidentd domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow incidentd domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd incident_helper (process (sigkill)))
+(allow incidentd system_file (file (execute_no_trans)))
+(allow incidentd toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow incidentd proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd statsdw_socket (sock_file (write)))
+(allow incidentd statsd (unix_dgram_socket (sendto)))
+(allow incidentd proc_pagetypeinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd proc_meminfo (file (read open)))
+(allow incidentd sysfs_devices_system_cpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd domain (process (getattr)))
+(allow incidentd sysfs_batteryinfo (dir (search)))
+(allow incidentd sysfs_batteryinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd stats_service (service_manager (find)))
+(allow incidentd statsd (binder (call transfer)))
+(allow statsd incidentd (binder (transfer)))
+(allow incidentd statsd (fd (use)))
+(allow incidentd perfetto_traces_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow incidentd perfetto_traces_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd nfc_service (service_manager (find)))
+(allow incidentd incident_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow incidentd incident_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow incidentd servicemanager (binder (call transfer)))
+(allow servicemanager incidentd (binder (call transfer)))
+(allow servicemanager incidentd (dir (search)))
+(allow servicemanager incidentd (file (read open)))
+(allow servicemanager incidentd (process (getattr)))
+(allow incidentd hwservicemanager (binder (call transfer)))
+(allow hwservicemanager incidentd (binder (call transfer)))
+(allow hwservicemanager incidentd (dir (search)))
+(allow hwservicemanager incidentd (file (read map open)))
+(allow hwservicemanager incidentd (process (getattr)))
+(allow incidentd hwservicemanager (hwservice_manager (list)))
+(allow incidentd hwservicemanager_prop (file (read getattr map open)))
+(allow incidentd hidl_manager_hwservice (hwservice_manager (find)))
+(allow incidentd proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd proc_pid_max (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd proc_pipe_conf (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd appdomain (process (signal)))
+(allow incidentd ephemeral_app (process (signal)))
+(allow incidentd system_server (process (signal)))
+(allow incidentd hal_audio_server (process (signal)))
+(allow incidentd hal_bluetooth_server (process (signal)))
+(allow incidentd hal_camera_server (process (signal)))
+(allow incidentd hal_codec2_server (process (signal)))
+(allow incidentd hal_face_server (process (signal)))
+(allow incidentd hal_graphics_allocator_server (process (signal)))
+(allow incidentd hal_graphics_composer_server (process (signal)))
+(allow incidentd hal_health_server (process (signal)))
+(allow incidentd hal_omx_server (process (signal)))
+(allow incidentd hal_sensors_server (process (signal)))
+(allow incidentd hal_vr_server (process (signal)))
+(allow incidentd audioserver (process (signal)))
+(allow incidentd cameraserver (process (signal)))
+(allow incidentd drmserver (process (signal)))
+(allow incidentd inputflinger (process (signal)))
+(allow incidentd mediadrmserver (process (signal)))
+(allow incidentd mediaextractor (process (signal)))
+(allow incidentd mediametrics (process (signal)))
+(allow incidentd mediaserver (process (signal)))
+(allow incidentd sdcardd (process (signal)))
+(allow incidentd statsd (process (signal)))
+(allow incidentd surfaceflinger (process (signal)))
+(allow incidentd system_server (binder (call transfer)))
+(allow system_server incidentd (binder (transfer)))
+(allow incidentd system_server (fd (use)))
+(allow incidentd appdomain (binder (call transfer)))
+(allow appdomain incidentd (binder (transfer)))
+(allow incidentd appdomain (fd (use)))
+;;* lmx 122 system/sepolicy/private/incidentd.te
+
+(neverallow incidentd base_typeattr_224 (process (ptrace)))
+;;* lme
+
+(allow incidentd self (capability (kill)))
+(allow incidentd self (cap_userns (kill)))
+(allow incidentd tombstoned_intercept_socket (sock_file (write)))
+(allow incidentd tombstoned (unix_stream_socket (connectto)))
+(allow incidentd shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow incidentd zygote_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow incidentd device_config_runtime_native_prop (file (read getattr map open)))
+(allow incidentd device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow incidentd odsign_prop (file (read getattr map open)))
+(allow incidentd system_file (file (lock)))
+(dontaudit incidentd dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit incidentd apex_module_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit incidentd apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit incidentd tmpfs (file (ioctl read write getattr lock append map execute open watch watch_reads execute_no_trans)))
+(allow incidentd apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd misc_logd_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow incidentd misc_logd_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd misc_logd_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow incidentd base_typeattr_787 (service_manager (find)))
+(allow incidentd incident_service (service_manager (add find)))
+;;* lmx 171 system/sepolicy/private/incidentd.te
+
+(neverallow base_typeattr_788 incident_service (service_manager (add)))
+;;* lme
+
+(allow incidentd dumpstate (fd (use)))
+(allow incidentd incident (fd (use)))
+(allow incidentd dumpstate (fifo_file (write)))
+(allow incidentd incident (fifo_file (write)))
+(allow incidentd incident (binder (call transfer)))
+(allow incident incidentd (binder (transfer)))
+(allow incidentd incident (fd (use)))
+(allow incidentd build_attestation_prop (file (read getattr map open)))
+;;* lmx 212 system/sepolicy/private/incidentd.te
+
+(neverallow base_typeattr_789 incident_data_file (file (write create getattr setattr lock append map unlink rename execute open execute_no_trans)))
+;;* lme
+
+;;* lmx 214 system/sepolicy/private/incidentd.te
+
+(neverallow base_typeattr_790 incident_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 216 system/sepolicy/private/incidentd.te
+
+(neverallow base_typeattr_789 incident_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+(typetransition init tmpfs file init_tmpfs)
+(allow init init_tmpfs (file (read write getattr map)))
+(allow init rootfs (file (read getattr map execute open)))
+(allow init slideshow (process (transition)))
+(allow slideshow rootfs (file (read getattr map execute open entrypoint)))
+(dontaudit init slideshow (process (noatsecure)))
+(allow init slideshow (process (siginh rlimitinh)))
+(allow init charger_exec (file (read getattr map execute open)))
+(allow init charger (process (transition)))
+(allow charger charger_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init charger (process (noatsecure)))
+(allow init charger (process (siginh rlimitinh)))
+(typetransition init charger_exec process charger)
+(allow init e2fs_exec (file (read getattr map execute open)))
+(allow init e2fs (process (transition)))
+(allow e2fs e2fs_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init e2fs (process (noatsecure)))
+(allow init e2fs (process (siginh rlimitinh)))
+(typetransition init e2fs_exec process e2fs)
+(allow init bpfloader_exec (file (read getattr map execute open)))
+(allow init bpfloader (process (transition)))
+(allow bpfloader bpfloader_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init bpfloader (process (noatsecure)))
+(allow init bpfloader (process (siginh rlimitinh)))
+(typetransition init bpfloader_exec process bpfloader)
+(allow init shell_exec (file (read getattr map execute open)))
+(allow init shell (process (transition)))
+(allow shell shell_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init shell (process (noatsecure)))
+(allow init shell (process (siginh rlimitinh)))
+(allow init init_exec (file (read getattr map execute open)))
+(allow init ueventd (process (transition)))
+(allow ueventd init_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init ueventd (process (noatsecure)))
+(allow init ueventd (process (siginh rlimitinh)))
+(allow init init_exec (file (read getattr map execute open)))
+(allow init vendor_init (process (transition)))
+(allow vendor_init init_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init vendor_init (process (noatsecure)))
+(allow init vendor_init (process (siginh rlimitinh)))
+(allow init rootfs (file (read getattr map execute open)))
+(allow init toolbox_exec (file (read getattr map execute open)))
+(allow init modprobe (process (transition)))
+(allow modprobe rootfs (file (read getattr map execute open entrypoint)))
+(allow modprobe toolbox_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init modprobe (process (noatsecure)))
+(allow init modprobe (process (siginh rlimitinh)))
+(allow init sysfs_dm (file (read)))
+(allow init sysfs_loop (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init sysfs_loop (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init sysfs_type (file (read getattr)))
+(allow init dev_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow init dev_type (blk_file (getattr)))
+(allow init proc_drop_caches (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init property_socket (sock_file (write)))
+(allow init init (unix_stream_socket (connectto)))
+(allow init powerctl_prop (property_service (set)))
+(allow init powerctl_prop (file (read getattr map open)))
+(allow init property_socket (sock_file (write)))
+(allow init init (unix_stream_socket (connectto)))
+(allow init userspace_reboot_exported_prop (property_service (set)))
+(allow init userspace_reboot_exported_prop (file (read getattr map open)))
+;;* lmx 62 system/sepolicy/private/init.te
+
+(neverallow base_typeattr_223 userspace_reboot_exported_prop (property_service (set)))
+;;* lme
+
+(allow init self (perf_event (open cpu)))
+(allow init self (capability2 (perfmon)))
+(allow init self (cap2_userns (perfmon)))
+;;* lmx 72 system/sepolicy/private/init.te
+
+(neverallow init self (perf_event (kernel tracepoint read write)))
+;;* lme
+
+(dontaudit init self (perf_event (kernel tracepoint read write)))
+(allow init snapuserd_socket (sock_file (write)))
+(allow init snapuserd (unix_stream_socket (connectto)))
+(allow init ota_metadata_file (dir (lock)))
+(allow init vd_device (blk_file (relabelto)))
+(allow init property_socket (sock_file (write)))
+(allow init init (unix_stream_socket (connectto)))
+(allow init init_perf_lsm_hooks_prop (property_service (set)))
+(allow init init_perf_lsm_hooks_prop (file (read getattr map open)))
+;;* lmx 89 system/sepolicy/private/init.te
+
+(neverallow base_typeattr_223 init_perf_lsm_hooks_prop (property_service (set)))
+;;* lme
+
+(allow init property_socket (sock_file (write)))
+(allow init init (unix_stream_socket (connectto)))
+(allow init vts_status_prop (property_service (set)))
+(allow init vts_status_prop (file (read getattr map open)))
+;;* lmx 93 system/sepolicy/private/init.te
+
+(neverallow base_typeattr_223 vts_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 96 system/sepolicy/private/init.te
+
+(neverallow base_typeattr_223 bootloader_prop (property_service (set)))
+;;* lme
+
+;;* lmx 99 system/sepolicy/private/init.te
+
+(neverallow base_typeattr_223 hal_instrumentation_prop (property_service (set)))
+;;* lme
+
+;;* lmx 102 system/sepolicy/private/init.te
+
+(neverallow base_typeattr_223 property_service_version_prop (property_service (set)))
+;;* lme
+
+;;* lmx 105 system/sepolicy/private/init.te
+
+(neverallow base_typeattr_223 keystore_listen_prop (property_service (set)))
+;;* lme
+
+(allow init debugfs_bootreceiver_tracing (file (write lock append map open)))
+(allow init prng_seeder (unix_stream_socket (create bind listen)))
+(dontaudit init debugfs_tracing_debug (dir (write add_name)))
+(allow init base_typeattr_791 (chr_file (setattr)))
+(allow init inputflinger_exec (file (read getattr map execute open)))
+(allow init inputflinger (process (transition)))
+(allow inputflinger inputflinger_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init inputflinger (process (noatsecure)))
+(allow init inputflinger (process (siginh rlimitinh)))
+(typetransition init inputflinger_exec process inputflinger)
+(allow init installd_exec (file (read getattr map execute open)))
+(allow init installd (process (transition)))
+(allow installd installd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init installd (process (noatsecure)))
+(allow init installd (process (siginh rlimitinh)))
+(typetransition init installd_exec process installd)
+(allow installd migrate_legacy_obb_data_exec (file (read getattr map execute open)))
+(allow installd migrate_legacy_obb_data (process (transition)))
+(allow migrate_legacy_obb_data migrate_legacy_obb_data_exec (file (read getattr map execute open entrypoint)))
+(allow migrate_legacy_obb_data installd (process (sigchld)))
+(dontaudit installd migrate_legacy_obb_data (process (noatsecure)))
+(allow installd migrate_legacy_obb_data (process (siginh rlimitinh)))
+(typetransition installd migrate_legacy_obb_data_exec process migrate_legacy_obb_data)
+(allow installd shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow installd dex2oat_exec (file (read getattr map execute open)))
+(allow installd dex2oat (process (transition)))
+(allow dex2oat dex2oat_exec (file (read getattr map execute open entrypoint)))
+(allow dex2oat installd (process (sigchld)))
+(dontaudit installd dex2oat (process (noatsecure)))
+(allow installd dex2oat (process (siginh rlimitinh)))
+(typetransition installd dex2oat_exec process dex2oat)
+(allow installd dexoptanalyzer_exec (file (read getattr map execute open)))
+(allow installd dexoptanalyzer (process (transition)))
+(allow dexoptanalyzer dexoptanalyzer_exec (file (read getattr map execute open entrypoint)))
+(allow dexoptanalyzer installd (process (sigchld)))
+(dontaudit installd dexoptanalyzer (process (noatsecure)))
+(allow installd dexoptanalyzer (process (siginh rlimitinh)))
+(typetransition installd dexoptanalyzer_exec process dexoptanalyzer)
+(allow installd viewcompiler_exec (file (read getattr map execute open)))
+(allow installd viewcompiler (process (transition)))
+(allow viewcompiler viewcompiler_exec (file (read getattr map execute open entrypoint)))
+(allow viewcompiler installd (process (sigchld)))
+(dontaudit installd viewcompiler (process (noatsecure)))
+(allow installd viewcompiler (process (siginh rlimitinh)))
+(typetransition installd viewcompiler_exec process viewcompiler)
+(allow installd profman_exec (file (read getattr map execute open)))
+(allow installd profman (process (transition)))
+(allow profman profman_exec (file (read getattr map execute open entrypoint)))
+(allow profman installd (process (sigchld)))
+(dontaudit installd profman (process (noatsecure)))
+(allow installd profman (process (siginh rlimitinh)))
+(typetransition installd profman_exec process profman)
+(allow installd idmap_exec (file (read getattr map execute open)))
+(allow installd idmap (process (transition)))
+(allow idmap idmap_exec (file (read getattr map execute open entrypoint)))
+(allow idmap installd (process (sigchld)))
+(dontaudit installd idmap (process (noatsecure)))
+(allow installd idmap (process (siginh rlimitinh)))
+(typetransition installd idmap_exec process idmap)
+(allow installd dumpstate (fd (use)))
+(allow installd dumpstate (fifo_file (ioctl read getattr lock map open watch watch_reads)))
+(allow installd app_exec_data_file (file (unlink)))
+(allow installd rollback_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd rollback_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow installd device_config_runtime_native_prop (file (read getattr map open)))
+(allow installd device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow installd apk_verity_prop (file (read getattr map open)))
+(allow installd odsign_prop (file (read getattr map open)))
+(allow installd staging_data_file (file (unlink)))
+(allow installd staging_data_file (dir (read write getattr open remove_name search rmdir)))
+(allow installd dex2oat (process (signal)))
+(allow installd dexoptanalyzer (process (signal)))
+(allow installd profman (process (sigkill)))
+(allow installd dex2oat (process (sigkill)))
+(allow installd dexoptanalyzer (process (sigkill)))
+(allow installd sdk_sandbox_system_data_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow installd untrusted_app_all (fd (use)))
+(allow installd gmscore_app (fd (use)))
+(allow installd priv_app (fd (use)))
+(allowx installd app_data_file_type (ioctl file (0x6685)))
+(typetransition isolated_app tmpfs file appdomain_tmpfs)
+(allow isolated_app isolated_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su isolated_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 10 system/sepolicy/private/isolated_app.te
+
+(neverallow base_typeattr_643 isolated_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow isolated_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 10 system/sepolicy/private/isolated_app.te
+
+(neverallow base_typeattr_792 base_typeattr_643 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/private/isolated_app.te
+
+(neverallow base_typeattr_793 isolated_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/private/isolated_app.te
+
+(neverallow base_typeattr_794 isolated_app (process (ptrace)))
+;;* lme
+
+(allow isolated_app webviewupdate_service (service_manager (find)))
+(allow isolated_app untrusted_app_all (tcp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_app untrusted_app_all (udp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_app ephemeral_app (tcp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_app ephemeral_app (udp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_app priv_app (tcp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_app priv_app (udp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_app sdcard_type (file (read write getattr lock append map)))
+(allow isolated_app fuse (file (read write getattr lock append map)))
+(allow isolated_app media_rw_data_file (file (read write getattr lock append map)))
+(allow isolated_app webview_zygote (fd (use)))
+(allow isolated_app webview_zygote (process (sigchld)))
+(allow isolated_app webview_zygote (unix_dgram_socket (write)))
+(allow isolated_app webview_zygote_tmpfs (file (read)))
+(allow isolated_app_all app_data_file (file (read write getattr lock append map)))
+(allow isolated_app_all privapp_data_file (file (read write getattr lock append map)))
+(allow isolated_app_all sdk_sandbox_data_file (file (read write getattr lock append map)))
+(allow isolated_app_all activity_service (service_manager (find)))
+(allow isolated_app_all display_service (service_manager (find)))
+(allow isolated_app_all self (process (ptrace)))
+(allow isolated_app_all app_zygote (fd (use)))
+(allow isolated_app_all app_zygote (process (sigchld)))
+(allow isolated_app_all app_zygote (unix_dgram_socket (write)))
+(dontaudit isolated_app_all shell_data_file (dir (search)))
+(allow isolated_app_all apk_tmp_file (file (read getattr)))
+(allow isolated_app_all apk_private_tmp_file (file (read getattr)))
+;;* lmx 44 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all app_data_file_type (file (open)))
+;;* lme
+
+;;* lmx 49 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all anr_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto map unlink link rename execute quotaon mounton audit_access execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 50 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all anr_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 53 system/sepolicy/private/isolated_app_all.te
+
+(neverallow base_typeattr_795 hwbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 54 system/sepolicy/private/isolated_app_all.te
+
+(neverallow base_typeattr_795 base_typeattr_224 (hwservice_manager (add find list)))
+;;* lme
+
+;;* lmx 57 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all vndbinder_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 61 system/sepolicy/private/isolated_app_all.te
+
+(neverallow base_typeattr_795 base_typeattr_224 (service_manager (add list)))
+;;* lme
+
+;;* lmx 71 system/sepolicy/private/isolated_app_all.te
+
+(neverallow base_typeattr_795 base_typeattr_796 (service_manager (find)))
+;;* lme
+
+;;* lmx 74 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all gpu_device (chr_file (ioctl read write getattr lock append map execute open watch watch_reads)))
+;;* lme
+
+;;* lmx 77 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all cache_file (dir (write create setattr relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 78 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all cache_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 82 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all sdcard_type (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow isolated_app_all fuse (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow isolated_app_all mnt_user_file (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+(neverallow isolated_app_all storage_file (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 83 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all mnt_user_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all mnt_user_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all mnt_user_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all mnt_user_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all mnt_user_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all mnt_user_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all storage_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all storage_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all storage_file (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all storage_file (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all storage_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all storage_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 84 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all sdcard_type (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all sdcard_type (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all sdcard_type (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all sdcard_type (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all sdcard_type (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all fuse (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all fuse (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all fuse (blk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all fuse (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow isolated_app_all fuse (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 85 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all sdcard_type (file (ioctl create setattr relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all fuse (file (ioctl create setattr relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 88 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all usbaccessory_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow isolated_app_all usb_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 91 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all webview_zygote (sock_file (write)))
+;;* lme
+
+;;* lmx 104 system/sepolicy/private/isolated_app_all.te
+
+(neverallow base_typeattr_795 base_typeattr_797 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 125 system/sepolicy/private/isolated_app_all.te
+
+(neverallow isolated_app_all untrusted_app_all (socket (create)))
+(neverallow isolated_app_all untrusted_app_all (tcp_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (udp_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (rawip_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (packet_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (key_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_route_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_tcpdiag_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_nflog_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_xfrm_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_selinux_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_audit_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_dnrt_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_kobject_uevent_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (appletalk_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (tun_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_iscsi_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_fib_lookup_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_connector_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_netfilter_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_generic_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_scsitransport_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_rdma_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netlink_crypto_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (sctp_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (icmp_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (ax25_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (ipx_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (netrom_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (atmpvc_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (x25_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (rose_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (decnet_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (atmsvc_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (rds_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (irda_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (pppox_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (llc_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (can_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (tipc_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (bluetooth_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (iucv_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (rxrpc_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (isdn_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (phonet_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (ieee802154_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (caif_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (alg_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (nfc_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (vsock_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (kcm_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (qipcrtr_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (smc_socket (create)))
+(neverallow isolated_app_all untrusted_app_all (xdp_socket (create)))
+(neverallow isolated_app_all ephemeral_app (socket (create)))
+(neverallow isolated_app_all ephemeral_app (tcp_socket (create)))
+(neverallow isolated_app_all ephemeral_app (udp_socket (create)))
+(neverallow isolated_app_all ephemeral_app (rawip_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_socket (create)))
+(neverallow isolated_app_all ephemeral_app (packet_socket (create)))
+(neverallow isolated_app_all ephemeral_app (key_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_route_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_tcpdiag_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_nflog_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_xfrm_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_selinux_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_audit_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_dnrt_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_kobject_uevent_socket (create)))
+(neverallow isolated_app_all ephemeral_app (appletalk_socket (create)))
+(neverallow isolated_app_all ephemeral_app (tun_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_iscsi_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_fib_lookup_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_connector_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_netfilter_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_generic_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_scsitransport_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_rdma_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netlink_crypto_socket (create)))
+(neverallow isolated_app_all ephemeral_app (sctp_socket (create)))
+(neverallow isolated_app_all ephemeral_app (icmp_socket (create)))
+(neverallow isolated_app_all ephemeral_app (ax25_socket (create)))
+(neverallow isolated_app_all ephemeral_app (ipx_socket (create)))
+(neverallow isolated_app_all ephemeral_app (netrom_socket (create)))
+(neverallow isolated_app_all ephemeral_app (atmpvc_socket (create)))
+(neverallow isolated_app_all ephemeral_app (x25_socket (create)))
+(neverallow isolated_app_all ephemeral_app (rose_socket (create)))
+(neverallow isolated_app_all ephemeral_app (decnet_socket (create)))
+(neverallow isolated_app_all ephemeral_app (atmsvc_socket (create)))
+(neverallow isolated_app_all ephemeral_app (rds_socket (create)))
+(neverallow isolated_app_all ephemeral_app (irda_socket (create)))
+(neverallow isolated_app_all ephemeral_app (pppox_socket (create)))
+(neverallow isolated_app_all ephemeral_app (llc_socket (create)))
+(neverallow isolated_app_all ephemeral_app (can_socket (create)))
+(neverallow isolated_app_all ephemeral_app (tipc_socket (create)))
+(neverallow isolated_app_all ephemeral_app (bluetooth_socket (create)))
+(neverallow isolated_app_all ephemeral_app (iucv_socket (create)))
+(neverallow isolated_app_all ephemeral_app (rxrpc_socket (create)))
+(neverallow isolated_app_all ephemeral_app (isdn_socket (create)))
+(neverallow isolated_app_all ephemeral_app (phonet_socket (create)))
+(neverallow isolated_app_all ephemeral_app (ieee802154_socket (create)))
+(neverallow isolated_app_all ephemeral_app (caif_socket (create)))
+(neverallow isolated_app_all ephemeral_app (alg_socket (create)))
+(neverallow isolated_app_all ephemeral_app (nfc_socket (create)))
+(neverallow isolated_app_all ephemeral_app (vsock_socket (create)))
+(neverallow isolated_app_all ephemeral_app (kcm_socket (create)))
+(neverallow isolated_app_all ephemeral_app (qipcrtr_socket (create)))
+(neverallow isolated_app_all ephemeral_app (smc_socket (create)))
+(neverallow isolated_app_all ephemeral_app (xdp_socket (create)))
+(neverallow isolated_app_all priv_app (socket (create)))
+(neverallow isolated_app_all priv_app (tcp_socket (create)))
+(neverallow isolated_app_all priv_app (udp_socket (create)))
+(neverallow isolated_app_all priv_app (rawip_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_socket (create)))
+(neverallow isolated_app_all priv_app (packet_socket (create)))
+(neverallow isolated_app_all priv_app (key_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_route_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_tcpdiag_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_nflog_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_xfrm_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_selinux_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_audit_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_dnrt_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_kobject_uevent_socket (create)))
+(neverallow isolated_app_all priv_app (appletalk_socket (create)))
+(neverallow isolated_app_all priv_app (tun_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_iscsi_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_fib_lookup_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_connector_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_netfilter_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_generic_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_scsitransport_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_rdma_socket (create)))
+(neverallow isolated_app_all priv_app (netlink_crypto_socket (create)))
+(neverallow isolated_app_all priv_app (sctp_socket (create)))
+(neverallow isolated_app_all priv_app (icmp_socket (create)))
+(neverallow isolated_app_all priv_app (ax25_socket (create)))
+(neverallow isolated_app_all priv_app (ipx_socket (create)))
+(neverallow isolated_app_all priv_app (netrom_socket (create)))
+(neverallow isolated_app_all priv_app (atmpvc_socket (create)))
+(neverallow isolated_app_all priv_app (x25_socket (create)))
+(neverallow isolated_app_all priv_app (rose_socket (create)))
+(neverallow isolated_app_all priv_app (decnet_socket (create)))
+(neverallow isolated_app_all priv_app (atmsvc_socket (create)))
+(neverallow isolated_app_all priv_app (rds_socket (create)))
+(neverallow isolated_app_all priv_app (irda_socket (create)))
+(neverallow isolated_app_all priv_app (pppox_socket (create)))
+(neverallow isolated_app_all priv_app (llc_socket (create)))
+(neverallow isolated_app_all priv_app (can_socket (create)))
+(neverallow isolated_app_all priv_app (tipc_socket (create)))
+(neverallow isolated_app_all priv_app (bluetooth_socket (create)))
+(neverallow isolated_app_all priv_app (iucv_socket (create)))
+(neverallow isolated_app_all priv_app (rxrpc_socket (create)))
+(neverallow isolated_app_all priv_app (isdn_socket (create)))
+(neverallow isolated_app_all priv_app (phonet_socket (create)))
+(neverallow isolated_app_all priv_app (ieee802154_socket (create)))
+(neverallow isolated_app_all priv_app (caif_socket (create)))
+(neverallow isolated_app_all priv_app (alg_socket (create)))
+(neverallow isolated_app_all priv_app (nfc_socket (create)))
+(neverallow isolated_app_all priv_app (vsock_socket (create)))
+(neverallow isolated_app_all priv_app (kcm_socket (create)))
+(neverallow isolated_app_all priv_app (qipcrtr_socket (create)))
+(neverallow isolated_app_all priv_app (smc_socket (create)))
+(neverallow isolated_app_all priv_app (xdp_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (tcp_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (udp_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (rawip_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (packet_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (key_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_route_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_tcpdiag_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_nflog_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_xfrm_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_selinux_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_audit_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_dnrt_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_kobject_uevent_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (appletalk_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (tun_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_iscsi_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_fib_lookup_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_connector_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_netfilter_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_generic_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_scsitransport_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_rdma_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netlink_crypto_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (sctp_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (icmp_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (ax25_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (ipx_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (netrom_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (atmpvc_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (x25_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (rose_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (decnet_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (atmsvc_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (rds_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (irda_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (pppox_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (llc_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (can_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (tipc_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (bluetooth_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (iucv_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (rxrpc_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (isdn_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (phonet_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (ieee802154_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (caif_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (alg_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (nfc_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (vsock_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (kcm_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (qipcrtr_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (smc_socket (create)))
+(neverallow isolated_app_all sdk_sandbox_all (xdp_socket (create)))
+(neverallow isolated_app_all self (socket (create)))
+(neverallow isolated_app_all self (tcp_socket (create)))
+(neverallow isolated_app_all self (udp_socket (create)))
+(neverallow isolated_app_all self (rawip_socket (create)))
+(neverallow isolated_app_all self (netlink_socket (create)))
+(neverallow isolated_app_all self (packet_socket (create)))
+(neverallow isolated_app_all self (key_socket (create)))
+(neverallow isolated_app_all self (netlink_route_socket (create)))
+(neverallow isolated_app_all self (netlink_tcpdiag_socket (create)))
+(neverallow isolated_app_all self (netlink_nflog_socket (create)))
+(neverallow isolated_app_all self (netlink_xfrm_socket (create)))
+(neverallow isolated_app_all self (netlink_selinux_socket (create)))
+(neverallow isolated_app_all self (netlink_audit_socket (create)))
+(neverallow isolated_app_all self (netlink_dnrt_socket (create)))
+(neverallow isolated_app_all self (netlink_kobject_uevent_socket (create)))
+(neverallow isolated_app_all self (appletalk_socket (create)))
+(neverallow isolated_app_all self (tun_socket (create)))
+(neverallow isolated_app_all self (netlink_iscsi_socket (create)))
+(neverallow isolated_app_all self (netlink_fib_lookup_socket (create)))
+(neverallow isolated_app_all self (netlink_connector_socket (create)))
+(neverallow isolated_app_all self (netlink_netfilter_socket (create)))
+(neverallow isolated_app_all self (netlink_generic_socket (create)))
+(neverallow isolated_app_all self (netlink_scsitransport_socket (create)))
+(neverallow isolated_app_all self (netlink_rdma_socket (create)))
+(neverallow isolated_app_all self (netlink_crypto_socket (create)))
+(neverallow isolated_app_all self (sctp_socket (create)))
+(neverallow isolated_app_all self (icmp_socket (create)))
+(neverallow isolated_app_all self (ax25_socket (create)))
+(neverallow isolated_app_all self (ipx_socket (create)))
+(neverallow isolated_app_all self (netrom_socket (create)))
+(neverallow isolated_app_all self (atmpvc_socket (create)))
+(neverallow isolated_app_all self (x25_socket (create)))
+(neverallow isolated_app_all self (rose_socket (create)))
+(neverallow isolated_app_all self (decnet_socket (create)))
+(neverallow isolated_app_all self (atmsvc_socket (create)))
+(neverallow isolated_app_all self (rds_socket (create)))
+(neverallow isolated_app_all self (irda_socket (create)))
+(neverallow isolated_app_all self (pppox_socket (create)))
+(neverallow isolated_app_all self (llc_socket (create)))
+(neverallow isolated_app_all self (can_socket (create)))
+(neverallow isolated_app_all self (tipc_socket (create)))
+(neverallow isolated_app_all self (bluetooth_socket (create)))
+(neverallow isolated_app_all self (iucv_socket (create)))
+(neverallow isolated_app_all self (rxrpc_socket (create)))
+(neverallow isolated_app_all self (isdn_socket (create)))
+(neverallow isolated_app_all self (phonet_socket (create)))
+(neverallow isolated_app_all self (ieee802154_socket (create)))
+(neverallow isolated_app_all self (caif_socket (create)))
+(neverallow isolated_app_all self (alg_socket (create)))
+(neverallow isolated_app_all self (nfc_socket (create)))
+(neverallow isolated_app_all self (vsock_socket (create)))
+(neverallow isolated_app_all self (kcm_socket (create)))
+(neverallow isolated_app_all self (qipcrtr_socket (create)))
+(neverallow isolated_app_all self (smc_socket (create)))
+(neverallow isolated_app_all self (xdp_socket (create)))
+;;* lme
+
+(typetransition isolated_compute_app tmpfs file appdomain_tmpfs)
+(allow isolated_compute_app isolated_compute_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su isolated_compute_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 14 system/sepolicy/private/isolated_compute_app.te
+
+(neverallow base_typeattr_798 isolated_compute_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow isolated_compute_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 14 system/sepolicy/private/isolated_compute_app.te
+
+(neverallow base_typeattr_799 base_typeattr_798 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 14 system/sepolicy/private/isolated_compute_app.te
+
+(neverallow base_typeattr_800 isolated_compute_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 14 system/sepolicy/private/isolated_compute_app.te
+
+(neverallow base_typeattr_801 isolated_compute_app (process (ptrace)))
+;;* lme
+
+(allow isolated_compute_app isolated_compute_allowed_service (service_manager (find)))
+(allow isolated_compute_app isolated_compute_allowed_device (chr_file (ioctl read write map)))
+(allow isolated_compute_app hwservicemanager (binder (call transfer)))
+(allow hwservicemanager isolated_compute_app (binder (call transfer)))
+(allow hwservicemanager isolated_compute_app (dir (search)))
+(allow hwservicemanager isolated_compute_app (file (read map open)))
+(allow hwservicemanager isolated_compute_app (process (getattr)))
+(allow isolated_compute_app dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow isolated_compute_app untrusted_app_all (tcp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_compute_app untrusted_app_all (udp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_compute_app ephemeral_app (tcp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_compute_app ephemeral_app (udp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_compute_app priv_app (tcp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_compute_app priv_app (udp_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow isolated_compute_app toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow init iw_exec (file (read getattr map execute open)))
+(allow init iw (process (transition)))
+(allow iw iw_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init iw (process (noatsecure)))
+(allow init iw (process (siginh rlimitinh)))
+(typetransition init iw_exec process iw)
+(allow kernel init_exec (file (read getattr map execute open)))
+(allow kernel init (process (transition)))
+(allow init init_exec (file (read getattr map execute open entrypoint)))
+(allow init kernel (process (sigchld)))
+(dontaudit kernel init (process (noatsecure)))
+(allow kernel init (process (siginh rlimitinh)))
+(typetransition kernel init_exec process init)
+(allow kernel snapuserd_exec (file (read getattr map execute open)))
+(allow kernel snapuserd (process (transition)))
+(allow snapuserd snapuserd_exec (file (read getattr map execute open entrypoint)))
+(allow snapuserd kernel (process (sigchld)))
+(dontaudit kernel snapuserd (process (noatsecure)))
+(allow kernel snapuserd (process (siginh rlimitinh)))
+(typetransition kernel snapuserd_exec process snapuserd)
+(allow kernel otapreopt_chroot (fd (use)))
+(allow kernel postinstall_file (file (read)))
+(allow kernel tmpfs (blk_file (getattr relabelfrom)))
+(allow kernel tmpfs (chr_file (getattr relabelfrom)))
+(allow kernel tmpfs (lnk_file (getattr relabelfrom)))
+(allow kernel tmpfs (dir (read relabelfrom open)))
+(allow kernel block_device (blk_file (relabelto)))
+(allow kernel block_device (lnk_file (relabelto)))
+(allow kernel dm_device (chr_file (relabelto)))
+(allow kernel dm_device (blk_file (relabelto)))
+(allow kernel dm_user_device (dir (read relabelto open search)))
+(allow kernel dm_user_device (chr_file (relabelto)))
+(allow kernel kmsg_device (chr_file (relabelto)))
+(allow kernel null_device (chr_file (relabelto)))
+(allow kernel random_device (chr_file (relabelto)))
+(allow kernel snapuserd_exec (file (relabelto)))
+(allow kernel kmsg_device (chr_file (write)))
+(allow kernel gsid (fd (use)))
+(dontaudit kernel metadata_file (dir (search)))
+(dontaudit kernel ota_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(dontaudit kernel sysfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit kernel sysfs (file (read write open)))
+(dontaudit kernel sysfs (chr_file (read write open)))
+(dontaudit kernel dm_device (chr_file (ioctl)))
+(dontaudit kernel self (capability (setgid sys_admin mknod)))
+(dontaudit kernel dm_user_device (dir (write add_name)))
+(dontaudit kernel dm_user_device (chr_file (create setattr)))
+(dontaudit kernel tmpfs (lnk_file (read)))
+(dontaudit kernel tmpfs (blk_file (read open)))
+(allow init keystore_exec (file (read getattr map execute open)))
+(allow init keystore (process (transition)))
+(allow keystore keystore_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init keystore (process (noatsecure)))
+(allow init keystore (process (siginh rlimitinh)))
+(typetransition init keystore_exec process keystore)
+(dontaudit keystore hal_remotelyprovisionedcomponent_avf_service (service_manager (find)))
+(allow keystore platform_app (binder (call)))
+(allow keystore device_logging_prop (file (read getattr map open)))
+(allow keystore remote_prov_prop (file (read getattr map open)))
+(allow keystore device_config_remote_key_provisioning_native_prop (file (read getattr map open)))
+(allow keystore statsdw_socket (sock_file (write)))
+(allow keystore statsd (unix_dgram_socket (sendto)))
+(allow keystore keystore2_key_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore keystore_listen_prop (file (read getattr map open)))
+(allow keystore vold (binder (transfer)))
+(allow keystore property_socket (sock_file (write)))
+(allow keystore init (unix_stream_socket (connectto)))
+(allow keystore keystore_crash_prop (property_service (set)))
+(allow keystore keystore_crash_prop (file (read getattr map open)))
+;;* lmx 47 system/sepolicy/private/keystore.te
+
+(neverallow base_typeattr_561 keystore_crash_prop (property_service (set)))
+;;* lme
+
+(allow keystore apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow keystore apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow keystore vendor_apex_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow keystore vendor_apex_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init linkerconfig_exec (file (read getattr map execute open)))
+(allow init linkerconfig (process (transition)))
+(allow linkerconfig linkerconfig_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init linkerconfig (process (noatsecure)))
+(allow init linkerconfig (process (siginh rlimitinh)))
+(typetransition init linkerconfig_exec process linkerconfig)
+(allow linkerconfig linkerconfig_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow linkerconfig linkerconfig_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow linkerconfig kmsg_device (chr_file (write lock append map open)))
+(allow linkerconfig devpts (chr_file (ioctl read write getattr)))
+(allow linkerconfig apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow linkerconfig apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow linkerconfig vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow linkerconfig vendor_apex_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow linkerconfig vendor_apex_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow linkerconfig otapreopt_chroot (fd (use)))
+(allow linkerconfig postinstall_apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow linkerconfig postinstall_apex_mnt_dir (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 30 system/sepolicy/private/linkerconfig.te
+
+(neverallow base_typeattr_802 linkerconfig_exec (file (execute execute_no_trans)))
+;;* lme
+
+(allow init llkd_exec (file (read getattr map execute open)))
+(allow init llkd (process (transition)))
+(allow llkd llkd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init llkd (process (noatsecure)))
+(allow init llkd (process (siginh rlimitinh)))
+(typetransition init llkd_exec process llkd)
+(allow llkd llkd_prop (file (read getattr map open)))
+(allow llkd self (capability (kill)))
+(allow llkd self (cap_userns (kill)))
+(allow llkd self (capability (ipc_lock)))
+(allow llkd self (cap_userns (ipc_lock)))
+(allow llkd domain (process (sigkill)))
+(allow llkd domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow llkd domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow llkd domain (lnk_file (read)))
+(allow llkd proc_hung_task (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow llkd proc_sysrq (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow llkd kmsg_device (chr_file (write lock append map open)))
+;;* lmx 49 system/sepolicy/private/llkd.te
+
+(neverallow base_typeattr_223 llkd (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 50 system/sepolicy/private/llkd.te
+
+(neverallow domain llkd (process (ptrace)))
+;;* lme
+
+;;* lmx 53 system/sepolicy/private/llkd.te
+
+(neverallow base_typeattr_224 llkd (process (noatsecure)))
+;;* lme
+
+(allow init lmkd_exec (file (read getattr map execute open)))
+(allow init lmkd (process (transition)))
+(allow lmkd lmkd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init lmkd (process (noatsecure)))
+(allow init lmkd (process (siginh rlimitinh)))
+(typetransition init lmkd_exec process lmkd)
+(allow lmkd property_socket (sock_file (write)))
+(allow lmkd init (unix_stream_socket (connectto)))
+(allow lmkd system_lmk_prop (property_service (set)))
+(allow lmkd system_lmk_prop (file (read getattr map open)))
+(allow lmkd property_socket (sock_file (write)))
+(allow lmkd init (unix_stream_socket (connectto)))
+(allow lmkd lmkd_prop (property_service (set)))
+(allow lmkd lmkd_prop (file (read getattr map open)))
+(allow lmkd device_config_lmkd_native_prop (file (read getattr map open)))
+(allow lmkd fs_bpf (file (read)))
+(allow lmkd bpfloader (bpf (map_read)))
+;;* lmx 18 system/sepolicy/private/lmkd.te
+
+(neverallow base_typeattr_803 lmkd_prop (property_service (set)))
+;;* lme
+
+(allow init logd_exec (file (read getattr map execute open)))
+(allow init logd (process (transition)))
+(allow logd logd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init logd (process (noatsecure)))
+(allow init logd (process (siginh rlimitinh)))
+(typetransition init logd_exec process logd)
+(allow logd device_logging_prop (file (read getattr map open)))
+;;* lmx 17 system/sepolicy/private/logd.te
+
+(neverallow logd base_typeattr_804 (file (write create append)))
+;;* lme
+
+;;* lmx 32 system/sepolicy/private/logd.te
+
+(neverallow base_typeattr_805 runtime_event_log_tags_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/private/logd.te
+
+(neverallow base_typeattr_806 runtime_event_log_tags_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow logd servicemanager (binder (call transfer)))
+(allow servicemanager logd (binder (call transfer)))
+(allow servicemanager logd (dir (search)))
+(allow servicemanager logd (file (read open)))
+(allow servicemanager logd (process (getattr)))
+(allow logd system_server (binder (call transfer)))
+(allow system_server logd (binder (transfer)))
+(allow logd system_server (fd (use)))
+(allow logd logd_service (service_manager (add find)))
+;;* lmx 50 system/sepolicy/private/logd.te
+
+(neverallow base_typeattr_807 logd_service (service_manager (add)))
+;;* lme
+
+(allow logd logcat_service (service_manager (find)))
+;;* lmx 28 system/sepolicy/private/logpersist.te
+
+(neverallow logpersist file_type (file (write create append)))
+;;* lme
+
+;;* lmx 29 system/sepolicy/private/logpersist.te
+
+(neverallow base_typeattr_808 misc_logd_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 30 system/sepolicy/private/logpersist.te
+
+(neverallow base_typeattr_223 misc_logd_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 31 system/sepolicy/private/logpersist.te
+
+(neverallow base_typeattr_223 misc_logd_file (dir (write relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+(allow init lpdumpd_exec (file (read getattr map execute open)))
+(allow init lpdumpd (process (transition)))
+(allow lpdumpd lpdumpd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init lpdumpd (process (noatsecure)))
+(allow init lpdumpd (process (siginh rlimitinh)))
+(typetransition init lpdumpd_exec process lpdumpd)
+(allow lpdumpd servicemanager (binder (call transfer)))
+(allow servicemanager lpdumpd (binder (call transfer)))
+(allow servicemanager lpdumpd (dir (search)))
+(allow servicemanager lpdumpd (file (read open)))
+(allow servicemanager lpdumpd (process (getattr)))
+(allow lpdumpd lpdump_service (service_manager (add find)))
+;;* lmx 8 system/sepolicy/private/lpdumpd.te
+
+(neverallow base_typeattr_809 lpdump_service (service_manager (add)))
+;;* lme
+
+(allow lpdumpd block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow lpdumpd super_block_device_type (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd sysfs_dt_firmware_android (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow lpdumpd sysfs_dt_firmware_android (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd gsi_metadata_file_type (dir (search)))
+(allow lpdumpd metadata_file (dir (search)))
+(allow lpdumpd gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd sysfs_dt_firmware_android (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow lpdumpd sysfs_dt_firmware_android (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd sysfs_dt_firmware_android (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow lpdumpd virtual_ab_prop (file (read getattr map open)))
+(allow lpdumpd metadata_file (dir (search)))
+(allow lpdumpd ota_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow lpdumpd ota_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 39 system/sepolicy/private/lpdumpd.te
+
+(neverallow base_typeattr_810 lpdump_service (service_manager (find)))
+;;* lme
+
+;;* lmx 47 system/sepolicy/private/lpdumpd.te
+
+(neverallow base_typeattr_811 lpdumpd (binder (call)))
+;;* lme
+
+(allow init mdnsd_exec (file (read getattr map execute open)))
+(allow init mdnsd (process (transition)))
+(allow mdnsd mdnsd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mdnsd (process (noatsecure)))
+(allow init mdnsd (process (siginh rlimitinh)))
+(typetransition init mdnsd_exec process mdnsd)
+(allow mdnsd proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mdnsd proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mdnsd proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init mediadrmserver_exec (file (read getattr map execute open)))
+(allow init mediadrmserver (process (transition)))
+(allow mediadrmserver mediadrmserver_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mediadrmserver (process (noatsecure)))
+(allow init mediadrmserver (process (siginh rlimitinh)))
+(typetransition init mediadrmserver_exec process mediadrmserver)
+(auditallow mediadrmserver hal_graphics_allocator_server (binder (call)))
+(allow init mediaextractor_exec (file (read getattr map execute open)))
+(allow init mediaextractor (process (transition)))
+(allow mediaextractor mediaextractor_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mediaextractor (process (noatsecure)))
+(allow init mediaextractor (process (siginh rlimitinh)))
+(typetransition init mediaextractor_exec process mediaextractor)
+(typetransition mediaextractor tmpfs file mediaextractor_tmpfs)
+(allow mediaextractor mediaextractor_tmpfs (file (read write getattr map)))
+(allow mediaextractor appdomain_tmpfs (file (read write getattr map)))
+(allow mediaextractor mediaserver_tmpfs (file (read write getattr map)))
+(allow mediaextractor system_server_tmpfs (file (read write getattr map)))
+(allow mediaextractor device_config_media_native_prop (file (read getattr map open)))
+(allow mediaextractor device_config_swcodec_native_prop (file (read getattr map open)))
+(allow init mediametrics_exec (file (read getattr map execute open)))
+(allow init mediametrics (process (transition)))
+(allow mediametrics mediametrics_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mediametrics (process (noatsecure)))
+(allow init mediametrics (process (siginh rlimitinh)))
+(typetransition init mediametrics_exec process mediametrics)
+(allow mediametrics stats_service (service_manager (find)))
+(allow mediametrics statsmanager_service (service_manager (find)))
+(allow mediametrics statsd (binder (call transfer)))
+(allow statsd mediametrics (binder (transfer)))
+(allow mediametrics statsd (fd (use)))
+(typetransition mediaprovider tmpfs file appdomain_tmpfs)
+(allow mediaprovider mediaprovider_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su mediaprovider_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 7 system/sepolicy/private/mediaprovider.te
+
+(neverallow base_typeattr_812 mediaprovider_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow mediaprovider appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 7 system/sepolicy/private/mediaprovider.te
+
+(neverallow base_typeattr_813 base_typeattr_812 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/private/mediaprovider.te
+
+(neverallow base_typeattr_814 mediaprovider (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/private/mediaprovider.te
+
+(neverallow base_typeattr_815 mediaprovider (process (ptrace)))
+;;* lme
+
+(allow mediaprovider cache_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow mediaprovider cache_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow mediaprovider cache_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit mediaprovider cache_private_backup_file (dir (getattr)))
+(dontaudit mediaprovider cache_recovery_file (dir (getattr)))
+(allow mediaprovider mnt_media_rw_file (dir (search)))
+(allow mediaprovider app_api_service (service_manager (find)))
+(allow mediaprovider audioserver_service (service_manager (find)))
+(allow mediaprovider cameraserver_service (service_manager (find)))
+(allow mediaprovider drmserver_service (service_manager (find)))
+(allow mediaprovider mediaextractor_service (service_manager (find)))
+(allow mediaprovider mediaserver_service (service_manager (find)))
+(allow mediaprovider ringtone_file (file (read write getattr)))
+(allow mediaprovider mtp_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mediaprovider functionfs (dir (search)))
+(allow mediaprovider functionfs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx mediaprovider functionfs (ioctl file (0x6782)))
+(allowx mediaprovider functionfs (ioctl file (0x67e7)))
+(allow mediaprovider ffs_config_prop (file (read getattr map open)))
+(allow mediaprovider property_socket (sock_file (write)))
+(allow mediaprovider init (unix_stream_socket (connectto)))
+(allow mediaprovider ffs_control_prop (property_service (set)))
+(allow mediaprovider ffs_control_prop (file (read getattr map open)))
+(allow mediaprovider drm_service_config_prop (file (read getattr map open)))
+(typetransition mediaprovider_app tmpfs file appdomain_tmpfs)
+(allow mediaprovider_app mediaprovider_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su mediaprovider_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 6 system/sepolicy/private/mediaprovider_app.te
+
+(neverallow base_typeattr_816 mediaprovider_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow mediaprovider_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 6 system/sepolicy/private/mediaprovider_app.te
+
+(neverallow base_typeattr_817 base_typeattr_816 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/mediaprovider_app.te
+
+(neverallow base_typeattr_818 mediaprovider_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/mediaprovider_app.te
+
+(neverallow base_typeattr_819 mediaprovider_app (process (ptrace)))
+;;* lme
+
+(allow mediaprovider_app mnt_pass_through_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaprovider_app mnt_pass_through_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaprovider_app mnt_pass_through_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaprovider_app fuse_device (chr_file (ioctl read write getattr)))
+(allow mediaprovider_app fuseblk (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow mediaprovider_app fuseblk (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow mediaprovider_app media_userdir_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediaprovider_app media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow mediaprovider_app media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow mediaprovider_app drmserver_service (service_manager (find)))
+(allow mediaprovider_app mediaserver_service (service_manager (find)))
+(allow mediaprovider_app audioserver_service (service_manager (find)))
+(allow mediaprovider_app mediametrics_service (service_manager (find)))
+(allow mediaprovider_app app_api_service (service_manager (find)))
+(allow mediaprovider_app gpuservice (binder (call transfer)))
+(allow gpuservice mediaprovider_app (binder (transfer)))
+(allow mediaprovider_app gpuservice (fd (use)))
+(allow mediaprovider_app statsmanager_service (service_manager (find)))
+(allow mediaprovider_app statsd (binder (call transfer)))
+(allow statsd mediaprovider_app (binder (transfer)))
+(allow mediaprovider_app statsd (fd (use)))
+(allow mediaprovider_app proc_pipe_conf (file (ioctl read getattr lock map open watch watch_reads)))
+(allowx mediaprovider_app media_rw_data_file (ioctl file ((range 0x581f 0x5820))))
+(allowx mediaprovider_app media_rw_data_file (ioctl dir ((range 0x581f 0x5820))))
+(allowx mediaprovider_app media_rw_data_file (ioctl file ((range 0x6601 0x6602))))
+(allowx mediaprovider_app media_rw_data_file (ioctl dir ((range 0x6601 0x6602))))
+(allow mediaprovider_app mnt_media_rw_file (dir (search)))
+(allow mediaprovider_app proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediaprovider_app storage_config_prop (file (read getattr map open)))
+(allow mediaprovider_app drm_service_config_prop (file (read getattr map open)))
+(allow mediaprovider_app gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mediaprovider_app gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit mediaprovider_app sysfs_vendor_sched (dir (search)))
+(dontaudit mediaprovider_app sysfs_vendor_sched (file (write lock append map open)))
+(allow mediaprovider_app fs_bpf (file (read)))
+(allow mediaprovider_app bpfloader (bpf (map_read map_write prog_run)))
+(allow mediaprovider_app bootanim_oem_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init mediaserver_exec (file (read getattr map execute open)))
+(allow init mediaserver (process (transition)))
+(allow mediaserver mediaserver_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mediaserver (process (noatsecure)))
+(allow init mediaserver (process (siginh rlimitinh)))
+(typetransition init mediaserver_exec process mediaserver)
+(typetransition mediaserver tmpfs file mediaserver_tmpfs)
+(allow mediaserver mediaserver_tmpfs (file (read write getattr map)))
+(allow mediaserver appdomain_tmpfs (file (read write getattr map)))
+(allow mediaserver property_socket (sock_file (write)))
+(allow mediaserver init (unix_stream_socket (connectto)))
+(allow mediaserver audio_prop (property_service (set)))
+(allow mediaserver audio_prop (file (read getattr map open)))
+(allow mediaserver drm_service_config_prop (file (read getattr map open)))
+(allow mediaserver media_config_prop (file (read getattr map open)))
+(allow mediaserver device_config_media_native_prop (file (read getattr map open)))
+(allow mediaserver property_socket (sock_file (write)))
+(allow mediaserver init (unix_stream_socket (connectto)))
+(allow mediaserver ctl_mediatranscoding_prop (property_service (set)))
+(allow mediaserver ctl_mediatranscoding_prop (file (read getattr map open)))
+(allow mediaserver sdk_sandbox_data_file (file (read getattr)))
+(allow mediaserver stats_service (service_manager (find)))
+(allow mediaserver statsmanager_service (service_manager (find)))
+(allow mediaserver statsd (binder (call transfer)))
+(allow statsd mediaserver (binder (transfer)))
+(allow mediaserver statsd (fd (use)))
+(allow mediaserver virtual_camera (binder (call transfer)))
+(allow virtual_camera mediaserver (binder (transfer)))
+(allow mediaserver virtual_camera (fd (use)))
+(allow init mediaswcodec_exec (file (read getattr map execute open)))
+(allow init mediaswcodec (process (transition)))
+(allow mediaswcodec mediaswcodec_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mediaswcodec (process (noatsecure)))
+(allow init mediaswcodec (process (siginh rlimitinh)))
+(typetransition init mediaswcodec_exec process mediaswcodec)
+(allow mediaswcodec device_config_media_native_prop (file (read getattr map open)))
+(allow mediaswcodec device_config_swcodec_native_prop (file (read getattr map open)))
+(allow init mediatranscoding_exec (file (read getattr map execute open)))
+(allow init mediatranscoding (process (transition)))
+(allow mediatranscoding mediatranscoding_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mediatranscoding (process (noatsecure)))
+(allow init mediatranscoding (process (siginh rlimitinh)))
+(typetransition init mediatranscoding_exec process mediatranscoding)
+(typetransition mediatranscoding tmpfs file mediatranscoding_tmpfs)
+(allow mediatranscoding mediatranscoding_tmpfs (file (read write getattr map)))
+(allow mediatranscoding appdomain_tmpfs (file (read write getattr map)))
+(allow mediatranscoding servicemanager (binder (call transfer)))
+(allow servicemanager mediatranscoding (binder (call transfer)))
+(allow servicemanager mediatranscoding (dir (search)))
+(allow servicemanager mediatranscoding (file (read open)))
+(allow servicemanager mediatranscoding (process (getattr)))
+(allow mediatranscoding binderservicedomain (binder (call transfer)))
+(allow binderservicedomain mediatranscoding (binder (transfer)))
+(allow mediatranscoding binderservicedomain (fd (use)))
+(allow mediatranscoding appdomain (binder (call transfer)))
+(allow appdomain mediatranscoding (binder (transfer)))
+(allow mediatranscoding appdomain (fd (use)))
+(allow mediatranscoding mediatranscoding_service (service_manager (add find)))
+;;* lmx 15 system/sepolicy/private/mediatranscoding.te
+
+(neverallow base_typeattr_820 mediatranscoding_service (service_manager (add)))
+;;* lme
+
+(allow mediatranscoding mediaserver_service (service_manager (find)))
+(allow mediatranscoding mediametrics_service (service_manager (find)))
+(allow mediatranscoding mediaextractor_service (service_manager (find)))
+(allow mediatranscoding package_native_service (service_manager (find)))
+(allow mediatranscoding thermal_service (service_manager (find)))
+(allow mediatranscoding system_server (fd (use)))
+(allow mediatranscoding activity_service (service_manager (find)))
+(allow mediatranscoding sdcardfs (file (read write getattr)))
+(allow mediatranscoding media_rw_data_file (file (read write getattr)))
+(allow mediatranscoding apk_data_file (file (read getattr)))
+(allow mediatranscoding app_data_file (file (read write getattr)))
+(allow mediatranscoding shell_data_file (file (read write getattr)))
+(allow mediatranscoding statsdw_socket (sock_file (write)))
+(allow mediatranscoding statsd (unix_dgram_socket (sendto)))
+(allow mediatranscoding dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow mediatranscoding gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mediatranscoding gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mediatranscoding media_config_prop (file (read getattr map open)))
+;;* lmx 53 system/sepolicy/private/mediatranscoding.te
+
+(neverallow mediatranscoding fs_type (file (execute_no_trans)))
+(neverallow mediatranscoding file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 65 system/sepolicy/private/mediatranscoding.te
+
+(neverallow mediatranscoding domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow mediatranscoding domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+;;* lmx 66 system/sepolicy/private/mediatranscoding.te
+
+(neverallow mediatranscoding domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+;;* lme
+
+(allow init mediatuner_exec (file (read getattr map execute open)))
+(allow init mediatuner (process (transition)))
+(allow mediatuner mediatuner_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mediatuner (process (noatsecure)))
+(allow init mediatuner (process (siginh rlimitinh)))
+(typetransition init mediatuner_exec process mediatuner)
+(allow mediatuner servicemanager (binder (call transfer)))
+(allow servicemanager mediatuner (binder (call transfer)))
+(allow servicemanager mediatuner (dir (search)))
+(allow servicemanager mediatuner (file (read open)))
+(allow servicemanager mediatuner (process (getattr)))
+(allow mediatuner appdomain (binder (call transfer)))
+(allow appdomain mediatuner (binder (transfer)))
+(allow mediatuner appdomain (fd (use)))
+(allow mediatuner mediatuner_service (service_manager (add find)))
+;;* lmx 14 system/sepolicy/private/mediatuner.te
+
+(neverallow base_typeattr_821 mediatuner_service (service_manager (add)))
+;;* lme
+
+(allow mediatuner system_server (fd (use)))
+(allow mediatuner tv_tuner_resource_mgr_service (service_manager (find)))
+(allow mediatuner package_native_service (service_manager (find)))
+(allow mediatuner system_server (binder (call transfer)))
+(allow system_server mediatuner (binder (transfer)))
+(allow mediatuner system_server (fd (use)))
+(allow mediatuner tuner_config_prop (file (read getattr map open)))
+(allow mediatuner tuner_server_ctl_prop (file (read getattr map open)))
+;;* lmx 32 system/sepolicy/private/mediatuner.te
+
+(neverallow mediatuner fs_type (file (execute_no_trans)))
+(neverallow mediatuner file_type (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 35 system/sepolicy/private/mediatuner.te
+
+(neverallowx mediatuner domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx mediatuner domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx mediatuner domain (ioctl rawip_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 35 system/sepolicy/private/mediatuner.te
+
+(neverallowx mediatuner domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediatuner domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx mediatuner domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 35 system/sepolicy/private/mediatuner.te
+
+(neverallowx mediatuner domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediatuner domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx mediatuner domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+(allow migrate_legacy_obb_data media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow migrate_legacy_obb_data media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow migrate_legacy_obb_data shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow migrate_legacy_obb_data toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow migrate_legacy_obb_data self (capability (chown dac_override dac_read_search fowner fsetid)))
+(allow migrate_legacy_obb_data mnt_user_file (dir (search)))
+(allow migrate_legacy_obb_data mnt_user_file (lnk_file (read)))
+(allow migrate_legacy_obb_data storage_file (dir (search)))
+(allow migrate_legacy_obb_data storage_file (lnk_file (read)))
+(allow migrate_legacy_obb_data sdcard_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow migrate_legacy_obb_data sdcard_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow migrate_legacy_obb_data installd (fd (use)))
+(allow migrate_legacy_obb_data installd (file (read)))
+(allow init misctrl_exec (file (read getattr map execute open)))
+(allow init misctrl (process (transition)))
+(allow misctrl misctrl_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init misctrl (process (noatsecure)))
+(allow init misctrl (process (siginh rlimitinh)))
+(typetransition init misctrl_exec process misctrl)
+(allow misctrl misc_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow misctrl block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow misctrl gsi_metadata_file_type (dir (search)))
+(allow misctrl metadata_file (dir (search)))
+(allow misctrl gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow misctrl proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow misctrl proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow misctrl property_socket (sock_file (write)))
+(allow misctrl init (unix_stream_socket (connectto)))
+(allow misctrl misctrl_prop (property_service (set)))
+(allow misctrl misctrl_prop (file (read getattr map open)))
+(dontaudit misctrl sysfs_dt_firmware_android (dir (search)))
+(dontaudit misctrl vendor_property_type (file (read)))
+;;* lmx 12 system/sepolicy/private/mlstrustedsubject.te
+
+(neverallow base_typeattr_822 app_data_file (file (create setattr relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_822 privapp_data_file (file (create setattr relabelfrom relabelto unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 18 system/sepolicy/private/mlstrustedsubject.te
+
+(neverallow base_typeattr_822 app_data_file (dir (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+(neverallow base_typeattr_822 privapp_data_file (dir (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 28 system/sepolicy/private/mlstrustedsubject.te
+
+(neverallow base_typeattr_823 app_data_file (dir (read getattr search)))
+(neverallow base_typeattr_823 privapp_data_file (dir (read getattr search)))
+;;* lme
+
+(allow init mm_events_exec (file (read getattr map execute open)))
+(allow init mm_events (process (transition)))
+(allow mm_events mm_events_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mm_events (process (noatsecure)))
+(allow init mm_events (process (siginh rlimitinh)))
+(typetransition init mm_events_exec process mm_events)
+(allow mm_events shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow mm_events toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow mm_events perfetto_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow mm_events perfetto_exec (file (read getattr map execute open)))
+(allow mm_events perfetto (process (transition)))
+(allow perfetto perfetto_exec (file (read getattr map execute open entrypoint)))
+(allow perfetto mm_events (process (sigchld)))
+(dontaudit mm_events perfetto (process (noatsecure)))
+(allow mm_events perfetto (process (siginh rlimitinh)))
+(typetransition mm_events perfetto_exec process perfetto)
+(allow init mtectrl_exec (file (read getattr map execute open)))
+(allow init mtectrl (process (transition)))
+(allow mtectrl mtectrl_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init mtectrl (process (noatsecure)))
+(allow init mtectrl (process (siginh rlimitinh)))
+(typetransition init mtectrl_exec process mtectrl)
+(allow mtectrl property_socket (sock_file (write)))
+(allow mtectrl init (unix_stream_socket (connectto)))
+(allow mtectrl arm64_memtag_prop (property_service (set)))
+(allow mtectrl arm64_memtag_prop (file (read getattr map open)))
+(allow mtectrl misc_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow mtectrl block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow mtectrl gsi_metadata_file_type (dir (search)))
+(allow mtectrl metadata_file (dir (search)))
+(allow mtectrl gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mtectrl proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow mtectrl proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit mtectrl sysfs_dt_firmware_android (dir (search)))
+(dontaudit mtectrl vendor_property_type (file (read)))
+(allow base_typeattr_824 node_type (tcp_socket (node_bind)))
+(allow base_typeattr_824 node_type (udp_socket (node_bind)))
+(allow base_typeattr_824 node_type (rawip_socket (node_bind)))
+(allow base_typeattr_824 node_type (icmp_socket (node_bind)))
+(allow base_typeattr_824 port_type (udp_socket (name_bind)))
+(allow base_typeattr_824 port_type (tcp_socket (name_bind)))
+(allow base_typeattr_825 self (netlink_route_socket (bind nlmsg_readpriv nlmsg_getneigh)))
+(allow init netd_exec (file (read getattr map execute open)))
+(allow init netd (process (transition)))
+(allow netd netd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init netd (process (noatsecure)))
+(allow init netd (process (siginh rlimitinh)))
+(typetransition init netd_exec process netd)
+(allow netd dnsmasq_exec (file (read getattr map execute open)))
+(allow netd dnsmasq (process (transition)))
+(allow dnsmasq dnsmasq_exec (file (read getattr map execute open entrypoint)))
+(allow dnsmasq netd (process (sigchld)))
+(dontaudit netd dnsmasq (process (noatsecure)))
+(allow netd dnsmasq (process (siginh rlimitinh)))
+(typetransition netd dnsmasq_exec process dnsmasq)
+(allow netd fs_bpf (dir (search)))
+(allow netd fs_bpf_vendor (dir (search)))
+(allow netd fs_bpf_netd_readonly (dir (search)))
+(allow netd fs_bpf_netd_shared (dir (search)))
+(allow netd fs_bpf (file (read getattr)))
+(allow netd fs_bpf_vendor (file (read getattr)))
+(allow netd fs_bpf_netd_readonly (file (read getattr)))
+(allow netd fs_bpf_netd_shared (file (read getattr)))
+(allow netd fs_bpf (file (write)))
+(allow netd fs_bpf_netd_shared (file (write)))
+(allow netd bpfloader (bpf (map_read map_write prog_run)))
+(allow netd self (key_socket (create)))
+(allow netd property_socket (sock_file (write)))
+(allow netd init (unix_stream_socket (connectto)))
+(allow netd ctl_mdnsd_prop (property_service (set)))
+(allow netd ctl_mdnsd_prop (file (read getattr map open)))
+(allow netd property_socket (sock_file (write)))
+(allow netd init (unix_stream_socket (connectto)))
+(allow netd netd_stable_secret_prop (property_service (set)))
+(allow netd netd_stable_secret_prop (file (read getattr map open)))
+(allow netd adbd_config_prop (file (read getattr map open)))
+(allow netd hwservicemanager_prop (file (read getattr map open)))
+(allow netd device_config_netd_native_prop (file (read getattr map open)))
+(allow netd statsdw_socket (sock_file (write)))
+(allow netd statsd (unix_dgram_socket (sendto)))
+(allow netd network_stack (binder (call transfer)))
+(allow network_stack netd (binder (transfer)))
+(allow netd network_stack (fd (use)))
+(allow netd dumpstate (fd (use)))
+(allow netd dumpstate (fifo_file (write getattr)))
+;;* lmx 41 system/sepolicy/private/netd.te
+
+(neverallow base_typeattr_826 netd_stable_secret_prop (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/private/netd.te
+
+(neverallow base_typeattr_827 netd_stable_secret_prop (property_service (set)))
+;;* lme
+
+(allow netutils_wrapper system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow netutils_wrapper system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow netutils_wrapper system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow netutils_wrapper self (capability (net_raw)))
+(allow netutils_wrapper self (cap_userns (net_raw)))
+(allow netutils_wrapper system_file (file (execute execute_no_trans)))
+(allow netutils_wrapper proc_net_type (file (read getattr open)))
+(allow netutils_wrapper self (rawip_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netutils_wrapper self (udp_socket (ioctl read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow netutils_wrapper self (capability (net_admin)))
+(allow netutils_wrapper self (cap_userns (net_admin)))
+(allow netutils_wrapper self (netlink_route_socket (read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_readpriv nlmsg_getneigh)))
+(allow netutils_wrapper self (netlink_xfrm_socket (read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(allow netutils_wrapper netd_service (service_manager (find)))
+(allow netutils_wrapper dnsresolver_service (service_manager (find)))
+(allow netutils_wrapper mdns_service (service_manager (find)))
+(allow netutils_wrapper servicemanager (binder (call transfer)))
+(allow servicemanager netutils_wrapper (binder (call transfer)))
+(allow servicemanager netutils_wrapper (dir (search)))
+(allow servicemanager netutils_wrapper (file (read open)))
+(allow servicemanager netutils_wrapper (process (getattr)))
+(allow netutils_wrapper netd (binder (call transfer)))
+(allow netd netutils_wrapper (binder (transfer)))
+(allow netutils_wrapper netd (fd (use)))
+(allow netutils_wrapper fs_bpf (dir (search)))
+(allow netutils_wrapper fs_bpf_vendor (dir (search)))
+(allow netutils_wrapper fs_bpf_netd_shared (dir (search)))
+(allow netutils_wrapper fs_bpf (file (read getattr)))
+(allow netutils_wrapper fs_bpf_vendor (file (read getattr)))
+(allow netutils_wrapper fs_bpf_netd_shared (file (read getattr)))
+(allow netutils_wrapper fs_bpf (file (write)))
+(allow netutils_wrapper bpfloader (bpf (prog_run)))
+(allow netutils_wrapper net_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow netutils_wrapper net_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow netutils_wrapper net_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow base_typeattr_717 netutils_wrapper_exec (file (read getattr map execute open)))
+(allow base_typeattr_717 netutils_wrapper (process (transition)))
+(allow netutils_wrapper netutils_wrapper_exec (file (read getattr map execute open entrypoint)))
+(allow netutils_wrapper base_typeattr_717 (process (sigchld)))
+(dontaudit base_typeattr_717 netutils_wrapper (process (noatsecure)))
+(allow base_typeattr_717 netutils_wrapper (process (siginh rlimitinh)))
+(typetransition base_typeattr_717 netutils_wrapper_exec process netutils_wrapper)
+(dontaudit netutils_wrapper self (capability (sys_resource)))
+(dontaudit netutils_wrapper self (cap_userns (sys_resource)))
+(dontaudit netutils_wrapper sysfs_type (file (read)))
+;;* lmx 47 system/sepolicy/private/netutils_wrapper.te
+
+(neverallow netutils_wrapper self (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow netutils_wrapper self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+;;* lme
+
+(typetransition network_stack tmpfs file appdomain_tmpfs)
+(allow network_stack network_stack_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su network_stack_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 6 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_828 network_stack_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow network_stack appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 6 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_829 base_typeattr_828 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_830 network_stack (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_831 network_stack (process (ptrace)))
+;;* lme
+
+(allow network_stack self (capability (net_bind_service net_broadcast net_admin net_raw)))
+(allow network_stack self (cap_userns (net_bind_service net_broadcast net_admin net_raw)))
+(allow network_stack self (capability2 (wake_alarm)))
+(allow network_stack self (cap2_userns (wake_alarm)))
+(allowx network_stack self (ioctl udp_socket (0x6900 0x6902)))
+(allowx network_stack self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx network_stack self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow network_stack self (packet_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow network_stack self (netlink_route_socket (nlmsg_write)))
+(allow network_stack self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow network_stack self (netlink_nflog_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow network_stack self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow network_stack self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow network_stack app_api_service (service_manager (find)))
+(allow network_stack dnsresolver_service (service_manager (find)))
+(allow network_stack mdns_service (service_manager (find)))
+(allow network_stack netd_service (service_manager (find)))
+(allow network_stack network_watchlist_service (service_manager (find)))
+(allow network_stack radio_service (service_manager (find)))
+(allow network_stack system_config_service (service_manager (find)))
+(allow network_stack radio_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow network_stack radio_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow network_stack netd (binder (call transfer)))
+(allow netd network_stack (binder (transfer)))
+(allow network_stack netd (fd (use)))
+(allow network_stack self (key_socket (create)))
+(dontaudit network_stack self (key_socket (getopt)))
+(allow network_stack device_config_connectivity_prop (file (read getattr map open)))
+(allow network_stack self (netlink_tcpdiag_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read nlmsg_write)))
+(allow network_stack self (netlink_netfilter_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow network_stack network_stack_service (service_manager (find)))
+(allow network_stack fs_bpf_tethering (dir (search)))
+(allow network_stack fs_bpf_net_private (dir (search)))
+(allow network_stack fs_bpf_net_shared (dir (search)))
+(allow network_stack fs_bpf_netd_readonly (dir (search)))
+(allow network_stack fs_bpf_netd_shared (dir (search)))
+(allow network_stack fs_bpf_tethering (file (read write getattr)))
+(allow network_stack fs_bpf_net_private (file (read write getattr)))
+(allow network_stack fs_bpf_net_shared (file (read write getattr)))
+(allow network_stack fs_bpf_netd_readonly (file (read write getattr)))
+(allow network_stack fs_bpf_netd_shared (file (read write getattr)))
+(allow network_stack bpfloader (bpf (map_read map_write prog_run)))
+(allow network_stack device_config_tethering_u_or_later_native_prop (file (read getattr map open)))
+(allow network_stack self (netlink_xfrm_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read nlmsg_write)))
+(allow network_stack tun_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx network_stack tun_device (ioctl chr_file (0x54ca 0x54cd 0x54d2 0x54e2)))
+;;* lmx 83 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_668 fs_bpf_net_private (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 84 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_668 fs_bpf_net_private (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 87 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_669 fs_bpf_net_shared (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 88 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_669 fs_bpf_net_shared (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 92 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_670 fs_bpf_netd_readonly (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 93 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_670 fs_bpf_netd_readonly (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 94 system/sepolicy/private/network_stack.te
+
+(neverallow netd fs_bpf_netd_readonly (file (write)))
+;;* lme
+
+;;* lmx 98 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_671 fs_bpf_netd_shared (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 99 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_671 fs_bpf_netd_shared (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 100 system/sepolicy/private/network_stack.te
+
+(neverallow netutils_wrapper fs_bpf_netd_shared (file (write)))
+;;* lme
+
+;;* lmx 103 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_668 fs_bpf_tethering (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 104 system/sepolicy/private/network_stack.te
+
+(neverallow base_typeattr_668 fs_bpf_tethering (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(typetransition nfc tmpfs file appdomain_tmpfs)
+(allow nfc nfc_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su nfc_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 3 system/sepolicy/private/nfc.te
+
+(neverallow base_typeattr_832 nfc_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow nfc appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 3 system/sepolicy/private/nfc.te
+
+(neverallow base_typeattr_833 base_typeattr_832 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/nfc.te
+
+(neverallow base_typeattr_834 nfc (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/nfc.te
+
+(neverallow base_typeattr_835 nfc (process (ptrace)))
+;;* lme
+
+(allow nfc nfc_service (service_manager (add find)))
+;;* lmx 7 system/sepolicy/private/nfc.te
+
+(neverallow base_typeattr_832 nfc_service (service_manager (add)))
+;;* lme
+
+(allow nfc nfc_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow nfc nfc_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow nfc nfc_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow nfc nfc_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow nfc nfc_data_file (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow nfc nfc_logs_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow nfc nfc_logs_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow nfc audioserver_service (service_manager (find)))
+(allow nfc drmserver_service (service_manager (find)))
+(allow nfc mediametrics_service (service_manager (find)))
+(allow nfc mediaextractor_service (service_manager (find)))
+(allow nfc mediaserver_service (service_manager (find)))
+(allow nfc radio_service (service_manager (find)))
+(allow nfc app_api_service (service_manager (find)))
+(allow nfc system_api_service (service_manager (find)))
+(allow nfc vr_manager_service (service_manager (find)))
+(allow nfc secure_element_service (service_manager (find)))
+(allow nfc property_socket (sock_file (write)))
+(allow nfc init (unix_stream_socket (connectto)))
+(allow nfc nfc_prop (property_service (set)))
+(allow nfc nfc_prop (file (read getattr map open)))
+(allow nfc shell_data_file (file (read)))
+(allow odrefresh apex_module_data_file (dir (getattr search)))
+(allow odrefresh apex_art_data_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow odrefresh apex_art_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow odrefresh odrefresh_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow odrefresh odrefresh_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow odrefresh odrefresh_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su odrefresh_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 14 system/sepolicy/private/odrefresh.te
+
+(neverallow base_typeattr_836 odrefresh_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow odrefresh apex_art_staging_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow odrefresh apex_art_staging_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow odrefresh dex2oat_exec (file (read getattr map execute open)))
+(allow odrefresh dex2oat (process (transition)))
+(allow dex2oat dex2oat_exec (file (read getattr map execute open entrypoint)))
+(allow dex2oat odrefresh (process (sigchld)))
+(dontaudit odrefresh dex2oat (process (noatsecure)))
+(allow odrefresh dex2oat (process (siginh rlimitinh)))
+(typetransition odrefresh dex2oat_exec process dex2oat)
+(allow odrefresh dex2oat (process (sigkill)))
+(allow odrefresh dexoptanalyzer_exec (file (read getattr map execute open)))
+(allow odrefresh dexoptanalyzer (process (transition)))
+(allow dexoptanalyzer dexoptanalyzer_exec (file (read getattr map execute open entrypoint)))
+(allow dexoptanalyzer odrefresh (process (sigchld)))
+(dontaudit odrefresh dexoptanalyzer (process (noatsecure)))
+(allow odrefresh dexoptanalyzer (process (siginh rlimitinh)))
+(typetransition odrefresh dexoptanalyzer_exec process dexoptanalyzer)
+(allow odrefresh dexoptanalyzer (process (sigkill)))
+(allow odrefresh odsign_devpts (chr_file (read write)))
+(allow odrefresh odsign (fd (use)))
+(allow odrefresh apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow odrefresh property_socket (sock_file (write)))
+(allow odrefresh init (unix_stream_socket (connectto)))
+(allow odrefresh bootanim_system_prop (property_service (set)))
+(allow odrefresh bootanim_system_prop (file (read getattr map open)))
+(allow odrefresh device_config_runtime_native_prop (file (read getattr map open)))
+(allow odrefresh device_config_runtime_native_boot_prop (file (read getattr map open)))
+(dontaudit odrefresh adbd (fd (use)))
+(dontaudit odrefresh shell (fd (use)))
+(dontaudit odrefresh devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(dontaudit odrefresh adbd (unix_stream_socket (read write getattr)))
+;;* lmx 55 system/sepolicy/private/odrefresh.te
+
+(neverallow base_typeattr_837 apex_art_staging_data_file (file (open)))
+;;* lme
+
+;;* lmx 59 system/sepolicy/private/odrefresh.te
+
+(neverallow base_typeattr_838 odrefresh_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 60 system/sepolicy/private/odrefresh.te
+
+(neverallow base_typeattr_838 odrefresh_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow init odsign_exec (file (read getattr map execute open)))
+(allow init odsign (process (transition)))
+(allow odsign odsign_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init odsign (process (noatsecure)))
+(allow init odsign (process (siginh rlimitinh)))
+(typetransition init odsign_exec process odsign)
+(allow odsign odsign_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow odsign odsign_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow odsign odsign_metrics_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow odsign odsign_metrics_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(typetransition odsign devpts chr_file odsign_devpts)
+(allow odsign odsign_devpts (chr_file (ioctl read write getattr open)))
+(allowx odsign odsign_devpts (ioctl chr_file ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+;;* lmx 21 system/sepolicy/private/odsign.te
+
+(neverallowx base_typeattr_224 odsign_devpts (ioctl chr_file (0x5412)))
+;;* lme
+
+(allowx odsign apex_art_data_file (ioctl file (0x6601 (range 0x6685 0x6686))))
+(allow odsign servicemanager (binder (call transfer)))
+(allow servicemanager odsign (binder (call transfer)))
+(allow servicemanager odsign (dir (search)))
+(allow servicemanager odsign (file (read open)))
+(allow servicemanager odsign (process (getattr)))
+(allow keystore odsign (dir (search)))
+(allow keystore odsign (file (read open)))
+(allow keystore odsign (process (getattr)))
+(allow odsign apc_service (service_manager (find)))
+(allow odsign keystore_service (service_manager (find)))
+(allow odsign legacykeystore_service (service_manager (find)))
+(allow odsign keystore (binder (call transfer)))
+(allow keystore odsign (binder (transfer)))
+(allow odsign keystore (fd (use)))
+(allow keystore odsign (binder (call transfer)))
+(allow odsign keystore (binder (transfer)))
+(allow keystore odsign (fd (use)))
+(allow odsign odsign_key (keystore2_key (delete get_info rebind use)))
+(allow odsign apex_module_data_file (dir (getattr search)))
+(allow odsign apex_art_data_file (dir (ioctl read write getattr lock rename open watch watch_reads add_name remove_name search rmdir)))
+(allow odsign apex_art_data_file (file (ioctl read write getattr lock append map unlink open watch watch_reads)))
+(allow odsign odrefresh_exec (file (read getattr map execute open)))
+(allow odsign odrefresh (process (transition)))
+(allow odrefresh odrefresh_exec (file (read getattr map execute open entrypoint)))
+(allow odrefresh odsign (process (sigchld)))
+(dontaudit odsign odrefresh (process (noatsecure)))
+(allow odsign odrefresh (process (siginh rlimitinh)))
+(typetransition odsign odrefresh_exec process odrefresh)
+(allow odsign fsverity_init_exec (file (read getattr map execute open)))
+(allow odsign fsverity_init (process (transition)))
+(allow fsverity_init fsverity_init_exec (file (read getattr map execute open entrypoint)))
+(allow fsverity_init odsign (process (sigchld)))
+(dontaudit odsign fsverity_init (process (noatsecure)))
+(allow odsign fsverity_init (process (siginh rlimitinh)))
+(typetransition odsign fsverity_init_exec process fsverity_init)
+(allow odsign compos_verify_exec (file (read getattr map execute open)))
+(allow odsign compos_verify (process (transition)))
+(allow compos_verify compos_verify_exec (file (read getattr map execute open entrypoint)))
+(allow compos_verify odsign (process (sigchld)))
+(dontaudit odsign compos_verify (process (noatsecure)))
+(allow odsign compos_verify (process (siginh rlimitinh)))
+(typetransition odsign compos_verify_exec process compos_verify)
+(allow odsign property_socket (sock_file (write)))
+(allow odsign init (unix_stream_socket (connectto)))
+(allow odsign odsign_prop (property_service (set)))
+(allow odsign odsign_prop (file (read getattr map open)))
+;;* lmx 62 system/sepolicy/private/odsign.te
+
+(neverallow base_typeattr_839 odsign_prop (property_service (set)))
+;;* lme
+
+(allow odsign property_socket (sock_file (write)))
+(allow odsign init (unix_stream_socket (connectto)))
+(allow odsign ctl_odsign_prop (property_service (set)))
+(allow odsign ctl_odsign_prop (file (read getattr map open)))
+;;* lmx 68 system/sepolicy/private/odsign.te
+
+(neverallow base_typeattr_840 odsign_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/private/odsign.te
+
+(neverallow base_typeattr_840 odsign_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow init ot_daemon_exec (file (read getattr map execute open)))
+(allow init ot_daemon (process (transition)))
+(allow ot_daemon ot_daemon_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init ot_daemon (process (noatsecure)))
+(allow init ot_daemon (process (siginh rlimitinh)))
+(typetransition init ot_daemon_exec process ot_daemon)
+(allow ot_daemon apex_module_data_file (dir (search)))
+(allow ot_daemon apex_tethering_data_file (dir (ioctl read write create getattr lock open watch watch_reads add_name remove_name search)))
+(allow ot_daemon apex_tethering_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow ot_daemon tun_device (chr_file (read write)))
+(allow ot_daemon system_server (rawip_socket (read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow ot_daemon servicemanager (binder (call transfer)))
+(allow servicemanager ot_daemon (binder (call transfer)))
+(allow servicemanager ot_daemon (dir (search)))
+(allow servicemanager ot_daemon (file (read open)))
+(allow servicemanager ot_daemon (process (getattr)))
+(allow ot_daemon ot_daemon_service (service_manager (add find)))
+;;* lmx 33 system/sepolicy/private/ot_daemon.te
+
+(neverallow base_typeattr_841 ot_daemon_service (service_manager (add)))
+;;* lme
+
+(allow ot_daemon system_server (binder (call transfer)))
+(allow system_server ot_daemon (binder (transfer)))
+(allow ot_daemon system_server (fd (use)))
+(allow ot_daemon statsdw_socket (sock_file (write)))
+(allow ot_daemon statsd (unix_dgram_socket (sendto)))
+(allow ot_daemon dumpstate (fd (use)))
+(allow ot_daemon dumpstate (fifo_file (write)))
+(allow otapreopt_chroot postinstall_file (dir (mounton search)))
+(allow otapreopt_chroot apex_mnt_dir (dir (mounton)))
+(allow otapreopt_chroot device (dir (mounton)))
+(allow otapreopt_chroot linkerconfig_file (dir (mounton)))
+(allow otapreopt_chroot rootfs (dir (mounton)))
+(allow otapreopt_chroot sysfs (dir (mounton)))
+(allow otapreopt_chroot system_data_root_file (dir (mounton)))
+(allow otapreopt_chroot system_file (dir (mounton)))
+(allow otapreopt_chroot vendor_file (dir (mounton)))
+(allow otapreopt_chroot self (capability (sys_chroot sys_admin)))
+(allow otapreopt_chroot self (cap_userns (sys_chroot sys_admin)))
+(allow otapreopt_chroot block_device (dir (search)))
+(allow otapreopt_chroot labeledfs (filesystem (mount unmount)))
+(allow otapreopt_chroot dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow otapreopt_chroot postinstall_file (filesystem (unmount)))
+(dontaudit otapreopt_chroot kernel (process (setsched)))
+(allow otapreopt_chroot file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow otapreopt_chroot postinstall_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow otapreopt_chroot apexd_prop (file (read getattr map open)))
+(allow otapreopt_chroot postinstall (fd (use)))
+(allow otapreopt_chroot postinstall (fifo_file (read write getattr)))
+(allow otapreopt_chroot update_engine (fd (use)))
+(allow otapreopt_chroot update_engine (fifo_file (write)))
+(allow otapreopt_chroot postinstall_dexopt_exec (file (read getattr map execute open)))
+(allow otapreopt_chroot postinstall_dexopt (process (transition)))
+(allow postinstall_dexopt postinstall_dexopt_exec (file (read getattr map execute open entrypoint)))
+(allow postinstall_dexopt otapreopt_chroot (process (sigchld)))
+(dontaudit otapreopt_chroot postinstall_dexopt (process (noatsecure)))
+(allow otapreopt_chroot postinstall_dexopt (process (siginh rlimitinh)))
+(typetransition otapreopt_chroot postinstall_dexopt_exec process postinstall_dexopt)
+(allow otapreopt_chroot linkerconfig_exec (file (read getattr map execute open)))
+(allow otapreopt_chroot linkerconfig (process (transition)))
+(allow linkerconfig linkerconfig_exec (file (read getattr map execute open entrypoint)))
+(allow linkerconfig otapreopt_chroot (process (sigchld)))
+(dontaudit otapreopt_chroot linkerconfig (process (noatsecure)))
+(allow otapreopt_chroot linkerconfig (process (siginh rlimitinh)))
+(typetransition otapreopt_chroot linkerconfig_exec process linkerconfig)
+(allow otapreopt_chroot apexd_exec (file (read getattr map execute open)))
+(allow otapreopt_chroot apexd (process (transition)))
+(allow apexd apexd_exec (file (read getattr map execute open entrypoint)))
+(allow apexd otapreopt_chroot (process (sigchld)))
+(dontaudit otapreopt_chroot apexd (process (noatsecure)))
+(allow otapreopt_chroot apexd (process (siginh rlimitinh)))
+(typetransition otapreopt_chroot apexd_exec process apexd)
+(allow otapreopt_chroot linkerconfig_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow otapreopt_chroot linkerconfig_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow otapreopt_chroot loop_control_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow otapreopt_chroot loop_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx otapreopt_chroot loop_device (ioctl blk_file (0x1261)))
+(allowx otapreopt_chroot loop_device (ioctl blk_file ((range 0x4c00 0x4c01) (range 0x4c04 0x4c05) (range 0x4c08 0x4c0a))))
+(allow otapreopt_chroot sysfs_loop (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow otapreopt_chroot sysfs_loop (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow otapreopt_chroot tmpfs (filesystem (mount)))
+(allow otapreopt_chroot tmpfs (dir (relabelfrom)))
+(allow otapreopt_chroot postinstall_apex_mnt_dir (dir (relabelto)))
+(allow otapreopt_chroot postinstall_apex_mnt_dir (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow otapreopt_chroot postinstall_apex_mnt_dir (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow otapreopt_chroot postinstall_apex_mnt_dir (dir (mounton)))
+(allow otapreopt_chroot block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow otapreopt_chroot postinstall_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow otapreopt_chroot cold_boot_done_prop (file (read getattr map open)))
+(allow otapreopt_chroot linkerconfig_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow init otapreopt_slot_exec (file (read getattr map execute open)))
+(allow init otapreopt_slot (process (transition)))
+(allow otapreopt_slot otapreopt_slot_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init otapreopt_slot (process (noatsecure)))
+(allow init otapreopt_slot (process (siginh rlimitinh)))
+(typetransition init otapreopt_slot_exec process otapreopt_slot)
+(allow otapreopt_slot ota_data_file (dir (ioctl read write getattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow otapreopt_slot ota_data_file (file (getattr)))
+(allow otapreopt_slot ota_data_file (lnk_file (getattr)))
+(allow otapreopt_slot ota_data_file (lnk_file (read)))
+(allow otapreopt_slot dalvikcache_data_file (dir (read write getattr open add_name remove_name search rmdir)))
+(allow otapreopt_slot dalvikcache_data_file (file (getattr unlink)))
+(allow otapreopt_slot dalvikcache_data_file (lnk_file (read getattr unlink)))
+(allow otapreopt_slot shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow otapreopt_slot toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(typetransition perfetto tmpfs file perfetto_tmpfs)
+(allow perfetto perfetto_tmpfs (file (read write getattr map)))
+(allow init perfetto_exec (file (read getattr map execute open)))
+(allow init perfetto (process (transition)))
+(allow perfetto perfetto_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init perfetto (process (noatsecure)))
+(allow init perfetto (process (siginh rlimitinh)))
+(typetransition init perfetto_exec process perfetto)
+(allow perfetto traced_consumer_socket (sock_file (write)))
+(allow perfetto traced (unix_stream_socket (connectto)))
+(allow perfetto traced (fd (use)))
+(allow perfetto traced_tmpfs (file (read write getattr map)))
+(allow perfetto traced_producer_socket (sock_file (write)))
+(allow perfetto traced (unix_stream_socket (connectto)))
+(allow traced perfetto (fd (use)))
+(allow perfetto perfetto_traces_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow perfetto perfetto_traces_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow perfetto perfetto_traces_bugreport_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow perfetto perfetto_traces_bugreport_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow perfetto perfetto_traces_profiling_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow perfetto perfetto_traces_profiling_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow perfetto tracingproxy_service (service_manager (find)))
+(allow perfetto servicemanager (binder (call transfer)))
+(allow servicemanager perfetto (binder (call transfer)))
+(allow servicemanager perfetto (dir (search)))
+(allow servicemanager perfetto (file (read open)))
+(allow servicemanager perfetto (process (getattr)))
+(allow perfetto system_server (binder (call transfer)))
+(allow system_server perfetto (binder (transfer)))
+(allow perfetto system_server (fd (use)))
+(allow perfetto perfetto_configs_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow perfetto perfetto_configs_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow perfetto shell (fd (use)))
+(allow perfetto statsd (fd (use)))
+(allow perfetto su (fd (use)))
+(allow perfetto mm_events (fd (use)))
+(allow perfetto shell (fifo_file (ioctl read write getattr)))
+(allow perfetto statsd (fifo_file (ioctl read write getattr)))
+(allow perfetto su (fifo_file (ioctl read write getattr)))
+(allow perfetto system_server (fifo_file (ioctl read write getattr)))
+(allow perfetto mm_events (fifo_file (ioctl read write getattr)))
+(allow perfetto adbd (fd (use)))
+(allow perfetto adbd (unix_stream_socket (read write)))
+(allow perfetto adbd (process (sigchld)))
+(allow perfetto statsdw_socket (sock_file (write)))
+(allow perfetto statsd (unix_dgram_socket (sendto)))
+(allow perfetto devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow perfetto incident_service (service_manager (find)))
+(allow perfetto incidentd (binder (call transfer)))
+(allow incidentd perfetto (binder (transfer)))
+(allow perfetto incidentd (fd (use)))
+(dontaudit perfetto adbd (unix_stream_socket (getattr)))
+(dontauditx perfetto adbd (ioctl unix_stream_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(dontauditx perfetto su (ioctl unix_stream_socket ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+(dontauditx perfetto shell (ioctl fifo_file ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+;;* lmx 94 system/sepolicy/private/perfetto.te
+
+(neverallow base_typeattr_842 perfetto_traces_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 103 system/sepolicy/private/perfetto.te
+
+(neverallow base_typeattr_843 perfetto_traces_data_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 109 system/sepolicy/private/perfetto.te
+
+(neverallow perfetto self (process (execmem)))
+;;* lme
+
+;;* lmx 112 system/sepolicy/private/perfetto.te
+
+(neverallow perfetto dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 115 system/sepolicy/private/perfetto.te
+
+(neverallow perfetto domain (process (ptrace)))
+;;* lme
+
+;;* lmx 133 system/sepolicy/private/perfetto.te
+
+(neverallow perfetto base_typeattr_844 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 138 system/sepolicy/private/perfetto.te
+
+(neverallow perfetto base_typeattr_845 (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 146 system/sepolicy/private/perfetto.te
+
+(neverallow perfetto base_typeattr_846 (file (ioctl read create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow init performanced_exec (file (read getattr map execute open)))
+(allow init performanced (process (transition)))
+(allow performanced performanced_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init performanced (process (noatsecure)))
+(allow init performanced (process (siginh rlimitinh)))
+(typetransition init performanced_exec process performanced)
+(typetransition permissioncontroller_app tmpfs file appdomain_tmpfs)
+(allow permissioncontroller_app permissioncontroller_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su permissioncontroller_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 6 system/sepolicy/private/permissioncontroller_app.te
+
+(neverallow base_typeattr_847 permissioncontroller_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow permissioncontroller_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 6 system/sepolicy/private/permissioncontroller_app.te
+
+(neverallow base_typeattr_848 base_typeattr_847 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/permissioncontroller_app.te
+
+(neverallow base_typeattr_849 permissioncontroller_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/permissioncontroller_app.te
+
+(neverallow base_typeattr_850 permissioncontroller_app (process (ptrace)))
+;;* lme
+
+(allow permissioncontroller_app app_api_service (service_manager (find)))
+(allow permissioncontroller_app system_api_service (service_manager (find)))
+(allow permissioncontroller_app gpuservice (binder (call transfer)))
+(allow gpuservice permissioncontroller_app (binder (transfer)))
+(allow permissioncontroller_app gpuservice (fd (use)))
+(allow permissioncontroller_app radio_service (service_manager (find)))
+(allow permissioncontroller_app incident_service (service_manager (find)))
+(allow permissioncontroller_app incidentd (binder (call transfer)))
+(allow incidentd permissioncontroller_app (binder (transfer)))
+(allow permissioncontroller_app incidentd (fd (use)))
+(allow permissioncontroller_app incidentd (fifo_file (read write)))
+(allow permissioncontroller_app gpu_device (dir (search)))
+(typetransition platform_app tmpfs file appdomain_tmpfs)
+(allow platform_app platform_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su platform_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 7 system/sepolicy/private/platform_app.te
+
+(neverallow base_typeattr_851 platform_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow platform_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 7 system/sepolicy/private/platform_app.te
+
+(neverallow base_typeattr_852 base_typeattr_851 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/private/platform_app.te
+
+(neverallow base_typeattr_853 platform_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/private/platform_app.te
+
+(neverallow base_typeattr_854 platform_app (process (ptrace)))
+;;* lme
+
+(allow platform_app shell_data_file (dir (search)))
+(allow platform_app shell_data_file (file (read getattr open)))
+(allow platform_app icon_file (file (read getattr open)))
+(allow platform_app apk_tmp_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow platform_app apk_private_tmp_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow platform_app apk_tmp_file (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow platform_app apk_private_tmp_file (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow platform_app apk_private_data_file (dir (search)))
+(allow platform_app asec_apk_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow platform_app asec_apk_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow platform_app media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow platform_app media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow platform_app cache_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow platform_app cache_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow platform_app mnt_media_rw_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow platform_app sdcard_type (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow platform_app sdcard_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow platform_app rootfs (dir (getattr)))
+(allow platform_app radio_cdma_ecm_prop (file (read getattr map open)))
+;;* lmx 46 system/sepolicy/private/platform_app.te
+
+(neverallow base_typeattr_855 persist_wm_debug_prop (property_service (set)))
+;;* lme
+
+(allow platform_app proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow platform_app proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow platform_app proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow platform_app proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow platform_app audioserver_service (service_manager (find)))
+(allow platform_app cameraserver_service (service_manager (find)))
+(allow platform_app drmserver_service (service_manager (find)))
+(allow platform_app mediaserver_service (service_manager (find)))
+(allow platform_app mediametrics_service (service_manager (find)))
+(allow platform_app mediaextractor_service (service_manager (find)))
+(allow platform_app mediadrmserver_service (service_manager (find)))
+(allow platform_app persistent_data_block_service (service_manager (find)))
+(allow platform_app radio_service (service_manager (find)))
+(allow platform_app thermal_service (service_manager (find)))
+(allow platform_app app_api_service (service_manager (find)))
+(allow platform_app system_api_service (service_manager (find)))
+(allow platform_app vr_manager_service (service_manager (find)))
+(allow platform_app stats_service (service_manager (find)))
+(allow platform_app statsd (binder (call transfer)))
+(allow statsd platform_app (binder (transfer)))
+(allow platform_app statsd (fd (use)))
+(allow platform_app preloads_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow platform_app preloads_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow platform_app preloads_media_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow platform_app preloads_media_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow platform_app runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow platform_app system_server (udp_socket (read write getattr connect getopt setopt recvfrom sendto)))
+(allow platform_app property_socket (sock_file (write)))
+(allow platform_app init (unix_stream_socket (connectto)))
+(allow platform_app test_boot_reason_prop (property_service (set)))
+(allow platform_app test_boot_reason_prop (file (read getattr map open)))
+(allow platform_app keyguard_config_prop (file (read getattr map open)))
+(allow platform_app qemu_hw_prop (file (read getattr map open)))
+(allow platform_app last_boot_reason_prop (file (read getattr map open)))
+(allow platform_app app_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(dontaudit platform_app debugfs_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow platform_app virtualizationmanager_exec (file (read getattr map execute open)))
+(allow platform_app virtualizationmanager (process (transition)))
+(allow virtualizationmanager virtualizationmanager_exec (file (read getattr map execute open entrypoint)))
+(allow virtualizationmanager platform_app (process (sigchld)))
+(dontaudit platform_app virtualizationmanager (process (noatsecure)))
+(allow platform_app virtualizationmanager (process (siginh rlimitinh)))
+(typetransition platform_app virtualizationmanager_exec process virtualizationmanager)
+(allow crosvm platform_app (unix_stream_socket (ioctl read write getattr)))
+(allow virtualizationmanager platform_app (unix_stream_socket (ioctl read write getattr)))
+(allow crosvm platform_app (fd (use)))
+(allow virtualizationmanager platform_app (fd (use)))
+(allow platform_app virtualizationmanager (fd (use)))
+(allow crosvm platform_app (fifo_file (ioctl read write getattr)))
+(allow virtualizationmanager platform_app (fifo_file (ioctl read write getattr)))
+(allow platform_app virtualizationmanager (vsock_socket (read write getattr getopt)))
+(allow platform_app hypervisor_prop (file (read getattr map open)))
+(allow platform_app virtualizationservice_data_file (file (read getattr)))
+;;* lmx 135 system/sepolicy/private/platform_app.te
+
+(neverallow base_typeattr_223 persist_sysui_builder_extras_prop (property_service (set)))
+;;* lme
+
+;;* lmx 138 system/sepolicy/private/platform_app.te
+
+(neverallow platform_app fuse_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(allow postinstall otapreopt_chroot_exec (file (read getattr map execute open)))
+(allow postinstall otapreopt_chroot (process (transition)))
+(allow otapreopt_chroot otapreopt_chroot_exec (file (read getattr map execute open entrypoint)))
+(allow otapreopt_chroot postinstall (process (sigchld)))
+(dontaudit postinstall otapreopt_chroot (process (noatsecure)))
+(allow postinstall otapreopt_chroot (process (siginh rlimitinh)))
+(typetransition postinstall otapreopt_chroot_exec process otapreopt_chroot)
+(allow postinstall rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall_dexopt dex2oat_exec (file (read getattr map execute open)))
+(allow postinstall_dexopt dex2oat (process (transition)))
+(allow dex2oat dex2oat_exec (file (read getattr map execute open entrypoint)))
+(allow dex2oat postinstall_dexopt (process (sigchld)))
+(dontaudit postinstall_dexopt dex2oat (process (noatsecure)))
+(allow postinstall_dexopt dex2oat (process (siginh rlimitinh)))
+(typetransition postinstall_dexopt dex2oat_exec process dex2oat)
+(allow postinstall_dexopt postinstall_file (file (read getattr map execute open)))
+(allow postinstall_dexopt dex2oat (process (transition)))
+(allow dex2oat postinstall_file (file (read getattr map execute open entrypoint)))
+(allow dex2oat postinstall_dexopt (process (sigchld)))
+(dontaudit postinstall_dexopt dex2oat (process (noatsecure)))
+(allow postinstall_dexopt dex2oat (process (siginh rlimitinh)))
+(typetransition postinstall_dexopt postinstall_file process dex2oat)
+(allow postinstall_dexopt derive_classpath_exec (file (read getattr map execute open)))
+(allow postinstall_dexopt derive_classpath (process (transition)))
+(allow derive_classpath derive_classpath_exec (file (read getattr map execute open entrypoint)))
+(allow derive_classpath postinstall_dexopt (process (sigchld)))
+(dontaudit postinstall_dexopt derive_classpath (process (noatsecure)))
+(allow postinstall_dexopt derive_classpath (process (siginh rlimitinh)))
+(typetransition postinstall_dexopt derive_classpath_exec process derive_classpath)
+(typetransition postinstall_dexopt tmpfs file postinstall_dexopt_tmpfs)
+(allow postinstall_dexopt postinstall_dexopt_tmpfs (file (read write getattr map)))
+(allow postinstall_dexopt postinstall_dexopt_tmpfs (file (open)))
+(allow postinstall_dexopt self (capability (chown dac_override dac_read_search fowner fsetid setgid setuid)))
+(allow postinstall_dexopt self (cap_userns (chown dac_override dac_read_search fowner fsetid setgid setuid)))
+(allow postinstall_dexopt postinstall_file (filesystem (getattr)))
+(allow postinstall_dexopt postinstall_file (dir (read getattr search)))
+(allow postinstall_dexopt postinstall_file (lnk_file (read getattr)))
+(allow postinstall_dexopt proc_filesystems (file (read getattr open)))
+(allow postinstall_dexopt rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt tmpfs (file (read)))
+(allow postinstall_dexopt odsign_prop (file (read getattr map open)))
+(allow postinstall_dexopt postinstall_apex_mnt_dir (dir (getattr search)))
+(allow postinstall_dexopt apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall_dexopt apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall_dexopt vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall_dexopt vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt vendor_apex_metadata_file (dir (getattr search)))
+(allow postinstall_dexopt dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall_dexopt dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt dalvikcache_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt user_profile_root_file (dir (getattr search)))
+(allow postinstall_dexopt user_profile_data_file (dir (getattr search)))
+(allow postinstall_dexopt user_profile_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit postinstall_dexopt user_profile_data_file (file (write)))
+(allow postinstall_dexopt ota_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow postinstall_dexopt ota_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow postinstall_dexopt ota_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow postinstall_dexopt dalvikcache_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow postinstall_dexopt dalvikcache_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow postinstall_dexopt dalvikcache_data_file (dir (relabelto)))
+(allow postinstall_dexopt dalvikcache_data_file (file (relabelto link)))
+(allow postinstall_dexopt selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall_dexopt selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt selinuxfs (file (write lock append map open)))
+(allow postinstall_dexopt kernel (security (check_context)))
+(allow postinstall_dexopt selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow postinstall_dexopt selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow postinstall_dexopt selinuxfs (file (write lock append map open)))
+(allow postinstall_dexopt kernel (security (compute_av)))
+(allow postinstall_dexopt self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow postinstall_dexopt postinstall (process (sigchld)))
+(allow postinstall_dexopt otapreopt_chroot (fd (use)))
+(allow postinstall_dexopt device_config_runtime_native_prop (file (read getattr map open)))
+(allow postinstall_dexopt device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow init preloads_copy_exec (file (read getattr map execute open)))
+(allow init preloads_copy (process (transition)))
+(allow preloads_copy preloads_copy_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init preloads_copy (process (noatsecure)))
+(allow init preloads_copy (process (siginh rlimitinh)))
+(typetransition init preloads_copy_exec process preloads_copy)
+(allow preloads_copy shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow preloads_copy toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow preloads_copy preloads_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow preloads_copy preloads_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow preloads_copy preloads_media_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow preloads_copy preloads_media_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow preloads_copy system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit preloads_copy postinstall_mnt_dir (dir (search)))
+(allow preopt2cachename cppreopts (fd (use)))
+(allow preopt2cachename cppreopts (fifo_file (read write getattr)))
+(allow preopt2cachename proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(typetransition priv_app tmpfs file appdomain_tmpfs)
+(allow priv_app priv_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su priv_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 6 system/sepolicy/private/priv_app.te
+
+(neverallow base_typeattr_856 priv_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow priv_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 6 system/sepolicy/private/priv_app.te
+
+(neverallow base_typeattr_857 base_typeattr_856 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/priv_app.te
+
+(neverallow base_typeattr_858 priv_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/priv_app.te
+
+(neverallow base_typeattr_859 priv_app (process (ptrace)))
+;;* lme
+
+(typetransition priv_app devpts chr_file priv_app_devpts)
+(allow priv_app priv_app_devpts (chr_file (ioctl read write getattr open)))
+(allowx priv_app priv_app_devpts (ioctl chr_file ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+;;* lmx 15 system/sepolicy/private/priv_app.te
+
+(neverallowx base_typeattr_224 priv_app_devpts (ioctl chr_file (0x5412)))
+;;* lme
+
+(allow priv_app privapp_data_file (file (execute)))
+(allow priv_app system_linker_exec (file (execute_no_trans)))
+(allow priv_app privapp_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow priv_app app_api_service (service_manager (find)))
+(allow priv_app system_api_service (service_manager (find)))
+(allow priv_app audioserver_service (service_manager (find)))
+(allow priv_app cameraserver_service (service_manager (find)))
+(allow priv_app drmserver_service (service_manager (find)))
+(allow priv_app mediadrmserver_service (service_manager (find)))
+(allow priv_app mediaextractor_service (service_manager (find)))
+(allow priv_app mediametrics_service (service_manager (find)))
+(allow priv_app mediaserver_service (service_manager (find)))
+(allow priv_app music_recognition_service (service_manager (find)))
+(allow priv_app network_watchlist_service (service_manager (find)))
+(allow priv_app nfc_service (service_manager (find)))
+(allow priv_app oem_lock_service (service_manager (find)))
+(allow priv_app persistent_data_block_service (service_manager (find)))
+(allow priv_app radio_service (service_manager (find)))
+(allow priv_app recovery_service (service_manager (find)))
+(allow priv_app stats_service (service_manager (find)))
+(allow priv_app cache_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow priv_app cache_recovery_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow priv_app cache_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow priv_app cache_recovery_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow priv_app cache_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow priv_app media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow priv_app shell_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app shell_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app trace_data_file (file (read getattr)))
+(allow priv_app wm_trace_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app wm_trace_data_file (file (getattr)))
+(allow priv_app perfetto_traces_bugreport_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app perfetto_traces_bugreport_data_file (file (getattr)))
+(allow priv_app perfetto_traces_data_file (dir (search)))
+(allow priv_app perfetto (fd (use)))
+(allow priv_app perfetto_traces_data_file (file (read getattr)))
+(allow priv_app apk_tmp_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app apk_private_tmp_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app apk_tmp_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app apk_private_tmp_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app vold (fd (use)))
+(allow priv_app fuse_device (chr_file (read write)))
+(allow priv_app proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app sysfs_type (dir (search)))
+(allow priv_app sysfs_zram (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app sysfs_zram (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app sysfs_zram (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app statsd (binder (call transfer)))
+(allow statsd priv_app (binder (transfer)))
+(allow priv_app statsd (fd (use)))
+(allow priv_app ringtone_file (file (read write getattr)))
+(allow priv_app preloads_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app preloads_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app preloads_media_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app preloads_media_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app incident_service (service_manager (find)))
+(allow priv_app incidentd (binder (call transfer)))
+(allow incidentd priv_app (binder (transfer)))
+(allow priv_app incidentd (fd (use)))
+(allow priv_app incidentd (fifo_file (read write)))
+(allow priv_app dynamic_system_prop (file (read getattr map open)))
+(dontaudit priv_app exec_type (file (getattr)))
+(dontaudit priv_app device (dir (read)))
+(dontaudit priv_app fs_bpf (dir (search)))
+(dontaudit priv_app net_dns_prop (file (read)))
+(dontaudit priv_app proc (file (read)))
+(dontaudit priv_app proc_interrupts (file (read)))
+(dontaudit priv_app proc_modules (file (read)))
+(dontaudit priv_app proc_net (file (read)))
+(dontaudit priv_app proc_stat (file (read)))
+(dontaudit priv_app proc_version (file (read)))
+(dontaudit priv_app sysfs (dir (read)))
+(dontaudit priv_app sysfs (file (read)))
+(dontaudit priv_app sysfs_android_usb (file (read)))
+(dontaudit priv_app sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit priv_app wifi_config_prop (file (read)))
+(dontaudit priv_app wifi_hal_prop (file (read)))
+(dontaudit priv_app wifi_prop (file (read)))
+(allow priv_app system_server (udp_socket (read write getattr connect getopt setopt recvfrom sendto)))
+(allowx priv_app apk_data_file (ioctl file ((range 0x671f 0x6720) 0x6722 0x6724)))
+(allow priv_app incremental_control_file (file (ioctl read getattr)))
+(allowx priv_app incremental_control_file (ioctl file (0x6721)))
+(allow priv_app incremental_prop (file (read getattr map open)))
+(allow priv_app device_config_aconfig_flags_prop (file (read getattr map open)))
+(allow priv_app system_boot_reason_prop (file (read getattr map open)))
+(allow priv_app apex_data_file (dir (search)))
+(allow priv_app staging_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app staging_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app vendor_apex_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow priv_app vendor_apex_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow priv_app system_app_data_file (file (read getattr)))
+(allow priv_app rs_exec (file (read getattr map execute open)))
+(allow priv_app rs (process (transition)))
+(allow rs rs_exec (file (read getattr map execute open entrypoint)))
+(allow rs priv_app (process (sigchld)))
+(dontaudit priv_app rs (process (noatsecure)))
+(allow priv_app rs (process (siginh rlimitinh)))
+(typetransition priv_app rs_exec process rs)
+(allow priv_app app_exec_data_file (file (ioctl read getattr lock map unlink execute open watch watch_reads)))
+(allow priv_app virtualizationmanager_exec (file (read getattr map execute open)))
+(allow priv_app virtualizationmanager (process (transition)))
+(allow virtualizationmanager virtualizationmanager_exec (file (read getattr map execute open entrypoint)))
+(allow virtualizationmanager priv_app (process (sigchld)))
+(dontaudit priv_app virtualizationmanager (process (noatsecure)))
+(allow priv_app virtualizationmanager (process (siginh rlimitinh)))
+(typetransition priv_app virtualizationmanager_exec process virtualizationmanager)
+(allow crosvm priv_app (unix_stream_socket (ioctl read write getattr)))
+(allow virtualizationmanager priv_app (unix_stream_socket (ioctl read write getattr)))
+(allow crosvm priv_app (fd (use)))
+(allow virtualizationmanager priv_app (fd (use)))
+(allow priv_app virtualizationmanager (fd (use)))
+(allow crosvm priv_app (fifo_file (ioctl read write getattr)))
+(allow virtualizationmanager priv_app (fifo_file (ioctl read write getattr)))
+(allow priv_app virtualizationmanager (vsock_socket (read write getattr getopt)))
+(allow priv_app hypervisor_prop (file (read getattr map open)))
+(allow priv_app virtualizationservice_data_file (file (read getattr)))
+;;* lmx 217 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 220 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 223 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app kmsg_device (chr_file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 227 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app debugfs_type (file (read)))
+;;* lme
+
+;;* lmx 232 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app service_manager_type (service_manager (add)))
+;;* lme
+
+;;* lmx 236 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app property_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 237 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app init (unix_stream_socket (connectto)))
+;;* lme
+
+;;* lmx 238 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app property_type (property_service (set)))
+;;* lme
+
+;;* lmx 248 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app mlstrustedsubject (process (fork)))
+;;* lme
+
+;;* lmx 256 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app file_type (file (link)))
+;;* lme
+
+;;* lmx 260 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app trace_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 261 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app trace_data_file (file (write create setattr relabelfrom append unlink link rename open)))
+;;* lme
+
+;;* lmx 264 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app cgroup (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 265 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app cgroup_v2 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 271 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app base_typeattr_860 (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 274 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app base_typeattr_860 (lnk_file (read getattr open)))
+;;* lme
+
+;;* lmx 277 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app sysfs_net (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 281 system/sepolicy/private/priv_app.te
+
+(neverallowx priv_app domain (ioctl tcp_socket (0x6900 0x6902)))
+(neverallowx priv_app domain (ioctl udp_socket (0x6900 0x6902)))
+(neverallowx priv_app domain (ioctl rawip_socket (0x6900 0x6902)))
+(neverallowx priv_app domain (ioctl icmp_socket (0x6900 0x6902)))
+;;* lme
+
+;;* lmx 281 system/sepolicy/private/priv_app.te
+
+(neverallowx priv_app domain (ioctl tcp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx priv_app domain (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx priv_app domain (ioctl rawip_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(neverallowx priv_app domain (ioctl icmp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+;;* lme
+
+;;* lmx 281 system/sepolicy/private/priv_app.te
+
+(neverallowx priv_app domain (ioctl tcp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx priv_app domain (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx priv_app domain (ioctl rawip_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(neverallowx priv_app domain (ioctl icmp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+;;* lme
+
+;;* lmx 282 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app base_typeattr_224 (netlink_route_socket (ioctl)))
+(neverallow priv_app base_typeattr_224 (netlink_selinux_socket (ioctl)))
+;;* lme
+
+;;* lmx 295 system/sepolicy/private/priv_app.te
+
+(neverallow priv_app base_typeattr_224 (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow priv_app base_typeattr_224 (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow priv_app base_typeattr_224 (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow priv_app base_typeattr_224 (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow priv_app base_typeattr_224 (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow priv_app base_typeattr_224 (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow priv_app base_typeattr_224 (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+(allow priv_app keystore (keystore2 (report_off_body)))
+(allow priv_app pm_archiving_enabled_prop (file (read getattr map open)))
+(allow init prng_seeder_exec (file (read getattr map execute open)))
+(allow init prng_seeder (process (transition)))
+(allow prng_seeder prng_seeder_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init prng_seeder (process (noatsecure)))
+(allow init prng_seeder (process (siginh rlimitinh)))
+(typetransition init prng_seeder_exec process prng_seeder)
+(allow prng_seeder prng_seeder (unix_stream_socket (read write getattr accept)))
+(allow prng_seeder hw_random_device (chr_file (read open)))
+(allow prng_seeder kmsg_debug_device (chr_file (ioctl write getattr lock append map open)))
+(allow profman system_file (file (read getattr lock map)))
+(allow profman vendor_app_file (file (read getattr lock map)))
+(allow profman apk_data_file (file (read getattr lock map)))
+(allow profman artd (fd (use)))
+(allow profman installd (fd (use)))
+(allow profman artd_tmpfs (file (read getattr lock map)))
+;;* lmx 2 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 adbd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 apexd_payload_metadata_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 4 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 ctl_snapuserd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 crashrecovery_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_core_experiments_team_internal_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_lmkd_native_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 8 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_mglru_native_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_profcollect_native_boot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 10 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_remote_key_provisioning_native_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_statsd_native_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 12 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_statsd_native_boot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_storage_native_boot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 14 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_sys_traced_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_window_manager_native_boot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 16 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_configuration_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 17 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_connectivity_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 18 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_swcodec_native_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 19 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_tethering_u_or_later_native_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 20 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 dmesgd_start_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 21 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 fastbootd_protocol_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 22 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 gsid_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 23 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 init_perf_lsm_hooks_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 24 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 init_service_status_private_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 25 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 init_storage_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 init_svc_debug_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 27 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 keystore_crash_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 28 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 keystore_listen_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 29 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 last_boot_reason_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 30 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 localization_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 31 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 logd_auditrate_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 32 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 lower_kptr_restrict_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 33 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 net_464xlat_fromvendor_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 34 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 net_connectivity_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 35 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 netd_stable_secret_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 36 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 next_boot_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 37 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 odsign_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 38 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 misctrl_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 39 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 perf_drop_caches_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 40 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 pm_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 41 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 profcollectd_node_id_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 radio_cdma_ecm_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 remote_prov_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 44 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 rollback_test_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 setupwizard_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 46 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 snapuserd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 47 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 system_adbd_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 48 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 system_audio_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 49 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 timezone_metadata_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 50 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 traced_perf_enabled_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 51 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 uprobestats_start_with_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 52 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 tuner_server_ctl_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 53 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 userspace_reboot_log_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 54 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 userspace_reboot_test_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 55 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 verity_status_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 56 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 zygote_wrap_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 57 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 ctl_mediatranscoding_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 58 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 ctl_odsign_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 59 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 virtualizationservice_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 60 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 ctl_apex_load_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 61 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 enable_16k_pages_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 62 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 sensors_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 63 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 hypervisor_pvmfw_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 64 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 hypervisor_virtualizationmanager_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 65 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 game_manager_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 66 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 hidl_memory_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 67 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 suspend_debug_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 70 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 device_config_virtualization_framework_native_prop (property_service (set)))
+;;* lme
+
+;;* lmx 71 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 log_file_logger_prop (property_service (set)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 persist_sysui_builder_extras_prop (property_service (set)))
+;;* lme
+
+;;* lmx 73 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 persist_sysui_ranking_update_prop (property_service (set)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/private/property.te
+
+(neverallow domain base_typeattr_861 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 base_typeattr_862 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_250 base_typeattr_863 (property_service (set)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_572 base_typeattr_864 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 79 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_691 base_typeattr_865 (property_service (set)))
+;;* lme
+
+;;* lmx 122 system/sepolicy/private/property.te
+
+(neverallow domain property_type (file (ioctl lock)))
+;;* lme
+
+;;* lmx 148 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_224 base_typeattr_866 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 156 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_259 ctl_sigstop_prop (property_service (set)))
+;;* lme
+
+(dontaudit domain ctl_bootanim_prop (property_service (set)))
+(dontaudit domain ctl_bugreport_prop (property_service (set)))
+(dontaudit domain ctl_console_prop (property_service (set)))
+(dontaudit domain ctl_dumpstate_prop (property_service (set)))
+(dontaudit domain ctl_fuse_prop (property_service (set)))
+(dontaudit domain ctl_mdnsd_prop (property_service (set)))
+(dontaudit domain ctl_rildaemon_prop (property_service (set)))
+(dontaudit domain ctl_default_prop (property_service (set)))
+;;* lmx 175 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_867 init_storage_prop (property_service (set)))
+;;* lme
+
+;;* lmx 180 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 init_svc_debug_prop (property_service (set)))
+;;* lme
+
+;;* lmx 187 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_855 init_svc_debug_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 196 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_868 misctrl_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 202 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_869 misctrl_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_870 base_typeattr_871 (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_872 nfc_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_873 radio_control_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_874 radio_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_875 bluetooth_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_876 exported_bluetooth_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_877 exported_camera_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_878 wifi_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_879 wifi_hal_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_870 base_typeattr_880 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_872 nfc_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_874 radio_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_875 bluetooth_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_878 wifi_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_267 suspend_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 suspend_debug_prop (property_service (set)))
+;;* lme
+
+;;* lmx 204 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_855 suspend_debug_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(dontaudit system_suspend suspend_debug_prop (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 384 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_881 base_typeattr_882 (property_service (set)))
+;;* lme
+
+;;* lmx 404 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_267 ffs_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_267 ffs_control_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 412 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_308 userspace_reboot_log_prop (property_service (set)))
+;;* lme
+
+;;* lmx 421 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_308 system_adbd_prop (property_service (set)))
+;;* lme
+
+;;* lmx 432 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_883 adbd_config_prop (property_service (set)))
+;;* lme
+
+;;* lmx 441 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_884 adbd_prop (property_service (set)))
+;;* lme
+
+;;* lmx 449 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 apexd_payload_metadata_prop (property_service (set)))
+;;* lme
+
+;;* lmx 459 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_885 userspace_reboot_test_prop (property_service (set)))
+;;* lme
+
+;;* lmx 468 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_266 surfaceflinger_color_prop (property_service (set)))
+;;* lme
+
+;;* lmx 475 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 libc_debug_prop (property_service (set)))
+;;* lme
+
+;;* lmx 490 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_886 arm64_memtag_prop (property_service (set)))
+(neverallow base_typeattr_886 gwp_asan_prop (property_service (set)))
+;;* lme
+
+;;* lmx 497 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_266 zram_control_prop (property_service (set)))
+;;* lme
+
+;;* lmx 504 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_266 dalvik_runtime_prop (property_service (set)))
+;;* lme
+
+;;* lmx 513 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_267 usb_config_prop (property_service (set)))
+(neverallow base_typeattr_267 usb_control_prop (property_service (set)))
+;;* lme
+
+;;* lmx 522 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_308 provisioned_prop (property_service (set)))
+(neverallow base_typeattr_308 retaildemo_prop (property_service (set)))
+;;* lme
+
+;;* lmx 531 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_267 provisioned_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_267 retaildemo_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 539 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 init_service_status_prop (property_service (set)))
+(neverallow base_typeattr_223 init_service_status_private_prop (property_service (set)))
+;;* lme
+
+;;* lmx 548 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_887 telephony_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 556 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_259 graphics_config_prop (property_service (set)))
+;;* lme
+
+;;* lmx 564 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_888 surfaceflinger_display_prop (property_service (set)))
+;;* lme
+
+;;* lmx 571 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_870 packagemanager_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 577 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_267 keyguard_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 584 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 localization_prop (property_service (set)))
+;;* lme
+
+;;* lmx 592 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_889 oem_unlock_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 598 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_267 storagemanager_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 606 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_890 sendbug_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 614 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_890 camera_calibration_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 622 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_891 hal_dumpstate_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 633 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 lower_kptr_restrict_prop (property_service (set)))
+;;* lme
+
+;;* lmx 638 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 zygote_wrap_prop (property_service (set)))
+;;* lme
+
+;;* lmx 643 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 verity_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 649 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_259 setupwizard_mode_prop (property_service (set)))
+;;* lme
+
+;;* lmx 654 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 setupwizard_prop (property_service (set)))
+;;* lme
+
+;;* lmx 663 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_260 build_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 669 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_885 sqlite_log_prop (property_service (set)))
+;;* lme
+
+;;* lmx 675 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_717 sqlite_log_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 680 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 default_prop (property_service (set)))
+;;* lme
+
+;;* lmx 684 system/sepolicy/private/property.te
+
+(neverallow domain system_and_vendor_property_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow domain system_and_vendor_property_type (property_service (set)))
+;;* lme
+
+;;* lmx 691 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_892 remote_prov_prop (property_service (set)))
+;;* lme
+
+;;* lmx 698 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_885 rollback_test_prop (property_service (set)))
+;;* lme
+
+;;* lmx 704 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_617 ctl_apex_load_prop (property_service (set)))
+;;* lme
+
+;;* lmx 712 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_893 ctl_apex_load_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 718 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_617 apex_ready_prop (property_service (set)))
+;;* lme
+
+;;* lmx 726 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_894 apex_ready_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 734 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_895 profcollectd_node_id_prop (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 739 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_223 log_file_logger_prop (property_service (set)))
+;;* lme
+
+;;* lmx 745 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_259 usb_uvc_enabled_prop (property_service (set)))
+;;* lme
+
+;;* lmx 752 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_896 usb_uvc_enabled_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 758 system/sepolicy/private/property.te
+
+(neverallow base_typeattr_259 pm_archiving_enabled_prop (property_service (set)))
+;;* lme
+
+(typetransition radio tmpfs file appdomain_tmpfs)
+(allow radio radio_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su radio_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 3 system/sepolicy/private/radio.te
+
+(neverallow base_typeattr_573 radio_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow radio appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 3 system/sepolicy/private/radio.te
+
+(neverallow base_typeattr_897 base_typeattr_573 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/radio.te
+
+(neverallow base_typeattr_898 radio (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/radio.te
+
+(neverallow base_typeattr_899 radio (process (ptrace)))
+;;* lme
+
+(allow radio runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow radio property_socket (sock_file (write)))
+(allow radio init (unix_stream_socket (connectto)))
+(allow radio radio_control_prop (property_service (set)))
+(allow radio radio_control_prop (file (read getattr map open)))
+(allow radio property_socket (sock_file (write)))
+(allow radio init (unix_stream_socket (connectto)))
+(allow radio radio_prop (property_service (set)))
+(allow radio radio_prop (file (read getattr map open)))
+(allow radio property_socket (sock_file (write)))
+(allow radio init (unix_stream_socket (connectto)))
+(allow radio net_radio_prop (property_service (set)))
+(allow radio net_radio_prop (file (read getattr map open)))
+(allow radio property_socket (sock_file (write)))
+(allow radio init (unix_stream_socket (connectto)))
+(allow radio telephony_status_prop (property_service (set)))
+(allow radio telephony_status_prop (file (read getattr map open)))
+(allow radio property_socket (sock_file (write)))
+(allow radio init (unix_stream_socket (connectto)))
+(allow radio radio_cdma_ecm_prop (property_service (set)))
+(allow radio radio_cdma_ecm_prop (file (read getattr map open)))
+(allow radio property_socket (sock_file (write)))
+(allow radio init (unix_stream_socket (connectto)))
+(allow radio ctl_rildaemon_prop (property_service (set)))
+(allow radio ctl_rildaemon_prop (file (read getattr map open)))
+(allow radio time_prop (file (read getattr map open)))
+(allow radio platform_compat_service (service_manager (find)))
+(allow radio uce_service (service_manager (find)))
+(allow radio emergency_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow radio emergency_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow radio property_socket (sock_file (write)))
+(allow radio init (unix_stream_socket (connectto)))
+(allow radio binder_cache_telephony_server_prop (property_service (set)))
+(allow radio binder_cache_telephony_server_prop (file (read getattr map open)))
+;;* lmx 32 system/sepolicy/private/radio.te
+
+(neverallow base_typeattr_900 binder_cache_telephony_server_prop (property_service (set)))
+;;* lme
+
+(allow radio statsd (binder (call transfer)))
+(allow statsd radio (binder (transfer)))
+(allow radio statsd (fd (use)))
+(allow init recovery_persist_exec (file (read getattr map execute open)))
+(allow init recovery_persist (process (transition)))
+(allow recovery_persist recovery_persist_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init recovery_persist (process (noatsecure)))
+(allow init recovery_persist (process (siginh rlimitinh)))
+(typetransition init recovery_persist_exec process recovery_persist)
+;;* lmx 11 system/sepolicy/private/recovery_persist.te
+
+(neverallow recovery_persist base_typeattr_901 (file (write)))
+;;* lme
+
+(allow init recovery_refresh_exec (file (read getattr map execute open)))
+(allow init recovery_refresh (process (transition)))
+(allow recovery_refresh recovery_refresh_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init recovery_refresh (process (noatsecure)))
+(allow init recovery_refresh (process (siginh rlimitinh)))
+(typetransition init recovery_refresh_exec process recovery_refresh)
+;;* lmx 10 system/sepolicy/private/recovery_refresh.te
+
+(neverallow recovery_refresh file_type (file (write)))
+;;* lme
+
+(allow rkpd servicemanager (binder (call transfer)))
+(allow servicemanager rkpd (binder (call transfer)))
+(allow servicemanager rkpd (dir (search)))
+(allow servicemanager rkpd (file (read open)))
+(allow servicemanager rkpd (process (getattr)))
+(allow init rkpd_exec (file (read getattr map execute open)))
+(allow init rkpd (process (transition)))
+(allow rkpd rkpd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init rkpd (process (noatsecure)))
+(allow init rkpd (process (siginh rlimitinh)))
+(typetransition init rkpd_exec process rkpd)
+(allow rkpd rkpd_registrar_service (service_manager (add find)))
+;;* lmx 12 system/sepolicy/private/rkpd.te
+
+(neverallow base_typeattr_902 rkpd_registrar_service (service_manager (add)))
+;;* lme
+
+(allow rkpd rkpd_refresh_service (service_manager (add find)))
+;;* lmx 13 system/sepolicy/private/rkpd.te
+
+(neverallow base_typeattr_902 rkpd_refresh_service (service_manager (add)))
+;;* lme
+
+(allow rkpd device_config_remote_key_provisioning_native_prop (file (read getattr map open)))
+(typetransition rkpdapp tmpfs file appdomain_tmpfs)
+(allow rkpdapp rkpdapp_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su rkpdapp_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 7 system/sepolicy/private/rkpd_app.te
+
+(neverallow base_typeattr_903 rkpdapp_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow rkpdapp appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 7 system/sepolicy/private/rkpd_app.te
+
+(neverallow base_typeattr_904 base_typeattr_903 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/private/rkpd_app.te
+
+(neverallow base_typeattr_905 rkpdapp (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 7 system/sepolicy/private/rkpd_app.te
+
+(neverallow base_typeattr_906 rkpdapp (process (ptrace)))
+;;* lme
+
+(allow rkpdapp device_config_remote_key_provisioning_native_prop (file (read getattr map open)))
+(allow rkpdapp property_socket (sock_file (write)))
+(allow rkpdapp init (unix_stream_socket (connectto)))
+(allow rkpdapp remote_prov_prop (property_service (set)))
+(allow rkpdapp remote_prov_prop (file (read getattr map open)))
+(allow rkpdapp app_api_service (service_manager (find)))
+(allow rkpdapp mediametrics_service (service_manager (find)))
+(allow rkpdapp statsmanager_service (service_manager (find)))
+(allow rkpdapp statsd (binder (call transfer)))
+(allow statsd rkpdapp (binder (transfer)))
+(allow rkpdapp statsd (fd (use)))
+(allow rs app_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name search)))
+(allow rs privapp_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name search)))
+(allow rs app_exec_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(typetransition rs app_data_file file app_exec_data_file)
+(typetransition rs privapp_data_file file app_exec_data_file)
+(allow rs system_data_file (lnk_file (read)))
+(allow rs app_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs privapp_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs app_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow rs privapp_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow rs app_data_file (dir (remove_name)))
+(allow rs privapp_data_file (dir (remove_name)))
+(allow rs vendor_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow rs vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow rs vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow rs vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs vendor_apex_metadata_file (dir (getattr search)))
+(allow rs apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow rs apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow rs ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow rs same_process_hal_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow rs untrusted_app_all (fd (use)))
+(allow rs ephemeral_app (fd (use)))
+(allow rs priv_app (fd (use)))
+(dontaudit rs hal_graphics_allocator (fd (use)))
+(dontaudit rs surfaceflinger (fd (use)))
+(dontaudit rs zygote (fd (use)))
+;;* lmx 41 system/sepolicy/private/rs.te
+
+(neverallow rs rs (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow rs rs (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+(neverallow rs rs (cap_userns (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow rs rs (cap2_userns (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/private/rs.te
+
+(neverallow base_typeattr_233 rs (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 43 system/sepolicy/private/rs.te
+
+(neverallow rs base_typeattr_644 (process (transition dyntransition)))
+;;* lme
+
+;;* lmx 44 system/sepolicy/private/rs.te
+
+(neverallow rs app_data_file_type (file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow rs app_data_file_type (lnk_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+(neverallow rs app_data_file_type (chr_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm execute_no_trans entrypoint)))
+(neverallow rs app_data_file_type (blk_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+(neverallow rs app_data_file_type (sock_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+(neverallow rs app_data_file_type (fifo_file (write create setattr relabelfrom relabelto append unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm)))
+;;* lme
+
+;;* lmx 46 system/sepolicy/private/rs.te
+
+(neverallow rs base_typeattr_224 (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+(neverallow rs base_typeattr_224 (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow rs base_typeattr_224 (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow rs base_typeattr_224 (icmp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+;;* lme
+
+(allow init rss_hwm_reset_exec (file (read getattr map execute open)))
+(allow init rss_hwm_reset (process (transition)))
+(allow rss_hwm_reset rss_hwm_reset_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init rss_hwm_reset (process (noatsecure)))
+(allow init rss_hwm_reset (process (siginh rlimitinh)))
+(typetransition init rss_hwm_reset_exec process rss_hwm_reset)
+(allow rss_hwm_reset domain (dir (search)))
+(allow rss_hwm_reset self (capability (dac_override)))
+(allow rss_hwm_reset self (cap_userns (dac_override)))
+(allow rss_hwm_reset domain (file (write lock append map open)))
+(allow shell runas_exec (file (read getattr map execute open)))
+(allow shell runas (process (transition)))
+(allow runas runas_exec (file (read getattr map execute open entrypoint)))
+(allow runas shell (process (sigchld)))
+(dontaudit shell runas (process (noatsecure)))
+(allow shell runas (process (siginh rlimitinh)))
+(typetransition shell runas_exec process runas)
+(typetransition runas_app tmpfs file appdomain_tmpfs)
+(allow runas_app runas_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su runas_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 3 system/sepolicy/private/runas_app.te
+
+(neverallow base_typeattr_907 runas_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow runas_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 3 system/sepolicy/private/runas_app.te
+
+(neverallow base_typeattr_908 base_typeattr_907 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/runas_app.te
+
+(neverallow base_typeattr_909 runas_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/runas_app.te
+
+(neverallow base_typeattr_910 runas_app (process (ptrace)))
+;;* lme
+
+(allow runas_app app_data_file (file (execute_no_trans)))
+(allow runas_app untrusted_app_all (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow runas_app untrusted_app_all (file (ioctl read getattr lock map open watch watch_reads)))
+(allow runas_app untrusted_app_all (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow runas_app untrusted_app_all (process (sigkill sigstop signal ptrace)))
+(allow runas_app untrusted_app_all (unix_stream_socket (connectto)))
+(allow runas_app simpleperf_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(dontaudit runas_app domain (dir (search)))
+(allow runas_app self (perf_event (open kernel read write)))
+;;* lmx 32 system/sepolicy/private/runas_app.te
+
+(neverallow runas_app self (perf_event (cpu tracepoint)))
+;;* lme
+
+(dontaudit runas_app shell_test_data_file (dir (search)))
+(typetransition sdcardd system_data_file dir media_rw_data_file)
+(typetransition sdcardd system_data_file file media_rw_data_file)
+(typetransition sdk_sandbox_34 tmpfs file appdomain_tmpfs)
+(allow sdk_sandbox_34 sdk_sandbox_34_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su sdk_sandbox_34_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 9 system/sepolicy/private/sdk_sandbox_34.te
+
+(neverallow base_typeattr_911 sdk_sandbox_34_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow sdk_sandbox_34 appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 9 system/sepolicy/private/sdk_sandbox_34.te
+
+(neverallow base_typeattr_912 base_typeattr_911 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/private/sdk_sandbox_34.te
+
+(neverallow base_typeattr_913 sdk_sandbox_34 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/private/sdk_sandbox_34.te
+
+(neverallow base_typeattr_914 sdk_sandbox_34 (process (ptrace)))
+;;* lme
+
+(allow sdk_sandbox_all system_linker_exec (file (execute_no_trans)))
+(allow sdk_sandbox_all shell_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow sdk_sandbox_all shell_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow sdk_sandbox_all system_server (udp_socket (read write getattr connect getopt setopt recvfrom sendto)))
+(allow sdk_sandbox_all sdk_sandbox_system_data_file (dir (getattr search)))
+(allow sdk_sandbox_all sdk_sandbox_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow sdk_sandbox_all sdk_sandbox_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow sdk_sandbox_all app_data_file (file (read getattr)))
+(allow sdk_sandbox_all privapp_data_file (file (read getattr)))
+;;* lmx 39 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all app_data_file_type (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 42 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 49 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all debugfs_type (file (read)))
+;;* lme
+
+;;* lmx 52 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all gpu_device (chr_file (execute)))
+;;* lme
+
+;;* lmx 55 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all sysfs (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 59 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all proc (file (ioctl read write create setattr lock relabelfrom append unlink link rename execute open watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 62 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all sdcard_type (file (create open)))
+(neverallow sdk_sandbox_all media_rw_data_file (file (create open)))
+;;* lme
+
+;;* lmx 63 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all sdcard_type (dir (search)))
+(neverallow sdk_sandbox_all media_rw_data_file (dir (search)))
+;;* lme
+
+;;* lmx 67 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all proc_net (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 71 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all base_typeattr_915 (dir (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 72 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all base_typeattr_915 (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 75 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all media_rw_data_file (dir (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 76 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all media_rw_data_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 78 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all tmpfs (dir (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 80 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all hal_drm_service (service_manager (find)))
+;;* lme
+
+;;* lmx 90 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow base_typeattr_916 sdk_sandbox_system_data_file (dir (relabelfrom)))
+;;* lme
+
+;;* lmx 100 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow base_typeattr_917 sdk_sandbox_system_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 110 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow base_typeattr_916 sdk_sandbox_system_data_file (dir (relabelfrom)))
+;;* lme
+
+;;* lmx 120 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow base_typeattr_917 sdk_sandbox_system_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 123 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow sdk_sandbox_all sdk_sandbox_system_data_file (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 126 system/sepolicy/private/sdk_sandbox_all.te
+
+(neverallow base_typeattr_223 sdk_sandbox_system_data_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+(typetransition sdk_sandbox_audit tmpfs file appdomain_tmpfs)
+(allow sdk_sandbox_audit sdk_sandbox_audit_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su sdk_sandbox_audit_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 14 system/sepolicy/private/sdk_sandbox_audit.te
+
+(neverallow base_typeattr_918 sdk_sandbox_audit_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow sdk_sandbox_audit appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 14 system/sepolicy/private/sdk_sandbox_audit.te
+
+(neverallow base_typeattr_919 base_typeattr_918 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 14 system/sepolicy/private/sdk_sandbox_audit.te
+
+(neverallow base_typeattr_920 sdk_sandbox_audit (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 14 system/sepolicy/private/sdk_sandbox_audit.te
+
+(neverallow base_typeattr_921 sdk_sandbox_audit (process (ptrace)))
+;;* lme
+
+(auditallow sdk_sandbox_audit ephemeral_app_api_service (service_manager (find)))
+(auditallow sdk_sandbox_audit cameraserver_service (service_manager (find)))
+(auditallow sdk_sandbox_audit mediadrmserver_service (service_manager (find)))
+(auditallow sdk_sandbox_audit radio_service (service_manager (find)))
+(auditallow sdk_sandbox_audit base_typeattr_922 (file (ioctl read write getattr lock append map open watch watch_reads)))
+(auditallow sdk_sandbox_audit base_typeattr_922 (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow sdk_sandbox_current ephemeral_app_api_service (service_manager (find)))
+(allow sdk_sandbox_current audioserver_service (service_manager (find)))
+(allow sdk_sandbox_current batteryproperties_service (service_manager (find)))
+(allow sdk_sandbox_current cameraserver_service (service_manager (find)))
+(allow sdk_sandbox_current gpu_service (service_manager (find)))
+(allow sdk_sandbox_current mediaserver_service (service_manager (find)))
+(allow sdk_sandbox_current mediametrics_service (service_manager (find)))
+(allow sdk_sandbox_current mediaextractor_service (service_manager (find)))
+(allow sdk_sandbox_current mediadrmserver_service (service_manager (find)))
+(allow sdk_sandbox_current radio_service (service_manager (find)))
+(allow sdk_sandbox_current surfaceflinger_service (service_manager (find)))
+(allow sdk_sandbox_current activity_service (service_manager (find)))
+(allow sdk_sandbox_current activity_task_service (service_manager (find)))
+(allow sdk_sandbox_current appops_service (service_manager (find)))
+(allow sdk_sandbox_current audio_service (service_manager (find)))
+(allow sdk_sandbox_current batterystats_service (service_manager (find)))
+(allow sdk_sandbox_current IProxyService_service (service_manager (find)))
+(allow sdk_sandbox_current connectivity_service (service_manager (find)))
+(allow sdk_sandbox_current connmetrics_service (service_manager (find)))
+(allow sdk_sandbox_current deviceidle_service (service_manager (find)))
+(allow sdk_sandbox_current display_service (service_manager (find)))
+(allow sdk_sandbox_current font_service (service_manager (find)))
+(allow sdk_sandbox_current dropbox_service (service_manager (find)))
+(allow sdk_sandbox_current platform_compat_service (service_manager (find)))
+(allow sdk_sandbox_current game_service (service_manager (find)))
+(allow sdk_sandbox_current graphicsstats_service (service_manager (find)))
+(allow sdk_sandbox_current hardware_properties_service (service_manager (find)))
+(allow sdk_sandbox_current hint_service (service_manager (find)))
+(allow sdk_sandbox_current imms_service (service_manager (find)))
+(allow sdk_sandbox_current input_method_service (service_manager (find)))
+(allow sdk_sandbox_current input_service (service_manager (find)))
+(allow sdk_sandbox_current ipsec_service (service_manager (find)))
+(allow sdk_sandbox_current launcherapps_service (service_manager (find)))
+(allow sdk_sandbox_current legacy_permission_service (service_manager (find)))
+(allow sdk_sandbox_current light_service (service_manager (find)))
+(allow sdk_sandbox_current locale_service (service_manager (find)))
+(allow sdk_sandbox_current media_communication_service (service_manager (find)))
+(allow sdk_sandbox_current media_projection_service (service_manager (find)))
+(allow sdk_sandbox_current media_router_service (service_manager (find)))
+(allow sdk_sandbox_current media_session_service (service_manager (find)))
+(allow sdk_sandbox_current memtrackproxy_service (service_manager (find)))
+(allow sdk_sandbox_current midi_service (service_manager (find)))
+(allow sdk_sandbox_current netpolicy_service (service_manager (find)))
+(allow sdk_sandbox_current netstats_service (service_manager (find)))
+(allow sdk_sandbox_current network_management_service (service_manager (find)))
+(allow sdk_sandbox_current notification_service (service_manager (find)))
+(allow sdk_sandbox_current package_service (service_manager (find)))
+(allow sdk_sandbox_current permission_service (service_manager (find)))
+(allow sdk_sandbox_current permissionmgr_service (service_manager (find)))
+(allow sdk_sandbox_current permission_checker_service (service_manager (find)))
+(allow sdk_sandbox_current power_service (service_manager (find)))
+(allow sdk_sandbox_current procstats_service (service_manager (find)))
+(allow sdk_sandbox_current registry_service (service_manager (find)))
+(allow sdk_sandbox_current restrictions_service (service_manager (find)))
+(allow sdk_sandbox_current rttmanager_service (service_manager (find)))
+(allow sdk_sandbox_current search_service (service_manager (find)))
+(allow sdk_sandbox_current selection_toolbar_service (service_manager (find)))
+(allow sdk_sandbox_current sensorservice_service (service_manager (find)))
+(allow sdk_sandbox_current sensor_privacy_service (service_manager (find)))
+(allow sdk_sandbox_current servicediscovery_service (service_manager (find)))
+(allow sdk_sandbox_current settings_service (service_manager (find)))
+(allow sdk_sandbox_current statusbar_service (service_manager (find)))
+(allow sdk_sandbox_current storagestats_service (service_manager (find)))
+(allow sdk_sandbox_current speech_recognition_service (service_manager (find)))
+(allow sdk_sandbox_current textclassification_service (service_manager (find)))
+(allow sdk_sandbox_current textservices_service (service_manager (find)))
+(allow sdk_sandbox_current texttospeech_service (service_manager (find)))
+(allow sdk_sandbox_current telecom_service (service_manager (find)))
+(allow sdk_sandbox_current thermal_service (service_manager (find)))
+(allow sdk_sandbox_current translation_service (service_manager (find)))
+(allow sdk_sandbox_current tv_iapp_service (service_manager (find)))
+(allow sdk_sandbox_current tv_input_service (service_manager (find)))
+(allow sdk_sandbox_current uimode_service (service_manager (find)))
+(allow sdk_sandbox_current vcn_management_service (service_manager (find)))
+(allow sdk_sandbox_current webviewupdate_service (service_manager (find)))
+(allow sdk_sandbox_current tethering_service (service_manager (find)))
+(typetransition sdk_sandbox_next tmpfs file appdomain_tmpfs)
+(allow sdk_sandbox_next sdk_sandbox_next_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su sdk_sandbox_next_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 11 system/sepolicy/private/sdk_sandbox_next.te
+
+(neverallow base_typeattr_923 sdk_sandbox_next_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow sdk_sandbox_next appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 11 system/sepolicy/private/sdk_sandbox_next.te
+
+(neverallow base_typeattr_924 base_typeattr_923 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/private/sdk_sandbox_next.te
+
+(neverallow base_typeattr_925 sdk_sandbox_next (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 11 system/sepolicy/private/sdk_sandbox_next.te
+
+(neverallow base_typeattr_926 sdk_sandbox_next (process (ptrace)))
+;;* lme
+
+(allow sdk_sandbox_next audioserver_service (service_manager (find)))
+(allow sdk_sandbox_next batteryproperties_service (service_manager (find)))
+(allow sdk_sandbox_next gpu_service (service_manager (find)))
+(allow sdk_sandbox_next mediaserver_service (service_manager (find)))
+(allow sdk_sandbox_next mediametrics_service (service_manager (find)))
+(allow sdk_sandbox_next mediaextractor_service (service_manager (find)))
+(allow sdk_sandbox_next surfaceflinger_service (service_manager (find)))
+(allow sdk_sandbox_next activity_service (service_manager (find)))
+(allow sdk_sandbox_next activity_task_service (service_manager (find)))
+(allow sdk_sandbox_next appops_service (service_manager (find)))
+(allow sdk_sandbox_next audio_service (service_manager (find)))
+(allow sdk_sandbox_next batterystats_service (service_manager (find)))
+(allow sdk_sandbox_next IProxyService_service (service_manager (find)))
+(allow sdk_sandbox_next connectivity_service (service_manager (find)))
+(allow sdk_sandbox_next connmetrics_service (service_manager (find)))
+(allow sdk_sandbox_next deviceidle_service (service_manager (find)))
+(allow sdk_sandbox_next display_service (service_manager (find)))
+(allow sdk_sandbox_next font_service (service_manager (find)))
+(allow sdk_sandbox_next dropbox_service (service_manager (find)))
+(allow sdk_sandbox_next platform_compat_service (service_manager (find)))
+(allow sdk_sandbox_next game_service (service_manager (find)))
+(allow sdk_sandbox_next graphicsstats_service (service_manager (find)))
+(allow sdk_sandbox_next hardware_properties_service (service_manager (find)))
+(allow sdk_sandbox_next hint_service (service_manager (find)))
+(allow sdk_sandbox_next imms_service (service_manager (find)))
+(allow sdk_sandbox_next input_method_service (service_manager (find)))
+(allow sdk_sandbox_next input_service (service_manager (find)))
+(allow sdk_sandbox_next ipsec_service (service_manager (find)))
+(allow sdk_sandbox_next launcherapps_service (service_manager (find)))
+(allow sdk_sandbox_next legacy_permission_service (service_manager (find)))
+(allow sdk_sandbox_next light_service (service_manager (find)))
+(allow sdk_sandbox_next locale_service (service_manager (find)))
+(allow sdk_sandbox_next media_communication_service (service_manager (find)))
+(allow sdk_sandbox_next media_projection_service (service_manager (find)))
+(allow sdk_sandbox_next media_router_service (service_manager (find)))
+(allow sdk_sandbox_next media_session_service (service_manager (find)))
+(allow sdk_sandbox_next memtrackproxy_service (service_manager (find)))
+(allow sdk_sandbox_next midi_service (service_manager (find)))
+(allow sdk_sandbox_next netpolicy_service (service_manager (find)))
+(allow sdk_sandbox_next netstats_service (service_manager (find)))
+(allow sdk_sandbox_next network_management_service (service_manager (find)))
+(allow sdk_sandbox_next notification_service (service_manager (find)))
+(allow sdk_sandbox_next package_service (service_manager (find)))
+(allow sdk_sandbox_next permission_service (service_manager (find)))
+(allow sdk_sandbox_next permissionmgr_service (service_manager (find)))
+(allow sdk_sandbox_next permission_checker_service (service_manager (find)))
+(allow sdk_sandbox_next power_service (service_manager (find)))
+(allow sdk_sandbox_next procstats_service (service_manager (find)))
+(allow sdk_sandbox_next registry_service (service_manager (find)))
+(allow sdk_sandbox_next restrictions_service (service_manager (find)))
+(allow sdk_sandbox_next rttmanager_service (service_manager (find)))
+(allow sdk_sandbox_next search_service (service_manager (find)))
+(allow sdk_sandbox_next selection_toolbar_service (service_manager (find)))
+(allow sdk_sandbox_next sensorservice_service (service_manager (find)))
+(allow sdk_sandbox_next sensor_privacy_service (service_manager (find)))
+(allow sdk_sandbox_next servicediscovery_service (service_manager (find)))
+(allow sdk_sandbox_next settings_service (service_manager (find)))
+(allow sdk_sandbox_next statusbar_service (service_manager (find)))
+(allow sdk_sandbox_next storagestats_service (service_manager (find)))
+(allow sdk_sandbox_next speech_recognition_service (service_manager (find)))
+(allow sdk_sandbox_next textclassification_service (service_manager (find)))
+(allow sdk_sandbox_next textservices_service (service_manager (find)))
+(allow sdk_sandbox_next texttospeech_service (service_manager (find)))
+(allow sdk_sandbox_next telecom_service (service_manager (find)))
+(allow sdk_sandbox_next thermal_service (service_manager (find)))
+(allow sdk_sandbox_next translation_service (service_manager (find)))
+(allow sdk_sandbox_next tv_iapp_service (service_manager (find)))
+(allow sdk_sandbox_next tv_input_service (service_manager (find)))
+(allow sdk_sandbox_next uimode_service (service_manager (find)))
+(allow sdk_sandbox_next vcn_management_service (service_manager (find)))
+(allow sdk_sandbox_next webviewupdate_service (service_manager (find)))
+(allow sdk_sandbox_next tethering_service (service_manager (find)))
+(typetransition secure_element tmpfs file appdomain_tmpfs)
+(allow secure_element secure_element_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su secure_element_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 3 system/sepolicy/private/secure_element.te
+
+(neverallow base_typeattr_927 secure_element_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow secure_element appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 3 system/sepolicy/private/secure_element.te
+
+(neverallow base_typeattr_928 base_typeattr_927 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/secure_element.te
+
+(neverallow base_typeattr_929 secure_element (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/secure_element.te
+
+(neverallow base_typeattr_930 secure_element (process (ptrace)))
+;;* lme
+
+(allow secure_element secure_element_service (service_manager (add find)))
+;;* lmx 6 system/sepolicy/private/secure_element.te
+
+(neverallow base_typeattr_927 secure_element_service (service_manager (add)))
+;;* lme
+
+(allow secure_element app_api_service (service_manager (find)))
+(allow secure_element shell_data_file (file (read)))
+(allow secure_element vendor_uuid_mapping_config_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow init servicemanager_exec (file (read getattr map execute open)))
+(allow init servicemanager (process (transition)))
+(allow servicemanager servicemanager_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init servicemanager (process (noatsecure)))
+(allow init servicemanager (process (siginh rlimitinh)))
+(typetransition init servicemanager_exec process servicemanager)
+(allow servicemanager runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow servicemanager property_socket (sock_file (write)))
+(allow servicemanager init (unix_stream_socket (connectto)))
+(allow servicemanager ctl_interface_start_prop (property_service (set)))
+(allow servicemanager ctl_interface_start_prop (file (read getattr map open)))
+(allow servicemanager property_socket (sock_file (write)))
+(allow servicemanager init (unix_stream_socket (connectto)))
+(allow servicemanager servicemanager_prop (property_service (set)))
+(allow servicemanager servicemanager_prop (file (read getattr map open)))
+(allow servicemanager system_bootstrap_lib_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow servicemanager system_bootstrap_lib_file (file (read getattr map execute open)))
+(allow servicemanager apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow servicemanager apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow servicemanager vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow servicemanager vendor_apex_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow servicemanager vendor_apex_metadata_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(typetransition shared_relro tmpfs file appdomain_tmpfs)
+(allow shared_relro shared_relro_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su shared_relro_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 5 system/sepolicy/private/shared_relro.te
+
+(neverallow base_typeattr_931 shared_relro_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow shared_relro appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 5 system/sepolicy/private/shared_relro.te
+
+(neverallow base_typeattr_932 base_typeattr_931 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/private/shared_relro.te
+
+(neverallow base_typeattr_933 shared_relro (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 5 system/sepolicy/private/shared_relro.te
+
+(neverallow base_typeattr_934 shared_relro (process (ptrace)))
+;;* lme
+
+(allow shared_relro shared_relro_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow shared_relro shared_relro_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shared_relro activity_service (service_manager (find)))
+(allow shared_relro webviewupdate_service (service_manager (find)))
+(allow shared_relro package_service (service_manager (find)))
+(dontaudit shared_relro network_management_service (service_manager (find)))
+(allow shell uhid_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow shell debugfs_tracing_debug (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell debugfs_tracing (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell debugfs_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow shell debugfs_trace_marker (file (getattr)))
+(allow shell atrace_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell config_gz (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell tombstone_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell tombstone_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(typetransition shell tmpfs file appdomain_tmpfs)
+(allow shell shell_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su shell_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 26 system/sepolicy/private/shell.te
+
+(neverallow base_typeattr_935 shell_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow shell appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 26 system/sepolicy/private/shell.te
+
+(neverallow base_typeattr_936 base_typeattr_935 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/private/shell.te
+
+(neverallow base_typeattr_909 shell (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 26 system/sepolicy/private/shell.te
+
+(neverallow base_typeattr_937 shell (process (ptrace)))
+;;* lme
+
+(allow shell storaged (binder (call transfer)))
+(allow storaged shell (binder (transfer)))
+(allow shell storaged (fd (use)))
+(allow shell selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell selinuxfs (file (write lock append map open)))
+(allow shell kernel (security (compute_av)))
+(allow shell self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow shell selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell selinuxfs (file (write lock append map open)))
+(allow shell kernel (security (check_context)))
+(allow shell traced_consumer_socket (sock_file (write)))
+(allow shell traced (unix_stream_socket (connectto)))
+(allow shell traced (fd (use)))
+(allow shell traced_tmpfs (file (read write getattr map)))
+(allow shell traced_producer_socket (sock_file (write)))
+(allow shell traced (unix_stream_socket (connectto)))
+(allow traced shell (fd (use)))
+(allow shell vendor_shell_exec (file (read getattr map execute open)))
+(allow shell vendor_shell (process (transition)))
+(allow vendor_shell vendor_shell_exec (file (read getattr map execute open entrypoint)))
+(allow vendor_shell shell (process (sigchld)))
+(dontaudit shell vendor_shell (process (noatsecure)))
+(allow shell vendor_shell (process (siginh rlimitinh)))
+(typetransition shell vendor_shell_exec process vendor_shell)
+(allow shell perfetto_exec (file (read getattr map execute open)))
+(allow shell perfetto (process (transition)))
+(allow perfetto perfetto_exec (file (read getattr map execute open entrypoint)))
+(allow perfetto shell (process (sigchld)))
+(dontaudit shell perfetto (process (noatsecure)))
+(allow shell perfetto (process (siginh rlimitinh)))
+(typetransition shell perfetto_exec process perfetto)
+(allow shell perfetto (process (signal)))
+(allow shell statsd (binder (call transfer)))
+(allow statsd shell (binder (transfer)))
+(allow shell statsd (fd (use)))
+(allow shell perfetto_traces_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow shell perfetto_traces_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow shell perfetto_traces_bugreport_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow shell perfetto_traces_bugreport_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow shell perfetto_configs_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow shell perfetto_configs_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow shell gpuservice (binder (call transfer)))
+(allow gpuservice shell (binder (transfer)))
+(allow shell gpuservice (fd (use)))
+(allow shell proc_net_tcp_udp (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell system_linker_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell rs_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell dex2oat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell dex2oat_exec (lnk_file (read)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell lpdumpd_prop (property_service (set)))
+(allow shell lpdumpd_prop (file (read getattr map open)))
+(allow shell lpdumpd (binder (call transfer)))
+(allow lpdumpd shell (binder (transfer)))
+(allow shell lpdumpd (fd (use)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell userspace_reboot_test_prop (property_service (set)))
+(allow shell userspace_reboot_test_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell power_debug_prop (property_service (set)))
+(allow shell power_debug_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell rollback_test_prop (property_service (set)))
+(allow shell rollback_test_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell remote_prov_prop (property_service (set)))
+(allow shell remote_prov_prop (file (read getattr map open)))
+(allowx shell shell_data_file (ioctl dir ((range 0x6615 0x6616))))
+(allow shell simpleperf_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell remount_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow shell self (perf_event (open kernel read write)))
+;;* lmx 137 system/sepolicy/private/shell.te
+
+(neverallow shell self (perf_event (cpu tracepoint)))
+;;* lme
+
+(allow shell vendor_microdroid_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell vendor_microdroid_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell vendor_microdroid_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell vendor_apex_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell vendor_apex_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell vendor_apex_metadata_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow shell apex_data_file (dir (search)))
+(allow shell staging_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell shell_prop (property_service (set)))
+(allow shell shell_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell ctl_bugreport_prop (property_service (set)))
+(allow shell ctl_bugreport_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell ctl_dumpstate_prop (property_service (set)))
+(allow shell ctl_dumpstate_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell dumpstate_prop (property_service (set)))
+(allow shell dumpstate_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell exported_dumpstate_prop (property_service (set)))
+(allow shell exported_dumpstate_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell debug_prop (property_service (set)))
+(allow shell debug_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell perf_drop_caches_prop (property_service (set)))
+(allow shell perf_drop_caches_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell powerctl_prop (property_service (set)))
+(allow shell powerctl_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell log_tag_prop (property_service (set)))
+(allow shell log_tag_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell wifi_log_prop (property_service (set)))
+(allow shell wifi_log_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell traced_enabled_prop (property_service (set)))
+(allow shell traced_enabled_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell logd_auditrate_prop (property_service (set)))
+(allow shell logd_auditrate_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell heapprofd_enabled_prop (property_service (set)))
+(allow shell heapprofd_enabled_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell traced_perf_enabled_prop (property_service (set)))
+(allow shell traced_perf_enabled_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell ctl_gsid_prop (property_service (set)))
+(allow shell ctl_gsid_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell ctl_snapuserd_prop (property_service (set)))
+(allow shell ctl_snapuserd_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell dynamic_system_prop (property_service (set)))
+(allow shell dynamic_system_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell mock_ota_prop (property_service (set)))
+(allow shell mock_ota_prop (file (read getattr map open)))
+(allow shell serialno_prop (file (read getattr map open)))
+(allow shell vendor_security_patch_level_prop (file (read getattr map open)))
+(allow shell device_logging_prop (file (read getattr map open)))
+(allow shell bootloader_boot_reason_prop (file (read getattr map open)))
+(allow shell last_boot_reason_prop (file (read getattr map open)))
+(allow shell system_boot_reason_prop (file (read getattr map open)))
+(allow shell hal_keymint (binder (call transfer)))
+(allow hal_keymint shell (binder (transfer)))
+(allow shell hal_keymint (fd (use)))
+(allow shell init_perf_lsm_hooks_prop (file (read getattr map open)))
+(allow shell build_bootimage_prop (file (read getattr map open)))
+(allow shell odsign_prop (file (read getattr map open)))
+(allow shell keystore2_key_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell shell_key (keystore2_key (delete get_info rebind update use)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell sqlite_log_prop (property_service (set)))
+(allow shell sqlite_log_prop (file (read getattr map open)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell arm64_memtag_prop (property_service (set)))
+(allow shell arm64_memtag_prop (file (read getattr map open)))
+(allow shell verity_status_prop (file (read getattr map open)))
+(allow shell virtual_ab_prop (file (read getattr map open)))
+;;* lmx 238 system/sepolicy/private/shell.te
+
+(neverallow base_typeattr_885 perf_drop_caches_prop (property_service (set)))
+;;* lme
+
+;;* lmx 239 system/sepolicy/private/shell.te
+
+(neverallow base_typeattr_938 perf_drop_caches_prop (file (read)))
+;;* lme
+
+(allow shell gsi_metadata_file_type (dir (search)))
+(allow shell metadata_file (dir (search)))
+(allow shell gsi_public_metadata_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_bootconfig (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow shell virtualizationmanager_exec (file (read getattr map execute open)))
+(allow shell virtualizationmanager (process (transition)))
+(allow virtualizationmanager virtualizationmanager_exec (file (read getattr map execute open entrypoint)))
+(allow virtualizationmanager shell (process (sigchld)))
+(dontaudit shell virtualizationmanager (process (noatsecure)))
+(allow shell virtualizationmanager (process (siginh rlimitinh)))
+(typetransition shell virtualizationmanager_exec process virtualizationmanager)
+(allow crosvm shell (unix_stream_socket (ioctl read write getattr)))
+(allow virtualizationmanager shell (unix_stream_socket (ioctl read write getattr)))
+(allow crosvm shell (fd (use)))
+(allow virtualizationmanager shell (fd (use)))
+(allow shell virtualizationmanager (fd (use)))
+(allow crosvm shell (fifo_file (ioctl read write getattr)))
+(allow virtualizationmanager shell (fifo_file (ioctl read write getattr)))
+(allow shell virtualizationmanager (vsock_socket (read write getattr getopt)))
+(allow shell hypervisor_prop (file (read getattr map open)))
+(allow shell virtualizationservice_data_file (file (read getattr)))
+(allow shell property_socket (sock_file (write)))
+(allow shell init (unix_stream_socket (connectto)))
+(allow shell gwp_asan_prop (property_service (set)))
+(allow shell gwp_asan_prop (file (read getattr map open)))
+(allow shell build_attestation_prop (file (read getattr map open)))
+(allow shell oatdump_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow base_typeattr_939 simpleperf_exec (file (read getattr map execute open)))
+(allow base_typeattr_939 simpleperf (process (transition)))
+(allow simpleperf simpleperf_exec (file (read getattr map execute open entrypoint)))
+(allow simpleperf base_typeattr_939 (process (sigchld)))
+(dontaudit base_typeattr_939 simpleperf (process (noatsecure)))
+(allow base_typeattr_939 simpleperf (process (siginh rlimitinh)))
+(typetransition base_typeattr_939 simpleperf_exec process simpleperf)
+(typetransition simpleperf tmpfs file appdomain_tmpfs)
+(allow simpleperf simpleperf_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su simpleperf_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 23 system/sepolicy/private/simpleperf.te
+
+(neverallow base_typeattr_940 simpleperf_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow simpleperf appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 23 system/sepolicy/private/simpleperf.te
+
+(neverallow base_typeattr_941 base_typeattr_940 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 23 system/sepolicy/private/simpleperf.te
+
+(neverallow base_typeattr_909 simpleperf (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 23 system/sepolicy/private/simpleperf.te
+
+(neverallow base_typeattr_910 simpleperf (process (ptrace)))
+;;* lme
+
+(allow simpleperf untrusted_app_all (process (ptrace)))
+(allow simpleperf ephemeral_app (process (ptrace)))
+(allow simpleperf isolated_app (process (ptrace)))
+(allow simpleperf platform_app (process (ptrace)))
+(allow simpleperf priv_app (process (ptrace)))
+(allow simpleperf self (perf_event (open kernel read write)))
+(allow simpleperf untrusted_app_all (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow simpleperf ephemeral_app (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow simpleperf isolated_app (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow simpleperf platform_app (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow simpleperf priv_app (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow simpleperf untrusted_app_all (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf untrusted_app_all (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf ephemeral_app (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf ephemeral_app (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf isolated_app (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf isolated_app (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf platform_app (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf platform_app (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf priv_app (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf priv_app (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_all simpleperf (process (signal)))
+(allow ephemeral_app simpleperf (process (signal)))
+(allow isolated_app simpleperf (process (signal)))
+(allow platform_app simpleperf (process (signal)))
+(allow priv_app simpleperf (process (signal)))
+(dontaudit simpleperf domain (dir (search)))
+;;* lmx 51 system/sepolicy/private/simpleperf.te
+
+(neverallow simpleperf self (perf_event (cpu tracepoint)))
+;;* lme
+
+(allow shell simpleperf_app_runner_exec (file (read getattr map execute open)))
+(allow shell simpleperf_app_runner (process (transition)))
+(allow simpleperf_app_runner simpleperf_app_runner_exec (file (read getattr map execute open entrypoint)))
+(allow simpleperf_app_runner shell (process (sigchld)))
+(dontaudit shell simpleperf_app_runner (process (noatsecure)))
+(allow shell simpleperf_app_runner (process (siginh rlimitinh)))
+(typetransition shell simpleperf_app_runner_exec process simpleperf_app_runner)
+(allow simpleperf_app_runner adbd (fd (use)))
+(allow simpleperf_app_runner shell (fd (use)))
+(allow simpleperf_app_runner devpts (chr_file (ioctl read write)))
+(allow simpleperf_app_runner system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf_app_runner system_data_file (lnk_file (getattr)))
+(allow simpleperf_app_runner packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf_app_runner system_data_file (lnk_file (read)))
+(allow simpleperf_app_runner self (capability (setgid setuid)))
+(allow simpleperf_app_runner self (cap_userns (setgid setuid)))
+(allow simpleperf_app_runner selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow simpleperf_app_runner selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf_app_runner selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf_app_runner selinuxfs (file (write lock append map open)))
+(allow simpleperf_app_runner kernel (security (check_context)))
+(allow simpleperf_app_runner self (process (setcurrent)))
+(allow simpleperf_app_runner untrusted_app_all (process (dyntransition)))
+(allow simpleperf_app_runner ephemeral_app (process (dyntransition)))
+(allow simpleperf_app_runner isolated_app (process (dyntransition)))
+(allow simpleperf_app_runner platform_app (process (dyntransition)))
+(allow simpleperf_app_runner priv_app (process (dyntransition)))
+(allow simpleperf_app_runner seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow simpleperf_app_runner shell (fifo_file (read write)))
+(allow simpleperf_app_runner shell_data_file (dir (getattr search)))
+(allow simpleperf_app_runner shell_data_file (file (write getattr)))
+;;* lmx 44 system/sepolicy/private/simpleperf_app_runner.te
+
+(neverallow simpleperf_app_runner self (capability (chown dac_override dac_read_search fowner fsetid kill setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow simpleperf_app_runner self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+;;* lme
+
+;;* lmx 45 system/sepolicy/private/simpleperf_app_runner.te
+
+(neverallow simpleperf_app_runner self (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+(neverallow simpleperf_app_runner self (cap2_userns (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+;;* lme
+
+(allow init snapshotctl_exec (file (read getattr map execute open)))
+(allow init snapshotctl (process (transition)))
+(allow snapshotctl snapshotctl_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init snapshotctl (process (noatsecure)))
+(allow init snapshotctl (process (siginh rlimitinh)))
+(typetransition init snapshotctl_exec process snapshotctl)
+(allow snapshotctl property_socket (sock_file (write)))
+(allow snapshotctl init (unix_stream_socket (connectto)))
+(allow snapshotctl ctl_gsid_prop (property_service (set)))
+(allow snapshotctl ctl_gsid_prop (file (read getattr map open)))
+(allow snapshotctl servicemanager (binder (call transfer)))
+(allow servicemanager snapshotctl (binder (call transfer)))
+(allow servicemanager snapshotctl (dir (search)))
+(allow servicemanager snapshotctl (file (read open)))
+(allow servicemanager snapshotctl (process (getattr)))
+(allow snapshotctl gsi_service (service_manager (find)))
+(allow snapshotctl gsid (binder (call transfer)))
+(allow gsid snapshotctl (binder (transfer)))
+(allow snapshotctl gsid (fd (use)))
+(allow snapshotctl metadata_file (dir (search)))
+(allow snapshotctl ota_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow snapshotctl ota_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow snapshotctl sysfs_dt_firmware_android (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow snapshotctl sysfs_dt_firmware_android (file (ioctl read getattr lock map open watch watch_reads)))
+(allow snapshotctl sysfs_dt_firmware_android (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow snapshotctl proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow snapshotctl block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow snapshotctl super_block_device (blk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow snapshotctl dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow snapshotctl self (capability (sys_admin)))
+(allow snapshotctl self (cap_userns (sys_admin)))
+(allow snapshotctl hwservicemanager (binder (call transfer)))
+(allow hwservicemanager snapshotctl (binder (call transfer)))
+(allow hwservicemanager snapshotctl (dir (search)))
+(allow hwservicemanager snapshotctl (file (read map open)))
+(allow hwservicemanager snapshotctl (process (getattr)))
+(allow snapshotctl statsdw_socket (sock_file (write)))
+(allow snapshotctl statsd (unix_dgram_socket (sendto)))
+(allow init snapuserd_exec (file (read getattr map execute open)))
+(allow init snapuserd (process (transition)))
+(allow snapuserd snapuserd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init snapuserd (process (noatsecure)))
+(allow init snapuserd (process (siginh rlimitinh)))
+(typetransition init snapuserd_exec process snapuserd)
+(allow snapuserd kmsg_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow snapuserd block_device (dir (search)))
+(allow snapuserd sysfs (dir (read open)))
+(allow snapuserd sysfs_dm (dir (read open search)))
+(allow snapuserd sysfs_dm (file (ioctl read getattr lock map open watch watch_reads)))
+(allow snapuserd block_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow snapuserd dm_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow snapuserd dm_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow snapuserd dm_user_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow snapuserd dm_user_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow snapuserd snapuserd_socket (unix_stream_socket (read write getattr listen accept)))
+(allow snapuserd snapuserd_proxy_socket (sock_file (write)))
+(allow snapuserd self (capability (setgid)))
+(allow snapuserd self (cap_userns (setgid)))
+(allow snapuserd kernel (fd (use)))
+(allow snapuserd property_socket (sock_file (write)))
+(allow snapuserd init (unix_stream_socket (connectto)))
+(allow snapuserd snapuserd_prop (property_service (set)))
+(allow snapuserd snapuserd_prop (file (read getattr map open)))
+(allow snapuserd virtual_ab_prop (file (read getattr map open)))
+(allow snapuserd tmpfs (dir (read watch)))
+;;* lmx 56 system/sepolicy/private/snapuserd.te
+
+(neverallow base_typeattr_942 snapuserd_prop (property_service (set)))
+;;* lme
+
+(allow snapuserd metadata_file (dir (search)))
+(allow snapuserd ota_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow snapuserd ota_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow snapuserd snapuserd_log_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow snapuserd snapuserd_log_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow snapuserd proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow snapuserd self (capability (ipc_lock)))
+(allow snapuserd snapuserd_iouring (anon_inode (read write create map)))
+(allow snapuserd self (io_uring (sqpoll)))
+;;* lmx 73 system/sepolicy/private/snapuserd.te
+
+(neverallow base_typeattr_943 snapuserd_iouring (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(dontaudit snapuserd self (capability (ipc_lock)))
+(dontaudit snapuserd self (cap_userns (ipc_lock)))
+(allow shell stats_exec (file (read getattr map execute open)))
+(allow shell stats (process (transition)))
+(allow stats stats_exec (file (read getattr map execute open entrypoint)))
+(allow stats shell (process (sigchld)))
+(dontaudit shell stats (process (noatsecure)))
+(allow shell stats (process (siginh rlimitinh)))
+(typetransition shell stats_exec process stats)
+(allow stats shell (fd (use)))
+(allow stats adbd (fd (use)))
+(allow stats adbd (unix_stream_socket (read write)))
+(allow stats adbd (process (sigchld)))
+(allow stats servicemanager (binder (call transfer)))
+(allow servicemanager stats (binder (call transfer)))
+(allow servicemanager stats (dir (search)))
+(allow servicemanager stats (file (read open)))
+(allow servicemanager stats (process (getattr)))
+(allow stats stats_service (service_manager (find)))
+(allow stats statsd (binder (call transfer)))
+(allow statsd stats (binder (transfer)))
+(allow stats statsd (fd (use)))
+(allow stats statsd (fifo_file (write)))
+(allow statsd stats_service (service_manager (add find)))
+;;* lmx 27 system/sepolicy/private/stats.te
+
+(neverallow base_typeattr_944 stats_service (service_manager (add)))
+;;* lme
+
+(allow statsd stats (fd (use)))
+(allow statsd stats (fifo_file (write)))
+(allow statsd stats (binder (call transfer)))
+(allow stats statsd (binder (transfer)))
+(allow statsd stats (fd (use)))
+(allow init statsd_exec (file (read getattr map execute open)))
+(allow init statsd (process (transition)))
+(allow statsd statsd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init statsd (process (noatsecure)))
+(allow init statsd (process (siginh rlimitinh)))
+(typetransition init statsd_exec process statsd)
+(allow statsd perfetto_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow statsd perfetto_exec (file (read getattr map execute open)))
+(allow statsd perfetto (process (transition)))
+(allow perfetto perfetto_exec (file (read getattr map execute open entrypoint)))
+(allow perfetto statsd (process (sigchld)))
+(dontaudit statsd perfetto (process (noatsecure)))
+(allow statsd perfetto (process (siginh rlimitinh)))
+(typetransition statsd perfetto_exec process perfetto)
+(allow statsd statscompanion_service (service_manager (find)))
+(allow statsd incidentd (fifo_file (write)))
+(allow statsd system_server (fifo_file (read write getattr)))
+(allow statsd priv_app (fifo_file (read write getattr)))
+(allow statsd surfaceflinger (binder (call transfer)))
+(allow surfaceflinger statsd (binder (transfer)))
+(allow statsd surfaceflinger (fd (use)))
+(allow statsd device_config_statsd_native_prop (file (read getattr map open)))
+(allow statsd device_config_statsd_native_boot_prop (file (read getattr map open)))
+(allow statsd uprobestats_configs_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow statsd uprobestats_configs_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow statsd property_socket (sock_file (write)))
+(allow statsd init (unix_stream_socket (connectto)))
+(allow statsd uprobestats_start_with_config_prop (property_service (set)))
+(allow statsd uprobestats_start_with_config_prop (file (read getattr map open)))
+(allow init storaged_exec (file (read getattr map execute open)))
+(allow init storaged (process (transition)))
+(allow storaged storaged_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init storaged (process (noatsecure)))
+(allow init storaged (process (siginh rlimitinh)))
+(typetransition init storaged_exec process storaged)
+(allow storaged domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow storaged domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow storaged domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow storaged proc_uid_io_stats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow storaged system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow storaged packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow storaged storaged_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow storaged storaged_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow storaged shell (fd (use)))
+(allow storaged shell (fifo_file (write)))
+(allow storaged priv_app (fd (use)))
+(allow storaged gmscore_app (fd (use)))
+(allow storaged app_data_file (file (write)))
+(allow storaged privapp_data_file (file (write)))
+(allow storaged permission_service (service_manager (find)))
+(allow storaged storaged_service (service_manager (add find)))
+;;* lmx 45 system/sepolicy/private/storaged.te
+
+(neverallow base_typeattr_945 storaged_service (service_manager (add)))
+;;* lme
+
+(allow storaged servicemanager (binder (call transfer)))
+(allow servicemanager storaged (binder (call transfer)))
+(allow servicemanager storaged (dir (search)))
+(allow servicemanager storaged (file (read open)))
+(allow servicemanager storaged (process (getattr)))
+(allow storaged system_server (binder (call transfer)))
+(allow system_server storaged (binder (transfer)))
+(allow storaged system_server (fd (use)))
+(allow storaged dumpstate (fd (use)))
+(allow storaged package_native_service (service_manager (find)))
+(dontaudit storaged self (capability (dac_override dac_read_search)))
+(dontaudit storaged self (cap_userns (dac_override dac_read_search)))
+(allow storaged dumpstate (fifo_file (write)))
+;;* lmx 68 system/sepolicy/private/storaged.te
+
+(neverallow storaged domain (process (ptrace)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/private/storaged.te
+
+(neverallow storaged self (capability (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow storaged self (capability2 (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+(neverallow storaged self (cap_userns (chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap)))
+(neverallow storaged self (cap2_userns (mac_override mac_admin syslog wake_alarm block_suspend audit_read perfmon)))
+;;* lme
+
+(allow init surfaceflinger_exec (file (read getattr map execute open)))
+(allow init surfaceflinger (process (transition)))
+(allow surfaceflinger surfaceflinger_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init surfaceflinger (process (noatsecure)))
+(allow init surfaceflinger (process (siginh rlimitinh)))
+(typetransition init surfaceflinger_exec process surfaceflinger)
+(typetransition surfaceflinger tmpfs file surfaceflinger_tmpfs)
+(allow surfaceflinger surfaceflinger_tmpfs (file (read write getattr map)))
+(allow surfaceflinger runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger hidl_token_hwservice (hwservice_manager (find)))
+(allow surfaceflinger servicemanager (binder (call transfer)))
+(allow servicemanager surfaceflinger (binder (call transfer)))
+(allow servicemanager surfaceflinger (dir (search)))
+(allow servicemanager surfaceflinger (file (read open)))
+(allow servicemanager surfaceflinger (process (getattr)))
+(allow surfaceflinger binderservicedomain (binder (call transfer)))
+(allow binderservicedomain surfaceflinger (binder (transfer)))
+(allow surfaceflinger binderservicedomain (fd (use)))
+(allow surfaceflinger appdomain (binder (call transfer)))
+(allow appdomain surfaceflinger (binder (transfer)))
+(allow surfaceflinger appdomain (fd (use)))
+(allow surfaceflinger bootanim (binder (call transfer)))
+(allow bootanim surfaceflinger (binder (transfer)))
+(allow surfaceflinger bootanim (fd (use)))
+(allow surfaceflinger system_server (binder (call transfer)))
+(allow system_server surfaceflinger (binder (transfer)))
+(allow surfaceflinger system_server (fd (use)))
+(allow surfaceflinger adbd (binder (call transfer)))
+(allow adbd surfaceflinger (binder (transfer)))
+(allow surfaceflinger adbd (fd (use)))
+(allow surfaceflinger binderservicedomain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger binderservicedomain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger binderservicedomain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger appdomain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger appdomain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger appdomain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow surfaceflinger gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger sysfs_gpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger graphics_device (dir (search)))
+(allow surfaceflinger graphics_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow surfaceflinger video_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger video_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow surfaceflinger dmabuf_system_secure_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger system_prop (property_service (set)))
+(allow surfaceflinger system_prop (file (read getattr map open)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger bootanim_system_prop (property_service (set)))
+(allow surfaceflinger bootanim_system_prop (file (read getattr map open)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger exported_system_prop (property_service (set)))
+(allow surfaceflinger exported_system_prop (file (read getattr map open)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger exported3_system_prop (property_service (set)))
+(allow surfaceflinger exported3_system_prop (file (read getattr map open)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger ctl_bootanim_prop (property_service (set)))
+(allow surfaceflinger ctl_bootanim_prop (file (read getattr map open)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger locale_prop (property_service (set)))
+(allow surfaceflinger locale_prop (file (read getattr map open)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger surfaceflinger_display_prop (property_service (set)))
+(allow surfaceflinger surfaceflinger_display_prop (file (read getattr map open)))
+(allow surfaceflinger property_socket (sock_file (write)))
+(allow surfaceflinger init (unix_stream_socket (connectto)))
+(allow surfaceflinger timezone_prop (property_service (set)))
+(allow surfaceflinger timezone_prop (file (read getattr map open)))
+(allow surfaceflinger qemu_sf_lcd_density_prop (file (read getattr map open)))
+(allow surfaceflinger device_config_surface_flinger_native_boot_prop (file (read getattr map open)))
+(allow surfaceflinger appdomain (fd (use)))
+(allow surfaceflinger app_data_file (file (read write)))
+(allow surfaceflinger privapp_data_file (file (read write)))
+(allow surfaceflinger traced (fd (use)))
+(allow surfaceflinger traced_tmpfs (file (read write getattr map)))
+(allow surfaceflinger traced_producer_socket (sock_file (write)))
+(allow surfaceflinger traced (unix_stream_socket (connectto)))
+(allow traced surfaceflinger (fd (use)))
+(allow surfaceflinger adbd (unix_stream_socket (read write getattr)))
+(allow surfaceflinger dumpstate (binder (call transfer)))
+(allow dumpstate surfaceflinger (binder (transfer)))
+(allow surfaceflinger dumpstate (fd (use)))
+(allow surfaceflinger shell (binder (call transfer)))
+(allow shell surfaceflinger (binder (transfer)))
+(allow surfaceflinger shell (fd (use)))
+(allow surfaceflinger dumpstate (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger dumpstate (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger dumpstate (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger surfaceflinger_service (service_manager (add find)))
+(allow surfaceflinger mediaserver_service (service_manager (find)))
+(allow surfaceflinger permission_service (service_manager (find)))
+(allow surfaceflinger power_service (service_manager (find)))
+(allow surfaceflinger vr_manager_service (service_manager (find)))
+(allow surfaceflinger window_service (service_manager (find)))
+(allow surfaceflinger inputflinger_service (service_manager (find)))
+(allow surfaceflinger self (capability (sys_nice)))
+(allow surfaceflinger self (cap_userns (sys_nice)))
+(allow surfaceflinger proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger tmpfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger system_server (fd (use)))
+(allow surfaceflinger system_server (unix_stream_socket (read write)))
+(allow surfaceflinger ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow surfaceflinger dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow init pdx_display_client_endpoint_socket_type (unix_stream_socket (create bind)))
+(allow surfaceflinger pdx_display_client_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown)))
+(allow surfaceflinger self (process (setsockcreate)))
+(allow surfaceflinger pdx_display_client_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+;;* lmx 121 system/sepolicy/private/surfaceflinger.te
+
+(neverallow base_typeattr_946 pdx_display_client_endpoint_socket_type (unix_stream_socket (listen accept)))
+;;* lme
+
+(allow init pdx_display_manager_endpoint_socket_type (unix_stream_socket (create bind)))
+(allow surfaceflinger pdx_display_manager_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown)))
+(allow surfaceflinger self (process (setsockcreate)))
+(allow surfaceflinger pdx_display_manager_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+;;* lmx 122 system/sepolicy/private/surfaceflinger.te
+
+(neverallow base_typeattr_946 pdx_display_manager_endpoint_socket_type (unix_stream_socket (listen accept)))
+;;* lme
+
+(allow init pdx_display_screenshot_endpoint_socket_type (unix_stream_socket (create bind)))
+(allow surfaceflinger pdx_display_screenshot_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown)))
+(allow surfaceflinger self (process (setsockcreate)))
+(allow surfaceflinger pdx_display_screenshot_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+;;* lmx 123 system/sepolicy/private/surfaceflinger.te
+
+(neverallow base_typeattr_946 pdx_display_screenshot_endpoint_socket_type (unix_stream_socket (listen accept)))
+;;* lme
+
+(allow init pdx_display_vsync_endpoint_socket_type (unix_stream_socket (create bind)))
+(allow surfaceflinger pdx_display_vsync_endpoint_socket_type (unix_stream_socket (read write getattr setattr lock append listen accept getopt setopt shutdown)))
+(allow surfaceflinger self (process (setsockcreate)))
+(allow surfaceflinger pdx_display_vsync_channel_socket_type (unix_stream_socket (ioctl read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+;;* lmx 124 system/sepolicy/private/surfaceflinger.te
+
+(neverallow base_typeattr_946 pdx_display_vsync_endpoint_socket_type (unix_stream_socket (listen accept)))
+;;* lme
+
+(allow surfaceflinger pdx_bufferhub_client_endpoint_dir_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger pdx_bufferhub_client_endpoint_socket_type (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow surfaceflinger pdx_bufferhub_client_endpoint_socket_type (unix_stream_socket (read write shutdown connectto)))
+(allow surfaceflinger pdx_bufferhub_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow surfaceflinger pdx_bufferhub_client_server_type (fd (use)))
+(allow pdx_bufferhub_client_server_type surfaceflinger (fd (use)))
+(allow surfaceflinger pdx_performance_client_endpoint_dir_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow surfaceflinger pdx_performance_client_endpoint_socket_type (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow surfaceflinger pdx_performance_client_endpoint_socket_type (unix_stream_socket (read write shutdown connectto)))
+(allow surfaceflinger pdx_performance_client_channel_socket_type (unix_stream_socket (read write getattr setattr lock append getopt setopt shutdown)))
+(allow surfaceflinger pdx_performance_client_server_type (fd (use)))
+(allow pdx_performance_client_server_type surfaceflinger (fd (use)))
+(allow surfaceflinger stats_service (service_manager (find)))
+(allow surfaceflinger statsmanager_service (service_manager (find)))
+(allow surfaceflinger statsd (binder (call transfer)))
+(allow statsd surfaceflinger (binder (transfer)))
+(allow surfaceflinger statsd (fd (use)))
+(allow surfaceflinger hal_evs (fd (use)))
+(allow surfaceflinger hal_camera (fd (use)))
+(dontaudit surfaceflinger vendor_default_prop (file (read)))
+;;* lmx 156 system/sepolicy/private/surfaceflinger.te
+
+(neverallow surfaceflinger sdcard_type (file (ioctl read write getattr lock append map open watch watch_reads)))
+(neverallow surfaceflinger fuse (file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lme
+
+(dontaudit surfaceflinger unlabeled (dir (search)))
+(typetransition system_app tmpfs file appdomain_tmpfs)
+(allow system_app system_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su system_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 9 system/sepolicy/private/system_app.te
+
+(neverallow base_typeattr_947 system_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow system_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 9 system/sepolicy/private/system_app.te
+
+(neverallow base_typeattr_948 base_typeattr_947 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/private/system_app.te
+
+(neverallow base_typeattr_949 system_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 9 system/sepolicy/private/system_app.te
+
+(neverallow base_typeattr_950 system_app (process (ptrace)))
+;;* lme
+
+(allow system_app rootfs (dir (getattr)))
+(allow system_app system_app_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_app system_app_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_app system_app_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_app misc_user_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_app misc_user_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_app apex_data_file (dir (search)))
+(allow system_app staging_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_app wallpaper_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_app icon_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app adaptive_haptics_prop (property_service (set)))
+(allow system_app adaptive_haptics_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app arm64_memtag_prop (property_service (set)))
+(allow system_app arm64_memtag_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app bluetooth_a2dp_offload_prop (property_service (set)))
+(allow system_app bluetooth_a2dp_offload_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app bluetooth_audio_hal_prop (property_service (set)))
+(allow system_app bluetooth_audio_hal_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app bluetooth_prop (property_service (set)))
+(allow system_app bluetooth_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app debug_prop (property_service (set)))
+(allow system_app debug_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app system_prop (property_service (set)))
+(allow system_app system_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app exported_bluetooth_prop (property_service (set)))
+(allow system_app exported_bluetooth_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app exported_system_prop (property_service (set)))
+(allow system_app exported_system_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app exported3_system_prop (property_service (set)))
+(allow system_app exported3_system_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app gesture_prop (property_service (set)))
+(allow system_app gesture_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app locale_prop (property_service (set)))
+(allow system_app locale_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app logd_prop (property_service (set)))
+(allow system_app logd_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app net_radio_prop (property_service (set)))
+(allow system_app net_radio_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app timezone_prop (property_service (set)))
+(allow system_app timezone_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app usb_control_prop (property_service (set)))
+(allow system_app usb_control_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app usb_prop (property_service (set)))
+(allow system_app usb_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app log_tag_prop (property_service (set)))
+(allow system_app log_tag_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app drm_forcel3_prop (property_service (set)))
+(allow system_app drm_forcel3_prop (file (read getattr map open)))
+(auditallow system_app net_radio_prop (property_service (set)))
+(auditallow system_app usb_control_prop (property_service (set)))
+(auditallow system_app usb_prop (property_service (set)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app dynamic_system_prop (property_service (set)))
+(allow system_app dynamic_system_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app ctl_default_prop (property_service (set)))
+(allow system_app ctl_default_prop (file (read getattr map open)))
+(allow system_app property_socket (sock_file (write)))
+(allow system_app init (unix_stream_socket (connectto)))
+(allow system_app ctl_bugreport_prop (property_service (set)))
+(allow system_app ctl_bugreport_prop (file (read getattr map open)))
+(allow system_app gsid_prop (file (read getattr map open)))
+(allow system_app enable_16k_pages_prop (file (read getattr map open)))
+(allow system_app anr_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name search)))
+(allow system_app anr_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_app asec_apk_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_app statsd (binder (call transfer)))
+(allow statsd system_app (binder (transfer)))
+(allow system_app statsd (fd (use)))
+(allow system_app incidentd (binder (call transfer)))
+(allow incidentd system_app (binder (transfer)))
+(allow system_app incidentd (fd (use)))
+(allow system_app servicemanager (binder (call transfer)))
+(allow servicemanager system_app (binder (call transfer)))
+(allow servicemanager system_app (dir (search)))
+(allow servicemanager system_app (file (read open)))
+(allow servicemanager system_app (process (getattr)))
+(allow system_app update_engine_stable_service (service_manager (find)))
+(allow system_app update_engine (binder (call transfer)))
+(allow update_engine system_app (binder (transfer)))
+(allow system_app update_engine (fd (use)))
+(allow system_app servicemanager (service_manager (list)))
+(allow system_app base_typeattr_951 (service_manager (find)))
+(dontaudit system_app dnsresolver_service (service_manager (find)))
+(dontaudit system_app dumpstate_service (service_manager (find)))
+(dontaudit system_app installd_service (service_manager (find)))
+(dontaudit system_app mdns_service (service_manager (find)))
+(dontaudit system_app netd_service (service_manager (find)))
+(dontaudit system_app virtual_touchpad_service (service_manager (find)))
+(dontaudit system_app vold_service (service_manager (find)))
+(dontaudit system_app debugfs_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(dontaudit system_app proc_pagetypeinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit system_app sysfs_zram (dir (search)))
+(allow system_app keystore (keystore2_key (delete get_info grant rebind update use)))
+(allow system_app wifi_key (keystore2_key (delete get_info rebind update use)))
+(allow system_app proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_app cgroup (file (write lock append map open)))
+(allow system_app cgroup_v2 (file (write lock append map open)))
+(allow system_app cgroup_v2 (dir (write lock open add_name remove_name search)))
+(allow system_app logd_socket (sock_file (write)))
+(allow system_app logd (unix_stream_socket (connectto)))
+(allow system_app runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_app device_logging_prop (file (read getattr map open)))
+(allow system_app system_server (udp_socket (read write getattr connect getopt setopt recvfrom sendto)))
+(allow system_app game_manager_config_prop (file (read getattr map open)))
+(allow system_app oem_unlock_prop (file (read getattr map open)))
+(allow system_app usb_uvc_enabled_prop (file (read getattr map open)))
+(allow system_app pm_archiving_enabled_prop (file (read getattr map open)))
+;;* lmx 185 system/sepolicy/private/system_app.te
+
+(neverallow system_app fuse_device (chr_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 191 system/sepolicy/private/system_app.te
+
+(neverallow system_app shell_data_file (dir (read write create setattr relabelfrom link rename open add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 192 system/sepolicy/private/system_app.te
+
+(neverallow system_app shell_data_file (file (ioctl read lock open)))
+;;* lme
+
+;;* lmx 195 system/sepolicy/private/system_app.te
+
+(neverallow base_typeattr_952 adaptive_haptics_prop (property_service (set)))
+;;* lme
+
+;;* lmx 197 system/sepolicy/private/system_app.te
+
+(neverallow base_typeattr_952 drm_forcel3_prop (property_service (set)))
+;;* lme
+
+(typetransition system_server tmpfs file system_server_tmpfs)
+(allow system_server system_server_tmpfs (file (read write getattr map)))
+(allow system_server system_server_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su system_server_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 17 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_305 system_server_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow system_server zygote_tmpfs (file (read map)))
+(allow system_server appdomain_tmpfs (file (read write getattr map)))
+(allow system_server proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server incremental_control_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allowx system_server incremental_control_file (ioctl file (0x671e 0x6721 0x6723 (range 0x6725 0x6727))))
+(allowx system_server apk_data_file (ioctl file ((range 0x6601 0x6602))))
+(allowx system_server apk_data_file (ioctl file ((range 0x671f 0x6720) 0x6722 0x6724)))
+(allowx system_server apk_data_file (ioctl file (0xf50c (range 0xf511 0xf513) (range 0xf517 0xf518))))
+(allowx system_server apk_tmp_file (ioctl file (0x6601)))
+(allowx system_server apk_tmp_file (ioctl file (0xf512)))
+(allow system_server sysfs_fs_incfs_metrics (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_fs_f2fs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_fs_f2fs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sdk_sandbox_system_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit system_server apex_art_data_file (file (execute)))
+(allowx system_server dalvikcache_data_file (ioctl file (0x6601)))
+(allowx system_server dalvikcache_data_file (ioctl file (0xf512)))
+(allow system_server resourcecache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server resourcecache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server self (process (ptrace)))
+(allow system_server zygote (fd (use)))
+(allow system_server zygote (process (sigchld)))
+(allow system_server app_zygote (process (sigkill signull getpgid)))
+(allow system_server crash_dump (process (sigkill signull getpgid)))
+(allow system_server webview_zygote (process (sigkill signull getpgid)))
+(allow system_server zygote (process (sigkill signull getpgid)))
+(allow system_server crosvm (process (sigkill signull getpgid)))
+(allow system_server virtualizationmanager (process (sigkill signull getpgid)))
+(allow system_server zygote_exec (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server zygote (unix_stream_socket (getattr getopt)))
+(allowx system_server self (ioctl udp_socket (0x6900 0x6902)))
+(allowx system_server self (ioctl udp_socket ((range 0x890b 0x890d) 0x8911 0x8914 0x8916 0x8918 0x891a (range 0x891c 0x8920) (range 0x8922 0x8927) 0x8929 (range 0x8930 0x8932) (range 0x8934 0x8937) 0x8939 (range 0x8940 0x8941) 0x8943 (range 0x8946 0x894b) (range 0x8953 0x8955) (range 0x8960 0x8962) (range 0x8970 0x8971) (range 0x8980 0x8983) (range 0x8990 0x8995) (range 0x89a0 0x89a3) 0x89b0 (range 0x89e0 0x89ff))))
+(allowx system_server self (ioctl udp_socket (0x8b00 0x8b02 0x8b04 0x8b06 0x8b08 0x8b0a 0x8b0c 0x8b0e 0x8b10 (range 0x8b14 0x8b1d) 0x8b20 0x8b22 0x8b24 0x8b26 0x8b28 (range 0x8b2a 0x8b2c) (range 0x8b30 0x8b36) (range 0x8be0 0x8bff))))
+(allow system_server appdomain (tcp_socket (ioctl)))
+(allow system_server self (capability (kill net_bind_service net_broadcast net_admin net_raw ipc_lock sys_ptrace sys_boot sys_nice sys_time sys_tty_config)))
+(allow system_server self (cap_userns (kill net_bind_service net_broadcast net_admin net_raw ipc_lock sys_ptrace sys_boot sys_nice sys_time sys_tty_config)))
+(allow system_server self (capability2 (wake_alarm)))
+(allow system_server self (cap2_userns (wake_alarm)))
+(allow system_server self (netlink_netfilter_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server self (netlink_tcpdiag_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read nlmsg_write)))
+(allow system_server self (netlink_kobject_uevent_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server self (netlink_nflog_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server self (netlink_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server self (netlink_generic_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server config_gz (file (read open)))
+(allow system_server self (socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server self (netlink_route_socket (nlmsg_write)))
+(allow system_server self (netlink_xfrm_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown nlmsg_read nlmsg_write)))
+(allow system_server appdomain (process (sigkill signal getpgid)))
+(allow system_server appdomain (process (signull)))
+(allow system_server appdomain (process (getsched setsched)))
+(allow system_server audioserver (process (getsched setsched)))
+(allow system_server hal_audio (process (getsched setsched)))
+(allow system_server hal_bluetooth (process (getsched setsched)))
+(allow system_server hal_codec2_server (process (getsched setsched)))
+(allow system_server hal_omx_server (process (getsched setsched)))
+(allow system_server mediaswcodec (process (getsched setsched)))
+(allow system_server cameraserver (process (getsched setsched)))
+(allow system_server hal_camera (process (getsched setsched)))
+(allow system_server mediaserver (process (getsched setsched)))
+(allow system_server bootanim (process (getsched setsched)))
+(allow system_server kernel (process (getsched setsched)))
+(allow system_server domain (file (write lock append map open)))
+(allow system_server domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_uid_cputime_removeuid (file (write getattr lock append map open)))
+(allow system_server proc_uid_procstat_set (file (write getattr lock append map open)))
+(allow system_server proc_sysrq (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server stats_config_data_file (dir (read write open remove_name search)))
+(allow system_server stats_config_data_file (file (unlink)))
+(allow system_server odsign_data_file (dir (search)))
+(allow system_server odsign_metrics_file (dir (ioctl read write getattr lock open watch watch_reads remove_name search)))
+(allow system_server odsign_metrics_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow system_server sysfs_ion (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_dma_heap (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_dmabuf_stats (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_dmabuf_stats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server dmabuf_heap_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server self (packet_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server self (tun_socket (read write create getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server lmkd_socket (sock_file (write)))
+(allow system_server lmkd (unix_stream_socket (connectto)))
+(allow system_server zygote_socket (sock_file (write)))
+(allow system_server zygote (unix_stream_socket (connectto)))
+(allow system_server uncrypt_socket (sock_file (write)))
+(allow system_server uncrypt (unix_stream_socket (connectto)))
+(allow system_server statsdw_socket (sock_file (write)))
+(allow system_server statsd (unix_dgram_socket (sendto)))
+(allow system_server surfaceflinger (unix_stream_socket (read write setopt)))
+(allow system_server gpuservice (unix_stream_socket (read write setopt)))
+(allow system_server webview_zygote (unix_stream_socket (read write setopt connectto)))
+(allow system_server app_zygote (unix_stream_socket (read write setopt connectto)))
+(allow system_server servicemanager (binder (call transfer)))
+(allow servicemanager system_server (binder (call transfer)))
+(allow servicemanager system_server (dir (search)))
+(allow servicemanager system_server (file (read open)))
+(allow servicemanager system_server (process (getattr)))
+(allow system_server appdomain (binder (call transfer)))
+(allow appdomain system_server (binder (transfer)))
+(allow system_server appdomain (fd (use)))
+(allow system_server artd (binder (call transfer)))
+(allow artd system_server (binder (transfer)))
+(allow system_server artd (fd (use)))
+(allow system_server binderservicedomain (binder (call transfer)))
+(allow binderservicedomain system_server (binder (transfer)))
+(allow system_server binderservicedomain (fd (use)))
+(allow system_server composd (binder (call transfer)))
+(allow composd system_server (binder (transfer)))
+(allow system_server composd (fd (use)))
+(allow system_server dexopt_chroot_setup (binder (call transfer)))
+(allow dexopt_chroot_setup system_server (binder (transfer)))
+(allow system_server dexopt_chroot_setup (fd (use)))
+(allow system_server dumpstate (binder (call transfer)))
+(allow dumpstate system_server (binder (transfer)))
+(allow system_server dumpstate (fd (use)))
+(allow system_server fingerprintd (binder (call transfer)))
+(allow fingerprintd system_server (binder (transfer)))
+(allow system_server fingerprintd (fd (use)))
+(allow system_server gatekeeperd (binder (call transfer)))
+(allow gatekeeperd system_server (binder (transfer)))
+(allow system_server gatekeeperd (fd (use)))
+(allow system_server gpuservice (binder (call transfer)))
+(allow gpuservice system_server (binder (transfer)))
+(allow system_server gpuservice (fd (use)))
+(allow system_server idmap (binder (call transfer)))
+(allow idmap system_server (binder (transfer)))
+(allow system_server idmap (fd (use)))
+(allow system_server installd (binder (call transfer)))
+(allow installd system_server (binder (transfer)))
+(allow system_server installd (fd (use)))
+(allow system_server incidentd (binder (call transfer)))
+(allow incidentd system_server (binder (transfer)))
+(allow system_server incidentd (fd (use)))
+(allow system_server netd (binder (call transfer)))
+(allow netd system_server (binder (transfer)))
+(allow system_server netd (fd (use)))
+(allow system_server ot_daemon (binder (call transfer)))
+(allow ot_daemon system_server (binder (transfer)))
+(allow system_server ot_daemon (fd (use)))
+(allow system_server statsd (binder (call transfer)))
+(allow statsd system_server (binder (transfer)))
+(allow system_server statsd (fd (use)))
+(allow system_server storaged (binder (call transfer)))
+(allow storaged system_server (binder (transfer)))
+(allow system_server storaged (fd (use)))
+(allow system_server update_engine (binder (call transfer)))
+(allow update_engine system_server (binder (transfer)))
+(allow system_server update_engine (fd (use)))
+(allow system_server virtual_camera (binder (call transfer)))
+(allow virtual_camera system_server (binder (transfer)))
+(allow system_server virtual_camera (fd (use)))
+(allow system_server vold (binder (call transfer)))
+(allow vold system_server (binder (transfer)))
+(allow system_server vold (fd (use)))
+(allow system_server logd (binder (call transfer)))
+(allow logd system_server (binder (transfer)))
+(allow system_server logd (fd (use)))
+(allow system_server wificond (binder (call transfer)))
+(allow wificond system_server (binder (transfer)))
+(allow system_server wificond (fd (use)))
+(allow system_server uprobestats (binder (call transfer)))
+(allow uprobestats system_server (binder (transfer)))
+(allow system_server uprobestats (fd (use)))
+(allow system_server hal_graphics_composer (fd (use)))
+(allow system_server hal_renderscript_hwservice (hwservice_manager (find)))
+(allow system_server same_process_hal_file (file (read getattr map execute open)))
+(allow system_server tombstoned_intercept_socket (sock_file (write)))
+(allow system_server tombstoned (unix_stream_socket (connectto)))
+(allow system_server hwservicemanager (hwservice_manager (list)))
+(allow system_server servicemanager (service_manager (list)))
+(allow system_server hal_audio_server (process (signal)))
+(allow system_server hal_bluetooth_server (process (signal)))
+(allow system_server hal_camera_server (process (signal)))
+(allow system_server hal_codec2_server (process (signal)))
+(allow system_server hal_face_server (process (signal)))
+(allow system_server hal_fingerprint_server (process (signal)))
+(allow system_server hal_gnss_server (process (signal)))
+(allow system_server hal_graphics_allocator_server (process (signal)))
+(allow system_server hal_graphics_composer_server (process (signal)))
+(allow system_server hal_health_server (process (signal)))
+(allow system_server hal_input_processor_server (process (signal)))
+(allow system_server hal_light_server (process (signal)))
+(allow system_server hal_neuralnetworks_server (process (signal)))
+(allow system_server hal_omx_server (process (signal)))
+(allow system_server hal_power_server (process (signal)))
+(allow system_server hal_power_stats_server (process (signal)))
+(allow system_server hal_sensors_server (process (signal)))
+(allow system_server hal_vibrator_server (process (signal)))
+(allow system_server hal_vr_server (process (signal)))
+(allow system_server system_suspend_server (process (signal)))
+(allow system_server artd (process (signal)))
+(allow system_server audioserver (process (signal)))
+(allow system_server cameraserver (process (signal)))
+(allow system_server drmserver (process (signal)))
+(allow system_server gpuservice (process (signal)))
+(allow system_server inputflinger (process (signal)))
+(allow system_server keystore (process (signal)))
+(allow system_server mediadrmserver (process (signal)))
+(allow system_server mediaextractor (process (signal)))
+(allow system_server mediametrics (process (signal)))
+(allow system_server mediaserver (process (signal)))
+(allow system_server mediaswcodec (process (signal)))
+(allow system_server mediatranscoding (process (signal)))
+(allow system_server netd (process (signal)))
+(allow system_server sdcardd (process (signal)))
+(allow system_server servicemanager (process (signal)))
+(allow system_server statsd (process (signal)))
+(allow system_server surfaceflinger (process (signal)))
+(allow system_server vold (process (signal)))
+(allow system_server mediatuner (process (signal)))
+(allow system_server audioserver (tcp_socket (ioctl read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server audioserver (udp_socket (ioctl read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server mediaserver (tcp_socket (ioctl read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server mediaserver (udp_socket (ioctl read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server mediadrmserver (tcp_socket (ioctl read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server mediadrmserver (udp_socket (ioctl read write getattr setattr lock append map bind connect getopt setopt shutdown)))
+(allow system_server traced (fd (use)))
+(allow system_server traced_tmpfs (file (read write getattr map)))
+(allow system_server traced_producer_socket (sock_file (write)))
+(allow system_server traced (unix_stream_socket (connectto)))
+(allow traced system_server (fd (use)))
+(allow system_server file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server mac_perms_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server selinuxfs (file (write lock append map open)))
+(allow system_server kernel (security (compute_av)))
+(allow system_server self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow system_server sysfs_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_android_usb (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_android_usb (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_android_usb (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_android_usb (file (write lock append map open)))
+(allow system_server sysfs_extcon (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_extcon (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_extcon (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_ipv4 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_ipv4 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_ipv4 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_ipv4 (file (write lock append map open)))
+(allow system_server sysfs_rtc (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_rtc (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_rtc (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_switch (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_switch (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_switch (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_nfc_power_writable (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server sysfs_power (dir (search)))
+(allow system_server sysfs_power (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server sysfs_thermal (dir (search)))
+(allow system_server sysfs_thermal (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_uhid (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_uhid (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server sysfs_vibrator (file (write append)))
+(allow system_server sysfs_usb (file (write lock append map open)))
+(allow system_server device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server mdns_socket (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server sysfs_gpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server input_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server input_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server tty_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server usbaccessory_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server video_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server video_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server adbd_socket (sock_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server rtc_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server audio_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server uhid_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server hidraw_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server hidraw_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server audio_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server tun_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx system_server tun_device (ioctl chr_file (0x54ca 0x54cd 0x54d2 0x54e2)))
+(allow system_server ota_package_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server ota_package_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server system_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_data_file (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server packages_list_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server game_mode_intervention_list_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server keychain_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server keychain_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server keychain_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_userdir_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server apk_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apk_data_file (file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow system_server apk_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow system_server apk_tmp_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apk_tmp_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server vendor_keylayout_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server vendor_keylayout_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_keylayout_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_keychars_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server vendor_keychars_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_keychars_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_idc_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server vendor_idc_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_idc_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server input_device_config_prop (file (read getattr map open)))
+(allow system_server vendor_app_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server vendor_app_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_app_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_framework_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server vendor_framework_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_framework_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server apk_private_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apk_private_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server apk_private_tmp_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apk_private_tmp_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server asec_apk_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server asec_apk_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server asec_public_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server anr_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server anr_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server tombstoned_java_trace_socket (sock_file (write)))
+(allow system_server tombstoned (unix_stream_socket (connectto)))
+(allow system_server tombstoned (fd (use)))
+(allow system_server dumpstate (fifo_file (append)))
+(allow system_server incidentd (fifo_file (append)))
+(allow system_server incidentd (fifo_file (read)))
+(allow system_server incident_data_file (file (read)))
+(allow system_server prereboot_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server prereboot_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server perfetto_traces_data_file (file (read getattr)))
+(allow system_server perfetto (fd (use)))
+(allow system_server perfetto_exec (file (read getattr map execute open)))
+(allow system_server perfetto (process (transition)))
+(allow perfetto perfetto_exec (file (read getattr map execute open entrypoint)))
+(allow perfetto system_server (process (sigchld)))
+(dontaudit system_server perfetto (process (noatsecure)))
+(allow system_server perfetto (process (siginh rlimitinh)))
+(typetransition system_server perfetto_exec process perfetto)
+(allow system_server perfetto (fifo_file (read write)))
+(allow system_server perfetto_traces_profiling_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server perfetto_traces_profiling_data_file (file (ioctl read write getattr lock append map unlink open watch watch_reads)))
+(allow system_server perfetto_traces_data_file (dir (search)))
+(allow system_server backup_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server backup_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server dropbox_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server dropbox_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server heapdump_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server heapdump_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server adb_keys_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server adb_keys_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server appcompat_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server appcompat_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server emergency_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server emergency_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server network_watchlist_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server network_watchlist_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server radio_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server radio_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server systemkeys_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server systemkeys_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server textclassifier_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server textclassifier_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server tombstone_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server tombstone_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server vpn_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server vpn_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server wifi_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server wifi_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server staging_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server staging_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server staging_data_file (file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow system_server staging_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink link rename open watch watch_reads)))
+(allow system_server app_data_file_type (dir (read getattr search)))
+(allow system_server unlabeled (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server unlabeled (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server system_app_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server system_app_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server app_data_file_type (file (read write getattr append map)))
+(allow system_server media_rw_data_file (dir (read getattr open search)))
+(allow system_server media_rw_data_file (file (read write getattr append)))
+(allow system_server system_server (process (setfscreate)))
+(allow system_server apk_tmp_file (file (relabelfrom relabelto)))
+(allow system_server apk_tmp_file (dir (relabelfrom relabelto)))
+(allow system_server apk_private_tmp_file (file (relabelfrom relabelto)))
+(allow system_server apk_private_tmp_file (dir (relabelfrom relabelto)))
+(allow system_server apk_data_file (file (relabelfrom relabelto)))
+(allow system_server apk_data_file (dir (relabelfrom relabelto)))
+(allow system_server apk_private_data_file (file (relabelfrom relabelto)))
+(allow system_server apk_private_data_file (dir (relabelfrom relabelto)))
+(allow system_server staging_data_file (file (relabelfrom relabelto)))
+(allow system_server staging_data_file (dir (relabelfrom relabelto)))
+(allow system_server system_data_file (file (relabelfrom)))
+(allow system_server wallpaper_file (file (relabelto)))
+(allow system_server wallpaper_file (file (ioctl read write getattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_data_file (file (link)))
+(allow system_server wallpaper_file (file (link)))
+(allow system_server system_data_file (dir (relabelfrom)))
+(allow system_server shortcut_manager_icons (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server shortcut_manager_icons (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server ringtone_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server ringtone_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server icon_file (file (relabelto)))
+(allow system_server icon_file (file (ioctl read write getattr lock append map unlink open watch watch_reads)))
+(allow system_server system_data_file (dir (relabelfrom)))
+(allow system_server server_configurable_flags_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server server_configurable_flags_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server system_prop (property_service (set)))
+(allow system_server system_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server bootanim_system_prop (property_service (set)))
+(allow system_server bootanim_system_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server bluetooth_prop (property_service (set)))
+(allow system_server bluetooth_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server exported_system_prop (property_service (set)))
+(allow system_server exported_system_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server exported3_system_prop (property_service (set)))
+(allow system_server exported3_system_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server safemode_prop (property_service (set)))
+(allow system_server safemode_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server theme_prop (property_service (set)))
+(allow system_server theme_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server dhcp_prop (property_service (set)))
+(allow system_server dhcp_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server net_connectivity_prop (property_service (set)))
+(allow system_server net_connectivity_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server net_radio_prop (property_service (set)))
+(allow system_server net_radio_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server net_dns_prop (property_service (set)))
+(allow system_server net_dns_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server usb_control_prop (property_service (set)))
+(allow system_server usb_control_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server usb_prop (property_service (set)))
+(allow system_server usb_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server debug_prop (property_service (set)))
+(allow system_server debug_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server powerctl_prop (property_service (set)))
+(allow system_server powerctl_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server fingerprint_prop (property_service (set)))
+(allow system_server fingerprint_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_logging_prop (property_service (set)))
+(allow system_server device_logging_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server dumpstate_options_prop (property_service (set)))
+(allow system_server dumpstate_options_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server overlay_prop (property_service (set)))
+(allow system_server overlay_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server exported_overlay_prop (property_service (set)))
+(allow system_server exported_overlay_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server pm_prop (property_service (set)))
+(allow system_server pm_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server exported_pm_prop (property_service (set)))
+(allow system_server exported_pm_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server socket_hook_prop (property_service (set)))
+(allow system_server socket_hook_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server audio_prop (property_service (set)))
+(allow system_server audio_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server boot_status_prop (property_service (set)))
+(allow system_server boot_status_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server surfaceflinger_color_prop (property_service (set)))
+(allow system_server surfaceflinger_color_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server provisioned_prop (property_service (set)))
+(allow system_server provisioned_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server retaildemo_prop (property_service (set)))
+(allow system_server retaildemo_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server dmesgd_start_prop (property_service (set)))
+(allow system_server dmesgd_start_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server locale_prop (property_service (set)))
+(allow system_server locale_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server timezone_metadata_prop (property_service (set)))
+(allow system_server timezone_metadata_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server timezone_prop (property_service (set)))
+(allow system_server timezone_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server crashrecovery_prop (property_service (set)))
+(allow system_server crashrecovery_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server ctl_default_prop (property_service (set)))
+(allow system_server ctl_default_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server ctl_bugreport_prop (property_service (set)))
+(allow system_server ctl_bugreport_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server ctl_gsid_prop (property_service (set)))
+(allow system_server ctl_gsid_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server cppreopt_prop (property_service (set)))
+(allow system_server cppreopt_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_core_experiments_team_internal_prop (property_service (set)))
+(allow system_server device_config_core_experiments_team_internal_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_edgetpu_native_prop (property_service (set)))
+(allow system_server device_config_edgetpu_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_input_native_boot_prop (property_service (set)))
+(allow system_server device_config_input_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_netd_native_prop (property_service (set)))
+(allow system_server device_config_netd_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_nnapi_native_prop (property_service (set)))
+(allow system_server device_config_nnapi_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_activity_manager_native_boot_prop (property_service (set)))
+(allow system_server device_config_activity_manager_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_runtime_native_boot_prop (property_service (set)))
+(allow system_server device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_runtime_native_prop (property_service (set)))
+(allow system_server device_config_runtime_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_lmkd_native_prop (property_service (set)))
+(allow system_server device_config_lmkd_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_media_native_prop (property_service (set)))
+(allow system_server device_config_media_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_camera_native_prop (property_service (set)))
+(allow system_server device_config_camera_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_mglru_native_prop (property_service (set)))
+(allow system_server device_config_mglru_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_profcollect_native_boot_prop (property_service (set)))
+(allow system_server device_config_profcollect_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_statsd_native_prop (property_service (set)))
+(allow system_server device_config_statsd_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_statsd_native_boot_prop (property_service (set)))
+(allow system_server device_config_statsd_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_storage_native_boot_prop (property_service (set)))
+(allow system_server device_config_storage_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_swcodec_native_prop (property_service (set)))
+(allow system_server device_config_swcodec_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_sys_traced_prop (property_service (set)))
+(allow system_server device_config_sys_traced_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_window_manager_native_boot_prop (property_service (set)))
+(allow system_server device_config_window_manager_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_configuration_prop (property_service (set)))
+(allow system_server device_config_configuration_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_connectivity_prop (property_service (set)))
+(allow system_server device_config_connectivity_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_surface_flinger_native_boot_prop (property_service (set)))
+(allow system_server device_config_surface_flinger_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_aconfig_flags_prop (property_service (set)))
+(allow system_server device_config_aconfig_flags_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_vendor_system_native_prop (property_service (set)))
+(allow system_server device_config_vendor_system_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_vendor_system_native_boot_prop (property_service (set)))
+(allow system_server device_config_vendor_system_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_virtualization_framework_native_prop (property_service (set)))
+(allow system_server device_config_virtualization_framework_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_memory_safety_native_boot_prop (property_service (set)))
+(allow system_server device_config_memory_safety_native_boot_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_memory_safety_native_prop (property_service (set)))
+(allow system_server device_config_memory_safety_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_remote_key_provisioning_native_prop (property_service (set)))
+(allow system_server device_config_remote_key_provisioning_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server device_config_tethering_u_or_later_native_prop (property_service (set)))
+(allow system_server device_config_tethering_u_or_later_native_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server smart_idle_maint_enabled_prop (property_service (set)))
+(allow system_server smart_idle_maint_enabled_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server arm64_memtag_prop (property_service (set)))
+(allow system_server arm64_memtag_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server next_boot_prop (property_service (set)))
+(allow system_server next_boot_prop (file (read getattr map open)))
+(allow system_server device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow system_server device_config_runtime_native_prop (file (read getattr map open)))
+(allow system_server bootloader_boot_reason_prop (file (read getattr map open)))
+(allow system_server system_boot_reason_prop (file (read getattr map open)))
+(allow system_server boottime_prop (file (read getattr map open)))
+(allow system_server serialno_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server firstboot_prop (property_service (set)))
+(allow system_server firstboot_prop (file (read getattr map open)))
+(allow system_server audio_config_prop (file (read getattr map open)))
+(allow system_server media_config_prop (file (read getattr map open)))
+(allow system_server device_config_reset_performed_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server test_harness_prop (property_service (set)))
+(allow system_server test_harness_prop (file (read getattr map open)))
+(allow system_server gsid_prop (file (read getattr map open)))
+(allow system_server mock_ota_prop (file (read getattr map open)))
+(allow system_server apk_verity_prop (file (read getattr map open)))
+(allow system_server wifi_prop (file (read getattr map open)))
+(allow system_server incremental_prop (file (read getattr map open)))
+(allow system_server zram_config_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server zram_control_prop (property_service (set)))
+(allow system_server zram_control_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server dalvik_runtime_prop (property_service (set)))
+(allow system_server dalvik_runtime_prop (file (read getattr map open)))
+(allow system_server packagemanager_config_prop (file (read getattr map open)))
+(allow system_server net_464xlat_fromvendor_prop (file (read getattr map open)))
+(allow system_server hypervisor_prop (file (read getattr map open)))
+(allow system_server persist_wm_debug_prop (file (read getattr map open)))
+(allow system_server persist_sysui_builder_extras_prop (file (read getattr map open)))
+(allow system_server persist_sysui_ranking_update_prop (file (read getattr map open)))
+(allow system_server tuner_config_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server tuner_server_ctl_prop (property_service (set)))
+(allow system_server tuner_server_ctl_prop (file (read getattr map open)))
+(allow system_server traced_oome_heap_session_count_prop (file (read getattr map open)))
+(allow system_server sensors_config_prop (file (read getattr map open)))
+(allow system_server system_ndebug_socket (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_unsolzygote_socket (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server cache_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server cache_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server cache_recovery_file (dir (ioctl read write create getattr setattr lock relabelfrom rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server cache_file (file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow system_server cache_recovery_file (file (ioctl read write create getattr setattr lock relabelfrom append map unlink rename open watch watch_reads)))
+(allow system_server cache_file (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server cache_recovery_file (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server system_file (file (lock)))
+(allow system_server gps_control (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server appdomain (tcp_socket (read write getattr getopt setopt shutdown)))
+(allow system_server appdomain (udp_socket (read write getattr getopt setopt shutdown)))
+(allow system_server appdomain (fifo_file (read write getattr)))
+(allow system_server appdomain (unix_stream_socket (read write getattr)))
+(allow system_server cache_backup_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server cache_backup_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server cache_private_backup_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server cache_private_backup_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server usb_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server usb_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server fscklogs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server fscklogs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server fscklogs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server fscklogs (dir (write add_name remove_name)))
+(allow system_server fscklogs (file (rename)))
+(allow system_server zygote (unix_dgram_socket (write)))
+(allow system_server logcat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow system_server logdr_socket (sock_file (write)))
+(allow system_server logd (unix_stream_socket (connectto)))
+(allow system_server runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_lowmemorykiller (file (write getattr lock append map open)))
+(allow system_server pstorefs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server pstorefs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server sysfs_zram (dir (search)))
+(allow system_server sysfs_zram (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server kernel (security (read_policy)))
+(allow system_server system_server_service (service_manager (add find)))
+;;* lmx 952 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_305 system_server_service (service_manager (add)))
+;;* lme
+
+(allow system_server artd_service (service_manager (find)))
+(allow system_server artd_pre_reboot_service (service_manager (find)))
+(allow system_server audioserver_service (service_manager (find)))
+(allow system_server authorization_service (service_manager (find)))
+(allow system_server batteryproperties_service (service_manager (find)))
+(allow system_server cameraserver_service (service_manager (find)))
+(allow system_server compos_service (service_manager (find)))
+(allow system_server dataloader_manager_service (service_manager (find)))
+(allow system_server dexopt_chroot_setup_service (service_manager (find)))
+(allow system_server dnsresolver_service (service_manager (find)))
+(allow system_server drmserver_service (service_manager (find)))
+(allow system_server dumpstate_service (service_manager (find)))
+(allow system_server fingerprintd_service (service_manager (find)))
+(allow system_server gatekeeper_service (service_manager (find)))
+(allow system_server gpu_service (service_manager (find)))
+(allow system_server gsi_service (service_manager (find)))
+(allow system_server idmap_service (service_manager (find)))
+(allow system_server incident_service (service_manager (find)))
+(allow system_server incremental_service (service_manager (find)))
+(allow system_server installd_service (service_manager (find)))
+(allow system_server keystore_maintenance_service (service_manager (find)))
+(allow system_server keystore_metrics_service (service_manager (find)))
+(allow system_server keystore_service (service_manager (find)))
+(allow system_server mdns_service (service_manager (find)))
+(allow system_server mediaserver_service (service_manager (find)))
+(allow system_server mediametrics_service (service_manager (find)))
+(allow system_server mediaextractor_service (service_manager (find)))
+(allow system_server mediadrmserver_service (service_manager (find)))
+(allow system_server mediatuner_service (service_manager (find)))
+(allow system_server netd_service (service_manager (find)))
+(allow system_server nfc_service (service_manager (find)))
+(allow system_server ot_daemon_service (service_manager (find)))
+(allow system_server radio_service (service_manager (find)))
+(allow system_server stats_service (service_manager (find)))
+(allow system_server storaged_service (service_manager (find)))
+(allow system_server surfaceflinger_service (service_manager (find)))
+(allow system_server update_engine_service (service_manager (find)))
+(allow system_server virtual_camera_service (service_manager (find)))
+(allow system_server vold_service (service_manager (find)))
+(allow system_server wifinl80211_service (service_manager (find)))
+(allow system_server logd_service (service_manager (find)))
+(allow system_server batteryproperties_service (service_manager (add find)))
+;;* lmx 1001 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_305 batteryproperties_service (service_manager (add)))
+;;* lme
+
+(allow system_server keystore (keystore2 (add_auth change_password change_user clear_ns clear_uid get_last_auth_time lock pull_metrics reset unlock)))
+(allow system_server keystore (keystore2_key (delete get_info grant rebind update use use_dev_id)))
+(allow system_server wifi_key (keystore2_key (delete get_info rebind update use)))
+(allow system_server resume_on_reboot_key (keystore2_key (delete get_info rebind update use)))
+(allow system_server locksettings_key (keystore2_key (delete get_info rebind update use)))
+(allow system_server block_device (dir (search)))
+(allow system_server frp_block_device (blk_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allowx system_server frp_block_device (ioctl blk_file (0x1277 0x127d)))
+(allow system_server cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server cgroup (file (setattr)))
+(allow system_server cgroup_v2 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server cgroup_v2 (file (ioctl read getattr setattr lock map open watch watch_reads)))
+(allow system_server oemfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server oemfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server oemfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server mnt_user_file (dir (getattr search)))
+(allow system_server storage_file (dir (getattr search)))
+(allow system_server mnt_user_file (lnk_file (read getattr)))
+(allow system_server storage_file (lnk_file (read getattr)))
+(allow system_server sdcard_type (dir (getattr search)))
+(allow system_server fuse (dir (getattr search)))
+(allow system_server mnt_expand_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server fingerprintd_data_file (dir (ioctl read write getattr lock relabelto open watch watch_reads remove_name search rmdir)))
+(allow system_server fingerprintd_data_file (file (getattr unlink)))
+(allow system_server vold (fd (use)))
+(allow system_server fuse_device (chr_file (ioctl read write getattr)))
+(allow system_server app_fuse_file (file (read write getattr)))
+(allow system_server configfs (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server configfs (file (write create getattr unlink open)))
+(allow system_server adbd (unix_stream_socket (connectto)))
+(allow system_server adbd (fd (use)))
+(allow system_server adbd (unix_stream_socket (ioctl read write getattr getopt shutdown)))
+(allow system_server adbd_prop (file (read getattr map open)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server system_adbd_prop (property_service (set)))
+(allow system_server system_adbd_prop (file (read getattr map open)))
+(allow system_server toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allowx system_server system_data_file (ioctl file (0x6685)))
+(allowx system_server apk_data_file (ioctl file (0x6685)))
+(allowx system_server apk_tmp_file (ioctl file (0x6685)))
+(allowx system_server apex_system_server_data_file (ioctl file (0x6685)))
+(allowx system_server apk_data_file (ioctl file (0x6686)))
+(allowx system_server apk_tmp_file (ioctl file (0x6686)))
+(allowx system_server apk_tmp_file (ioctl file (0x6602)))
+(allow system_server postinstall (binder (call transfer)))
+(allow postinstall system_server (binder (transfer)))
+(allow system_server postinstall (fd (use)))
+(allow system_server postinstall (fifo_file (write)))
+(allow system_server update_engine (fd (use)))
+(allow system_server update_engine (fifo_file (write)))
+(allow system_server preloads_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow system_server preloads_data_file (dir (ioctl read write getattr lock open watch watch_reads remove_name search rmdir)))
+(allow system_server preloads_media_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow system_server preloads_media_file (dir (ioctl read write getattr lock open watch watch_reads remove_name search rmdir)))
+(allow system_server cgroup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server cgroup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server cgroup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server cgroup_v2 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server cgroup_v2 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server cgroup_v2 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server dmabuf_system_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server dmabuf_system_secure_heap_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_asound (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server proc_asound (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_asound (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_net_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server proc_net_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_net_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_qtaguid_stat (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server proc_qtaguid_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_qtaguid_stat (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_cmdline (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_loadavg (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_locks (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_pagetypeinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_pipe_conf (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_uid_cputime_showstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_uid_io_stats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_uid_time_in_state (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_uid_concurrent_active_time (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_uid_concurrent_policy_time (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_version (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_vmallocinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_uid_time_in_state (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server proc_uid_cpupower (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server debugfs_tracing_instances (dir (search)))
+(allow system_server debugfs_wifi_tracing (dir (search)))
+(allow system_server debugfs_wifi_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server debugfs_bootreceiver_tracing (dir (search)))
+(allow system_server debugfs_bootreceiver_tracing (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server debugfs_tracing (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server fs_bpf (dir (search)))
+(allow system_server fs_bpf_net_shared (dir (search)))
+(allow system_server fs_bpf_netd_readonly (dir (search)))
+(allow system_server fs_bpf_netd_shared (dir (search)))
+(allow system_server fs_bpf (file (read write getattr)))
+(allow system_server fs_bpf_net_shared (file (read write getattr)))
+(allow system_server fs_bpf_netd_readonly (file (read write getattr)))
+(allow system_server fs_bpf_netd_shared (file (read write getattr)))
+(allow system_server bpfloader (bpf (map_read map_write prog_run)))
+(allow system_server self (key_socket (create)))
+(dontaudit system_server self (key_socket (getopt)))
+(allow system_server clatd_exec (file (read getattr map execute open)))
+(allow system_server clatd (process (transition)))
+(allow clatd clatd_exec (file (read getattr map execute open entrypoint)))
+(allow clatd system_server (process (sigchld)))
+(dontaudit system_server clatd (process (noatsecure)))
+(allow system_server clatd (process (siginh rlimitinh)))
+(typetransition system_server clatd_exec process clatd)
+(allow system_server clatd (process (sigkill signal)))
+(allow system_server user_profile_root_file (dir (getattr search)))
+(allow system_server user_profile_data_file (dir (getattr search)))
+(allow system_server user_profile_data_file (file (read getattr open)))
+(allow system_server profman_dump_data_file (file (write create getattr setattr lock append map open)))
+(allow system_server profman_dump_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server system_jvmti_agent_prop (file (read getattr map open)))
+(allow system_server functionfs (dir (search)))
+(allow system_server functionfs (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server time_prop (file (read getattr map open)))
+(allow system_server system_lmk_prop (file (read getattr map open)))
+(allow system_server wifi_config_prop (file (read getattr map open)))
+(allowx system_server binder_device (ioctl chr_file ((range 0x620e 0x620f))))
+(allow system_server framework_watchdog_config_prop (file (read getattr map open)))
+(allow system_server font_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server font_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allowx system_server font_data_file (ioctl file ((range 0x6685 0x6686))))
+(allow system_server qemu_hw_prop (file (read getattr map open)))
+;;* lmx 1282 system/sepolicy/private/system_server.te
+
+(neverallow system_server sdcard_type (dir (read write open)))
+(neverallow system_server fuse (dir (read write open)))
+;;* lme
+
+;;* lmx 1283 system/sepolicy/private/system_server.te
+
+(neverallow system_server sdcard_type (file (ioctl read write getattr lock append map open watch watch_reads)))
+(neverallow system_server fuse (file (ioctl read write getattr lock append map open watch watch_reads)))
+;;* lme
+
+;;* lmx 1293 system/sepolicy/private/system_server.te
+
+(neverallow system_server base_typeattr_953 (file (create unlink link open)))
+;;* lme
+
+;;* lmx 1304 system/sepolicy/private/system_server.te
+
+(neverallow system_server base_typeattr_954 (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 1308 system/sepolicy/private/system_server.te
+
+(neverallow system_server base_typeattr_955 (process (transition)))
+;;* lme
+
+;;* lmx 1309 system/sepolicy/private/system_server.te
+
+(neverallow system_server base_typeattr_224 (process (dyntransition)))
+;;* lme
+
+;;* lmx 1312 system/sepolicy/private/system_server.te
+
+(neverallow system_server perfetto_traces_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 1315 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_956 system_ndebug_socket (sock_file (write open)))
+;;* lme
+
+;;* lmx 1325 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_957 system_unsolzygote_socket (sock_file (write open)))
+;;* lme
+
+;;* lmx 1355 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_958 device_config_activity_manager_native_boot_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_input_native_boot_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_netd_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_aconfig_flags_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_edgetpu_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_media_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_nnapi_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_runtime_native_boot_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_runtime_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_surface_flinger_native_boot_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_core_experiments_team_internal_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_lmkd_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_mglru_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_remote_key_provisioning_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_storage_native_boot_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_sys_traced_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_window_manager_native_boot_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_connectivity_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_swcodec_native_prop (property_service (set)))
+(neverallow base_typeattr_958 device_config_tethering_u_or_later_native_prop (property_service (set)))
+(neverallow base_typeattr_958 next_boot_prop (property_service (set)))
+;;* lme
+
+;;* lmx 1362 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 tuner_server_ctl_prop (property_service (set)))
+;;* lme
+
+;;* lmx 1368 system/sepolicy/private/system_server.te
+
+(neverallow system_server dex2oat_exec (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 1373 system/sepolicy/private/system_server.te
+
+(neverallow system_server data_file_type (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 1380 system/sepolicy/private/system_server.te
+
+(neverallow system_server base_typeattr_959 (blk_file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 1381 system/sepolicy/private/system_server.te
+
+(neverallow system_server base_typeattr_960 (blk_file (ioctl read getattr lock map open watch watch_reads)))
+;;* lme
+
+;;* lmx 1389 system/sepolicy/private/system_server.te
+
+(neverallow system_server self (process (execmem)))
+;;* lme
+
+;;* lmx 1392 system/sepolicy/private/system_server.te
+
+(neverallow system_server ashmem_device (chr_file (execute)))
+(neverallow system_server ashmem_libcutils_device (chr_file (execute)))
+;;* lme
+
+;;* lmx 1395 system/sepolicy/private/system_server.te
+
+(neverallow system_server system_server_tmpfs (file (execute)))
+;;* lme
+
+(allow system_server system_server_startup (fd (use)))
+(allow system_server system_server_startup_tmpfs (file (read write map)))
+(allow system_server system_server_startup (unix_dgram_socket (write)))
+(allow system_server apex_service (service_manager (find)))
+(allow system_server apexd (binder (call)))
+(allow system_server apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server system_suspend_control_internal_service (service_manager (find)))
+(allow system_server system_suspend_control_service (service_manager (find)))
+(allow system_server system_suspend (binder (call transfer)))
+(allow system_suspend system_server (binder (transfer)))
+(allow system_server system_suspend (fd (use)))
+(allow system_suspend system_server (binder (call transfer)))
+(allow system_server system_suspend (binder (transfer)))
+(allow system_suspend system_server (fd (use)))
+(allow system_server sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server self (capability2 (block_suspend)))
+(allow system_server self (cap2_userns (block_suspend)))
+(allow system_server system_suspend_server (binder (call transfer)))
+(allow system_suspend_server system_server (binder (transfer)))
+(allow system_server system_suspend_server (fd (use)))
+(allow system_server system_suspend_hwservice (hwservice_manager (find)))
+(allow system_server hwservicemanager (binder (call transfer)))
+(allow hwservicemanager system_server (binder (call transfer)))
+(allow hwservicemanager system_server (dir (search)))
+(allow hwservicemanager system_server (file (read map open)))
+(allow hwservicemanager system_server (process (getattr)))
+(allow system_server hwservicemanager_prop (file (read getattr map open)))
+(allow system_server hidl_manager_hwservice (hwservice_manager (find)))
+(allow system_server hal_system_suspend_service (service_manager (find)))
+(allow system_server servicemanager (binder (call transfer)))
+(allow servicemanager system_server (binder (call transfer)))
+(allow servicemanager system_server (dir (search)))
+(allow servicemanager system_server (file (read open)))
+(allow servicemanager system_server (process (getattr)))
+(allow system_server apex_data_file (dir (getattr search)))
+(allow system_server apex_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server vendor_apex_file (dir (getattr search)))
+(allow system_server vendor_apex_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server apex_module_data_file (dir (getattr search)))
+(allow system_server apex_system_server_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apex_system_server_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server apex_tethering_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apex_tethering_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server apex_appsearch_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apex_permission_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apex_scheduling_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apex_wifi_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server apex_appsearch_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server apex_permission_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server apex_scheduling_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server apex_wifi_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server metadata_file (dir (search)))
+(allow system_server password_slot_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server password_slot_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server userspace_reboot_metadata_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server userspace_reboot_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server staged_install_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server staged_install_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server watchdog_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server watchdog_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server aconfig_storage_flags_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server aconfig_storage_flags_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server repair_mode_metadata_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server repair_mode_metadata_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server gsi_persistent_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server gsi_persistent_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow system_server odrefresh_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow system_server odrefresh_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow system_server surfaceflinger_exec (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server userspace_reboot_log_prop (property_service (set)))
+(allow system_server userspace_reboot_log_prop (file (read getattr map open)))
+;;* lmx 1499 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_261 system_jvmti_agent_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow system_server proc_pressure_mem (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_server proc_pressure_cpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server proc_pressure_io (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 1508 system/sepolicy/private/system_server.te
+
+(neverallow system_server dexoptanalyzer_exec (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 1511 system/sepolicy/private/system_server.te
+
+(neverallow system_server base_typeattr_305 (process (ptrace)))
+;;* lme
+
+;;* lmx 1515 system/sepolicy/private/system_server.te
+
+(neverallow system_server system_server (capability (sys_resource)))
+(neverallow system_server system_server (cap_userns (sys_resource)))
+;;* lme
+
+;;* lmx 1518 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 password_slot_metadata_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 1523 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 password_slot_metadata_file (file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_308 password_slot_metadata_file (lnk_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_308 password_slot_metadata_file (sock_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_308 password_slot_metadata_file (fifo_file (ioctl read write create setattr lock relabelfrom append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 1524 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 password_slot_metadata_file (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+(neverallow base_typeattr_308 password_slot_metadata_file (lnk_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_308 password_slot_metadata_file (sock_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+(neverallow base_typeattr_308 password_slot_metadata_file (fifo_file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 1527 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 userspace_reboot_metadata_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 1528 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 userspace_reboot_metadata_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 1531 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_961 aconfig_storage_flags_metadata_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 1532 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_961 aconfig_storage_flags_metadata_file (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server binder_cache_system_server_prop (property_service (set)))
+(allow system_server binder_cache_system_server_prop (file (read getattr map open)))
+;;* lmx 1537 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 binder_cache_system_server_prop (property_service (set)))
+;;* lme
+
+(allow system_server self (perf_event (open cpu kernel write)))
+;;* lmx 1542 system/sepolicy/private/system_server.te
+
+(neverallow system_server self (perf_event (tracepoint read)))
+;;* lme
+
+(allow system_server shutdown_checkpoints_system_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow system_server shutdown_checkpoints_system_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+;;* lmx 1549 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 socket_hook_prop (property_service (set)))
+;;* lme
+
+;;* lmx 1551 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 boot_status_prop (property_service (set)))
+;;* lme
+
+;;* lmx 1559 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_261 wifi_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 1568 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_962 sysfs_uhid (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 1574 system/sepolicy/private/system_server.te
+
+(neverallowx base_typeattr_305 binder_device (ioctl chr_file ((range 0x620e 0x620f))))
+;;* lme
+
+;;* lmx 1577 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 font_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+;;* lmx 1578 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 font_data_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+(allow system_server system_font_fallback_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server dalvik_dynamic_config_prop (property_service (set)))
+(allow system_server dalvik_dynamic_config_prop (file (read getattr map open)))
+(allow system_server binderfs_logs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server binderfs_logs_stats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_server property_socket (sock_file (write)))
+(allow system_server init (unix_stream_socket (connectto)))
+(allow system_server game_manager_config_prop (property_service (set)))
+(allow system_server game_manager_config_prop (file (read getattr map open)))
+(allow system_server threadnetwork_config_prop (file (read getattr map open)))
+;;* lmx 1603 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_261 threadnetwork_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow system_server pm_archiving_enabled_prop (file (read getattr map open)))
+;;* lmx 1610 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_308 crashrecovery_prop (property_service (set)))
+;;* lme
+
+;;* lmx 1611 system/sepolicy/private/system_server.te
+
+(neverallow base_typeattr_743 crashrecovery_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(typetransition system_server_startup tmpfs file system_server_startup_tmpfs)
+(allow system_server_startup system_server_startup_tmpfs (file (read write getattr map)))
+(allow system_server_startup self (process (execmem)))
+(allow system_server_startup system_server_startup_tmpfs (file (read write map execute open)))
+(allow system_server_startup apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_server_startup apex_art_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow system_server_startup self (process (setcurrent)))
+(allow system_server_startup system_server (process (dyntransition)))
+(allow system_server_startup zygote (process (sigchld)))
+(allow system_server_startup device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow system_server_startup device_config_runtime_native_prop (file (read getattr map open)))
+(allow init system_suspend_exec (file (read getattr map execute open)))
+(allow init system_suspend (process (transition)))
+(allow system_suspend system_suspend_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init system_suspend (process (noatsecure)))
+(allow init system_suspend (process (siginh rlimitinh)))
+(typetransition init system_suspend_exec process system_suspend)
+(allow system_suspend servicemanager (binder (call transfer)))
+(allow servicemanager system_suspend (binder (call transfer)))
+(allow servicemanager system_suspend (dir (search)))
+(allow servicemanager system_suspend (file (read open)))
+(allow servicemanager system_suspend (process (getattr)))
+(allow system_suspend system_suspend_control_service (service_manager (add find)))
+;;* lmx 8 system/sepolicy/private/system_suspend.te
+
+(neverallow base_typeattr_963 system_suspend_control_service (service_manager (add)))
+;;* lme
+
+(allow system_suspend hal_system_suspend_service (service_manager (add find)))
+;;* lmx 10 system/sepolicy/private/system_suspend.te
+
+(neverallow base_typeattr_963 hal_system_suspend_service (service_manager (add)))
+;;* lme
+
+(allow system_suspend sysfs_power (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_suspend sysfs_suspend_stats (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_suspend sysfs_suspend_stats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_suspend sysfs_suspend_stats (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_suspend sysfs_wakeup (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_suspend sysfs_wakeup (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_suspend sysfs_wakeup (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_suspend sysfs_wakeup_reasons (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow system_suspend sysfs_wakeup_reasons (file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_suspend sysfs_wakeup_reasons (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow system_suspend sysfs_type (dir (search)))
+(allow system_suspend suspend_prop (file (read getattr map open)))
+(allow system_suspend bluetooth (binder (call)))
+(allow system_suspend dumpstate (fd (use)))
+(allow system_suspend dumpstate (fifo_file (write)))
+(allow init sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow init self (capability2 (block_suspend)))
+(allow init self (cap2_userns (block_suspend)))
+(allow system_suspend sysfs_wake_lock (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow system_suspend self (capability2 (block_suspend)))
+(allow system_suspend self (cap2_userns (block_suspend)))
+(allow init sysfs_sync_on_suspend (file (write lock append map open)))
+;;* lmx 56 system/sepolicy/private/system_suspend.te
+
+(neverallow base_typeattr_964 system_suspend_control_service (service_manager (find)))
+;;* lme
+
+(allow init tombstoned_exec (file (read getattr map execute open)))
+(allow init tombstoned (process (transition)))
+(allow tombstoned tombstoned_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init tombstoned (process (noatsecure)))
+(allow init tombstoned (process (siginh rlimitinh)))
+(typetransition init tombstoned_exec process tombstoned)
+(allow tombstoned tombstone_config_prop (file (read getattr map open)))
+;;* lmx 13 system/sepolicy/private/tombstoned.te
+
+(neverallow base_typeattr_965 tombstone_config_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow init toolbox_exec (file (read getattr map execute open)))
+(allow init toolbox (process (transition)))
+(allow toolbox toolbox_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init toolbox (process (noatsecure)))
+(allow init toolbox (process (siginh rlimitinh)))
+(typetransition init toolbox_exec process toolbox)
+(allow toolbox virtualizationservice_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search rmdir)))
+(allow toolbox virtualizationservice_data_file (file (getattr unlink)))
+(dontaudit toolbox virtualizationservice_data_file (dir (setattr)))
+(allow init traced_exec (file (read getattr map execute open)))
+(allow init traced (process (transition)))
+(allow traced traced_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init traced (process (noatsecure)))
+(allow init traced (process (siginh rlimitinh)))
+(typetransition init traced_exec process traced)
+(typetransition traced tmpfs file traced_tmpfs)
+(allow traced traced_tmpfs (file (read write getattr map)))
+(allow traced self (capability (sys_nice)))
+(allow traced self (cap_userns (sys_nice)))
+(allow traced perfetto (fd (use)))
+(allow traced shell (fd (use)))
+(allow traced shell (fifo_file (read write)))
+(allow traced perfetto_traces_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow traced perfetto_traces_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow traced traceur_app (fd (use)))
+(allow traced trace_data_file (file (read write)))
+(allow traced tracingproxy_service (service_manager (find)))
+(allow traced servicemanager (binder (call transfer)))
+(allow servicemanager traced (binder (call transfer)))
+(allow servicemanager traced (dir (search)))
+(allow servicemanager traced (file (read open)))
+(allow servicemanager traced (process (getattr)))
+(allow traced system_server (binder (call transfer)))
+(allow system_server traced (binder (transfer)))
+(allow traced system_server (fd (use)))
+(allow traced appdomain_tmpfs (file (read write getattr map)))
+(allow traced surfaceflinger_tmpfs (file (read write getattr map)))
+(allow traced heapprofd_tmpfs (file (read write getattr map)))
+(allow traced traced_probes_tmpfs (file (read write getattr map)))
+(allow traced property_socket (sock_file (write)))
+(allow traced init (unix_stream_socket (connectto)))
+(allow traced debug_prop (property_service (set)))
+(allow traced debug_prop (file (read getattr map open)))
+(allow traced property_socket (sock_file (write)))
+(allow traced init (unix_stream_socket (connectto)))
+(allow traced system_trace_prop (property_service (set)))
+(allow traced system_trace_prop (file (read getattr map open)))
+(allow traced property_socket (sock_file (write)))
+(allow traced init (unix_stream_socket (connectto)))
+(allow traced traced_lazy_prop (property_service (set)))
+(allow traced traced_lazy_prop (file (read getattr map open)))
+(allow traced property_socket (sock_file (write)))
+(allow traced init (unix_stream_socket (connectto)))
+(allow traced traced_oome_heap_session_count_prop (property_service (set)))
+(allow traced traced_oome_heap_session_count_prop (file (read getattr map open)))
+(allow traced statsdw_socket (sock_file (write)))
+(allow traced statsd (unix_dgram_socket (sendto)))
+;;* lmx 81 system/sepolicy/private/traced.te
+
+(neverallow traced self (process (execmem)))
+;;* lme
+
+;;* lmx 84 system/sepolicy/private/traced.te
+
+(neverallow traced dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 87 system/sepolicy/private/traced.te
+
+(neverallow traced domain (process (ptrace)))
+;;* lme
+
+;;* lmx 103 system/sepolicy/private/traced.te
+
+(neverallow traced base_typeattr_966 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 104 system/sepolicy/private/traced.te
+
+(neverallow traced system_data_file (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 110 system/sepolicy/private/traced.te
+
+(neverallow traced base_typeattr_967 (file (ioctl read create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 113 system/sepolicy/private/traced.te
+
+(neverallow base_typeattr_223 traced (process (transition)))
+;;* lme
+
+;;* lmx 114 system/sepolicy/private/traced.te
+
+(neverallow base_typeattr_224 traced (process (dyntransition)))
+;;* lme
+
+;;* lmx 125 system/sepolicy/private/traced.te
+
+(neverallow base_typeattr_968 tracingproxy_service (service_manager (find)))
+;;* lme
+
+(allow init traced_perf_exec (file (read getattr map execute open)))
+(allow init traced_perf (process (transition)))
+(allow traced_perf traced_perf_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init traced_perf (process (noatsecure)))
+(allow init traced_perf (process (siginh rlimitinh)))
+(typetransition init traced_perf_exec process traced_perf)
+(allow traced_perf traced (fd (use)))
+(allow traced_perf traced_tmpfs (file (read write getattr map)))
+(allow traced_perf traced_producer_socket (sock_file (write)))
+(allow traced_perf traced (unix_stream_socket (connectto)))
+(allow traced traced_perf (fd (use)))
+(allow traced_perf self (perf_event (open cpu kernel tracepoint read write)))
+(allow traced_perf self (capability (dac_read_search kill)))
+(allow traced_perf packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf nativetest_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf nativetest_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf nativetest_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf system_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf system_file_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf system_file_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf apk_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf apk_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf dalvikcache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf dalvikcache_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf vendor_file_type (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf vendor_file_type (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf vendor_file_type (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf apex_art_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf apex_art_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf apex_module_data_file (dir (getattr search)))
+(allow traced_perf proc_kallsyms (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_perf debugfs_tracing (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_perf debugfs_tracing (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit traced_perf domain (dir (getattr open search)))
+(dontaudit traced_perf domain (process (signal)))
+;;* lmx 61 system/sepolicy/private/traced_perf.te
+
+(neverallow traced_perf app_data_file_type (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 65 system/sepolicy/private/traced_perf.te
+
+(neverallow traced_perf hal_configstore_server (file (read)))
+(neverallow traced_perf apexd (file (read)))
+(neverallow traced_perf app_zygote (file (read)))
+(neverallow traced_perf bpfloader (file (read)))
+(neverallow traced_perf init (file (read)))
+(neverallow traced_perf kernel (file (read)))
+(neverallow traced_perf keystore (file (read)))
+(neverallow traced_perf llkd (file (read)))
+(neverallow traced_perf logd (file (read)))
+(neverallow traced_perf ueventd (file (read)))
+(neverallow traced_perf vendor_init (file (read)))
+(neverallow traced_perf vold (file (read)))
+(neverallow traced_perf webview_zygote (file (read)))
+(neverallow traced_perf zygote (file (read)))
+;;* lme
+
+;;* lmx 65 system/sepolicy/private/traced_perf.te
+
+(neverallow traced_perf hal_configstore_server (process (signal)))
+(neverallow traced_perf apexd (process (signal)))
+(neverallow traced_perf app_zygote (process (signal)))
+(neverallow traced_perf bpfloader (process (signal)))
+(neverallow traced_perf init (process (signal)))
+(neverallow traced_perf kernel (process (signal)))
+(neverallow traced_perf keystore (process (signal)))
+(neverallow traced_perf llkd (process (signal)))
+(neverallow traced_perf logd (process (signal)))
+(neverallow traced_perf ueventd (process (signal)))
+(neverallow traced_perf vendor_init (process (signal)))
+(neverallow traced_perf vold (process (signal)))
+(neverallow traced_perf webview_zygote (process (signal)))
+(neverallow traced_perf zygote (process (signal)))
+;;* lme
+
+(allow init traced_probes_exec (file (read getattr map execute open)))
+(allow init traced_probes (process (transition)))
+(allow traced_probes traced_probes_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init traced_probes (process (noatsecure)))
+(allow init traced_probes (process (siginh rlimitinh)))
+(typetransition init traced_probes_exec process traced_probes)
+(typetransition traced_probes tmpfs file traced_probes_tmpfs)
+(allow traced_probes traced_probes_tmpfs (file (read write getattr map)))
+(allow traced_probes traced (fd (use)))
+(allow traced_probes traced_tmpfs (file (read write getattr map)))
+(allow traced_probes traced_producer_socket (sock_file (write)))
+(allow traced_probes traced (unix_stream_socket (connectto)))
+(allow traced traced_probes (fd (use)))
+(allow traced_probes debugfs_tracing (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_probes debugfs_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow traced_probes debugfs_trace_marker (file (getattr)))
+(allow traced_probes debugfs_tracing_printk_formats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes debugfs_tracing_instances (dir (search)))
+(allow traced_probes debugfs_mm_events_tracing (dir (search)))
+(allow traced_probes debugfs_mm_events_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow traced_probes self (capability (sys_nice)))
+(allow traced_probes self (cap_userns (sys_nice)))
+(allow traced_probes domain (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_probes domain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes domain (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_kallsyms (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes packages_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes game_mode_intervention_list_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes kmsg_device (chr_file (write)))
+(allow traced_probes system_file (dir (read open)))
+(allow traced_probes self (capability (dac_read_search)))
+(allow traced_probes self (cap_userns (dac_read_search)))
+(allow traced_probes apk_data_file (dir (read getattr open search)))
+(allow traced_probes apex_module_data_file (dir (read getattr open search)))
+(allow traced_probes apex_art_data_file (dir (read getattr open search)))
+(allow traced_probes dalvikcache_data_file (dir (read getattr open search)))
+(allow traced_probes system_app_data_file (dir (read getattr open search)))
+(allow traced_probes backup_data_file (dir (read getattr open search)))
+(allow traced_probes bootstat_data_file (dir (read getattr open search)))
+(allow traced_probes update_engine_data_file (dir (read getattr open search)))
+(allow traced_probes update_engine_log_data_file (dir (read getattr open search)))
+(allow traced_probes user_profile_root_file (dir (read getattr open search)))
+(allow traced_probes user_profile_data_file (dir (read getattr open search)))
+(allow traced_probes atrace_exec (file (read getattr map execute open)))
+(allow traced_probes atrace (process (transition)))
+(allow atrace atrace_exec (file (read getattr map execute open entrypoint)))
+(allow atrace traced_probes (process (sigchld)))
+(dontaudit traced_probes atrace (process (noatsecure)))
+(allow traced_probes atrace (process (siginh rlimitinh)))
+(typetransition traced_probes atrace_exec process atrace)
+(allow traced_probes atrace (process (sigkill)))
+(allow traced_probes proc_buddyinfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_meminfo (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_pressure_cpu (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_pressure_io (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_pressure_mem (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_stat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_vmstat (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes sysfs_devfreq_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traced_probes sysfs_devfreq_cur (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes proc_diskstats (file (ioctl read getattr lock map open watch watch_reads)))
+(allow traced_probes statsdw_socket (sock_file (write)))
+(allow traced_probes statsd (unix_dgram_socket (sendto)))
+(allow traced_probes statsd (binder (call transfer)))
+(allow statsd traced_probes (binder (transfer)))
+(allow traced_probes statsd (fd (use)))
+(allow traced_probes stats_service (service_manager (find)))
+;;* lmx 121 system/sepolicy/private/traced_probes.te
+
+(neverallow traced_probes self (process (execmem)))
+;;* lme
+
+;;* lmx 124 system/sepolicy/private/traced_probes.te
+
+(neverallow traced_probes dev_type (blk_file (read write)))
+;;* lme
+
+;;* lmx 127 system/sepolicy/private/traced_probes.te
+
+(neverallow traced_probes domain (process (ptrace)))
+;;* lme
+
+;;* lmx 152 system/sepolicy/private/traced_probes.te
+
+(neverallow traced_probes base_typeattr_969 (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 153 system/sepolicy/private/traced_probes.te
+
+(neverallow traced_probes system_data_file (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 159 system/sepolicy/private/traced_probes.te
+
+(neverallow traced_probes base_typeattr_970 (file (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 162 system/sepolicy/private/traced_probes.te
+
+(neverallow base_typeattr_223 traced_probes (process (transition)))
+;;* lme
+
+;;* lmx 163 system/sepolicy/private/traced_probes.te
+
+(neverallow base_typeattr_224 traced_probes (process (dyntransition)))
+;;* lme
+
+(typetransition traceur_app tmpfs file appdomain_tmpfs)
+(allow traceur_app traceur_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su traceur_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 3 system/sepolicy/private/traceur_app.te
+
+(neverallow base_typeattr_971 traceur_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow traceur_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 3 system/sepolicy/private/traceur_app.te
+
+(neverallow base_typeattr_972 base_typeattr_971 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/traceur_app.te
+
+(neverallow base_typeattr_973 traceur_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 3 system/sepolicy/private/traceur_app.te
+
+(neverallow base_typeattr_974 traceur_app (process (ptrace)))
+;;* lme
+
+(allow traceur_app debugfs_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow traceur_app debugfs_tracing_debug (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow traceur_app trace_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow traceur_app trace_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow traceur_app wm_trace_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow traceur_app wm_trace_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow traceur_app atrace_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow traceur_app perfetto_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow traceur_app traced_consumer_socket (sock_file (write)))
+(allow traceur_app traced (unix_stream_socket (connectto)))
+(dontaudit traceur_app debugfs_tracing_debug (file (audit_access)))
+(allow traceur_app property_socket (sock_file (write)))
+(allow traceur_app init (unix_stream_socket (connectto)))
+(allow traceur_app debug_prop (property_service (set)))
+(allow traceur_app debug_prop (file (read getattr map open)))
+(typetransition ueventd tmpfs file ueventd_tmpfs)
+(allow ueventd ueventd_tmpfs (file (read write getattr map)))
+(allow ueventd property_socket (sock_file (write)))
+(allow ueventd init (unix_stream_socket (connectto)))
+(allow ueventd cold_boot_done_prop (property_service (set)))
+(allow ueventd cold_boot_done_prop (file (read getattr map open)))
+(allow init uncrypt_exec (file (read getattr map execute open)))
+(allow init uncrypt (process (transition)))
+(allow uncrypt uncrypt_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init uncrypt (process (noatsecure)))
+(allow init uncrypt (process (siginh rlimitinh)))
+(typetransition init uncrypt_exec process uncrypt)
+(allow uncrypt property_socket (sock_file (write)))
+(allow uncrypt init (unix_stream_socket (connectto)))
+(allow uncrypt powerctl_prop (property_service (set)))
+(allow uncrypt powerctl_prop (file (read getattr map open)))
+(typetransition untrusted_app tmpfs file appdomain_tmpfs)
+(allow untrusted_app untrusted_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su untrusted_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 13 system/sepolicy/private/untrusted_app.te
+
+(neverallow base_typeattr_975 untrusted_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow untrusted_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 13 system/sepolicy/private/untrusted_app.te
+
+(neverallow base_typeattr_976 base_typeattr_975 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app.te
+
+(neverallow base_typeattr_977 untrusted_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app.te
+
+(neverallow base_typeattr_978 untrusted_app (process (ptrace)))
+;;* lme
+
+(allow untrusted_app sdk_sandbox_data_file (fd (use)))
+(allow untrusted_app sdk_sandbox_data_file (file (write)))
+;;* lmx 23 system/sepolicy/private/untrusted_app.te
+
+(neverallow untrusted_app sdk_sandbox_data_file (file (create open)))
+;;* lme
+
+(typetransition untrusted_app_25 tmpfs file appdomain_tmpfs)
+(allow untrusted_app_25 untrusted_app_25_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su untrusted_app_25_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_25.te
+
+(neverallow base_typeattr_979 untrusted_app_25_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow untrusted_app_25 appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_25.te
+
+(neverallow base_typeattr_980 base_typeattr_979 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_25.te
+
+(neverallow base_typeattr_981 untrusted_app_25 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_25.te
+
+(neverallow base_typeattr_982 untrusted_app_25 (process (ptrace)))
+;;* lme
+
+(allow untrusted_app_25 proc_misc (file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_25 proc_tty_drivers (file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_25 apk_data_file (file (execmod)))
+(allow untrusted_app_25 app_data_file (file (execmod)))
+(allow untrusted_app_25 asec_public_file (file (execmod)))
+(allow untrusted_app_25 app_data_file (file (execute_no_trans)))
+(auditallow untrusted_app_25 app_data_file (file (execute execute_no_trans)))
+(allow untrusted_app_25 dex2oat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow untrusted_app_25 ashmem_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(auditallow untrusted_app_25 ashmem_device (chr_file (open)))
+(allow untrusted_app_25 mnt_sdcard_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_25 self (netlink_route_socket (nlmsg_getneigh)))
+(auditallow untrusted_app_25 self (netlink_route_socket (nlmsg_getneigh)))
+(allow untrusted_app_25 mdnsd_socket (sock_file (write)))
+(allow untrusted_app_25 mdnsd (unix_stream_socket (connectto)))
+(allow untrusted_app_25 apk_data_file (dir (watch watch_reads)))
+(allow untrusted_app_25 apk_data_file (file (watch watch_reads)))
+(typetransition untrusted_app_27 tmpfs file appdomain_tmpfs)
+(allow untrusted_app_27 untrusted_app_27_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su untrusted_app_27_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_27.te
+
+(neverallow base_typeattr_983 untrusted_app_27_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow untrusted_app_27 appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_27.te
+
+(neverallow base_typeattr_984 base_typeattr_983 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_27.te
+
+(neverallow base_typeattr_985 untrusted_app_27 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_27.te
+
+(neverallow base_typeattr_986 untrusted_app_27 (process (ptrace)))
+;;* lme
+
+(allow untrusted_app_27 apk_data_file (file (execmod)))
+(allow untrusted_app_27 app_data_file (file (execmod)))
+(allow untrusted_app_27 asec_public_file (file (execmod)))
+(allow untrusted_app_27 app_data_file (file (execute_no_trans)))
+(auditallow untrusted_app_27 app_data_file (file (execute execute_no_trans)))
+(allow untrusted_app_27 dex2oat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow untrusted_app_27 ashmem_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(auditallow untrusted_app_27 ashmem_device (chr_file (open)))
+(allow untrusted_app_27 mnt_sdcard_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_27 self (netlink_route_socket (nlmsg_getneigh)))
+(auditallow untrusted_app_27 self (netlink_route_socket (nlmsg_getneigh)))
+(allow untrusted_app_27 mdnsd_socket (sock_file (write)))
+(allow untrusted_app_27 mdnsd (unix_stream_socket (connectto)))
+(allow untrusted_app_27 apk_data_file (dir (watch watch_reads)))
+(allow untrusted_app_27 apk_data_file (file (watch watch_reads)))
+(typetransition untrusted_app_29 tmpfs file appdomain_tmpfs)
+(allow untrusted_app_29 untrusted_app_29_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su untrusted_app_29_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_29.te
+
+(neverallow base_typeattr_987 untrusted_app_29_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow untrusted_app_29 appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_29.te
+
+(neverallow base_typeattr_988 base_typeattr_987 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_29.te
+
+(neverallow base_typeattr_989 untrusted_app_29 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_29.te
+
+(neverallow base_typeattr_990 untrusted_app_29 (process (ptrace)))
+;;* lme
+
+(allow untrusted_app_29 self (netlink_route_socket (nlmsg_getneigh)))
+(auditallow untrusted_app_29 self (netlink_route_socket (nlmsg_getneigh)))
+(allow untrusted_app_29 mdnsd_socket (sock_file (write)))
+(allow untrusted_app_29 mdnsd (unix_stream_socket (connectto)))
+(allow untrusted_app_29 apk_data_file (dir (watch watch_reads)))
+(allow untrusted_app_29 apk_data_file (file (watch watch_reads)))
+(typetransition untrusted_app_30 tmpfs file appdomain_tmpfs)
+(allow untrusted_app_30 untrusted_app_30_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su untrusted_app_30_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 15 system/sepolicy/private/untrusted_app_30.te
+
+(neverallow base_typeattr_991 untrusted_app_30_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow untrusted_app_30 appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 15 system/sepolicy/private/untrusted_app_30.te
+
+(neverallow base_typeattr_992 base_typeattr_991 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/private/untrusted_app_30.te
+
+(neverallow base_typeattr_993 untrusted_app_30 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 15 system/sepolicy/private/untrusted_app_30.te
+
+(neverallow base_typeattr_994 untrusted_app_30 (process (ptrace)))
+;;* lme
+
+(allow untrusted_app_30 self (netlink_route_socket (nlmsg_getneigh)))
+(auditallow untrusted_app_30 self (netlink_route_socket (nlmsg_getneigh)))
+(allow untrusted_app_30 mdnsd_socket (sock_file (write)))
+(allow untrusted_app_30 mdnsd (unix_stream_socket (connectto)))
+(allow untrusted_app_30 apk_data_file (dir (watch watch_reads)))
+(allow untrusted_app_30 apk_data_file (file (watch watch_reads)))
+(typetransition untrusted_app_32 tmpfs file appdomain_tmpfs)
+(allow untrusted_app_32 untrusted_app_32_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su untrusted_app_32_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_32.te
+
+(neverallow base_typeattr_995 untrusted_app_32_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow untrusted_app_32 appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 13 system/sepolicy/private/untrusted_app_32.te
+
+(neverallow base_typeattr_996 base_typeattr_995 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_32.te
+
+(neverallow base_typeattr_997 untrusted_app_32 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 13 system/sepolicy/private/untrusted_app_32.te
+
+(neverallow base_typeattr_998 untrusted_app_32 (process (ptrace)))
+;;* lme
+
+(allow untrusted_app_32 sdk_sandbox_data_file (fd (use)))
+(allow untrusted_app_32 sdk_sandbox_data_file (file (write)))
+;;* lmx 23 system/sepolicy/private/untrusted_app_32.te
+
+(neverallow untrusted_app_32 sdk_sandbox_data_file (file (create open)))
+;;* lme
+
+(allow untrusted_app_32 mdnsd_socket (sock_file (write)))
+(allow untrusted_app_32 mdnsd (unix_stream_socket (connectto)))
+(allow untrusted_app_32 apk_data_file (dir (watch watch_reads)))
+(allow untrusted_app_32 apk_data_file (file (watch watch_reads)))
+(allow untrusted_app_all privapp_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow untrusted_app_all app_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(auditallow untrusted_app_all app_data_file (file (execute)))
+(allow untrusted_app_all system_linker_exec (file (execute_no_trans)))
+(allow untrusted_app_all privapp_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_all app_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow untrusted_app_all app_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow untrusted_app_all app_data_file (fifo_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow untrusted_app_all app_exec_data_file (file (ioctl read getattr lock map unlink execute open watch watch_reads)))
+(allow untrusted_app_all asec_apk_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_all asec_apk_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow untrusted_app_all asec_public_file (file (execute)))
+(allow untrusted_app_all shell_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_all shell_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow untrusted_app_all trace_data_file (file (read getattr)))
+;;* lmx 65 system/sepolicy/private/untrusted_app_all.te
+
+(neverallow untrusted_app_all trace_data_file (dir (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+;;* lmx 66 system/sepolicy/private/untrusted_app_all.te
+
+(neverallow untrusted_app_all trace_data_file (file (write create setattr relabelfrom append unlink link rename open)))
+;;* lme
+
+;;* lmx 69 system/sepolicy/private/untrusted_app_all.te
+
+(neverallow untrusted_app_all debugfs_tracing (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow untrusted_app_all apk_tmp_file (file (read getattr)))
+(allow untrusted_app_all apk_private_tmp_file (file (read getattr)))
+(allow untrusted_app_all system_app_data_file (file (read write getattr)))
+(allow untrusted_app_all media_rw_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow untrusted_app_all media_rw_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow untrusted_app_all servicemanager (service_manager (list)))
+(allow untrusted_app_all audioserver_service (service_manager (find)))
+(allow untrusted_app_all cameraserver_service (service_manager (find)))
+(allow untrusted_app_all drmserver_service (service_manager (find)))
+(allow untrusted_app_all mediaserver_service (service_manager (find)))
+(allow untrusted_app_all mediaextractor_service (service_manager (find)))
+(allow untrusted_app_all mediametrics_service (service_manager (find)))
+(allow untrusted_app_all mediadrmserver_service (service_manager (find)))
+(allow untrusted_app_all nfc_service (service_manager (find)))
+(allow untrusted_app_all radio_service (service_manager (find)))
+(allow untrusted_app_all app_api_service (service_manager (find)))
+(allow untrusted_app_all vr_manager_service (service_manager (find)))
+(allow untrusted_app_all self (process (ptrace)))
+(allow untrusted_app_all runas_app (unix_stream_socket (connectto)))
+(allow untrusted_app_all runas_app (process (sigchld)))
+(allow untrusted_app_all sysfs_hwrandom (dir (search)))
+(allow untrusted_app_all sysfs_hwrandom (file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_all preloads_media_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow untrusted_app_all preloads_media_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow untrusted_app_all preloads_data_file (dir (search)))
+(allow untrusted_app_all vendor_app_file (dir (read getattr open search)))
+(allow untrusted_app_all vendor_app_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow untrusted_app_all vendor_app_file (lnk_file (read getattr open)))
+(allow untrusted_app_all system_server (udp_socket (read write getattr connect getopt setopt recvfrom sendto)))
+(allow untrusted_app_all rs_exec (file (read getattr map execute open)))
+(allow untrusted_app_all rs (process (transition)))
+(allow rs rs_exec (file (read getattr map execute open entrypoint)))
+(allow rs untrusted_app_all (process (sigchld)))
+(dontaudit untrusted_app_all rs (process (noatsecure)))
+(allow untrusted_app_all rs (process (siginh rlimitinh)))
+(typetransition untrusted_app_all rs_exec process rs)
+(dontaudit untrusted_app_all debugfs_tracing (file (ioctl read write getattr lock append map open watch watch_reads)))
+(dontaudit untrusted_app_all net_dns_prop (file (read)))
+(dontaudit untrusted_app_all proc_stat (file (read)))
+(dontaudit untrusted_app_all proc_uptime (file (read)))
+(dontaudit untrusted_app_all proc_vmstat (file (read)))
+(dontaudit untrusted_app_all proc_zoneinfo (file (read)))
+(typetransition untrusted_app_all devpts chr_file untrusted_app_all_devpts)
+(allow untrusted_app_all untrusted_app_all_devpts (chr_file (ioctl read write getattr open)))
+(allowx untrusted_app_all untrusted_app_all_devpts (ioctl chr_file ((range 0x5401 0x5404) 0x540b (range 0x540e 0x5411) (range 0x5413 0x5414) (range 0x5450 0x5451))))
+;;* lmx 157 system/sepolicy/private/untrusted_app_all.te
+
+(neverallowx base_typeattr_224 untrusted_app_all_devpts (ioctl chr_file (0x5412)))
+;;* lme
+
+(allow untrusted_app_all virtualizationmanager_exec (file (read getattr map execute open)))
+(allow untrusted_app_all virtualizationmanager (process (transition)))
+(allow virtualizationmanager virtualizationmanager_exec (file (read getattr map execute open entrypoint)))
+(allow virtualizationmanager untrusted_app_all (process (sigchld)))
+(dontaudit untrusted_app_all virtualizationmanager (process (noatsecure)))
+(allow untrusted_app_all virtualizationmanager (process (siginh rlimitinh)))
+(typetransition untrusted_app_all virtualizationmanager_exec process virtualizationmanager)
+(allow crosvm untrusted_app_all (unix_stream_socket (ioctl read write getattr)))
+(allow virtualizationmanager untrusted_app_all (unix_stream_socket (ioctl read write getattr)))
+(allow crosvm untrusted_app_all (fd (use)))
+(allow virtualizationmanager untrusted_app_all (fd (use)))
+(allow untrusted_app_all virtualizationmanager (fd (use)))
+(allow crosvm untrusted_app_all (fifo_file (ioctl read write getattr)))
+(allow virtualizationmanager untrusted_app_all (fifo_file (ioctl read write getattr)))
+(allow untrusted_app_all virtualizationmanager (vsock_socket (read write getattr getopt)))
+(allow untrusted_app_all hypervisor_prop (file (read getattr map open)))
+(allow untrusted_app_all virtualizationservice_data_file (file (read getattr)))
+(allow init update_engine_exec (file (read getattr map execute open)))
+(allow init update_engine (process (transition)))
+(allow update_engine update_engine_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init update_engine (process (noatsecure)))
+(allow init update_engine (process (siginh rlimitinh)))
+(typetransition init update_engine_exec process update_engine)
+(allow update_engine gsi_service (service_manager (find)))
+(allow update_engine gsid (binder (call transfer)))
+(allow gsid update_engine (binder (transfer)))
+(allow update_engine gsid (fd (use)))
+(allow update_engine property_socket (sock_file (write)))
+(allow update_engine init (unix_stream_socket (connectto)))
+(allow update_engine ctl_gsid_prop (property_service (set)))
+(allow update_engine ctl_gsid_prop (file (read getattr map open)))
+(allow update_engine property_socket (sock_file (write)))
+(allow update_engine init (unix_stream_socket (connectto)))
+(allow update_engine ctl_snapuserd_prop (property_service (set)))
+(allow update_engine ctl_snapuserd_prop (file (read getattr map open)))
+(allow update_engine property_socket (sock_file (write)))
+(allow update_engine init (unix_stream_socket (connectto)))
+(allow update_engine ota_prop (property_service (set)))
+(allow update_engine ota_prop (file (read getattr map open)))
+(allow update_engine ota_build_prop (file (read getattr map open)))
+(allow update_engine gsid_prop (file (read getattr map open)))
+(allow update_engine gki_apex_prepostinstall (binder (call transfer)))
+(allow gki_apex_prepostinstall update_engine (binder (transfer)))
+(allow update_engine gki_apex_prepostinstall (fd (use)))
+(allow update_engine system_app (binder (call transfer)))
+(allow system_app update_engine (binder (transfer)))
+(allow update_engine system_app (fd (use)))
+(allow update_engine snapuserd (unix_stream_socket (connectto)))
+(allow update_engine snapuserd_socket (sock_file (write)))
+(allow update_engine snapuserd_prop (file (read getattr map open)))
+(allow update_engine apex_service (service_manager (find)))
+(allow update_engine apexd (binder (call transfer)))
+(allow apexd update_engine (binder (transfer)))
+(allow update_engine apexd (fd (use)))
+(allow update_engine servicemanager (binder (call transfer)))
+(allow servicemanager update_engine (binder (call transfer)))
+(allow servicemanager update_engine (dir (search)))
+(allow servicemanager update_engine (file (read open)))
+(allow servicemanager update_engine (process (getattr)))
+(allow update_engine_common postinstall_exec (file (read getattr map execute open)))
+(allow update_engine_common postinstall (process (transition)))
+(allow postinstall postinstall_exec (file (read getattr map execute open entrypoint)))
+(allow postinstall update_engine_common (process (sigchld)))
+(dontaudit update_engine_common postinstall (process (noatsecure)))
+(allow update_engine_common postinstall (process (siginh rlimitinh)))
+(typetransition update_engine_common postinstall_exec process postinstall)
+(allow update_engine_common postinstall_file (file (read getattr map execute open)))
+(allow update_engine_common postinstall (process (transition)))
+(allow postinstall postinstall_file (file (read getattr map execute open entrypoint)))
+(allow postinstall update_engine_common (process (sigchld)))
+(dontaudit update_engine_common postinstall (process (noatsecure)))
+(allow update_engine_common postinstall (process (siginh rlimitinh)))
+(typetransition update_engine_common postinstall_file process postinstall)
+(allow update_engine_common labeledfs (filesystem (mount unmount relabelfrom)))
+(allow init update_verifier_exec (file (read getattr map execute open)))
+(allow init update_verifier (process (transition)))
+(allow update_verifier update_verifier_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init update_verifier (process (noatsecure)))
+(allow init update_verifier (process (siginh rlimitinh)))
+(typetransition init update_verifier_exec process update_verifier)
+(allow update_verifier property_socket (sock_file (write)))
+(allow update_verifier init (unix_stream_socket (connectto)))
+(allow update_verifier powerctl_prop (property_service (set)))
+(allow update_verifier powerctl_prop (file (read getattr map open)))
+(allow update_verifier property_socket (sock_file (write)))
+(allow update_verifier init (unix_stream_socket (connectto)))
+(allow update_verifier ota_prop (property_service (set)))
+(allow update_verifier ota_prop (file (read getattr map open)))
+(allow update_verifier snapuserd_socket (sock_file (write)))
+(allow update_verifier snapuserd (unix_stream_socket (connectto)))
+(allow update_verifier virtual_ab_prop (file (read getattr map open)))
+(allow init uprobestats_exec (file (read getattr map execute open)))
+(allow init uprobestats (process (transition)))
+(allow uprobestats uprobestats_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init uprobestats (process (noatsecure)))
+(allow init uprobestats (process (siginh rlimitinh)))
+(typetransition init uprobestats_exec process uprobestats)
+(allow uprobestats fs_bpf_uprobestats (file (read write)))
+(allow uprobestats fs_bpf_uprobestats (dir (search)))
+(allow uprobestats bpfloader (bpf (map_read map_write prog_run)))
+(allow uprobestats self (capability2 (perfmon)))
+(allow uprobestats self (perf_event (open cpu write)))
+(allow uprobestats sysfs_uprobe (file (read open)))
+(allow uprobestats sysfs_uprobe (dir (search)))
+(allow uprobestats oatdump_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow uprobestats statsdw_socket (sock_file (write)))
+(allow uprobestats statsd (unix_dgram_socket (sendto)))
+(allow uprobestats servicemanager (binder (call transfer)))
+(allow servicemanager uprobestats (binder (call transfer)))
+(allow servicemanager uprobestats (dir (search)))
+(allow servicemanager uprobestats (file (read open)))
+(allow servicemanager uprobestats (process (getattr)))
+(allow uprobestats activity_service (service_manager (find)))
+(allow uprobestats system_server (binder (call transfer)))
+(allow system_server uprobestats (binder (transfer)))
+(allow uprobestats system_server (fd (use)))
+(allow uprobestats package_native_service (service_manager (find)))
+(allow uprobestats base_typeattr_233 (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow uprobestats base_typeattr_233 (file (ioctl read getattr lock map open watch watch_reads)))
+(allow uprobestats base_typeattr_233 (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow uprobestats uprobestats_configs_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow uprobestats uprobestats_configs_data_file (file (ioctl read getattr lock map unlink open watch watch_reads)))
+(allow init usbd_exec (file (read getattr map execute open)))
+(allow init usbd (process (transition)))
+(allow usbd usbd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init usbd (process (noatsecure)))
+(allow init usbd (process (siginh rlimitinh)))
+(typetransition init usbd_exec process usbd)
+(allow usbd system_prop (file (read getattr map open)))
+(allow usbd property_socket (sock_file (write)))
+(allow usbd init (unix_stream_socket (connectto)))
+(allow usbd ctl_default_prop (property_service (set)))
+(allow usbd ctl_default_prop (file (read getattr map open)))
+(allow usbd property_socket (sock_file (write)))
+(allow usbd init (unix_stream_socket (connectto)))
+(allow usbd ctl_adbd_prop (property_service (set)))
+(allow usbd ctl_adbd_prop (file (read getattr map open)))
+(allow init vdc_exec (file (read getattr map execute open)))
+(allow init vdc (process (transition)))
+(allow vdc vdc_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init vdc (process (noatsecure)))
+(allow init vdc (process (siginh rlimitinh)))
+(typetransition init vdc_exec process vdc)
+(allow vdc vehicle_binding_util (fd (use)))
+(allow init vehicle_binding_util_exec (file (read getattr map execute open)))
+(allow init vehicle_binding_util (process (transition)))
+(allow vehicle_binding_util vehicle_binding_util_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init vehicle_binding_util (process (noatsecure)))
+(allow init vehicle_binding_util (process (siginh rlimitinh)))
+(typetransition init vehicle_binding_util_exec process vehicle_binding_util)
+(allow vehicle_binding_util kmsg_device (chr_file (write getattr lock append map open)))
+(allow vehicle_binding_util hwservicemanager (binder (call transfer)))
+(allow hwservicemanager vehicle_binding_util (binder (call transfer)))
+(allow hwservicemanager vehicle_binding_util (dir (search)))
+(allow hwservicemanager vehicle_binding_util (file (read map open)))
+(allow hwservicemanager vehicle_binding_util (process (getattr)))
+(allow vehicle_binding_util servicemanager (binder (call transfer)))
+(allow servicemanager vehicle_binding_util (binder (call transfer)))
+(allow servicemanager vehicle_binding_util (dir (search)))
+(allow servicemanager vehicle_binding_util (file (read open)))
+(allow servicemanager vehicle_binding_util (process (getattr)))
+(allow vehicle_binding_util vdc_exec (file (read getattr map execute open)))
+(allow vehicle_binding_util vdc (process (transition)))
+(allow vdc vdc_exec (file (read getattr map execute open entrypoint)))
+(allow vdc vehicle_binding_util (process (sigchld)))
+(dontaudit vehicle_binding_util vdc (process (noatsecure)))
+(allow vehicle_binding_util vdc (process (siginh rlimitinh)))
+(typetransition vehicle_binding_util vdc_exec process vdc)
+(allow vehicle_binding_util devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(dontaudit vendor_init sysfs (dir (write)))
+(allow vendor_init system_data_root_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow vendor_init property_socket (sock_file (write)))
+(allow vendor_init init (unix_stream_socket (connectto)))
+(allow vendor_init adbd_config_prop (property_service (set)))
+(allow vendor_init adbd_config_prop (file (read getattr map open)))
+(allow vendor_init device_config_virtualization_framework_native_prop (file (read getattr map open)))
+(allow vendor_init apex_ready_prop (file (read getattr map open)))
+(allow vendor_init base_typeattr_999 (chr_file (setattr)))
+(typetransition viewcompiler tmpfs file viewcompiler_tmpfs)
+(allow viewcompiler viewcompiler_tmpfs (file (read write getattr map)))
+(allow viewcompiler installd (fd (use)))
+(allow viewcompiler app_data_file (file (write getattr)))
+(allow viewcompiler apk_data_file (file (read map)))
+;;* lmx 25 system/sepolicy/private/viewcompiler.te
+
+(neverallow viewcompiler privapp_data_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+(allow init virtual_camera_exec (file (read getattr map execute open)))
+(allow init virtual_camera (process (transition)))
+(allow virtual_camera virtual_camera_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init virtual_camera (process (noatsecure)))
+(allow init virtual_camera (process (siginh rlimitinh)))
+(typetransition init virtual_camera_exec process virtual_camera)
+(allow virtual_camera servicemanager (binder (call transfer)))
+(allow servicemanager virtual_camera (binder (call transfer)))
+(allow servicemanager virtual_camera (dir (search)))
+(allow servicemanager virtual_camera (file (read open)))
+(allow servicemanager virtual_camera (process (getattr)))
+(allow virtual_camera cameraserver (binder (call transfer)))
+(allow cameraserver virtual_camera (binder (transfer)))
+(allow virtual_camera cameraserver (fd (use)))
+(allow virtual_camera system_server (binder (call transfer)))
+(allow system_server virtual_camera (binder (transfer)))
+(allow virtual_camera system_server (fd (use)))
+(allow virtual_camera mediaserver (binder (call transfer)))
+(allow mediaserver virtual_camera (binder (transfer)))
+(allow virtual_camera mediaserver (fd (use)))
+(allow virtual_camera appdomain (binder (call transfer)))
+(allow appdomain virtual_camera (binder (transfer)))
+(allow virtual_camera appdomain (fd (use)))
+(allow virtual_camera base_typeattr_369 (fd (use)))
+(allow virtual_camera virtual_camera_service (service_manager (add find)))
+;;* lmx 32 system/sepolicy/private/virtual_camera.te
+
+(neverallow base_typeattr_1000 virtual_camera_service (service_manager (add)))
+;;* lme
+
+(allow virtual_camera gpu_device (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow virtual_camera gpu_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow virtual_camera hal_graphics_composer (fd (use)))
+(allow virtual_camera dumpstate (fd (use)))
+(allow virtual_camera dumpstate (fifo_file (write)))
+(allow virtual_camera permission_service (service_manager (find)))
+(allow init virtual_touchpad_exec (file (read getattr map execute open)))
+(allow init virtual_touchpad (process (transition)))
+(allow virtual_touchpad virtual_touchpad_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init virtual_touchpad (process (noatsecure)))
+(allow init virtual_touchpad (process (siginh rlimitinh)))
+(typetransition init virtual_touchpad_exec process virtual_touchpad)
+(allow virtualizationmanager adbd (fd (use)))
+(allow virtualizationmanager adbd (unix_stream_socket (read write getattr)))
+(allow virtualizationmanager devpts (chr_file (ioctl read write getattr)))
+(allow virtualizationmanager servicemanager (binder (call transfer)))
+(allow servicemanager virtualizationmanager (binder (call transfer)))
+(allow servicemanager virtualizationmanager (dir (search)))
+(allow servicemanager virtualizationmanager (file (read open)))
+(allow servicemanager virtualizationmanager (process (getattr)))
+(allow virtualizationmanager virtualization_service (service_manager (find)))
+(allow virtualizationmanager virtualizationservice (binder (call transfer)))
+(allow virtualizationservice virtualizationmanager (binder (transfer)))
+(allow virtualizationmanager virtualizationservice (fd (use)))
+(allow virtualizationmanager system_server (binder (call transfer)))
+(allow system_server virtualizationmanager (binder (transfer)))
+(allow virtualizationmanager system_server (fd (use)))
+(allow virtualizationmanager package_native_service (service_manager (find)))
+(allow virtualizationmanager permission_service (service_manager (find)))
+(allow virtualizationmanager crosvm_exec (file (read getattr map execute open)))
+(allow virtualizationmanager crosvm (process (transition)))
+(allow crosvm crosvm_exec (file (read getattr map execute open entrypoint)))
+(allow crosvm virtualizationmanager (process (sigchld)))
+(dontaudit virtualizationmanager crosvm (process (noatsecure)))
+(allow virtualizationmanager crosvm (process (siginh rlimitinh)))
+(typetransition virtualizationmanager crosvm_exec process crosvm)
+(allow virtualizationmanager crosvm (process (sigkill)))
+(allow virtualizationmanager virtualizationservice_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow virtualizationmanager virtualizationservice_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow virtualizationmanager virtualizationservice_data_file (sock_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow virtualizationmanager apk_data_file (file (read getattr)))
+(allow virtualizationmanager app_data_file (file (read write getattr)))
+(allow virtualizationmanager privapp_data_file (file (read write getattr)))
+(allow virtualizationmanager apex_compos_data_file (file (read write getattr)))
+(allow virtualizationmanager apex_virt_data_file (file (read write getattr)))
+(allow virtualizationmanager shell_data_file (file (read write getattr)))
+(allow virtualizationmanager apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager apex_data_file (dir (search)))
+(allow virtualizationmanager staging_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager staging_data_file (dir (search)))
+(allow virtualizationmanager derive_classpath_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow virtualizationmanager apex_mnt_dir (dir (ioctl read getattr lock open watch watch_reads search)))
+(dontaudit virtualizationmanager self (dir (write)))
+(allow virtualizationmanager self (vsock_socket (read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+(allow virtualizationmanager hypervisor_prop (file (read getattr map open)))
+(allow virtualizationmanager hypervisor_restricted_prop (file (read getattr map open)))
+(dontaudit virtualizationmanager hypervisor_pvmfw_prop (file (read)))
+;;* lmx 72 system/sepolicy/private/virtualizationmanager.te
+
+(neverallow base_typeattr_855 hypervisor_pvmfw_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(dontaudit virtualizationmanager hypervisor_virtualizationmanager_prop (file (read)))
+;;* lmx 77 system/sepolicy/private/virtualizationmanager.te
+
+(neverallow base_typeattr_855 hypervisor_virtualizationmanager_prop (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow virtualizationmanager tombstoned_crash_socket (sock_file (write)))
+(allow virtualizationmanager tombstoned (unix_stream_socket (connectto)))
+(allow virtualizationmanager tombstone_data_file (file (getattr append)))
+(allow virtualizationmanager tombstoned (fd (use)))
+(allow virtualizationmanager proc_dt_avf (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow virtualizationmanager proc_dt_avf (file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager proc_dt_avf (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager sysfs_dt_avf (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow virtualizationmanager sysfs_dt_avf (file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager sysfs_dt_avf (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager vendor_microdroid_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow virtualizationmanager vendor_microdroid_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager vendor_microdroid_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 105 system/sepolicy/private/virtualizationmanager.te
+
+(neverallow domain vendor_microdroid_file (dir (write create setattr relabelfrom link rename add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 106 system/sepolicy/private/virtualizationmanager.te
+
+(neverallow domain vendor_microdroid_file (file (write create setattr relabelfrom append unlink link rename)))
+;;* lme
+
+(allow virtualizationmanager crosvm (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow virtualizationmanager crosvm (file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationmanager crosvm (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit virtualizationmanager apex_module_data_file (dir (search)))
+(allow init virtualizationservice_exec (file (read getattr map execute open)))
+(allow init virtualizationservice (process (transition)))
+(allow virtualizationservice virtualizationservice_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init virtualizationservice (process (noatsecure)))
+(allow init virtualizationservice (process (siginh rlimitinh)))
+(typetransition init virtualizationservice_exec process virtualizationservice)
+(allow virtualizationservice servicemanager (binder (call transfer)))
+(allow servicemanager virtualizationservice (binder (call transfer)))
+(allow servicemanager virtualizationservice (dir (search)))
+(allow servicemanager virtualizationservice (file (read open)))
+(allow servicemanager virtualizationservice (process (getattr)))
+(allow virtualizationservice virtualization_service (service_manager (add find)))
+;;* lmx 16 system/sepolicy/private/virtualizationservice.te
+
+(neverallow base_typeattr_1001 virtualization_service (service_manager (add)))
+;;* lme
+
+(allow virtualizationservice system_server (binder (call transfer)))
+(allow system_server virtualizationservice (binder (transfer)))
+(allow virtualizationservice system_server (fd (use)))
+(allow virtualizationservice permission_service (service_manager (find)))
+(allow virtualizationservice remote_provisioning_service (binder (call transfer)))
+(allow remote_provisioning_service virtualizationservice (binder (transfer)))
+(allow virtualizationservice remote_provisioning_service (fd (use)))
+(allow virtualizationservice remote_provisioning_service (service_manager (find)))
+(allow virtualizationservice self (capability (sys_resource)))
+(allow virtualizationservice virtualizationmanager (process (setrlimit)))
+(allow virtualizationservice self (capability (chown)))
+(allow virtualizationservice virtualizationservice_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow virtualizationservice virtualizationservice_data_file (sock_file (unlink)))
+(allow virtualizationservice virtualizationservice_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow virtualizationservice adbd (fd (use)))
+(allow virtualizationservice adbd (unix_stream_socket (read write)))
+(allow virtualizationservice virtualizationmanager_exec (file (read getattr map execute open)))
+(allow virtualizationservice virtualizationmanager (process (transition)))
+(allow virtualizationmanager virtualizationmanager_exec (file (read getattr map execute open entrypoint)))
+(allow virtualizationmanager virtualizationservice (process (sigchld)))
+(dontaudit virtualizationservice virtualizationmanager (process (noatsecure)))
+(allow virtualizationservice virtualizationmanager (process (siginh rlimitinh)))
+(typetransition virtualizationservice virtualizationmanager_exec process virtualizationmanager)
+(allow crosvm virtualizationservice (unix_stream_socket (ioctl read write getattr)))
+(allow virtualizationmanager virtualizationservice (unix_stream_socket (ioctl read write getattr)))
+(allow crosvm virtualizationservice (fd (use)))
+(allow virtualizationmanager virtualizationservice (fd (use)))
+(allow virtualizationservice virtualizationmanager (fd (use)))
+(allow crosvm virtualizationservice (fifo_file (ioctl read write getattr)))
+(allow virtualizationmanager virtualizationservice (fifo_file (ioctl read write getattr)))
+(allow virtualizationservice virtualizationmanager (vsock_socket (read write getattr getopt)))
+(allow virtualizationservice hypervisor_prop (file (read getattr map open)))
+(allow virtualizationservice virtualizationservice_data_file (file (read getattr)))
+(allow virtualizationservice apex_module_data_file (dir (getattr search)))
+(allow virtualizationservice apex_virt_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow virtualizationservice apex_virt_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow virtualizationservice self (vsock_socket (read write create getattr setattr lock append map bind connect listen accept getopt setopt shutdown)))
+(allow virtualizationservice property_socket (sock_file (write)))
+(allow virtualizationservice init (unix_stream_socket (connectto)))
+(allow virtualizationservice virtualizationservice_prop (property_service (set)))
+(allow virtualizationservice virtualizationservice_prop (file (read getattr map open)))
+(allow virtualizationservice statsdw_socket (sock_file (write)))
+(allow virtualizationservice statsd (unix_dgram_socket (sendto)))
+(allow virtualizationservice tombstoned_crash_socket (sock_file (write)))
+(allow virtualizationservice tombstoned (unix_stream_socket (connectto)))
+(allow virtualizationservice tombstone_data_file (file (getattr append)))
+(allow virtualizationservice tombstoned (fd (use)))
+(allow virtualizationservice vfio_device (chr_file (getattr)))
+(allow virtualizationservice vfio_device (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow virtualizationservice virtualizationmanager (fd (use)))
+(allow virtualizationservice vendor_configs_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow virtualizationservice vendor_configs_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow virtualizationservice vendor_configs_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 102 system/sepolicy/private/virtualizationservice.te
+
+(neverallow base_typeattr_1002 virtualizationservice_prop (property_service (set)))
+;;* lme
+
+;;* lmx 109 system/sepolicy/private/virtualizationservice.te
+
+(neverallow base_typeattr_1003 virtualizationservice_data_file (file (create open)))
+;;* lme
+
+;;* lmx 115 system/sepolicy/private/virtualizationservice.te
+
+(neverallow virtualizationservice base_typeattr_1004 (process (setrlimit)))
+;;* lme
+
+(allow init vold_exec (file (read getattr map execute open)))
+(allow init vold (process (transition)))
+(allow vold vold_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init vold (process (noatsecure)))
+(allow init vold (process (siginh rlimitinh)))
+(typetransition init vold_exec process vold)
+(allow vold sgdisk_exec (file (read getattr map execute open)))
+(allow vold sgdisk (process (transition)))
+(allow sgdisk sgdisk_exec (file (read getattr map execute open entrypoint)))
+(allow sgdisk vold (process (sigchld)))
+(dontaudit vold sgdisk (process (noatsecure)))
+(allow vold sgdisk (process (siginh rlimitinh)))
+(typetransition vold sgdisk_exec process sgdisk)
+(allow vold sdcardd_exec (file (read getattr map execute open)))
+(allow vold sdcardd (process (transition)))
+(allow sdcardd sdcardd_exec (file (read getattr map execute open entrypoint)))
+(allow sdcardd vold (process (sigchld)))
+(dontaudit vold sdcardd (process (noatsecure)))
+(allow vold sdcardd (process (siginh rlimitinh)))
+(typetransition vold sdcardd_exec process sdcardd)
+(allow vold fuseblkd_untrusted_exec (file (read getattr map execute open)))
+(allow vold fuseblkd_untrusted (process (transition)))
+(allow fuseblkd_untrusted fuseblkd_untrusted_exec (file (read getattr map execute open entrypoint)))
+(allow fuseblkd_untrusted vold (process (sigchld)))
+(dontaudit vold fuseblkd_untrusted (process (noatsecure)))
+(allow vold fuseblkd_untrusted (process (siginh rlimitinh)))
+(typetransition vold fuseblkd_untrusted_exec process fuseblkd_untrusted)
+(allow vold e2fs_exec (file (read getattr map execute open)))
+(allow vold e2fs (process (transition)))
+(allow e2fs e2fs_exec (file (read getattr map execute open entrypoint)))
+(allow e2fs vold (process (sigchld)))
+(dontaudit vold e2fs (process (noatsecure)))
+(allow vold e2fs (process (siginh rlimitinh)))
+(typetransition vold e2fs_exec process e2fs)
+(allow vold blkid_exec (file (read getattr map execute open)))
+(allow vold blkid (process (transition)))
+(allow blkid blkid_exec (file (read getattr map execute open entrypoint)))
+(allow blkid vold (process (sigchld)))
+(dontaudit vold blkid (process (noatsecure)))
+(allow vold blkid (process (siginh rlimitinh)))
+(allow vold blkid_exec (file (read getattr map execute open)))
+(allow vold blkid_untrusted (process (transition)))
+(allow blkid_untrusted blkid_exec (file (read getattr map execute open entrypoint)))
+(allow blkid_untrusted vold (process (sigchld)))
+(dontaudit vold blkid_untrusted (process (noatsecure)))
+(allow vold blkid_untrusted (process (siginh rlimitinh)))
+(allow vold fsck_exec (file (read getattr map execute open)))
+(allow vold fsck (process (transition)))
+(allow fsck fsck_exec (file (read getattr map execute open entrypoint)))
+(allow fsck vold (process (sigchld)))
+(dontaudit vold fsck (process (noatsecure)))
+(allow vold fsck (process (siginh rlimitinh)))
+(allow vold fsck_exec (file (read getattr map execute open)))
+(allow vold fsck_untrusted (process (transition)))
+(allow fsck_untrusted fsck_exec (file (read getattr map execute open entrypoint)))
+(allow fsck_untrusted vold (process (sigchld)))
+(dontaudit vold fsck_untrusted (process (noatsecure)))
+(allow vold fsck_untrusted (process (siginh rlimitinh)))
+(typetransition vold storage_file dir storage_stub_file)
+(typetransition vold mnt_media_rw_file dir mnt_media_rw_stub_file)
+(allow vold vold_config_prop (file (read getattr map open)))
+(allow vold storage_config_prop (file (read getattr map open)))
+(allow vold incremental_prop (file (read getattr map open)))
+(allow vold gsid_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold vold_prop (property_service (set)))
+(allow vold vold_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold vold_status_prop (property_service (set)))
+(allow vold vold_status_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold powerctl_prop (property_service (set)))
+(allow vold powerctl_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold ctl_fuse_prop (property_service (set)))
+(allow vold ctl_fuse_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold restorecon_prop (property_service (set)))
+(allow vold restorecon_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold ota_prop (property_service (set)))
+(allow vold ota_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold boottime_prop (property_service (set)))
+(allow vold boottime_prop (file (read getattr map open)))
+(allow vold property_socket (sock_file (write)))
+(allow vold init (unix_stream_socket (connectto)))
+(allow vold boottime_public_prop (property_service (set)))
+(allow vold boottime_public_prop (file (read getattr map open)))
+(allow vold vold_key (keystore2_key (convert_storage_key_to_ephemeral delete get_info manage_blob rebind req_forced_op update use)))
+(allow vold keystore (binder (call)))
+(allow vold keystore_service (service_manager (find)))
+(allow vold keystore_maintenance_service (service_manager (find)))
+(allow vold keystore (keystore2 (early_boot_ended)))
+(allow vold keystore (keystore2 (delete_all_keys)))
+;;* lmx 73 system/sepolicy/private/vold.te
+
+(neverallow base_typeattr_1005 vold_service (service_manager (find)))
+;;* lme
+
+(allow vold system_userdir_file (dir (write add_name remove_name)))
+(allow vold vendor_userdir_file (dir (write add_name remove_name)))
+(allow vold media_userdir_file (dir (write add_name remove_name)))
+;;* lmx 101 system/sepolicy/private/vold.te
+
+(neverallow base_typeattr_339 system_userdir_file (dir (write add_name remove_name)))
+(neverallow base_typeattr_339 vendor_userdir_file (dir (write add_name remove_name)))
+(neverallow base_typeattr_339 media_userdir_file (dir (write add_name remove_name)))
+;;* lme
+
+(allow vold vold_prepare_subdirs_exec (file (read getattr map execute open)))
+(allow vold vold_prepare_subdirs (process (transition)))
+(allow vold_prepare_subdirs vold_prepare_subdirs_exec (file (read getattr map execute open entrypoint)))
+(allow vold_prepare_subdirs vold (process (sigchld)))
+(dontaudit vold vold_prepare_subdirs (process (noatsecure)))
+(allow vold vold_prepare_subdirs (process (siginh rlimitinh)))
+(typetransition vold vold_prepare_subdirs_exec process vold_prepare_subdirs)
+(allow vold_prepare_subdirs system_file (file (execute_no_trans)))
+(allow vold_prepare_subdirs shell_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow vold_prepare_subdirs toolbox_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow vold_prepare_subdirs devpts (chr_file (ioctl read write getattr lock append map open watch watch_reads)))
+(allow vold_prepare_subdirs vold (fd (use)))
+(allow vold_prepare_subdirs vold (fifo_file (read write)))
+(allow vold_prepare_subdirs file_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow vold_prepare_subdirs self (capability (chown dac_override dac_read_search fowner)))
+(allow vold_prepare_subdirs self (cap_userns (chown dac_override dac_read_search fowner)))
+(allow vold_prepare_subdirs self (process (setfscreate)))
+(allow vold_prepare_subdirs system_data_file (dir (read write relabelfrom open add_name remove_name rmdir)))
+(allow vold_prepare_subdirs vendor_data_file (dir (read write relabelfrom open add_name remove_name rmdir)))
+(allow vold_prepare_subdirs sdk_sandbox_system_data_file (dir (read write relabelfrom open add_name remove_name rmdir)))
+(allow vold_prepare_subdirs apex_data_file_type (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs system_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs apex_module_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs apex_rollback_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs vold_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs backup_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs fingerprint_vendor_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs face_vendor_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs iris_vendor_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs storaged_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs sdk_sandbox_system_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs sdk_sandbox_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs rollback_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs checkin_data_file (dir (ioctl read write create getattr setattr lock relabelto rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow vold_prepare_subdirs apex_data_file_type (file (getattr unlink)))
+(allow vold_prepare_subdirs system_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs apex_module_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs apex_rollback_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs vold_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs backup_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs fingerprint_vendor_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs face_vendor_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs iris_vendor_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs storaged_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs sdk_sandbox_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs rollback_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs checkin_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs apex_art_staging_data_file (file (getattr unlink)))
+(allow vold_prepare_subdirs apex_mnt_dir (dir (read open)))
+(allow vold_prepare_subdirs mnt_expand_file (dir (search)))
+(allow vold_prepare_subdirs user_profile_data_file (dir (getattr relabelfrom search)))
+(allow vold_prepare_subdirs user_profile_root_file (dir (getattr relabelfrom relabelto search)))
+(allow vold_prepare_subdirs apex_tethering_data_file (dir (relabelfrom)))
+(allow vold_prepare_subdirs apex_appsearch_data_file (dir (relabelfrom)))
+(allow vold_prepare_subdirs apex_permission_data_file (dir (relabelfrom)))
+(allow vold_prepare_subdirs apex_scheduling_data_file (dir (relabelfrom)))
+(allow vold_prepare_subdirs apex_wifi_data_file (dir (relabelfrom)))
+(allow vold_prepare_subdirs unlabeled (dir (search)))
+(dontaudit vold_prepare_subdirs proc (file (ioctl read getattr lock map open watch watch_reads)))
+(dontaudit vold_prepare_subdirs unlabeled (file (ioctl read getattr lock map open watch watch_reads)))
+(typetransition vzwomatrigger_app tmpfs file appdomain_tmpfs)
+(allow vzwomatrigger_app vzwomatrigger_app_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su vzwomatrigger_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 6 system/sepolicy/private/vzwomatrigger_app.te
+
+(neverallow base_typeattr_1006 vzwomatrigger_app_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow vzwomatrigger_app appdomain_tmpfs (file (read write getattr map execute)))
+;;* lmx 6 system/sepolicy/private/vzwomatrigger_app.te
+
+(neverallow base_typeattr_1007 base_typeattr_1006 (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/vzwomatrigger_app.te
+
+(neverallow base_typeattr_1008 vzwomatrigger_app (file (ioctl read write create setattr lock relabelfrom append unlink link rename open watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+;;* lmx 6 system/sepolicy/private/vzwomatrigger_app.te
+
+(neverallow base_typeattr_1009 vzwomatrigger_app (process (ptrace)))
+;;* lme
+
+(allow init watchdogd_exec (file (read getattr map execute open)))
+(allow init watchdogd (process (transition)))
+(allow watchdogd watchdogd_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init watchdogd (process (noatsecure)))
+(allow init watchdogd (process (siginh rlimitinh)))
+(typetransition init watchdogd_exec process watchdogd)
+(typetransition webview_zygote tmpfs file webview_zygote_tmpfs)
+(allow webview_zygote webview_zygote_tmpfs (file (read write getattr map)))
+(allow webview_zygote webview_zygote_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su webview_zygote_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 13 system/sepolicy/private/webview_zygote.te
+
+(neverallow base_typeattr_1010 webview_zygote_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow webview_zygote apk_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow webview_zygote apk_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow webview_zygote shared_relro_file (dir (search)))
+(allow webview_zygote shared_relro_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote self (capability (setgid setuid)))
+(allow webview_zygote self (cap_userns (setgid setuid)))
+(allow webview_zygote self (capability (setpcap)))
+(allow webview_zygote self (cap_userns (setpcap)))
+(allow webview_zygote self (process (setcurrent)))
+(allow webview_zygote isolated_app (process (dyntransition)))
+(allow webview_zygote dalvikcache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow webview_zygote apex_art_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow webview_zygote dalvikcache_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote dalvikcache_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow webview_zygote apex_art_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow webview_zygote apex_module_data_file (dir (search)))
+(allow webview_zygote vendor_apex_metadata_file (dir (search)))
+(allow webview_zygote self (process (execmem)))
+(allow webview_zygote debugfs_trace_marker (file (getattr)))
+(allow webview_zygote system_server (process (getpgid)))
+(allow webview_zygote isolated_app (process (setpgid)))
+(dontaudit webview_zygote mnt_expand_file (dir (getattr)))
+(dontaudit webview_zygote dex2oat_exec (file (execute)))
+(allow webview_zygote seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow webview_zygote selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote selinuxfs (file (write lock append map open)))
+(allow webview_zygote kernel (security (check_context)))
+(allow webview_zygote selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow webview_zygote selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote selinuxfs (file (write lock append map open)))
+(allow webview_zygote kernel (security (compute_av)))
+(allow webview_zygote self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow webview_zygote system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow webview_zygote zygote_tmpfs (file (read getattr)))
+(allow webview_zygote zygote (fd (use)))
+(allow webview_zygote zygote (process (sigchld)))
+(allow webview_zygote vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow webview_zygote vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote same_process_hal_file (file (read getattr map execute open)))
+(allow webview_zygote system_data_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote system_unsolzygote_socket (sock_file (write)))
+(allow webview_zygote system_server (unix_dgram_socket (sendto)))
+(allow webview_zygote device_config_runtime_native_prop (file (read getattr map open)))
+(allow webview_zygote device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow zygote odsign_prop (file (read getattr map open)))
+(allow webview_zygote resourcecache_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow webview_zygote resourcecache_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+;;* lmx 105 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote base_typeattr_643 (process (dyntransition)))
+;;* lme
+
+;;* lmx 108 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote base_typeattr_644 (process (transition)))
+;;* lme
+
+;;* lmx 112 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote base_typeattr_224 (file (execute_no_trans)))
+;;* lme
+
+;;* lmx 116 system/sepolicy/private/webview_zygote.te
+
+(neverallow base_typeattr_645 webview_zygote (process (dyntransition)))
+;;* lme
+
+;;* lmx 119 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote property_socket (sock_file (write)))
+;;* lme
+
+;;* lmx 120 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote property_type (property_service (set)))
+;;* lme
+
+;;* lmx 123 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote app_data_file_type (file (ioctl read write getattr lock append map execute open watch watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 129 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote base_typeattr_646 (service_manager (find)))
+;;* lme
+
+;;* lmx 132 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote gpu_device (chr_file (ioctl read write getattr lock append map execute open watch watch_reads execute_no_trans)))
+;;* lme
+
+;;* lmx 135 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote cache_file (dir (write create setattr relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access execmod watch_mount watch_sb watch_with_perm add_name remove_name reparent rmdir)))
+;;* lme
+
+;;* lmx 136 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote cache_file (file (ioctl write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads execute_no_trans entrypoint)))
+;;* lme
+
+;;* lmx 153 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote domain (socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (tcp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect)))
+(neverallow webview_zygote domain (udp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow webview_zygote domain (rawip_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow webview_zygote domain (netlink_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (packet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (key_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_route_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_readpriv nlmsg_getneigh)))
+(neverallow webview_zygote domain (netlink_tcpdiag_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow webview_zygote domain (netlink_nflog_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_xfrm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write)))
+(neverallow webview_zygote domain (netlink_audit_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind nlmsg_read nlmsg_write nlmsg_relay nlmsg_readpriv nlmsg_tty_audit)))
+(neverallow webview_zygote domain (netlink_dnrt_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_kobject_uevent_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (appletalk_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (tun_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind attach_queue)))
+(neverallow webview_zygote domain (netlink_iscsi_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_fib_lookup_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_connector_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_netfilter_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_generic_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_scsitransport_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_rdma_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netlink_crypto_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (sctp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind name_connect association)))
+(neverallow webview_zygote domain (icmp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind node_bind)))
+(neverallow webview_zygote domain (ax25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (ipx_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (netrom_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (atmpvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (x25_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (rose_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (decnet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (atmsvc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (rds_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (irda_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (pppox_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (llc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (can_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (tipc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (bluetooth_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (iucv_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (rxrpc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (isdn_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (phonet_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (ieee802154_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (caif_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (alg_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (nfc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (vsock_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (kcm_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (qipcrtr_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (smc_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(neverallow webview_zygote domain (xdp_socket (ioctl read write create getattr setattr lock relabelfrom relabelto append map bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+;;* lme
+
+;;* lmx 162 system/sepolicy/private/webview_zygote.te
+
+(neverallow webview_zygote bluetooth_a2dp_offload_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow webview_zygote bluetooth_audio_hal_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow webview_zygote bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow webview_zygote exported_bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+;;* lme
+
+(allow wificond property_socket (sock_file (write)))
+(allow wificond init (unix_stream_socket (connectto)))
+(allow wificond wifi_hal_prop (property_service (set)))
+(allow wificond wifi_hal_prop (file (read getattr map open)))
+(allow wificond property_socket (sock_file (write)))
+(allow wificond init (unix_stream_socket (connectto)))
+(allow wificond wifi_prop (property_service (set)))
+(allow wificond wifi_prop (file (read getattr map open)))
+(allow wificond property_socket (sock_file (write)))
+(allow wificond init (unix_stream_socket (connectto)))
+(allow wificond ctl_default_prop (property_service (set)))
+(allow wificond ctl_default_prop (file (read getattr map open)))
+(allow wificond hwservicemanager_prop (file (read getattr map open)))
+(allow wificond legacykeystore_service (service_manager (find)))
+(allow init wificond_exec (file (read getattr map execute open)))
+(allow init wificond (process (transition)))
+(allow wificond wificond_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init wificond (process (noatsecure)))
+(allow init wificond (process (siginh rlimitinh)))
+(typetransition init wificond_exec process wificond)
+(allow init zygote_exec (file (read getattr map execute open)))
+(allow init zygote (process (transition)))
+(allow zygote zygote_exec (file (read getattr map execute open entrypoint)))
+(dontaudit init zygote (process (noatsecure)))
+(allow init zygote (process (siginh rlimitinh)))
+(typetransition init zygote_exec process zygote)
+(typetransition zygote tmpfs file zygote_tmpfs)
+(allow zygote zygote_tmpfs (file (read write getattr map)))
+(allow zygote runtime_event_log_tags_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote self (capability (chown dac_override dac_read_search fowner setgid setuid)))
+(allow zygote self (cap_userns (chown dac_override dac_read_search fowner setgid setuid)))
+(allow zygote self (capability (setpcap)))
+(allow zygote self (cap_userns (setpcap)))
+(allow zygote self (process (setcurrent)))
+(allow zygote system_server_startup (process (dyntransition)))
+(allow zygote appdomain (process (dyntransition)))
+(allow zygote webview_zygote (process (dyntransition)))
+(allow zygote app_zygote (process (dyntransition)))
+(allow zygote appdomain (dir (getattr search)))
+(allow zygote appdomain (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote zygote_userfaultfd (anon_inode (ioctl read create)))
+(dontaudit su zygote_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lmx 27 system/sepolicy/private/zygote.te
+
+(neverallow base_typeattr_645 zygote_userfaultfd (anon_inode (ioctl read write create getattr setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads)))
+;;* lme
+
+(allow zygote system_server (process (getpgid setpgid)))
+(allow zygote appdomain (process (getpgid setpgid)))
+(allow zygote webview_zygote (process (getpgid setpgid)))
+(allow zygote app_zygote (process (getpgid setpgid)))
+(allow zygote system_data_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote system_data_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote mnt_expand_file (dir (getattr)))
+(allow zygote dalvikcache_data_file (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote dalvikcache_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow zygote dalvikcache_data_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow zygote resourcecache_data_file (dir (ioctl read write getattr lock open watch watch_reads add_name remove_name search)))
+(allow zygote resourcecache_data_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow zygote dalvikcache_data_file (file (execute)))
+(allow zygote apex_module_data_file (dir (search)))
+(allow zygote apex_art_data_file (dir (getattr search)))
+(allow zygote apex_art_data_file (file (ioctl read getattr lock map execute open watch watch_reads)))
+(allow zygote properties_device (dir (mounton search)))
+(allow zygote system_data_file (dir (mounton search)))
+(allow zygote system_userdir_file (dir (mounton search)))
+(allow zygote user_profile_root_file (dir (mounton search)))
+(allow zygote user_profile_data_file (dir (mounton search)))
+(allow zygote media_rw_data_file (dir (mounton search)))
+(allow zygote mirror_data_file (dir (search)))
+(allow zygote mnt_expand_file (dir (read open search)))
+(allow zygote app_data_file_type (dir (getattr)))
+(allow zygote tmpfs (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote tmpfs (lnk_file (create)))
+(allow zygote tmpfs (dir (relabelfrom)))
+(allow zygote tmpfs (lnk_file (relabelfrom)))
+(allow zygote system_userdir_file (dir (relabelto)))
+(allow zygote system_data_file (dir (relabelto)))
+(allow zygote system_data_file (lnk_file (relabelto)))
+(allow zygote sdk_sandbox_system_data_file (dir (getattr relabelto search)))
+(allow zygote proc_filesystems (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote self (process (execmem)))
+(allow zygote zygote_tmpfs (file (execute)))
+(allow zygote ashmem_libcutils_device (chr_file (execute)))
+(allow zygote idmap_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow zygote dex2oat_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow zygote vendor_overlay_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote vendor_overlay_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote vendor_overlay_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote cgroup (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote cgroup (file (ioctl read getattr setattr lock map open watch watch_reads)))
+(allow zygote cgroup (lnk_file (ioctl read getattr setattr lock map open watch watch_reads)))
+(allow zygote cgroup_v2 (dir (ioctl read write create getattr setattr lock rename open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote cgroup_v2 (file (ioctl read getattr setattr lock map open watch watch_reads)))
+(allow zygote cgroup_v2 (lnk_file (ioctl read getattr setattr lock map open watch watch_reads)))
+(allow zygote self (capability (sys_admin)))
+(allow zygote self (cap_userns (sys_admin)))
+(allow zygote pmsg_device (chr_file (getattr)))
+(allow zygote debugfs_trace_marker (file (getattr)))
+(allow zygote seapp_contexts_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote selinuxfs (file (write lock append map open)))
+(allow zygote kernel (security (check_context)))
+(allow zygote selinuxfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote selinuxfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote selinuxfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote selinuxfs (file (write lock append map open)))
+(allow zygote kernel (security (compute_av)))
+(allow zygote self (netlink_selinux_socket (read write create getattr setattr lock relabelfrom relabelto append bind connect listen accept getopt setopt shutdown recvfrom sendto name_bind)))
+(allow zygote proc_cpuinfo (file (mounton)))
+(allow zygote rootfs (dir (mounton)))
+(allow zygote tmpfs (filesystem (mount unmount)))
+(allow zygote fuse (filesystem (unmount)))
+(allow zygote sdcardfs (filesystem (unmount)))
+(allow zygote labeledfs (filesystem (unmount)))
+(allow zygote mnt_user_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote mnt_user_file (lnk_file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow zygote mnt_user_file (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow zygote mnt_pass_through_file (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote storage_file (dir (mounton search)))
+(allow zygote sdcard_type (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote fuse (dir (ioctl read write create getattr setattr lock rename mounton open watch watch_reads add_name remove_name reparent search rmdir)))
+(allow zygote sdcard_type (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow zygote fuse (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(allow zygote zygote_exec (file (ioctl read getattr lock map execute open watch watch_reads execute_no_trans)))
+(allow zygote statsdw_socket (sock_file (write)))
+(allow zygote statsd (unix_dgram_socket (sendto)))
+(allow zygote rootfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote rootfs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote rootfs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote system_file (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote system_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote system_file (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote oemfs (dir (search)))
+(allow zygote ion_device (chr_file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote tmpfs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote same_process_hal_file (file (read getattr map execute open)))
+(allow zygote build_attestation_prop (file (read getattr map open)))
+(allow zygote storage_config_prop (file (read getattr map open)))
+(allow zygote overlay_prop (file (read getattr map open)))
+(allow zygote exported_overlay_prop (file (read getattr map open)))
+(allow zygote device_config_runtime_native_prop (file (read getattr map open)))
+(allow zygote device_config_runtime_native_boot_prop (file (read getattr map open)))
+(allow zygote device_config_window_manager_native_boot_prop (file (read getattr map open)))
+(dontaudit zygote self (capability (fsetid sys_resource)))
+(dontaudit zygote self (cap_userns (fsetid sys_resource)))
+(dontaudit zygote media_rw_data_file (dir (read setattr open)))
+(allow zygote system_server (fd (use)))
+(allow zygote system_unsolzygote_socket (sock_file (write)))
+(allow zygote system_server (unix_dgram_socket (sendto)))
+(allow zygote media_variant_prop (file (read getattr map open)))
+(allow zygote odsign_prop (file (read getattr map open)))
+(allow zygote packagemanager_config_prop (file (read getattr map open)))
+(allow zygote qemu_sf_lcd_density_prop (file (read getattr map open)))
+(allow zygote persist_wm_debug_prop (file (read getattr map open)))
+(allow zygote persist_sysui_builder_extras_prop (file (read getattr map open)))
+(allow zygote persist_sysui_ranking_update_prop (file (read getattr map open)))
+(allow zygote apex_info_file (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote vendor_apex_file (dir (getattr search)))
+(allow zygote vendor_apex_file (file (getattr)))
+(allow zygote vendor_apex_metadata_file (dir (search)))
+(allow zygote sysfs_fs_f2fs (dir (ioctl read getattr lock open watch watch_reads search)))
+(allow zygote sysfs_fs_f2fs (file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote sysfs_fs_f2fs (lnk_file (ioctl read getattr lock map open watch watch_reads)))
+(allow zygote system_font_fallback_file (file (ioctl read getattr lock map open watch watch_reads)))
+;;* lmx 289 system/sepolicy/private/zygote.te
+
+(neverallow zygote base_typeattr_1011 (process (dyntransition)))
+;;* lme
+
+;;* lmx 298 system/sepolicy/private/zygote.te
+
+(neverallow zygote base_typeattr_1012 (file (execute execute_no_trans)))
+;;* lme
+
+;;* lmx 306 system/sepolicy/private/zygote.te
+
+(neverallow zygote bluetooth_a2dp_offload_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow zygote bluetooth_audio_hal_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow zygote bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+(neverallow zygote exported_bluetooth_prop (file (ioctl read write create getattr setattr lock append map unlink rename open watch watch_reads)))
+;;* lme
+
+;;* lmx 309 system/sepolicy/private/zygote.te
+
+(neverallow zygote app_data_file_type (dir (ioctl read write create setattr lock relabelfrom relabelto append map unlink link rename execute quotaon mounton audit_access open execmod watch watch_mount watch_sb watch_with_perm watch_reads add_name remove_name reparent search rmdir)))
+;;* lme
+
+(typetransition zygote zygote anon_inode "[userfaultfd]" zygote_userfaultfd)
+(typetransition webview_zygote webview_zygote anon_inode "[userfaultfd]" webview_zygote_userfaultfd)
+(typetransition vzwomatrigger_app vzwomatrigger_app anon_inode "[userfaultfd]" vzwomatrigger_app_userfaultfd)
+(typetransition untrusted_app_32 untrusted_app_32 anon_inode "[userfaultfd]" untrusted_app_32_userfaultfd)
+(typetransition untrusted_app_30 untrusted_app_30 anon_inode "[userfaultfd]" untrusted_app_30_userfaultfd)
+(typetransition untrusted_app_29 untrusted_app_29 anon_inode "[userfaultfd]" untrusted_app_29_userfaultfd)
+(typetransition untrusted_app_27 untrusted_app_27 anon_inode "[userfaultfd]" untrusted_app_27_userfaultfd)
+(typetransition untrusted_app_25 untrusted_app_25 anon_inode "[userfaultfd]" untrusted_app_25_userfaultfd)
+(typetransition untrusted_app untrusted_app anon_inode "[userfaultfd]" untrusted_app_userfaultfd)
+(typetransition traceur_app traceur_app anon_inode "[userfaultfd]" traceur_app_userfaultfd)
+(typetransition system_server system_data_file sock_file "unsolzygotesocket" system_unsolzygote_socket)
+(typetransition system_server system_data_file sock_file "ndebugsocket" system_ndebug_socket)
+(typetransition system_server system_server anon_inode "[userfaultfd]" system_server_userfaultfd)
+(typetransition system_app system_app anon_inode "[userfaultfd]" system_app_userfaultfd)
+(typetransition snapuserd snapuserd anon_inode "[io_uring]" snapuserd_iouring)
+(typetransition simpleperf simpleperf anon_inode "[userfaultfd]" simpleperf_userfaultfd)
+(typetransition shell shell anon_inode "[userfaultfd]" shell_userfaultfd)
+(typetransition shared_relro shared_relro anon_inode "[userfaultfd]" shared_relro_userfaultfd)
+(typetransition secure_element secure_element anon_inode "[userfaultfd]" secure_element_userfaultfd)
+(typetransition sdk_sandbox_next sdk_sandbox_next anon_inode "[userfaultfd]" sdk_sandbox_next_userfaultfd)
+(typetransition sdk_sandbox_audit sdk_sandbox_audit anon_inode "[userfaultfd]" sdk_sandbox_audit_userfaultfd)
+(typetransition sdk_sandbox_34 sdk_sandbox_34 anon_inode "[userfaultfd]" sdk_sandbox_34_userfaultfd)
+(typetransition runas_app runas_app anon_inode "[userfaultfd]" runas_app_userfaultfd)
+(typetransition rkpdapp rkpdapp anon_inode "[userfaultfd]" rkpdapp_userfaultfd)
+(typetransition radio radio anon_inode "[userfaultfd]" radio_userfaultfd)
+(typetransition priv_app priv_app anon_inode "[userfaultfd]" priv_app_userfaultfd)
+(typetransition platform_app platform_app anon_inode "[userfaultfd]" platform_app_userfaultfd)
+(typetransition permissioncontroller_app permissioncontroller_app anon_inode "[userfaultfd]" permissioncontroller_app_userfaultfd)
+(typetransition odrefresh odrefresh anon_inode "[userfaultfd]" odrefresh_userfaultfd)
+(typetransition nfc nfc anon_inode "[userfaultfd]" nfc_userfaultfd)
+(typetransition network_stack network_stack anon_inode "[userfaultfd]" network_stack_userfaultfd)
+(typetransition mediaprovider_app mediaprovider_app anon_inode "[userfaultfd]" mediaprovider_app_userfaultfd)
+(typetransition mediaprovider mediaprovider anon_inode "[userfaultfd]" mediaprovider_userfaultfd)
+(typetransition isolated_compute_app isolated_compute_app anon_inode "[userfaultfd]" isolated_compute_app_userfaultfd)
+(typetransition isolated_app isolated_app anon_inode "[userfaultfd]" isolated_app_userfaultfd)
+(typetransition gmscore_app gmscore_app anon_inode "[userfaultfd]" gmscore_app_userfaultfd)
+(typetransition fastbootd fastbootd anon_inode "[io_uring]" fastbootd_iouring)
+(typetransition ephemeral_app ephemeral_app anon_inode "[userfaultfd]" ephemeral_app_userfaultfd)
+(typetransition dexoptanalyzer dexoptanalyzer anon_inode "[userfaultfd]" dexoptanalyzer_userfaultfd)
+(typetransition dexopt_chroot_setup dexopt_chroot_setup anon_inode "[userfaultfd]" dexopt_chroot_setup_userfaultfd)
+(typetransition dex2oat dex2oat anon_inode "[userfaultfd]" dex2oat_userfaultfd)
+(typetransition device_as_webcam device_as_webcam anon_inode "[userfaultfd]" device_as_webcam_userfaultfd)
+(typetransition bluetooth bluetooth anon_inode "[userfaultfd]" bluetooth_userfaultfd)
+(typetransition artd artd anon_inode "[userfaultfd]" artd_userfaultfd)
+(typetransition app_zygote app_zygote anon_inode "[userfaultfd]" app_zygote_userfaultfd)
+(typeattribute base_typeattr_1012)
+(typeattributeset base_typeattr_1012 (and (data_file_type ) (not (dalvikcache_data_file apex_art_data_file ))))
+(typeattribute base_typeattr_1011)
+(typeattributeset base_typeattr_1011 (not (appdomain app_zygote webview_zygote system_server_startup ) ))
+(typeattribute base_typeattr_1010)
+(typeattributeset base_typeattr_1010 (and (domain ) (not (webview_zygote ))))
+(typeattribute base_typeattr_1009)
+(typeattributeset base_typeattr_1009 (and (domain ) (not (crash_dump runas_app simpleperf vzwomatrigger_app ))))
+(typeattribute base_typeattr_1008)
+(typeattributeset base_typeattr_1008 (and (appdomain ) (not (runas_app shell simpleperf vzwomatrigger_app ))))
+(typeattribute base_typeattr_1007)
+(typeattributeset base_typeattr_1007 (and (vzwomatrigger_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_1006)
+(typeattributeset base_typeattr_1006 (and (domain ) (not (vzwomatrigger_app ))))
+(typeattribute base_typeattr_1005)
+(typeattributeset base_typeattr_1005 (and (domain ) (not (apexd system_server update_verifier vdc vold gsid ))))
+(typeattribute base_typeattr_1004)
+(typeattributeset base_typeattr_1004 (and (domain ) (not (virtualizationmanager virtualizationservice ))))
+(typeattribute base_typeattr_1003)
+(typeattributeset base_typeattr_1003 (and (domain ) (not (init virtualizationmanager virtualizationservice ))))
+(typeattribute base_typeattr_1002)
+(typeattributeset base_typeattr_1002 (and (domain ) (not (init virtualizationservice ))))
+(typeattribute base_typeattr_1001)
+(typeattributeset base_typeattr_1001 (and (domain ) (not (virtualizationservice ))))
+(typeattribute base_typeattr_1000)
+(typeattributeset base_typeattr_1000 (and (domain ) (not (virtual_camera ))))
+(typeattribute base_typeattr_999)
+(typeattributeset base_typeattr_999 (and (dev_type ) (not (vm_manager_device_type keychord_device hw_random_device port_device lowpan_device ))))
+(typeattribute base_typeattr_998)
+(typeattributeset base_typeattr_998 (and (domain ) (not (crash_dump runas_app simpleperf untrusted_app_32 ))))
+(typeattribute base_typeattr_997)
+(typeattributeset base_typeattr_997 (and (appdomain ) (not (runas_app shell simpleperf untrusted_app_32 ))))
+(typeattribute base_typeattr_996)
+(typeattributeset base_typeattr_996 (and (untrusted_app_32 ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_995)
+(typeattributeset base_typeattr_995 (and (domain ) (not (untrusted_app_32 ))))
+(typeattribute base_typeattr_994)
+(typeattributeset base_typeattr_994 (and (domain ) (not (crash_dump runas_app simpleperf untrusted_app_30 ))))
+(typeattribute base_typeattr_993)
+(typeattributeset base_typeattr_993 (and (appdomain ) (not (runas_app shell simpleperf untrusted_app_30 ))))
+(typeattribute base_typeattr_992)
+(typeattributeset base_typeattr_992 (and (untrusted_app_30 ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_991)
+(typeattributeset base_typeattr_991 (and (domain ) (not (untrusted_app_30 ))))
+(typeattribute base_typeattr_990)
+(typeattributeset base_typeattr_990 (and (domain ) (not (crash_dump runas_app simpleperf untrusted_app_29 ))))
+(typeattribute base_typeattr_989)
+(typeattributeset base_typeattr_989 (and (appdomain ) (not (runas_app shell simpleperf untrusted_app_29 ))))
+(typeattribute base_typeattr_988)
+(typeattributeset base_typeattr_988 (and (untrusted_app_29 ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_987)
+(typeattributeset base_typeattr_987 (and (domain ) (not (untrusted_app_29 ))))
+(typeattribute base_typeattr_986)
+(typeattributeset base_typeattr_986 (and (domain ) (not (crash_dump runas_app simpleperf untrusted_app_27 ))))
+(typeattribute base_typeattr_985)
+(typeattributeset base_typeattr_985 (and (appdomain ) (not (runas_app shell simpleperf untrusted_app_27 ))))
+(typeattribute base_typeattr_984)
+(typeattributeset base_typeattr_984 (and (untrusted_app_27 ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_983)
+(typeattributeset base_typeattr_983 (and (domain ) (not (untrusted_app_27 ))))
+(typeattribute base_typeattr_982)
+(typeattributeset base_typeattr_982 (and (domain ) (not (crash_dump runas_app simpleperf untrusted_app_25 ))))
+(typeattribute base_typeattr_981)
+(typeattributeset base_typeattr_981 (and (appdomain ) (not (runas_app shell simpleperf untrusted_app_25 ))))
+(typeattribute base_typeattr_980)
+(typeattributeset base_typeattr_980 (and (untrusted_app_25 ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_979)
+(typeattributeset base_typeattr_979 (and (domain ) (not (untrusted_app_25 ))))
+(typeattribute base_typeattr_978)
+(typeattributeset base_typeattr_978 (and (domain ) (not (crash_dump runas_app simpleperf untrusted_app ))))
+(typeattribute base_typeattr_977)
+(typeattributeset base_typeattr_977 (and (appdomain ) (not (runas_app shell simpleperf untrusted_app ))))
+(typeattribute base_typeattr_976)
+(typeattributeset base_typeattr_976 (and (untrusted_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_975)
+(typeattributeset base_typeattr_975 (and (domain ) (not (untrusted_app ))))
+(typeattribute base_typeattr_974)
+(typeattributeset base_typeattr_974 (and (domain ) (not (crash_dump runas_app simpleperf traceur_app ))))
+(typeattribute base_typeattr_973)
+(typeattributeset base_typeattr_973 (and (appdomain ) (not (runas_app shell simpleperf traceur_app ))))
+(typeattribute base_typeattr_972)
+(typeattributeset base_typeattr_972 (and (traceur_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_971)
+(typeattributeset base_typeattr_971 (and (domain ) (not (traceur_app ))))
+(typeattribute base_typeattr_970)
+(typeattributeset base_typeattr_970 (and (data_file_type ) (not (packages_list_file game_mode_intervention_list_file ))))
+(typeattribute base_typeattr_969)
+(typeattributeset base_typeattr_969 (and (data_file_type ) (not (system_data_root_file system_data_file system_userdir_file vendor_data_file vendor_userdir_file apk_data_file dalvikcache_data_file user_profile_root_file user_profile_data_file apex_module_data_file bootstat_data_file media_userdir_file update_engine_data_file update_engine_log_data_file system_app_data_file backup_data_file apex_art_data_file ))))
+(typeattribute base_typeattr_968)
+(typeattributeset base_typeattr_968 (and (domain ) (not (dumpstate perfetto shell system_server traced traceur_app ))))
+(typeattribute base_typeattr_967)
+(typeattributeset base_typeattr_967 (and (data_file_type ) (not (trace_data_file perfetto_traces_data_file ))))
+(typeattribute base_typeattr_966)
+(typeattributeset base_typeattr_966 (and (data_file_type ) (not (system_data_root_file system_data_file system_userdir_file vendor_data_file vendor_userdir_file media_userdir_file perfetto_traces_data_file ))))
+(typeattribute base_typeattr_965)
+(typeattributeset base_typeattr_965 (and (domain ) (not (dumpstate init tombstoned vendor_init ))))
+(typeattribute base_typeattr_964)
+(typeattributeset base_typeattr_964 (and (domain ) (not (atrace bluetooth dumpstate system_server traceur_app system_suspend ))))
+(typeattribute base_typeattr_963)
+(typeattributeset base_typeattr_963 (and (domain ) (not (system_suspend ))))
+(typeattribute base_typeattr_962)
+(typeattributeset base_typeattr_962 (and (domain ) (not (init system_server ueventd vendor_init ))))
+(typeattribute base_typeattr_961)
+(typeattributeset base_typeattr_961 (and (domain ) (not (init system_server aconfigd ))))
+(typeattribute base_typeattr_960)
+(typeattributeset base_typeattr_960 (and (dev_type ) (not (vd_device frp_block_device ))))
+(typeattribute base_typeattr_959)
+(typeattributeset base_typeattr_959 (and (dev_type ) (not (frp_block_device ))))
+(typeattribute base_typeattr_958)
+(typeattributeset base_typeattr_958 (and (domain ) (not (flags_health_check init system_server ))))
+(typeattribute base_typeattr_957)
+(typeattributeset base_typeattr_957 (and (domain ) (not (app_zygote init system_server webview_zygote zygote ))))
+(typeattribute base_typeattr_956)
+(typeattributeset base_typeattr_956 (and (domain ) (not (crash_dump init system_server ))))
+(typeattribute base_typeattr_955)
+(typeattributeset base_typeattr_955 (and (domain ) (not (crash_dump perfetto clatd ))))
+(typeattribute base_typeattr_954)
+(typeattributeset base_typeattr_954 (and (file_type ) (not (logcat_exec toolbox_exec ))))
+(typeattribute base_typeattr_953)
+(typeattributeset base_typeattr_953 (and (app_data_file_type ) (not (radio_data_file system_app_data_file ))))
+(typeattribute base_typeattr_952)
+(typeattributeset base_typeattr_952 (and (domain ) (not (init system_app ))))
+(typeattribute base_typeattr_951)
+(typeattributeset base_typeattr_951 (and (service_manager_type ) (not (apex_service default_android_service dnsresolver_service dumpstate_service installd_service lpdump_service mdns_service netd_service system_suspend_control_internal_service system_suspend_control_service virtual_touchpad_service vold_service tracingproxy_service ))))
+(typeattribute base_typeattr_950)
+(typeattributeset base_typeattr_950 (and (domain ) (not (crash_dump runas_app simpleperf system_app ))))
+(typeattribute base_typeattr_949)
+(typeattributeset base_typeattr_949 (and (appdomain ) (not (runas_app shell simpleperf system_app ))))
+(typeattribute base_typeattr_948)
+(typeattributeset base_typeattr_948 (and (system_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_947)
+(typeattributeset base_typeattr_947 (and (domain ) (not (system_app ))))
+(typeattribute base_typeattr_946)
+(typeattributeset base_typeattr_946 (and (domain ) (not (surfaceflinger ))))
+(typeattribute base_typeattr_945)
+(typeattributeset base_typeattr_945 (and (domain ) (not (storaged ))))
+(typeattribute base_typeattr_944)
+(typeattributeset base_typeattr_944 (and (domain ) (not (statsd ))))
+(typeattribute base_typeattr_943)
+(typeattributeset base_typeattr_943 (and (domain ) (not (snapuserd ))))
+(typeattribute base_typeattr_942)
+(typeattributeset base_typeattr_942 (and (domain ) (not (init snapuserd ))))
+(typeattribute base_typeattr_941)
+(typeattributeset base_typeattr_941 (and (simpleperf ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_940)
+(typeattributeset base_typeattr_940 (and (domain ) (not (simpleperf ))))
+(typeattribute base_typeattr_939)
+(typeattributeset base_typeattr_939 (and (untrusted_app_all ephemeral_app isolated_app platform_app priv_app ) (not (runas_app ))))
+(typeattribute base_typeattr_938)
+(typeattributeset base_typeattr_938 (and (domain ) (not (dumpstate init shell ))))
+(typeattribute base_typeattr_937)
+(typeattributeset base_typeattr_937 (and (domain ) (not (crash_dump runas_app shell simpleperf ))))
+(typeattribute base_typeattr_936)
+(typeattributeset base_typeattr_936 (and (shell ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_935)
+(typeattributeset base_typeattr_935 (and (domain ) (not (shell ))))
+(typeattribute base_typeattr_934)
+(typeattributeset base_typeattr_934 (and (domain ) (not (crash_dump runas_app shared_relro simpleperf ))))
+(typeattribute base_typeattr_933)
+(typeattributeset base_typeattr_933 (and (appdomain ) (not (runas_app shared_relro shell simpleperf ))))
+(typeattribute base_typeattr_932)
+(typeattributeset base_typeattr_932 (and (shared_relro ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_931)
+(typeattributeset base_typeattr_931 (and (domain ) (not (shared_relro ))))
+(typeattribute base_typeattr_930)
+(typeattributeset base_typeattr_930 (and (domain ) (not (crash_dump runas_app secure_element simpleperf ))))
+(typeattribute base_typeattr_929)
+(typeattributeset base_typeattr_929 (and (appdomain ) (not (runas_app secure_element shell simpleperf ))))
+(typeattribute base_typeattr_928)
+(typeattributeset base_typeattr_928 (and (secure_element ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_927)
+(typeattributeset base_typeattr_927 (and (domain ) (not (secure_element ))))
+(typeattribute base_typeattr_926)
+(typeattributeset base_typeattr_926 (and (domain ) (not (crash_dump runas_app simpleperf sdk_sandbox_next ))))
+(typeattribute base_typeattr_925)
+(typeattributeset base_typeattr_925 (and (appdomain ) (not (runas_app shell simpleperf sdk_sandbox_next ))))
+(typeattribute base_typeattr_924)
+(typeattributeset base_typeattr_924 (and (sdk_sandbox_next ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_923)
+(typeattributeset base_typeattr_923 (and (domain ) (not (sdk_sandbox_next ))))
+(typeattribute base_typeattr_922)
+(typeattributeset base_typeattr_922 (and (property_type ) (not (system_property_type ))))
+(typeattribute base_typeattr_921)
+(typeattributeset base_typeattr_921 (and (domain ) (not (crash_dump runas_app simpleperf sdk_sandbox_audit ))))
+(typeattribute base_typeattr_920)
+(typeattributeset base_typeattr_920 (and (appdomain ) (not (runas_app shell simpleperf sdk_sandbox_audit ))))
+(typeattribute base_typeattr_919)
+(typeattributeset base_typeattr_919 (and (sdk_sandbox_audit ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_918)
+(typeattributeset base_typeattr_918 (and (domain ) (not (sdk_sandbox_audit ))))
+(typeattribute base_typeattr_917)
+(typeattributeset base_typeattr_917 (and (domain ) (not (init installd system_server vold_prepare_subdirs zygote sdk_sandbox_all ))))
+(typeattribute base_typeattr_916)
+(typeattributeset base_typeattr_916 (and (domain ) (not (init installd system_server vold_prepare_subdirs ))))
+(typeattribute base_typeattr_915)
+(typeattributeset base_typeattr_915 (and (app_data_file_type ) (not (shell_data_file radio_data_file sdk_sandbox_data_file ))))
+(typeattribute base_typeattr_914)
+(typeattributeset base_typeattr_914 (and (domain ) (not (crash_dump runas_app simpleperf sdk_sandbox_34 ))))
+(typeattribute base_typeattr_913)
+(typeattributeset base_typeattr_913 (and (appdomain ) (not (runas_app shell simpleperf sdk_sandbox_34 ))))
+(typeattribute base_typeattr_912)
+(typeattributeset base_typeattr_912 (and (sdk_sandbox_34 ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_911)
+(typeattributeset base_typeattr_911 (and (domain ) (not (sdk_sandbox_34 ))))
+(typeattribute base_typeattr_910)
+(typeattributeset base_typeattr_910 (and (domain ) (not (crash_dump runas_app simpleperf ))))
+(typeattribute base_typeattr_909)
+(typeattributeset base_typeattr_909 (and (appdomain ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_908)
+(typeattributeset base_typeattr_908 (and (runas_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_907)
+(typeattributeset base_typeattr_907 (and (domain ) (not (runas_app ))))
+(typeattribute base_typeattr_906)
+(typeattributeset base_typeattr_906 (and (domain ) (not (crash_dump rkpdapp runas_app simpleperf ))))
+(typeattribute base_typeattr_905)
+(typeattributeset base_typeattr_905 (and (appdomain ) (not (rkpdapp runas_app shell simpleperf ))))
+(typeattribute base_typeattr_904)
+(typeattributeset base_typeattr_904 (and (rkpdapp ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_903)
+(typeattributeset base_typeattr_903 (and (domain ) (not (rkpdapp ))))
+(typeattribute base_typeattr_902)
+(typeattributeset base_typeattr_902 (and (domain ) (not (rkpd ))))
+(typeattribute base_typeattr_901)
+(typeattributeset base_typeattr_901 (and (file_type ) (not (recovery_data_file ))))
+(typeattribute base_typeattr_900)
+(typeattributeset base_typeattr_900 (and (domain ) (not (init radio ))))
+(typeattribute base_typeattr_899)
+(typeattributeset base_typeattr_899 (and (domain ) (not (crash_dump radio runas_app simpleperf ))))
+(typeattribute base_typeattr_898)
+(typeattributeset base_typeattr_898 (and (appdomain ) (not (radio runas_app shell simpleperf ))))
+(typeattribute base_typeattr_897)
+(typeattributeset base_typeattr_897 (and (radio ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_896)
+(typeattributeset base_typeattr_896 (and (appdomain ) (not (system_app device_as_webcam ))))
+(typeattribute base_typeattr_895)
+(typeattributeset base_typeattr_895 (and (domain ) (not (dumpstate init profcollectd ))))
+(typeattribute base_typeattr_894)
+(typeattributeset base_typeattr_894 (and (domain ) (not (coredomain apexd dumpstate vendor_init ))))
+(typeattribute base_typeattr_893)
+(typeattributeset base_typeattr_893 (and (domain ) (not (coredomain apexd dumpstate init ))))
+(typeattribute base_typeattr_892)
+(typeattributeset base_typeattr_892 (and (domain ) (not (init rkpdapp shell ))))
+(typeattribute base_typeattr_891)
+(typeattributeset base_typeattr_891 (and (domain ) (not (hal_dumpstate_server dumpstate init ))))
+(typeattribute base_typeattr_890)
+(typeattributeset base_typeattr_890 (and (domain ) (not (appdomain dumpstate init vendor_init ))))
+(typeattribute base_typeattr_889)
+(typeattributeset base_typeattr_889 (and (domain ) (not (dumpstate init system_app vendor_init ))))
+(typeattribute base_typeattr_888)
+(typeattributeset base_typeattr_888 (and (domain ) (not (init surfaceflinger ))))
+(typeattribute base_typeattr_887)
+(typeattributeset base_typeattr_887 (and (domain ) (not (appdomain hal_telephony_server init radio ))))
+(typeattribute base_typeattr_886)
+(typeattributeset base_typeattr_886 (and (domain ) (not (init shell system_app system_server mtectrl ))))
+(typeattribute base_typeattr_885)
+(typeattributeset base_typeattr_885 (and (domain ) (not (init shell ))))
+(typeattribute base_typeattr_884)
+(typeattributeset base_typeattr_884 (and (domain ) (not (adbd init ))))
+(typeattribute base_typeattr_883)
+(typeattributeset base_typeattr_883 (and (domain ) (not (adbd init system_server vendor_init ))))
+(typeattribute base_typeattr_882)
+(typeattributeset base_typeattr_882 (and (property_type ) (not (extended_core_property_type system_property_type ))))
+(typeattribute base_typeattr_881)
+(typeattributeset base_typeattr_881 (and (coredomain ) (not (system_writes_vendor_properties_violators init ))))
+(typeattribute base_typeattr_880)
+(typeattributeset base_typeattr_880 (and (core_property_type extended_core_property_type dalvik_config_prop_type exported3_system_prop systemsound_config_prop ) (not (debug_prop logd_prop nfc_prop powerctl_prop radio_prop ))))
+(typeattribute base_typeattr_879)
+(typeattributeset base_typeattr_879 (and (domain ) (not (hal_wifi_server dumpstate init vendor_init wificond ))))
+(typeattribute base_typeattr_878)
+(typeattributeset base_typeattr_878 (and (domain ) (not (coredomain hal_wifi_server wificond ))))
+(typeattribute base_typeattr_877)
+(typeattributeset base_typeattr_877 (and (domain ) (not (coredomain hal_camera_server cameraserver vendor_init ))))
+(typeattribute base_typeattr_876)
+(typeattributeset base_typeattr_876 (and (domain ) (not (coredomain hal_bluetooth_server bluetooth vendor_init ))))
+(typeattribute base_typeattr_875)
+(typeattributeset base_typeattr_875 (and (domain ) (not (coredomain hal_bluetooth_server bluetooth ))))
+(typeattribute base_typeattr_874)
+(typeattributeset base_typeattr_874 (and (domain ) (not (appdomain coredomain hal_telephony_server ))))
+(typeattribute base_typeattr_873)
+(typeattributeset base_typeattr_873 (and (domain ) (not (appdomain coredomain hal_telephony_server vendor_init ))))
+(typeattribute base_typeattr_872)
+(typeattributeset base_typeattr_872 (and (domain ) (not (appdomain coredomain hal_nfc_server ))))
+(typeattribute base_typeattr_871)
+(typeattributeset base_typeattr_871 (and (core_property_type extended_core_property_type exported3_system_prop exported_dumpstate_prop exported_config_prop exported_default_prop exported_system_prop usb_control_prop ) (not (nfc_prop powerctl_prop radio_prop ))))
+(typeattribute base_typeattr_870)
+(typeattributeset base_typeattr_870 (and (domain ) (not (appdomain coredomain vendor_init ))))
+(typeattribute base_typeattr_869)
+(typeattributeset base_typeattr_869 (and (domain ) (not (init misctrl ))))
+(typeattribute base_typeattr_868)
+(typeattributeset base_typeattr_868 (and (domain ) (not (dumpstate init misctrl ))))
+(typeattribute base_typeattr_867)
+(typeattributeset base_typeattr_867 (and (domain ) (not (extra_free_kbytes init ))))
+(typeattribute base_typeattr_866)
+(typeattributeset base_typeattr_866 (and (core_property_type ) (not (fingerprint_prop restorecon_prop usb_prop config_prop cppreopt_prop dalvik_prop debuggerd_prop dhcp_prop dumpstate_prop net_radio_prop pan_result_prop persist_debug_prop shell_prop vold_prop audio_prop debug_prop logd_prop nfc_prop ota_prop powerctl_prop radio_prop system_prop ))))
+(typeattribute base_typeattr_865)
+(typeattributeset base_typeattr_865 (and (vendor_property_type ) (not (vendor_public_property_type ))))
+(typeattribute base_typeattr_864)
+(typeattributeset base_typeattr_864 (and (vendor_property_type vendor_internal_property_type ) (not (vendor_restricted_property_type vendor_public_property_type ))))
+(typeattribute base_typeattr_863)
+(typeattributeset base_typeattr_863 (and (system_property_type ) (not (system_public_property_type ))))
+(typeattribute base_typeattr_862)
+(typeattributeset base_typeattr_862 (and (system_property_type system_internal_property_type ) (not (system_restricted_property_type system_public_property_type ))))
+(typeattribute base_typeattr_861)
+(typeattributeset base_typeattr_861 (and (property_type ) (not (system_property_type vendor_property_type ))))
+(typeattribute base_typeattr_860)
+(typeattributeset base_typeattr_860 (and (app_data_file_type ) (not (privapp_data_file ))))
+(typeattribute base_typeattr_859)
+(typeattributeset base_typeattr_859 (and (domain ) (not (crash_dump priv_app runas_app simpleperf ))))
+(typeattribute base_typeattr_858)
+(typeattributeset base_typeattr_858 (and (appdomain ) (not (priv_app runas_app shell simpleperf ))))
+(typeattribute base_typeattr_857)
+(typeattributeset base_typeattr_857 (and (priv_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_856)
+(typeattributeset base_typeattr_856 (and (domain ) (not (priv_app ))))
+(typeattribute base_typeattr_855)
+(typeattributeset base_typeattr_855 (and (domain ) (not (dumpstate init ))))
+(typeattribute base_typeattr_854)
+(typeattributeset base_typeattr_854 (and (domain ) (not (crash_dump platform_app runas_app simpleperf ))))
+(typeattribute base_typeattr_853)
+(typeattributeset base_typeattr_853 (and (appdomain ) (not (platform_app runas_app shell simpleperf ))))
+(typeattribute base_typeattr_852)
+(typeattributeset base_typeattr_852 (and (platform_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_851)
+(typeattributeset base_typeattr_851 (and (domain ) (not (platform_app ))))
+(typeattribute base_typeattr_850)
+(typeattributeset base_typeattr_850 (and (domain ) (not (crash_dump runas_app simpleperf permissioncontroller_app ))))
+(typeattribute base_typeattr_849)
+(typeattributeset base_typeattr_849 (and (appdomain ) (not (runas_app shell simpleperf permissioncontroller_app ))))
+(typeattribute base_typeattr_848)
+(typeattributeset base_typeattr_848 (and (permissioncontroller_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_847)
+(typeattributeset base_typeattr_847 (and (domain ) (not (permissioncontroller_app ))))
+(typeattribute base_typeattr_846)
+(typeattributeset base_typeattr_846 (and (data_file_type ) (not (perfetto_traces_data_file perfetto_traces_bugreport_data_file perfetto_traces_profiling_data_file perfetto_configs_data_file ))))
+(typeattribute base_typeattr_845)
+(typeattributeset base_typeattr_845 (and (system_data_file ) (not (perfetto_traces_data_file perfetto_traces_profiling_data_file ))))
+(typeattribute base_typeattr_844)
+(typeattributeset base_typeattr_844 (and (data_file_type ) (not (system_data_root_file system_data_file system_userdir_file vendor_data_file vendor_userdir_file media_userdir_file perfetto_traces_data_file perfetto_traces_bugreport_data_file perfetto_traces_profiling_data_file perfetto_configs_data_file ))))
+(typeattribute base_typeattr_843)
+(typeattributeset base_typeattr_843 (and (domain ) (not (adbd incidentd init perfetto shell traced ))))
+(typeattribute base_typeattr_842)
+(typeattributeset base_typeattr_842 (and (domain ) (not (adbd dumpstate incidentd init perfetto priv_app shell system_server traced ))))
+(typeattribute base_typeattr_841)
+(typeattributeset base_typeattr_841 (and (domain ) (not (ot_daemon ))))
+(typeattribute base_typeattr_840)
+(typeattributeset base_typeattr_840 (and (domain ) (not (init fsverity_init odsign ))))
+(typeattribute base_typeattr_839)
+(typeattributeset base_typeattr_839 (and (domain ) (not (init odsign ))))
+(typeattribute base_typeattr_838)
+(typeattributeset base_typeattr_838 (and (domain ) (not (init system_server odrefresh ))))
+(typeattribute base_typeattr_837)
+(typeattributeset base_typeattr_837 (and (domain ) (not (init compos_fd_server odrefresh ))))
+(typeattribute base_typeattr_836)
+(typeattributeset base_typeattr_836 (and (domain ) (not (odrefresh ))))
+(typeattribute base_typeattr_835)
+(typeattributeset base_typeattr_835 (and (domain ) (not (crash_dump nfc runas_app simpleperf ))))
+(typeattribute base_typeattr_834)
+(typeattributeset base_typeattr_834 (and (appdomain ) (not (nfc runas_app shell simpleperf ))))
+(typeattribute base_typeattr_833)
+(typeattributeset base_typeattr_833 (and (nfc ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_832)
+(typeattributeset base_typeattr_832 (and (domain ) (not (nfc ))))
+(typeattribute base_typeattr_831)
+(typeattributeset base_typeattr_831 (and (domain ) (not (crash_dump network_stack runas_app simpleperf ))))
+(typeattribute base_typeattr_830)
+(typeattributeset base_typeattr_830 (and (appdomain ) (not (network_stack runas_app shell simpleperf ))))
+(typeattribute base_typeattr_829)
+(typeattributeset base_typeattr_829 (and (network_stack ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_828)
+(typeattributeset base_typeattr_828 (and (domain ) (not (network_stack ))))
+(typeattribute base_typeattr_827)
+(typeattributeset base_typeattr_827 (and (domain ) (not (init netd ))))
+(typeattribute base_typeattr_826)
+(typeattributeset base_typeattr_826 (and (domain ) (not (dumpstate init netd ))))
+(typeattribute base_typeattr_825)
+(typeattributeset base_typeattr_825 (and (netdomain ) (not (untrusted_app_all ephemeral_app mediaprovider priv_app sdk_sandbox_all ))))
+(typeattribute base_typeattr_824)
+(typeattributeset base_typeattr_824 (and (netdomain ) (not (ephemeral_app sdk_sandbox_all ))))
+(typeattribute base_typeattr_823)
+(typeattributeset base_typeattr_823 (and (mlstrustedsubject ) (not (adbd artd installd runas system_server zygote ))))
+(typeattribute base_typeattr_822)
+(typeattributeset base_typeattr_822 (and (mlstrustedsubject ) (not (artd installd ))))
+(typeattribute base_typeattr_821)
+(typeattributeset base_typeattr_821 (and (domain ) (not (mediatuner ))))
+(typeattribute base_typeattr_820)
+(typeattributeset base_typeattr_820 (and (domain ) (not (mediatranscoding ))))
+(typeattribute base_typeattr_819)
+(typeattributeset base_typeattr_819 (and (domain ) (not (crash_dump runas_app simpleperf mediaprovider_app ))))
+(typeattribute base_typeattr_818)
+(typeattributeset base_typeattr_818 (and (appdomain ) (not (runas_app shell simpleperf mediaprovider_app ))))
+(typeattribute base_typeattr_817)
+(typeattributeset base_typeattr_817 (and (mediaprovider_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_816)
+(typeattributeset base_typeattr_816 (and (domain ) (not (mediaprovider_app ))))
+(typeattribute base_typeattr_815)
+(typeattributeset base_typeattr_815 (and (domain ) (not (crash_dump mediaprovider runas_app simpleperf ))))
+(typeattribute base_typeattr_814)
+(typeattributeset base_typeattr_814 (and (appdomain ) (not (mediaprovider runas_app shell simpleperf ))))
+(typeattribute base_typeattr_813)
+(typeattributeset base_typeattr_813 (and (mediaprovider ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_812)
+(typeattributeset base_typeattr_812 (and (domain ) (not (mediaprovider ))))
+(typeattribute base_typeattr_811)
+(typeattributeset base_typeattr_811 (and (domain ) (not (dumpstate servicemanager shell lpdumpd ))))
+(typeattribute base_typeattr_810)
+(typeattributeset base_typeattr_810 (and (domain ) (not (dumpstate shell lpdumpd ))))
+(typeattribute base_typeattr_809)
+(typeattributeset base_typeattr_809 (and (domain ) (not (lpdumpd ))))
+(typeattribute base_typeattr_808)
+(typeattributeset base_typeattr_808 (and (domain ) (not (dumpstate incidentd init ))))
+(typeattribute base_typeattr_807)
+(typeattributeset base_typeattr_807 (and (domain ) (not (logd ))))
+(typeattribute base_typeattr_806)
+(typeattributeset base_typeattr_806 (and (appdomain ) (not (bluetooth platform_app priv_app radio shell system_app ))))
+(typeattribute base_typeattr_805)
+(typeattributeset base_typeattr_805 (and (domain ) (not (appdomain bootstat dumpstate init logd servicemanager surfaceflinger system_server zygote ))))
+(typeattribute base_typeattr_804)
+(typeattributeset base_typeattr_804 (and (file_type ) (not (runtime_event_log_tags_file shell_data_file ))))
+(typeattribute base_typeattr_803)
+(typeattributeset base_typeattr_803 (and (domain ) (not (init lmkd vendor_init ))))
+(typeattribute base_typeattr_802)
+(typeattributeset base_typeattr_802 (and (domain ) (not (init otapreopt_chroot linkerconfig ))))
+(typeattribute base_typeattr_801)
+(typeattributeset base_typeattr_801 (and (domain ) (not (crash_dump isolated_compute_app runas_app simpleperf ))))
+(typeattribute base_typeattr_800)
+(typeattributeset base_typeattr_800 (and (appdomain ) (not (isolated_compute_app runas_app shell simpleperf ))))
+(typeattribute base_typeattr_799)
+(typeattributeset base_typeattr_799 (and (isolated_compute_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_798)
+(typeattributeset base_typeattr_798 (and (domain ) (not (isolated_compute_app ))))
+(typeattribute base_typeattr_797)
+(typeattributeset base_typeattr_797 (and (sysfs_type ) (not (sysfs_transparent_hugepage sysfs_usb sysfs_fs_fuse_features sysfs_fs_incfs_features sysfs_devices_system_cpu ))))
+(typeattribute base_typeattr_796)
+(typeattributeset base_typeattr_796 (and (service_manager_type ) (not (activity_service display_service webviewupdate_service ))))
+(typeattribute base_typeattr_795)
+(typeattributeset base_typeattr_795 (and (isolated_app_all ) (not (isolated_compute_app ))))
+(typeattribute base_typeattr_794)
+(typeattributeset base_typeattr_794 (and (domain ) (not (crash_dump isolated_app runas_app simpleperf ))))
+(typeattribute base_typeattr_793)
+(typeattributeset base_typeattr_793 (and (appdomain ) (not (isolated_app runas_app shell simpleperf ))))
+(typeattribute base_typeattr_792)
+(typeattributeset base_typeattr_792 (and (isolated_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_791)
+(typeattributeset base_typeattr_791 (and (dev_type ) (not (vm_manager_device_type keychord_device hw_random_device port_device ))))
+(typeattribute base_typeattr_790)
+(typeattributeset base_typeattr_790 (and (domain ) (not (incidentd init system_server vold ))))
+(typeattribute base_typeattr_789)
+(typeattributeset base_typeattr_789 (and (domain ) (not (incidentd init vold ))))
+(typeattribute base_typeattr_788)
+(typeattributeset base_typeattr_788 (and (domain ) (not (incidentd ))))
+(typeattribute base_typeattr_787)
+(typeattributeset base_typeattr_787 (and (system_server_service app_api_service system_api_service ) (not (tracingproxy_service ))))
+(typeattribute base_typeattr_786)
+(typeattributeset base_typeattr_786 (and (domain ) (not (incident_helper incidentd shell ))))
+(typeattribute base_typeattr_785)
+(typeattributeset base_typeattr_785 (and (domain ) (not (dumpstate incident shell su ))))
+(typeattribute base_typeattr_784)
+(typeattributeset base_typeattr_784 (and (domain ) (not (hwservicemanager ))))
+(typeattribute base_typeattr_783)
+(typeattributeset base_typeattr_783 (and (vendor_file_type ) (not (vndk_sp_file ))))
+(typeattribute base_typeattr_782)
+(typeattributeset base_typeattr_782 (and (domain ) (not (init gsid ))))
+(typeattribute base_typeattr_781)
+(typeattributeset base_typeattr_781 (and (gsi_metadata_file_type ) (not (gsi_public_metadata_file ))))
+(typeattribute base_typeattr_780)
+(typeattributeset base_typeattr_780 (and (domain ) (not (fastbootd init gsid ))))
+(typeattribute base_typeattr_779)
+(typeattributeset base_typeattr_779 (and (domain ) (not (update_engine_common fastbootd init recovery gsid ))))
+(typeattribute base_typeattr_778)
+(typeattributeset base_typeattr_778 (and (domain ) (not (gsid ))))
+(typeattribute base_typeattr_777)
+(typeattributeset base_typeattr_777 (and (domain ) (not (gpuservice init vendor_init ))))
+(typeattribute base_typeattr_776)
+(typeattributeset base_typeattr_776 (and (domain ) (not (gpuservice ))))
+(typeattribute base_typeattr_775)
+(typeattributeset base_typeattr_775 (and (domain ) (not (dumpstate gmscore_app init vendor_init ))))
+(typeattribute base_typeattr_774)
+(typeattributeset base_typeattr_774 (and (domain ) (not (crash_dump gmscore_app runas_app simpleperf ))))
+(typeattribute base_typeattr_773)
+(typeattributeset base_typeattr_773 (and (appdomain ) (not (gmscore_app runas_app shell simpleperf ))))
+(typeattribute base_typeattr_772)
+(typeattributeset base_typeattr_772 (and (gmscore_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_771)
+(typeattributeset base_typeattr_771 (and (domain ) (not (gmscore_app ))))
+(typeattribute base_typeattr_770)
+(typeattributeset base_typeattr_770 (and (fs_type file_type ) (not (fuseblkd_untrusted_exec ))))
+(typeattribute base_typeattr_769)
+(typeattributeset base_typeattr_769 (and (fs_type file_type ) (not (fuseblkd_exec ))))
+(typeattribute base_typeattr_768)
+(typeattributeset base_typeattr_768 (and (domain ) (not (fuseblkd_untrusted ))))
+(typeattribute base_typeattr_767)
+(typeattributeset base_typeattr_767 (and (domain ) (not (fastbootd ))))
+(typeattribute base_typeattr_766)
+(typeattributeset base_typeattr_766 (and (domain ) (not (evsmanagerd ))))
+(typeattribute base_typeattr_765)
+(typeattributeset base_typeattr_765 (and (domain ) (not (crash_dump ephemeral_app runas_app simpleperf ))))
+(typeattribute base_typeattr_764)
+(typeattributeset base_typeattr_764 (and (appdomain ) (not (ephemeral_app runas_app shell simpleperf ))))
+(typeattribute base_typeattr_763)
+(typeattributeset base_typeattr_763 (and (ephemeral_app ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_762)
+(typeattributeset base_typeattr_762 (and (domain ) (not (ephemeral_app ))))
+(typeattribute base_typeattr_761)
+(typeattributeset base_typeattr_761 (and (domain ) (not (init aconfigd ))))
+(typeattribute base_typeattr_760)
+(typeattributeset base_typeattr_760 (and (domain ) (not (gmscore_app init vold_prepare_subdirs ))))
+(typeattribute base_typeattr_759)
+(typeattributeset base_typeattr_759 (and (domain ) (not (appdomain artd installd system_server traced_probes ))))
+(typeattribute base_typeattr_758)
+(typeattributeset base_typeattr_758 (and (domain ) (not (appdomain adbd artd dumpstate init installd simpleperf_app_runner system_server ))))
+(typeattribute base_typeattr_757)
+(typeattributeset base_typeattr_757 (and (domain ) (not (adbd artd dumpstate init installd shell vold ))))
+(typeattribute base_typeattr_756)
+(typeattributeset base_typeattr_756 (and (domain ) (not (appdomain adbd artd dumpstate installd ))))
+(typeattribute base_typeattr_755)
+(typeattributeset base_typeattr_755 (and (domain ) (not (init kernel vendor_modprobe uprobestats ))))
+(typeattribute base_typeattr_754)
+(typeattributeset base_typeattr_754 (and (domain ) (not (ueventd vendor_init ))))
+(typeattribute base_typeattr_753)
+(typeattributeset base_typeattr_753 (and (debugfs_type ) (not (tracefs_type ))))
+(typeattribute base_typeattr_752)
+(typeattributeset base_typeattr_752 (and (domain ) (not (vendor_modprobe ))))
+(typeattribute base_typeattr_751)
+(typeattributeset base_typeattr_751 (and (domain ) (not (init traced_perf traced_probes vendor_init ))))
+(typeattribute base_typeattr_750)
+(typeattributeset base_typeattr_750 (and (domain ) (not (init otapreopt_chroot ))))
+(typeattribute base_typeattr_749)
+(typeattributeset base_typeattr_749 (and (vendor_file_type ) (not (vendor_task_profiles_file vendor_app_file vendor_configs_file same_process_hal_file vndk_sp_file vendor_framework_file vendor_overlay_file vendor_public_lib_file vendor_public_framework_file vendor_microdroid_file vendor_keylayout_file vendor_keychars_file vendor_idc_file vendor_uuid_mapping_config_file vendor_apex_file vendor_apex_metadata_file vendor_service_contexts_file vendor_aconfig_storage_file ))))
+(typeattribute base_typeattr_748)
+(typeattributeset base_typeattr_748 (and (coredomain ) (not (system_executes_vendor_violators crash_dump heapprofd init kernel shell traced_perf ueventd vold crosvm ))))
+(typeattribute base_typeattr_747)
+(typeattributeset base_typeattr_747 (and (coredomain ) (not (heapprofd init logd mdnsd netd prng_seeder tombstoned traced traced_perf ))))
+(typeattribute base_typeattr_746)
+(typeattributeset base_typeattr_746 (and (domain ) (not (appdomain coredomain socket_between_core_and_vendor_violators ))))
+(typeattribute base_typeattr_745)
+(typeattributeset base_typeattr_745 (and (coredomain ) (not (appdomain bootanim crash_dump heapprofd init kernel traced_perf ueventd ))))
+(typeattribute base_typeattr_744)
+(typeattributeset base_typeattr_744 (and (domain ) (not (init vendor_init art_boot ))))
+(typeattribute base_typeattr_743)
+(typeattributeset base_typeattr_743 (and (domain ) (not (dumpstate init system_server ))))
+(typeattribute base_typeattr_742)
+(typeattributeset base_typeattr_742 (and (domain ) (not (fsck init installd zygote ))))
+(typeattribute base_typeattr_741)
+(typeattributeset base_typeattr_741 (and (domain ) (not (hal_bootctl_server fastbootd init kernel recovery tee ueventd uncrypt gsid ))))
+(typeattribute base_typeattr_740)
+(typeattributeset base_typeattr_740 (and (debugfs_type ) (not (debugfs_tracing_debug ))))
+(typeattribute base_typeattr_739)
+(typeattributeset base_typeattr_739 (and (fs_type ) (not (fusefs_type sdcard_type ))))
+(typeattribute base_typeattr_738)
+(typeattributeset base_typeattr_738 (and (domain ) (not (apexd init kernel otapreopt_chroot recovery update_engine vold zygote ))))
+(typeattribute base_typeattr_737)
+(typeattributeset base_typeattr_737 (not (apexd artd dnsmasq dumpstate heapprofd init installd lmkd netd recovery rss_hwm_reset sdcardd tee traced_perf traced_probes ueventd uncrypt vendor_init vold vold_prepare_subdirs zygote migrate_legacy_obb_data postinstall_dexopt ) ))
+(typeattribute base_typeattr_736)
+(typeattributeset base_typeattr_736 (not (apexd artd dnsmasq dumpstate init installd lmkd netd recovery rss_hwm_reset sdcardd tee ueventd uncrypt vendor_init vold vold_prepare_subdirs zygote migrate_legacy_obb_data postinstall_dexopt ) ))
+(typeattribute base_typeattr_735)
+(typeattributeset base_typeattr_735 (and (domain ) (not (apexd init vold_prepare_subdirs compos_fd_server composd odrefresh odsign ))))
+(typeattribute base_typeattr_734)
+(typeattributeset base_typeattr_734 (and (domain ) (not (artd init installd zygote cppreopts dex2oat otapreopt_slot postinstall_dexopt ))))
+(typeattribute base_typeattr_733)
+(typeattributeset base_typeattr_733 (and (file_type ) (not (exec_type system_file_type vendor_file_type system_lib_file system_linker_exec postinstall_file ))))
+(typeattribute base_typeattr_732)
+(typeattributeset base_typeattr_732 (and (domain ) (not (appdomain app_zygote shell webview_zygote zygote system_server_startup ))))
+(typeattribute base_typeattr_731)
+(typeattributeset base_typeattr_731 (and (fs_type ) (not (rootfs ))))
+(typeattribute base_typeattr_730)
+(typeattributeset base_typeattr_730 (and (domain ) (not (appdomain bootanim recovery ))))
+(typeattribute base_typeattr_729)
+(typeattributeset base_typeattr_729 (and (domain ) (not (init installd system_server ))))
+(typeattribute base_typeattr_728)
+(typeattributeset base_typeattr_728 (and (domain ) (not (adbd apexd init installd kernel priv_app shell system_app system_server crosvm virtualizationmanager ))))
+(typeattribute base_typeattr_727)
+(typeattributeset base_typeattr_727 (and (domain ) (not (apexd init installd priv_app system_server virtualizationmanager ))))
+(typeattribute base_typeattr_726)
+(typeattributeset base_typeattr_726 (and (domain ) (not (artd installd ))))
+(typeattribute base_typeattr_725)
+(typeattributeset base_typeattr_725 (and (domain ) (not (appdomain app_zygote artd installd rs ))))
+(typeattribute base_typeattr_724)
+(typeattributeset base_typeattr_724 (and (domain ) (not (appdomain artd installd rs ))))
+(typeattribute base_typeattr_723)
+(typeattributeset base_typeattr_723 (and (domain ) (not (appdomain adbd app_zygote artd installd profman rs runas system_server zygote dexoptanalyzer viewcompiler ))))
+(typeattribute base_typeattr_722)
+(typeattributeset base_typeattr_722 (and (domain ) (not (gmscore_app priv_app ))))
+(typeattribute base_typeattr_721)
+(typeattributeset base_typeattr_721 (and (domain ) (not (dumpstate system_server vold storaged ))))
+(typeattribute base_typeattr_720)
+(typeattributeset base_typeattr_720 (and (domain ) (not (hal_bootctl_server fastbootd init recovery ueventd uncrypt update_engine vendor_init vendor_misc_writer vold misctrl mtectrl ))))
+(typeattribute base_typeattr_719)
+(typeattributeset base_typeattr_719 (and (domain ) (not (hal_audio_server hal_camera_server hal_cas_server hal_codec2_server hal_configstore_server hal_drm_server hal_omx_server app_zygote artd audioserver cameraserver init kernel mediadrmserver mediaextractor mediametrics mediaserver mediatranscoding system_server ueventd vendor_init webview_zygote mediatuner ))))
+(typeattribute base_typeattr_718)
+(typeattributeset base_typeattr_718 (and (domain ) (not (untrusted_app_all isolated_app_all ephemeral_app ))))
+(typeattribute base_typeattr_717)
+(typeattributeset base_typeattr_717 (and (domain ) (not (appdomain coredomain ))))
+(typeattribute base_typeattr_716)
+(typeattributeset base_typeattr_716 (and (domain ) (not (appdomain rs ))))
+(typeattribute base_typeattr_715)
+(typeattributeset base_typeattr_715 (and (domain ) (not (hal_configstore_server apexd app_zygote bpfloader crash_dump init kernel keystore llkd logd ueventd vendor_init vold webview_zygote zygote crosvm ))))
+(typeattribute base_typeattr_714)
+(typeattributeset base_typeattr_714 (and (domain ) (not (hal_configstore_server apexd app_zygote bpfloader crash_dump init kernel keystore llkd logd logpersist recovery recovery_persist recovery_refresh ueventd vendor_init vold webview_zygote zygote crosvm ))))
+(typeattribute base_typeattr_713)
+(typeattributeset base_typeattr_713 (and (domain ) (not (dexoptanalyzer ))))
+(typeattribute base_typeattr_712)
+(typeattributeset base_typeattr_712 (and (domain ) (not (dexopt_chroot_setup ))))
+(typeattribute base_typeattr_711)
+(typeattributeset base_typeattr_711 (and (domain ) (not (dex2oat ))))
+(typeattribute base_typeattr_710)
+(typeattributeset base_typeattr_710 (and (domain ) (not (crash_dump runas_app simpleperf device_as_webcam ))))
+(typeattribute base_typeattr_709)
+(typeattributeset base_typeattr_709 (and (appdomain ) (not (runas_app shell simpleperf device_as_webcam ))))
+(typeattribute base_typeattr_708)
+(typeattributeset base_typeattr_708 (and (device_as_webcam ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_707)
+(typeattributeset base_typeattr_707 (and (domain ) (not (device_as_webcam ))))
+(typeattribute base_typeattr_706)
+(typeattributeset base_typeattr_706 (and (domain ) (not (init derive_sdk ))))
+(typeattribute base_typeattr_705)
+(typeattributeset base_typeattr_705 (and (domain ) (not (crosvm virtualizationmanager ))))
+(typeattribute base_typeattr_704)
+(typeattributeset base_typeattr_704 (and (app_data_file_type ) (not (shell_data_file app_data_file privapp_data_file ))))
+(typeattribute base_typeattr_703)
+(typeattributeset base_typeattr_703 (and (vendor_file_type ) (not (vendor_task_profiles_file vendor_configs_file vndk_sp_file vendor_microdroid_file vendor_vm_file vendor_vm_data_file ))))
+(typeattribute base_typeattr_702)
+(typeattributeset base_typeattr_702 (and (appdomain coredomain ) (not (ueventd crosvm ))))
+(typeattribute base_typeattr_701)
+(typeattributeset base_typeattr_701 (and (appdomain coredomain ) (not (shell ueventd crosvm ))))
+(typeattribute base_typeattr_700)
+(typeattributeset base_typeattr_700 (and (domain ) (not (crosvm ))))
+(typeattribute base_typeattr_699)
+(typeattributeset base_typeattr_699 (and (domain ) (not (ueventd crosvm ))))
+(typeattribute base_typeattr_698)
+(typeattributeset base_typeattr_698 (and (domain ) (not (shell ueventd crosvm ))))
+(typeattribute base_typeattr_697)
+(typeattributeset base_typeattr_697 (and (domain ) (not (apexd bpfloader crash_dump init kernel keystore llkd logd ueventd vendor_init vold ))))
+(typeattribute base_typeattr_696)
+(typeattributeset base_typeattr_696 (and (dmabuf_heap_device_type ) (not (dmabuf_system_heap_device dmabuf_system_secure_heap_device ))))
+(typeattribute base_typeattr_695)
+(typeattributeset base_typeattr_695 (and (coredomain ) (not (init ueventd ))))
+(typeattribute base_typeattr_694)
+(typeattributeset base_typeattr_694 (and (coredomain ) (not (adbd init mediaprovider system_server ))))
+(typeattribute base_typeattr_693)
+(typeattributeset base_typeattr_693 (and (coredomain ) (not (init system_server ))))
+(typeattribute base_typeattr_692)
+(typeattributeset base_typeattr_692 (and (coredomain ) (not (bootstat charger dumpstate init logd logpersist recovery_persist recovery_refresh shell system_server ))))
+(typeattribute base_typeattr_691)
+(typeattributeset base_typeattr_691 (and (coredomain ) (not (init ))))
+(typeattribute base_typeattr_690)
+(typeattributeset base_typeattr_690 (and (coredomain ) (not (atrace dumpstate gpuservice init shell system_server traced_perf traced_probes traceur_app ))))
+(typeattribute base_typeattr_689)
+(typeattributeset base_typeattr_689 (and (coredomain ) (not (apexd fsck init ueventd ))))
+(typeattribute base_typeattr_688)
+(typeattributeset base_typeattr_688 (and (coredomain ) (not (init vold ))))
+(typeattribute base_typeattr_687)
+(typeattributeset base_typeattr_687 (and (coredomain ) (not (appdomain app_zygote artd heapprofd idmap init installd rs system_server traced_perf webview_zygote zygote dex2oat dexoptanalyzer postinstall_dexopt ))))
+(typeattribute base_typeattr_686)
+(typeattributeset base_typeattr_686 (and (coredomain ) (not (appdomain artd heapprofd idmap init installd mediaserver profman rs system_server traced_perf dex2oat dexoptanalyzer postinstall_dexopt ))))
+(typeattribute base_typeattr_685)
+(typeattributeset base_typeattr_685 (and (coredomain ) (not (appdomain artd heapprofd idmap init installd rs system_server traced_perf dex2oat dexoptanalyzer postinstall_dexopt ))))
+(typeattribute base_typeattr_684)
+(typeattributeset base_typeattr_684 (and (coredomain ) (not (apexd init ueventd vold ))))
+(typeattribute base_typeattr_683)
+(typeattributeset base_typeattr_683 (and (domain ) (not (odsign ))))
+(typeattribute base_typeattr_682)
+(typeattributeset base_typeattr_682 (and (domain ) (not (composd ))))
+(typeattribute base_typeattr_681)
+(typeattributeset base_typeattr_681 (and (domain ) (not (charger charger_vendor dumpstate init vendor_init ))))
+(typeattribute base_typeattr_680)
+(typeattributeset base_typeattr_680 (and (domain ) (not (charger charger_vendor init vendor_init ))))
+(typeattribute base_typeattr_679)
+(typeattributeset base_typeattr_679 (and (domain ) (not (charger dumpstate init ))))
+(typeattribute base_typeattr_678)
+(typeattributeset base_typeattr_678 (and (coredomain ) (not (bpfloader netd netutils_wrapper ))))
+(typeattribute base_typeattr_677)
+(typeattributeset base_typeattr_677 (and (domain ) (not (bpfloader init ))))
+(typeattribute base_typeattr_676)
+(typeattributeset base_typeattr_676 (and (domain ) (not (bpfloader gpuservice lmkd netd network_stack system_server mediaprovider_app uprobestats ))))
+(typeattribute base_typeattr_675)
+(typeattributeset base_typeattr_675 (and (domain ) (not (hal_health_server bpfloader gpuservice netd netutils_wrapper network_stack system_server mediaprovider_app uprobestats ))))
+(typeattribute base_typeattr_674)
+(typeattributeset base_typeattr_674 (and (bpffs_type ) (not (fs_bpf_vendor ))))
+(typeattribute base_typeattr_673)
+(typeattributeset base_typeattr_673 (and (domain ) (not (bpfloader gpuservice netd netutils_wrapper network_stack system_server uprobestats ))))
+(typeattribute base_typeattr_672)
+(typeattributeset base_typeattr_672 (and (domain ) (not (bpfloader uprobestats ))))
+(typeattribute base_typeattr_671)
+(typeattributeset base_typeattr_671 (and (domain ) (not (bpfloader netd netutils_wrapper network_stack system_server ))))
+(typeattribute base_typeattr_670)
+(typeattributeset base_typeattr_670 (and (domain ) (not (bpfloader netd network_stack system_server ))))
+(typeattribute base_typeattr_669)
+(typeattributeset base_typeattr_669 (and (domain ) (not (bpfloader network_stack system_server ))))
+(typeattribute base_typeattr_668)
+(typeattributeset base_typeattr_668 (and (domain ) (not (bpfloader network_stack ))))
+(typeattribute base_typeattr_667)
+(typeattributeset base_typeattr_667 (and (domain ) (not (bpfloader gpuservice lmkd netd netutils_wrapper system_server mediaprovider_app ))))
+(typeattribute base_typeattr_666)
+(typeattributeset base_typeattr_666 (and (domain ) (not (bpfloader ))))
+(typeattribute base_typeattr_665)
+(typeattributeset base_typeattr_665 (and (bpffs_type ) (not (fs_bpf ))))
+(typeattribute base_typeattr_664)
+(typeattributeset base_typeattr_664 (and (domain ) (not (bpfdomain ))))
+(typeattribute base_typeattr_663)
+(typeattributeset base_typeattr_663 (and (bpfdomain ) (not (bpfloader netd netutils_wrapper network_stack system_server ))))
+(typeattribute base_typeattr_662)
+(typeattributeset base_typeattr_662 (and (domain ) (not (init vendor_init boringssl_self_test vendor_boringssl_self_test ))))
+(typeattribute base_typeattr_661)
+(typeattributeset base_typeattr_661 (and (domain ) (not (bootstat init system_server ))))
+(typeattribute base_typeattr_660)
+(typeattributeset base_typeattr_660 (and (domain ) (not (bootanim bootstat dumpstate init platform_app recovery shell system_server ))))
+(typeattribute base_typeattr_659)
+(typeattributeset base_typeattr_659 (and (domain ) (not (bluetooth init ))))
+(typeattribute base_typeattr_658)
+(typeattributeset base_typeattr_658 (and (domain ) (not (bluetooth crash_dump runas_app simpleperf ))))
+(typeattribute base_typeattr_657)
+(typeattributeset base_typeattr_657 (and (appdomain ) (not (bluetooth runas_app shell simpleperf ))))
+(typeattribute base_typeattr_656)
+(typeattributeset base_typeattr_656 (and (bluetooth ) (not (runas_app shell simpleperf ))))
+(typeattribute base_typeattr_655)
+(typeattributeset base_typeattr_655 (and (domain ) (not (bluetooth ))))
+(typeattribute base_typeattr_654)
+(typeattributeset base_typeattr_654 (and (fs_type file_type ) (not (shell_exec blkid_exec ))))
+(typeattribute base_typeattr_653)
+(typeattributeset base_typeattr_653 (and (domain ) (not (automotive_display_service ))))
+(typeattribute base_typeattr_652)
+(typeattributeset base_typeattr_652 (and (domain ) (not (audioserver ))))
+(typeattribute base_typeattr_651)
+(typeattributeset base_typeattr_651 (and (service_manager_type ) (not (apex_service default_android_service dnsresolver_service dumpstate_service incident_service installd_service lpdump_service mdns_service netd_service vold_service stats_service tracingproxy_service ))))
+(typeattribute base_typeattr_650)
+(typeattributeset base_typeattr_650 (not (art_exec_exec ) ))
+(typeattribute base_typeattr_649)
+(typeattributeset base_typeattr_649 (and (domain ) (not (artd ))))
+(typeattribute base_typeattr_648)
+(typeattributeset base_typeattr_648 (and (domain ) (not (app_zygote prng_seeder ))))
+(typeattribute base_typeattr_647)
+(typeattributeset base_typeattr_647 (and (domain ) (not (app_zygote logd system_server ))))
+(typeattribute base_typeattr_646)
+(typeattributeset base_typeattr_646 (and (service_manager_type ) (not (activity_service webviewupdate_service ))))
+(typeattribute base_typeattr_645)
+(typeattributeset base_typeattr_645 (and (domain ) (not (zygote ))))
+(typeattribute base_typeattr_644)
+(typeattributeset base_typeattr_644 (and (domain ) (not (crash_dump ))))
+(typeattribute base_typeattr_643)
+(typeattributeset base_typeattr_643 (and (domain ) (not (isolated_app ))))
+(typeattribute base_typeattr_642)
+(typeattributeset base_typeattr_642 (and (domain ) (not (app_zygote ))))
+(typeattribute base_typeattr_641)
+(typeattributeset base_typeattr_641 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 ))))
+(typeattribute base_typeattr_640)
+(typeattributeset base_typeattr_640 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (mediaprovider mediaprovider_app ))))
+(typeattribute base_typeattr_639)
+(typeattributeset base_typeattr_639 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (untrusted_app_25 ))))
+(typeattribute base_typeattr_638)
+(typeattributeset base_typeattr_638 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (mediaprovider_app ))))
+(typeattribute base_typeattr_637)
+(typeattributeset base_typeattr_637 (and (fs_type file_type ) (not (sdcard_type fuse user_profile_data_file media_rw_data_file app_data_file privapp_data_file app_exec_data_file ))))
+(typeattribute base_typeattr_636)
+(typeattributeset base_typeattr_636 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 ))))
+(typeattribute base_typeattr_635)
+(typeattributeset base_typeattr_635 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (untrusted_app_27 untrusted_app_25 ))))
+(typeattribute base_typeattr_634)
+(typeattributeset base_typeattr_634 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (runas_app untrusted_app_27 untrusted_app_25 ))))
+(typeattribute base_typeattr_633)
+(typeattributeset base_typeattr_633 (and (untrusted_app_all isolated_app_all ephemeral_app isolated_app isolated_compute_app mediaprovider untrusted_app untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 mediaprovider_app ) (not (mediaprovider ))))
+(typeattribute base_typeattr_632)
+(typeattributeset base_typeattr_632 (and (debugfs_type ) (not (debugfs_kcov ))))
+(typeattribute base_typeattr_631)
+(typeattributeset base_typeattr_631 (and (appdomain ) (not (untrusted_app_32 untrusted_app_30 untrusted_app_29 untrusted_app_27 untrusted_app_25 ))))
+(typeattribute base_typeattr_630)
+(typeattributeset base_typeattr_630 (and (appdomain ) (not (device_as_webcam ))))
+(typeattribute base_typeattr_629)
+(typeattributeset base_typeattr_629 (and (data_file_type ) (not (system_data_file apk_data_file dalvikcache_data_file apex_art_data_file ))))
+(typeattribute base_typeattr_628)
+(typeattributeset base_typeattr_628 (and (appdomain ) (not (mlstrustedsubject isolated_app_all sdk_sandbox_all ))))
+(typeattribute base_typeattr_627)
+(typeattributeset base_typeattr_627 (and (appdomain ) (not (isolated_app_all sdk_sandbox_all ))))
+(typeattribute base_typeattr_626)
+(typeattributeset base_typeattr_626 (and (appdomain ) (not (isolated_app_all ephemeral_app sdk_sandbox_all ))))
+(typeattribute base_typeattr_625)
+(typeattributeset base_typeattr_625 (and (appdomain ) (not (ephemeral_app sdk_sandbox_all ))))
+(typeattribute base_typeattr_624)
+(typeattributeset base_typeattr_624 (and (appdomain ) (not (mediaprovider_app ))))
+(typeattribute base_typeattr_623)
+(typeattributeset base_typeattr_623 (and (domain ) (not (appdomain crash_dump rs virtualizationmanager ))))
+(typeattribute base_typeattr_622)
+(typeattributeset base_typeattr_622 (and (appdomain ) (not (sdk_sandbox_all ))))
+(typeattribute base_typeattr_621)
+(typeattributeset base_typeattr_621 (and (appdomain ) (not (untrusted_app_all isolated_app_all ephemeral_app platform_app priv_app shell system_app sdk_sandbox_all ))))
+(typeattribute base_typeattr_620)
+(typeattributeset base_typeattr_620 (and (domain ) (not (apexd init otapreopt_chroot ))))
+(typeattribute base_typeattr_619)
+(typeattributeset base_typeattr_619 (and (domain ) (not (apexd init vold_prepare_subdirs ))))
+(typeattribute base_typeattr_618)
+(typeattributeset base_typeattr_618 (and (domain ) (not (apexd init kernel ))))
+(typeattribute base_typeattr_617)
+(typeattributeset base_typeattr_617 (and (domain ) (not (apexd init ))))
+(typeattribute base_typeattr_616)
+(typeattributeset base_typeattr_616 (and (domain ) (not (crash_dump shell ))))
+(typeattribute base_typeattr_615)
+(typeattributeset base_typeattr_615 (and (hal_lazy_test_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_614)
+(typeattributeset base_typeattr_614 (and (hal_lazy_test_server ) (not (hal_lazy_test ))))
+(typeattribute base_typeattr_613)
+(typeattributeset base_typeattr_613 (and (hal_lazy_test_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_612)
+(typeattributeset base_typeattr_612 (and (domain ) (not (wificond ))))
+(typeattribute base_typeattr_611)
+(typeattributeset base_typeattr_611 (and (domain ) (not (hal_bootctl_server hal_health_storage_server hal_keymaster_server system_suspend_server hwservicemanager keystore servicemanager system_server ))))
+(typeattribute base_typeattr_610)
+(typeattributeset base_typeattr_610 (and (domain ) (not (init kernel vold vold_prepare_subdirs ))))
+(typeattribute base_typeattr_609)
+(typeattributeset base_typeattr_609 (and (domain ) (not (kernel vold vold_prepare_subdirs ))))
+(typeattribute base_typeattr_608)
+(typeattributeset base_typeattr_608 (and (domain ) (not (init vold vold_prepare_subdirs ))))
+(typeattribute base_typeattr_607)
+(typeattributeset base_typeattr_607 (and (domain ) (not (vold vold_prepare_subdirs ))))
+(typeattribute base_typeattr_606)
+(typeattributeset base_typeattr_606 (and (sysfs_type ) (not (sysfs_batteryinfo ))))
+(typeattribute base_typeattr_605)
+(typeattributeset base_typeattr_605 (and (domain ) (not (virtual_touchpad ))))
+(typeattribute base_typeattr_604)
+(typeattributeset base_typeattr_604 (and (coredomain ) (not (init modprobe ))))
+(typeattribute base_typeattr_603)
+(typeattributeset base_typeattr_603 (and (domain ) (not (init logd prng_seeder su vendor_init ))))
+(typeattribute base_typeattr_602)
+(typeattributeset base_typeattr_602 (and (sysfs_type ) (not (sysfs_usermodehelper ))))
+(typeattribute base_typeattr_601)
+(typeattributeset base_typeattr_601 (and (fs_type ) (not (bpffs_type contextmount_type fusefs_type sdcard_type rootfs proc_uid_time_in_state proc_uid_concurrent_active_time proc_uid_concurrent_policy_time ))))
+(typeattribute base_typeattr_600)
+(typeattributeset base_typeattr_600 (and (fs_type ) (not (bpffs_type contextmount_type fusefs_type debugfs_type sdcard_type keychord_device rootfs proc_uid_time_in_state proc_uid_concurrent_active_time proc_uid_concurrent_policy_time ))))
+(typeattribute base_typeattr_599)
+(typeattributeset base_typeattr_599 (and (file_type ) (not (bpffs_type exec_type core_data_file_type system_file_type system_dlkm_file_type vendor_file_type gsi_metadata_file_type vold_metadata_file password_slot_metadata_file apex_metadata_file ota_metadata_file userspace_reboot_metadata_file aconfig_storage_metadata_file aconfig_storage_flags_metadata_file mnt_product_file ))))
+(typeattribute base_typeattr_598)
+(typeattributeset base_typeattr_598 (and (file_type ) (not (bpffs_type exec_type core_data_file_type system_file_type system_dlkm_file_type vendor_file_type gsi_metadata_file_type unlabeled vold_metadata_file password_slot_metadata_file apex_metadata_file ota_metadata_file userspace_reboot_metadata_file aconfig_storage_metadata_file aconfig_storage_flags_metadata_file apex_mnt_dir ))))
+(typeattribute base_typeattr_597)
+(typeattributeset base_typeattr_597 (and (file_type ) (not (bpffs_type exec_type core_data_file_type system_file_type system_dlkm_file_type vendor_file_type gsi_metadata_file_type unlabeled vold_metadata_file password_slot_metadata_file apex_metadata_file ota_metadata_file userspace_reboot_metadata_file aconfig_storage_metadata_file aconfig_storage_flags_metadata_file ))))
+(typeattribute base_typeattr_596)
+(typeattributeset base_typeattr_596 (and (file_type ) (not (bpffs_type exec_type core_data_file_type system_file_type system_dlkm_file_type vendor_file_type debugfs_type gsi_metadata_file_type unlabeled vold_metadata_file password_slot_metadata_file apex_metadata_file ota_metadata_file userspace_reboot_metadata_file aconfig_storage_metadata_file aconfig_storage_flags_metadata_file runtime_event_log_tags_file apex_info_file ))))
+(typeattribute base_typeattr_595)
+(typeattributeset base_typeattr_595 (and (file_type ) (not (bpffs_type exec_type core_data_file_type system_file_type system_dlkm_file_type vendor_file_type gsi_metadata_file_type unlabeled vold_metadata_file password_slot_metadata_file apex_metadata_file ota_metadata_file userspace_reboot_metadata_file aconfig_storage_metadata_file aconfig_storage_flags_metadata_file mnt_product_file ))))
+(typeattribute base_typeattr_594)
+(typeattributeset base_typeattr_594 (and (domain ) (not (update_engine ))))
+(typeattribute base_typeattr_593)
+(typeattributeset base_typeattr_593 (and (vendor_file_type ) (not (vendor_app_file vendor_overlay_file ))))
+(typeattribute base_typeattr_592)
+(typeattributeset base_typeattr_592 (and (service_manager_type ) (not (apex_service default_android_service dnsresolver_service gatekeeper_service incident_service installd_service lpdump_service mdns_service netd_service virtual_touchpad_service vold_service ))))
+(typeattribute base_typeattr_591)
+(typeattributeset base_typeattr_591 (and (fs_type file_type ) (not (toolbox_exec ))))
+(typeattribute base_typeattr_590)
+(typeattributeset base_typeattr_590 (and (domain ) (not (system_suspend_server ))))
+(typeattribute base_typeattr_589)
+(typeattributeset base_typeattr_589 (and (domain ) (not (system_suspend_internal_server atrace dumpstate system_server traceur_app ))))
+(typeattribute base_typeattr_588)
+(typeattributeset base_typeattr_588 (and (domain ) (not (system_suspend_internal_server ))))
+(typeattribute base_typeattr_587)
+(typeattributeset base_typeattr_587 (and (domain ) (not (init shell system_server vendor_init ))))
+(typeattribute base_typeattr_586)
+(typeattributeset base_typeattr_586 (and (domain ) (not (init statsd system_server vold ))))
+(typeattribute base_typeattr_585)
+(typeattributeset base_typeattr_585 (and (domain ) (not (init statsd vold ))))
+(typeattribute base_typeattr_584)
+(typeattributeset base_typeattr_584 (and (domain ) (not (stats_service_server ))))
+(typeattribute base_typeattr_583)
+(typeattributeset base_typeattr_583 (and (service_manager_type ) (not (apex_service default_android_service dnsresolver_service gatekeeper_service incident_service installd_service mdns_service netd_service system_suspend_control_internal_service system_suspend_control_service virtual_touchpad_service vold_service hal_keymint_service hal_secureclock_service hal_sharedsecret_service ))))
+(typeattribute base_typeattr_582)
+(typeattributeset base_typeattr_582 (and (fs_type file_type ) (not (sgdisk_exec ))))
+(typeattribute base_typeattr_581)
+(typeattributeset base_typeattr_581 (and (domain ) (not (servicemanager ))))
+(typeattribute base_typeattr_580)
+(typeattributeset base_typeattr_580 (and (domain ) (not (hwservicemanager init vendor_init vndservicemanager ))))
+(typeattribute base_typeattr_579)
+(typeattributeset base_typeattr_579 (not (service_manager_type vndservice_manager_type ) ))
+(typeattribute base_typeattr_578)
+(typeattributeset base_typeattr_578 (and (domain ) (not (sensor_service_server ))))
+(typeattribute base_typeattr_577)
+(typeattributeset base_typeattr_577 (and (domain ) (not (scheduler_service_server ))))
+(typeattribute base_typeattr_576)
+(typeattributeset base_typeattr_576 (and (appdomain ) (not (system_app ))))
+(typeattribute base_typeattr_575)
+(typeattributeset base_typeattr_575 (and (domain ) (not (remote_provisioning_service_server ))))
+(typeattribute base_typeattr_574)
+(typeattributeset base_typeattr_574 (and (data_file_type ) (not (cache_file cache_recovery_file ))))
+(typeattribute base_typeattr_573)
+(typeattributeset base_typeattr_573 (and (domain ) (not (radio ))))
+(typeattribute base_typeattr_572)
+(typeattributeset base_typeattr_572 (and (coredomain ) (not (dumpstate init ))))
+(typeattribute base_typeattr_571)
+(typeattributeset base_typeattr_571 (and (domain ) (not (recovery update_engine ))))
+(typeattribute base_typeattr_570)
+(typeattributeset base_typeattr_570 (and (domain ) (not (performanced ))))
+(typeattribute base_typeattr_569)
+(typeattributeset base_typeattr_569 (and (domain ) (not (dumpstate netd netutils_wrapper network_stack system_server ))))
+(typeattribute base_typeattr_568)
+(typeattributeset base_typeattr_568 (and (domain ) (not (netd ))))
+(typeattribute base_typeattr_567)
+(typeattributeset base_typeattr_567 (and (domain ) (not (mediaserver ))))
+(typeattribute base_typeattr_566)
+(typeattributeset base_typeattr_566 (and (domain ) (not (mediametrics ))))
+(typeattribute base_typeattr_565)
+(typeattributeset base_typeattr_565 (and (domain ) (not (mediaextractor ))))
+(typeattribute base_typeattr_564)
+(typeattributeset base_typeattr_564 (and (domain ) (not (mediadrmserver ))))
+(typeattribute base_typeattr_563)
+(typeattributeset base_typeattr_563 (and (domain ) (not (init logd ))))
+(typeattribute base_typeattr_562)
+(typeattributeset base_typeattr_562 (and (app_data_file_type system_data_file packages_list_file ) (not (shell_data_file ))))
+(typeattribute base_typeattr_561)
+(typeattributeset base_typeattr_561 (and (domain ) (not (init keystore ))))
+(typeattribute base_typeattr_560)
+(typeattributeset base_typeattr_560 (and (domain ) (not (keystore ))))
+(typeattribute base_typeattr_559)
+(typeattributeset base_typeattr_559 (and (domain ) (not (servicemanager system_server ))))
+(typeattribute base_typeattr_558)
+(typeattributeset base_typeattr_558 (and (domain ) (not (dumpstate servicemanager system_server ))))
+(typeattribute base_typeattr_557)
+(typeattributeset base_typeattr_557 (and (domain ) (not (dumpstate installd system_server ))))
+(typeattribute base_typeattr_556)
+(typeattributeset base_typeattr_556 (and (domain ) (not (installd ))))
+(typeattribute base_typeattr_555)
+(typeattributeset base_typeattr_555 (and (domain ) (not (init toolbox vendor_init vold ))))
+(typeattribute base_typeattr_554)
+(typeattributeset base_typeattr_554 (and (fs_type file_type ) (not (init_exec ))))
+(typeattribute base_typeattr_553)
+(typeattributeset base_typeattr_553 (and (fs_type ) (not (bpffs_type contextmount_type fusefs_type sdcard_type rootfs ))))
+(typeattribute base_typeattr_552)
+(typeattributeset base_typeattr_552 (and (fs_type ) (not (bpffs_type contextmount_type fusefs_type proc_type sysfs_type debugfs_type sdcard_type keychord_device rootfs ))))
+(typeattribute base_typeattr_551)
+(typeattributeset base_typeattr_551 (and (file_type ) (not (bpffs_type exec_type system_file_type system_dlkm_file_type vendor_file_type app_data_file privapp_data_file ))))
+(typeattribute base_typeattr_550)
+(typeattributeset base_typeattr_550 (and (file_type ) (not (bpffs_type exec_type system_file_type system_dlkm_file_type vendor_file_type shell_data_file nativetest_data_file apex_mnt_dir credstore_data_file keystore_data_file vold_data_file gsi_data_file app_data_file privapp_data_file system_app_data_file misc_logd_file ))))
+(typeattribute base_typeattr_549)
+(typeattributeset base_typeattr_549 (and (file_type ) (not (bpffs_type exec_type system_file_type system_dlkm_file_type vendor_file_type shell_data_file nativetest_data_file credstore_data_file keystore_data_file vold_data_file gsi_data_file app_data_file privapp_data_file system_app_data_file misc_logd_file ))))
+(typeattribute base_typeattr_548)
+(typeattributeset base_typeattr_548 (and (file_type ) (not (bpffs_type exec_type system_file_type system_dlkm_file_type vendor_file_type debugfs_type runtime_event_log_tags_file shell_data_file nativetest_data_file apex_info_file credstore_data_file keystore_data_file vold_data_file gsi_data_file app_data_file privapp_data_file system_app_data_file misc_logd_file ))))
+(typeattribute base_typeattr_547)
+(typeattributeset base_typeattr_547 (and (file_type ) (not (bpffs_type exec_type system_file_type system_dlkm_file_type vendor_file_type system_userdir_file vendor_userdir_file shell_data_file nativetest_data_file credstore_data_file keystore_data_file media_userdir_file vold_data_file app_data_file privapp_data_file system_app_data_file misc_logd_file ))))
+(typeattribute base_typeattr_546)
+(typeattributeset base_typeattr_546 (and (file_type ) (not (bpffs_type exec_type system_file_type system_dlkm_file_type vendor_file_type nativetest_data_file app_data_file privapp_data_file system_app_data_file misc_logd_file ))))
+(typeattribute base_typeattr_545)
+(typeattributeset base_typeattr_545 (and (fs_type ) (not (debugfs_type ))))
+(typeattribute base_typeattr_544)
+(typeattributeset base_typeattr_544 (and (domain ) (not (idmap ))))
+(typeattribute base_typeattr_543)
+(typeattributeset base_typeattr_543 (not (hwservice_manager_type ) ))
+(typeattribute base_typeattr_542)
+(typeattributeset base_typeattr_542 (and (domain ) (not (hal_wifi_supplicant_client hal_wifi_supplicant_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_541)
+(typeattributeset base_typeattr_541 (and (domain ) (not (hal_wifi_supplicant_client hal_wifi_supplicant_server ))))
+(typeattribute base_typeattr_540)
+(typeattributeset base_typeattr_540 (and (domain ) (not (hal_wifi_supplicant_server ))))
+(typeattribute base_typeattr_539)
+(typeattributeset base_typeattr_539 (and (domain ) (not (hal_wifi_hostapd_client hal_wifi_hostapd_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_538)
+(typeattributeset base_typeattr_538 (and (domain ) (not (hal_wifi_hostapd_client hal_wifi_hostapd_server ))))
+(typeattribute base_typeattr_537)
+(typeattributeset base_typeattr_537 (and (domain ) (not (hal_wifi_hostapd_server ))))
+(typeattribute base_typeattr_536)
+(typeattributeset base_typeattr_536 (and (domain ) (not (hal_wifi_client hal_wifi_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_535)
+(typeattributeset base_typeattr_535 (and (domain ) (not (hal_wifi_client hal_wifi_server ))))
+(typeattribute base_typeattr_534)
+(typeattributeset base_typeattr_534 (and (domain ) (not (hal_wifi_server ))))
+(typeattribute base_typeattr_533)
+(typeattributeset base_typeattr_533 (and (domain ) (not (hal_weaver_client hal_weaver_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_532)
+(typeattributeset base_typeattr_532 (and (domain ) (not (hal_weaver_client hal_weaver_server ))))
+(typeattribute base_typeattr_531)
+(typeattributeset base_typeattr_531 (and (domain ) (not (hal_weaver_server ))))
+(typeattribute base_typeattr_530)
+(typeattributeset base_typeattr_530 (and (domain ) (not (hal_vr_client hal_vr_server ))))
+(typeattribute base_typeattr_529)
+(typeattributeset base_typeattr_529 (and (domain ) (not (hal_vr_server ))))
+(typeattribute base_typeattr_528)
+(typeattributeset base_typeattr_528 (and (domain ) (not (hal_vibrator_client hal_vibrator_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_527)
+(typeattributeset base_typeattr_527 (and (domain ) (not (hal_vibrator_client hal_vibrator_server ))))
+(typeattribute base_typeattr_526)
+(typeattributeset base_typeattr_526 (and (domain ) (not (hal_vibrator_server ))))
+(typeattribute base_typeattr_525)
+(typeattributeset base_typeattr_525 (and (domain ) (not (hal_vehicle_client hal_vehicle_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_524)
+(typeattributeset base_typeattr_524 (and (domain ) (not (hal_vehicle_client hal_vehicle_server ))))
+(typeattribute base_typeattr_523)
+(typeattributeset base_typeattr_523 (and (domain ) (not (hal_vehicle_server ))))
+(typeattribute base_typeattr_522)
+(typeattributeset base_typeattr_522 (and (domain ) (not (hal_uwb_client hal_uwb_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_521)
+(typeattributeset base_typeattr_521 (and (domain ) (not (hal_uwb_server ))))
+(typeattribute base_typeattr_520)
+(typeattributeset base_typeattr_520 (and (domain ) (not (hal_usb_gadget_client hal_usb_gadget_server ))))
+(typeattribute base_typeattr_519)
+(typeattributeset base_typeattr_519 (and (domain ) (not (hal_usb_gadget_client hal_usb_gadget_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_518)
+(typeattributeset base_typeattr_518 (and (domain ) (not (hal_usb_gadget_server ))))
+(typeattribute base_typeattr_517)
+(typeattributeset base_typeattr_517 (and (domain ) (not (hal_usb_client hal_usb_server ))))
+(typeattribute base_typeattr_516)
+(typeattributeset base_typeattr_516 (and (domain ) (not (hal_usb_client hal_usb_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_515)
+(typeattributeset base_typeattr_515 (and (domain ) (not (hal_usb_server ))))
+(typeattribute base_typeattr_514)
+(typeattributeset base_typeattr_514 (and (domain ) (not (hal_tv_tuner_client hal_tv_tuner_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_513)
+(typeattributeset base_typeattr_513 (and (domain ) (not (hal_tv_tuner_client hal_tv_tuner_server ))))
+(typeattribute base_typeattr_512)
+(typeattributeset base_typeattr_512 (and (domain ) (not (hal_tv_tuner_server ))))
+(typeattribute base_typeattr_511)
+(typeattributeset base_typeattr_511 (and (domain ) (not (hal_tv_input_client hal_tv_input_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_510)
+(typeattributeset base_typeattr_510 (and (domain ) (not (hal_tv_input_client hal_tv_input_server ))))
+(typeattribute base_typeattr_509)
+(typeattributeset base_typeattr_509 (and (domain ) (not (hal_tv_input_server ))))
+(typeattribute base_typeattr_508)
+(typeattributeset base_typeattr_508 (and (domain ) (not (hal_tv_hdmi_earc_client hal_tv_hdmi_earc_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_507)
+(typeattributeset base_typeattr_507 (and (domain ) (not (hal_tv_hdmi_earc_server ))))
+(typeattribute base_typeattr_506)
+(typeattributeset base_typeattr_506 (and (domain ) (not (hal_tv_hdmi_connection_client hal_tv_hdmi_connection_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_505)
+(typeattributeset base_typeattr_505 (and (domain ) (not (hal_tv_hdmi_connection_server ))))
+(typeattribute base_typeattr_504)
+(typeattributeset base_typeattr_504 (and (domain ) (not (hal_tv_hdmi_cec_client hal_tv_hdmi_cec_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_503)
+(typeattributeset base_typeattr_503 (and (domain ) (not (hal_tv_hdmi_cec_server ))))
+(typeattribute base_typeattr_502)
+(typeattributeset base_typeattr_502 (and (domain ) (not (hal_tv_cec_client hal_tv_cec_server ))))
+(typeattribute base_typeattr_501)
+(typeattributeset base_typeattr_501 (and (domain ) (not (hal_tv_cec_server ))))
+(typeattribute base_typeattr_500)
+(typeattributeset base_typeattr_500 (and (domain ) (not (hal_threadnetwork_client hal_threadnetwork_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_499)
+(typeattributeset base_typeattr_499 (and (domain ) (not (hal_threadnetwork_server ))))
+(typeattribute base_typeattr_498)
+(typeattributeset base_typeattr_498 (and (domain ) (not (hal_thermal_client hal_thermal_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_497)
+(typeattributeset base_typeattr_497 (and (domain ) (not (hal_thermal_client hal_thermal_server ))))
+(typeattribute base_typeattr_496)
+(typeattributeset base_typeattr_496 (and (domain ) (not (hal_thermal_server ))))
+(typeattribute base_typeattr_495)
+(typeattributeset base_typeattr_495 (and (domain ) (not (hal_tetheroffload_client hal_tetheroffload_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_494)
+(typeattributeset base_typeattr_494 (and (domain ) (not (hal_tetheroffload_client hal_tetheroffload_server ))))
+(typeattribute base_typeattr_493)
+(typeattributeset base_typeattr_493 (and (domain ) (not (hal_tetheroffload_server ))))
+(typeattribute base_typeattr_492)
+(typeattributeset base_typeattr_492 (and (domain ) (not (hal_telephony_client hal_telephony_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_491)
+(typeattributeset base_typeattr_491 (and (domain ) (not (hal_telephony_client hal_telephony_server ))))
+(typeattribute base_typeattr_490)
+(typeattributeset base_typeattr_490 (and (domain ) (not (hal_telephony_server ))))
+(typeattribute base_typeattr_489)
+(typeattributeset base_typeattr_489 (and (domain ) (not (hal_sensors_client hal_sensors_server ))))
+(typeattribute base_typeattr_488)
+(typeattributeset base_typeattr_488 (and (domain ) (not (hal_sensors_server ))))
+(typeattribute base_typeattr_487)
+(typeattributeset base_typeattr_487 (and (domain ) (not (hal_secure_element_client hal_secure_element_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_486)
+(typeattributeset base_typeattr_486 (and (domain ) (not (hal_secure_element_client hal_secure_element_server ))))
+(typeattribute base_typeattr_485)
+(typeattributeset base_typeattr_485 (and (domain ) (not (hal_secure_element_server ))))
+(typeattribute base_typeattr_484)
+(typeattributeset base_typeattr_484 (and (domain ) (not (hal_secretkeeper_client hal_secretkeeper_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_483)
+(typeattributeset base_typeattr_483 (and (domain ) (not (hal_secretkeeper_server ))))
+(typeattribute base_typeattr_482)
+(typeattributeset base_typeattr_482 (and (domain ) (not (hal_remotelyprovisionedcomponent_avf_client hal_remotelyprovisionedcomponent_avf_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_481)
+(typeattributeset base_typeattr_481 (and (domain ) (not (hal_remotelyprovisionedcomponent_avf_server ))))
+(typeattribute base_typeattr_480)
+(typeattributeset base_typeattr_480 (and (domain ) (not (hal_remoteaccess_client hal_remoteaccess_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_479)
+(typeattributeset base_typeattr_479 (and (domain ) (not (hal_remoteaccess_server ))))
+(typeattribute base_typeattr_478)
+(typeattributeset base_typeattr_478 (and (domain ) (not (hal_rebootescrow_client hal_rebootescrow_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_477)
+(typeattributeset base_typeattr_477 (and (domain ) (not (hal_rebootescrow_server ))))
+(typeattribute base_typeattr_476)
+(typeattributeset base_typeattr_476 (and (domain ) (not (hal_power_stats_client hal_power_stats_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_475)
+(typeattributeset base_typeattr_475 (and (domain ) (not (hal_power_stats_client hal_power_stats_server ))))
+(typeattribute base_typeattr_474)
+(typeattributeset base_typeattr_474 (and (domain ) (not (hal_power_stats_server ))))
+(typeattribute base_typeattr_473)
+(typeattributeset base_typeattr_473 (and (domain ) (not (hal_power_client hal_power_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_472)
+(typeattributeset base_typeattr_472 (and (domain ) (not (hal_power_client hal_power_server ))))
+(typeattribute base_typeattr_471)
+(typeattributeset base_typeattr_471 (and (domain ) (not (hal_power_server ))))
+(typeattribute base_typeattr_470)
+(typeattributeset base_typeattr_470 (and (domain ) (not (hal_omx_client hal_omx_server ))))
+(typeattribute base_typeattr_469)
+(typeattributeset base_typeattr_469 (and (domain ) (not (hal_omx_server ))))
+(typeattribute base_typeattr_468)
+(typeattributeset base_typeattr_468 (and (domain ) (not (hal_oemlock_client hal_oemlock_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_467)
+(typeattributeset base_typeattr_467 (and (domain ) (not (hal_oemlock_client hal_oemlock_server ))))
+(typeattribute base_typeattr_466)
+(typeattributeset base_typeattr_466 (and (domain ) (not (hal_oemlock_server ))))
+(typeattribute base_typeattr_465)
+(typeattributeset base_typeattr_465 (and (domain ) (not (hal_nlinterceptor_client hal_nlinterceptor_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_464)
+(typeattributeset base_typeattr_464 (and (domain ) (not (hal_nlinterceptor_server ))))
+(typeattribute base_typeattr_463)
+(typeattributeset base_typeattr_463 (and (domain ) (not (hal_nfc_client hal_nfc_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_462)
+(typeattributeset base_typeattr_462 (and (domain ) (not (hal_nfc_client hal_nfc_server ))))
+(typeattribute base_typeattr_461)
+(typeattributeset base_typeattr_461 (and (domain ) (not (hal_nfc_server ))))
+(typeattribute base_typeattr_460)
+(typeattributeset base_typeattr_460 (and (fs_type file_type ) (not (shell_exec toolbox_exec ))))
+(typeattribute base_typeattr_459)
+(typeattributeset base_typeattr_459 (and (halserverdomain ) (not (hal_dumpstate_server hal_telephony_server ))))
+(typeattribute base_typeattr_458)
+(typeattributeset base_typeattr_458 (and (halserverdomain ) (not (hal_automotive_socket_exemption hal_bluetooth_server hal_can_controller_server hal_nlinterceptor_server hal_telephony_server hal_tetheroffload_server hal_wifi_server hal_wifi_hostapd_server hal_wifi_supplicant_server ))))
+(typeattribute base_typeattr_457)
+(typeattributeset base_typeattr_457 (and (halserverdomain ) (not (hal_automotive_socket_exemption hal_bluetooth_server hal_can_controller_server hal_nlinterceptor_server hal_telephony_server hal_tetheroffload_server hal_uwb_server hal_uwb_vendor_server hal_wifi_server hal_wifi_hostapd_server hal_wifi_supplicant_server ))))
+(typeattribute base_typeattr_456)
+(typeattributeset base_typeattr_456 (and (halserverdomain ) (not (hal_bluetooth_server hal_can_controller_server hal_nlinterceptor_server hal_telephony_server hal_uwb_server hal_uwb_vendor_server hal_wifi_server hal_wifi_hostapd_server hal_wifi_supplicant_server ))))
+(typeattribute base_typeattr_455)
+(typeattributeset base_typeattr_455 (and (domain ) (not (hal_neuralnetworks_client hal_neuralnetworks_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_454)
+(typeattributeset base_typeattr_454 (and (domain ) (not (hal_neuralnetworks_client hal_neuralnetworks_server ))))
+(typeattribute base_typeattr_453)
+(typeattributeset base_typeattr_453 (and (domain ) (not (hal_neuralnetworks_server ))))
+(typeattribute base_typeattr_452)
+(typeattributeset base_typeattr_452 (and (domain ) (not (hal_memtrack_client hal_memtrack_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_451)
+(typeattributeset base_typeattr_451 (and (domain ) (not (hal_memtrack_client hal_memtrack_server ))))
+(typeattribute base_typeattr_450)
+(typeattributeset base_typeattr_450 (and (domain ) (not (hal_memtrack_server ))))
+(typeattribute base_typeattr_449)
+(typeattributeset base_typeattr_449 (and (domain ) (not (hal_macsec_client hal_macsec_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_448)
+(typeattributeset base_typeattr_448 (and (domain ) (not (hal_macsec_server ))))
+(typeattribute base_typeattr_447)
+(typeattributeset base_typeattr_447 (and (domain ) (not (hal_lowpan_server init ueventd ))))
+(typeattribute base_typeattr_446)
+(typeattributeset base_typeattr_446 (and (domain ) (not (hal_lowpan_client hal_lowpan_server ))))
+(typeattribute base_typeattr_445)
+(typeattributeset base_typeattr_445 (and (domain ) (not (hal_lowpan_server ))))
+(typeattribute base_typeattr_444)
+(typeattributeset base_typeattr_444 (and (domain ) (not (hal_light_client hal_light_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_443)
+(typeattributeset base_typeattr_443 (and (domain ) (not (hal_light_client hal_light_server ))))
+(typeattribute base_typeattr_442)
+(typeattributeset base_typeattr_442 (and (domain ) (not (hal_light_server ))))
+(typeattribute base_typeattr_441)
+(typeattributeset base_typeattr_441 (and (domain ) (not (hal_keymint_client hal_keymint_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_440)
+(typeattributeset base_typeattr_440 (and (domain ) (not (hal_keymint_server ))))
+(typeattribute base_typeattr_439)
+(typeattributeset base_typeattr_439 (and (domain ) (not (hal_keymaster_client hal_keymaster_server ))))
+(typeattribute base_typeattr_438)
+(typeattributeset base_typeattr_438 (and (domain ) (not (hal_keymaster_server ))))
+(typeattribute base_typeattr_437)
+(typeattributeset base_typeattr_437 (and (domain ) (not (hal_ivn_client hal_ivn_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_436)
+(typeattributeset base_typeattr_436 (and (domain ) (not (hal_ivn_server ))))
+(typeattribute base_typeattr_435)
+(typeattributeset base_typeattr_435 (and (domain ) (not (hal_ir_client hal_ir_server ))))
+(typeattribute base_typeattr_434)
+(typeattributeset base_typeattr_434 (and (domain ) (not (hal_ir_client hal_ir_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_433)
+(typeattributeset base_typeattr_433 (and (domain ) (not (hal_ir_server ))))
+(typeattribute base_typeattr_432)
+(typeattributeset base_typeattr_432 (and (domain ) (not (hal_input_processor_client hal_input_processor_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_431)
+(typeattributeset base_typeattr_431 (and (domain ) (not (hal_input_processor_server ))))
+(typeattribute base_typeattr_430)
+(typeattributeset base_typeattr_430 (and (domain ) (not (hal_input_classifier_client hal_input_classifier_server ))))
+(typeattribute base_typeattr_429)
+(typeattributeset base_typeattr_429 (and (domain ) (not (hal_input_classifier_server ))))
+(typeattribute base_typeattr_428)
+(typeattributeset base_typeattr_428 (and (domain ) (not (hal_identity_client hal_identity_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_427)
+(typeattributeset base_typeattr_427 (and (domain ) (not (hal_identity_server ))))
+(typeattribute base_typeattr_426)
+(typeattributeset base_typeattr_426 (and (domain ) (not (hal_health_storage_client hal_health_storage_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_425)
+(typeattributeset base_typeattr_425 (and (domain ) (not (hal_health_storage_client hal_health_storage_server ))))
+(typeattribute base_typeattr_424)
+(typeattributeset base_typeattr_424 (and (domain ) (not (hal_health_storage_server ))))
+(typeattribute base_typeattr_423)
+(typeattributeset base_typeattr_423 (and (domain ) (not (hal_health_client hal_health_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_422)
+(typeattributeset base_typeattr_422 (and (domain ) (not (hal_health_client hal_health_server ))))
+(typeattribute base_typeattr_421)
+(typeattributeset base_typeattr_421 (and (domain ) (not (hal_health_server ))))
+(typeattribute base_typeattr_420)
+(typeattributeset base_typeattr_420 (and (domain ) (not (hal_graphics_composer_client hal_graphics_composer_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_419)
+(typeattributeset base_typeattr_419 (and (domain ) (not (hal_graphics_composer_client hal_graphics_composer_server ))))
+(typeattribute base_typeattr_418)
+(typeattributeset base_typeattr_418 (and (domain ) (not (hal_graphics_composer_server ))))
+(typeattribute base_typeattr_417)
+(typeattributeset base_typeattr_417 (and (domain ) (not (hal_graphics_allocator_client hal_graphics_allocator_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_416)
+(typeattributeset base_typeattr_416 (and (domain ) (not (hal_graphics_allocator_client hal_graphics_allocator_server ))))
+(typeattribute base_typeattr_415)
+(typeattributeset base_typeattr_415 (and (domain ) (not (hal_graphics_allocator_server ))))
+(typeattribute base_typeattr_414)
+(typeattributeset base_typeattr_414 (and (domain ) (not (hal_gnss_client hal_gnss_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_413)
+(typeattributeset base_typeattr_413 (and (domain ) (not (hal_gnss_client hal_gnss_server ))))
+(typeattribute base_typeattr_412)
+(typeattributeset base_typeattr_412 (and (domain ) (not (hal_gnss_server ))))
+(typeattribute base_typeattr_411)
+(typeattributeset base_typeattr_411 (and (domain ) (not (hal_gatekeeper_client hal_gatekeeper_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_410)
+(typeattributeset base_typeattr_410 (and (domain ) (not (hal_gatekeeper_client hal_gatekeeper_server ))))
+(typeattribute base_typeattr_409)
+(typeattributeset base_typeattr_409 (and (domain ) (not (hal_gatekeeper_server ))))
+(typeattribute base_typeattr_408)
+(typeattributeset base_typeattr_408 (and (domain ) (not (hal_fingerprint_client hal_fingerprint_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_407)
+(typeattributeset base_typeattr_407 (and (domain ) (not (hal_fingerprint_client hal_fingerprint_server ))))
+(typeattribute base_typeattr_406)
+(typeattributeset base_typeattr_406 (and (domain ) (not (hal_fingerprint_server ))))
+(typeattribute base_typeattr_405)
+(typeattributeset base_typeattr_405 (and (domain ) (not (hal_fastboot_client hal_fastboot_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_404)
+(typeattributeset base_typeattr_404 (and (domain ) (not (hal_fastboot_server ))))
+(typeattribute base_typeattr_403)
+(typeattributeset base_typeattr_403 (and (domain ) (not (hal_face_client hal_face_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_402)
+(typeattributeset base_typeattr_402 (and (domain ) (not (hal_face_client hal_face_server ))))
+(typeattribute base_typeattr_401)
+(typeattributeset base_typeattr_401 (and (domain ) (not (hal_face_server ))))
+(typeattribute base_typeattr_400)
+(typeattributeset base_typeattr_400 (and (domain ) (not (hal_evs_client hal_evs_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_399)
+(typeattributeset base_typeattr_399 (and (domain ) (not (hal_evs_server ))))
+(typeattribute base_typeattr_398)
+(typeattributeset base_typeattr_398 (and (domain ) (not (hal_evs_server evsmanagerd ))))
+(typeattribute base_typeattr_397)
+(typeattributeset base_typeattr_397 (and (domain ) (not (hal_dumpstate_client hal_dumpstate_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_396)
+(typeattributeset base_typeattr_396 (and (domain ) (not (hal_dumpstate_client hal_dumpstate_server ))))
+(typeattribute base_typeattr_395)
+(typeattributeset base_typeattr_395 (and (domain ) (not (hal_dumpstate_server ))))
+(typeattribute base_typeattr_394)
+(typeattributeset base_typeattr_394 (and (domain ) (not (hal_drm_client hal_drm_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_393)
+(typeattributeset base_typeattr_393 (and (domain ) (not (hal_drm_client hal_drm_server ))))
+(typeattribute base_typeattr_392)
+(typeattributeset base_typeattr_392 (and (domain ) (not (hal_drm_server ))))
+(typeattribute base_typeattr_391)
+(typeattributeset base_typeattr_391 (and (domain ) (not (hal_contexthub_client hal_contexthub_server ))))
+(typeattribute base_typeattr_390)
+(typeattributeset base_typeattr_390 (and (domain ) (not (hal_contexthub_server ))))
+(typeattribute base_typeattr_389)
+(typeattributeset base_typeattr_389 (and (domain ) (not (hal_confirmationui_client hal_confirmationui_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_388)
+(typeattributeset base_typeattr_388 (and (domain ) (not (hal_confirmationui_client hal_confirmationui_server ))))
+(typeattribute base_typeattr_387)
+(typeattributeset base_typeattr_387 (and (domain ) (not (hal_confirmationui_server ))))
+(typeattribute base_typeattr_386)
+(typeattributeset base_typeattr_386 (and (data_file_type ) (not (anr_data_file tombstone_data_file ))))
+(typeattribute base_typeattr_385)
+(typeattributeset base_typeattr_385 (and (domain ) (not (hal_configstore_server logd prng_seeder tombstoned ))))
+(typeattribute base_typeattr_384)
+(typeattributeset base_typeattr_384 (and (domain ) (not (hal_configstore_client hal_configstore_server ))))
+(typeattribute base_typeattr_383)
+(typeattributeset base_typeattr_383 (and (domain ) (not (hal_configstore_server ))))
+(typeattribute base_typeattr_382)
+(typeattributeset base_typeattr_382 (and (appdomain ) (not (isolated_app_all ))))
+(typeattribute base_typeattr_381)
+(typeattributeset base_typeattr_381 (and (domain ) (not (hal_codec2_client hal_codec2_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_380)
+(typeattributeset base_typeattr_380 (and (domain ) (not (hal_codec2_client hal_codec2_server ))))
+(typeattribute base_typeattr_379)
+(typeattributeset base_typeattr_379 (and (domain ) (not (hal_codec2_server ))))
+(typeattribute base_typeattr_378)
+(typeattributeset base_typeattr_378 (and (domain ) (not (hal_cas_client hal_cas_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_377)
+(typeattributeset base_typeattr_377 (and (domain ) (not (hal_cas_client hal_cas_server ))))
+(typeattribute base_typeattr_376)
+(typeattributeset base_typeattr_376 (and (domain ) (not (hal_cas_server ))))
+(typeattribute base_typeattr_375)
+(typeattributeset base_typeattr_375 (and (domain ) (not (hal_can_controller_client hal_can_controller_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_374)
+(typeattributeset base_typeattr_374 (and (domain ) (not (hal_can_bus_client hal_can_bus_server ))))
+(typeattribute base_typeattr_373)
+(typeattributeset base_typeattr_373 (and (domain ) (not (hal_can_bus_server ))))
+(typeattribute base_typeattr_372)
+(typeattributeset base_typeattr_372 (and (domain ) (not (hal_can_controller_client hal_can_controller_server ))))
+(typeattribute base_typeattr_371)
+(typeattributeset base_typeattr_371 (and (domain ) (not (hal_can_controller_server ))))
+(typeattribute base_typeattr_370)
+(typeattributeset base_typeattr_370 (and (halserverdomain ) (not (hal_camera_server ))))
+(typeattribute base_typeattr_369)
+(typeattributeset base_typeattr_369 (and (appdomain ) (not (isolated_app ))))
+(typeattribute base_typeattr_368)
+(typeattributeset base_typeattr_368 (and (domain ) (not (hal_camera_client hal_camera_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_367)
+(typeattributeset base_typeattr_367 (and (domain ) (not (hal_camera_client hal_camera_server ))))
+(typeattribute base_typeattr_366)
+(typeattributeset base_typeattr_366 (and (domain ) (not (hal_camera_server ))))
+(typeattribute base_typeattr_365)
+(typeattributeset base_typeattr_365 (and (domain ) (not (hal_broadcastradio_client hal_broadcastradio_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_364)
+(typeattributeset base_typeattr_364 (and (domain ) (not (hal_broadcastradio_client hal_broadcastradio_server ))))
+(typeattribute base_typeattr_363)
+(typeattributeset base_typeattr_363 (and (domain ) (not (hal_broadcastradio_server ))))
+(typeattribute base_typeattr_362)
+(typeattributeset base_typeattr_362 (and (domain ) (not (hal_bootctl_client hal_bootctl_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_361)
+(typeattributeset base_typeattr_361 (and (domain ) (not (hal_bootctl_client hal_bootctl_server ))))
+(typeattribute base_typeattr_360)
+(typeattributeset base_typeattr_360 (and (domain ) (not (hal_bootctl_server ))))
+(typeattribute base_typeattr_359)
+(typeattributeset base_typeattr_359 (and (domain ) (not (hal_bluetooth_client hal_bluetooth_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_358)
+(typeattributeset base_typeattr_358 (and (domain ) (not (hal_bluetooth_client hal_bluetooth_server ))))
+(typeattribute base_typeattr_357)
+(typeattributeset base_typeattr_357 (and (domain ) (not (hal_bluetooth_server ))))
+(typeattribute base_typeattr_356)
+(typeattributeset base_typeattr_356 (and (domain ) (not (hal_authsecret_client hal_authsecret_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_355)
+(typeattributeset base_typeattr_355 (and (domain ) (not (hal_authsecret_client hal_authsecret_server ))))
+(typeattribute base_typeattr_354)
+(typeattributeset base_typeattr_354 (and (domain ) (not (hal_authsecret_server ))))
+(typeattribute base_typeattr_353)
+(typeattributeset base_typeattr_353 (and (domain ) (not (hal_authgraph_client hal_authgraph_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_352)
+(typeattributeset base_typeattr_352 (and (domain ) (not (hal_authgraph_server ))))
+(typeattribute base_typeattr_351)
+(typeattributeset base_typeattr_351 (and (domain ) (not (hal_audiocontrol_client hal_audiocontrol_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_350)
+(typeattributeset base_typeattr_350 (and (domain ) (not (hal_audiocontrol_client hal_audiocontrol_server ))))
+(typeattribute base_typeattr_349)
+(typeattributeset base_typeattr_349 (and (domain ) (not (hal_audiocontrol_server ))))
+(typeattribute base_typeattr_348)
+(typeattributeset base_typeattr_348 (and (halserverdomain ) (not (hal_audio_server hal_omx_server ))))
+(typeattribute base_typeattr_347)
+(typeattributeset base_typeattr_347 (and (domain ) (not (hal_audio_client hal_audio_server atrace shell system_app traceur_app ))))
+(typeattribute base_typeattr_346)
+(typeattributeset base_typeattr_346 (and (domain ) (not (hal_audio_client hal_audio_server ))))
+(typeattribute base_typeattr_345)
+(typeattributeset base_typeattr_345 (and (domain ) (not (hal_audio_server ))))
+(typeattribute base_typeattr_344)
+(typeattributeset base_typeattr_344 (and (domain ) (not (hal_atrace_client hal_atrace_server ))))
+(typeattribute base_typeattr_343)
+(typeattributeset base_typeattr_343 (and (domain ) (not (hal_atrace_server ))))
+(typeattribute base_typeattr_342)
+(typeattributeset base_typeattr_342 (and (domain ) (not (hal_allocator_client hal_allocator_server ))))
+(typeattribute base_typeattr_341)
+(typeattributeset base_typeattr_341 (and (domain ) (not (hal_allocator_server ))))
+(typeattribute base_typeattr_340)
+(typeattributeset base_typeattr_340 (and (domain ) (not (gatekeeperd ))))
+(typeattribute base_typeattr_339)
+(typeattributeset base_typeattr_339 (and (domain ) (not (vold ))))
+(typeattribute base_typeattr_338)
+(typeattributeset base_typeattr_338 (and (fs_type file_type ) (not (fsck_exec ))))
+(typeattribute base_typeattr_337)
+(typeattributeset base_typeattr_337 (and (domain ) (not (init vold ))))
+(typeattribute base_typeattr_336)
+(typeattributeset base_typeattr_336 (and (domain ) (not (flags_health_check init ))))
+(typeattribute base_typeattr_335)
+(typeattributeset base_typeattr_335 (and (domain ) (not (fingerprintd ))))
+(typeattribute base_typeattr_334)
+(typeattributeset base_typeattr_334 (and (domain ) (not (dumpstate shell system_server traceur_app ))))
+(typeattribute base_typeattr_333)
+(typeattributeset base_typeattr_333 (and (domain ) (not (dumpstate ))))
+(typeattribute base_typeattr_332)
+(typeattributeset base_typeattr_332 (and (service_manager_type ) (not (hal_service_type apex_service default_android_service dumpstate_service gatekeeper_service virtual_touchpad_service vold_service ))))
+(typeattribute base_typeattr_331)
+(typeattributeset base_typeattr_331 (and (domain ) (not (drmserver ))))
+(typeattribute base_typeattr_330)
+(typeattributeset base_typeattr_330 (and (domain ) (not (init traced_probes vendor_init ))))
+(typeattribute base_typeattr_329)
+(typeattributeset base_typeattr_329 (and (domain ) (not (ephemeral_app untrusted_app_27 untrusted_app_25 ))))
+(typeattribute base_typeattr_328)
+(typeattributeset base_typeattr_328 (and (domain ) (not (hal_codec2_server hal_omx_server ))))
+(typeattribute base_typeattr_327)
+(typeattributeset base_typeattr_327 (and (coredomain ) (not (apexd charger incidentd init recovery shell ueventd ))))
+(typeattribute base_typeattr_326)
+(typeattributeset base_typeattr_326 (and (coredomain ) (not (appdomain ))))
+(typeattribute base_typeattr_325)
+(typeattributeset base_typeattr_325 (and (coredomain ) (not (system_writes_mnt_vendor_violators init ueventd vold ))))
+(typeattribute base_typeattr_324)
+(typeattributeset base_typeattr_324 (not (coredomain ) ))
+(typeattribute base_typeattr_323)
+(typeattributeset base_typeattr_323 (not (system_file_type system_dlkm_file_type vendor_file_type rootfs ) ))
+(typeattribute base_typeattr_322)
+(typeattributeset base_typeattr_322 (and (domain ) (not (artd installd profman ))))
+(typeattribute base_typeattr_321)
+(typeattributeset base_typeattr_321 (and (domain ) (not (init vendor_init vold ))))
+(typeattribute base_typeattr_320)
+(typeattributeset base_typeattr_320 (not (hwservicemanager ) ))
+(typeattribute base_typeattr_319)
+(typeattributeset base_typeattr_319 (not (servicemanager vndservicemanager ) ))
+(typeattribute base_typeattr_318)
+(typeattributeset base_typeattr_318 (and (domain ) (not (installd shell ))))
+(typeattribute base_typeattr_317)
+(typeattributeset base_typeattr_317 (and (domain ) (not (appdomain artd installd ))))
+(typeattribute base_typeattr_316)
+(typeattributeset base_typeattr_316 (and (appdomain ) (not (shell simpleperf ))))
+(typeattribute base_typeattr_315)
+(typeattributeset base_typeattr_315 (and (domain ) (not (app_zygote runas simpleperf_app_runner webview_zygote zygote ))))
+(typeattribute base_typeattr_314)
+(typeattributeset base_typeattr_314 (and (domain ) (not (adbd init runas zygote ))))
+(typeattribute base_typeattr_313)
+(typeattributeset base_typeattr_313 (and (domain ) (not (init installd system_app system_server toolbox vold_prepare_subdirs ))))
+(typeattribute base_typeattr_312)
+(typeattributeset base_typeattr_312 (not (domain ) ))
+(typeattribute base_typeattr_311)
+(typeattributeset base_typeattr_311 (and (domain ) (not (init zygote ))))
+(typeattribute base_typeattr_310)
+(typeattributeset base_typeattr_310 (and (domain ) (not (untrusted_app_27 untrusted_app_25 ))))
+(typeattribute base_typeattr_309)
+(typeattributeset base_typeattr_309 (and (file_type ) (not (apk_data_file app_data_file asec_public_file ))))
+(typeattribute base_typeattr_308)
+(typeattributeset base_typeattr_308 (and (domain ) (not (init system_server ))))
+(typeattribute base_typeattr_307)
+(typeattributeset base_typeattr_307 (and (domain ) (not (dumpstate incidentd system_server ))))
+(typeattribute base_typeattr_306)
+(typeattributeset base_typeattr_306 (and (domain ) (not (app_zygote system_server webview_zygote ))))
+(typeattribute base_typeattr_305)
+(typeattributeset base_typeattr_305 (and (domain ) (not (system_server ))))
+(typeattribute base_typeattr_304)
+(typeattributeset base_typeattr_304 (and (domain ) (not (system_server zygote ))))
+(typeattribute base_typeattr_303)
+(typeattributeset base_typeattr_303 (and (system_file_type ) (not (crash_dump_exec system_event_log_tags_file system_lib_file system_group_file system_linker_exec system_linker_config_file system_passwd_file system_seccomp_policy_file system_security_cacerts_file system_zoneinfo_file task_profiles_file task_profiles_api_file file_contexts_file property_contexts_file netutils_wrapper_exec shell_exec toolbox_exec ))))
+(typeattribute base_typeattr_302)
+(typeattributeset base_typeattr_302 (and (vendor_file_type ) (not (same_process_hal_file ))))
+(typeattribute base_typeattr_301)
+(typeattributeset base_typeattr_301 (and (coredomain ) (not (system_executes_vendor_violators shell ))))
+(typeattribute base_typeattr_300)
+(typeattributeset base_typeattr_300 (and (vendor_file_type ) (not (vendor_app_file same_process_hal_file vndk_sp_file vendor_public_lib_file vendor_public_framework_file ))))
+(typeattribute base_typeattr_299)
+(typeattributeset base_typeattr_299 (and (coredomain ) (not (system_executes_vendor_violators init shell ueventd ))))
+(typeattribute base_typeattr_298)
+(typeattributeset base_typeattr_298 (and (file_type ) (not (vendor_file_type init_exec ))))
+(typeattribute base_typeattr_297)
+(typeattributeset base_typeattr_297 (and (file_type ) (not (system_file_type postinstall_file ))))
+(typeattribute base_typeattr_296)
+(typeattributeset base_typeattr_296 (and (system_file_type ) (not (crash_dump_exec system_lib_file system_linker_exec netutils_wrapper_exec shell_exec toolbox_exec ))))
+(typeattribute base_typeattr_295)
+(typeattributeset base_typeattr_295 (and (domain ) (not (appdomain coredomain vendor_executes_system_violators vendor_init ))))
+(typeattribute base_typeattr_294)
+(typeattributeset base_typeattr_294 (and (coredomain ) (not (init shell ueventd ))))
+(typeattribute base_typeattr_293)
+(typeattributeset base_typeattr_293 (and (coredomain ) (not (data_between_core_and_vendor_violators init ))))
+(typeattribute base_typeattr_292)
+(typeattributeset base_typeattr_292 (and (coredomain ) (not (data_between_core_and_vendor_violators init vold vold_prepare_subdirs ))))
+(typeattribute base_typeattr_291)
+(typeattributeset base_typeattr_291 (and (domain ) (not (appdomain coredomain data_between_core_and_vendor_violators ))))
+(typeattribute base_typeattr_290)
+(typeattributeset base_typeattr_290 (and (core_data_file_type ) (not (system_data_root_file system_data_file vendor_data_file vendor_userdir_file unencrypted_data_file ))))
+(typeattribute base_typeattr_289)
+(typeattributeset base_typeattr_289 (and (core_data_file_type ) (not (system_data_root_file system_data_file vendor_data_file vendor_userdir_file ))))
+(typeattribute base_typeattr_288)
+(typeattributeset base_typeattr_288 (and (core_data_file_type ) (not (unencrypted_data_file ))))
+(typeattribute base_typeattr_287)
+(typeattributeset base_typeattr_287 (and (vendor_init ) (not (data_between_core_and_vendor_violators ))))
+(typeattribute base_typeattr_286)
+(typeattributeset base_typeattr_286 (and (domain ) (not (appdomain coredomain data_between_core_and_vendor_violators vendor_init ))))
+(typeattribute base_typeattr_285)
+(typeattributeset base_typeattr_285 (and (data_file_type ) (not (core_data_file_type app_data_file_type vendor_data_file ))))
+(typeattribute base_typeattr_284)
+(typeattributeset base_typeattr_284 (and (data_file_type ) (not (core_data_file_type app_data_file_type ))))
+(typeattribute base_typeattr_283)
+(typeattributeset base_typeattr_283 (and (coredomain ) (not (appdomain data_between_core_and_vendor_violators init vold_prepare_subdirs ))))
+(typeattribute base_typeattr_282)
+(typeattributeset base_typeattr_282 (and (dev_type file_type ) (not (core_data_file_type app_data_file_type coredomain_socket unlabeled ))))
+(typeattribute base_typeattr_281)
+(typeattributeset base_typeattr_281 (and (coredomain ) (not (socket_between_core_and_vendor_violators init ueventd ))))
+(typeattribute base_typeattr_280)
+(typeattributeset base_typeattr_280 (and (core_data_file_type coredomain_socket unlabeled ) (not (pdx_endpoint_socket_type pdx_channel_socket_type app_data_file privapp_data_file ))))
+(typeattribute base_typeattr_279)
+(typeattributeset base_typeattr_279 (and (domain ) (not (appdomain coredomain socket_between_core_and_vendor_violators data_between_core_and_vendor_violators vendor_init ))))
+(typeattribute base_typeattr_278)
+(typeattributeset base_typeattr_278 (and (domain ) (not (coredomain socket_between_core_and_vendor_violators ))))
+(typeattribute base_typeattr_277)
+(typeattributeset base_typeattr_277 (and (coredomain ) (not (adbd init ))))
+(typeattribute base_typeattr_276)
+(typeattributeset base_typeattr_276 (and (coredomain ) (not (shell ))))
+(typeattribute base_typeattr_275)
+(typeattributeset base_typeattr_275 (and (coredomain ) (not (shell ueventd ))))
+(typeattribute base_typeattr_274)
+(typeattributeset base_typeattr_274 (and (service_manager_type ) (not (app_api_service ephemeral_app_api_service hal_service_type apc_service audioserver_service cameraserver_service drmserver_service credstore_service keystore_maintenance_service keystore_service legacykeystore_service mediaserver_service mediametrics_service mediaextractor_service mediadrmserver_service nfc_service radio_service virtual_touchpad_service vr_manager_service ))))
+(typeattribute base_typeattr_273)
+(typeattributeset base_typeattr_273 (and (appdomain ) (not (coredomain ))))
+(typeattribute base_typeattr_272)
+(typeattributeset base_typeattr_272 (and (domain ) (not (hwservicemanager servicemanager vndservicemanager ))))
+(typeattribute base_typeattr_271)
+(typeattributeset base_typeattr_271 (and (domain ) (not (fastbootd recovery update_engine ))))
+(typeattribute base_typeattr_270)
+(typeattributeset base_typeattr_270 (and (domain ) (not (hal_fastboot_server e2fs fastbootd fsck init recovery vold ))))
+(typeattribute base_typeattr_269)
+(typeattributeset base_typeattr_269 (and (domain ) (not (init recovery system_server ueventd ))))
+(typeattribute base_typeattr_268)
+(typeattributeset base_typeattr_268 (and (domain ) (not (hal_camera_server hal_cas_server hal_drm_server hal_keymint_server adbd dumpstate fastbootd init mediadrmserver mediaserver recovery shell system_server vendor_init ))))
+(typeattribute base_typeattr_267)
+(typeattributeset base_typeattr_267 (and (domain ) (not (coredomain vendor_init ))))
+(typeattribute base_typeattr_266)
+(typeattributeset base_typeattr_266 (and (domain ) (not (init system_server vendor_init ))))
+(typeattribute base_typeattr_265)
+(typeattributeset base_typeattr_265 (and (fs_type ) (not (contextmount_type ))))
+(typeattribute base_typeattr_264)
+(typeattributeset base_typeattr_264 (and (domain ) (not (adbd crash_dump heapprofd init shell ))))
+(typeattribute base_typeattr_263)
+(typeattributeset base_typeattr_263 (and (domain ) (not (adbd init shell ))))
+(typeattribute base_typeattr_262)
+(typeattributeset base_typeattr_262 (and (domain ) (not (init kernel recovery ))))
+(typeattribute base_typeattr_261)
+(typeattributeset base_typeattr_261 (and (domain ) (not (dumpstate init system_server vendor_init ))))
+(typeattribute base_typeattr_260)
+(typeattributeset base_typeattr_260 (and (domain ) (not (dumpstate init vendor_init ))))
+(typeattribute base_typeattr_259)
+(typeattributeset base_typeattr_259 (and (domain ) (not (init vendor_init ))))
+(typeattribute base_typeattr_258)
+(typeattributeset base_typeattr_258 (and (domain ) (not (init ueventd ))))
+(typeattribute base_typeattr_257)
+(typeattributeset base_typeattr_257 (and (file_type ) (not (exec_type postinstall_file ))))
+(typeattribute base_typeattr_256)
+(typeattributeset base_typeattr_256 (and (domain ) (not (shell ueventd ))))
+(typeattribute base_typeattr_255)
+(typeattributeset base_typeattr_255 (and (domain ) (not (prng_seeder shell ueventd ))))
+(typeattribute base_typeattr_254)
+(typeattributeset base_typeattr_254 (and (domain ) (not (kernel ))))
+(typeattribute base_typeattr_253)
+(typeattributeset base_typeattr_253 (and (domain ) (not (init kernel ueventd vold ))))
+(typeattribute base_typeattr_252)
+(typeattributeset base_typeattr_252 (and (domain ) (not (init recovery ))))
+(typeattribute base_typeattr_251)
+(typeattributeset base_typeattr_251 (and (domain ) (not (domain ))))
+(typeattribute base_typeattr_250)
+(typeattributeset base_typeattr_250 (and (domain ) (not (coredomain ))))
+(typeattribute base_typeattr_249)
+(typeattributeset base_typeattr_249 (and (domain ) (not (isolated_app servicemanager vndservicemanager ))))
+(typeattribute base_typeattr_248)
+(typeattributeset base_typeattr_248 (and (domain ) (not (hwservicemanager vndservicemanager ))))
+(typeattribute base_typeattr_247)
+(typeattributeset base_typeattr_247 (and (domain ) (not (display_service_server ))))
+(typeattribute base_typeattr_246)
+(typeattributeset base_typeattr_246 (and (domain ) (not (credstore ))))
+(typeattribute base_typeattr_245)
+(typeattributeset base_typeattr_245 (and (domain ) (not (cameraserver ))))
+(typeattribute base_typeattr_244)
+(typeattributeset base_typeattr_244 (and (domain ) (not (camera_service_server ))))
+(typeattribute base_typeattr_243)
+(typeattributeset base_typeattr_243 (and (domain ) (not (bufferhubd ))))
+(typeattribute base_typeattr_242)
+(typeattributeset base_typeattr_242 (and (domain ) (not (bootstat init ))))
+(typeattribute base_typeattr_241)
+(typeattributeset base_typeattr_241 (and (appdomain ) (not (bluetooth system_app ))))
+(typeattribute base_typeattr_240)
+(typeattributeset base_typeattr_240 (and (appdomain ) (not (bluetooth nfc ))))
+(typeattribute base_typeattr_239)
+(typeattributeset base_typeattr_239 (and (appdomain ) (not (untrusted_app_all isolated_app_all platform_app priv_app ))))
+(typeattribute base_typeattr_238)
+(typeattributeset base_typeattr_238 (and (domain ) (not (credstore init ))))
+(typeattribute base_typeattr_237)
+(typeattributeset base_typeattr_237 (and (appdomain ) (not (platform_app ))))
+(typeattribute base_typeattr_236)
+(typeattributeset base_typeattr_236 (and (domain ) (not (appdomain perfetto ))))
+(typeattribute base_typeattr_235)
+(typeattributeset base_typeattr_235 (and (appdomain ) (not (shell ))))
+(typeattribute base_typeattr_234)
+(typeattributeset base_typeattr_234 (and (domain ) (not (appdomain crash_dump ))))
+(typeattribute base_typeattr_233)
+(typeattributeset base_typeattr_233 (and (domain ) (not (appdomain ))))
+(typeattribute base_typeattr_232)
+(typeattributeset base_typeattr_232 (and (appdomain ) (not (radio ))))
+(typeattribute base_typeattr_231)
+(typeattributeset base_typeattr_231 (and (appdomain ) (not (network_stack ))))
+(typeattribute base_typeattr_230)
+(typeattributeset base_typeattr_230 (and (appdomain ) (not (bluetooth ))))
+(typeattribute base_typeattr_229)
+(typeattributeset base_typeattr_229 (and (appdomain ) (not (nfc ))))
+(typeattribute base_typeattr_228)
+(typeattributeset base_typeattr_228 (and (appdomain ) (not (bluetooth network_stack ))))
+(typeattribute base_typeattr_227)
+(typeattributeset base_typeattr_227 (and (domain ) (not (apexd init servicemanager system_server update_engine ))))
+(typeattribute base_typeattr_226)
+(typeattributeset base_typeattr_226 (and (domain ) (not (apexd init system_server update_engine ))))
+(typeattribute base_typeattr_225)
+(typeattributeset base_typeattr_225 (and (domain ) (not (apexd ))))
+(typeattribute base_typeattr_224)
+(typeattributeset base_typeattr_224 (all))
+(typeattribute base_typeattr_223)
+(typeattributeset base_typeattr_223 (and (domain ) (not (init ))))
+(typeattribute base_typeattr_222)
+(typeattributeset base_typeattr_222 (and (hal_wifi_supplicant_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_221)
+(typeattributeset base_typeattr_221 (and (hal_wifi_supplicant_server ) (not (hal_wifi_supplicant ))))
+(typeattribute base_typeattr_220)
+(typeattributeset base_typeattr_220 (and (hal_wifi_supplicant_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_219)
+(typeattributeset base_typeattr_219 (and (hal_wifi_hostapd_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_218)
+(typeattributeset base_typeattr_218 (and (hal_wifi_hostapd_server ) (not (hal_wifi_hostapd ))))
+(typeattribute base_typeattr_217)
+(typeattributeset base_typeattr_217 (and (hal_wifi_hostapd_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_216)
+(typeattributeset base_typeattr_216 (and (hal_wifi_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_215)
+(typeattributeset base_typeattr_215 (and (hal_wifi_server ) (not (hal_wifi ))))
+(typeattribute base_typeattr_214)
+(typeattributeset base_typeattr_214 (and (hal_wifi_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_213)
+(typeattributeset base_typeattr_213 (and (hal_weaver_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_212)
+(typeattributeset base_typeattr_212 (and (hal_weaver_server ) (not (hal_weaver ))))
+(typeattribute base_typeattr_211)
+(typeattributeset base_typeattr_211 (and (hal_weaver_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_210)
+(typeattributeset base_typeattr_210 (and (hal_vr_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_209)
+(typeattributeset base_typeattr_209 (and (hal_vr_server ) (not (hal_vr ))))
+(typeattribute base_typeattr_208)
+(typeattributeset base_typeattr_208 (and (hal_vr_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_207)
+(typeattributeset base_typeattr_207 (and (hal_vibrator_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_206)
+(typeattributeset base_typeattr_206 (and (hal_vibrator_server ) (not (hal_vibrator ))))
+(typeattribute base_typeattr_205)
+(typeattributeset base_typeattr_205 (and (hal_vibrator_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_204)
+(typeattributeset base_typeattr_204 (and (hal_vehicle_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_203)
+(typeattributeset base_typeattr_203 (and (hal_vehicle_server ) (not (hal_vehicle ))))
+(typeattribute base_typeattr_202)
+(typeattributeset base_typeattr_202 (and (hal_vehicle_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_201)
+(typeattributeset base_typeattr_201 (and (hal_uwb_vendor_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_200)
+(typeattributeset base_typeattr_200 (and (hal_uwb_vendor_server ) (not (hal_uwb_vendor ))))
+(typeattribute base_typeattr_199)
+(typeattributeset base_typeattr_199 (and (hal_uwb_vendor_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_198)
+(typeattributeset base_typeattr_198 (and (hal_uwb_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_197)
+(typeattributeset base_typeattr_197 (and (hal_uwb_server ) (not (hal_uwb ))))
+(typeattribute base_typeattr_196)
+(typeattributeset base_typeattr_196 (and (hal_uwb_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_195)
+(typeattributeset base_typeattr_195 (and (hal_usb_gadget_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_194)
+(typeattributeset base_typeattr_194 (and (hal_usb_gadget_server ) (not (hal_usb_gadget ))))
+(typeattribute base_typeattr_193)
+(typeattributeset base_typeattr_193 (and (hal_usb_gadget_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_192)
+(typeattributeset base_typeattr_192 (and (hal_usb_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_191)
+(typeattributeset base_typeattr_191 (and (hal_usb_server ) (not (hal_usb ))))
+(typeattribute base_typeattr_190)
+(typeattributeset base_typeattr_190 (and (hal_usb_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_189)
+(typeattributeset base_typeattr_189 (and (hal_tv_tuner_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_188)
+(typeattributeset base_typeattr_188 (and (hal_tv_tuner_server ) (not (hal_tv_tuner ))))
+(typeattribute base_typeattr_187)
+(typeattributeset base_typeattr_187 (and (hal_tv_tuner_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_186)
+(typeattributeset base_typeattr_186 (and (hal_tv_input_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_185)
+(typeattributeset base_typeattr_185 (and (hal_tv_input_server ) (not (hal_tv_input ))))
+(typeattribute base_typeattr_184)
+(typeattributeset base_typeattr_184 (and (hal_tv_input_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_183)
+(typeattributeset base_typeattr_183 (and (hal_tv_hdmi_earc_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_182)
+(typeattributeset base_typeattr_182 (and (hal_tv_hdmi_earc_server ) (not (hal_tv_hdmi_earc ))))
+(typeattribute base_typeattr_181)
+(typeattributeset base_typeattr_181 (and (hal_tv_hdmi_earc_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_180)
+(typeattributeset base_typeattr_180 (and (hal_tv_hdmi_connection_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_179)
+(typeattributeset base_typeattr_179 (and (hal_tv_hdmi_connection_server ) (not (hal_tv_hdmi_connection ))))
+(typeattribute base_typeattr_178)
+(typeattributeset base_typeattr_178 (and (hal_tv_hdmi_connection_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_177)
+(typeattributeset base_typeattr_177 (and (hal_tv_hdmi_cec_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_176)
+(typeattributeset base_typeattr_176 (and (hal_tv_hdmi_cec_server ) (not (hal_tv_hdmi_cec ))))
+(typeattribute base_typeattr_175)
+(typeattributeset base_typeattr_175 (and (hal_tv_hdmi_cec_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_174)
+(typeattributeset base_typeattr_174 (and (hal_tv_cec_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_173)
+(typeattributeset base_typeattr_173 (and (hal_tv_cec_server ) (not (hal_tv_cec ))))
+(typeattribute base_typeattr_172)
+(typeattributeset base_typeattr_172 (and (hal_tv_cec_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_171)
+(typeattributeset base_typeattr_171 (and (hal_threadnetwork_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_170)
+(typeattributeset base_typeattr_170 (and (hal_threadnetwork_server ) (not (hal_threadnetwork ))))
+(typeattribute base_typeattr_169)
+(typeattributeset base_typeattr_169 (and (hal_threadnetwork_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_168)
+(typeattributeset base_typeattr_168 (and (hal_thermal_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_167)
+(typeattributeset base_typeattr_167 (and (hal_thermal_server ) (not (hal_thermal ))))
+(typeattribute base_typeattr_166)
+(typeattributeset base_typeattr_166 (and (hal_thermal_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_165)
+(typeattributeset base_typeattr_165 (and (hal_tetheroffload_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_164)
+(typeattributeset base_typeattr_164 (and (hal_tetheroffload_server ) (not (hal_tetheroffload ))))
+(typeattribute base_typeattr_163)
+(typeattributeset base_typeattr_163 (and (hal_tetheroffload_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_162)
+(typeattributeset base_typeattr_162 (and (hal_telephony_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_161)
+(typeattributeset base_typeattr_161 (and (hal_telephony_server ) (not (hal_telephony ))))
+(typeattribute base_typeattr_160)
+(typeattributeset base_typeattr_160 (and (hal_telephony_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_159)
+(typeattributeset base_typeattr_159 (and (hal_sensors_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_158)
+(typeattributeset base_typeattr_158 (and (hal_sensors_server ) (not (hal_sensors ))))
+(typeattribute base_typeattr_157)
+(typeattributeset base_typeattr_157 (and (hal_sensors_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_156)
+(typeattributeset base_typeattr_156 (and (hal_secure_element_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_155)
+(typeattributeset base_typeattr_155 (and (hal_secure_element_server ) (not (hal_secure_element ))))
+(typeattribute base_typeattr_154)
+(typeattributeset base_typeattr_154 (and (hal_secure_element_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_153)
+(typeattributeset base_typeattr_153 (and (hal_remotelyprovisionedcomponent_avf_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_152)
+(typeattributeset base_typeattr_152 (and (hal_remotelyprovisionedcomponent_avf_server ) (not (hal_remotelyprovisionedcomponent_avf ))))
+(typeattribute base_typeattr_151)
+(typeattributeset base_typeattr_151 (and (hal_remotelyprovisionedcomponent_avf_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_150)
+(typeattributeset base_typeattr_150 (and (hal_secretkeeper_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_149)
+(typeattributeset base_typeattr_149 (and (hal_secretkeeper_server ) (not (hal_secretkeeper ))))
+(typeattribute base_typeattr_148)
+(typeattributeset base_typeattr_148 (and (hal_secretkeeper_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_147)
+(typeattributeset base_typeattr_147 (and (hal_remoteaccess_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_146)
+(typeattributeset base_typeattr_146 (and (hal_remoteaccess_server ) (not (hal_remoteaccess ))))
+(typeattribute base_typeattr_145)
+(typeattributeset base_typeattr_145 (and (hal_remoteaccess_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_144)
+(typeattributeset base_typeattr_144 (and (hal_rebootescrow_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_143)
+(typeattributeset base_typeattr_143 (and (hal_rebootescrow_server ) (not (hal_rebootescrow ))))
+(typeattribute base_typeattr_142)
+(typeattributeset base_typeattr_142 (and (hal_rebootescrow_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_141)
+(typeattributeset base_typeattr_141 (and (hal_power_stats_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_140)
+(typeattributeset base_typeattr_140 (and (hal_power_stats_server ) (not (hal_power_stats ))))
+(typeattribute base_typeattr_139)
+(typeattributeset base_typeattr_139 (and (hal_power_stats_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_138)
+(typeattributeset base_typeattr_138 (and (hal_power_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_137)
+(typeattributeset base_typeattr_137 (and (hal_power_server ) (not (hal_power ))))
+(typeattribute base_typeattr_136)
+(typeattributeset base_typeattr_136 (and (hal_power_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_135)
+(typeattributeset base_typeattr_135 (and (hal_omx_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_134)
+(typeattributeset base_typeattr_134 (and (hal_omx_server ) (not (hal_omx ))))
+(typeattribute base_typeattr_133)
+(typeattributeset base_typeattr_133 (and (hal_omx_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_132)
+(typeattributeset base_typeattr_132 (and (hal_oemlock_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_131)
+(typeattributeset base_typeattr_131 (and (hal_oemlock_server ) (not (hal_oemlock ))))
+(typeattribute base_typeattr_130)
+(typeattributeset base_typeattr_130 (and (hal_oemlock_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_129)
+(typeattributeset base_typeattr_129 (and (hal_nlinterceptor_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_128)
+(typeattributeset base_typeattr_128 (and (hal_nlinterceptor_server ) (not (hal_nlinterceptor ))))
+(typeattribute base_typeattr_127)
+(typeattributeset base_typeattr_127 (and (hal_nlinterceptor_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_126)
+(typeattributeset base_typeattr_126 (and (hal_nfc_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_125)
+(typeattributeset base_typeattr_125 (and (hal_nfc_server ) (not (hal_nfc ))))
+(typeattribute base_typeattr_124)
+(typeattributeset base_typeattr_124 (and (hal_nfc_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_123)
+(typeattributeset base_typeattr_123 (and (hal_neuralnetworks_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_122)
+(typeattributeset base_typeattr_122 (and (hal_neuralnetworks_server ) (not (hal_neuralnetworks ))))
+(typeattribute base_typeattr_121)
+(typeattributeset base_typeattr_121 (and (hal_neuralnetworks_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_120)
+(typeattributeset base_typeattr_120 (and (hal_memtrack_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_119)
+(typeattributeset base_typeattr_119 (and (hal_memtrack_server ) (not (hal_memtrack ))))
+(typeattribute base_typeattr_118)
+(typeattributeset base_typeattr_118 (and (hal_memtrack_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_117)
+(typeattributeset base_typeattr_117 (and (hal_macsec_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_116)
+(typeattributeset base_typeattr_116 (and (hal_macsec_server ) (not (hal_macsec ))))
+(typeattribute base_typeattr_115)
+(typeattributeset base_typeattr_115 (and (hal_macsec_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_114)
+(typeattributeset base_typeattr_114 (and (hal_lowpan_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_113)
+(typeattributeset base_typeattr_113 (and (hal_lowpan_server ) (not (hal_lowpan ))))
+(typeattribute base_typeattr_112)
+(typeattributeset base_typeattr_112 (and (hal_lowpan_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_111)
+(typeattributeset base_typeattr_111 (and (hal_light_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_110)
+(typeattributeset base_typeattr_110 (and (hal_light_server ) (not (hal_light ))))
+(typeattribute base_typeattr_109)
+(typeattributeset base_typeattr_109 (and (hal_light_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_108)
+(typeattributeset base_typeattr_108 (and (hal_keymint_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_107)
+(typeattributeset base_typeattr_107 (and (hal_keymint_server ) (not (hal_keymint ))))
+(typeattribute base_typeattr_106)
+(typeattributeset base_typeattr_106 (and (hal_keymint_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_105)
+(typeattributeset base_typeattr_105 (and (hal_keymaster_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_104)
+(typeattributeset base_typeattr_104 (and (hal_keymaster_server ) (not (hal_keymaster ))))
+(typeattribute base_typeattr_103)
+(typeattributeset base_typeattr_103 (and (hal_keymaster_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_102)
+(typeattributeset base_typeattr_102 (and (hal_ivn_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_101)
+(typeattributeset base_typeattr_101 (and (hal_ivn_server ) (not (hal_ivn ))))
+(typeattribute base_typeattr_100)
+(typeattributeset base_typeattr_100 (and (hal_ivn_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_99)
+(typeattributeset base_typeattr_99 (and (hal_ir_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_98)
+(typeattributeset base_typeattr_98 (and (hal_ir_server ) (not (hal_ir ))))
+(typeattribute base_typeattr_97)
+(typeattributeset base_typeattr_97 (and (hal_ir_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_96)
+(typeattributeset base_typeattr_96 (and (hal_input_processor_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_95)
+(typeattributeset base_typeattr_95 (and (hal_input_processor_server ) (not (hal_input_processor ))))
+(typeattribute base_typeattr_94)
+(typeattributeset base_typeattr_94 (and (hal_input_processor_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_93)
+(typeattributeset base_typeattr_93 (and (hal_input_classifier_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_92)
+(typeattributeset base_typeattr_92 (and (hal_input_classifier_server ) (not (hal_input_classifier ))))
+(typeattribute base_typeattr_91)
+(typeattributeset base_typeattr_91 (and (hal_input_classifier_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_90)
+(typeattributeset base_typeattr_90 (and (hal_identity_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_89)
+(typeattributeset base_typeattr_89 (and (hal_identity_server ) (not (hal_identity ))))
+(typeattribute base_typeattr_88)
+(typeattributeset base_typeattr_88 (and (hal_identity_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_87)
+(typeattributeset base_typeattr_87 (and (hal_health_storage_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_86)
+(typeattributeset base_typeattr_86 (and (hal_health_storage_server ) (not (hal_health_storage ))))
+(typeattribute base_typeattr_85)
+(typeattributeset base_typeattr_85 (and (hal_health_storage_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_84)
+(typeattributeset base_typeattr_84 (and (hal_health_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_83)
+(typeattributeset base_typeattr_83 (and (hal_health_server ) (not (hal_health ))))
+(typeattribute base_typeattr_82)
+(typeattributeset base_typeattr_82 (and (hal_health_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_81)
+(typeattributeset base_typeattr_81 (and (hal_graphics_composer_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_80)
+(typeattributeset base_typeattr_80 (and (hal_graphics_composer_server ) (not (hal_graphics_composer ))))
+(typeattribute base_typeattr_79)
+(typeattributeset base_typeattr_79 (and (hal_graphics_composer_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_78)
+(typeattributeset base_typeattr_78 (and (hal_graphics_allocator_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_77)
+(typeattributeset base_typeattr_77 (and (hal_graphics_allocator_server ) (not (hal_graphics_allocator ))))
+(typeattribute base_typeattr_76)
+(typeattributeset base_typeattr_76 (and (hal_graphics_allocator_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_75)
+(typeattributeset base_typeattr_75 (and (hal_gnss_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_74)
+(typeattributeset base_typeattr_74 (and (hal_gnss_server ) (not (hal_gnss ))))
+(typeattribute base_typeattr_73)
+(typeattributeset base_typeattr_73 (and (hal_gnss_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_72)
+(typeattributeset base_typeattr_72 (and (hal_gatekeeper_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_71)
+(typeattributeset base_typeattr_71 (and (hal_gatekeeper_server ) (not (hal_gatekeeper ))))
+(typeattribute base_typeattr_70)
+(typeattributeset base_typeattr_70 (and (hal_gatekeeper_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_69)
+(typeattributeset base_typeattr_69 (and (hal_fingerprint_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_68)
+(typeattributeset base_typeattr_68 (and (hal_fingerprint_server ) (not (hal_fingerprint ))))
+(typeattribute base_typeattr_67)
+(typeattributeset base_typeattr_67 (and (hal_fingerprint_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_66)
+(typeattributeset base_typeattr_66 (and (hal_fastboot_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_65)
+(typeattributeset base_typeattr_65 (and (hal_fastboot_server ) (not (hal_fastboot ))))
+(typeattribute base_typeattr_64)
+(typeattributeset base_typeattr_64 (and (hal_fastboot_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_63)
+(typeattributeset base_typeattr_63 (and (hal_face_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_62)
+(typeattributeset base_typeattr_62 (and (hal_face_server ) (not (hal_face ))))
+(typeattribute base_typeattr_61)
+(typeattributeset base_typeattr_61 (and (hal_face_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_60)
+(typeattributeset base_typeattr_60 (and (hal_evs_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_59)
+(typeattributeset base_typeattr_59 (and (hal_evs_server ) (not (hal_evs ))))
+(typeattribute base_typeattr_58)
+(typeattributeset base_typeattr_58 (and (hal_evs_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_57)
+(typeattributeset base_typeattr_57 (and (hal_dumpstate_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_56)
+(typeattributeset base_typeattr_56 (and (hal_dumpstate_server ) (not (hal_dumpstate ))))
+(typeattribute base_typeattr_55)
+(typeattributeset base_typeattr_55 (and (hal_dumpstate_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_54)
+(typeattributeset base_typeattr_54 (and (hal_drm_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_53)
+(typeattributeset base_typeattr_53 (and (hal_drm_server ) (not (hal_drm ))))
+(typeattribute base_typeattr_52)
+(typeattributeset base_typeattr_52 (and (hal_drm_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_51)
+(typeattributeset base_typeattr_51 (and (hal_contexthub_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_50)
+(typeattributeset base_typeattr_50 (and (hal_contexthub_server ) (not (hal_contexthub ))))
+(typeattribute base_typeattr_49)
+(typeattributeset base_typeattr_49 (and (hal_contexthub_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_48)
+(typeattributeset base_typeattr_48 (and (hal_confirmationui_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_47)
+(typeattributeset base_typeattr_47 (and (hal_confirmationui_server ) (not (hal_confirmationui ))))
+(typeattribute base_typeattr_46)
+(typeattributeset base_typeattr_46 (and (hal_confirmationui_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_45)
+(typeattributeset base_typeattr_45 (and (hal_configstore_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_44)
+(typeattributeset base_typeattr_44 (and (hal_configstore_server ) (not (hal_configstore ))))
+(typeattribute base_typeattr_43)
+(typeattributeset base_typeattr_43 (and (hal_configstore_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_42)
+(typeattributeset base_typeattr_42 (and (hal_codec2_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_41)
+(typeattributeset base_typeattr_41 (and (hal_codec2_server ) (not (hal_codec2 ))))
+(typeattribute base_typeattr_40)
+(typeattributeset base_typeattr_40 (and (hal_codec2_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_39)
+(typeattributeset base_typeattr_39 (and (hal_cas_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_38)
+(typeattributeset base_typeattr_38 (and (hal_cas_server ) (not (hal_cas ))))
+(typeattribute base_typeattr_37)
+(typeattributeset base_typeattr_37 (and (hal_cas_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_36)
+(typeattributeset base_typeattr_36 (and (hal_can_controller_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_35)
+(typeattributeset base_typeattr_35 (and (hal_can_controller_server ) (not (hal_can_controller ))))
+(typeattribute base_typeattr_34)
+(typeattributeset base_typeattr_34 (and (hal_can_controller_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_33)
+(typeattributeset base_typeattr_33 (and (hal_can_bus_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_32)
+(typeattributeset base_typeattr_32 (and (hal_can_bus_server ) (not (hal_can_bus ))))
+(typeattribute base_typeattr_31)
+(typeattributeset base_typeattr_31 (and (hal_can_bus_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_30)
+(typeattributeset base_typeattr_30 (and (hal_camera_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_29)
+(typeattributeset base_typeattr_29 (and (hal_camera_server ) (not (hal_camera ))))
+(typeattribute base_typeattr_28)
+(typeattributeset base_typeattr_28 (and (hal_camera_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_27)
+(typeattributeset base_typeattr_27 (and (hal_broadcastradio_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_26)
+(typeattributeset base_typeattr_26 (and (hal_broadcastradio_server ) (not (hal_broadcastradio ))))
+(typeattribute base_typeattr_25)
+(typeattributeset base_typeattr_25 (and (hal_broadcastradio_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_24)
+(typeattributeset base_typeattr_24 (and (hal_bootctl_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_23)
+(typeattributeset base_typeattr_23 (and (hal_bootctl_server ) (not (hal_bootctl ))))
+(typeattribute base_typeattr_22)
+(typeattributeset base_typeattr_22 (and (hal_bootctl_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_21)
+(typeattributeset base_typeattr_21 (and (hal_bluetooth_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_20)
+(typeattributeset base_typeattr_20 (and (hal_bluetooth_server ) (not (hal_bluetooth ))))
+(typeattribute base_typeattr_19)
+(typeattributeset base_typeattr_19 (and (hal_bluetooth_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_18)
+(typeattributeset base_typeattr_18 (and (hal_authsecret_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_17)
+(typeattributeset base_typeattr_17 (and (hal_authsecret_server ) (not (hal_authsecret ))))
+(typeattribute base_typeattr_16)
+(typeattributeset base_typeattr_16 (and (hal_authsecret_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_15)
+(typeattributeset base_typeattr_15 (and (hal_authgraph_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_14)
+(typeattributeset base_typeattr_14 (and (hal_authgraph_server ) (not (hal_authgraph ))))
+(typeattribute base_typeattr_13)
+(typeattributeset base_typeattr_13 (and (hal_authgraph_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_12)
+(typeattributeset base_typeattr_12 (and (hal_audiocontrol_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_11)
+(typeattributeset base_typeattr_11 (and (hal_audiocontrol_server ) (not (hal_audiocontrol ))))
+(typeattribute base_typeattr_10)
+(typeattributeset base_typeattr_10 (and (hal_audiocontrol_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_9)
+(typeattributeset base_typeattr_9 (and (hal_audio_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_8)
+(typeattributeset base_typeattr_8 (and (hal_audio_server ) (not (hal_audio ))))
+(typeattribute base_typeattr_7)
+(typeattributeset base_typeattr_7 (and (hal_audio_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_6)
+(typeattributeset base_typeattr_6 (and (hal_atrace_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_5)
+(typeattributeset base_typeattr_5 (and (hal_atrace_server ) (not (hal_atrace ))))
+(typeattribute base_typeattr_4)
+(typeattributeset base_typeattr_4 (and (hal_atrace_server ) (not (halserverdomain ))))
+(typeattribute base_typeattr_3)
+(typeattributeset base_typeattr_3 (and (hal_allocator_client ) (not (halclientdomain ))))
+(typeattribute base_typeattr_2)
+(typeattributeset base_typeattr_2 (and (hal_allocator_server ) (not (hal_allocator ))))
+(typeattribute base_typeattr_1)
+(typeattributeset base_typeattr_1 (and (hal_allocator_server ) (not (halserverdomain ))))
+; THIS IS A WORKAROUND for the current limitations of the module policy language
+; This should be used sparingly until we figure out a saner way to achieve the
+; stuff below, for example, by improving typeattribute statement of module
+; language.
+;
+; NOTE: This file has no effect on recovery policy.
+
+; Apps, except isolated apps, are clients of Allocator HAL
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute { appdomain -isolated_app_all } hal_allocator_client;
+;     typeattribute hal_allocator_client halclientdomain;
+(typeattributeset hal_allocator_client ((and (appdomain) ((not (isolated_app_all))))))
+(typeattributeset halclientdomain (hal_allocator_client))
+
+; Apps, except isolated apps, are clients of OMX-related services
+; Unfortunately, we can't currently express this in module policy language:
+(typeattributeset hal_omx_client ((and (appdomain) ((not (isolated_app))))))
+
+; Apps, except isolated apps, are clients of Codec2-related services
+; Unfortunately, we can't currently express this in module policy language:
+(typeattributeset hal_codec2_client ((and (appdomain) ((not (isolated_app))))))
+
+; Apps, except isolated apps and SDK sandboxes, are clients of Drm-related services
+; Unfortunately, we can't currently express this in module policy language:
+(typeattributeset hal_drm_client ((and (appdomain) ((not (or (isolated_app_all) (sdk_sandbox_all)))))))
+
+; Apps, except isolated apps, are clients of Configstore HAL
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute { appdomain -isolated_app_all } hal_configstore_client;
+(typeattributeset hal_configstore_client ((and (appdomain) ((not (isolated_app_all))))))
+
+; Apps, except isolated apps, are clients of Graphics Allocator HAL
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute { appdomain -isolated_app } hal_graphics_allocator_client;
+(typeattributeset hal_graphics_allocator_client ((and (appdomain) ((not (isolated_app))))))
+
+; Apps, except isolated apps, are clients of Cas HAL
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute { appdomain -isolated_app_all } hal_cas_client;
+(typeattributeset hal_cas_client ((and (appdomain) ((not (isolated_app_all))))))
+
+; Domains hosting Camera HAL implementations are clients of Allocator HAL
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute hal_camera hal_allocator_client;
+(typeattributeset hal_allocator_client (hal_camera))
+
+; Apps, except isolated apps, are clients of Neuralnetworks HAL
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute { appdomain -isolated_app_all } hal_neuralnetworks_client;
+(typeattributeset hal_neuralnetworks_client ((and (appdomain) ((not (isolated_app))))))
+
+; TODO(b/112056006): move these to mapping files when/if we implement 'versioned' attributes.
+; Rename untrusted_app_visible_* to untrusted_app_visible_*_violators.
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute untrusted_app_visible_hwservice untrusted_app_visible_hwservice_violators;
+;     typeattribute untrusted_app_visible_halserver untrusted_app_visible_halserver_violators;
+(typeattribute untrusted_app_visible_hwservice)
+(typeattributeset untrusted_app_visible_hwservice_violators (untrusted_app_visible_hwservice))
+(typeattribute untrusted_app_visible_halserver)
+(typeattributeset untrusted_app_visible_halserver_violators (untrusted_app_visible_halserver))
+
+; Properties having both system_property_type and vendor_property_type are illegal
+; Unfortunately, we can't currently express this in module policy language:
+;     typeattribute { system_property_type && vendor_property_type } system_and_vendor_property_type;
+(typeattribute system_and_vendor_property_type)
+(typeattributeset system_and_vendor_property_type ((and (system_property_type) (vendor_property_type))))
diff --git a/prebuilts/api/202404/Android.bp b/prebuilts/api/202404/Android.bp
index fb76da1..c0fb5a2 100644
--- a/prebuilts/api/202404/Android.bp
+++ b/prebuilts/api/202404/Android.bp
@@ -69,3 +69,12 @@
         targets: ["base-sepolicy-files-for-mapping"],
     },
 }
+
+filegroup {
+    name: "202404_sepolicy_cts_data",
+    srcs: [
+        "202404_general_sepolicy.conf",
+        "202404_plat_sepolicy.cil",
+        "202404_mapping.cil",
+    ],
+}
