User Tools

Site Tools



This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
manual:faq:use_sdcard_on_kitkat [2016/08/03 12:50]
mstupka [Locus Map on SD card]
manual:faq:use_sdcard_on_kitkat [2018/11/27 15:15] (current)
Line 1: Line 1:
-====== Locus Map on SD card ====== +====== Locus data on external ​SD card ======
 ---- ----
-In the beginning, 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. All worked flawlessly until **Android OS version 4.4.2. ​came on stage**. It brought redefined conditions of SD card reading/​writing permissions - Locus could **not randomly read and write in its database ​files**. And much data is stored in databases in Locus - raster maps, points, ​trackssome settings. Here we summarize conditions ​of using Locus with SD card after the change:+<WRAP center round important>​ 
 +===== 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 mapsonline maps cache and lots of other DTB-related files on the external ​SD card root directory**.
-===== Android 4.4.2. issues =====+For more information please see:
-Unfortunately Android 4.4.2 brought a new feature that prevents all installed applications from writing data **randomly** on external SD cardThat means Locus Map cannot correctly store and edit any database related files - mapspoints or tracks if their designated ​storage ​is on SD card.+  * [[http://​​articles/​113/​Is_Google_blocking_apps_writing_to_SD_cards_/​|]] 
 +  * [[http://​​2014/​02/​22/​samsung-galaxy-s4-note-3-android-4-4-problem-hits-micro-sd-card/​|]] 
 +  * [[http://​​samsung-galaxy-note-3-probleme-nach-update-auf-android-4-4-2-kitkat//​| (Deutsch)]] 
 +Locus Map installs itself in the **internal memory** of your deviceDuring the installation a default directory structure //"/Locus/.."// is created in the internal memory too. This configurationhowever, might be problematic for devices with little inner storage ​spaceNevertheless,​ 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 =====
-==== What is wrong? ==== +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: 
-  ​**disabled random reading** of any place in a file stored on SD card (solved in Android 5 and Locus 3.11. for SRTM, vector maps and backup files, see [[manual:faq:use_sdcard_on_kitkat#​changes_in_android_50|below]]) +  * **raster maps** - map tiles downloaded by Locus or from external sources 
-  ​**disabled random writing** at any place in a file stored on SD card. Without this any database is useless and that is why it is not possible to have your tracks, points, online maps being downloaded, online maps cache and lots of other DTB-related files on the SD card+  * **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
-==== Who is involved ​====+==== Raster maps ====
-  * Only devices with SD card. +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://​​store/​apps/​details?​|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.
-  ​* The issue does not occur on devices with custom ROM (until Android 6)+
-==== Solution ​====+==== 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 
 +<WRAP center round alert> 
 +**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!** 
-=== AMove Locus to the internal storage ===+==== 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 |}} 
 +<WRAP center round important>​ 
 +**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. 
-  * Install arbitrary Android file manager – for example ES File Explorer +===== Locus and all its data on SD card =====
-  * Open it and go to your external ​SD card (often marked as sdcard1) +
-  * Long tap on Locus folder and choose Copy+
-{{:​manual:​faq:​sdcard_on_kitkat_a_01_long_tap_locus_folder.png?​200}}{{  ​:manual:​faq:​sdcard_on_kitkat_a_02_copy_locus_folder.png?​200}}+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 appHowever, **we do NOT recommend it**, because:
-  * Copy whole Locus folder to the internal ​storage +  * Locus Map performance on SD card is slower than in the inner storage 
-  * Navigate ​to the internal memory ​(often marked as sdcard0and Paste Locus folder+  * 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**. 
 +  * If you upgrade from Locus Map Free to Locus Map Pro, you **can not use the same data** ​(maps/​tracks/​pointsas the two apps create their own individual directory structures.
-{{  ​:manual:​faq:​sdcard_on_kitkat_a_03_paste_locus_folder.png?​200 ​ }}+Anyway, if you decide to use this option, follow these steps:
-  * Paste Locus folder on internal storage +  * Open //Locus > Menu > Settings > Miscellaneous > Default directories > Set Root directory//​\\ ​{{ :​manual:​faq:​locus_sd_card03.png?nolink |}} 
-  * Check that process was successful and you can see all Locus data on internal storage +  * Select path which ends with "​" or "​"\\ {{ :​manual:​faq:​locus_sd_card04.png?nolink |}} 
-  * Pull out the external SDcard from phone and connect it to your notebook or desktop computer +  * Move whole "​Locus"​ folder to the directory defined in previous step with a File browser 
- +  * Restart ​Locus
-{{  :​manual:​faq:​sdcard_on_kitkat_a_04.png?200  ​}} +
- +
-  * Rename Locus folder on SDcard +
-  * Remove (or rename for safety) Locus folder on external SDcard. The goal is to have only one folder Locus that is located on internal storage +
- +
-**Your downloaded maps and other personal offline maps from other sources can be kept on SD card and defined as [[manual:​user_guide:​maps_external|External maps]] in Locus.** +
-=== B. Move Locus and maps into private folder on SDcard === +
- +
-Every app on Android has its own special folder on SDcard which is writable only for this app. So it seems like the best solution how to place map on SDcard on KitKat. But Locus (in default) does not use it because there are two main weaknesses:​ +
- +
-  * All content of this folder will be automatically deleted when you uninstall Locus. So all your maps will be deleted when you decide to uninstall Locus app +
-  * Locus free and Locus Pro can not share data because every app has separate folder +
- +
-Anyway if you decide to use it follow these steps: +
- +
-  * Open Locus > Menu > Settings >​Miscellaneous > Set Root directory +
-  * Select path which contains ​"​"​ or "​"​ +
- +
-{{  :​manual:​faq:​sdcard_on_kitkat_b_01_move_directory_to_the_private_folder.png?200  ​}} +
- +
-  * Connect SD card to the PC and move whole "​Locus"​ folder to the directory defined in previous step +
-  * Start Locus +
- +
-=== C. How to leave my maps on external SD card === +
- +
-Locus offline raster maps can be stored in external directory on SD card. Please follow steps bellow: +
- +
-  * Connect card to the PC and create arbitrary folder on the SDcard for your maps e.q. MyLocusExternMaps +
-  * Move maps from folder Locus/maps to the folder MyLocusExternMaps +
-  * Move folder Locus from SDcard to the internal memory. (Without map files) +
-  * Start Locus (choose internal folder) +
-  * Open Menu > Maps > Tap on blue "​PLUS"​ button > Add external maps > navigate to MyLocusExternMap folder and tap the "​checkmark"​ in top panel +
- +
-The result is that the Locus working directory will be placed on internal memory and all maps will be located in external folder on SDcard. This issue is also described in article: [[http://​​responses/​saving-offline-maps-on-sd-card-under-android-44-kitkat|Saving offline maps on SD-card under Android 4.4 (KitKat) >>​]] +
- +
-=== D. Rooted devices ===+
 +===== Advanced methods =====
 +==== Rooted devices - warranty-void solutions ====
 +<WRAP important round>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. </​WRAP>​
 +=== SDfix ===
   * In case that your device is rooted you can fix it by editing the system configuration   * In case that your device is rooted you can fix it by editing the system configuration
-  * Install application SDFix and perform the system changes +  * Install application ​**[[https://​​store/​apps/​details?​id=nextapp.sdfix|SDFix]]** and perform the system changes 
-  * After that simply start Locus+  * 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. 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.
-<WRAP center round alert> +=== TWRP + ExtSD Fix ===
-Beginning with Android 6 not even rooted devices can acquire the full access to SD card. +
 +  * Install [[http://​​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 "​"​ 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.
-For more information please see:+It works fine with Samsung Galaxy S5 SM-G900F (TouchWiz) with Stock ROM (without Provider Branding) Android 6.0.1 (Marshmallow,​ API 23)
-  * [[|http://​​responses/​kit-kat-442-issue]] +[[​xposed-marshmallow-sd-fix-write-t3403263/page25#​post69415913|More information in this XDA forum >>]]
-  * [[http://​​articles/​113/​Is_Google_blocking_apps_writing_to_SD_cards_/|http://​​articles/​113/​Is_Google_blocking_apps_writing_to_SD_cards_/​]]+
-==== Why Locus developers didn't fix it? ====+=== XPosed module XInternalSD ​===
-Every application can create its own package-specific directories on SD card and use it for writing own dataUnfortunately there are more reasons why this solution is not suitable for Locus Map.+This app has an option to grant full access to the external ​SD, just like in prior to 4.4.2. [[http://​​module/​com.pyler.xinternalsd|Download and other instructions >>>​]]
-  * Locus is developed in several versions where every version ​has special package name (it has to be), which means every version will have its own unique directory. +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!).
-  * These directories are automatically removed after you uninstall Locus app. This is not convenient in case that you can have GBytes of map files+
-==== General information about the issue ====+You have to modify 2 jar files on the /system partition. This can be done with a patch apk. For details [[https://​​android/​software/​guide-allow-sdcard-write-access-switch-t3593021|read this xda-thread >>​]] 
 +=== FolderMount ​=== 
 +  * Install from [[https://​​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.
-  * [[http://​​2014/​02/​22/​samsung-galaxy-s4-note-3-android-4-4-problem-hits-micro-sd-card/​|English]] +---- 
-  * [[http://​​samsung-galaxy-note-3-probleme-nach-update-auf-android-4-4-2-kitkat//​|Deutsch]] +Is this article useful for you? Please rate it: 
- +{(rater>id=1|name=faq_use_sdcard_on_kitkat|type=rate|headline=off)}
-===== Changes in Android 5.0 ===== +
- +
-Android 5.0 partially loosens strict permissions of applications writing on SD cards. After a week of extensive work we managed to enable storing **vector maps, SRTM data and backups on SD card**. All other Locus folders must remain in the internal memory, ​it is not possible to run them on SD card without issues. +
- +
-<wrap info>​**Works since Locus Map 3.11.0**</​wrap>​ +
- +
-If you have a device with SD card and want to save some storage space, follow these instructions+
- +
-  * go to <wrap box>Menu > Settings > Miscellaneous > Default directories</​wrap>​ +
-  * set new location of Locus/​mapsVector,​ Locus/​backup and Locus/​data/​srtm directories on SD card +
-  * move contents of the folders to the new location and delete original folders +
-  * restart Locus Map +
- +
-<WRAP center round important>​If you had set these directories earlier in 3.10.x versions or older, it is necessary to perform the setting once again as the new Locus Map needs a new permission to write on SD card from the operation system. **Otherwise the SD directories will not be activated!** ​ </​WRAP>​ +
-===== Changes in Android 6 ===== +
-Beginning with Android 6 **not even rooted devices can acquire the full access to SD card.** ​+
manual/faq/use_sdcard_on_kitkat.1470221438.txt.gz · Last modified: 2016/08/03 12:50 by mstupka