Android藍(lán)牙BQB測(cè)試fail項(xiàng)分析

Bluetooth

在進(jìn)行BQB測(cè)試時(shí)茉盏,實(shí)驗(yàn)室會(huì)反饋一些fail項(xiàng),需要我們分析原因隔披。而實(shí)驗(yàn)室提供給我們的信息往往不多赃份,通常只是一個(gè)測(cè)試case id,外加一句簡(jiǎn)單的現(xiàn)象描述奢米。單從這兩點(diǎn)信息來(lái)分析抓韩,我們完全不知道實(shí)驗(yàn)室是怎么樣去測(cè)試這條case,該條case的Pass verdict是什么鬓长?

例如:
PAN
TP/PAN/IP/APP/BV-05-I:
提示問(wèn)題:Wrong ICMP response received

當(dāng)我們拿到這樣一個(gè)fail項(xiàng)時(shí)谒拴,應(yīng)該怎樣去分析呢?

首先涉波,明確測(cè)試步驟和要求

BQB所有測(cè)試項(xiàng)英上,在藍(lán)牙開(kāi)發(fā)者門戶網(wǎng)站上都有測(cè)試說(shuō)明文檔炭序。

https://www.bluetooth.com/zh-cn/specifications/qualification-test-requirements

資格認(rèn)證測(cè)試規(guī)范列表

需要注意的是,一些BT Profile存在多個(gè)版本苍日,像上圖的OPP就有3個(gè)不同的版本:OPP惭聂、OPP 1.2 、OPP 1.2.1易遣。所以彼妻,還需要先確認(rèn)在申請(qǐng)BQB測(cè)試時(shí)填寫的Profile對(duì)應(yīng)支持的是哪一個(gè)版本

要下載這些文檔豆茫,必需先使用公司郵箱注冊(cè)賬戶加入Bluetooth SIG

注冊(cè)賬號(hào)

注冊(cè)成功以后侨歉,下載PAN的測(cè)試說(shuō)明文檔,在文檔中搜索case id " TP/PAN/IP/APP/BV-05-I"揩魂,可以看到一個(gè)詳細(xì)的測(cè)試步驟說(shuō)明幽邓,Pass verdictFail verdict

PAN TP/PAN/IP/APP/BV-05-I

實(shí)際案例分析

BQB測(cè)試步驟我們已經(jīng)知道了,接下來(lái)以實(shí)際的例子火脉,介紹常見(jiàn)的測(cè)試失敗的原因牵舵,和分析思路。

Case 1. PTS(實(shí)驗(yàn)室測(cè)試BQB的工具)本身的Bug

PAN
TP/PAN/IP/APP/BV-05-I:
提示問(wèn)題:Wrong ICMP response received

Step 1. 首先倦挂,你得大概知道這個(gè)BT Profile是干嘛的畸颅?

PAN(Personal Area Network Profile)和個(gè)人局域網(wǎng)相關(guān)的藍(lán)牙服務(wù)。根據(jù)PAN測(cè)試文檔的描述方援,看上去是ping不通導(dǎo)致失敗的没炒。

Step 2. 嘗試模擬現(xiàn)象

可以用你進(jìn)行BQB測(cè)試的Android手機(jī),去連下PAN這個(gè)Profile犯戏,然后再去Ping下送火,觀察下是什么現(xiàn)象?能否復(fù)現(xiàn)Ping不通的情況先匪。

我找了一個(gè)藍(lán)牙適配器插到電腦上种吸,并安裝了BlueSoleil在我的電腦上,方便連接各種BT profile呀非。

連接藍(lán)牙個(gè)人局域網(wǎng)

使用測(cè)試手機(jī)連接上PAN坚俗,再電腦上嘗試去Ping 192.168.44.1, 果然是Ping不通。那么問(wèn)題來(lái)了岸裙,為什么要去Ping 192.168.44.1呢坦冠?因?yàn)镻anService里面設(shè)置地址就是192.168.44.1。

PanService.java中設(shè)置IP為192.168.44.1

Step 3. 使用ifconfig查看手機(jī)上網(wǎng)絡(luò)設(shè)備的狀態(tài)哥桥,發(fā)現(xiàn)沒(méi)有192.168.44.1相關(guān)的信息

使用ifconfig查看手機(jī)上網(wǎng)絡(luò)設(shè)備的狀態(tài)

Step 4 . 檢查手機(jī)上和網(wǎng)絡(luò)相關(guān)的設(shè)置菜單辙浑,發(fā)現(xiàn)有一個(gè)Bluetooth tethering開(kāi)關(guān)

Bluetooth tethering

Step 5. 將Bluetooth tethering開(kāi)關(guān)打開(kāi)以后,再次嘗試ping拟糕,總算是ping通了判呕。

ping 192.168.44.1

Step 6. 再次使用ifconfig查看手機(jī)上網(wǎng)絡(luò)設(shè)備的狀態(tài)倦踢,發(fā)現(xiàn)多了一項(xiàng)bt-pan,里面對(duì)應(yīng)的地址正是:192.168.44.1

再次使用ifconfig查看手機(jī)上網(wǎng)絡(luò)設(shè)備的狀態(tài)

Step 7 . 請(qǐng)實(shí)驗(yàn)室在測(cè)試PAN前侠草,打開(kāi)Bluetooth tethering開(kāi)關(guān)辱挥,復(fù)測(cè)還是失敗

Step 8 . 再次分析log

log

  • state : 2 ----> CONNECTED = 2 //表示PAN已經(jīng)連接成功

  • local_role:2 ----> LOCAL_PANU_ROLE = 2 //The local device is acting as a PAN User

  • remote_role :1 ----> REMOTE_NAP_ROLE = 1 //The local device is acting as a Network Access Point

  • 結(jié)論
    根據(jù)local_role和remote_role的值,說(shuō)明是相機(jī)主動(dòng)發(fā)起的PAN連接边涕,那么在進(jìn)行PAN測(cè)試時(shí)晤碘,必需保證PTS的bt-pan已經(jīng)激活,并且PTS配置的相機(jī)ip是正確的功蜓。而我們之前模擬的情況是PTS作為了PAN User园爷,手機(jī)作為Network Access Point,和實(shí)驗(yàn)室的剛好相反式撼。

Step 9 . 再次模擬
為了保證和實(shí)驗(yàn)室測(cè)試條件一樣童社,使用兩臺(tái)手機(jī)進(jìn)行PAN連接,其中一臺(tái)作為Network Access Point著隆,一臺(tái)作為PAN User扰楼,分別在兩臺(tái)手機(jī)上嘗試PING,均可以PING通美浦。證明我們的手機(jī)上網(wǎng)功能是OK的弦赖,怎么在實(shí)驗(yàn)室就PING不通了呢?

Step 10 . 在bluetooth.org官網(wǎng)上搜索PTS issue
bluetooth.org官網(wǎng)上提供了一個(gè)平臺(tái)用來(lái)上報(bào)BQB測(cè)試中遇到的問(wèn)題浦辨,并提供解決方法腾节,網(wǎng)址如下:

https://www.bluetooth.org/pts/issues/

搜到一條:TC_IP_APP_BV_05_I: non-ICMP packets are treated by PTS as "wrong ICMP response". 和我們的現(xiàn)象和類似,PTS從6.0上存在一個(gè)issue荤牍,會(huì)導(dǎo)致TC_IP_APP_BV_05_I測(cè)試失敗。

TC_IP_APP_BV_05_I: non-ICMP packets are treated by PTS as "wrong ICMP response"

Step 11 . 和實(shí)驗(yàn)室溝通庆冕,更換PTS為5.3版本康吵,總算復(fù)測(cè)通過(guò)了。

Case 2. 測(cè)試條件不滿足

HID
TP/DAT/BV-02-C:
彈出下面對(duì)話框后選Send_report(long)


fail信息提示

提示:Received a report smaller than the MTU, please send a larger report

Step 1. HID(Human Interface Device Profile)可支持鼠標(biāo)访递、鍵盤功能晦嵌,和藍(lán)牙鍵盤、鼠標(biāo)相關(guān)的一個(gè)Profile拷姿。

Step 2. 在HID測(cè)試文檔中搜索case id "TP/DAT/BV-02-C".

大概說(shuō)的是手機(jī)要發(fā)一個(gè)超長(zhǎng)的report給MTU惭载,并且長(zhǎng)度要超過(guò)MTU規(guī)定的長(zhǎng)度,該項(xiàng)才能pass响巢。

HID TP/DAT/BV-02-C

Step 3. 確定我們發(fā)送的report長(zhǎng)度描滔,和MTU要求的長(zhǎng)度。

實(shí)驗(yàn)室抓取了測(cè)試該項(xiàng)fail時(shí)的log踪古,在log里面搜索關(guān)鍵字HID含长,發(fā)現(xiàn)還真有SEND_REPORT_LONG這么一條券腔,看上去和測(cè)試文檔說(shuō)的一樣,是在BluetoothHidActivity里面調(diào)用的拘泞。

實(shí)驗(yàn)室提供的log

Step 4. 確認(rèn)測(cè)試方式

搜索了整個(gè)工程里面的代碼纷纫,沒(méi)發(fā)現(xiàn)BluetoothHidActivity相關(guān)的代碼。和實(shí)驗(yàn)室確認(rèn)陪腌,他們使用的是BluetoothHidActivity.apk來(lái)進(jìn)行SEND_REPORT_LONG測(cè)試的忙上。

Step 5. 開(kāi)始模擬現(xiàn)象

找一個(gè)藍(lán)牙鍵盤連接上手機(jī)酸茴,并手機(jī)上安裝BluetoothHidActivity.apk,點(diǎn)Send_report(long),可以打印出同樣的SEND_REPORT_LONG相關(guān)log娄蔼,證明我們的操作是正確的。

BluetoothHidActivity APP測(cè)試HID的選項(xiàng)

Step 6. 反編譯APK & 修改smail代碼

由于沒(méi)有apk源碼遇汞,只能對(duì)BluetoothHidActivity.apk進(jìn)行反編譯软驰,然后查看點(diǎn)Send_report(long)時(shí),發(fā)送的report是5700请唱,而發(fā)送的“5700”的字符串弥咪,對(duì)應(yīng)log為:

report的值表示設(shè)置的字符串

而實(shí)驗(yàn)室要求的長(zhǎng)度為48,明顯長(zhǎng)度不夠十绑。

下圖為反編譯出來(lái)的smail代碼聚至,增加5700的長(zhǎng)度。

反編譯后得到的smail代碼

Step 7. 重新打包&簽名apk本橙,驗(yàn)證效果

通過(guò)抓取的log分析扳躬,report值已經(jīng)改變,證明修改已經(jīng)生效甚亭。

修改后抓取的log

Step 8. 將修改后的apk發(fā)給實(shí)驗(yàn)室贷币,復(fù)測(cè)通過(guò)

Case 3. 申請(qǐng)BQB時(shí),PICS填寫不正確

HFP
TP/ECC/BI-03-I
測(cè)試過(guò)程中出現(xiàn)如下提示亏狰,按照提示接通第一個(gè)和第二個(gè)電話役纹,并點(diǎn)擊OK,測(cè)試結(jié)束暇唾,錯(cuò)誤提示如下所示


HFP test fail.png

Step 1. 下載HFP測(cè)試文檔

發(fā)現(xiàn)有好幾個(gè)版本促脉,我們申請(qǐng)的是1.5版本,所以下載“免提配置文件1.5”就好了策州。

HFP測(cè)試規(guī)范

下載后瘸味,發(fā)現(xiàn)文件名稱叫HFP.TS.1.7.1.1.pdf,明明下的是1.5版本够挂,怎么又變成1.7了旁仿?打開(kāi)HFP.TS.1.7.1.1.pdf,從標(biāo)題可以看出1.5-1.7都通用1.7的測(cè)試文檔孽糖。

HFP.TS.1.7.1.1

Step 2. 搜索case id "TP/ECC/BI-03-I" 丁逝,找到測(cè)試步驟描述汁胆。

大概的意思是HF發(fā)送一條AT指令給AG(我們的手機(jī)),AG收到指令后霜幼,需要回復(fù)ERROR嫩码,測(cè)試才能pass。

HFP TP/ECC/BI-03-I

乍一看會(huì)覺(jué)得很奇怪罪既,其他測(cè)試項(xiàng)都是回復(fù)OK才算pass铸题,怎么回復(fù)ERROR才能pass了?

仔細(xì)閱讀測(cè)試說(shuō)明琢感,發(fā)現(xiàn)有這么一句:
AG does not support Enhanced Call Control features.
而TP/ECC/BI-03-I測(cè)的就是Enhanced Call Control Not Supported-Release Call丢间,既然不支持Enhanced Call Control,那返回ERROR就可以理解了驹针。

Step 3. 分析實(shí)驗(yàn)室提供的HCI log

從實(shí)驗(yàn)室提供的HCI log來(lái)看烘挫,AG在收到HF發(fā)送的AT+CHLD=12后,返回的是OK柬甥,同時(shí)check代碼饮六,發(fā)現(xiàn)我們是支持Enhanced Call Control功能的。

HCI log

Step 4. 確認(rèn)PICS中Enhanced Call Control的支持情況

和實(shí)驗(yàn)室確認(rèn)苛蒲,由于我們填寫的PICS里面Enhanced Call Control寫的是不支持卤橄,導(dǎo)致該fail,修改Enhanced Call Control為支持臂外,測(cè)試通過(guò)窟扑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市漏健,隨后出現(xiàn)的幾起案子嚎货,更是在濱河造成了極大的恐慌,老刑警劉巖蔫浆,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殖属,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡克懊,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門七蜘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)谭溉,“玉大人,你說(shuō)我怎么就攤上這事橡卤“缒睿” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵碧库,是天一觀的道長(zhǎng)柜与。 經(jīng)常有香客問(wèn)我巧勤,道長(zhǎng),這世上最難降的妖魔是什么弄匕? 我笑而不...
    開(kāi)封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任颅悉,我火速辦了婚禮,結(jié)果婚禮上迁匠,老公的妹妹穿的比我還像新娘剩瓶。我一直安慰自己,他們只是感情好城丧,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布延曙。 她就那樣靜靜地躺著,像睡著了一般亡哄。 火紅的嫁衣襯著肌膚如雪枝缔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天蚊惯,我揣著相機(jī)與錄音愿卸,去河邊找鬼。 笑死拣挪,一個(gè)胖子當(dāng)著我的面吹牛擦酌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播菠劝,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼赊舶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了赶诊?” 一聲冷哼從身側(cè)響起笼平,我...
    開(kāi)封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舔痪,沒(méi)想到半個(gè)月后寓调,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锄码,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年夺英,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滋捶。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痛悯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出重窟,到底是詐尸還是另有隱情载萌,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布,位于F島的核電站扭仁,受9級(jí)特大地震影響垮衷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乖坠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一搀突、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓤帚,春花似錦描姚、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至怯邪,卻和暖如春绊寻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背悬秉。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工澄步, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人和泌。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓村缸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親武氓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子梯皿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容