/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
