藍牙開發的同學想必一定遇到這樣的問題:
fastboot重刷完安卓系統後,snoop文件是默認不保存的。
這對相當多藍牙協議棧開發人員是一個麻煩,因爲通過分析Host和Controller之間的消息交互能確定很多問題,那有沒有什麼方法打開這個snoop文件?那是必須有的,方法如下:
1、手動打開snoop文件開關
手動打開的步驟如下:
- 打開安卓系統中的開發人員選項:
英文:System -> About phone -> Build number ,連續點擊Build number 五次
中文:系統 -> 關於手機 -> 版本號,連續點擊版本號五次 - 在系統(System)下點擊開發人員選項(Developer options)
- 打開HCI snoop文件開關按鈕
- 重新開關設置中藍牙按鈕,讓上述配置生效
2、默認打開snoop文件開關
默認打開的方法有如下兩種:
- 通過指令:adb shell setprop persist.bluetooth.btsnoopenable true 打開藍牙HCI snoop,重新開關藍牙,使其配置生效
- 或者通過修改安卓源碼:system\bt\hci\src\btsnoop.cc 中的函數
is_btsnoop_enabled()讓其始終返回 true,重編協議棧的so庫替換系統中的庫
經過如上步驟的操作,藍牙的snoop文件就會保存起來,默認存儲路徑:data/misc/bluetooth/logs/,使用專業的藍牙協議分析工具 Ellisys Bluetooth Analyzer和Frontline對應的軟件打開HCI snoop文件就可以分析底層藍牙信息交互的全過程了。
更多互聯互通技術,歡迎關注微信公衆號:Connectivity