<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>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.<br><br>Anyway, you found exactly the problem. SWORD couldn't write to /sdcard/sword.<br><br>I suspect maybe file permission?<br><br>We should probably all read up on the changes Timmy mentions.<br><br>I would try this, remove /sdcard/sword entirely and see what Bishop does.<br><br>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.<br><br>Anyway, it seems we need to read and experiment a bit.<br><br>Troy<br><br><div class="gmail_quote">On January 2, 2021 2:49:52 AM MST, Tobias Klein <contact@tklein.info> wrote:<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<p>Ok!</p>
<p>Below is a full dump of <tt>adb logcat | grep libsword</tt>.</p>
<p>Seems like this is the key section, though:<br>
<br>
<tt>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</tt><tt><br>
</tt><tt>01-02 10:35:25.260 5450 5538 D libsword.so: libsword:
init() saving basic: /sdcard/sword/mods.d/globals.conf</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>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</tt></p>
<p>What is mods.d/globals.conf used for? It seems like this file is
missing in my existing SWORD file structure.<br>
</p>
<p>Best regards,<br>
Tobias</p>
<p>Complete log:<br>
</p>
<p><tt>01-02 10:35:25.258 5450 5538 I libsword.so: LOOKING UP
LOCALE DIRECTORY...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
for provided SWConfig("sword.conf")...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
working directory for sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
working directory for mods.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
working directory for mods.d...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
working directory ../library/ for mods.d...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
$SWORD_PATH...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Parsing
/etc/sword.conf:/usr/local/etc/sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
for /etc/sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
for /usr/local/etc/sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
$ALLUSERSPROFILE/Application Data/sword/...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
$HOME/Library/Application Support/Sword/...</tt><tt><br>
</tt><tt>01-02 10:35:25.258 5450 5538 I libsword.so: Checking
home directory for ~/.sword...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: LOOKING UP
LOCALE DIRECTORY COMPLETE.</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: LOOKING UP
LOCALE DIRECTORY...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
for provided SWConfig("sword.conf")...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
working directory for sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
working directory for mods.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
working directory for mods.d...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
working directory ../library/ for mods.d...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
$SWORD_PATH...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Parsing
/etc/sword.conf:/usr/local/etc/sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
for /etc/sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
for /usr/local/etc/sword.conf...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
$ALLUSERSPROFILE/Application Data/sword/...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
$HOME/Library/Application Support/Sword/...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: Checking
home directory for ~/.sword...</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 I libsword.so: LOOKING UP
LOCALE DIRECTORY COMPLETE.</tt><tt><br>
</tt><tt>01-02 10:35:25.259 5450 5538 D libsword.so: libsword:
init() begin</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>01-02 10:35:25.260 5450 5538 D libsword.so: libsword:
init() saving basic: /sdcard/sword/mods.d/globals.conf</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>01-02 10:35:25.263 5450 5538 D libsword.so: libsword:
init() creating WebMgr using path:
/data/user/0/org.crosswire.bishop/files</tt><tt><br>
</tt><tt>01-02 10:35:25.267 5450 5538 I libsword.so: Checking at
provided path: /data/user/0/org.crosswire.bishop/files/...</tt><tt><br>
</tt><tt>01-02 10:35:25.267 5450 5538 I libsword.so: Found
mods.d/</tt><tt><br>
</tt><tt>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)</tt><tt><br>
</tt><tt>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)</tt><tt><br>
</tt><tt>01-02 10:35:25.267 5450 5538 I libsword.so: LOADING
MODULE CONFIGURATIONS...</tt><tt><br>
</tt><tt>01-02 10:35:25.267 5450 5538 I libsword.so: LOADING
MODULE CONFIGURATIONS COMPLETE.</tt><tt><br>
</tt><tt>01-02 10:35:25.267 5450 5538 I libsword.so: LOADING
MODULE LIBRARY...</tt><tt><br>
</tt><tt>01-02 10:35:25.268 5450 5538 D libsword.so: libsword:
WebMgr::createAllModules</tt><tt><br>
</tt><tt>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)</tt><tt><br>
</tt><tt>01-02 10:35:25.268 5450 5538 D libsword.so: libsword:
WebMgr::createAllModules extraConfig exists. Augmenting modules
config</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so: libsword:
SWMgr::createAllModules</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 I libsword.so: LOADING
MODULE LIBRARY COMPLETE.</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so: libsword:
init() augmenting modules from:
/sdcard/Android/data/net.bible.android.activity/files</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so: libsword:
init() augmenting modules from: /sdcard/sword</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so: libsword:
init() adding locales from baseDir.</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading
/data/user/0/org.crosswire.bishop/files/locales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading
/data/user/0/org.crosswire.bishop/files/uilocales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading /sdcard/sword/locales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading /sdcard/sword/uilocales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.269 5450 5538 D libsword.so: libsword:
init() end.</tt><tt><br>
</tt><tt>01-02 10:35:25.413 5450 5538 D libsword.so: setting
STORAGE_BASE to: /data/user/0/org.crosswire.bishop/files</tt><tt><br>
</tt><tt>01-02 10:35:25.416 5450 5538 D libsword.so: libsword:
init() begin</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>01-02 10:35:25.417 5450 5538 D libsword.so: libsword:
init() saving basic: /sdcard/sword/mods.d/globals.conf</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>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</tt><tt><br>
</tt><tt>01-02 10:35:25.417 5450 5538 D libsword.so: libsword:
init() creating WebMgr using path:
/data/user/0/org.crosswire.bishop/files</tt><tt><br>
</tt><tt>01-02 10:35:25.418 5450 5538 I libsword.so: Checking at
provided path: /data/user/0/org.crosswire.bishop/files/...</tt><tt><br>
</tt><tt>01-02 10:35:25.418 5450 5538 I libsword.so: Found
mods.d/</tt><tt><br>
</tt><tt>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)</tt><tt><br>
</tt><tt>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)</tt><tt><br>
</tt><tt>01-02 10:35:25.418 5450 5538 I libsword.so: LOADING
MODULE CONFIGURATIONS...</tt><tt><br>
</tt><tt>01-02 10:35:25.419 5450 5538 I libsword.so: LOADING
MODULE CONFIGURATIONS COMPLETE.</tt><tt><br>
</tt><tt>01-02 10:35:25.419 5450 5538 I libsword.so: LOADING
MODULE LIBRARY...</tt><tt><br>
</tt><tt>01-02 10:35:25.419 5450 5538 D libsword.so: libsword:
WebMgr::createAllModules</tt><tt><br>
</tt><tt>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)</tt><tt><br>
</tt><tt>01-02 10:35:25.419 5450 5538 D libsword.so: libsword:
WebMgr::createAllModules extraConfig exists. Augmenting modules
config</tt><tt><br>
</tt><tt>01-02 10:35:25.419 5450 5538 D libsword.so: libsword:
SWMgr::createAllModules</tt><tt><br>
</tt><tt>01-02 10:35:25.419 5450 5538 I libsword.so: LOADING
MODULE LIBRARY COMPLETE.</tt><tt><br>
</tt><tt>01-02 10:35:25.419 5450 5538 D libsword.so: libsword:
init() augmenting modules from:
/sdcard/Android/data/net.bible.android.activity/files</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so: libsword:
init() augmenting modules from: /sdcard/sword</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so: libsword:
init() adding locales from baseDir.</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading
/data/user/0/org.crosswire.bishop/files/locales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading
/data/user/0/org.crosswire.bishop/files/uilocales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading /sdcard/sword/locales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so:
LocaleMgr::loadConfigDir loading /sdcard/sword/uilocales.d</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so: libsword:
init() end.</tt><tt><br>
</tt><tt>01-02 10:35:25.420 5450 5538 D libsword.so:
getModInfoList returning 0 length array</tt><tt><br>
</tt><tt>01-02 10:35:25.456 5450 5538 W libsword.so:
LocaleMgr::getLocale failed to find locales</tt><tt><br>
</tt><tt>01-02 10:35:25.460 5450 5538 W libsword.so:
LocaleMgr::getLocale failed to find locales</tt><br>
</p>
<div class="moz-cite-prefix">On 1/1/21 10:57 PM, Troy A. Griffitts
wrote:<br>
</div>
<blockquote type="cite" cite="mid:7705424F-5A5A-40A1-A49C-B978DAEFE231@crosswire.org">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
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:<br>
<br>
<a href="https://crosswire.org/svn/sword/trunk/bindings/java-jni/jni/swordstub.cpp" moz-do-not-send="true">https://crosswire.org/svn/sword/trunk/bindings/java-jni/jni/swordstub.cpp</a><br>
<br>
<br>
<br>
<div class="gmail_quote">On January 1, 2021 2:18:29 PM MST, Tobias
Klein <a class="moz-txt-link-rfc2396E" href="mailto:contact@tklein.info"><contact@tklein.info></a> wrote:
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
0.8ex; border-left: 1px solid rgb(204, 204, 204);
padding-left: 1ex;">
<div dir="auto">
<div dir="auto">Thanks Troy!</div>
<div dir="auto"><span style="font-size: 12pt;"><br>
</span></div>
<div dir="auto"><span style="font-size: 12pt;">I see this
working with Bishop on my phone (Android 8.1.0). There
Bishop reads from and writes to /sdcard/sword.</span></div>
<div dir="auto"><br>
</div>
<div dir="auto">However, it is not working on my Tablet
(Android 10). I do have SWORD directories there with this
structure:</div>
<div dir="auto">/sdcard/sword</div>
<div dir="auto">/sdcard/sword/installMgr</div>
<div dir="auto">/sdcard/sword/mods.d</div>
<div dir="auto">/sdcard/sword/modules</div>
<div dir="auto"><br>
</div>
<div dir="auto">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.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Best regards,</div>
<div dir="auto">Tobias</div>
<div dir="auto"><br>
</div>
<div id="aqm-original" style="color: black;">
<!-- body start -->
<div class="aqm-original-body">
<div style="color: black;">
<p style="color: black; font-size: 10pt; font-family:
sans-serif; margin: 8pt 0;">Am 1. Januar 2021
21:34:00 schrieb "Troy A. Griffitts"
<a class="moz-txt-link-rfc2396E" href="mailto:scribe@crosswire.org"><scribe@crosswire.org></a>:</p>
<blockquote type="cite" class="gmail_quote" style="margin: 0 0 0 0.75ex; border-left: 1px solid
#808080; padding-left: 0.75ex;">
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.<br>
<br>
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.<br>
<br>
Thanks for wanting to coordinate on where files are
stored.<br>
<br>
Troy<br>
<br>
<div class="gmail_quote">On January 1, 2021 1:07:16
PM MST, Tobias Klein <a class="moz-txt-link-rfc2396E" href="mailto:contact@tklein.info"><contact@tklein.info></a>
wrote:
<blockquote class="gmail_quote" style="margin: 0pt
0pt 0pt 0.8ex; border-left: 1px solid rgb(204,
204, 204); padding-left: 1ex;">
<div dir="auto">
<div dir="auto">Hi Troy!</div>
<div dir="auto"><br>
</div>
Happy new year!
<div dir="auto"><br>
</div>
<div dir="auto">Where does Bishop store the
SWORD data files on Android? I was browsing
the filesystem but could not find the
respective directory.</div>
<div dir="auto"><br>
</div>
<div dir="auto">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.</div>
<div dir="auto"><br>
</div>
<div dir="auto">Best regards,</div>
<div dir="auto">Tobias</div>
</div>
</blockquote>
</div>
<br>
-- <br>
Sent from my Android device with K-9 Mail. Please
excuse my brevity.</blockquote>
</div>
</div>
<!-- body end -->
</div>
<div dir="auto"><br>
</div>
</div>
</blockquote>
</div>
<br>
-- <br>
Sent from my Android device with K-9 Mail. Please excuse my
brevity.
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://crosswire.org/mailman/listinfo/sword-devel">http://crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
</blockquote>
</blockquote></div><br>-- <br>Sent from my Android device with K-9 Mail. Please excuse my brevity.</body></html>