Was ist rootfs? Kann ich dauerhafte Änderungen am Root-Dateisystem meines Geräts vornehmen?

Wenn ich einen Terminalemulator öffne und den mountBefehl ausführe, wird angezeigt, dass das Root-Dateisystem ( ) meines Android-Geräts /vom Dateisystemtyp ist rootfs. Was ist rootfs? Kann ich darauf schreiben? Bleiben meine Änderungen auch nach dem Herunterfahren des Geräts bestehen?


Hinweis: Wenn Sie ein Android-ROM-Entwickler sind, der Dateien zu Ihren ROMs hinzufügen möchte rootfs, sehen Sie sich bitte stattdessen die entsprechende Unix.SE-Frage an.

Verwandt: Wie entpacke und bearbeite ich boot.imgdie ROM-Portierung? : Die Antworten dort erklären, wie die Datei abgerufen und bearbeitet wird boot.img, sodass der Inhalt des Stammverzeichnisses des Geräts dauerhaft geändert werden kann.

Antworten (1)

Was ist rootfs?

Es ist ein initramfs. Im Grunde ist es ein vorbelegtes RAM-Laufwerk. Es wird beim Booten mit einigen Inhalten vorbelegt, normalerweise aus einem cpioArchiv, das in den Kernel kompiliert wurde.

Kann ich darauf schreiben?

  • Eine Möglichkeit, Änderungen an Ihrem vorzunehmen, rootfsbesteht darin, das Archiv zu entpacken cpio, Ihre Änderungen vorzunehmen und das Archiv neu zu packen. Ihr Gerät muss mit ziemlicher Sicherheit gerootet werden, bevor Sie dies tun können. Außerdem benötigen Sie die notwendigen Werkzeuge.

  • Alternativ können Sie Änderungen an der rootfsKopie vornehmen, die in den Arbeitsspeicher geladen wird; aber wenn Sie dies tun, gibt es vier Fallstricke.

    1. Sie müssen Ihr Gerät zuerst rooten.

    2. Anschließend müssen Sie das Dateisystem mit Lese-/Schreibzugriff neu einhängen.

    3. Schreiben Sie nicht zu viel an die rootfs; Wenn Sie dies tun, nehmen Sie zu viel RAM in Anspruch und Ihr Gerät wird langsamer.

    4. Das größte Problem ist, dass die von Ihnen erstellten Dateien verschwinden, wenn Sie herunterfahren oder neu starten. Bitte lesen Sie weiter.

Bleiben meine Änderungen auch nach dem Herunterfahren des Geräts bestehen?

Nein. Wenn Sie Dateien in erstellen oder ändern rootfs, werden Ihre Änderungen beim Herunterfahren oder Neustarten rückgängig gemacht.

Was soll ich tun, anstatt in das Root-Dateisystem zu schreiben?

Speichern Sie Ihre Dateien stattdessen irgendwo unter /storageoder /dataoder /system. Sie können eine der drei auswählen. Irgendwo darunter /storageist wahrscheinlich am besten, da dies die häufigste Wahl ist.

Warum verhält sich mein Gerät nicht wie ein normales Linux-Gerät und mountet ein normales festplattengestütztes Dateisystem in /?

Ich weiß nicht.

Ich vermute, dass die Antwort wie folgt lautet: Android ist keine vollständige Linux-Distribution. Es enthält keine vollständige Glibc, ist wahrscheinlich nicht vollständig LSB-kompatibel und fühlt sich nicht verpflichtet, die Feinheiten bereitzustellen, die die meisten Linux-Distributionen bieten (z. B. ein festplattengestütztes Root-Dateisystem).

An anderer Stelle schreibt Gilles:

Die meisten Desktop-Linux-Systeme haben ein kleines initramfs, das gerade genug Programme und Konfigurationsdateien enthält, um das echte Root-Dateisystem zu mounten, das dann auf gemountet wird und /das initramfs ersetzt. Android hält, wie einige eingebettete Linux-Systeme, das initramfs für immer gemountet. Das initramfs von Android enthält nur /init, adbdund ein paar Konfigurationsdateien.


Verweise:

Löscht nur das Herunterfahren den Inhalt? Wird es auch durch einen Neustart gelöscht?
Neustart löscht es auch. Ich habe jetzt die Antwort bearbeitet, um dies zu sagen.