Wie mir bekannt ist, Android
wird Ihre Speicherkarte nach 4.4 oder so ähnlich nicht mehr direkt exponiert und muss sorgfältig durch bestimmte Punkte verbunden werden, die durch das System Mount
beachtet werden müssen. Meine Frage ist angesichts dieser Situation und der Tatsache, dass sie sehr kompliziert ist zugreifen und vor allem, wenn man jetzt darauf sitzt, ist es irgendwie immer noch möglich, Unterstützung zu leisten, wenn es ursprünglich nicht existierte, wie es bei früheren ähnlichen Betriebssystemen der Fall war, wenn die Einhängepunkte beim Booten und dann erstellt wurden wird auf sie aufmerksam gemachtvold
ext4
SeLinux
ext4
lineage
vold
Was ich getan habe,
seit ich rooted
( magisk
) bin, benutze ich su mount master
diese und mounte sie manuell, aber der Versuch, sie dann zu verwenden, vold
schlug fehl, weil es zu spät war. Ich habe einige Artikel darüber gefunden, wie dies in früheren Android-Versionen bis 5 erreicht wurde.
Nach 7.6 ist die Android-Welt noch mehr geworden paranoid in Bezug auf die Sicherheit und seLINUX
hätte ab 7.x nicht wählerischer sein können Android-Versionen Ich würde gerne wissen, ob es eine definitive Anleitung dazu gibt, wie dies getan werden kann. Es macht mir nichts aus, diese Funktion im Kernel neu zu kompilieren. Dies ist eine weitaus lohnendere Investition als der Versuch, nach benutzerdefinierten ROMs zu suchen und sich von Lagerbeständen zu entfernen, nur weil Sie EXT4
Unterstützung wünschen
. Wie kann ich also hinzufügen?EXT4
Unterstützung von Stock- und ähnlichen ROMs für Android-Versionen > 7.x und dies auf die richtige Weise, bei der alle Apps auf meine Partitionen zugreifen können. Alle meine Partitionen sind EXT4
dies ganz im Gegensatz zu dem zweiten partition
app2sd
Ansatz, der verwendet wird, um Platz zu sparen. Natürlich habe ich das auch, aber ich habe zwei weitere Partitionen, die für extSD
(externe Hauptdatenspeicherpartition) verwendet werden, und eine, die einer anderen App gewidmet ist. insgesamt 3 EXT4
Partitionen. Die erste ist die Hauptdatenpartition, die zweite app2sd
und die dritte eine spezielle Partition, die einer App gewidmet ist. Wenn es darauf ankommt, bin ich auf einem Samsung-Gerät mit Stock Nougat 7.x gerootet.
Eine andere Sache, die ich beobachtet habe, und ich werde die Frage entsprechend aktualisieren, ist, dass plötzlich aus dem Nichts Partitionen, die unter /storage gemountet sind, jetzt nur gelesen werden, früher waren sie es nicht. Ich kann immer noch über /mnt/media_rw lesen und schreiben. Ich frage mich, was schief gelaufen ist, da viele Apps darauf angewiesen sind, auf meine Partitionen über /storage Mount Point zuzugreifen.
Also nur um hier die Fragen zusammenzufassen:
ext4
partitionierte externe Karte beim Booten, im Gegensatz zum manuellen Mounten, das ich tun kann.vold
wissen, dass es gemountet wurde und alle Apps und Prozesse frei auf die Partition zugreifen können./storage
wurden plötzlich schreibgeschützt (interne Speicherpartition ist natürlich immer schreibgeschützt). tune2fs
bestätigt, dass alle Partitionen sauber sind. Warum passiert das und wie kann es behoben werden?
Danke für die Antwort. Ich habe diese Frage gestellt, die wie eine Erzählung klang, da ich keine Screenshots oder Protokolle zur Hand hatte, falls Sie dies in Ihrem Eröffnungskommentar als Antwort meinten. Also hier ist, was ich versuche zu erreichen, aber auf alle möglichen Fehler stoße.
1) Mount mmck1p2
to /data/sdext2
und ich erhalte immer wieder den Fehler failed to mount ... mmcblk1p2
on ..... invalid argument
& another similar line
failed..... /dev/block/vold/public
on .... invalid args. das ist über app2sd
und meine magisk
hat die globale Option eingeschaltet, die gleiche Partition ist bereits beim Booten unter gemountetmedia_rw and storage
Bind mounting
Die Kamera DCIM
und viele andere Ordner im internen Speicher schlagen fehl, wenn das Ziel ist /storage/part#
, und es hat früher gut funktioniert. Meine Partitionen sind laut tune2fs
Bericht sauber. Was ist passiert ?
Danke noch einmal. Beantworten Sie hier Ihre Fragen:
1) Was sind derzeit gemountete Dateisysteme (Ausgabe von mount)?
o/p ist zu groß, um hier reinzupassen. PFA
2) Ausgabe von /system/bin/id?
für normale Benutzer
uid=10112(u0_a112) gid=10112(u0_a112) groups=10112(u0_a112),1015(sdcard_rw),1023(media_rw),1028(sdcard_r),3003(inet),9997(everybody),50112(all_a112) context=u:r:untrusted_app:s0:c512,c768
3) Welchen Befehl genau haben Sie verwendet, um mmck1p2 nach /data/sdext2 zu mounten? 4) Welchen Befehl genau haben Sie verwendet, um den Mount-DCIM-Ordner zu binden?
1 mount -o,rw /dev/block/mmcblk1p1 /storage/extsd
2 lp=/sdcard/logger.txt
4 ls./mnt/media_rw
5 ls /mnt/media_rw
6 mkdir -p $_/extsd
7 mount --bind /storage/extsd $_
8 ls $_
Mit dem obigen Ausführen vom Terminal kann ich Dateien nur vom Terminal sehen. Wenn ich davon weglaufe, adb
bekomme ich die gleiche Situation
. Der Gedanke adb
wäre hartnäckig, ist aber nicht der Fall. Danach habe ich versucht, vold aufzurufen, in der Hoffnung, dass es mein Reittier dauerhaft und sichtbar machen würde, aber auch dort kein Glück
dreameltemtr:/ # /system/bin/vold
/system/bin/vold
Aborted
134|dreameltemtr:/ # /system/bin/vold --blkid_context=u:r:blkid:s0 --blkid_untrusted_context=u:r:blkid_untrusted:s0 --fsck_context=u:r:fsck:s0 --fsck_untrusted_context=u:
r:fsck_untrusted:s0
ntext=u:r:fsck:s0 --fsck_untrusted_context=u:r:fsck_untrusted:s0 <
SELinux selinux_android_compute_policy_index : Policy Index[2], Con:u:r:magisk:s0 RAM:SEPF_SECMOBILE_7.1.1_0003, [-1 -1 -1 -1 0 1]
Auch zu mount partition
# 2 via app2sd
gibt es ein mount
Skript, das die App /system/bin/etc or /data/app2sd
je nach den von Ihnen gewählten Optionen in das Verzeichnis schreibt. Es verwendet einen ähnlichen Ansatz, außer dass
-- ich seine eigene Binärdatei für die Bind-Mount-Funktionalität verwendet habe
-- ich regelmäßige Tests durchführen werde, um zu sehen, ob bestimmte Partitionen gemountet werden
-- es diese regelmäßig ausführen wird (eine Art viele Skripte zusammenflicken), in der Hoffnung, dass einer wird funktionieren
-- Ich versuche , sowohl über das Blockgerät ( / dev/block/mmcxxx
) als auch vold
( /dev/block/vold/nnn
) zu mounten .
Hier ist das Skript und Sie werden sehen , was ich gerade gesagt habe . Wieder PFA, da es eine Obergrenze für maximale Zeichen auf einem Beitrag gibt.
4) Was sind genaue Fehlermeldungen? –
Genaue Nachrichten sind 2 Zeilen vom app2sd
gui
Aufmerksamkeitsfeld entfernt
- Failed to mount /dev/block/ mmcblk1p2 to /data/sdext2 invalid argument <br>
- Failed to mount /dev/block/vold/public/179:34 to /data/sdext2 invalid argument<br>
Im letzten Teil, wo ich nicht auf extern partitions
gemountet schreiben kann /storage
, war diese Instanz der ROM-Installation fehlgeschlagen. Es verursachte wiederholt boot-loops
nach 10 Minuten, also habe ich gerade mein Nandroid
Backup wiederhergestellt. Also ich kann nicht mehr Details ausgraben.
Ich glaube ich verstehe deine Frage nicht ganz. Es ist nicht klar, was und wie Sie bisher versucht haben und mit welchen Einschränkungen oder Einschränkungen Sie konfrontiert waren, um das zu erreichen, was Sie erreichen wollten. Aber um deine Fragen genau zu beantworten:
Mounten Sie eine mehrfach
ext4
partitionierte externe Karte beim Booten, im Gegensatz zum manuellen Mounten, das ich tun kann
Das Einbinden einer externen SD-Karte erfolgt über vold
. Sie können dies deaktivieren fstab
und einen init
Dienst definieren oder ein init.d
Skript einfügen, um die Partitionen beim Booten so zu mounten, wie Sie es möchten.
Mounten Sie es auf die richtige Weise mit der richtigen Gruppen-ID, damit Sie
vold
wissen, dass es gemountet wurde und alle Apps und Prozesse frei auf die Partition zugreifen können
Seit Android 6 hängt im Portable Storage-Modus eine vold
externe SD-Karte an /mnt/media_rw/[UUID]
und emuliert diese dann an /storage/[UUID]
. Apps mit WRITE_MEDIA_STORAGE
der Berechtigung (die GID zugeordnet ist media_rw (1023)
) haben Schreibzugriff auf Dateisystemebene auf die externe SD-Karte. Apps von Drittanbietern können jedoch nicht auf die SD-Karte schreiben, da die besagte Berechtigung signature|privileged
eine Schutzstufe hat. Die Emulation ermöglicht es Apps, die gesamte SD-Karte zu lesen, aber nur in ihre privaten Verzeichnisse zu schreiben. Auch Apps können Android-APIs (wie SAF) verwenden, um Dateien auf der SD-Karte zu speichern. Einzelheiten finden Sie unter Wie verschiebt man Dateien auf eine externe SD-Karte?
Dieses ganze Phänomen ist tief in das Android-Framework integriert - Java und nativ. Wenn Sie also dieses Verhalten ändern möchten, müssen Sie die Android-Quelle ändern und das ROM neu erstellen. Oder verlassen Sie sich nicht darauf vold
und mounten Sie Partitionen nicht selbst mit den richtigen Berechtigungen, wie ich bereits erwähnt habe.
Alle externen Partitionen unter
/storage
wurden plötzlich schreibgeschützt
Es kann mehrere mögliche Gründe geben, Sie können das Kernel-Protokoll oder das Android-Protokoll überprüfen, um zu sehen, was genau passiert, wenn Sie dies tun mount -o rw,remount
. Das Mounten im Nur-Lese-Modus kann ein Zeichen für Fehler aufgrund der Verschlechterung des Flash-Chips sein. Oder die Partition(en) haben einfach ihre maximale Einhängezahl erreicht, also müssen Sie fsck
.
ROM
. ext4
Hoffe, ich bin jetzt klar. Jetzt sehe ich für diese Instanz den Ordner /etc/init.d nicht, es gibt einen Init-Ordner und selbst wenn ich rw erneut einhänge. Beim Neustart werden Skripte gelöscht. Ich kann sie in xbin einfügen, bin mir aber nicht sicher, ob sie ausgeführt werden.
Irfan Latif
ext4
und manuell einbinden, wo immer Sie möchten.ext4
Unterstützung ist seit der ersten Veröffentlichung von Android auf jedem ROM - Stock oder Custom - vorhanden. Was genau ist Ihre Frage?Benutzer1874594
Benutzer1874594
Benutzer1874594
Alex
Irfan Latif
mount
)? 2) Ausgabe von/system/bin/id
? 3) Welchen Befehl genau haben Sie zum Mountenmmck1p2
verwendet/data/sdext2
? 4) Welchen Befehl genau haben Sie verwendet, um den Mount-DCIM-Ordner zu binden? 5) Was sind genaue Fehlermeldungen?Benutzer1874594
Benutzer1874594
Benutzer1874594
permissive
direkt aus der BoxBenutzer1874594
Benutzer1874594
fbind magisk
aber es würde nicht sofort passieren. musste das Skript öffnen, das voller Funktionen war, und eine der Funktionen suchte nach Mount media read write as a mountaing pt In/proc /partitions
. & es hat sich nie als wahr herausgestellt mit einer Zeit von 1800 s. Diese Funktion musste angepasst werden, damit das Ergebnis wahr ist, wenn ,/mnt
gemountet wurde und dann das Mounten erfolgen würde. Hoffentlich wird sich die Zeit, die ich in all das investiert habe, auszahlen, da jedes Mal, wenn ich damit konfrontiert werde, dasselbe Modul verwendet wird!