web-dev-qa-db-fra.com

Journal snoop Bluetooth HCI non généré

J'utilise Android 4.4.2 et j'ai activé le "journal de surveillance Bluetooth HCI" comme décrit ici Reniflement/enregistrement de votre trafic Bluetooth Android

Après avoir activé et désactivé Bluetooth, j'ai redémarré le téléphone. Je n'ai pas trouvé le fichier journal à l'emplacement prévu: 

$ adb pull /sdcard/btsnoop_hci.log
remote object '/sdcard/btsnoop_hci.log' does not exist

Comment puis-je accéder au btsnoop_hci.log?

18
Jack Shultz

MISE À JOUR: Le journal btsnoop hci semble disparaître progressivement des zones accessibles aux utilisateurs de nombreux téléphones. En supposant que la journalisation hci soit activée, vous pouvez obtenir un rapport de bogue.

adb bugreport anewbugreportfolder

Puis décompressez le dossier. Si vous êtes chanceux, il existe un dossier 'FS' contenant le journal btsnoop_hci.log de plusieurs couches (vous ne savez pas pourquoi certains téléphones ont ceci ou pas.) Si vous ne l'avez pas, récupérez le texte du rapport de bogue fichier qui ressemble à ceci

bugreport-2018-08-01-15-08-01.txt

Exécutez btsnooz.py contre elle. Selon les instructions de Google,

To extract snoop logs from the bug report, use the btsnooz script.

Get btsnooz.py.
Extract the text version of the bug report.
Run btsnooz.py on the text version of the bug report:

btsnooz.py BUG_REPORT.txt > BTSNOOP.log

Depuis le 01/08/18, le lien vers btsnooz est ici: https://Android.googlesource.com/platform/system/bt/+/master/tools/scripts/btsnooz.py

RÉPONSE DE LEGACY:

Vous pouvez voir où votre téléphone stocke le journal hci en lisant le fichier bt_stack.conf. Essayer

adb Shell cat /etc/bluetooth/bt_stack.conf

Vous verrez une ligne qui ressemble à

# BtSnoop log output file
BtSnoopFileName =/sdcard/btsnoop_hci.log <--your file location

C’est généralement, mais pas toujours (cela dépend du téléphone), la racine de la carte SD. Il existe également une ligne dans ce fichier de configuration qui peut indiquer si la journalisation hci est réellement activée ou non.

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=false

Activer l'option 'Activer Bluetooth HCI snoop log' dans les options pour les développeurs devrait la changer en

# EnableBtSnoop logging function
# valid value : true , false
BtSnoopLogOutput=true

Je dis "devrait" car pour certains téléphones, ne mettez pas à jour ce fichier. Vous devriez:

  1. Lisez le fichier bt_stack.conf. Voir où le journal HCI devrait être et si la journalisation bt snoop est réellement activée ou non
  2. Si les options de développement indiquent que la journalisation btsnoop_hci est activée mais que le fichier bt_stack.conf indique qu'elle est désactivée, essayez de redémarrer le bluetooth et/ou votre téléphone. 
  3. Si votre téléphone est enraciné, définissez manuellement BtSnoopLogOutput = true

Si aucune des 3 options ne fonctionne, vous n’avez pas de chance. La journalisation BT Snoop hci est un peu incohérente sur différents téléphones. J'ai vu quelques téléphones où je ne pouvais tout simplement pas le faire fonctionner, peu importe, mais dans la plupart des cas, vous devriez pouvoir le faire fonctionner. Un téléphone enraciné n'est pas une exigence

62
TwinPrimesAreEz

Sur le Nexus 5X et Pixel C Android O, vous devez activer le bluetooth, activer la surveillance HCI dans les paramètres du développeur, désactiver et réactiver le bluetooth, puis redémarrer.

Après cela, vous pouvez obtenir le journal en accédant aux paramètres du développeur, en prenant un rapport de bogue et en obtenant un journal complet. 

Le fichier bt_stack.conf n'est pas modifié et il n'y a pas de nouveau fichier sur/sdcard comme sur d'autres périphériques.

12
PaulFreund

Pour une version utilisateur Pixel/Nexus, vous pouvez ne pas avoir la permission d'extraire /data/misc/bluetooth/logs/btsnoop_hci.log.Vous pouvez obtenir le journal hci comme suit:

adb Shell dumpsys bluetooth_manager
adb bugreport > BUG_REPORT.txt

Vous obtiendrez un fichier BUG_REPORT.txt et un fichier Zip. Le journal HCI se trouve sous FS\data\misc\bluetooth\logs du fichier Zip.

3
Fukai

Sur la mienne, bt_stack.conf affiche /sdcard/Android/data/btsnoop_hci.log

2
abourget

Pour Samsung S8, l'emplacement magique est/data/log/bt / 
et vous avez besoin d'un accès root pour l'obtenir

2
GroovyDotCom

C'est ce qui a résolu le problème pour moi:

1) adb Shell cat /etc/bluetooth/bt_stack.conf

pour voir quel est le nom du fichier journal, il s’agit pour moi:

/data/log/bt/btsnoop_hci.log

La difficulté réside dans le fait que les fichiers sont générés avec l’horodatage dans leur nom afin que vous ne puissiez pas les obtenir simplement en utilisant 

adb pull /data/log/bt/btsnoop_hci.log

2) Utilisez adb pull /data/log/bt/ à la place, et vous obtiendrez le dossier entier, avec tous les journaux

1
Tontici Oleg

@TwinPrimesAreEz est excellent mais il existe une quatrième option. au moins lorsque votre appareil est enraciné. Appel:

/system/bin/btsnoop

Quelque part cet outil a été supprimé, mais il existe toujours sur mon appareil. Whatismore, il semble être appelé lorsque Bluetooth est activé. Dans logcat je vois: "btsnoop_dump:: snoop_log_open: impossible d'ouvrir l'entrée Dir". Vous ne savez pas pourquoi il est incapable d’ouvrir ce répertoire (au fait, c’est /data/media/0), mais j’imagine que cet outil interfère d’une manière ou d’une autre avec la nouvelle option de surveillance intégrée HCI intégrée à Android. Mais si vous appelez cet outil directement (par exemple, via adb Shell ou Émulateur de terminal ), cela fonctionne. Pour moi, il a créé le fichier /data/media/0/hci_snoop20180203164422.cfa

0
Jack Miller