Magisk – „Magische Maske“ auf Systemebene
Magisk (Magic Mask) ist ein von topjohnwu entwickeltes Open-Source-Android-Framework. Seit seiner Veröffentlichung im Jahr 2016 hat es sich zu einem der beliebtesten Tools zur Android-Systemmodifikation entwickelt. Seine Kerninnovation besteht darin, Root-Berechtigungen zu erhalten und modulare Funktionen zu erweitern, ohne die Systempartition durch „systemlose“ Technologie zu ändern.

Kernfunktionen und Vorteile
1. Systemloses Root
Durch virtuelles Mounten und Überschreiben der Systempartition können Root-Berechtigungen erlangt werden, ohne die /system-Partition zu ändern. Dadurch wird das Auslösen von OTA-Update-Fehlern oder die Erkennung durch Sicherheitsmechanismen (wie Google SafetyNet) vermieden.
2. Magisk-Modul-Repository
- Funktionserweiterung und -anpassung auf Systemebene: Wie z. B. Verschönerung der Benutzeroberfläche (benutzerdefinierte Statusleiste, Schriftartenaustausch), Leistungsoptimierung (wie z. B. intelligente Verwaltung der Speichernutzung durch das Modul „BlackHog“).
- Datenschutz und Sicherheitsschutz: Wie etwa Anzeigenfilterung (installieren Sie das Modul „AdAway“, um eine globale Anzeigenblockierung zu erreichen), Berechtigungsverwaltung (genaue Kontrolle der Anwendungsberechtigungen über das Modul „AppOpsX“ oder Fälschung von Gerätefingerabdrücken, um die Erkennung der Anwendungsrisikokontrolle zu umgehen) und Root-Verbergen (kombiniert mit dem Modul „Shamiko“, um die Erkennung der Systemsicherheit zu umgehen).
- Debugging und Remote-Verwaltung durch Entwickler: Beispielsweise dynamische Analyse (Integration des Moduls „Frida-Server“ zum Reversing von Anwendungen und dynamisches Hooking), Remote-Zugriffsmodul (Bereitstellung des Moduls „MagiskSSH“ zur Fernsteuerung des Geräts über das SSH-Protokoll) und Kompatibilitätstests (Fälschung von Gerätemodellen und Android-Versionsnummern, um die Leistung der Anwendung in verschiedenen Umgebungen zu überprüfen).
- Anpassbare Module: Beispielsweise können Sie Module entwickeln, um Anwendungen stapelweise zu installieren, Netzwerkrichtlinien zu konfigurieren oder geplante Aufgaben auszuführen.
3. Dynamische Injektion von Zygisk
Die in Version v24 eingeführte Zygisk-Technologie ermöglicht einen effizienteren Modulbetrieb und versteckte Root-Erkennungsfunktionen durch Einschleusen des Android-Systemkernprozesses Zygote.
4. Ausblendmodus
Der Root-Status kann für bestimmte Anwendungen (wie Banking-Apps und Anti-Cheat-Systeme für Spiele) ausgeblendet werden, und bei Verwendung mit Plug-Ins wie „Shamiko“ können mehr als 90 % der Root-Erkennungsmechanismen umgangen werden.
Magisk-Bereitstellung
Dieses Mal wurde Magisk Delta (Version fdac22ba) basierend auf der Firefly RK-Hardwareplattform verlustfrei in der Android-Docker-Umgebung bereitgestellt, ohne die Boot-Partition zu patchen oder das System-Image zu ändern.
- Gerät: ROC-RK3588S-PC
- Firmware: ROC-RK3588S-PC_Ubuntu20.04-Minimal-r2407_240929
- Gerätesystemumgebung: Die Umgebungskonstruktion „ Technischer Fall – Android in Docker “ ist abgeschlossen
Installationsschritte
(1) Importieren Sie magisk.tar, magisk_setup.rc und setup.sh in den Hostcomputer.
//If the host machine is connected to the Internet, you can use the SCP
command to import the host machine
scp ./magisk_delta_fdac22ba/magisk.tar root@xxx.xx.xx.xx:/root/
scp ./magisk_delta_fdac22ba/remove.rc root@xxx.xx.xx.xx:/root/
scp ./magisk_delta_fdac22ba/setup.sh root@xxx.xx.xx.xx:/root/
//Or push to the host machine via adb
adb push ./magisk_delta_fdac22ba/magisk.tar /root/
adb push ./magisk_delta_fdac22ba/magisk_setup.rc /root/
adb push ./magisk_delta_fdac22ba/setup.sh /root/
(2) Legen Sie die Berechtigungen für magisk_setup.rc fest.
root@firefly:~# chmod 644 /root/magisk_setup.rc
root@firefly:~# ls -l /root/magisk_setup.rc
-rw-r--r-- 1 root root 979 May 13 07:23 /root/magisk_setup.rc
(3) Ändern Sie das Startskript container/aic.sh im Host
run_cmd "docker run -itd --restart=always --privileged $CONTAINER_NAME $HOST_NAME $DATA_BIND \
$CONFIG_COMMON $CONFIG_PRIVATE \
$CONTAINER_NETWORK $CONTAINER_MAC $CONTAINER_IP $PORT_BIND \
+ -v ~/magisk_setup.rc:/vendor/etc/init/magisk_setup.rc \
+ -v ~/setup.sh:/setup.sh \
+ -v ~/magisk.tar:/magisk.tar \
$ANDROID_IMAGE"
(4) Beim ersten Start ausführen
./aic.sh -i # Initialization for the first time
./aic.sh -r <android image.tgz> <number of containers>
Überprüfung und Verwendung der Magisk-Funktion
Installationsüberprüfung
1. Der Hostcomputer muss mit dem Netzwerk verbunden sein.
2. Containerstatus anzeigen
root@firefly:/Benutzerdaten/Container# docker ps -a --format "Tabelle {{.ID}} \t {{.Ports}} "
CONTAINER ID PORTS
725921edb3a2 0.0.0.0:1100->5555/tcp, :::1100->5555/tcp
3. Überprüfen Sie die Host-IP
root@firefly:/userdata/container# ifconfig eth0
eth0: flags=4163 mtu 1500
inet 172.16.10.211 netmask 255.255.0.0 broadcast 172.16.255.255
inet6 fe80::fa62:d724:f565:ffed prefixlen 64 scopeid 0x20
ether 6a:01:8e:a5:3f:2c txqueuelen 1000 (Ethernet)
RX packets 384418 bytes 118264726 (118.2 MB)
RX errors 0 dropped 38243 overruns 0 frame 0
TX packets 127586 bytes 29265180 (29.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 92
4. Der PC verwendet ADB, um eine Verbindung zum Container herzustellen und den Bildschirm zu übertragen
lwy@DESKTOP-KGTB0I2: adb connect 172.16.10.211:1100
lwy@DESKTOP-KGTB0I2: scrcpy.exe -s 172.16.10.211:1100
- Für den ersten Start müssen Sie die APP eingeben, um den Initialisierungsneustart abzuschließen
- Verifizierungsversionsnummer: fdac22ba-delta(25210(D))
Demonstration der Magisk-Kernfunktionen
Superuser-Autorisierung
lwy@DESKTOP-KGTB0I2: adb -s 172.16.10.211:1100 shell
13|rk3588_docker:/ $ su
rk3588_docker:/ #
Geben Sie „su“ in das Terminal ein. Magisk öffnet ein Eingabeaufforderungsfeld. Klicken Sie auf „Gewähren“, um die Autorisierung abzuschließen.
Zygisk aktivieren
Magisk-Einstellungsoberfläche -> Zygisk aktivieren -> Neustart. Nach dem Neustart zeigt die Zygisk-Leiste auf der Oberfläche „Ja“ an.
Ausblenden von Anwendungen
Magisk-Einstellungen -> Magisk ausblenden -> Wählen Sie die getarnte App aus, warten Sie, bis sie abgeschlossen ist und sich das Symbol in „Einstellungen“ ändert.
Demonstration der Magisk-Modulanwendung
Lsposed
//PC directly import LSPosed-v1.9.1-6990-zygisk.zip
adb -s 172.16.10.211:1100 push LSPosed-v1.9.1-6990-zygisk.zip /sdcard/
Laden Sie LSPosed-v1.9.1-6990-zygisk.zip in die Magisk-Modulschnittstelle -> starten Sie neu, damit die Änderungen wirksam werden.
MagiskSSH
Importieren Sie auf ähnliche Weise SSH_for_Magisk-v0.22_22.zip in den Container und starten Sie neu, nachdem die Magisk-Modulschnittstelle geladen wurde.
PC directly import SSH_for_Magisk-v0.22_22.zip
adb -s 172.16.10.211:1100 push SSH_for_Magisk-v0.22_22.zip /sdcard/
Verwenden Sie das Terminal oder Termux, um den Befehl „ssh user@192.xxx.x.xxx“ und das Anmeldekennwort einzugeben, um sich anzumelden. Weitere Verwendungsmethoden, z. B. die Anmeldung ohne Kennwort, finden Sie im Readme-Dokument von SSH_for_Magisk-v0.22_22.zip.
Technische Informationsbeschaffung
Magisk bildet durch die systemlose Architektur eine erweiterbare technische Grundlage für das Android-System. Entwickler können flexibel maßgeschneiderte Funktionskomponenten basierend auf der modularen Schnittstelle entwickeln. Die Plattform bietet ein standardisiertes Entwicklungsframework und unterstützt umfassende Anpassungsmöglichkeiten – von der Berechtigungsverwaltung bis zur Hardwareoptimierung.
Der aktuelle Fall zeigt zwei Module, Lsposed und MagiskSSH, basierend auf der Firefly-Hardwareplattform. Entwickler können auf dieser Plattform weitere Gameplay- und Systemanpassungsentwicklungen erkunden. Für umfassende Informationen zur Bereitstellung von Magisk in Android in der Docker-Umgebung wenden Sie sich bitte an das Firefly Open-Source-Team: global@t-firefly.com