Pixel 2开启Bluetooth HCI Snoop日志后无文件生成,寻求解决方案
我碰到过不少Android 8.1设备上的这个问题,给你几个针对性的排查和解决方向:
确认日志的默认存储路径
Android 8.1的Bluetooth HCI Snoop日志默认可能不在内部存储根目录,而是藏在受权限保护的系统目录里:/data/misc/bluetooth/logs/btsnoop_hci.log。这个目录普通用户权限无法直接访问,你可以通过ADB命令导出查看:adb pull /data/misc/bluetooth/logs/btsnoop_hci.log ./注意:如果设备没root,可能需要先执行
adb root(部分厂商设备可能不支持此操作)。手动配置
bt_stack.conf文件
你提到/etc/bluetooth/bt_stack.conf里没有相关配置项,那可以手动添加以下内容来强制开启日志并指定可访问的存储路径:BtSnoopLogOutput=true BtSnoopFileName=/sdcard/btsnoop_hci.log添加后保存文件,然后重启蓝牙(或者直接重启设备),再操作蓝牙相关功能,看看SD卡根目录是否生成日志文件。
验证ADB设置命令是否生效
先执行以下命令确认bluetooth_hci_log的状态:adb shell settings get secure bluetooth_hci_log如果返回值不是
1,说明之前的设置命令没生效,可能是设备有系统限制。你可以尝试加上--user 0参数再执行:adb shell settings put secure bluetooth_hci_log 1 --user 0执行后再次查询状态,确保值为
1,然后重启蓝牙测试。排查厂商定制系统的限制
很多Android 8.1的定制ROM(比如小米、华为等品牌)会修改原生蓝牙日志的逻辑,可能需要在厂商自己的开发者选项里开启额外的蓝牙日志开关,或者需要授予蓝牙进程存储权限。你可以去开发者选项里找找有没有类似“蓝牙详细日志”的选项,或者在应用权限里给蓝牙服务授予存储访问权限。用Logcat排查错误原因
开启蓝牙后执行以下命令抓取日志,搜索关键词btsnoop,看看有没有权限不足、路径不存在之类的错误提示:adb logcat | grep -i btsnoop这些日志能帮你定位到底是路径问题、权限问题还是系统限制导致的日志不生成。
内容的提问来源于stack exchange,提问作者vanshg

