Voice over LTE (VoLTE) revolutioniert die Sprachkommunikation im Mobilfunknetz und ermöglicht hochqualitative Telefonate über das LTE-Netz. Um die inneren Abläufe und Protokolle, die VoLTE steuern, besser zu verstehen, ist das Analysieren der QMI-Kommunikation (Qualcomm MSM Interface) von essenzieller Bedeutung. Das Protokoll QMI dient als Brücke zwischen verschiedenen logischen Komponenten im Qualcomm-Basbandprozessor und verwaltet die Kommunikation mit Diensten wie der SIM-Karte (UIM) oder dem Netzwerkzugang (NAS). Allerdings ist das Einfangen und Entschlüsseln der QMI-Daten auf Android-Geräten eine Herausforderung, insbesondere weil direkte Zugriffe auf die Qualcomm-Diagnoseschnittstelle (Diag) oft hardware- und treiberabhängig sind. Hier kommt Frida ins Spiel, ein mächtiges Werkzeug zur dynamischen Instrumentierung von Anwendungen und Prozessen, das sich hervorragend zur Überwachung und Analyse von QMI-Nachrichten eignet.
QMI als strukturierter und vielseitiger Kommunikationskanal arbeitet mit einem TLV-(Typ-Länge-Wert)-Format und ermöglicht mehrere gleichzeitige Clients, die miteinander und mit dem Modem kommunizieren. Diese Eigenschaften machen das Protokoll zwar komplex, zugleich aber auch perfekt geeignet, um detaillierte Einblicke in verschiedene Basbandfunktionen zu erhalten. Die typischen physikalischen Transportkanäle für QMI reichen von USB über Shared-Memory bis hin zum Kernel-Socket oder getunnelten Verbindungen über Qualcomm Diag. Das klassische Erfassen von QMI-Nachrichten erfolgt oft über Qualcomm Diag, welches allerdings nur dann funktioniert, wenn das Telefon eine entsprechende Schnittstelle über einen TTY-Treiber im Linux-System anbietet. Da viele aktuelle Android-Geräte dies nicht standardmäßig erlauben und oftmals nur mit speziellen Kernel-Patches nutzbar sind, stößt man hier auf Einschränkungen.
Alternative Projekte, die den Zugriff via USB ohne Kernel-Treiber ermöglichen wollen, wie SCAT oder QCSuper, haben nur begrenzten Erfolg, da die notwendigen Treiber-IDs fehlen oder nicht implementiert sind. Daher war die Suche nach einer flexibleren Methode, QMI-Daten einzufangen, notwendig. Frida überzeugt durch seine Fähigkeit, in laufende Prozesse einzudringen, Code zu injizieren und so den Datenverkehr innerhalb der Anwendung zu beobachten und zu manipulieren. Bekannt aus der Analyse von iPhones für ähnliche Zwecke, wurde Frida adaptiv auf Android-Systeme übertragen, die auf Qualcomm-Hardware basieren. Das ermöglicht es, direkt in die modemspezifischen Prozesse wie rild (Radio Interface Layer Daemon) einzuhängen und die QMI-Kommunikation in Echtzeit zu extrahieren.
Bedingung für den Einsatz von Frida auf Android ist in der Regel ein gerootetes Gerät, zum Beispiel ein OnePlus 6T mit LineageOS, das volle Systemzugriffe erlaubt. Man installiert den Frida-Server direkt auf dem Smartphone und steuert ihn komfortabel über ADB vom Computer aus. Die Verbindung nutzt root-Rechte, um den Frida-Server mit den nötigen Privilegien zu starten. Anschließend kann eine Frida-Clientsoftware, oft in Python implementiert, dazu benutzt werden, die gewünschte Prozess-ID herauszufinden und sich mit dem Zielprozess zu verbinden. Im praktischen Ablauf lädt der Client ein JavaScript-Skript in die Zielanwendung und setzt Callbacks, um QMI-Nachrichtendatenpakete abzugreifen.
Diese werden dann vom Client entgegengenommen, in das GSMTAPv3-Format verpackt und per UDP lokal weitergeleitet. Auf diese Weise kann man den QMI-Verkehr zum Beispiel über tcpdump als Netzwerkmitschnitt ablegen und mit Spezialtools weiterverarbeiten oder dekodieren lassen. Das Projekt qmi-frida-tracer, das auf GitLab gehostet wird, bietet eine praktische Implementierung dieses Vorgehens. Nutzer können den Frida-Server manuell installieren, eine virtuelle Python-Umgebung aufsetzen, die benötigten Abhängigkeiten installieren und sich über die Prozessliste zur rild-ID verbinden. Der qmi-frida-tracer ist dabei in der Lage, sämtliche QMI-Kommunikation eines Prozesses transparent zu überwachen, sodass man Einblicke in komplexe QMI-Meldungen wie Netzwerksignalinformationen oder IP-Konfigurationen erhalten kann.
Die gewonnenen Daten werden in einem menschenlesbaren Format ausgegeben, mit verständlichen Übersetzungen wichtiger Parameter wie Signalstärken, IP-Präferenzen oder Antwortcodes. Dies ist für Entwickler und Forscher, die Telefoniedienste, Protokolle oder die Modemkommunikation auf Android untersuchen, von unschätzbarem Wert. Außerdem ermöglicht eine solche transparente Sniffing-Methode, fehlerhafte Implementierungen, Sicherheitslücken oder Inkompatibilitäten systematisch aufzudecken. Noch ist das gesamte Ökosystem um QMI-Traces auf Android nicht völlig reibungslos, da etwa Wireshark den GSMTAPv3-Standard mit QMI-Dekodierung noch nicht vollumfänglich unterstützt und einige Details wie das Simulieren von Client-IDs noch in der Entwicklung sind. Dennoch bieten die bisher erreichten Fortschritte eine solide Grundlage für tiefer gehende Forschungen.
Darüber hinaus trägt das Projekt zur Open Source Community bei und unterstützt indirekt die Weiterentwicklung von Voice-over-LTE-Technologien und deren Analysewerkzeugen. Wer auf diesem Gebiet forscht, kann von den stetig wachsenden Ressourcen und der aktiven Community rund um das OpenIMSD-Projekt profitieren, das umfassende Dienste rund um IMS und VoLTE bereitstellt. Die Kombination aus gerootetem Android-Gerät, Frida-Instrumentierung und dem qmi-frida-tracer macht es möglich, zuvor schwer zugängliche QMI-Kommunikation zu extrahieren und für eigene Analysen nutzbar zu machen. Dies ebnet den Weg, um die verborgenen Mechanismen auf Qualcomm-basierten Smartphones zu verstehen und letztlich VoLTE-Technologien zu optimieren oder eigene Anwendungen rund um Mobilfunkprotokolle zu entwickeln. Zusammengefasst ist die Nutzung von Frida zur Erstellung von QMI-Traces eine innovative und leistungsstarke Methode, die zunehmend an Bedeutung gewinnen wird.
Die Kombination aus dynamischem Code-Injection, Echtzeit-Datenextraktion und Standardisierung durch GSMTAPv3 ermöglicht Experten und Hobbyisten gleichermaßen, tief in das komplexe Zusammenspiel von moderner Mobilfunkkommunikation einzutauchen. Wer sich für die technische Seite von Mobilfunk interessiert, findet hier einen wertvollen Zugang zu sonst kaum zugänglichen Protokolldetails und Werkzeugen.