android4.2之後,增長了bludroid,在作測試時,會發現與以前的bluez的測試,有着較大的變更。下面羅列一些bluedroid的不一樣點,以及以前bluez的測試命令驗證(該部分是用bluez作的測試,針對bluedroid的測試後續會補充)。
html
對藍牙棧bluedroid的測試變更:android
1. 已經沒有 bttest 的測試工具,也就說沒有bt_enable(), bt_disable()的功能來打開和關閉藍牙
sql
2. 一些Bluedroid中沒有的測試功能。shell
hcitool, hciconfig,rctest, l2test,Sdptool。而藍牙 FTM 的測試工具仍是有的。ide
3. bluedroid中全部的log都可以在log cat中查看,不像以前的bluez,一部分在log cat中,一部分在 kernel log中。而且,bluedroid對不一樣的profile和層次的log進行了分類(對BTM, HCI, L2CAP, RFCOMM, OBEX),在bt_stack.conf中能夠進行配置 ,並想android中的Log同樣,能夠對輸出的log作輸出等級的調整(0-6來表示)。
工具
對bluez的測試命令:測試
網上已經有不少資料了,找到一篇不錯的資料:
ui
原文地址:http://blog.chinaunix.net/uid-25909619-id-3554423.html 這裏感謝做者的分享!
.net
因爲原文做者雖然說明了藍牙是用的BlueZ的藍牙棧,但未註明所使用的手機版本和型號,爲了保險起見,下面是針對裏面的命令作下測試。命令行
個人環境:Android 4.1.1 藍牙棧:BlueZ
命令行測試藍牙
1. 命令行控制藍牙開關
adb shell
cd /data/data/com.android.providers.settings/databases
sqlite3 settings.db
select * from secure where name="bluetooth_on"; (查看是否打開)
update secure set value=1 where name="bluetooth_on"; (這裏的value=1是打開,0是關閉)
select * from secure where name="bluetooth_on"; (確認是否更改爲功)
reboot <重啓手機生效>
2. 命令行操做藍牙
Android原生包括高通QRD用的是blueZ的藍牙協議棧,有提供兩個工具:hciconfig和hcitool用於調試藍牙,開始調試前首先須要將這些工具Push到手機上:
adb remount
adb push hciconfig /system/xbin
adb push hcitool /system/xbin
adb shell
chmod -R 777 /system/xbin
要注意的是,這些工具只適用於blueZ,象MTK用的是bluetoothangel就不適用了
經常使用的一些命令:
hciconfig -a (查看藍牙地址,芯片狀態等等)
hcitool scan (進行藍牙搜索,並列出搜索到的設備名稱和設備地址)
hciconfig hciX piscan (開啓Inquiry Scan和Page Scan,使手機處於可被搜索和可鏈接狀態)
可使用hciconfig --help以及hcitool --help來查詢其它的功能,尤爲要提的是hcitool cmd這個命令,經過這個命令能夠發送任何的HCI Command,大部分藍牙功能均可以經過發送HCI Command來實現,具體HCI Command格式能夠查詢藍牙Spec
進入測試模式的命令:
hcitool cmd 0x06 0x0003 (Enter Test Mode)
hcitool cmd 0x03 0x0005 0x02 0x00 0x02 (Auto Accept All Connections)
hcitool cmd 0x03 0x001A 0x03 (Page Inquiry Scans)
hcitool cmd 0x03 0x0020 0x00 (Disable Authentication)
hcitool cmd 0x03 0x0022 0x00 (Disable Encryption)
Qualcomm bt test :
the follow commands to bring up bt through adb shell:
#echo 1 > /sys/class/rfkill/rfkill0/state
#hci_qcomm_init -vvv -e
#hciattach /dev/ttyHS0 qualcomm-ibs 3000000
#hciconfig hci0 up
#hcitool scan
The follow commands are used to enter test mode.
#bttest disable
#bttest enable
#bttest is_enabled
#bttest enable_dut_mode
測試後,都可正常使用。對bluedroid的實際測試,以後會回來補充。
bluedroid支持的測試工具:
btnvtool btool btrftest btrftestd bttest