11 Commits
Author SHA1 Message Date
osy 3359543d2c ios: run qemu-img in a helper extension on iOS 26
QEMU tools cannot run in the app process on iOS: a process may load QEMU
only once and qemu-img calls exit(). So disk snapshots of a stopped VM,
reclaiming space, compression, resizing and conversion on import were
macOS-only.

iOS 26 brings ExtensionKit, so qemu-img now runs in an ExtensionKit
extension (iOSHelper, and iOSHelper-SE for UTM SE since an extension's
bundle identifier must be prefixed by its host's). The helper speaks the
same QEMUHelperProtocol as the macOS XPC helper but loads the tool into
its own process, one tool per process. UTMProcess accepts an injected
connection so the remote path is shared with macOS, including file
access through bookmarks, whose implicit security scope grants the
resolving process access. UTMHelperProcess launches the helper and,
because the system hands a process that is still exiting to a launch
that comes too soon, tears it down with a handshake on the interruption
callback and runs helpers one at a time.

UTMQemuImage now reads the tool's output until it ends instead of
racing the exit message, resumes its continuations off the XPC reply
queue (a call made from that queue blocks in NSXPC), and stops the
process explicitly since the connection's exported object kept it from
ever being deallocated on macOS. The last stderr line becomes the error
text when the tool gives none.

Assisted-by: Claude:claude-fable-5-1
2026-09-23 23:10:06 -05:00
osy a74a93bcc0 docs: update iOS development for visionOS instructions 2024-08-23 08:24:44 -05:00
osy 7bd45b354c docs: updated development docs
Resolves #6469
2024-08-21 17:45:28 -05:00
startergo 9519e757b4 Update iOSDevelopment.md
glib-utils is renamed glib in Homebrew
2023-07-08 13:33:05 -04:00
osy 3260ced744 build: updated dependency build requirements 2022-08-09 10:08:51 -07:00
osy cb24289933 build: replace glib requirement with glib-utils 2022-07-30 22:13:30 -07:00
Mathieu Ablasou 7d394415e4 Fix typos 2022-01-20 09:59:07 +01:00
osy de973c410c build: make entitlement use configurable
Various configurations (paid/free/no ADP account) supported.
2021-08-30 20:41:43 -07:00
osy 09d187915b readme: updated with more information 2021-05-17 21:19:01 -07:00
osy 69d26785d5 project: move code signing config to external file 2021-04-26 20:15:41 -07:00
osy 546b69d27f readme: updated development instructions
Moved to their own pages.
2021-04-24 13:08:41 -07:00