# HwBinder IPC from clients into server, and callbacks
binder_call(hal_bluetooth_client, hal_bluetooth_server)
binder_call(hal_bluetooth_server, hal_bluetooth_client)

add_hwservice(hal_bluetooth_server, hal_bluetooth_hwservice)
allow hal_bluetooth_client hal_bluetooth_hwservice:hwservice_manager find;

wakelock_use(hal_bluetooth);

# The HAL toggles rfkill to power the chip off/on.
allow hal_bluetooth self:capability net_admin;

# bluetooth factory file accesses.
r_dir_file(hal_bluetooth, bluetooth_efs_file)

allow hal_bluetooth { uhid_device hci_attach_dev }:chr_file rw_file_perms;

# sysfs access.
r_dir_file(hal_bluetooth, sysfs_type)
allow hal_bluetooth sysfs_bluetooth_writable:file rw_file_perms;
allow hal_bluetooth self:capability2 wake_alarm;

# Allow write access to bluetooth-specific properties
set_prop(hal_bluetooth, bluetooth_prop)

# /proc access (bluesleep etc.).
allow hal_bluetooth proc_bluetooth_writable:file rw_file_perms;

# allow to run with real-time scheduling policy
allow hal_bluetooth self:capability sys_nice;
