idea to move resources to sd

Tim Engwer
Tim Engwer Member Posts: 457 ✭✭
edited November 2024 in English Forum

I am hoping someone out there knows something about symbolic linking.  I know very little but have an idea.  Couldn't a symbolic link be created that links the resources folder on the internal sdcard to the external sdcard?  theoretically, when the program goes to access the file in internal memory it will be directed to the external sd card instead.  Has anyone tried this and did it work?  Theoretically it could possibly work but I'm not sure exactly how to do it.  Any ideas? 

I have an sd card that is formatted for FAT32.  I installed a terminal application on my tablet so I could issue commands.  I tried the following command: 

 ln -sf  /mnt/extsd/android/data/com.logos.androidlogos /mnt/sdcard/android/data/com.logos.androidlogos

This issued an error saying "link failed no such file or directory".

 

Tagged:

Comments

  • Dave Hooton
    Dave Hooton MVP Posts: 35,868

    You need  super user (root) privilege for this. I also understand that you have to transfer everything to \mnt\extsd and then delete the original folder at /mnt/sdcard (but I'm not a Linux expert).

    Dave
    ===

    Windows 11 & Android 13

  • Simon Smailus
    Simon Smailus Member Posts: 67


    I've just switchd from being a long time iOS user to a Galaxy Note 2. I wanted all my resoources on my external SD card and here's how I achieved it.:

    1. Root your phone, there are plenty of links on how to do this. This will essentially add a superuser to your phone to allow you to access commands that Google want all to themselves. There is no problem with rooting, just make sure you get instructions specific to your device. It is also possible to unroot should you need to do so.

    2. Install DirectoryBind (http://forum.xda-developers.com/showthread.php?t=1410262). This app allows you to bind a directory on your internal memory with one on your external sd card.

    3. Before activating Directorybind, download all the resources you want on your device as you normally would. Once this is complete you need to find where Logos stores its resources (storage/sdcard0/android/data/com.logos.androidlogos/install/resources). You then need to create a folder on your external sd that reflects this. So mine is: storage/extSdCard/Directorybind/android/data/com.logos.androidlogos/install/resources. Let me explain my structure. Everything that is operating via DirectoryBind goes into a folder called direcgorybind on my external SD so I know where everything is. I maintain the folder structure from the original location as this seems to give me no problems although theoretically you could create a folder with any name on your external SD card. once this is complete move to the next step.

    4. Open directorybind. Click on Menu > Add new entry.

    5. Check the "Transfer files from target to data". This will copy all the data from your internal memory to your external SD card.

    6. Do a long click on the first text area box "Enter source (data) path". Please remember that the source data will be the directory on your external SD card. When you do a long click it will bring up a list view of your device directory. Navigate to the folder on your external SD card where you want the data to be copied. If you are confused and do not know where this is then keep clicking "Up" until the directory at the top is "/", then scroll down and click on "storage" and it should list your internal drive (something like sdcard or sdcard0) and your external SD card (something like extSdCard). Once you are in the desired directory click "Select" and this path will be entered into the text are field. I only ever copy the resource folder from any app. This means the rest is left intact on the internal memory. This is simply because it's the resources that take up so much space. I'm not sure what would happen if you moved the entire app folder, but you would most likely get some problem along the way, especially with apps that contain widgets.

    7. Do a long click on the next text area "Enter mount (target) path" and repeat the process you just did except that this time select the path on your internal memory where the data is currently stored. Again, click "Select" and this path should automatically appear in the text area field.

    8. Ensure "Transfer files from target to data." is selected. This will ensure that data is copied to the external SD card.

    9. Click "Add" and it should start copying the data across and once complete take you to the main directorybind window and show you the source and target directories.

    10. Click "Menu >More>Backup database" so these settings are backed up.

    11. To activate the bind make sure the check button on the right is ticked and ALSO that you tap the disk icon on the left. If both directories are correct the disk icon should highlght green. This means all is well. If the icon is red there is a problem with on of your paths to your directories.

    12. Click "Menu>Preferences" and check "Bind on boot". Some folks find they get errors on reboot if they do not also check "Alternate dbase mgmt", so you can check this if you are having issues after a reboot.

    13. That's it, it should all work. You can of course do this with any data directory. I also use this for OliveTree and my Kindle. It means that I have 8GB spare on my internal memory even though all 500 resources from logos are on my external sd.

     

    This does not impair the speed of access, although that is dependent on the kind of SD care you are using. Ge the fastest possible.

  • Dave Hooton
    Dave Hooton MVP Posts: 35,868

    It is also possible to unroot should you need to do so.

    Have you done this?

    Dave
    ===

    Windows 11 & Android 13

  • Andrew Sedlacek
    Andrew Sedlacek Member Posts: 5

    Hi all,

    I recently had issues where resource updates and downloading resources
    was always failing. Then I noticed I had no room on the internal SD
    storage. Out of 1.6gb total, Logos used around 1.3gb with only about 20
    books downloaded.

    Is there a reason it has to be so difficult to move resources to the external SD card? On my phone the camera has an option to store the pictures on the external SD card. Sure enough when I look on the card all my pictures are there. 

    Why can't the Logos app have a similar option? Is this a android
    limitation?  It seems all my research leads to having to root the phone
    and use third party software or some other non obvious method. While my phone is rooted I'm not sure how some of these methods would affect other apps of future updates.

    Is there a config file I can tweak or a hidden switch somewhere specific to the Logos app? It just seems apps that have large amounts of data files should be able to allow users the option of selecting the storage location.

    Thanks,

    Andy

     

  • Randy Lane
    Randy Lane Member Posts: 490

    On my Samsung Galaxy Note 1, running Android 4.0 (ICS), all that's needed is to:

     

    Run the Settings app

    Scroll to Applications

    Scroll to Bible

    At the bottom of the Storage subset is a button to Move to SD

  • Randy Lane
    Randy Lane Member Posts: 490


    On my Samsung Galaxy Note 1, running Android 4.0 (ICS), all that's needed is to:

     

    Run the Settings app

    Scroll to Applications

    Scroll to Bible

    At the bottom of the Storage subset is a button to Move to SD


    And it shows I have 1.53 GB stored on the SD card, with the Applications still using the phone memory for the program files.

  • Tim Engwer
    Tim Engwer Member Posts: 457 ✭✭


    Hi all,

    I recently had issues where resource updates and downloading resources was always failing. Then I noticed I had no room on the internal SD storage. Out of 1.6gb total, Logos used around 1.3gb with only about 20 books downloaded.

    Is there a reason it has to be so difficult to move resources to the external SD card? On my phone the camera has an option to store the pictures on the external SD card. Sure enough when I look on the card all my pictures are there. 

    Why can't the Logos app have a similar option? Is this a android limitation?  It seems all my research leads to having to root the phone and use third party software or some other non obvious method. While my phone is rooted I'm not sure how some of these methods would affect other apps of future updates.

    Is there a config file I can tweak or a hidden switch somewhere specific to the Logos app? It just seems apps that have large amounts of data files should be able to allow users the option of selecting the storage location.

    Thanks,

    Andy

     


    There is a misunderstanding of how the "move to SD" button works.  There are 2 kinds of memory in your phone/tablet.  There is system memory and SD card memory.  Neither one of these has anything to do with your "external" SD card that you pop in yourself.  When you click on "move to SD" you are simply moving your files from the system memory to the SD memory inside the phone/tablet.  The files are therefore not being moved to your external card but simply to the internal card.  There are bible programs that allow you to speciffically specify where you want the data files and they allow you to move them to the external card (I use the two I am referring to and they work like a charm - all my files are on the external card).  Unfortunately Logos has not yet built that option into their program.

  • Andrew Sedlacek
    Andrew Sedlacek Member Posts: 5

    That's exactly the problem Tim.

    Logos app knew to put resources on the "internal SD memory" on it's own. Pressing "Move to SD" just moves a small amount of core files from "application memory" to the internal SD.  Like I said there are work arounds but they affect the entire device. I was hoping for a application specific solution.

    My device is using Gingerbread 2.3.6. Do the newer androids manage memory differently or is it a application implementation issue?

    Meanwhile I will only download a few resources to the device.

    Thanks,

  • Tim Engwer
    Tim Engwer Member Posts: 457 ✭✭

    From what I understand Google is making it more difficult to use the external card for applications perhaps to discourage people from installing apps that they have not paid for.  I have Ice Cream Sandwich 4.0.4 and it does not allow you to move apps or their data to the external SD card.  The only way to do this is to use, as in another post here, the program DirectoryBind but you need a rooted device to do this.  Fortunately I have a Zeki Tablet wich comes already rooted and it was only about $100.  I recommend it to anyone.  It has worked quite well and I was able to easily move my Logos data to my external card using this program.  I just wish that Logos would create way of doing this in the Logos app itself.  As I said, I know this is possible beacause I use 2 other bible apps that have this ability built in even without rooting.

  • Dave Hooton
    Dave Hooton MVP Posts: 35,868

    It would be good to have Logos respond to this much debated topic.

    Dave
    ===

    Windows 11 & Android 13

  • Randy Lane
    Randy Lane Member Posts: 490


    There is a misunderstanding of how the "move to SD" button works.  There are 2 kinds of memory in your phone/tablet.  There is system memory and SD card memory.  Neither one of these has anything to do with your "external" SD card that you pop in yourself.  When you click on "move to SD" you are simply moving your files from the system memory to the SD memory inside the phone/tablet.  The files are therefore not being moved to your external card but simply to the internal card.  There are bible programs that allow you to speciffically specify where you want the data files and they allow you to move them to the external card (I use the two I am referring to and they work like a charm - all my files are on the external card).  Unfortunately Logos has not yet built that option into their program.


    I have a Galaxy Note with Android 4.0 Ice Cream Sandwich OS.

    The "internal" built-in storage is referred to as USB storage (16GB total).

    The removable storage, microSD, is referred to as SD Card storage. I have a 64GB card installed.

    I believe the way it works is the system creates a folder on the built-in USB storage that is used as a junction-pointer to the root of the SD storage (hereafter called "External-SD") And it is not visible to the user unless logged in as "root". Only certain designated applicaitons, like the camera, are allowed to write directly to a fodler on the external card that is visible to the user. When you use the Android "Move to SD" button, Android moves the data files for the application (found in a dedicated application folder in the Android/Data folder of the USB storage) to a new folder in the External-SD folder. The folder in Android/Data is then changed to be a junction pointing to the newly created folder in the External-SD folder. This keeps thinkgs simple, since the Logos application still writes to/reads from teh same location; the redirection is handled entirely by the Android OS.

    I have not hacked my phone to test these theories though.

  • Tim Engwer
    Tim Engwer Member Posts: 457 ✭✭


    There is a misunderstanding of how the "move to SD" button works.  There are 2 kinds of memory in your phone/tablet.  There is system memory and SD card memory.  Neither one of these has anything to do with your "external" SD card that you pop in yourself.  When you click on "move to SD" you are simply moving your files from the system memory to the SD memory inside the phone/tablet.  The files are therefore not being moved to your external card but simply to the internal card.  There are bible programs that allow you to speciffically specify where you want the data files and they allow you to move them to the external card (I use the two I am referring to and they work like a charm - all my files are on the external card).  Unfortunately Logos has not yet built that option into their program.

     

    I have a Galaxy Note with Android 4.0 Ice Cream Sandwich OS.

    The "internal" built-in storage is referred to as USB storage (16GB total).

    The removable storage, microSD, is referred to as SD Card storage. I have a 64GB card installed.

    I believe the way it works is the system creates a folder on the built-in USB storage that is used as a junction-pointer to the root of the SD storage (hereafter called "External-SD") And it is not visible to the user unless logged in as "root". Only certain designated applicaitons, like the camera, are allowed to write directly to a fodler on the external card that is visible to the user. When you use the Android "Move to SD" button, Android moves the data files for the application (found in a dedicated application folder in the Android/Data folder of the USB storage) to a new folder in the External-SD folder. The folder in Android/Data is then changed to be a junction pointing to the newly created folder in the External-SD folder. This keeps thinkgs simple, since the Logos application still writes to/reads from teh same location; the redirection is handled entirely by the Android OS.

    I have not hacked my phone to test these theories though.


     

    On my Zeki tablet the internal portion of the memory for storage is called "SDCard".  As a result, any programs that attempt to write to the external SD card are rerouted to the internal "SDCard" unless you use a program like directory bind to trick the system into writing the files to the external card.  As I said I think Google is trying to discourage the use of the external card for anything other than just simple storage of media files.

  • Dale McFarlane
    Dale McFarlane Member Posts: 18

    Thanks for that - it worked for me. I couldn't even understand what other people in this post were trying to do!