2 Punkte von GN⁺ 2024-11-13 | 1 Kommentare | Auf WhatsApp teilen
  • Seit iOS 18.1 können die AirPods Pro 2 wie Hörgeräte genutzt werden, doch wegen regionaler Beschränkungen konnten schwerhörige Nutzer in Indien die zentrale Funktion nicht direkt verwenden
  • Die Einschränkungen lagen auf mehreren Ebenen, etwa Wohnsitz in einem unterstützten Land, iOS 18.1 oder neuer und Firmware 7B19 oder neuer; das Gerät konnte den Standort anhand einer Kombination aus IP, Locale, GPS, Mobilfunknetz und WiFi-Standortinformationen bestimmen
  • Proxy-Manipulationen und die CoreLocation-Simulation von Xcode scheiterten; anhand von locationd-Logs und Hinweisen in den Einstellungen schien der simulierte Standort nicht für die Bestimmung der regulatorischen Domain verwendet zu werden
  • Schließlich wurde mit Wigle-Daten und einem ESP32 die WiFi-Umgebung von Menlo Park in Kalifornien nachgebildet, und es wurden Experimente mit einem Faraday-Käfig aus Aluminiumfolie sowie einer Mikrowelle durchgeführt, um Umgebungssignale zu reduzieren
  • Die einmal aktivierte Hearing-Aid-Funktion wurde mit dem iCloud-Account synchronisiert und ließ sich auch auf anderen Geräten nutzen; die zentrale offene Aufgabe blieb ein reproduzierbares Verfahren, um diese regional beschränkte Funktion für tatsächliche Nutzer freizuschalten

Regionale Beschränkung der Hörgerätefunktion der AirPods Pro 2

  • Direkt nach dem Update auf iOS 18.1 wurden für schwerhörige Großeltern AirPods Pro 2 gekauft, doch Apple beschränkte die Hearing-Aid-Funktion auf die USA und einige weitere Länder, sodass sie in Indien praktisch nicht nutzbar war
  • Herkömmliche Hörgeräte können je nach Korrekturleistung zwischen ₹50.000 und über ₹8L kosten
  • Apple bewirbt die Hörgerätefunktion der AirPods damit, das Hörvermögen insbesondere im Bereich von Sprachfrequenzen um bis zu 60dbHL korrigieren zu können
  • Befand man sich an einem unterstützten Standort, besaß AirPods Pro 2 und nutzte iOS 18.1 oder neuer sowie Firmware 7B19 oder neuer, war der entsprechende Funktionsbildschirm in der Health-App sichtbar
    • Wenn die Funktion auf einem Gerät mit iOS 18.1 oder neuer „aktiviert“ wurde, konnte sie auch auf Geräte mit älterer Firmware wie 7A294 gepusht werden

Wie iOS den Standort bestimmt

  • Erste Untersuchungen zeigten, dass iOS-Geräte Land und Region des Nutzers über mehrere Wege bestimmen können
    • Per GET-Anfrage an https://gspe1-ssl.ls.apple.com/pep/gcc wird ein Ländercode auf Basis des IP-Standorts empfangen
    • Die Regionseinstellung des Apple Store wird geprüft
    • Geräte-Locale, Zeitzone und Sprache können berücksichtigt werden
  • Auf Geräten mit GPS und Mobilfunknetz sind auch direktere Standortbestimmungen möglich
    • Standort anhand von GPS-Signalen
    • Standortbestimmung über das Mobilfunknetz durch Abgleich von MCC/MNC mit einer internen Datenbank
  • Um den Versuchsaufbau einzugrenzen, wurde ein iPad der 10. Generation als WiFi-Modell ohne Mobilfunkfunktionen verwendet
    • Auch GPS- und Mobilfunkmast-Spoofing wäre mit einem Faraday-Käfig nicht unmöglich, hätte aber deutlich mehr Arbeit erfordert

Fehlgeschlagene Umgehung: Proxy und Standortsimulation

  • Zunächst wurden Locale und Region in den iOS-Einstellungen geändert und der Netzwerkverkehr des Geräts über einen Laptop als Proxy geleitet, sodass die Antwort des Geolokalisierungs-Endpunkts statt IN wie US aussah
  • Außerdem sollte CoreLocation mit der Standortsimulationsfunktion von Xcode gespooft werden
  • Dieser Ansatz funktionierte nicht
    • Wegen Certificate Pinning schlugen in mehreren Apps und Einstellungsbildschirmen Verbindungen zu Apple-Servern fehl
    • Es war möglich, dass dadurch die für die Aktivierung nötige Verbindung zu Apple-Servern blockiert wurde, vollständig verifiziert wurde das aber nicht
  • In den Console-Logs erschienen Meldungen, als müsste die Funktion aktiviert sein, doch der tatsächliche Einstellungsbildschirm für Hearing Aid öffnete sich nicht

Hinweise aus locationd

  • Als am nächsten Tag die Logs erneut geprüft wurden, erschienen trotz gespooftem IP-Standort und Locale Meldungen, die darauf hindeuteten, dass das Gerät meinte, nicht in den USA zu sein
  • Die Binärdateien countryd und locationd wurden extrahiert und nach relevanten Strings durchsucht
  • In locationd wurde eine boolesche Einstellung namens AllowSimulatedLocation gefunden, deren Standardwert 0 war
  • Außerdem wurde ein Getter skipUpdatingRegulatoryDomain entdeckt, der vermutlich in sendUpdateToRDIfAllowed verwendet wird, um zu entscheiden, ob die regulatorische Domain aktualisiert wird
  • Daraus entstand die Schlussfolgerung, dass eine CoreLocation-Simulation mit den integrierten Xcode-Werkzeugen bei der Bestimmung der regulatorischen Domain für Hearing Aid nicht greift
    • Die Hearing-Aid-Funktion lässt sich zwar unter macOS steuern, muss aber über ein iOS-Gerät aktiviert werden
    • Auch das direkte Aktivieren der Funktion durch Modifizieren der Binärdateien auf einem macOS-System mit deaktiviertem SIP blieb als Möglichkeit bestehen, wurde aber nicht weiter untersucht

WiFi-Standortinformationen täuschen

  • Moderne Geräte können den Standort auf Stadtebene triangulieren, indem sie umliegende WiFi-SSIDs, MAC-Adressen von Routern und Geräten sowie GPS kombinieren
  • Dass ein reines WiFi-iPad auch ohne GPS oder Cellular in Apps einen präzisen Standort anzeigen konnte, lag ebenfalls an WiFi-basierter Standortbestimmung
  • Unter den öffentlichen WiFi-Standortdatenbanken wurde ein Konto bei Wigle angelegt, um Daten aus Menlo Park in Kalifornien abzurufen
  • Skylift wurde geforkt und angepasst, und ein ESP32 wurde so konfiguriert, dass er WiFi-SSIDs schnell rotierend ausstrahlt
    • Der ESP32 ahmt dabei die Funkumgebung einer anderen Region nach
    • Die Zahl der rotierenden SSIDs wurde von 10 auf 100 erhöht
  • Da es rund um Lagrange Point viele reale WiFi-Netzwerke aus umliegenden Häusern gab, konnte das iPad andere Netzwerke in der Umgebung melden, wenn diese Signale nicht abgeschwächt oder übertönt wurden

Experimente mit Faraday-Käfig und Mikrowelle

  • Der erste Faraday-Käfig wurde gebaut, indem ein Karton mit Aluminiumfolie umwickelt wurde
  • In der Box befanden sich der ESP32, der kalifornische SSIDs ausstrahlte, und das iPad; für Console-Logs und Internetzugang war das iPad mit einem Laptop verbunden
  • Ausgenutzt wurde, dass WiFi und Mikrowellen beide das 2,4-GHz-Band verwenden: Eine undichte Mikrowelle wurde auf höchster Leistung betrieben, um hartnäckige Netzwerksignale aus der Umgebung zu blockieren
  • Es wurde ein Skript eingerichtet, das das iPad fünf Minuten nach dem Einlegen in die Box neu startete und dann das Netzwerk aktivierte
  • Beim ersten Versuch wurde das iPad weiterhin als in der Region IN befindlich erkannt, doch nachdem Faraday-Käfig, Mikrowellenstörung und Neustartprozess mehrfach angepasst worden waren, erschien in der Console die gewünschte Meldung zur Regionsänderung
  • Danach wurde das iPad herausgenommen und die AirPods wurden geöffnet; kurz darauf erschien direkt der Einrichtungsprozess für Hearing Aid

Reproduzierbares Verfahren und Plan für Massenaktivierung

  • Nach dem Proof of Concept begann die Arbeit daran, ein stabileres reproduzierbares Verfahren zu schaffen, um die Funktion für Menschen freizuschalten, die sie benötigen
  • Über mehrere Tage hinweg wurden die Experimente wiederholt und ein dauerhafterer Faraday-Käfig gebaut
  • Für Menschen in Bengaluru, denen es helfen würde, AirPods wie Hörgeräte zu nutzen, wurde geplant, bei Lagrange Point ein kleines Aktivierungscamp zu betreiben
  • Teilnahme und Updates sollten über den X-Account und einen Tweet-Thread laufen

Verhalten nach der Aktivierung

  • Die Hearing-Aid-Funktion wirkte wie ein auf die AirPods gepushtes Equalizer-Preset und ersetzte den Transparenzmodus
  • Sobald die Hearing-Aid-Funktion einmal aktiviert war, wurde das Feature-Flag mit dem iCloud-Account synchronisiert
  • Dank dieser Synchronisierung konnte die Funktion genutzt werden, ohne den gleichen Prozess auf allen Geräten wiederholen zu müssen

1 Kommentare

 
GN⁺ 2024-11-13
Hacker-News-Kommentare
  • Die Hearing-Aid-Funktion ist tatsächlich ein Equalizer-Preset, das auf die AirPods gepusht wird, und scheint den Transparenzmodus zu ersetzen.
    Wenn Apple das nicht als „Hörgerät“ vermarktet oder medizinische Begriffe verwendet hätte, wären die Regulierungsbehörden wohl nicht aktiv geworden. Andere vollständig kabellose In-Ears mit parametrischem Equalizer und Transparenzmodus könnten dasselbe leisten.
    Stattdessen hätte man zwar einen Marketingvorteil verloren, aber vielleicht war genau das ein kalkuliertes, großes Risiko. In solchen Geräten steckt enorm viel Rechenleistung und Flexibilität. Selbst Produkte unter 10 Dollar mit dem berüchtigten JieLi-SoC haben gewissermaßen pro Ohr einen 160-MHz-32-Bit-Computer verbaut.
    Es ist überraschend, dass es noch keine vollständig kabellosen In-Ears gibt, die mit Open-Source-Firmware werben; in chinesischen und russischen Communities scheint es aber einige Customizing-Arbeiten gegeben zu haben.

    • Es ist ein deutlich größeres Problem als nur „einen Marketingvorteil zu verlieren“. Apple agiert nicht im luftleeren Raum, und auch Sony und Bose zielen auf denselben Markt und werden ihr Marketing wahrscheinlich auf ihre eigene Weise vorantreiben.
      Wenn Apple nur sagt „funktioniert bis zu einem gewissen Grad wie ein Hörgerät“, entsteht ein erheblicher Nachteil gegenüber anderen Marken, die an gut sichtbaren Stellen am Point of Sale im Laden Poster aufhängen. Natürlich kann Apple bei Online-Verkäufen oder bei Menschen, die keine besonders hohe Verlässlichkeit brauchen, weiterhin gewinnen.
      https://electronics.sony.com/otc-hearing-aids
    • Es gibt PineBuds Pro: https://pine64.com/product/pinebuds-pro-open-firmware-capabl...
    • Für alle, die neugierig sind: TWS soll für „True Wireless Stereo“ stehen.
      https://audiochamps.com/what-does-tws-mean/
      Gemeint sind also Bluetooth-In-Ears.
    • Man könnte auch auf Leute abgezielt haben, die FSA/HSA für medizinische Ausgaben nutzen.
    • Wenn das die einzige Sorge ist, wäre das gut. Es wirkt unwahrscheinlich, dass Apple diese Funktion einfach abschaltet.
      Ich hatte befürchtet, dass es andere regulatorische Themen wie Lautstärke geben könnte, aber mir fällt nichts Konkretes ein.
  • Da steht sinngemäß: „Da WiFi und Mikrowellen im selben Frequenzbereich von 2,4 GHz arbeiten, wurde eine undichte Mikrowelle auf voller Leistung betrieben, um kontinuierliche Netzwerksignale in der Luft zu blockieren.“ Interessanterweise versucht WiFi solche Störungen absichtlich zu vermeiden.
    Eine Mikrowelle sendet an den Nulldurchgängen der antreibenden Wechselspannung keine Leistung aus, und in diesen Zeitfenstern liegt kein Signal in der Luft, das Funk stören würde. WiFi hört vor dem Senden erst einmal hinein, um Kollisionen mit anderen Geräten zu vermeiden, und das Mikrowellensignal reicht aus, um diese Erkennung auszulösen.
    Ich erinnere mich nicht, ob Mikrowellen im Halbwellenbetrieb arbeiten und dadurch 60-mal pro Sekunde Zeitfenster von 1/120 Sekunde entstehen, oder ob es nur einen kritischen Bereich nahe dem Nulldurchgang gibt, in dem die Leistung nicht ausreicht, um zu stören. Hier scheint es sehr wahrscheinlich, dass die Mikrowelle tatsächlich kaum eine Rolle gespielt hat.

    • Egal, was die theoretische Analyse sagt: Mit mindestens einer Kombination aus Mikrowelle und Router habe ich Störungen des WiFi-Signals durch eine Mikrowelle reproduziert.
      Allerdings gab es zu anderen Zeiten auch Fälle ohne nennenswerten Effekt.
    • Ich frage mich, warum eine Mikrowelle am Nulldurchgang der Wechselspannung keine Leistung abgibt. Moduliert eine Mikrowelle konstruktionsbedingt ein 2,4-GHz-Signal auf 50/60 Hz?
    • Heißt das, zwei undichte Mikrowellen an unterschiedlichen Netzphasen könnten 2,4-GHz-WiFi blockieren?
    • Theoretisch ja, aber in der Praxis ist es ohnehin so bekannt, dass Mikrowellen WiFi stören, dass es sogar bei XKCD vorkommt.
  • Auf Reddit hat jemand darauf hingewiesen, dass man über eine spezielle URL direkt auf die Hörtest-Funktion zugreifen kann.
    x-apple-health://HearingAppPlugin.healthplugin/HearingTest
    Ich frage mich, ob sich auch ein ähnlicher Deeplink zum Aktivieren des Hearing-Aid-Modus finden lässt.
    https://www.reddit.com/r/AirpodsPro/comments/1gftyqo/is_the_...

    • Ich habe mich auch in diesen Teil hineingewühlt, aber nichts gefunden.
      Bis zu einem gewissen Grad war die jetzige Methode einfach der leichtere Ansatz.
      Es gibt bestimmt irgendetwas. Apple hat in iOS 18 das URL-Handler-Schema geändert, sodass alte Repositories, die darauf verwiesen haben, nicht mehr funktionieren.
  • Ich bin Rithwik, einer der Autoren. Wenn ihr Fragen habt, beantworte ich sie gern.

    • Ein wirklich großartiger Hack, und das Lesen hat durchgehend Spaß gemacht. Wenn ich unbedingt eine Frage stellen müsste: Was habt ihr als Nächstes mit dem neu gebauten Faraday-Käfig vor?
    • Ich bin etwas verwirrt, wie die Region behandelt wird. Ich habe ein in Kanada gekauftes iPhone, einen kanadischen Apple-Account, eine kanadische Kreditkarte samt Rechnungsadresse, und auch der App-Store-Standort ist auf Kanada gesetzt, lebe aber seit einigen Jahren in Spanien.
      Nach Apples Maßstäben bin ich weiterhin vollständig „Kanadier“. Ich sehe keinerlei Funktionen rund um auf die EU beschränkte Third-Party-App-Stores und habe Zugriff auf Funktionen wie Apple Intelligence, die in der EU nicht nutzbar sind.
      Die Hörgerätefunktion wird weder in Kanada noch in Spanien angeboten, daher kann ich sie nicht testen, aber ich frage mich, worin sich diese regionale Beschränkung für Hörgeräte von Apples anderen regional beschränkten bzw. regional aktivierten Funktionen unterscheidet.
    • Der Artikel war großartig. So beiläufig zu zeigen, wie man das Verhalten einer iOS-App hackt, fühlt sich wie eine völlig andere Welt an, besonders weil ich iOS für ziemlich abgeschottet hielt.
      Mich würde interessieren, wie ihr angefangen habt und ob es empfehlenswerte Ressourcen gibt. Und da ihr am Ende gesagt habt, dass ihr nicht diese sehr teuren In-Ears gekauft habt: Welche In-Ears nutzt ihr tatsächlich oder würdet ihr gern kaufen?
    • Ein wirklich cooler Hack. Ich war etwas überrascht, dass tatsächlich sogar WiFi-Network-Spoofing nötig war, aber es ist beeindruckend, dass ihr es letztlich herausgefunden habt.
    • Ich habe den Artikel gern gelesen. Mich würde interessieren, wie zufrieden eure Großeltern mit der Hörgerätefunktion sind. Funktioniert sie in der Praxis gut, und wie sieht es mit der Akkulaufzeit aus?
  • Ich frage mich, ob diese Einstellung nach einer gewissen Zeit zurückgesetzt wird oder ob sie nach einmaligem Einrichten dauerhaft bleibt.
    Ich mache mir Sorgen, dass das iPad oder die AirPods irgendwann feststellen, dass sie zu lange in Indien waren, und die Funktion wieder entfernen.

    • Ich bin einer der Autoren. Das ist eine einmalige Einstellung.
      Sobald die Funktion aktiviert ist, wird ein Flag im iCloud-Account gesetzt, sodass sie weiter funktioniert, egal wohin man reist. Gleichzeitig wird ein Equalizer-Profil in den Transparenzmodus der AirPods gepusht, wodurch die Hörgerätefunktion eingeschaltet wird.
      Wenn das einmal erledigt ist, bleibt es erhalten, solange man die AirPods nicht zurücksetzt.
      Es gibt allerdings eine interessante Besonderheit: Wenn man diese Funktion auf den AirPods einer anderen Person aktiviert hat, die Funktion auf deren Gerät oder Account aber nicht als „verfügbar“ angezeigt wird, kann diese Person die Einstellungen auf ihrem eigenen Gerät nicht anpassen.
  • Dieser Fall zeigt sehr gut, warum freie Software wichtig ist. Region Locks sind hier eine völlig unsinnige, nutzerfeindliche Praxis.
    Wäre die Software oder Firmware frei und offen, könnte man den Region Lock patchen und entfernen oder deaktivieren. Sehr wahrscheinlich wäre eine solche Beschränkung gar nicht erst eingebaut worden.

    • Im Allgemeinen ergeben regionale Beschränkungen Sinn.
      In den zugelassenen Ländern mussten die Regulierungsbehörden dies vermutlich als medizinisches Hilfsmittel genehmigen. Wenn medizinische Hilfsmittel und Ähnliches ohne Zulassung verkauft werden dürften, könnten auch Dinge, die Menschen tatsächlich verletzen oder töten können, unter der Bezeichnung medizinisches Hilfsmittel verkauft werden.
      Das Problem hier ist, dass dieser Fall wie eine harmlose Unterstützungsfunktion wirkt, weshalb ein Verbot lächerlich erscheint. Aber wenn Regulierung nicht durchgesetzt wird, ist sie völlig nutzlos.
      Letztlich sind die Regulierungsbehörden in anderen Ländern wohl langsam, oder im schlimmsten Fall hat Apple gar keine Zulassung beantragt.
  • Ich frage mich, ob jemand weiß, was der Hearing Protection Mode tatsächlich macht. In Norwegen und außerhalb Nordamerikas ist er nicht verfügbar.
    Ich habe die AirPods Pro 2 früher schon als Gehörschutz verwendet, und das hat ziemlich gut funktioniert. Ich frage mich nur, ob es daran liegt, dass der Ausdruck „Hearing Protection“ nur in den USA verwendet werden darf, oder ob es tatsächlich eine bessere Funktion ist als die normale Geräuschunterdrückung der Pro 2.

    • Wahrscheinlich sind nur die Hörtest-App und das Marketing neu. Die AirPods hatten solche Funktionen bereits.
      Wenn man hört, wie Hearing Protection arbeitet, klingt es nach Mehrbandkompression. Das heißt, der hörbare Frequenzbereich wird in mehrere Bänder aufgeteilt, und auf jedes Band wird separat Kompression angewendet. Allerdings scheint auch das schon vorher gemacht worden zu sein.
  • Ich frage mich, ob sich das wirklich vom angepassten Transparenzmodus in den Bedienungshilfen unterscheidet, den es schon vor der Ankündigung der Hörgerätefunktion gab.
    Man konnte ein in der Health-App gespeichertes Audiogramm verwenden. Allerdings klang der angepasste Transparenzmodus ziemlich schlecht, fast wie ein Kammfilter.

    • Genau. Ich glaube nicht, dass es anders ist. Ich nutze diese Funktion seit März.
  • Wirklich großartig. Bei i3Detroit bauen wir einen Faraday-Käfig in der Größe eines begehbaren Kleiderschranks. Da wir natürlich in den USA sind, brauchen wir ihn nicht für diesen Hack, aber es gibt unglaublich viele spannende Gründe, so etwas zu haben.
    Der wichtigste Grund ist, dass sich ganz in der Nähe der WOMC-Sender befindet, mit einer EIRP von 135.000 Watt. Das streut in alle möglichen Geräte ein und erschwert andere Funkfrequenzmessungen. Wenn man Arbeiten wie das Abgleichen von Verstärkern macht, ist es besser, erst in einer ruhigen Umgebung die Grundlagen sauber hinzubekommen, bevor man potenzielle Ursachen wie Intermodulation hinzufügt.
    Man kann WiFi, Bluetooth und andere Funkgeräte debuggen, ohne unzählige benachbarte Nodes in der Umgebung. Man kann die Sniffer-Ausgabe zwar filtern, aber es macht mehr Spaß, schon den Input selbst zu filtern.
    Man könnte auch 1G- oder 2G-Mobilfunknetze einschalten, ohne sich um Frequenzlizenzen zu sorgen. Oder aggressive WiFi-Techniken üben, die das bestehende Netzwerk des Hackerspace stören könnten.
    Man kann in einer FCC-freien Zone mit GPS-Spoofern herumspielen oder andere spannende Experimente verantwortungsvoll durchführen. Man kann auch ein iPhone darin einsperren und sehen, ob es sich selbst neu startet.

    • Stimmt. Es ist fast erstaunlich, dass wir bisher ohne Faraday-Käfig ausgekommen sind.
      Ich jucke schon in den Fingern, Geräte hineinzulegen und die Luft darin ohne Lizenzsorgen mit Funkwellen zu füllen.
      Ich habe am Indian Institute of Science tatsächlich einen Faraday-Käfig in voller Größe gesehen, und es war schön zu sehen, dass unser Ansatz und die Struktur ähnlich sind.
  • In diesem Fall ließe sich wohl auch Certificate Pinning recht einfach umgehen. Man nimmt einfach einen Proxy oder ein VPN. Trotzdem ist die ganze Faraday-Käfig-Aktion ziemlich cool.

    • Ich glaube, hier müsste erklärt werden, wie ein VPN das Problem des Certificate Pinning löst. Soweit ich weiß, hat der Autor den HTTP/S-Traffic des iPhones bereits über eine proxied Netzwerkverbindung verändert, und ein VPN ermöglicht es einem nicht, eine gültige HTTPS-Antwort mit einem gepinnten Serverzertifikat zu fälschen.
    • Genau das haben wir letztlich gemacht. Wir haben ein kommerzielles VPN verwendet und dem Gerät per USB-Kabel Internet bereitgestellt.
      Wahrscheinlich hätte man auch Tailscale auf einem VPS irgendwo verwenden können.
    • Ich verstehe nicht, wie es durch die Nutzung eines VPN einfacher wird, einen Man-in-the-Middle-Angriff gegen sich selbst durchzuführen und die Antwort auf diese GET-Anfrage zu ändern.