Est-ce que Blued cache Att valeurs et comment effacer le cache?
-
21-12-2019 - |
Question
J'essaie de trouver des solutions de contournement pour un Bluetooth le bug sur OSX . En particulier, je veux savoir où OSX ne va pas en lisant la table Bluetooth Le Gatt. Ainsi, je vis les paquets L2CAP dans PacketLogger de matériel IO Outils pour Xcode .
Lorsque j'utilise Bluetooth Explorer pour se connecter au périphérique Bluetooth Le Dispositif, je m'attends à voir 3.4.4.9 Lire la demande de type de groupe (UUID= 0x2800 «Service primaire», Démarrage= 0x0001, Endhandle.= 0xFFFF) Pour découvrir les services primaires (ou
Mais sur OSX, la seule demande L2CAP demande dans PacketLogger (et le CC2540) après la connexion:
-
lire par type Demande (attributype= 0x2803, démarrage= 0x001a, endinghandle= 0x001a) -
Lire par type Demande (AttributType= 0x2802 «Inclure», Démarrer= 0x0001, Endinghandle= 0x0004) - lire par type Demande (attributype= 0x2802, démarrage= 0x0005, endinghandle= 0x0009)
- lire par type Demande (AttributType= 0x2802, Débuthandle= 0x0010, Endhandle= 0x0019)
-
Lire par type Demande (AttributType= 0x2802, Débuthandle= 0x001a, Endinghandle= 0x001a) -
lire par type Demande (attributype= 0x2803, démarrage= 0x001a, endinghandle= 0x001a) - lire par type Demande (attributype= 0x2802, démarrage= 0x0021, endinghandle= 0x0027)
- lire par type Demande (attributype= 0x2802, Démarrage= 0x002b, Endinghandle= 0x002e)
Ce ne sont pas suffisamment de demandes pour découvrir les services, mais Bluetooth Explorer répertorie tous les Uuids de service à ce stade. Cela indique que OSX sait déjà où les services sont sur ce périphérique Bluetooth le. Est-ce que les services de périphérique de cache blusqués et les lisent-ils au démarrage? Si oui, comment puis-je effacer le cache?
J'ai essayé de désactiver Bluetooth, tuant des morts, et de redémarrer OSX, mais chaque fois que OSX ne redécouvre jamais les services.
La solution
Oui, Blued cache la table Bluetooth Le Gatt.Si le cache est mauvais, procédez comme suit pour la supprimer, grâce à "Processus Blued tue ma CPU" :
- Supprimer /library/preferences/com.apple.Bluetooth.Plist.Cela supprimera la connaissance de tous les appareils Bluetooth Bluetooth et Bluetooth liés.
- tuer / usr / sbin / blued.Il sera redémarré par Launchd.
- exécutez à nouveau le programme Bluetooth Le programme.PacketLogger montrera désormais lu par type de groupe Demandes de redécouvrir les services principaux.
La mise en cache est autorisée lorsque le centre a établi une "liaison" avec le périphérique (non seulement jumelé), selon Bluetooth 4.0 Volume 3 Partie G Section 2.5.2 Caching d'attribut.Je ne sais pas comment vérifier que la centrale est effectivement liée au périphérique, mais je suppose que c'était.