Skip to content

v1.0.1

Latest

Choose a tag to compare

@gavinnolan gavinnolan released this 15 Oct 22:34

Python scripts now run on iOS 18, and the play button in the app no longer freezes the app.

Compatibility

File Jailbreak iOS
*_rootless.deb Dopamine, Dopamine 3, NathanLR 15.0 - 18.x
*_roothide.deb Roothide / Serotonin 15.0 - 16.6.1

iOS 18 is tested on 18.5 with Dopamine 3, and iOS 17 on 17.6.

New: zxtouch-runner

iOS 18 does not let SpringBoard start processes, so ZXTouch could not launch scripts there at all. This release adds zxtouch-runner, a small daemon started by launchd. When SpringBoard is refused, scripts and run_shell_command are handed to the runner instead. On iOS 15 to 17 nothing changes and scripts start the way they always have.

You will see a new process, zxtouch-runner, and a LaunchDaemon named com.zjx.zxtouch.runner. It runs as mobile, the same user scripts already ran as, so scripts get no extra permissions. It only takes work from ZXTouch on the same device: registering needs a secret that only mobile can read, and the connection has to come from the device itself.

After installing, respring as usual. The runner starts on its own.

Fixed

  • On iOS 18, scripts failed with "Python not installed" even with Python installed. The check asked whether SpringBoard itself was allowed to run the interpreter, and on iOS 18 it is not. It now checks that the interpreter is an executable file and leaves running it to the runner.
  • The play button in the app's Scripts list froze the whole app until it was force quit. The app sent commands without the line ending the tweak expects, so the tweak never answered. App commands are now terminated properly, and the app gives up after 10 seconds instead of hanging.
  • Two scripts started at the same moment could have their shell paths swapped, because the rootless path helper returns a shared buffer. The path is now copied before anything else runs.

Better error reporting

Errors that happen before a script starts now go to the Logs tab: which interpreter paths were checked and why each was rejected, and the exact reason a launch failed. Alerts point to Logs instead of Console.app.

Not yet confirmed

The roothide path fix from 1.0.0 has still not been confirmed by a roothide user. If scripts do not play on roothide, please open an issue with the output of ls -la "$(jbroot /var/mobile/Library/ZXTouch)".

ZXTouch Rootless

File Jailbreak iOS
*_rootless.deb Dopamine, Dopamine 3, NathanLR 15.0 - 18.x
*_roothide.deb Roothide / Serotonin 15.0 - 16.6.1

Installation

  1. Download the .deb for your jailbreak
  2. Install via Filza or SSH: dpkg -i <file>.deb && killall -9 SpringBoard

Python 3 from Procursus is required for .py scripts.

Full Changelog: v1.0.0...v1.0.1