自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 低功耗蓝牙SMP流程(legacy pairing)

Just Works:适用于没有输入输出能力的设备,但这种模式容易受到中间人攻击(MITM)Passkey Entry:用户需要手动输入一个6位数字作为密钥的一部分,增加了安全性。以Just Works方式举例。

2025-02-27 09:24:35 244

原创 低功耗蓝牙BLE的privacy是什么?

BLE(Bluetooth Low Energy,蓝牙低能耗)的Privacy(隐私)特性主要涉及保护设备的身份信息,以防止被追踪和未经授权的访问。这项功能通过使用随机地址和周期性地址更改来实现,从而增强了设备的安全性和隐私保护。

2025-02-25 16:16:08 486

原创 Makefile编译驱动时碰到的奇怪错误

后面给make提供路径报错解决。后面还发现哪怕这些宏都是空,编译依旧不报错,但不赋值就是报错。但多个蓝牙驱动模块,只有zr模块报错,只能猜测模块自己有判断。driver目录有个的Makefile的$(KSRC)没有赋值,但在驱动模块子目录的Makefile有提供内核路径,zr模块依旧报错。

2025-02-21 10:10:28 201

原创 BluetoothAdapter.java关闭蓝牙的两个接口,设置如何记忆开关

在实现涉及蓝牙控制的功能时,开发者应确保获得了用户的明确同意,并适当地处理各种可能的错误情况。可以看到第一个不带参的disable调用时直接给true,第二个带参可选择是否记忆开关。,表示要保存的蓝牙状态(例如:开启或关闭)。该代码片段展示了如何通过编程方式关闭设备上的蓝牙功能。的私有方法,用于保存蓝牙的开关状态。该方法接收一个整型参数。如果蓝牙不在飞行模式下持久化状态,则根据。这两个方法都需要特定的权限来执行,如。权限,并且需要处理可能发生的。参数决定是否保存蓝牙关闭设置。这段代码定义了一个名为。

2025-02-19 15:11:31 713

原创 安卓蓝牙packages/apps/Bluetooth/src/com/android/bluetooth/btservice这个路径下的文件的作用

目录下的文件构成了 Android 蓝牙服务的核心部分,提供了蓝牙设备管理和通信的各种功能。这些文件通过定义和实现状态机、服务管理、设备配对、音频传输等功能,使得上层应用能够方便地使用蓝牙技术进行设备发现、配对、连接和数据传输等操作。理解这些文件的作用有助于深入掌握 Android 蓝牙服务的工作原理和实现细节。

2025-02-11 17:28:22 450

原创 蓝牙配对过程分析

目录:alps/vendor/mediatek/proprietary/packages/apps/MtkSettings/src/com/android/settings/bluetooth/BluetoothDevicePreference.java。目录alps/frameworks/base/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java。//判断用BR/EDR 还是LE;

2025-01-08 14:53:26 1716

原创 Binder机制的原理

Binder驱动:驱动负责进程之间Binder通信的建立,Binder在进程之间的传递,Binder引用计数管理,数据包在进程之间的传递和交互等一系列底层支持。图中的Client,Server,Service Manager之间交互都是虚线表示,是由于它们彼此之间不是直接交互的,而是都通过与Binder驱动进行交互的,4、使用服务:Client根据得到的Service信息建立与Service所在的Server进程通信的通路,然后就可以直接与Service交互。Client进程:使用服务的进程。

2025-01-08 12:00:16 294

原创 Android 系统启动流程

第四步:init进程(pid=1,init进程是所有进程的鼻祖,第一个启动)启动后,会启动adbd,logd等用户守护进程,并且会启动servicemanager(binder服务管家)等重要服务,第二步:硬件等参数初始化完成后,进入到Kernel层,Kernel层主要加载一些硬件设备驱动,初始化进程管理等操作。第六步:zygote同时会启动相关的APP进程,它启动的第一个APP进程为Launcher,然后启动Email,SMS等进程,所有的APP进程都有zygote fork生成。

2025-01-08 11:45:45 314

原创 蓝牙的inquiry/inquiry scan应该怎么理解?

蓝牙设备开启page scan模式(pagescanphysicalchannel),才能够响应其他蓝牙设备的连接请求。Page scan是一个状态,只有蓝牙耳机处于page scan状态,手机才有可能连接成功,否则不能够连接的。蓝牙设备开启inquiry scan模式(inquiryscanphysicalchannel),才能够被别的蓝牙设备搜索到(address、clock、COD等)发起连接的蓝牙设备向被连接的蓝牙设备发起连接请求或者认证请求即是一次page动作。

2025-01-08 09:44:59 430

原创 安卓蓝牙Bluedroid的初始化流程

13.调用bt_hc_if->logging(...,hci_save_log),根据bt_stack.conf。时shw_cfg_cb.f_set_baud_2的值在hw_config_start()函数调用时初始化。BT_EVT_TRIGGER_STACK_INIT和BT_EVT_HARDWARE_INIT_FAIL。上面函数将hw_cfg_cb.state(下面简称state)置为HW_CFG_START,并向。

2025-01-07 18:23:55 464

原创 Android蓝牙系统框架和代码结构

HCIlibrary的实现,主要内容包括HCI接口的打开和收/发控制、Vendor的so的打开和回调函数的注册、LPM(LowPowerMode)的实现、btsnoop的抓取等。stack主要用于完成各协议在Bluedroid中的实现,协议包含a2dp、avctp、avdtp、avrcp、bnep、gap、gatt、hid、l2cap、pan、rfcomm、sdp、蓝牙芯片的Firmware的加载依赖于HCI层提供的接口,由此接口实现整个加载过程。

2025-01-07 17:52:58 2140

原创 WIFI的2.4G和5G有什么区别,它和我们手机移动网络平时说的5G有什么区别?

WiFi的2.4G和5G指的是无线网络的工作频段,而手机移动网络所说的5G是指第五代移动通信技术。

2025-01-02 10:53:43 743

原创 WIFI带宽怎么理解?

所以,当你设置WiFi路由器使用某个特定的信道时,比如说信道1,你实际上是选择了以2412 MHz为中心、左右各有10 MHz的频谱范围作为你的WiFi网络的传输通道。这种配置下,相邻信道之间的频率间隔是5MHz,例如信道1中心频率为2412MHz,信道2则为2417MHz等。例如,在2.4GHz频段中,如果你选择了一个中心频率为2412 MHz的信道(这对应于信道1),那么实际使用的频率范围是从2407 MHz到2417 MHz,总共20 MHz的带宽。:这是一个具体的频率值,表示该信道的中心频率。

2025-01-02 10:02:37 1718

原创 grep查代码用法

点和括号最好都要转义,因为也能匹配到。

2025-01-02 09:30:50 125

原创 git知识及命令

git log 查看提交日志(设置了git-log快捷键,在.bashrc文件中设置,alias git-log='git log --pretty=oneline --all --graph --abbrev-commit')git branch --set-upstream-to=origin/branch newbranch (关联已有的本地分支和远程分支)git merge 分支名称 (合并分支,一般将其它分支合并到master上,所以到时候先切换到master(目的分支)分支上)

2024-12-25 11:42:41 402

原创 网易云和QQ音乐开启外接蓝牙设备的歌词位置

我的-设置-Qpaly-车载蓝牙开关。设置-外接设备蓝牙歌词。

2024-12-25 11:37:47 185

原创 关闭SELinux

编辑配置文件/etc/selinux/config,把 SELINUX= 更改为 SELINUX=disabled ,然后重启系统,SELinux 就被禁用了。临时关闭SELinux就是enforcing 和 permissive 两种模式之间进行切换。setenforce 0 #切换成宽容模式。setenforce 1 #切换成强制模式。临时切换工作模式,重启系统生失效。

2024-12-25 11:32:06 1662

原创 蓝牙BLE的随机地址和public地址

对于隐私敏感的应用场景,如健身追踪器或移动支付设备,通常会优先选择使用随机地址来减少被长期跟踪的风险。同时,在某些情况下,比如当设备需要保持稳定的连接或者需要被特定的服务识别时,可能会选择使用Public地址。在蓝牙低功耗(BLE, Bluetooth Low Energy)技术中,设备可以使用两种类型的地址:Public Device Address和Random Device Address。

2024-12-25 11:27:12 527

原创 如何在makefile里面添加打印?

方法3: $(error "error: this will stop the compile")方法2: $(warning "here add the debug info")方法1: $(info "here add the debug info")使用info/warning/error增加调试信息。这个可以停止当前makefile的编译。但是此不能打印出.mk的行号。方法4: 打印变量的值。

2024-12-25 11:16:42 1066

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除