Android蓝牙BQB测试fail项分析

Bluetooth

在进行BQB测试时,实验室会反馈一些fail项,需要我们分析原因。而实验室提供给我们的信息往往不多,通常只是一个测试case id,外加一句简单的现象描述。单从这两点信息来分析,我们完全不知道实验室是怎么样去测试这条case,该条case的Pass verdict是什么?

例如:
PAN
TP/PAN/IP/APP/BV-05-I:
提示问题:Wrong ICMP response received

当我们拿到这样一个fail项时,应该怎样去分析呢?

首先,明确测试步骤和要求

BQB所有测试项,在蓝牙开发者门户网站上都有测试说明文档。

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

资格认证测试规范列表

需要注意的是,一些BT Profile存在多个版本,像上图的OPP就有3个不同的版本:OPP、OPP 1.2 、OPP 1.2.1。所以,还需要先确认在申请BQB测试时填写的Profile对应支持的是哪一个版本

要下载这些文档,必需先使用公司邮箱注册账户加入Bluetooth SIG

注册账号

注册成功以后,下载PAN的测试说明文档,在文档中搜索case id " TP/PAN/IP/APP/BV-05-I",可以看到一个详细的测试步骤说明,Pass verdictFail verdict

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

实际案例分析

BQB测试步骤我们已经知道了,接下来以实际的例子,介绍常见的测试失败的原因,和分析思路。

Case 1. PTS(实验室测试BQB的工具)本身的Bug

PAN
TP/PAN/IP/APP/BV-05-I:
提示问题:Wrong ICMP response received

Step 1. 首先,你得大概知道这个BT Profile是干嘛的?

PAN(Personal Area Network Profile)和个人局域网相关的蓝牙服务。根据PAN测试文档的描述,看上去是ping不通导致失败的。

Step 2. 尝试模拟现象

可以用你进行BQB测试的Android手机,去连下PAN这个Profile,然后再去Ping下,观察下是什么现象?能否复现Ping不通的情况。

我找了一个蓝牙适配器插到电脑上,并安装了BlueSoleil在我的电脑上,方便连接各种BT profile。

连接蓝牙个人局域网

使用测试手机连接上PAN,再电脑上尝试去Ping 192.168.44.1, 果然是Ping不通。那么问题来了,为什么要去Ping 192.168.44.1呢?因为PanService里面设置地址就是192.168.44.1。

PanService.java中设置IP为192.168.44.1

Step 3. 使用ifconfig查看手机上网络设备的状态,发现没有192.168.44.1相关的信息

使用ifconfig查看手机上网络设备的状态

Step 4 . 检查手机上和网络相关的设置菜单,发现有一个Bluetooth tethering开关

Bluetooth tethering

Step 5. 将Bluetooth tethering开关打开以后,再次尝试ping,总算是ping通了。

ping 192.168.44.1

Step 6. 再次使用ifconfig查看手机上网络设备的状态,发现多了一项bt-pan,里面对应的地址正是:192.168.44.1

再次使用ifconfig查看手机上网络设备的状态

Step 7 . 请实验室在测试PAN前,打开Bluetooth tethering开关,复测还是失败

Step 8 . 再次分析log

log

  • state : 2 ----> CONNECTED = 2 //表示PAN已经连接成功

  • 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

  • 结论
    根据local_role和remote_role的值,说明是相机主动发起的PAN连接,那么在进行PAN测试时,必需保证PTS的bt-pan已经激活,并且PTS配置的相机ip是正确的。而我们之前模拟的情况是PTS作为了PAN User,手机作为Network Access Point,和实验室的刚好相反。

Step 9 . 再次模拟
为了保证和实验室测试条件一样,使用两台手机进行PAN连接,其中一台作为Network Access Point,一台作为PAN User,分别在两台手机上尝试PING,均可以PING通。证明我们的手机上网功能是OK的,怎么在实验室就PING不通了呢?

Step 10 . 在bluetooth.org官网上搜索PTS issue
bluetooth.org官网上提供了一个平台用来上报BQB测试中遇到的问题,并提供解决方法,网址如下:

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

搜到一条:TC_IP_APP_BV_05_I: non-ICMP packets are treated by PTS as "wrong ICMP response". 和我们的现象和类似,PTS从6.0上存在一个issue,会导致TC_IP_APP_BV_05_I测试失败。

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

Step 11 . 和实验室沟通,更换PTS为5.3版本,总算复测通过了。

Case 2. 测试条件不满足

HID
TP/DAT/BV-02-C:
弹出下面对话框后选Send_report(long)


fail信息提示

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

Step 1. HID(Human Interface Device Profile)可支持鼠标、键盘功能,和蓝牙键盘、鼠标相关的一个Profile。

Step 2. 在HID测试文档中搜索case id "TP/DAT/BV-02-C".

大概说的是手机要发一个超长的report给MTU,并且长度要超过MTU规定的长度,该项才能pass。

HID TP/DAT/BV-02-C

Step 3. 确定我们发送的report长度,和MTU要求的长度。

实验室抓取了测试该项fail时的log,在log里面搜索关键字HID,发现还真有SEND_REPORT_LONG这么一条,看上去和测试文档说的一样,是在BluetoothHidActivity里面调用的。

实验室提供的log

Step 4. 确认测试方式

搜索了整个工程里面的代码,没发现BluetoothHidActivity相关的代码。和实验室确认,他们使用的是BluetoothHidActivity.apk来进行SEND_REPORT_LONG测试的。

Step 5. 开始模拟现象

找一个蓝牙键盘连接上手机,并手机上安装BluetoothHidActivity.apk,点Send_report(long),可以打印出同样的SEND_REPORT_LONG相关log,证明我们的操作是正确的。

BluetoothHidActivity APP测试HID的选项

Step 6. 反编译APK & 修改smail代码

由于没有apk源码,只能对BluetoothHidActivity.apk进行反编译,然后查看点Send_report(long)时,发送的report是5700,而发送的“5700”的字符串,对应log为:

report的值表示设置的字符串

而实验室要求的长度为48,明显长度不够。

下图为反编译出来的smail代码,增加5700的长度。

反编译后得到的smail代码

Step 7. 重新打包&签名apk,验证效果

通过抓取的log分析,report值已经改变,证明修改已经生效。

修改后抓取的log

Step 8. 将修改后的apk发给实验室,复测通过

Case 3. 申请BQB时,PICS填写不正确

HFP
TP/ECC/BI-03-I
测试过程中出现如下提示,按照提示接通第一个和第二个电话,并点击OK,测试结束,错误提示如下所示


HFP test fail.png

Step 1. 下载HFP测试文档

发现有好几个版本,我们申请的是1.5版本,所以下载“免提配置文件1.5”就好了。

HFP测试规范

下载后,发现文件名称叫HFP.TS.1.7.1.1.pdf,明明下的是1.5版本,怎么又变成1.7了?打开HFP.TS.1.7.1.1.pdf,从标题可以看出1.5-1.7都通用1.7的测试文档。

HFP.TS.1.7.1.1

Step 2. 搜索case id "TP/ECC/BI-03-I" ,找到测试步骤描述。

大概的意思是HF发送一条AT指令给AG(我们的手机),AG收到指令后,需要回复ERROR,测试才能pass。

HFP TP/ECC/BI-03-I

乍一看会觉得很奇怪,其他测试项都是回复OK才算pass,怎么回复ERROR才能pass了?

仔细阅读测试说明,发现有这么一句:
AG does not support Enhanced Call Control features.
而TP/ECC/BI-03-I测的就是Enhanced Call Control Not Supported-Release Call,既然不支持Enhanced Call Control,那返回ERROR就可以理解了。

Step 3. 分析实验室提供的HCI log

从实验室提供的HCI log来看,AG在收到HF发送的AT+CHLD=12后,返回的是OK,同时check代码,发现我们是支持Enhanced Call Control功能的。

HCI log

Step 4. 确认PICS中Enhanced Call Control的支持情况

和实验室确认,由于我们填写的PICS里面Enhanced Call Control写的是不支持,导致该fail,修改Enhanced Call Control为支持,测试通过。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容