有一个众所周知的way可以从开发者选项UI启用HCI蓝牙窥探日志 有没有办法以编程方式实现这一目标?
答案 0 :(得分:2)
/etc/bluetooth/
,有时位于/data/misc/bluetooth
)bt_stack.conf
文件(设置BtSnoopLogOutput=true
)BtSnoopLogOutput=false
并重置蓝牙 - 这将停止HCI监听记录请注意,此方法需要您的申请获得BLUETOOTH_ADMIN
权限
如果没有问题,您可以使用相同的code Android系统设置应用。
private void writeBtHciSnoopLogOptions() {
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
adapter.configHciSnoopLog(true);
}
configHciSnoopLog
是BluetoothAdapter
class隐藏API的一部分,因此请务必了解如何启用它:
SL4A允许您直接在Android设备上编辑和执行脚本和交互式解释器,从而为Android带来脚本语言。这些脚本可以访问成熟的Android应用程序可用的许多API,但是通过大大简化的界面可以轻松完成任务。
如果您的Android图片内置支持SL4A,则可以使用BluetoothFacade
的以下方法:
@Rpc(description = "Enable or disable the Bluetooth HCI snoop log")
public boolean bluetoothConfigHciSnoopLog(
@RpcParameter(name = "value", description = "enable or disable log")
Boolean value
) {
return mBluetoothAdapter.configHciSnoopLog(value);
}
请注意,Github上的API reference已过时,但您可以看到最新的官方AOSP repo(Common\src\com\googlecode\android_scripting\facade\bluetooth
)
启用HCI snoop日志的Python脚本如下所示:
from android import Android
droid = Android()
droid.bluetoothConfigHciSnoopLog(True)
完成日志记录后,您可以在/sdcard/btsnoop_hci.log