1# HwBinder IPC from client to server, and callbacks 2binder_call(hal_health_client, hal_health_server) 3binder_call(hal_health_server, hal_health_client) 4 5add_hwservice(hal_health_server, hal_health_hwservice) 6allow hal_health_client hal_health_hwservice:hwservice_manager find; 7 8# Read access to system files for HALs in 9# /{system,vendor,odm}/lib[64]/hw/ in order 10# to be able to open the hal implementation .so files 11r_dir_file(hal_health, system_file) 12 13# Common rules for a health service. 14 15# Allow to listen to uevents for updates 16allow hal_health_server self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; 17 18# Allow to read /sys/class/power_supply directory 19allow hal_health_server sysfs:dir r_dir_perms; 20 21# Allow to read files under /sys/class/power_supply. Implementations typically have symlinks 22# to vendor specific files. Vendors should mark sysfs_batteryinfo on all files read by health 23# HAL service. 24r_dir_file(hal_health_server, sysfs_batteryinfo) 25 26# Allow to wake up to send periodic events 27wakelock_use(hal_health_server) 28 29# Write to /dev/kmsg 30allow hal_health_server kmsg_device:chr_file w_file_perms; 31