Ich frage mich nur, ob es eine Möglichkeit gibt, einen internen /sdcard
Ordner an einen anderen internen /sdcard
Ordner zu binden , in den normale Apps seit 4.4 für Android-Versionen schreiben können.
Ich habe einen Ordner ./MyPics
im internen benannt /sdcard
. Ich möchte es binden ./DCIM/Camera
, ./Pictures/Screenshots
, ./Movies/Screencasts
. Die SD-Karte ist in /mnt/shell/emulated/0
as sdcardfs
eingelegt und mit dieser verknüpft /storage/emulated/legacy
. Darüber hinaus gibt es ein Verzeichnis /storage/emulated/0
, das weder ein Einhängepunkt noch ein Symlink ist. Es ist ein sehr seltsames Verzeichnis.
Ich habe folgendes versucht:
mount -o bind,dmask=0000,fmask=0000 /mnt/shell/emulated/0/MyPics /mnt/shell/emulated/0/DCIM/Camera mount -o bind,dmask=0000,fmask=0000 /mnt/shell/emulated/0/MyPics /mnt/shell/emulated/0/Pictures/Screenshots mount -o bind,dmask=0000,fmask=0000 /mnt/shell/emulated/0/MyPics /mnt/shell/emulated/0/Movies/Screencasts
aber es hat keinen Sinn: Apps wie Camera konnten nicht schreiben
/DCIM/Camera
Ich habe folgendes versucht:
mount -o bind,dmask=0000,fmask=0000 /storage/emulated/legacy/MyPics /mnt/shell/emulated/0/... ....
aber es hat auch keinen Sinn
Ich habe folgendes versucht:
mount -o bind,dmask=0000,fmask=0000 /data/media/0/MyPics /data/media/0/... ....
Wenn eine Datei mit dem Namen
a.jpg
in vorhanden ist/MyPics
, wird sie in angezeigt/data/media/0/DCIM/Camera
, jedoch nicht in/storage/emulated/legacy/DCIM/Camera
Ich habe versucht, Apps wie LuckPatcher zu verwenden, um den Job zu erledigen, aber es ist erneut fehlgeschlagen
quelle
ln -s
?ln -s /sdcard/MyPics /sdcard/DCIM/Camera
. Sie müssen zuerst den Kameraordner verschieben.Antworten:
Leider ist es seit Android 4.2 auf den meisten Geräten nicht mehr möglich, einen Ordner zu mounten und ihn auch anderen Apps zur Verfügung zu stellen. Die Details dazu, wie dies funktioniert und warum dies geändert wurde, finden Sie hier: Korrektur für leere App-gemountete Verzeichnisse (CifsManager usw.) in Android 4.2 .
Die oben erwähnte Seite sagt dies:
Wenn Apps ein Verzeichnis mounten oder ein Gerät blockieren, sollte das gemountete Verzeichnis nur für die Apps sichtbar sein, die das Mounten durchgeführt haben, es sei denn, die App verfügt über spezielle Berechtigungen, die für Nicht-System-Apps im Allgemeinen nicht verfügbar sind. Und selbst wenn Sie es schaffen, das Verzeichnis global bereitzustellen, stehen Ihnen die Linux-Berechtigungen weiterhin im Weg.
Daher ist das Mounten wahrscheinlich nicht die einfachste Lösung für Ihr Problem. Wenn Sie jedoch wirklich Mounts verwenden möchten, sollten Sie in der Lage sein, die Befehle hinzuzufügen
/system/bin/debuggerd
und dann (als root) einzugebenstart debuggerd
, um Ihr eigenes Skript mit Systemberechtigungen auszuführen.Es gibt jedoch eine einfachere Möglichkeit, die schreibgeschützten Probleme zu umgehen, indem Sie diese App installieren oder die
media_rw
Gruppe manuellWRITE_EXTERNAL_STORAGE
zur Berechtigungsdatei hinzufügen . Auf diese Weise können Apps, die zum Schreiben auf die emulierte SD-Karte berechtigt sind, auch auf die 'externe' SD-Karte schreiben.Nachdem Sie Ihren externen Speicher beschreibbar gemacht haben, sollten Sie symlinks (
ln -s /sdcard/MyPics /sdcard/DCIM/Camera
) verwenden können, um einen schnellen Zugriff auf diese Verzeichnisse zu ermöglichen.quelle