/j/... sandbox works well if files are accessed from J itself. However if
it needs to pass the name of the file to external programs or shared
libraries, then the full path is needed.

On Tue, 22 Feb 2022 at 7:53 AM Ian Clark <[email protected]> wrote:

> 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
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to