# start bt_vhci_forwarder when apex is ready
on property:apex.all.ready=true
    start bt_vhci_forwarder

service bt_vhci_forwarder /apex/com.google.cf.bt/bin/bt_vhci_forwarder -virtio_console_dev=${vendor.ser.bt-uart}
    user bluetooth
    group bluetooth

service btlinux /apex/com.google.cf.bt/bin/hw/android.hardware.bluetooth-service.default
    class hal
    user bluetooth
    group bluetooth net_admin net_bt_admin
    capabilities NET_ADMIN

service bt_finder /apex/com.google.cf.bt/bin/hw/android.hardware.bluetooth.finder-service.default
    class hal
    user bluetooth
    group bluetooth net_admin net_bt_admin
    capabilities NET_ADMIN

service bt_ranging /apex/com.google.cf.bt/bin/hw/android.hardware.bluetooth.ranging-service.default
    class hal
    user bluetooth
    group bluetooth net_admin net_bt_admin
    capabilities NET_ADMIN
