Android Grundlagen – Adoptable Storage und der Mixed Mode!

Eine zentrale Funktionalität, die Google seit Android 6 „Marshmallow“ in sein System integriert hat, besteht darin, dass sich eine SD-Karte auch als interner Speicher – dem sogenannten Adoptable Storage – formatieren lässt. Damit gehören Probleme mit einem zu kleinen internen Speicher mehr oder minder der Vergangenheit an. Doch es gibt auch einen dritten Weg, den Mixed Mode, der jedoch durch Google nicht dokumentiert wurde. Ob dies bewusst, oder unbewusst geschah sein an dieser Stelle einmal dahin gestellt. Apps auf die microSD-Karte auszulagern, war in den Anfängen unter Android 2.x ganz normal. Denn die meisten Geräte besaßen 8 oder 16 GByte internen Speicher, sodass früher oder später die microSD-Karte dran glauben musste.

Mit KitKat wollte Google das Rad neu erfinden und verbot das Auslagern von App-Daten auf die externe Speicherkarte komplett, was für viele Nutzer eine Katastrophe war. Android 5 Lollipop machte diese Änderung zwar in Teilen wieder rückgängig, eine echte Lösung für das Problem des zu geringen internen Speicher bot man jedoch ebenfalls nicht.

Mit Marshmallow und Nougat wollte/will man es scheinbar alles besser machen und erlaubt nun – zumindest in der Version von Google – die Nutzung einer microSD-Karte als internen Speicher. Besitzt Euer Smartphone zum Beispiel 16 GByte internen Speicher und du legst eine 32 GByte Karte ein, dann kannst Du deine Apps auf 48 GByte Speicher installieren, Videos aufnehmen und vieles mehr, indem Du die externe Speicherkarte, als internen, adaptiven, Speicher formatieren lässt.

Na dann haben wir doch keine Probleme, oder?

Doch! Diese fangen nämlich genau dabei an, dass der interne Speicher seit den neuen Android Versionen verschlüsselt ist und vom Android-System so auch als interner Speicher behandelt wird. Das bedeutet im klar Text, dass beim Anschließen des Smartphones an einen Computer nur die gewohnten Verzeichnisse des internen Speichers zu sehen sind. Zudem ist es nicht möglich, eine als intern formatierte Karte einfach so an einem anderen Rechner oder auf einem anderen Smartphone zu lesen.

Dies liegt daran, dass Android erstens für die intern formatierte Karte das Ext4-Dateisystem nutzt, womit Windows und Mac OS X von Hause aus nicht zurechtkommen, und zweitens ist das Dateisystem verschlüsselt. Zwar lässt sich der Schlüssel auslesen, aber diesen Aufwand betreibt niemand wirklich ernsthaft, nur um mal schnell Daten von der Karte zu lesen.

Ein weiteres Problem besteht darin, dass die microSD-Karte, wie bereits erwähnt, für die Nutzung als interner Speicher (adptable Storage) formatiert werden muss. Dabei gehen – wer hätte es anders gedacht – sämtliche Daten auf der Karte verloren. Samsung und LG haben sich deshalb gar dazu entschlossen, das Feature auf ihren Marshmallow-Geräten per Update zu sperren und damit nicht anzubieten. Selbstverständlich lässt sich der adaptierbare Speicher dennoch auf den genannten Geräten aktivieren. Wenn Du ein Power User bist, und auf deinem LG G4 oder Samsung Galaxy S7 neben den internen 32 GByte Speicher noch weitere 32/64/128 GByte Speicher erhalten möchtest, dann musst du Dich lediglich per adb shell auf dem Smartphone einloggen und hier folgende drei Befehle ausführen:

sm set-force-adoptable true
sm list-disks
sm partition disk:123_45 private

Den Eintrag für 123_45 oder 123,45 musst dabei durch die Ausgabe des Befehls sm list-disk ersetzt werden. Danach ist die microSD-Karte „adaptiert“. Last but not least sei erwähnt, dass das Beschriebene nicht ausschließlich für microSD-Karten gilt, sondern auch für einen beliebigen Speicher, den man via USB ans Android-Gerät anschließt greift. Du kannst also auch eine 500-GByte-Festplatte auf diese Weise als internen Speicher formatieren – ich würde jedoch davon abraten.

Der undokumentierte Mixed Mode!

Die oben präsentierte Möglichkeit ist wunderbar für alle, die die microSD-Karte entweder nur als externe Karte – wie bisher – verwenden wollen, oder aber diese nur als internen Speicher einsetzen möchten. Was aber, wenn jemand gerne seinen internen Speicher erweitern, und dennoch die Möglichkeit nutzen will, einen Teil des microSD Karte mobil zu verwenden? Hier kommt der, relativ unbekannte und wenig dokumentierte, Mixed Mode ins Spiel. Mit seiner Hilfe lässt sich ein Teil der microSD-Karte als interner Speicher im Ext4-Format formatieren, während Ihr den Rest als mobilen Speicher im uralten VFAT-Format nutzen könnt. Dafür müsst Ihr allerding adb-Kenntnisse mitbringen, und Euch via ADB auf eurem Androiden einloggen.

Screenshot_20170429-101617

Auch hier gehen sämtliche Daten auf der microSD-Karte erst einmal verloren, da diese neu formatiert wird! Root-Rechte sind dazu nicht notwendig, lediglich die Entwickleroptionen und USB-Debugging musst dazu aktiviert sein. Alles klar? Dann kann es losgehen. Wenn Ihr ein Smartphone mit Android 6 „Marshmallow“ und einem microSD-Slot besitzt, richtet ihr den Mixed Mode folgendermaßen ein:

  1. Zunächst musst man das Feature einschalten, so denn es vom Gerätehersteller deaktiviert wurde (siehe meine Anmerkung oben bzgl. LG und Samsung). Schalten wir also den Adoptable-Storage-Modus ein. Dazu loggst man sich über die adb shell auf dem Smartphone ein und führt den folgenden Befehl aus:
    sm set-force-adoptable true
  2. Jetzt musst die ausgegebene Disk-ID der microSD-Karte ausgelesen werden, was über den Befehl sm list-disks geht, und zum Beispiel das folgende Ergebnis liefert:
    htc_pmeuhl:/ $ sm list-disks 
    disk:179_32
  3. Die gesuchte Angabe lautet in diesem Fall also disk:179_32. Jetzt erfolgt die eigentliche Partitionierung der externen SD-Karte über den Befehl:
    sm partition disk:179_32 mixed 50

Das war’s auch schon. Der interne Speicher verlang anschließend noch von Android formatiert zu werden. Die Zahl 50 hinter „mixed“ gibt an, welcher Prozentsatz als externer Speicher formatiert werden soll, und wird. Bei einer 64-GByte-Karte sind somit 32 GByte adoptiert/intern, und 32 GByte extern. Möchtet Ihr lediglich ca. 20 GByte als interne Erweiterung nutzen, so lautet der Befehl

sm partition disk:179_32 mixed 70

Auch das Formatieren  als interner/adoptierter/privater Speicher oder als externer/portabler Speicher ist über die Kommandozeile möglich. Um die möglichen Kommandos ausgeben zu lassen einfach den Befehl sm ohne weiteren Parameter in der Shell eingeben:

shell@jfltexx:/ $ sm 
usage: sm list-disks [adoptable]
 sm list-volumes [public|private|emulated|all]
 sm has-adoptable
 sm get-primary-storage-uuid
 sm set-force-adoptable [true|false]
sm partition DISK [public|private|mixed] [ratio]
 sm mount VOLUME
 sm unmount VOLUME
 sm format VOLUME
 sm benchmark VOLUME
sm forget [UUID|all]
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

w

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at WordPress.com

Nach oben ↑

%d Bloggern gefällt das: