# wc_transport.start_hci and friends
set_prop(hal_bluetooth, wc_prop)

# talk to system_server to set priority
allow hal_bluetooth fwk_scheduler_hwservice:hwservice_manager find;
allow hal_bluetooth system_server:binder call;

userdebug_or_eng(`
  allow hal_bluetooth diag_device:chr_file rw_file_perms;
  allow hal_bluetooth ramdump_vendor_data_file:dir w_dir_perms;
  allow hal_bluetooth ramdump_vendor_data_file:file { create w_file_perms };
  allow hal_bluetooth sysfs_timestamp_switch:file r_file_perms;
  r_dir_file(hal_bluetooth, debugfs_ipc)
  r_dir_file(hal_bluetooth, sysfs_diag)
  set_prop(hal_bluetooth, vendor_ssr_prop)
')

dontaudit hal_bluetooth diag_device:chr_file rw_file_perms;
