Включение программного протокола HCI Bluetooth snoop

Вопрос: Существует известный способ включения HCI Bluetooth snoop-журнала из интерфейса опций разработчика. Есть ли способ достичь этого программно? Лучший ответ: 1. Использование bt_stack.conf (требуется root) Найдите файл bt_stack.conf (иногда это в /etc/bluetooth/, иногда в /data/misc/bluetooth) Измените файл bt_stack.conf (установите BtSnoopLogOutput=true) Отключить и включить Bluetooth - это приведет к регистрации HCI snoop Когда вы решите, что

Вопрос:

Существует известный способ включения HCI Bluetooth snoop-журнала из интерфейса опций разработчика.
Есть ли способ достичь этого программно?

Лучший ответ:Содержание

  1. 1. Использование bt_stack.conf (требуется root)
  2. 2. Использование скрытого Android API
  3. 3. Использование SL4A

1. Использование bt_stack.conf (требуется root)

  • Найдите файл bt_stack.conf (иногда это в /etc/bluetooth/, иногда в /data/misc/bluetooth)
  • Измените файл bt_stack.conf (установите BtSnoopLogOutput=true)
  • Отключить и включить Bluetooth – это приведет к регистрации HCI snoop
  • Когда вы решите, что этого достаточно, отредактируйте файл еще раз, установив BtSnoopLogOutput=false и сбросьте Bluetooth – это остановит ведение журнала отслеживания HCI

2. Использование скрытого Android API

Обратите внимание: этот подход потребует, чтобы ваше приложение имело разрешение BLUETOOTH_ADMIN.
Если это нормально, вы можете использовать тот же код, который использует приложение системных настроек Android.

private void writeBtHciSnoopLogOptions() { BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); adapter.configHciSnoopLog(true); }

configHciSnoopLog является частью скрытого API класса BluetoothAdapter, поэтому убедитесь, что вы знаете, как его включить:

3. Использование SL4A

SL4A приносит языки программирования на Android, позволяя вам редактировать и выполнять скрипты и интерактивные интерпретаторы непосредственно на устройстве Android. Эти скрипты имеют доступ ко многим API-интерфейсам, доступным для полноценных приложений для Android, но с очень упрощенным интерфейсом, который упрощает выполнение.

Если ваш образ 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); }

Обратите внимание, что ссылка API на Github устарел, но вы можете увидеть последние в официальном AOSP репо (Commonsrccomgooglecodeandroid_scriptingfacadebluetooth)

Сценарий Python, который позволяет вести журналы отслеживания HCI, будет выглядеть так:

from android import Android droid = Android() droid.bluetoothConfigHciSnoopLog(True)

Когда вы /sdcard/btsnoop_hci.log, вы можете найти журнал HCI Snoop в /sdcard/btsnoop_hci.log

Оцените статью
Добавить комментарий