[sword-devel] Where does Bishop store SWORD files on Android?

Troy A. Griffitts scribe at crosswire.org
Sat Jan 2 10:37:10 EST 2021


It's not used for anything in particular, just as a write test. We used to store (I guess we still do) stuff in a [globals] section like a directory to scan for new module when SWORD first starts up and then it would install those, letting an external program or user just dump stuff to a folder, which would get install the next time their app started up. That was typically used when we supported individual module downloads by users from our webserver, but we discourage that now and instead encourage use of installmgr.

Anyway, you found exactly the problem. SWORD couldn't write to /sdcard/sword.

I suspect maybe file permission?

We should probably all read up on the changes Timmy mentions.

I would try this, remove /sdcard/sword entirely and see what Bishop does.

I have had troubles myself making changes to my sdcard, using adb shell to cd to /sdcard and mkdir xyz, then using a file browser and looking on the sdcard and not seeing my folder. I wonder if it has anything to do with the multiple profile support, i.e., can one user take a photo to the sdcard and then change profiles on the phone and have another user see that photo.

Anyway, it seems we need to read and experiment a bit.

Troy

On January 2, 2021 2:49:52 AM MST, Tobias Klein <contact at tklein.info> wrote:
>Ok!
>
>Below is a full dump of adb logcat | grep libsword.
>
>Seems like this is the key section, though:
>
>01-02 10:35:25.259  5450  5538 D libsword.so: libsword: init() sword 
>config not found, attempting to create parent of: 
>/sdcard/sword/mods.d/globals.conf
>01-02 10:35:25.260  5450  5538 D libsword.so: libsword: init() saving 
>basic: /sdcard/sword/mods.d/globals.conf
>01-02 10:35:25.260  5450  5538 D libsword.so: libsword: init() sword 
>config STILL not found, attempting to create parent of: 
>/data/user/0/org.crosswire.bishop/files/mods.d/globals.conf
>01-02 10:35:25.262  5450  5538 D libsword.so: libsword: init() saving 
>basic: /data/user/0/org.crosswire.bishop/files/mods.d/globals.conf
>
>What is mods.d/globals.conf used for? It seems like this file is
>missing 
>in my existing SWORD file structure.
>
>Best regards,
>Tobias
>
>Complete log:
>
>01-02 10:35:25.258  5450  5538 I libsword.so: LOOKING UP LOCALE
>DIRECTORY...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking for provided 
>SWConfig("sword.conf")...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking working
>directory 
>for sword.conf...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking working
>directory 
>for mods.conf...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking working
>directory 
>for mods.d...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking working
>directory 
>../library/ for mods.d...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking $SWORD_PATH...
>01-02 10:35:25.258  5450  5538 I libsword.so: Parsing 
>/etc/sword.conf:/usr/local/etc/sword.conf...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking for 
>/etc/sword.conf...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking for 
>/usr/local/etc/sword.conf...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking 
>$ALLUSERSPROFILE/Application Data/sword/...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking 
>$HOME/Library/Application Support/Sword/...
>01-02 10:35:25.258  5450  5538 I libsword.so: Checking home directory 
>for ~/.sword...
>01-02 10:35:25.259  5450  5538 I libsword.so: LOOKING UP LOCALE 
>DIRECTORY COMPLETE.
>01-02 10:35:25.259  5450  5538 I libsword.so: LOOKING UP LOCALE
>DIRECTORY...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking for provided 
>SWConfig("sword.conf")...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking working
>directory 
>for sword.conf...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking working
>directory 
>for mods.conf...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking working
>directory 
>for mods.d...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking working
>directory 
>../library/ for mods.d...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking $SWORD_PATH...
>01-02 10:35:25.259  5450  5538 I libsword.so: Parsing 
>/etc/sword.conf:/usr/local/etc/sword.conf...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking for 
>/etc/sword.conf...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking for 
>/usr/local/etc/sword.conf...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking 
>$ALLUSERSPROFILE/Application Data/sword/...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking 
>$HOME/Library/Application Support/Sword/...
>01-02 10:35:25.259  5450  5538 I libsword.so: Checking home directory 
>for ~/.sword...
>01-02 10:35:25.259  5450  5538 I libsword.so: LOOKING UP LOCALE 
>DIRECTORY COMPLETE.
>01-02 10:35:25.259  5450  5538 D libsword.so: libsword: init() begin
>01-02 10:35:25.259  5450  5538 D libsword.so: libsword: init() sword 
>config not found, attempting to create parent of: 
>/sdcard/sword/mods.d/globals.conf
>01-02 10:35:25.260  5450  5538 D libsword.so: libsword: init() saving 
>basic: /sdcard/sword/mods.d/globals.conf
>01-02 10:35:25.260  5450  5538 D libsword.so: libsword: init() sword 
>config STILL not found, attempting to create parent of: 
>/data/user/0/org.crosswire.bishop/files/mods.d/globals.conf
>01-02 10:35:25.262  5450  5538 D libsword.so: libsword: init() saving 
>basic: /data/user/0/org.crosswire.bishop/files/mods.d/globals.conf
>01-02 10:35:25.263  5450  5538 D libsword.so: libsword: extraConfig 
>Exists at path:
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf
>01-02 10:35:25.263  5450  5538 D libsword.so: libsword: init() creating
>
>WebMgr using path: /data/user/0/org.crosswire.bishop/files
>01-02 10:35:25.267  5450  5538 I libsword.so: Checking at provided
>path: 
>/data/user/0/org.crosswire.bishop/files/...
>01-02 10:35:25.267  5450  5538 I libsword.so: Found mods.d/
>01-02 10:35:25.267  5450  5538 D libsword.so: libsword: WebMgr 
>c-tor(path: /data/user/0/org.crosswire.bishop/files, extraConfPath: 
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf)
>01-02 10:35:25.267  5450  5538 D libsword.so: libsword: WebMgr::c-tor 
>extraConfPath supplied: 
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf)
>01-02 10:35:25.267  5450  5538 I libsword.so: LOADING MODULE 
>CONFIGURATIONS...
>01-02 10:35:25.267  5450  5538 I libsword.so: LOADING MODULE 
>CONFIGURATIONS COMPLETE.
>01-02 10:35:25.267  5450  5538 I libsword.so: LOADING MODULE LIBRARY...
>01-02 10:35:25.268  5450  5538 D libsword.so: libsword: 
>WebMgr::createAllModules
>01-02 10:35:25.268  5450  5538 D libsword.so: libsword: 
>WebMgr::createAllModules extraConfig supplied: 
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf)
>01-02 10:35:25.268  5450  5538 D libsword.so: libsword: 
>WebMgr::createAllModules extraConfig exists. Augmenting modules config
>01-02 10:35:25.269  5450  5538 D libsword.so: libsword: 
>SWMgr::createAllModules
>01-02 10:35:25.269  5450  5538 I libsword.so: LOADING MODULE LIBRARY 
>COMPLETE.
>01-02 10:35:25.269  5450  5538 D libsword.so: libsword: init() 
>augmenting modules from: 
>/sdcard/Android/data/net.bible.android.activity/files
>01-02 10:35:25.269  5450  5538 D libsword.so: libsword: init() 
>augmenting modules from: /sdcard/sword
>01-02 10:35:25.269  5450  5538 D libsword.so: libsword: init() adding 
>locales from baseDir.
>01-02 10:35:25.269  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /data/user/0/org.crosswire.bishop/files/locales.d
>01-02 10:35:25.269  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /data/user/0/org.crosswire.bishop/files/uilocales.d
>01-02 10:35:25.269  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /sdcard/sword/locales.d
>01-02 10:35:25.269  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /sdcard/sword/uilocales.d
>01-02 10:35:25.269  5450  5538 D libsword.so: libsword: init() end.
>01-02 10:35:25.413  5450  5538 D libsword.so: setting STORAGE_BASE to: 
>/data/user/0/org.crosswire.bishop/files
>01-02 10:35:25.416  5450  5538 D libsword.so: libsword: init() begin
>01-02 10:35:25.416  5450  5538 D libsword.so: libsword: init() sword 
>config not found, attempting to create parent of: 
>/sdcard/sword/mods.d/globals.conf
>01-02 10:35:25.417  5450  5538 D libsword.so: libsword: init() saving 
>basic: /sdcard/sword/mods.d/globals.conf
>01-02 10:35:25.417  5450  5538 D libsword.so: libsword: init() sword 
>config STILL not found, attempting to create parent of: 
>/data/user/0/org.crosswire.bishop/files/mods.d/globals.conf
>01-02 10:35:25.417  5450  5538 D libsword.so: libsword: init() saving 
>basic: /data/user/0/org.crosswire.bishop/files/mods.d/globals.conf
>01-02 10:35:25.417  5450  5538 D libsword.so: libsword: extraConfig 
>Exists at path:
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf
>01-02 10:35:25.417  5450  5538 D libsword.so: libsword: init() creating
>
>WebMgr using path: /data/user/0/org.crosswire.bishop/files
>01-02 10:35:25.418  5450  5538 I libsword.so: Checking at provided
>path: 
>/data/user/0/org.crosswire.bishop/files/...
>01-02 10:35:25.418  5450  5538 I libsword.so: Found mods.d/
>01-02 10:35:25.418  5450  5538 D libsword.so: libsword: WebMgr 
>c-tor(path: /data/user/0/org.crosswire.bishop/files, extraConfPath: 
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf)
>01-02 10:35:25.418  5450  5538 D libsword.so: libsword: WebMgr::c-tor 
>extraConfPath supplied: 
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf)
>01-02 10:35:25.418  5450  5538 I libsword.so: LOADING MODULE 
>CONFIGURATIONS...
>01-02 10:35:25.419  5450  5538 I libsword.so: LOADING MODULE 
>CONFIGURATIONS COMPLETE.
>01-02 10:35:25.419  5450  5538 I libsword.so: LOADING MODULE LIBRARY...
>01-02 10:35:25.419  5450  5538 D libsword.so: libsword: 
>WebMgr::createAllModules
>01-02 10:35:25.419  5450  5538 D libsword.so: libsword: 
>WebMgr::createAllModules extraConfig supplied: 
>/data/user/0/org.crosswire.bishop/files/extraConfig.conf)
>01-02 10:35:25.419  5450  5538 D libsword.so: libsword: 
>WebMgr::createAllModules extraConfig exists. Augmenting modules config
>01-02 10:35:25.419  5450  5538 D libsword.so: libsword: 
>SWMgr::createAllModules
>01-02 10:35:25.419  5450  5538 I libsword.so: LOADING MODULE LIBRARY 
>COMPLETE.
>01-02 10:35:25.419  5450  5538 D libsword.so: libsword: init() 
>augmenting modules from: 
>/sdcard/Android/data/net.bible.android.activity/files
>01-02 10:35:25.420  5450  5538 D libsword.so: libsword: init() 
>augmenting modules from: /sdcard/sword
>01-02 10:35:25.420  5450  5538 D libsword.so: libsword: init() adding 
>locales from baseDir.
>01-02 10:35:25.420  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /data/user/0/org.crosswire.bishop/files/locales.d
>01-02 10:35:25.420  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /data/user/0/org.crosswire.bishop/files/uilocales.d
>01-02 10:35:25.420  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /sdcard/sword/locales.d
>01-02 10:35:25.420  5450  5538 D libsword.so: LocaleMgr::loadConfigDir 
>loading /sdcard/sword/uilocales.d
>01-02 10:35:25.420  5450  5538 D libsword.so: libsword: init() end.
>01-02 10:35:25.420  5450  5538 D libsword.so: getModInfoList returning
>0 
>length array
>01-02 10:35:25.456  5450  5538 W libsword.so: LocaleMgr::getLocale 
>failed to find locales
>01-02 10:35:25.460  5450  5538 W libsword.so: LocaleMgr::getLocale 
>failed to find locales
>
>On 1/1/21 10:57 PM, Troy A. Griffitts wrote:
>> Hmmm. That's odd. If you can adb logcat your tablet while it is 
>> plugged into your laptop and have a look at the output when Bishop 
>> starts up, it might give us a clue. Bishop is pretty noisy to the 
>> logs. The detection logic is located in init(), here:
>>
>>
>https://crosswire.org/svn/sword/trunk/bindings/java-jni/jni/swordstub.cpp
>>
>>
>>
>> On January 1, 2021 2:18:29 PM MST, Tobias Klein <contact at tklein.info>
>
>> wrote:
>>
>>     Thanks Troy!
>>
>>     I see this working with Bishop on my phone (Android 8.1.0). There
>>     Bishop reads from and writes to /sdcard/sword.
>>
>>     However, it is not working on my Tablet (Android 10). I do have
>>     SWORD directories there with this structure:
>>     /sdcard/sword
>>     /sdcard/sword/installMgr
>>     /sdcard/sword/mods.d
>>     /sdcard/sword/modules
>>
>>     When starting Bishop on the Tablet it asks for permissions and
>>     after confirmation it does not show any existing modules based on
>>     the structure above.
>>
>>     Best regards,
>>     Tobias
>>
>>     Am 1. Januar 2021 21:34:00 schrieb "Troy A. Griffitts"
>>     <scribe at crosswire.org>:
>>
>>>     Yes, that's exactly right. Upon install, Bishop asks for
>>>     permissions to read and right files to /sdcard/sword/. If it is
>>>     able, it does, if not, it writes to its app’s private data area.
>>>
>>>     I don't believe there is anything like this available on iOS,
>but
>>>     I am no expert. I would be interested to learn how iOS handles
>>>     other common data files which have multiple apps needing the
>>>     ability to read and write, like photos.
>>>
>>>     Thanks for wanting to coordinate on where files are stored.
>>>
>>>     Troy
>>>
>>>     On January 1, 2021 1:07:16 PM MST, Tobias Klein
>>>     <contact at tklein.info> wrote:
>>>
>>>         Hi Troy!
>>>
>>>         Happy new year!
>>>
>>>         Where does Bishop store the SWORD data files on Android? I
>>>         was browsing the filesystem but could not find the
>respective
>>>         directory.
>>>
>>>         I am asking because I am working on Android support for
>>>         node-sword-interface and I wanted to align this and use a
>>>         common place for the SWORD data files. So far I thought
>>>         /sdcard/sword would be the right place.
>>>
>>>         Best regards,
>>>         Tobias
>>>
>>>
>>>     -- 
>>>     Sent from my Android device with K-9 Mail. Please excuse my
>brevity.
>>
>>
>> -- 
>> Sent from my Android device with K-9 Mail. Please excuse my brevity.
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page

-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://crosswire.org/pipermail/sword-devel/attachments/20210102/3e113287/attachment-0001.html>


More information about the sword-devel mailing list