Wie Symlinks in /storage/emulated in 4.4.4 funktionieren

Ich habe einen Symlink von /storage/sdcard1/somefolderbis erstellt /data/media/0/somefolder, aber Apps behandeln den Symlink als Datei und nicht als Ordner (und stürzen ab, weil sie fest codiert sind, um nach Dateien in einem Ordner unter diesem Pfad zu suchen).

Root-Apps, die von Works aus auf den Symlink zugreifen /data/media/0/somefolderund ihn als Ordner behandeln, Nicht-Root-Apps verwenden /storage/emulated/0/somefolderstattdessen den verschmolzenen Einhängepunkt at, da sie nicht die Berechtigung haben, hineinzuschauen /data/media.

Es ist nicht möglich, direkt auf den verschmolzenen Punkt zu verlinken (Geräteübergreifender Linkfehler). Die Punktberechtigung von Symlink für den verschmolzenen Punkt gilt 770für a app_ID:1028statt 777für root:rootwie bei from /data/media. Es ist nicht möglich, Berechtigungen mit root am verschmolzenen Punkt zu ändern. /storage/sdcard1/somefolderist 777.

Der Debuggerd-Exploit ist so lange wie möglich zu vermeiden und Einhängepunkte werden nicht systemweit sichtbar sein.

Was muss geändert werden, damit der Symlink vom verschmolzenen Punkt aus funktioniert? Wie wirkt es sich auf den Rest des Systems aus?

Antworten (2)

Android bewacht Einhängepunkte seit dem Erscheinen von Android 4.2. Sie haben den debuggerd-Hack bereits erwähnt, also nehme ich an, dass Sie über diese Einschränkung Bescheid wissen.

Dies mag offensichtlich erscheinen, aber Sie sollten zuerst überprüfen, ob das Dateisystem, das auf dem emulierten externen Speicher und auf dem echten externen Speicher verwendet wird, beide Symlinks unterstützen. Wenn Ihre SD-Karte als FAT32 formatiert ist, was keine Symlinks unterstützt, passiert nichts und Sie müssen den externen Speicher auf etwas wie ext2/3/4 oder yaffs formatieren.

Der Fehler „geräteübergreifende Verknüpfung“ kann behoben werden, indem ln -s /data/media/0/somefolder /storage/sdcard1/somefolderanstelle von ln /data/media/0/somefolder /storage/sdcard1/somefolder. Dadurch wird anstelle eines festen Links ein symbolischer Link erstellt, sodass er sich über Dateisysteme und Speichergeräte erstrecken kann. Das musst du als root machen, sonst funktioniert es nicht.

Wenn Berechtigungen ein Problem darstellen, müssen Sie möglicherweise das „Problem mit der externen SD-Karte“ beheben. Dieses Problem führt dazu, dass die echte externe SD-Karte in Versionen von Kitkat schreibgeschützt ist. Die Details finden Sie auf dieser Seite . Es kommt auf die Bearbeitung an /system/etc/permissions/platform.xml, damit Apps mit der WRITE_EXTERNAL_STORAGEBerechtigung auch auf den "echten" externen Speicher schreiben können. Dies kann durch die Installation dieser App oder durch die folgenden Schritte erfolgen:

  1. Starten Sie Ihren bevorzugten Dateimanager mit aktivierten Root-Zugriffsrechten. Sie können jede beliebige App verwenden, die auf Ihrem Gerät ausgeführt werden kann. Zum Beispiel die 'Root Explorer'-App oder 'Total Commander' oder 'File Manager' von CyanogenMod.

  2. Navigieren Sie zu folgender Datei:

/system/etc/permissions/platform.xml

  1. Suchen Sie die Zeilen android.permission.WRITE_EXTERNAL_STORAGE und android.permission.WRITE_MEDIA_STORAGE. Dies sind XML-Abschnitte. Sie müssen sie genau wie die folgenden Zeichenfolgen aussehen lassen:
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
<group gid="sdcard_r" />
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission>
<permission name="android.permission.WRITE_MEDIA_STORAGE" >
<group gid="sdcard_rw" />
<group gid="media_rw" />
</permission>

Speichern Sie die Datei „platform.xml“. Vor dem Neustart des Mobilgeräts müssen die Dateiberechtigungen auf 644 (rw-/r–/r–) gesetzt werden. Starten Sie nun Ihr Android-Gerät neu.

Credits gehen an poolmaker@XDA

Tut mir leid, aber ich habe Sie nicht gut verstanden, aber wenn Sie meinen, dass Sie mehr Speicherplatz im internen Speicher freigeben möchten, indem Sie Symlinks erstellen, warum versuchen Sie nicht Link2SD jetzt, es kann sogar die privaten Daten jeder App mit einer externen SD-Karte verknüpfen ohne Probleme zu verursachen, aber VERKNÜPFEN SIE KEINE SYSTEM-APPS MIT DER externen SD-Karte, da dies negative Auswirkungen auf Ihr Telefon hat. Es ist daher empfehlenswert, eine SD-Karte mit hoher Schreib- und Lesegeschwindigkeit zu haben

Link2SD betrügt Debuggerd und erlaubt keine willkürliche Verknüpfung, könnten Sie mir aus den letzten Tests, die ich damit gemacht habe, ein Beispiel zeigen, wie man /sdcard/arbitrary_folder willkürlich nach /storage/sdcard1/arbitrary_folder mit Link2SD mit Dateien in diesem Ordner verschieben kann Bleiben Sie an beiden Standorten für Apps verfügbar, die hartcodiert sind, um auf diesem unkonventionellen Weg gelesen zu werden? Wie ermöglicht mir link2sd, dass Symlinks auf dem verschmolzenen Einhängepunkt funktionieren?