問題タブ [btle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
140 参照

wireshark - ubertooth-btle による ATT パケットなし

端末に次のように入力して、携帯電話とスマート電球の間の Bluetooth 接続を盗聴しようとしています:$ubertooth-btle -f -t @MAC -c smartbulb.pcap.問題は、ATT パケットがないことです。携帯電話で電球の色を変更している間だけADV_IND、パケットを取得します。SCAN_REQ

バージョン情報 Ubuntu 18.04

Ubertooth ツール バージョン (ubertooth-rx -V): libubertooth 1.0 (2017-03-R2)、libbtbb 1.0 (2017-03-R2)

Ubertooth ファームウェア バージョン (ubertooth-util -v): ファームウェア バージョン: 2017-03-R2 (API:1.02)

0 投票する
1 に答える
317 参照

bluetooth - BLE アドバタイズメントが既に有効になっているかどうかを確認する方法 (HCI)

HCI_LE_Set_Advertising_Enable コマンドが成功した場合はステータスを返し、コマンドが失敗した場合はステータス コード[2]HCI_LE_Set_Advertising_Enableを返す [1] コマンドを使用して、BLE アドバタイジングを有効にすることができます。0x000x01 to 0xFF

広告が既に有効になっている場合 (たとえば、Advertising_Enableパラメータを に設定してこのコマンドを 2 回呼び出す0x01)、このコマンドまたはHCI_LE_Set_Advertising_Dataコマンドは status を返します0x0C (Command Disallowed)

これには (少なくとも) 2 つの問題があります。

  • すでに有効になっている広告を有効にすると、ランダム アドレスが変更される可能性があります。すでに無効になっている広告を無効にしても効果はありません。[1]

  • BlueZ スタックには、ほとんどの HCI ライブラリ関数の最後に次のコードが含まれています。 これにより、たとえばhci_le_set_advertise_enable、関数が一般的な失敗コードを返し-1、 に設定さerrnoれますEIO。これは、他の BlueZ エラー、HCI エラー、または実際の IO エラー (HCI レイヤーは UART を使用) と区別できません。

安全/厳密なエラー処理を実行できるように、LE アドバタイズメントが既に有効になっているかどうかを確認する方法は? BT Core Specs にGet Advertising Statusのコマンドが見つかりません。私は何かに頼ることはできません

ありがとうございました。

参考文献:

  • [1] BT CS 5.2 [Vol 4] パート E、セクション 7.8.9
  • [2] BT CS 5.2 [Vol 1] パート F、コントローラ エラー コード