allow system_server storage_stub_file:dir getattr;

allow system_server adbroot_service:service_manager find;

# Use HALs
hal_client_domain(system_server, hal_lineage_fastcharge)
hal_client_domain(system_server, hal_lineage_health)
hal_client_domain(system_server, hal_lineage_livedisplay)
hal_client_domain(system_server, hal_lineage_touch)
hal_client_domain(system_server, hal_lineage_powershare)

# Let system server find auxiliary camera properties
get_prop(system_server, vendor_persist_camera_prop)

# Let system server toggle xtra-daemon
set_prop(system_server, xtra_control_prop)
