Lassen Sie den internen SD-Kartenspeicher wie normalen Ext4-Speicher fungieren (mit Dateisystem-Berechtigungsverwaltung)

Einige Leute haben es anscheinend geschafft, Ext4-formatierte SD-Karten in ihren Android-Geräten zum Laufen zu bringen, sodass sie file system permission management. Ich habe keine SD-Karte in meinem Telefon, möchte aber die Dateiberechtigungen auf der emulierten SD-Karte verwalten können, die alle Android-Geräte haben.

Das Problem, das ich bei der aktuellen Implementierung sehe, ist die Tatsache, dass Apps, die auf eine Datei auf Ihrer SD-Karte (oder emulierten SD-Karte) zugreifen können, auf jede einzelne Datei auf Ihrer SD-Karte zugreifen können. Es gibt keine Möglichkeit, den Zugriff auf einen einzelnen Ordner zu beschränken.

Jetzt frage ich mich, wie ich die emulierte SD-Karte so ändern kann, dass ich festlegen kann, welche App auf welche Datei zugreifen kann.
Übrigens, nach dem, was ich gelesen habe, hat jede App ihren eigenen Linux-Benutzer, also sollte es theoretisch so einfach sein wie das Festlegen von Berechtigungen mit chown/ chmod.
Aber die Leute sagen, dass Android eine spezielle Implementierung für den emulierten SD-Speicher hat, die durch die Verwendung von FUSE erreicht wurde.

Mir ist bewusst, dass Apps möglicherweise nicht richtig funktionieren, wenn sie keine Lese- oder Schreibberechtigung für diesen Speicher haben. Aber das sollte eigentlich kein Problem sein, wenn man die Berechtigungen mit chown/ verwaltet chmod.
Ich weiß auch, dass ich möglicherweise die Möglichkeit verliere, MTP zu verwenden, um von einem Computer aus auf diesen Speicher zuzugreifen.

Ich verwende derzeit CyanogenMod 13 auf einem OnePlus One. Verwurzelte und benutzerdefinierte Wiederherstellung usw. Ich werde bald auf Android 7 aktualisieren (CM14). (führt auch microG anstelle von Google Play-Diensten aus.)

Was genau meinst du mit emulierter SD-Karte ? Der interne Speicher wird von der /data-Partition über FUSE emuliert? Wenn ja, /dataist die Partition in den meisten Fällen bereits als EXT4-Partition formatiert.
Ja ich denke das meine ich. Danke fürs klarstellen. Ich habe die Frage entsprechend geändert.
Wie die Antwort unten sagt, wäre die einzige Möglichkeit, FUSE zu modifizieren und das FUSE-Modul selbst zu kompilieren. Selbst wenn Sie Berechtigungen für interne Speicherdateien von festlegen /data/media/0/, wird dies nicht im emulierten Speicher widergespiegelt; So funktioniert es. Ihre Frage reduziert sich also letztendlich auf diese Frage: " Wie modifiziere ich das FUSE-Modul, um dies zu erreichen? ", was meiner Meinung nach hier nicht zum Thema gehört, wie unten gesagt.
Ich weiß nicht. Vielleicht gibt es einen anderen Weg. Wie das Deaktivieren von FUSE und das Erstellen eines Symlinks.

Antworten (1)

Du scheinst den Punkt zu verfehlen. Eigentlich ein paar davon:

  • Emulierter SD-Kartenspeicher hat nichts mit der mangelnden Unterstützung physischer SD-Karten durch einige Geräte zu tun.
  • Es ist ein öffentlicher Lagerbereich.
  • Es wird über implementiert FUSE- es ist kein echtes Blockgerät und Sie können es nicht einfach in ein beliebiges Dateisystem umformatieren.
  • Die Möglichkeit, Dateien über freizugeben, MTPhängt von der aktuellen Implementierung ab, und die von Ihnen vorgeschlagene Änderung würde sie beschädigen.
Ich weiß, dass es beabsichtigt ist und dass ich MTP verlieren werde. Aber das ist mir egal, weil die Sicherheits-/Datenschutzbedenken zu groß sind. Wäre es möglich, FUSE zu verwenden, um es so zu ändern, dass ich Berechtigungen mit chown/chmod verwalten kann? Und wenn ja, gibt es Fallstricke?
Wie das Sprichwort sagt , wenn Sie fragen müssen, lautet die Antwort nein . Die gewünschten Änderungen können nicht durch ein paar einfache Shell-Befehle und Konfigurationsänderungen erreicht werden – Sie müssen Ihre eigene FUSEImplementierung schreiben. Obwohl sicherlich machbar - es ist hier ein Offtopic. Zu den offensichtlichen Fallstricken gehören einige Apps, die sich einfach weigern zu funktionieren.
Können Sie näher darauf eingehen you will need to write your own FUSE implementation? Bist du dir zu 100% sicher, dass dies der einzige Weg wäre?