Frage

Ich versuche, alle Problemumgehungen für einen Bluetooth Le Bug on zu finden OSX . Ich möchte insbesondere wissen, wo OSX beim Lesen der Bluetooth-Le-Gatt-Tabelle schief geht. Ich betrachte also die L2CAP-Pakete in packetlogger von der Hardware IO Werkzeuge für Xcode .

Wenn ich Bluetooth Explorer mit dem Bluetooth-Le-Gerät herstellen kann, erwarte ich, 3,4.4.9 von der Gruppentypanforderung lesen (uuid= 0x2800 «Primärdienst», instandle= 0x0001, endinghandle)= 0xFFFF) Um Primärdienstleistungen zu ermitteln (oder Suche nach Typ-Wert-Anfrage (uuid= 0x2800, Wert: UUID des Dienstes)), gefolgt von 3.4.4.1 nach Typanfrage lesen (uuid= 0x2803 «charakteristisch»), um Eigenschaften zu entdecken. Das sehe ich, wenn ich die Pakete von einem iPhone (mit einem CC2540) schnuppern kann.

Aber auf OSX fordert der einzige L2CAP an, dass ich nach dem Anschließen in PacketLogger (und der CC2540) sehe:

    .
  1. nach Typ Anfrage lesen (Attrautetyp= 0x2803, starwandle= 0x001a, endinghandle= 0x001a)
  2. nach Typanfrage lesen (Attributetype= 0x2802 «einschließen», starwandle= 0x0001, endinghandle= 0x0004)
  3. nach Typanfrage lesen (Attributetype= 0x2802, starchhandle= 0x0005, endinghandle= 0x0009)
  4. nach Typanforderung lesen (Attributetype= 0x2802, instandle= 0x0010, endinghandle= 0x0019)
  5. nach Typ Anfrage lesen (Attributetype= 0x2802, instandle= 0x001a, endinghandle= 0x001a)
  6. nach Typ Anfrage lesen (Attrautetyp= 0x2803, starwandle= 0x001a, endinghandle= 0x001a)
  7. nach Typanfrage lesen (Attributetype= 0x2802, instandle= 0x0021, endinghandle= 0x0027)
  8. nach Typanforderung lesen (Attributetype= 0x2802, instandle= 0x002b, endinghandle= 0x002e)
  9. Dies sind nicht genügend Anforderungen, um die Dienste zu ermitteln, aber bluetooth Explorer listet den gesamten Service-UUIDs an diesem Punkt auf. Dies zeigt an, dass OSX bereits weiß, wo sich die Dienste auf diesem Bluetooth-Le-Gerät befinden. Hat geblingte Cache-Gerätedienste und gelesen sie beim Start? Wenn ja, wie kann ich den Cache löschen?

    Ich habe versucht, Bluetooth auszuschalten, geblüht zu töten und OSX neu zu starten, aber jedes Mal, wenn OSX niemals die Dienste wiederonalisiert.

War es hilfreich?

Lösung

Ja, geblüht, speichert Cache die Bluetooth-Le-Gatt-Tabelle.Wenn der Cache schlecht ist, tätigen Sie sich folgendermaßen, um es zu löschen, dank "Bleckprozess tötet meine CPU" :

    .
  1. löschen /library/preferences/com.apple.bluetooth.plist.Dadurch wird Kenntnisse aller gebundenen Bluetooth- und Bluetooth-Le-Geräte entfernt.
  2. Kill / usr / sbin / Bleding.Es wird von Launchd neu gestartet.
  3. Run Bluetooth LE-Programm erneut ausführen.Packetlogger zeigt jetzt von gruppentyp Anfragen, um die Primärdienste wieder zu entdecken.
  4. caching ist erlaubt, wenn der zentrale eine "Bindung" mit dem peripheren Peripheriegerät (nicht nur gepaart) eingerichtet hat, gemäß Bluetooth 4,0 Volume 3-teilig g Abschnitt 2.5.2 Attribut-Caching.Ich bin mir nicht sicher, wie ich bestätigen kann, dass die zentrale in der Tat mit dem Peripheriegerecht verbunden ist, aber ich gehe davon aus, dass es getan hat.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top