type system_suspend, domain, coredomain, system_suspend_server;

type system_suspend_exec, system_file_type, exec_type, file_type;
init_daemon_domain(system_suspend)

# To serve ISuspendControlService.aidl.
binder_use(system_suspend)
add_service(system_suspend, system_suspend_control_service)

# Access to /sys/power/{ wakeup_count, state } suspend interface.
allow system_suspend sysfs_power:file rw_file_perms;

# TODO(b/128923994): remove once all debugging info moves to SystemSuspend.
# Access to /sys/power/{ wake_lock, wake_unlock } suspend blocker interface.
allow system_suspend self:global_capability2_class_set block_suspend;
allow system_suspend sysfs_wake_lock:file rw_file_perms;

neverallow {
    domain
    -atrace # tracing
    -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;
