blob: 5590ca57b5d0f645f12f9b1f75edde6a9f6cdac8 [file] [log] [blame]
William Hester5f486c72019-01-15 13:39:30 -08001# Allow apps to read the Test Harness Mode property. This property is used in
2# the implementation of ActivityManager.isDeviceInTestHarnessMode()
3get_prop(appdomain, test_harness_prop)
4
Florian Mayer5e522812019-10-08 16:15:14 +01005userdebug_or_eng(`perfetto_producer({ appdomain })')
6
Jeff Vander Stoep607bc672019-12-16 10:59:03 +01007# Prevent apps from causing presubmit failures.
8# Apps can cause selinux denials by accessing CE storage
9# and/or external storage. In either case, the selinux denial is
10# not the cause of the failure, but just a symptom that
11# storage isn't ready. Many apps handle the failure appropriately.
12#
13# Apps cannot access external storage before it becomes available.
14dontaudit appdomain storage_stub_file:dir getattr;
15# Attempts to write to system_data_file is generally a sign
16# that apps are attempting to access encrypted storage before
17# the ACTION_USER_UNLOCKED intent is delivered. Apps are not
18# allowed to write to CE storage before it's available.
19# Attempting to do so will be blocked by both selinux and unix
20# permissions.
21dontaudit appdomain system_data_file:dir write;
22
Nathan Haroldee268642017-12-14 18:20:30 -080023neverallow appdomain system_server:udp_socket {
Nathan Harold252b0152018-03-27 06:34:54 -070024 accept append bind create ioctl listen lock name_bind
25 relabelfrom relabelto setattr shutdown };
Nick Kralevich1e5021c2018-11-28 17:50:24 -080026
27# Transition to a non-app domain.
28# Exception for the shell and su domains, can transition to runas, etc.
Nick Kralevich0eb0a162018-12-12 09:06:05 -080029# Exception for crash_dump to allow for app crash reporting.
30# Exception for renderscript binaries (/system/bin/bcc, /system/bin/ld.mc)
31# to allow renderscript to create privileged executable files.
32neverallow { appdomain -shell userdebug_or_eng(`-su') }
33 { domain -appdomain -crash_dump -rs }:process { transition };
34neverallow { appdomain -shell userdebug_or_eng(`-su') }
35 { domain -appdomain }:process { dyntransition };