Warum löscht das Löschen von „Daten“ bei der Wiederherstellung nicht meine Medien auf der internen SD-Karte?

Mein Telefon unterstützt keine austauschbare SD-Karte.

  • Wenn ich die Titanium Backup -App auf meinem gerooteten Oneplus One (CM12) öffne, sehe ich (unten) in der Übersicht einige Spezifikationen, einschließlich System-ROM- Nutzung und Internal+Media , die sagen 58.9GB (10.7 GB free).

  • Im ES File Explorer sehe ich ähnlichen freien Speicherplatz.

  • In DiskInfo sehe ich unter Data :

    • Used: 45.8 GB,
    • Free: 10 GB,
    • Mount point: /data,
    • Filesystem: ext4,
    • Partition name: userdata,
    • Partition nickname: Data, unter anderem
  • Diskusage ging weiter und zeigte unter Storage card :

    • Media: 42966 MiB
    • Apps: 3001 MiB
    • Free space: 10262 MiB
  • Einstellungen -> Speicher sagt, dass der Gesamtspeicherplatz ist 54.92GBund Verfügbar ist 10.02GB.

Alle oben genannten Informationen lassen mich zu dem Schluss kommen, dass meine Apps und App-Daten sowie andere persönliche Dateien alle in einer einzigen Partition namens Data at gespeichert sind /data.

Aber mountsagt das:

/dev/block/platform/msm_sdcc.1/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,errors=panic,data=ordered 0 0

/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,noatime,nodiratime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

Ich habe diesen emulatedBegriff auch unter gesehen /storageund er scheint verwandt zu sein.

Frage : Ich habe alle genannten Informationen erwähnt, weil ich nicht verstehe, /datawarum Recovery meine Medien (persönlichen Dateien) nicht standardmäßig löscht, wenn ich sie nicht standardmäßig lösche, es sei denn, ich entscheide mich ausdrücklich dafür /data/media. Im Falle eines Fastboots kann ich alle Apps und Medien mit löschen fastboot erase userdata, aber warum behandelt Recovery und Android es unterschiedlich?

Mehr noch, wie löscht Recovery es dann überhaupt?

Auch, was /dev/fusein mountder Ausgabe war und wenn sie alle eine einzelne Partition sind, warum kann ich dann nicht über das hinausgehen, was als Home-Verzeichnis oder interne SD-Karte oder angezeigt wird 0.

Antworten (2)

Nun, dieses SD-Karten-Ding ist für das OPO ziemlich schwierig. Für mich scheint es, als hätte das Gerät überhaupt keine SD-Karte (nicht einmal eine interne). Was bedeuten würde, dass der freie Speicherplatz, den Sie sehen, tatsächlich eine emulierte interne SD-Karte ist, die aus dem Flash-Speicher Ihres Geräts stammt.

Zur Emulation einer SD-Karte wird ein FUSE-Daemon verwendet, bei dem auch Ihr /dev/fuse-Gerät ins Spiel kommt. Dies ist wahrscheinlich die Rohdarstellung Ihres Flash-Speichers, der über Ihren Kernel zugänglich gemacht wurde. Die wird dann nach /mnt/shell/emulated gemountet.

Zusätzliche Informationen zu FUSE: http://en.wikipedia.org/wiki/Filesystem_in_Userspace#Virtual_file_system .

Um meine Annahmen über den emulierten internen Speicher zu untermauern, siehe die Speicherkonfigurationsdatei für das OPO: https://github.com/evolve-bacon/android_device_oneplus_bacon/blob/lollipop-5.1/overlay/frameworks/base/core/res/res/ xml/storage_list.xml

Nun zu Ihrer Frage, warum Ihr /data/media-Verzeichnis beim Zurücksetzen auf die Werkseinstellungen nicht gelöscht wird:

Dies ist nur eine nette Funktion, wenn keine physische externe SD-Karte (oder sogar interne) vorhanden ist. Damit Sie Ihre wichtigen Benutzerdaten wie Downloads von Bildern etc. nicht mit einem Datenlöschen verlieren.

Cyanogenmod hat hier eine externe SD-Karte auf Ihrer emulierten internen SD-Karte deklariert, die sich in /data/media befindet.

Zum vollständigen Verständnis siehe: https://github.com/TheOldUnas/Bacon-Lollipop-Boot/blob/master/boot/ramdisk/init.bacon.rc

Insbesondere die Deklaration von: export EXTERNAL_STORAGE /storage/emulated/legacyund der FUSE-Daemon für /data/media:service sdcard /system/bin/sdcard -u 1023 -g 1023 -l /data/media /mnt/shell/emulated

Vergleichen Sie zum endgültigen Verständnis auf Ihrem Gerät die Ausgabe zwischen ls -l /data/media/0und ls -l /storage/emulated/legacyund finally ls -l /sdcard. Es ist egal, ob es sich um Ihre aus der Emulation stammende, emulierte externe SD-Karte handelt :D

Für Ihren Vergleich zwischen Fastboot-Löschung und Datenlöschung durch Android / Wiederherstellung. Fastboot ist Teil des Bootloaders und weiß nichts von diesem ganzen Emulations-Chaos, sodass Daten vollständig gelöscht werden.

Dies bedeutet, dass die App-Daten und die Medien alle zu einer benannten Partition gehören, userdataund vielleicht löscht Fastboot Erase deshalb alle diese Daten. Ist es nicht?
ja du hast es genau richtig.
ist Ihnen bei Ihren Fragen etwas unklar? Wenn ja, fragen Sie bitte, damit ich es klären kann. Wenn nicht, akzeptieren Sie bitte diese Antwort, da ich mich sehr bemüht habe, alles so detailliert wie möglich zu erklären.
+1 für die Abdeckung aller Punkte und ich werde es nach einer Klärung akzeptieren. Wie löscht eine benutzerdefinierte Wiederherstellung Daten , wenn ich auf „Daten löschen“ tippe, und wie endet die Wiederherstellung nicht mit dem Löschen von „/data/media“, sofern nicht ausdrücklich angegeben?
dies hängt stark von der Umsetzung der Wiederherstellung ab. Einige wirklich einfache Wiederherstellungen verarbeiten keine Emulation (wahrscheinlich haben sie keinen Fuse-Daemon eingebaut), sodass sie einfach die gesamte Partition vollständig löschen. Einige erkennen die EXTERNAL_STORAGE-Deklaration und haben für solche Fälle eine andere Löschimplementierung.
immer noch etwas nicht klar?

Antwort auf Ihre Frage "Mehr noch, wie löscht Recovery es dann überhaupt?" /data/media ist nur ein Link. Das Löschen von /data dient dazu, wenn Sie ein neues ROM usw. installieren, und wenn Sie auch /data/media löschen würden, gibt es möglicherweise Rom-Installations-Zip-s, also liegt es entweder am Link oder an der Sicherheit

Wie lösche ich einen Ordner? Ich weiß nur, wie man das Gerät löscht
Gehen Sie zu einem Ordner und löschen Sie ihn