Sailfish OS – Speicherpfade auf SD Karte Mappen

Ab SFOS 4.2 nicht mehr nötig, da Apps Daten auf der Speicherkarte oder dem Internen Speicher ablegen können

Die meisten Sailfish OS kompatiblen Smartphone Modelle bieten eine Speicherkapazität von 32 GB, einige Modelle auch 64 GB. Daher ist es etwas schwer nachzuvollziehen, warum Jolla den Systemspeicher ab Werk nur mit 2,8 GB bemisst, zumal für ein Systemupdate mindestens 650 MB des Systemspeichers verfügbar sein müssen. Umso erfreulicher ist es, dass die Sailfish OS Systempatition vergrößert werden kann. Dies geht allerdings zu Lasten des Userdatenspeichers, der voreingestellt bei 32 GB Gesamtspeicher ca. 19 GB umfasst. Für Userdaten empfiehlt sich daher eine SD-Speicherkarte, zumal hier die Daten vom fest verbauten Hauptspeicher des Gerätes separiert sind. Im Falle eines Telefondefektes können Userdaten somit ohne großen Aufwand exportiert werden.

Sailfish OS selbst hat noch keine Möglichkeit ohne Terminalkonfiguration sämtliche Userdaten auf die SD-Karte auszulagern. Der Linux Systemkern sowie die grundlegenden Dateisystemfunktionen ermöglichen eine Auslagerung auf eine SD-Karte recht einfach, in dem die Speicherpfade der Userdaten auf dem Telefonspeicher einfach auf die SD-Karte verlinkt/gemappt werden. Um mehrfaches Einlesen diverser Apps wie z.B. der Gallery App zu vermeiden, gibt es 2 Möglichkeiten:

  1. Anlegen eines (versteckten) Hauptordners, in dem dann die Mappingordner erstellt werden
  2. Anlegen jedes Mappingordners als versteckten Ordner

Um den Hauptordner von der Indexierung auszuschließen, gibt es ebenfalls zwei Möglichkeiten:

  1. Anlegen eines versteckten Hauptordners mit einem vorangestellten Punkt (Hauptordner)
  2. Anlegen einer versteckten Datei (.nomedia) im Hauptordner.

Die beste Methode in Bezug auf die grafische Dateiverwaltung ist das Anlegen eines normalen Hauptordners mit einer versteckten „Anti-Index-Datei“. Alle Ordner sind damit sichtbar. Der Hauptordner mit den Mappingordnern wird durch eine nicht versteckte Datei (.nomedia) von der Indexierung, auf die z.B. die Gallery App zurückgreift, ausgeschlossen. Somit werden nur die verlinkten Ordner mit ihrem jeweiligen Linkziel auf den Mappingordner indexiert, jedoch nicht der Mappingordner selbst, da dieser sich in dem von der Indexierung ausgeschlossenen Hauptordner auf der SD-Karte befindet. Alternativ kann auch die gesamte SD-Karte von der Indexierung ausgeschlossen, wenn alle User Ordner gemappt wurden.

Mit folgendem Script können die Speicherpfade auf die SD-Karte verschoben, die doppelte Indexierung deaktiviert und nach Abschluss eine Neuindexeierung vollzogen werden:

 

Android Speicher auf SD-Karte auslagern (AOSP 4.4 / Sony Xperia Series)

Der Speicherpfad des Android Systems und der installierten Apps befindet sich unter /opt/alien/, der Appspeicherpfand unter /home/nemo/android_storage. System-, sowie Appspeicher lassen sich auf die SD-Karte verschieben und in dem entsprechenden Quellpfad verlinken. Für den Systemordner wird dies aber nicht empfohlen, da Symlinks vom Linux Kernel / Dateisystem anders behandelt werden als ein nativer Pfad und es somit zu Problemen kommen kann. Ein remount vom Ziel ins Quellverzeichnis (mount –bind) ist möglich, muss aber beim Systemstart initiiert werden, was wiederum Einträge in der /etc/fstab benötigt. Die /etc/fstab wiederum wird allerdings bei einem Update von Sailfish OS überschrieben. Das kann per Script gelöst werden, das wiederum usw. – es wird immer komplizierter, ergo sollte der Androidsystempfad besser nicht geändert werden. In der Regel reicht der verfügbare Speicher für die Installation des Androidsystems und der Apps vollkommen aus.

Beim Appspeicher hingegen wird der verfügbare Speicherplatz auf der Sailfisch OS Systempartition jedoch recht schnell knapp. Auch wird der Benutzerordner /home/nemo bei Systemupdates nicht verändert. Somit sind Änderungen unter /home/nemo von Updates nicht betroffen.

Android Apps akzeptieren nicht immer Symlinks und aus diesem Grund reicht ein einfaches Verschieben und Verlinken von /home/nemo/android_storage auf die SD-Karte nicht aus. In der Datei /opt/alien/system/script/platform_envsetup.sh werden grundlegende Parameter, u.a. auch Speicherpfade der Androidumgebung, konfiguriert.

Im Folgenden wird der Appspeicher der Androidemulation von Sailfish OS auf die SD-Karte kopiert, im Quellpfad verlinkt und in der Androidkonfiguration geändert.

Jollaphone (AOSP 4.1.2)

Der AppSpeicherpfad des Adroid Systems der AOSP 4.1.2 Version befindet sich unter /opt/alien/run/media/nemo statt wie bei AOSP 4.4 unter /home/nemo/android_storage.


CC_BY_NC_SAby Speefak | together.jolla.com | together.jolla.com | together.jolla.com | together.jolla.com

2 thoughts on “Sailfish OS – Speicherpfade auf SD Karte Mappen

    1. In the current Sailfish OS versions, it is possible to specify, on a per-app basis, where files are stored. There have also been changes in SFOS itself, so that if the memory card is not mounted, data is stored on the phone’s internal storage, and once the card is active, data is automatically stored on the card. Currently, I unfortunately do not have the time to continue working on this, especially since it is no longer as relevant as it was for the SFOS version for which the tutorial was created.

      In principle, only the file paths are changed and linked in the priority, except for Android.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top