blob: 99d8c6d290d6e8139e37166c383f1d1cc02d4132 [file] [log] [blame]
Alex Klyubinf5446eb2017-03-23 14:27:32 -07001typeattribute bootstat coredomain;
2
dcashmancc39f632016-07-22 13:13:11 -07003init_daemon_domain(bootstat)
Inseob Kim55e5c9b2020-03-04 17:20:35 +09004
5# Collect metrics on boot time created by init
6get_prop(bootstat, boottime_prop)
7
8# Read/Write [persist.]sys.boot.reason and ro.boot.bootreason (write if empty)
9set_prop(bootstat, bootloader_boot_reason_prop)
10set_prop(bootstat, system_boot_reason_prop)
11set_prop(bootstat, last_boot_reason_prop)
12
13neverallow {
14 domain
15 -bootanim
16 -bootstat
17 -dumpstate
Wenjie Zhou27d52552020-04-09 14:43:00 -070018 userdebug_or_eng(`-incidentd')
Inseob Kim55e5c9b2020-03-04 17:20:35 +090019 -init
Alexei Nicoara957e8f32023-09-11 17:43:45 +010020 -platform_app
Inseob Kim55e5c9b2020-03-04 17:20:35 +090021 -recovery
22 -shell
23 -system_server
24} { bootloader_boot_reason_prop last_boot_reason_prop }:file r_file_perms;
25# ... and refine, as these components should not set the last boot reason
26neverallow { bootanim recovery } last_boot_reason_prop:file r_file_perms;
27
28neverallow {
29 domain
30 -bootstat
31 -init
32 -system_server
33} { bootloader_boot_reason_prop last_boot_reason_prop }:property_service set;
34# ... and refine ... for a ro propertly no less ... keep this _tight_
35neverallow system_server bootloader_boot_reason_prop:property_service set;