====== Locus data on external SD card ======
----
===== Important! =====
Before Android 4.4.2., Locus Map was designed to work with SDcard as external storage space for all data related to the application - downloaded SQLite maps, point databases, SRTM data etc. After KitKat came on stage SD card reading/writing permissions were completely redefined:
- **random reading** of any place in a file stored on SD card was **disabled**
- **random writing** at any place in a file stored on SD card was **disabled**
Without these permissions any database is useless and that is why **it is not possible to have your tracks, points, downloading directory of online maps, online maps cache and lots of other DTB-related files on the external SD card root directory**.
For more information please see:
* [[http://www.chainfire.eu/articles/113/Is_Google_blocking_apps_writing_to_SD_cards_/|www.chainfire.eu]]
* [[http://www.gottabemobile.com/2014/02/22/samsung-galaxy-s4-note-3-android-4-4-problem-hits-micro-sd-card/|www.gottabemobile.com]]
* [[http://www.mobiflip.de/samsung-galaxy-note-3-probleme-nach-update-auf-android-4-4-2-kitkat//|www.mobiflip.de (Deutsch)]]
Locus Map installs itself in the **internal memory** of your device. During the installation a default directory structure //"/Locus/.."// is created in the internal memory too. This configuration, however, might be problematic for devices with little inner storage space. Nevertheless, there are **methods how to use all or some of your data on an external drive** and save your inner memory space:
===== Locus in internal and some data in external storage - RECOMMENDED =====
The best solution you can get is to have Locus installed in the inner storage and some of your data placed in the external SD card:
* **raster maps** - map tiles downloaded by Locus or from external sources
* **vector maps** - e.g. LoMaps or OpenAndroMaps
* **backup files** - created by the [[manual:user_guide:tools:backup|Backup manager]]
* **SRTM data** - elevation data from online or offline sources
==== Raster maps ====
All maps you are downloading by Locus from online sources or from Locus Store are stored by default in ///Locus/Maps/// directory in the inner storage of your device. This, unfortunately, can not be changed. Nevertheless, all downloaded maps can be transferred to your external SD card (with any mobile file manager, e.g. [[https://play.google.com/store/apps/details?id=com.estrongs.android.pop|ES Explorer]]) and linked to Locus via the **[[manual:user_guide:maps_external|Add external map]]** command. The same procedure can be applied to all other raster maps obtained from other sources out of Locus.
==== Vector maps ====
LoMaps or other vector maps are stored by default in ///Locus/mapsVector/// directory. You can use any directory on the external SD card for downloading and storing vector maps but you have to redefine the path to it in Locus settings:
* create a new folder for your vector maps on the external SD card, e.g. "mapsVectorExt"
* move contents (if there are any) of /Locus/mapsVector/ folder to the new folder "mapsVectorExt"
* define a new path to your vector maps in //Locus settings > Miscellaneous > Default directories > Set 'mapsVector' directory//\\ {{ :manual:faq:locus_sd_card01.png?nolink |}}
* restart Locus
**This method works on Android 5.0 and higher only. If you use Android 4.4.x, follow the same instructions as for raster maps!**
==== Backup files and elevation (SRTM) data ====
These data have their folders in the internal storage basic structure ///Locus/backup///, resp. ///Locus/data/srtm///. You can change their location to the external SD card the same way as with vector maps and redefine their directories in //Locus settings > Miscellaneous > Default directories > Set 'backup' directory (or Set 'data/srtm/' directory)//\\ {{ :manual:faq:locus_sd_card02.png?nolink |}}
**Do not name your new folder on external SD card "Locus"** - the operation system would be confused which directory is Locus default root which may result in Locus malfunction.
===== Locus and all its data on SD card =====
Every app on Android has its own special folder on the external SD card which is writable only for this app and as such can be used as the only storage space for the app. However, **we do NOT recommend it**, because:
* Locus Map performance on SD card is slower than in the inner storage
* External SD cards get easily malfunctioned and you can **lose all your maps/tracks/points data**
* All content of this folder, including your purchased maps, recorded tracks or downloaded geocaches will be automatically **deleted when you uninstall Locus**.
Anyway, if you decide to use this option, follow these steps:
* Open //Locus > Menu > Settings > Miscellaneous > Default directories > Set Root directory//\\ {{ :manual:faq:locus_sd_card03.png?nolink |}}
* Select path which ends with "menion.android.locus/files" or "menion.android.locus.pro/files"\\ {{ :manual:faq:locus_sd_card04.png?nolink |}}
* Move whole "Locus" folder to the directory defined in previous step with a File browser
* Restart Locus
===== Advanced methods =====
==== Rooted devices - warranty-void solutions ====
A few tips from Locus users how to tackle full access to external SD card on rooted devices. **None of these methods are fully tested and may not work on all devices** or, in case of inexperienced manipulation, can cause damage to your data or mobile device.
=== SDfix ===
* In case that your device is rooted you can fix it by editing the system configuration
* Install application **[[https://play.google.com/store/apps/details?id=nextapp.sdfix|SDFix]]** and perform the system changes
* Restart Locus. It can write on your external SD card as it could in Android 4.3.
=== FAT32 formatting ===
Another option for rooted devices is to format your SD card in FAT32 system in your PC. That eliminates the file system rights. If you use a SD card larger than 64 GB you need a tool like H2format for Windows to format the SD card with FAT32. Be aware that this does not support files larger than 4 GB.
=== TWRP + ExtSD Fix ===
* Install [[http://forum.xda-developers.com/android/software/fix-extsd-fix-v1-0b-2016-01-18-t3296266|ExtSD Fix 1.9 latest stable Version]] (v2.9b - 2016-06-09) by rufus.wilson
* Open "TWRP" app and go to the menu "Install" and select the "ExtSD_Fix_rw-signed-v1.9b.zip" Zip-File.
Install only with "TWRP" App over the Menu "Install“. You must open the menu „Install TWRP“ und select your device and the „Recovery Version to install“ and download it. Then download and install „twrp-3.0.2-2.klte.img“. Boot the Android Device with the TWRP Recovery-Mod. Now you have Write Access for all apps on your extSD Card image.
It works fine with Samsung Galaxy S5 SM-G900F (TouchWiz) with Stock ROM (without Provider Branding) Android 6.0.1 (Marshmallow, API 23)
[[http://forum.xda-developers.com/xposed/modules/xposed-marshmallow-sd-fix-write-t3403263/page25#post69415913|More information in this XDA forum >>]]
=== XPosed module XInternalSD ===
This app has an option to grant full access to the external SD, just like in prior to 4.4.2. [[http://repo.xposed.info/module/com.pyler.xinternalsd|Download and other instructions >>>]]
If you cannot install Xposed because it is not supported by your Android version there is another way to make your external SD read-write (root is required too!).
You have to modify 2 jar files on the /system partition. This can be done with a patch apk. For details [[https://forum.xda-developers.com/android/software/guide-allow-sdcard-write-access-switch-t3593021|read this xda-thread >>]]
=== FolderMount ===
* Install from [[https://play.google.com/store/apps/details?id=com.devasque.fmount|GooglePlay]]
* Add a folder pair. Source is the internal sdcard and destination is your extSdCard
* After adding, FM offers to move the files for you. Click yes.
* Wait until the moving operation is done, then click on the PIN. If PIN turns green, you are all set.
* The files will exist in both the source and destination after moving. This is expected and is normal. The files you see in your internal sdcard actually reside in your external sdcard now and if you "unpin" the pair, you will see that your internal sdcard is empty again.