有没有办法找出蓝牙 LE 设备收听的内容?

问题描述

我有一个蓝牙 LE 设备,由其开发者的应用提供支持。 遗憾的是它不再维护,因此我打算从头开始重写该应用程序。

此外,无法与设备配对。它只听 BLE。

是否可以通过任何方式了解设备是如何被控制的?

我试图通过 JADX 反编译代码,但由于制造商是中国人,而且反编译本身就有问题,我想如果没有这个过程是否有可能找到它。 (GitHub)App-Decompiled-Code (External)Original-APK-Download-Page

解决方法

这取决于设备是什么。蓝牙标准中定义了许多配置文件/服务。如果设备使用其中之一,那么您可以根据规范而不是设备/应用进行设计。

一个不错的起点是使用通用的低功耗蓝牙扫描和探索工具(例如 nRF Connect)来探索设备。找出服务和特征的 UUID,并将其与 https://www.bluetooth.com/specifications/assigned-numbers/

上分配的 16 位 UUID 值进行比较

如果它有 custom BLE profile/service,那么您仍然可以使用 nRF Connect 应用程序来探索它。如果不清楚如何访问数据或需要发送哪些命令,那么在使用开发者的应用后查看 HCI logs on the phone 可能会有所帮助。