| type chre, domain; |
| type chre_exec, vendor_file_type, exec_type, file_type; |
| init_daemon_domain(chre) |
| |
| # Permit communication with AoC |
| allow chre aoc_device:chr_file rw_file_perms; |
| |
| # Allow CHRE to determine AoC's current clock |
| allow chre sysfs_aoc:dir search; |
| allow chre sysfs_aoc_boottime:file r_file_perms; |
| |
| # Allow CHRE to create thread to watch AOC's device |
| allow chre device:dir r_dir_perms; |
| |
| # Allow CHRE to use the USF low latency transport |
| usf_low_latency_transport(chre) |
| |
| # Allow CHRE to talk to the WiFi HAL |
| allow chre hal_wifi_ext:binder { call transfer }; |
| allow chre hal_wifi_ext_hwservice:hwservice_manager find; |
| allow chre hal_wifi_ext_service:service_manager find; |
| |
| # Allow CHRE host to talk to stats service |
| allow chre fwk_stats_service:service_manager find; |
| binder_call(chre, stats_service_server) |
| |
| # Allow CHRE to use WakeLock |
| wakelock_use(chre) |
| |
| # Allow CHRE to block suspend, which is required to use EPOLLWAKEUP. |
| allow chre self:global_capability2_class_set block_suspend; |