Ich versuche, eine EXT4-formatierte SD-Karte unter Cyanogenmod 13.1 (Android 6.0.1) zu mounten.
Bisher habe ich Setup-Skripte, um die Karte /mnt/ext_sdcard
während des Bootens zu mounten. Mein derzeitiges Verständnis ist, dass der "sdcard" -Dienst dann aufgerufen werden muss, um einen FUSE-Mount zu erstellen, der auf den tatsächlichen Mount-Punkt zeigt, der den Medienscanner schließlich zu der neu gemounteten Festplatte führt.
Das Folgen einiger älterer Dokumentations- und Forenthreads führt mich zu diesem Befehl im Terminal:
service sdcard /system/bin/sdcard /mnt/ext_sdcard /mnt/test 1023 1023
class late_start
Wenn ich den Befehl ausführe (natürlich als Root), schlägt er mit einem Exit-Status von 1
und ohne Ausgabe-/Fehlermeldungen fehl.
Meine Frage: Mache ich etwas falsch, oder ist dieser Befehl in 6.0.1 veraltet (der Dokumente-/Forum-Thread schien sich auf KitKat zu beziehen)? Was ist die korrekte Syntax/Argumente für die Verwendung dieses Befehls?
Setzen Sie diesen Befehl in eine init.*.rc-Datei? Mein Verständnis ist, dass Sie dies zum Beispiel in einer init.extmount.rc haben würden. Dazu muss boot.img entpackt und neu gepackt werden.
Da ich nichts Besseres zu tun hatte, habe ich das erstellt: https://github.com/BenBaltz/mountext
Es ist eine flashbare Wiederherstellungs-Zip-Datei, mit der Sie Ihr Skript installieren können, indem Sie boot.img entpacken und mit den Änderungen neu packen.
Terminal-Befehle BEARBEITEN
su -c mount -o bind /mnt/ext_sdcard /path/to/new/dir
In der Speicherkonfiguration von Android 6+ :
Das Mounten physischer externer Speichervolumes wird von
vold
durchgeführt, das Staging-Vorgänge durchführt, um die Medien vorzubereiten, bevor sie Apps zugänglich gemacht werden.
...
Die fest codierten FUSE-Dienste wurden aus gerätespezifischen Dateien entfernt und werden stattdessen bei Bedarfinit.rc
dynamisch abgezweigt.vold
Die sdcard
in Dateien definierten Dienste *.rc
werden also nicht mehr benötigt und auch nicht storage_list.xml
in framework-res.apk
. Verwaltet stattdessen vollständig die mit Flag in vold
definierten Speichergeräte . Weitere Einzelheiten finden Sie in der Storage Journey von Android .voldmanaged=
fstab
In Android 9 wurde die FUSE-Unterstützung vollständig von sdcard
Binary entfernt und durch sdcardfs
. sdcardfs
kann direkt per mount
Befehl gemountet werden, ist also sdcard
nicht unbedingt erforderlich. Von Android 6 bis 8 sdcard
sollte die Binärdatei jedoch ein emuliertes Dateisystem mounten, wenn es mit den richtigen Argumenten ausgeführt wird. Sie können das Fehlerprotokoll einsehen logcat
.
Sie können auch ein FUSE-basiertes Tool eines Drittanbieters verwenden bindfs
, um dasselbe zu erreichen. Weitere Informationen finden Sie unter Wie kann ich einen Ordner in /sdcard mit den richtigen Berechtigungen binden?
Jake
Jake
service: Unknown command sdcard
. Dann habe ich versucht,service call sdcard...
was zurückkamService sdcard does not exist
. Außerdem habe ich zwei laufende Instanzen vonsdcard
auf meinem System gefunden und festgestellt, dass sie mit aufgerufen wurden/system/bin/sdcard -u1023 -g1023 -U0 /mnt/media_rw/8005-91F9 8005-91F9
. Unterscheidet sich dieser Befehl zwischen den Android-ROMs?Ben Balz
Ben Balz
Jake
Ben Balz
Jake