Commit Graph

158 Commits

Author SHA1 Message Date
Lakr
7514e10d06 Tidy tweakloader README and adjust table spacing
Convert README header to ATX style and add spacing/blank lines for improved Markdown readability in scripts/tweakloader/README.md. Also adjust spacing in a table row in research/0_binary_patch_comparison.md to correct alignment/formatting.
0.1.4
2026-03-10 12:15:44 +08:00
TastyHeadphones
490e024f9d menu: gate Install action on connection state (#174) 2026-03-10 11:32:27 +08:00
Felipe Cavalcanti
cd389412ec Add tweakloader to jailbreak install flow (#173) 2026-03-10 11:32:08 +08:00
Felipe Cavalcanti
97f96a86e0 Fix TrollStore Lite install failure handling (#172) 2026-03-10 11:31:42 +08:00
zqxwce
e040c3e422 dtree: Implement device tree patching (#170) 2026-03-10 02:52:21 +08:00
Lakr
100cd80c46 update_format 0.1.3 2026-03-10 00:55:29 +08:00
Luke Symons
cb409416af keychain: add remote keychain browser via vphoned (#169)
Co-authored-by: rezk <rezk>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 00:48:04 +08:00
TastyHeadphones
033960c9c0 menu: gate Connect actions on connection state (#161) 2026-03-09 13:40:27 +08:00
zqxwce
ede318a29b setup_machine: Add missing quotation in send_first_boot_commands (#157) 2026-03-09 13:40:11 +08:00
Huge_Black
76c7c9e513 allow opening symlinks pointing to folders in file manager (#156) 2026-03-09 01:17:20 +08:00
zqxwce
d48ad72fa4 launch_daemons: Readd dropbear back as default in all variants (#155) 2026-03-09 01:17:02 +08:00
zqxwce
48d33b19ef ramdisk_build: Set default value for sudo password to None so prompt would show (#154) 2026-03-08 22:59:42 +08:00
TastyHeadphones
e6f8ed8403 control: add handshake timeout and reconnect fallback (#153) 2026-03-08 22:59:26 +08:00
zqxwce
cb709eb1a3 Feature/jb add missing dev capabilities (#150)
* cfw_install_jb: Add debugserver entitlement patching

* cfw_install_jb: Add developer overlay to match cfw_install_dev
2026-03-08 20:36:38 +08:00
TastyHeadphones
c4cf6c2da6 record: always capture the VM window (#149) 2026-03-08 15:30:04 +08:00
Lakr
bdbdf43414 docs: add iOS 26.3.1 (23D8133) to tested environments 0.1.2 2026-03-08 13:25:41 +08:00
Lakr
3a644b7332 docs: rework READMEs — fix patch counts, merge PR #148, sync translations
- Fix JB boot chain patch count: 66/78 → 112 (per research doc)
- Merge PR #148: remove cfw_install_jb_finalize, update SSH to openssh-server
- Keep dropbear instructions for Regular/Dev variants
- Add Option 2 (amfidont) to prerequisites and FAQ in all translations
- Add setup_machine options comment to all translations
- Add .tipa FAQ entry (from #142) to all translations
- Add openssh-server FAQ entries to all translations
- Run prettier on all docs
2026-03-08 13:23:34 +08:00
Felipe Cavalcanti
6df6db9159 docs: remove dropbear/cfw_install_jb_finalize references, update SSH instructions
JB setup now runs automatically on first boot. SSH access is via
openssh-server from Sileo instead of dropbear. Update all READMEs
(en, zh, ja, ko) accordingly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 13:13:42 +08:00
Lakr
1888131fc8 Add SSH shell profile setup to JB first-boot script
Create .bashrc and .bash_profile for /var/root so SSH sessions
(both login and non-login) source /var/jb/etc/profile for the
full JB PATH. Adapted from #144 to the new vphone_jb_setup.sh
architecture introduced in #141.

Co-authored-by: McNight <mcnight@mcnight.fr>
2026-03-08 13:01:39 +08:00
TastyHeadphones
4e14197e93 install: support tipa packages and show success alerts (#142) 2026-03-08 12:54:14 +08:00
Felipe Cavalcanti
32b73cd50b Rework JB finalization: drop dropbear, auto-bootstrap on first boot (#141)
* fix: build

* fix: remove [trusted=yes] from Havoc apt source

The inline [trusted=yes] option can cause issues with Sileo's
source parser. The apt-get calls already use AllowUnauthenticated
flags, making it redundant.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: main actor crash in VPhoneControl + IPA extraction failures

VPhoneControl: pending request handlers are @MainActor-isolated closures
but were called from DispatchQueue.global() in the read loop and timeout
handler, causing dispatch_assert_queue_fail crashes. Wrap all
pending.handler() calls in DispatchQueue.main.async.

unarchive: the recent ARCHIVE_EXTRACT_SECURE_* hardening (ef02d50) broke
IPA extraction on iOS because:
- SECURE_NOABSOLUTEPATHS: we set absolute output paths on entries
- SECURE_SYMLINKS: iOS system paths (/var, /tmp) are symlinks
- archive_write_header failures were silently swallowed due to if/else if
  structure, making extraction report success with no files extracted

Fix by keeping only SECURE_NODOTDOT, resolving symlinks in extraction
path, fixing header error handling, removing unnecessary ACL/FFLAGS
flags, and surfacing libarchive errors in the install response.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* remove dropbear SSH daemon from guest

Drop all dropbear setup: LaunchDaemon plist injection, host key
generation, daemon deployment, and SSH availability messages.
Guest communication is handled by vphoned over vsock.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: liblaunch compat stub + automatic JB first-boot setup

liblaunch_compat.dylib: stub exporting _launch_active_user_switch
(missing from PCC VM's libSystem.B.dylib) so procursus binaries
like launchctl can load. Deployed to /cores/, loaded via
DYLD_INSERT_LIBRARIES in LaunchDaemon environment and JB profile.

vphone_jb_setup.sh: first-boot script replacing the SSH-based
cfw_install_jb_post.sh. Runs as a LaunchDaemon on first normal
boot and performs all JB finalization: /var/jb symlink,
prep_bootstrap, markers, Sileo, apt setup, TrollStore Lite.
Idempotent with done marker. Logs to /var/log/vphone_jb_setup.log.

Removes the cfw_install_jb_finalize make target and the entire
SSH/iproxy/sshpass-based post-boot flow from setup_machine.sh.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: update AGENTS.md firmware table, gitignore build artifacts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: launchctl wrapper uses absolute path + timeout to prevent hangs

- Use absolute path to launchctl.real instead of relative dirname,
  fixing "not found" when called via /var/jb/bin/launchctl symlink
- Add 5s timeout so launchctl doesn't hang when launchd is
  unresponsive on PCC VMs — always exits 0 for dpkg postinst compat
- Symlink /var/jb/bin/launchctl -> /var/jb/usr/bin/launchctl so both
  paths work (openssh postinst uses the /bin/ path)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: replace liblaunch_compat dylib stub with iosbinpack64 launchctl symlink

Procursus launchctl crashes on PCC VMs due to missing
_launch_active_user_switch symbol. Rather than a custom dylib stub,
simply symlink iosbinpack64's launchctl into /var/jb — it talks to
launchd fine and always exits 0, which is all dpkg scripts need.

- Remove liblaunch_compat.c, its build target, signing, and deployment
- Remove DYLD_INSERT_LIBRARIES from setup script and plist
- Replace launchctl wrapper with symlinks to /iosbinpack64/bin/launchctl
- Both /var/jb/usr/bin/launchctl and /var/jb/bin/launchctl are covered

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 12:54:00 +08:00
Lakr
5921cba2ba Update cfw_install_jb.sh 0.1.1 2026-03-08 02:29:38 +08:00
Lakr
142b651c61 Update cfw_install_jb.sh 2026-03-08 02:27:16 +08:00
Lakr
b7448b7dc8 Persist window position per VM using ECID as frame autosave name 0.1.0 2026-03-08 02:11:25 +08:00
Lakr
ef02d50244 Harden libarchive extraction: secure flags for path traversal, NULL pathname guard 2026-03-08 00:48:13 +08:00
Lakr
d4ea43c7db Strip vendored libarchive headers to only the API surface used by unarchive.m 2026-03-08 00:46:46 +08:00
Lakr
ed55716def Clean up libarchive extraction: fix resource leak, rename to vp_ convention 2026-03-08 00:45:45 +08:00
LiBr
b2a17f3cd1 use libarchive (#134) 2026-03-08 00:41:53 +08:00
Lakr
6b7b2cbbf1 Guard debug stub port query behind macOS 26+
The _configuration._debugStub private API causes SIGBUS on macOS 15.
Only query it on macOS 26+ where the API exists.

Closes #128
2026-03-07 23:58:59 +08:00
Lakr
5f525452c1 Remove dead code from PR #127 IPA install feature
- Remove unused installIPAWithTrollStoreLite() and bundleIdentifier(fromIPA:)
  (host only uses built-in installer path now)
- Remove canInstallIPA / ipaInstallUnavailableMessage (redundant with isConnected)
- Inline vp_resolve_ldid_path() trivial wrapper in vphoned_install.m
- Drop tslite_install from host-side timeout table
2026-03-07 23:56:32 +08:00
LiBr
56451c4d53 Merge pull request #127 from lbr77/main
ipa install
2026-03-07 23:51:33 +08:00
Lakr
122f2aaf0c Merge pull request #130 from m1337v/patch-2
fix make build
2026-03-07 23:11:45 +08:00
Morpheus
78b4f51330 Update VPhoneVirtualMachine.swift
use nonisolated(unsafe) handoff so VZVirtualMachine.start(options:) compiles under Swift 6.
2026-03-07 22:08:13 +07:00
Morpheus
a3a5347e30 Simplify URL loading from providers
fix returning non-Sendable any NSSecureCoding
2026-03-07 22:05:43 +07:00
Lakr
537a098591 Sync PR #129 changes to zh/ja/ko translations
- Add cmake to brew dependencies
- Add sudo to ramdisk_build
- Add cfw_install_jb comment to CFW install step
- Add Finalize JB Patches section
- Fix comment alignment after sudo prefix
2026-03-07 23:03:03 +08:00
Lakr
5e9c95e86d Merge pull request #129 from m1337v/patch-1
Update Readme for new Jb patches
2026-03-07 23:01:40 +08:00
Lakr
e6d7f1579e Add cfw_install_jb_finalize to jailbreak firmware variant docs 2026-03-07 22:59:33 +08:00
Morpheus
b773e716f0 rm duplication 2026-03-07 21:57:13 +07:00
Morpheus
752876d4eb Update README with new dependencies and commands
Added cmake to the list of dependencies
add sudo for ramdisk_build
finalization steps for jailbreak installation.
2026-03-07 21:54:34 +07:00
Lakr
61c2a18f52 Remove jailbreak WIP labels and update demo image to jpeg 2026-03-07 20:18:10 +08:00
Lakr
34e628b494 Update cfw_install_jb_post.sh 2026-03-07 20:08:02 +08:00
Lakr
990b2c4769 Update cfw_install_jb_post.sh 2026-03-07 19:50:49 +08:00
Lakr
a6ce50b4c0 Fix unsafeBitCast warning in screenshot CF type conversion
Update VPhoneControl.swift

Update VPhoneControl.swift
2026-03-07 19:35:43 +08:00
Lakr
9b50cd2a1e Merge pull request #125 from xcxmiku/feature/private-display-recorder
Use private display capture for recording and screenshots
2026-03-07 19:30:32 +08:00
Lakr
47f4003836 Merge branch 'main' into feature/private-display-recorder 2026-03-07 19:30:15 +08:00
Lakr
46eb61f51d JB finalize: randomize SSH port via iproxy instead of hardcoded 22222
Use pick_random_ssh_port + iproxy to forward a random local port to
guest:22222 for isolation, matching the ramdisk stage pattern.
2026-03-07 19:04:31 +08:00
Lakr
c0fda232e0 Fix marker creation using shell builtin instead of touch
After prep_bootstrap.sh changes the login shell to bash, `touch` is
not available in the remote PATH. Use `: >` (shell builtin) to create
empty marker files without depending on an external binary.
2026-03-07 19:03:18 +08:00
Lakr
a576f5edf4 Update VPhoneVirtualMachine.swift 2026-03-07 18:47:20 +08:00
Lakr
1cbc389abc Update VPhoneWindowController.swift 2026-03-07 18:46:48 +08:00
Lakr
84af293029 Window title: show VPHONE+/- for daemon status, subtitle shows ECID 2026-03-07 18:44:09 +08:00