Preciso de um kernel / módulo modificado para a varredura RSSI do bluetooth?

1

Eu quero escrever um scanner que mostre os dispositivos bluetooth próximos com seus valores de RSSI. Eu não quero emparelhar ou mesmo conectar aos dispositivos, deve ser totalmente silencioso. Pelo que vi, frameworks unix bluetooth, como o bluez, requerem pelo menos uma conexão. É algo que é determinado pelo módulo kernel / bluetooth?

    
por ApriOri 20.05.2015 / 13:21

1 resposta

2

Se a informação RSSI é retornada com os resultados de uma verificação de consulta depende do seu adaptador Bluetooth - alguns incluem esse recurso e outros não. Você pode identificar os recursos do seu adaptador Bluetooth local usando o hciconfig, procurando pela string "RSSI":

# hciconfig -a hci0 features | grep RSSI
    <park state> <RSSI> <channel quality> <SCO link> <HV2 packets> 
    <interlaced iscan> <interlaced pscan> <inquiry with RSSI> 

Se o hardware suportar consulta com RSSI, não é necessário modificar os drivers do kernel para seu adaptador Bluetooth. Você precisará escrever algum código que abra um soquete Bluetooth para analisar os resultados da verificação de consulta para extrair informações de RSSI. Eu tenho uma implementação Python em BTFind aqui link na classe BTPoller.

Observe que a verificação do modo de pesquisa não é silenciosa - o "pesquisador" está enviando pacotes de solicitação de consulta e, portanto, pode ser detectado por um sniffer. Uma alternativa silenciosa seria usar o hardware Ubertooth One e operar no modo sniffer de pacote, mas você não poderia participar da rede Bluetooth sem um segundo adaptador Bluetooth também.

    
por 20.05.2015 / 14:04