EasyTier client package for iOS 15+ rootless jailbreak environments. This fork packages a SwiftUI jailbreak app, the EasyTier core wrapper, and the privileged easytierd daemon into one rootless .deb.
This is not an official EasyTier release.
See docs/ROADMAP.md for current scope and remaining work.
EasyTier/ SwiftUI app
EasyTierShared/ Shared Swift constants and helpers
EasyTierNetworkExtension/ Original NetworkExtension target kept for compatibility
EasyTierWidgetExtension/ iOS widget target
Core/ Rust static library wrapping EasyTier core
Daemon/ Rust jailbreak daemon and IPC server
Packaging/deb/ Rootless jailbreak deb metadata, entitlements, launchd plist, scripts
ci_scripts/ Build bootstrap helpers
docs/ Public roadmap and project notes
The current local build has been verified with:
- macOS 12.6.2
- Xcode 14.2, iPhoneOS SDK 16.2
- Rust/Cargo 1.96.0
- Rust target
aarch64-apple-ios protoc3.21.12dpkg-deb1.21.18ldid2.1.5
Required commands:
xcodebuild xcrun rustup rustc cargo protoc dpkg-deb ldid file otool ditto
The deb script prepends /opt/homebrew/bin:/usr/local/bin to PATH, because Homebrew-installed protoc, dpkg-deb, and ldid are commonly located there.
Install the Rust iOS target:
rustup target add aarch64-apple-iosInstall package tools with Homebrew if they are missing:
brew install protobuf dpkg ldidci_scripts/ci_post_clone.sh can prepare Rust and protoc for CI-like environments, but it does not replace the Xcode, dpkg-deb, or ldid requirements.
There is one deb build entry point:
Packaging/deb/scripts/build_deb.shBy default it:
- Builds the
EasyTierXcode scheme foriphoneos. - Builds
Daemonwith Cargo.Daemon/.cargo/config.tomlpins the daemon target toaarch64-apple-ios. - Stages the rootless filesystem tree.
- Re-signs the app executable and daemon with the packaging entitlements.
- Produces a rootless
.deb.
Release build:
CONFIGURATION=Release VERSION=0.3.0 Packaging/deb/scripts/build_deb.shDefaults:
CONFIGURATION=DebugVERSIONis read fromPackaging/deb/control
Output:
Packaging/deb/dist/com.zeroninex.easytier_${VERSION}_iphoneos-arm64.deb
Package existing iOS arm64 build products without rebuilding:
Packaging/deb/scripts/build_deb.sh \
--package-only \
--app /path/to/EasyTier.app \
--daemon /path/to/easytierd \
--version 0.3.0Both EasyTier.app/EasyTier and easytierd must be iOS arm64 binaries. The script rejects macOS host binaries.
Install the generated .deb on a rootless jailbreak device. The desktop entry is installed as a jailbreak app under /var/jb/Applications/EasyTier.app, and runtime data and logs are stored under /var/jb/var/lib/easytier/.
The package also cleans legacy com.zeroninx package and daemon paths, plus matching mobile app/data containers, before registering the jailbreak app.
The package installs:
/var/jb/Applications/EasyTier.app
/var/jb/usr/bin/easytierd
/var/jb/Library/LaunchDaemons/com.zeroninex.easytierd.plist
GNU General Public License v3.0 or later. See LICENSE.