How can I use my external SD card for offline maps on KitKat or later?

One of the new “features” of Android 4.4 (KitKat) is that applications can no longer use the external SD card as a generic storage volume and read/write everywhere. There are valid security reasons for the change, but the way Google has done this breaks many apps and doesn’t provide a clear way to do things right for application developers.

In the case of MyTrails, it means that if you want to store your offline maps on your external SD card, you’ll have to jump through a few hoops:

  • If your device is rooted, you can use a free app like SDFix to revert to a fully-writable SD card
  • If your device is not rooted, there is only one folder that MyTrails can write to on the external SD card: /storage/sdcard1/Android/data/com.frogsparks.mytrails (this path may be slightly different if you’re using the preview version of MyTrails, or your device mounts the SD card to a different location within /storage; some devices use /storage/extSdCard/)

Please note the following caveats (if your device is not rooted):

  • you can not share the same offline maps between the official and preview versions of MyTrails
  • if you uninstall MyTrails, your offline maps will be deleted (this is by design, part of the reason Google make this change in KitKat), unless you use a privileged file manager (one that comes as part of your device’s default software) to move them beforehand

Liked this post? Follow this blog to get more.