Zygisk
Zygisk ist eine fortschrittliche (Stand 18. Mai 2024) Methode zur Integration von benutzerdefinierten Modulen und Root-Zugriff in den Zygote-Prozess des Android-Betriebssystems. Zygote ist eine zentrale Komponente von Android und dient als Vorlage für den Start aller Android-Anwendungen. Durch die direkte Integration in diesen Prozess ermöglicht Zygisk tiefere Systemänderungen und eine verbesserte Leistung.
Geschichte
[Bearbeiten | Quelltext bearbeiten]Zygisk wurde ursprünglich im Rahmen des Magisk-Projekts von dem IT-Sicherheitsexperten John Wu (auch bekannt als topjohnwu) entwickelt.[1][2] Die erste Testversion wurde im Oktober 2021 als Teil von Magisk[3] veröffentlicht, im Januar 2022 folgte das Release mit der Veröffentlichung von Magisk 24.[4] Das Github-Repository für Zygisk Next[5], eine Implementierung von Zygisk in KernelSU, die auch als Alternative zur Zygisk-Implementierung in Magisk verwendet werden kann, wurde Ende Januar 2023 gestartet. Die erste Testversion wurde im Februar veröffentlicht[6]. Seit dem Release von Zygisk Next 1.0.3 unterstützt Zygisk Next auch die Verwendung mit APatch.[7]
Technische Details
[Bearbeiten | Quelltext bearbeiten]Zygisk ermöglicht es, Module direkt im Zygote-Prozess zu laden, dies bedeutet, dass Änderungen und Erweiterungen bereits beim Start von Anwendungen aktiv sind, was eine tiefere Integration und Kontrolle über das Betriebssystem erlaubt. Entwickler können dadurch tiefere Eingriffe in das Betriebssystem vornehmen, außerdem werden Root-Änderungen weniger leicht erkannt, dies hat den Vorteil, dass Anwendungen, die Mechanismen wie die Google SafetyNet Api verwenden, dies nicht erkennen.
Außerdem müssen die Module durch die direkte Integration in den Zygote-Prozess nicht separat geladen werden, was die Effizienz erhöht.
Integration in den Zygote-Prozess
[Bearbeiten | Quelltext bearbeiten]Zur Integration in den Zygote-Prozess verwendet Zygisk eine Technik namens „Dlopen Hijacking“, das bedeutet, dass Zygisk durch Manipulation des „Dlopen“-Systemaufrufs, eine Funktion in der C-Standardbibliothek (libc)[8], der von Unix-ähnlichen Betriebssystemen verwendet wird, um dynamische Bibliotheken zur Laufzeit zu laden, in den Prozess integriert.[9][10][11]
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Skanda Hazarika: Magisk v24.0 release introduces Zygisk, brings along Android 12 support, and more. 26. Januar 2022, abgerufen am 18. Mai 2024 (englisch).
- ↑ Zygisk: What is it? How to Download and Use it? 21. April 2023, abgerufen am 18. Mai 2024 (amerikanisches Englisch).
- ↑ Skanda Hazarika: Latest Magisk Canary release adds support for Android 12, drops MagiskHide. 25. Oktober 2021, abgerufen am 18. Mai 2024 (englisch).
- ↑ Skanda Hazarika: Magisk v24.0 release introduces Zygisk, brings along Android 12 support, and more. 26. Januar 2022, abgerufen am 18. Mai 2024 (englisch).
- ↑ Initial commit · Dr-TSNG/ZygiskNext@3d0efd6. Abgerufen am 18. Mai 2024 (englisch).
- ↑ Release v4-0.9.0 · Dr-TSNG/ZygiskNext. Abgerufen am 18. Mai 2024 (englisch).
- ↑ Release v1.0.3 · Dr-TSNG/ZygiskNext. Abgerufen am 18. Mai 2024 (englisch).
- ↑ (PDF) Red Hat Enterprise Linux-5-5.4 Technical Notes-En-US. Abgerufen am 18. Mai 2024 (englisch).
- ↑ Dynamically Loaded (DL) Libraries. Abgerufen am 18. Mai 2024.
- ↑ dlopen(3) - Linux manual page. Abgerufen am 18. Mai 2024.
- ↑ Magisk/native/src/core/zygisk/module.cpp at master · topjohnwu/Magisk. Abgerufen am 18. Mai 2024 (englisch).