| # HwBinder IPC from client to server, and callbacks |
| binder_call(hal_health_client, hal_health_server) |
| binder_call(hal_health_server, hal_health_client) |
| |
| add_hwservice(hal_health_server, hal_health_hwservice) |
| allow hal_health_client hal_health_hwservice:hwservice_manager find; |
| |
| # Read access to system files for HALs in |
| # /{system,vendor,odm}/lib[64]/hw/ in order |
| # to be able to open the hal implementation .so files |
| r_dir_file(hal_health, system_file) |
| |
| # Common rules for a health service. |
| |
| # Allow to listen to uevents for updates |
| allow hal_health_server self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; |
| |
| # Allow to read /sys/class/power_supply directory |
| allow hal_health_server sysfs:dir r_dir_perms; |
| |
| # Allow to read files under /sys/class/power_supply. Implementations typically have symlinks |
| # to vendor specific files. Vendors should mark sysfs_batteryinfo on all files read by health |
| # HAL service. |
| r_dir_file(hal_health_server, sysfs_batteryinfo) |
| |
| # Allow to wake up to send periodic events |
| wakelock_use(hal_health_server) |