Bill wrote:
> Nevertheless you can hack using the HOME environment variable

Yes, in j901 for iOS …
   JVERSION
Engine: j903/j64/iOS
beta-k: GPL3/2022-02-20T16:48:50
Platform: iOS/iPadOS
Version: 901.2 50
Installer: App Store
Contact: www.jsoftware.com

…you can indeed enter:
   2!:5'HOME'  NB. gets a shadowy long-path...
/Users/ianclark/Library/Containers/BFFFA6CA-80AD-4BF7-A281-B0244C5DA3AD/Data
   1!:0 (2!:5'HOME'),'/Documents/j/*'
┌──────┬──────────────────┬───┬───┬──────┬──────────┐
│temp  │2022 2 20 16 48 52│96 │rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│tools │2022 2 20 16 48 52│320│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│test  │2022 2 20 16 48 52│160│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│config│2022 2 20 16 48 52│96 │rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│addons│2022 2 20 16 48 52│576│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│user  │2022 2 20 16 48 52│160│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│slate │2022 2 20 16 48 52│64 │rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│system│2022 2 20 16 48 52│160│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│assets│2022 2 20 16 48 52│832│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│plotf │2022 2 20 16 48 52│64 │rwx│----d-│drwxr-xr-x│
└──────┴──────────────────┴───┴───┴──────┴──────────┘

But that is an unnecessarily roundabout route. The following is equivalent:

   1!:0 'j/*'
┌──────┬──────────────────┬───┬───┬──────┬──────────┐
│temp  │2022 2 20 16 48 52│96 │rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│tools │2022 2 20 16 48 52│320│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│test  │2022 2 20 16 48 52│160│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│config│2022 2 20 16 48 52│96 │rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│addons│2022 2 20 16 48 52│576│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│user  │2022 2 20 16 48 52│160│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│slate │2022 2 20 16 48 52│64 │rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│system│2022 2 20 16 48 52│160│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│assets│2022 2 20 16 48 52│832│rwx│----d-│drwxr-xr-x│
├──────┼──────────────────┼───┼───┼──────┼──────────┤
│plotf │2022 2 20 16 48 52│64 │rwx│----d-│drwxr-xr-x│
└──────┴──────────────────┴───┴───┴──────┴──────────┘

j901 will recognize a "short path" -which is capable of reaching anything
in its sandbox:
   1!:0 '*'
┌─────────┬───────────────────┬────┬───┬──────┬──────────┐
│j        │2022 2 21 22 40 47 │384 │rwx│----d-│drwxr-xr-x│
└─────────┴───────────────────┴────┴───┴──────┴──────────┘

Note that using a long-path doesn't get round Apple's security. To combat
"jailbreaking", iOS polices long-paths, and intervenes to defeat the user's
efforts to do anything clever with them, such as string-processing or use
of ../ . There are (of course) no published rules as to how long-paths are
munged, or when.

…but see:
https://www.nextofwindows.com/how-to-browse-your-ios-devices-file-system-on-windows
https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
…(The presence of /archive/ warns you that the page may be out of date, or
no longer represent best practice.)

Yes, as with macOS there is a "bundle" containing the app code and
associated files, but it lies outside the app's sandbox, and iOS defends it
creatively. If you try hunting for an "~install" path, you'll be chasing
shadows.

You can, however, copy files and folders into the /Documents/ folder as
siblings of j/ , since that's still in your sandbox.

On Mon, 21 Feb 2022 at 13:06, bill lam <[email protected]> wrote:

> iOS apps are supposed to run inside sandbox and leaking file system info is
> discouraged. Nevertheless you can hack using the HOME environment variable.
> try the following
>
>  2!:5'HOME'
>  1!:0 (2!:5'HOME'),'/*'
>  1!:0 (2!:5'HOME'),'/Documents/*'
>  1!:0 (2!:5'HOME'),'/Documents/j/*'
>
>
> On Mon, 21 Feb 2022 at 8:11 PM Richard Donovan <[email protected]>
> wrote:
>
> > On my iPhone…
> >
> >   jpath'~install'
> > ~install
> >
> > Which isn’t much help’
> > ________________________________
> > From: General <[email protected]> on behalf of bill
> > lam <[email protected]>
> > Sent: Monday, February 21, 2022 4:37:15 AM
> > To: [email protected] <[email protected]>
> > Subject: Re: [Jgeneral] J903 on Pixel 6 Pro (Android)
> >
> > the install folder on any platform can be found by
> > jpath'~install'
> > on android it is
> > /storage/emulated/0/Android/data/com.jsoftware.j.android/files
> >
> > > On 20 Feb 2022, at 1:58 AM, J. Patrick Harrington <[email protected]>
> wrote:
> > >
> > > I just recently replaced my old iPhone (a 6 Plus) with a new Google
> > Pixel 6 Pro.
> > >
> > > It seems to be an impressive phone with a great camera. One of my
> > motivations for not getting a newer iPhone was my desire to escape the
> > increasingly locked-down Apple philosophy. I had problems moving files
> back
> > and forth between my linux computer and the phone. I'm glad to report
> that
> > I had no particular difficulty installing  J903 on the Pixel 6. The file
> > locations are cumbersome; you need something like
> > >
> > >   Apath=:
> > '/storage/emulated/0/Android/data/com.jsoftware.j.android/files/'
> > >
> > > in your startup profile. But the good news is that you just need a USB
> C
> > cable between your Pixel and computer and you just drag and drop files to
> > transfer them back and forth. I used to test the speed of J on phones by
> > inverting a 500 x 500 matrix -- on my old iPhone it took 0.5 sec, but on
> > this Pixel it's down to 0.046 sec. (Need to use a larger matrix, e.g.
> 1000
> > x 1000 -> 0.37 sec.) It took a bit of fussing to install the Dykman
> > keyboard but now its there and works great. I noticed there was a 2nd
> > keyboard available but I haven't tried it. How does it differ? I must say
> > that though I ran J programs on the iPhone, I seldom developed anything
> on
> > it. But J903 on this Pixel 6 is so smooth that I've started writing
> (short)
> > routines on it and copying them back to the laptop.
> > >
> > > My real reason for writing this report is ask for pointers to any
> > discussions regarding J on android phones. The android OS is completely
> new
> > to me. One glitch I encountered was when I modified a J routine with a
> text
> > editor I'd installed on the Pixel. I got a strange file read error. It
> > looked like the editor did something invisible to the file that ruined
> the
> > J session -- all my definitions were gone and I had to kill J and
> restart.
> > But if I made the file changes on the laptop and ported the file over, it
> > was fine. Any suggestions for a good text editor for android? (I'm an old
> > school vi guy, but I've not found a good plane vi.)
> > >
> > > Anyway, I appreciate any pointers of discussions of J on android...
> > >
> > > Patrick
> > >
> > > ----------------------------------------------------------------------
> > > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to