J'essaie de changer ma classe d'appareils Bluetooth annoncée d'ordinateur à téléphone, exécutant Ubuntu 12.04. J'ai téléchargé les sources bluez et modifié le fichier main.conf pour changer de ligne.
Class = 0x000100
à quelque chose d'autre. j'ai utilisé
Class = 0x0c025a
Ensuite, j'ai exécuté make && make install. Je pense que cela fonctionne bien parce que le fichier /etc/bluetooth/main.conf
a été mis à jour avec mes modifications.
Maintenant, le problème est que lorsque j'essaie de me connecter à un périphérique
hcitool cc <bdaddr>
Je vois que je continue de faire de la publicité en utilisant la classe 0x000100
et non 0x0c025a
.
Qu'est-ce qui me manque ici pour que ces changements prennent effet?
Tout d'abord, trouvez le nom de votre interface:
hciconfig
Il devrait vous donner le nom de l'interface, par exemple, hci0
.
Étant donné que l'affichage de votre classe d'interface:
hciconfig hci0 class
Cela devrait afficher votre classe d'appareil.
Enfin, avec les privilèges de super utilisateur:
Sudo hciconfig hci0 class 000408
devrait mettre en place une nouvelle classe de votre appareil.
Une référence utile des classes Bluetooth avec des représentations hexadécimales et binaires peut être trouvée ici: http://www.question-defense.com/tools/class-of-device-bluetooth-cod-list-in-binary- and-hex
Vous devez changer le nom de la classe dans le fichier /etc/bluetooth/main.conf.
Class = 0x00041C
Puis redémarrez le service Bluetooth
Sudo service bluetooth restart
Ensuite, éteignez votre bluetooth depuis l’icône du panneau supérieur et allumez-le.
Le plugin BlueZ hostname
annule les réglages Name
et Class
dans /etc/bluetooth/main.conf
. Suivez ces étapes pour spécifier la classe de périphérique Bluetooth (CoD):
Ignorez le chargement du plug-in hostname
lors du démarrage du démon bluetooth en modifiant /lib/systemd/system/bluetooth.service
. Exemple:
Sudo sed -i 's/bluetoothd/bluetoothd \-\-noplugin=hostname/g' /lib/systemd/system/bluetooth.service
Vous pouvez également spécifier une liste d'inclusion à l'aide de --plugin=<plugins>
. Voir bluetoothd(8)
et https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/plugins
Éditez /etc/bluetooth/main.conf
et spécifiez Class
dans la section Général. Spécifiez également Name
si vous voulez autre chose que BlueZ X.YZ
:
[General]
Class = 0x1c0420
Name = UbuntuCarAudio
Redémarrez ou redémarrez le service Bluetooth pour que les modifications prennent effet:
Sudo systemctl daemon-reload
Sudo service bluetooth restart
Vérifiez les modifications en exécutant hciconfig -a
ou echo 'show' | bluetoothctl
. hciconfig -a
vous montrera les informations de classe de périphérique (CoD) décodées:
Name: 'UbuntuCarAudio'
Class: 0x1c0420
Service Classes: Rendering, Capturing, Object Transfer
Device Class: Audio/Video, Car Audio