Android HCI日志分析案例2

案例1--蓝牙音箱电量用完后,配对一直失败,提示PIN码不正确

基于MTK平台,通过MTKLogger开启保存HCI日志

问题定位分析

Android日志查看logcat 搜索到关键log

01-20 10:07:55.403760   978  1075 V bt_stack: [VERBOSE2:btm_inq.cc(2032)] BDA 74:a3:4a:0f:e3:2b
01-20 10:07:55.403878   978  1075 V bt_stack: [VERBOSE2:btm_inq.cc(2035)] Inquire BDA 74:a3:4a:0f:e3:2b
01-20 10:07:55.403948   978  1075 V bt_stack: [VERBOSE1:btm_inq.cc(951)] BTM_InqDbRead: bd addr 74:a3:4a:0f:e3:2b
01-20 10:07:55.403981   978  1075 D bt_btm  : btm_find_dev_type - device_type = 1 addr_type = 0
01-20 10:07:55.404019   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete
01-20 10:07:55.404041   978  1075 D bt_btm  : btm_acl_resubmit_page
01-20 10:07:55.404081   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete PairState: GET_REM_NAME  RemName:   status: 19 State:0  p_dev_rec: 0x9ffc9000 
01-20 10:07:55.404137   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete() continue bonding sm4: 0x0000, status:0x13
01-20 10:07:55.404160   978  1075 I bt_btm  : btm_sec_change_pairing_state()  Old: GET_REM_NAME
01-20 10:07:55.404181   978  1075 I bt_btm  : btm_sec_change_pairing_state()  New: IDLE pairing_flags:0x1
01-20 10:07:55.404336   978  1075 V bt_stack: [VERBOSE1:btm_inq.cc(951)] BTM_InqDbRead: bd addr 74:a3:4a:0f:e3:2b
01-20 10:07:55.404381   978  1075 D bt_btm  : btm_find_dev_type - device_type = 1 addr_type = 0
01-20 10:07:55.404414   978  1075 D bt_btif : btif_transfer_context event 3, len 280
01-20 10:07:55.404527   978  1018 D bt_btif : btif task fetched event a001
01-20 10:07:55.404553   978  1018 D bt_btif : btif_context_switched
01-20 10:07:55.404574   978  1018 I bt_btif : btif_dm_upstreams_evt: ev: BTA_DM_AUTH_CMPL_EVT
01-20 10:07:55.404596   978  1018 D bt_btif : btif_dm_auth_cmpl_evt: bond state=1, success=0, key_present=0
01-20 10:07:55.404619   978  1018 D bt_btif :  btif_dm_auth_cmpl_evt() Authentication fail reason 19

关键日志

01-20 10:07:55.404081   978  1075 I bt_btm  : btm_sec_rmt_name_request_complete PairState: GET_REM_NAME  RemName:   status: 19 State:0  p_dev_rec: 0x9ffc9000

01-20 10:07:55.404619   978  1018 D bt_btif :  btif_dm_auth_cmpl_evt() Authentication fail reason 19

HCI定位分析

根据这些信息,配对是链路层的行为,即在 HCI中搜索

进行搜索

一目了然,看到对端主动断开连接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程实战:类C语法的编译型脚本解释器(三)

系列入口: 编程实战:类C语法的编译型脚本解释器(系列)-CSDN博客 本文讲解插件(自定义函数)的接口。 一、插件接口 //插件struct CPlugin{string plugin_name;Variable::types plugin_return_type;CPlugin(…

Stream

什么是Stream? 也叫Stream流,是jdk8开始新增的一套API,可以用来操作集合或者数组的数据 优势:Stream流大量的结合了Lambda的语法风格来编程,提供了一种更加强大,更加简单的方式操作集合或数组中的数据&am…

高防服务器的工作原理_Maizyun

随着互联网的快速发展,网络安全问题日益突出。高防服务器作为一种有效的网络安全防御手段,广泛应用于各种网络环境中。本文将详细介绍高防服务器的工作原理,帮助大家更好地理解其作用和优势。 一、高防服务器概述 高防服务器主要是指能够提…

详解Spring工厂是如何获取Aop中的代理对象的

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

Ext4文件系统解析(一)

1、前言 熟悉Linux操作系统的都应该或多或少的了解或者使用过Ext4文件系统。 接下来,会简单介绍Ext4文件系统的一些特性和工作原理。 2、常用概念 在介绍Ext文件系统之前,先简单描述一些相关概念。 块(Block):Ext文件系统存储分配的基本单…

【探索Linux】—— 强大的命令行工具 P.19(多线程 | 线程的概念 | 线程控制 | 分离线程)

阅读导航 引言一、 Linux线程概念1. 什么是线程2. 线程的概念3. 线程与进程的区别4. 线程异常 二、Linux线程控制1. POSIX线程库2. 创建线程 pthread_create() 函数(1)头文件(2)函数原型(3)参数解释&#x…

Spring MVC学习随笔-控制器(Controller)开发详解:控制器跳转与作用域(一)

学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅 第五章、SpringMVC控制器开发详解 三 5.1 核心要点 3.流程跳转 5.2 JavaWeb中流程跳转的核心回顾 5.2.1 JavaWeb中流程跳转的核…

[传智杯 #3 初赛] 课程报名

题目描述 传智播客推出了一款课程,并进行了一次促销活动。具体来说就是,课程的初始定价为 v 元;每报名 m 个学员,课程的定价就要提升 a 元。由于课程能够容纳的学生有限,因此报名到 n 人的时候就停止报名。 现在老师…

20231202_python练习_b站视频爬取(selenium浏览器模拟登录版)

首先手工登录一次获取cookies,然后进行数据保存 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By import time import json# 创建Chrome浏览器对象 chrome_opt webdriver.Ch…

网络入门---网络编程初步认识和实践

目录标题 前言准备工作udpserver.hpp成员变量构造函数初始化函数(socket,bind)start函数(recvfrom) udpServer.ccudpClient.hpp构造函数初始化函数run函数(sendto) udpClient.cc测试 前言 在上一篇文章中我们初步的认识了端口号的作用,ip地址和MAC地址在网络通信时…

QT 中 QProgressDialog 进度条窗口 备查

基础API //两个构造函数 QProgressDialog::QProgressDialog(QWidget *parent nullptr, Qt::WindowFlags f Qt::WindowFlags());QProgressDialog::QProgressDialog(const QString &labelText, const QString &cancelButtonText, int minimum, int maximum, QWidget *…

面试 Java 基础八股文十问十答第三期

面试 Java 基础八股文十问十答第三期 作者:程序员小白条,个人博客 ⭐点赞⭐收藏⭐不迷路!⭐ 21.说下Java8的Stream流的常用方法 答: forEach遍历、find、match进行匹配reduce进行归约,比如求和,乘,除聚合…

base64转PDF

今天做皖事通的对接,下载电子证照后发现回传的是base64,调试确认是个麻烦事,网上搜了一下没有base64转PDF的在线预览功能,只能自己写个调试工具了,以下是通过纯JS方式写的代码,可直接拿去使用: …

com.intellij.openapi.application.ApplicationListener使用

一般监听期通过如下代码生效 <applicationListeners> <!-- <listener class"com.itheima.taunt.MyApplicationListener"--> <!-- topic"com.intellij.openapi.application.ApplicationListener"…

淘宝用户体验VOC标签体系

本专题共10篇内容&#xff0c;包含淘宝APP基础链路过去一年在用户体验数据科学领域&#xff08;包括商详、物流、性能、消息、客服、旅程等&#xff09;一些探索和实践经验。 在商详页基于用户动线和VOC挖掘用户决策因子带来浏览体验提升&#xff1b;在物流侧洞察用户求助时间与…

计算机组成原理笔记——存储器(静态RAM和动态RAM的区别,动态RAM的刷新, ROM……)

■ 随机存取存储器 ■ 1.随机存取存储器&#xff1a;按存储信息的原理不同分为&#xff1a;静态RAM和动态RAM 2.静态RAM&#xff08;SRAM&#xff09;&#xff1a;用触发器工作原理存储信息&#xff0c;但电源掉电时&#xff0c;存储信息会丢失具有易失性。 3.存储器的基本单元…

springboot监听器模式源码精讲

1.前言 很多时候我们看源码的时候看不下去&#xff0c;其中一个原因是系统往往使用了许多设计模式&#xff0c;如果你不清楚这些设计模式&#xff0c;这无疑增加了你阅读源码的难度。 springboot中就大量使用了设计模式&#xff0c;本文主要介绍其中的一种监听器模式&#xf…

网络安全领域的12个大语言模型用例

网络安全是人工智能最大的细分市场&#xff0c;过去几年网络安全厂商纷纷宣称整合了人工智能技术&#xff08;当然也有很多仅仅是炒作&#xff09;&#xff0c;其中大部分是基于基线和统计异常的机器学习。 随着ChatGPT和类似生成式人工智能技术的飞速发展&#xff0c;基于大语…

算法实战应用案例精讲-『机器学习』scikit-learn 工具库应用详解

目录 机器学习库Scikit-learn库使用 SKLearn入门与简单应用案例 引言 1.SKLearn是什么 2.安装SKLearn 3.SKLea

数学建模-基于BL回归模型和决策树模型对早产危险因素的探究和预测

整体求解过程概述(摘要) 近年来&#xff0c;全球早产率总体呈上升趋势&#xff0c;在我国&#xff0c;早产儿以每年 20 万的数目逐年递增&#xff0c;目前早产已经成为重大的公共卫生问题之一。据研究,早产是威胁胎儿及新生儿健康的重要因素&#xff0c;可能会造成死亡或智力体…