Add SSH server runtime to public build

This commit is contained in:
admin committed 2026-11-12 14:28:10 +08:00
1 parent 71e5d72561
commit 73fd922307
6 files changed
+138 -5

No files matched your search

+3 -3
View File
@@ -17,8 +17,8 @@ root helper.
| WebDAV server | yes | yes | | WebDAV server | yes | yes |
| `.deb` installer + apt/dpkg | yes | yes | | `.deb` installer + apt/dpkg | yes | yes |
| Terminal | — | full a-Shell command set | | Terminal | — | full a-Shell command set |
| SSH server | — | mobile / root, password `alpine`, port 2222 | | SSH server | mobile / root, password `alpine`, port 2222 | same |
| `mount`, `extract`, archive support | terminal only | yes | | `mount`, `extract`, archive support | SSH / basic shell | yes |
| `neofetch`, `respring` | — | yes | | `neofetch`, `respring` | — | yes |
Release assets are named exactly: Release assets are named exactly:
@@ -118,7 +118,7 @@ extract sample.zip -C out
`./test` is a `#!/bin/dash` script; iOS does not allow executing Mach-O files `./test` is a `#!/bin/dash` script; iOS does not allow executing Mach-O files
from the app data container, so scripts are run through the bundled `dash`. from the app data container, so scripts are run through the bundled `dash`.
SSH (developer build): SSH (both builds; developer also has the full terminal command set):
```sh ```sh
ssh -p 2222 mobile@DEVICE_IP # password: alpine ssh -p 2222 mobile@DEVICE_IP # password: alpine
+1 -2
View File
@@ -2118,8 +2118,7 @@ static NSString *hook_prefTitleForFooter(id self, SEL _cmd, UITableView *tableVi
@"Running · %@ · users: mobile, root · password: alpine", @"Running · %@ · users: mobile, root · password: alpine",
WQSSHServerURL()]; WQSSHServerURL()];
} }
return @"Enable SSH access for mobile and root (password alpine). " return @"Enable SSH access for mobile and root (password alpine).";
@"Requires the developer build with libssh.";
} }
return orig_prefTitleForFooter return orig_prefTitleForFooter
? ((NSString *(*)(id, SEL, UITableView *, NSInteger))orig_prefTitleForFooter)( ? ((NSString *(*)(id, SEL, UITableView *, NSInteger))orig_prefTitleForFooter)(
+9
View File
@@ -118,6 +118,15 @@ mkdir -p "$APP/Frameworks"
cp "$DYLIB" "$APP/Frameworks/FilzaApplySandboxExt.dylib" cp "$DYLIB" "$APP/Frameworks/FilzaApplySandboxExt.dylib"
codesign --remove-signature "$APP/Frameworks/FilzaApplySandboxExt.dylib" 2>/dev/null || true codesign --remove-signature "$APP/Frameworks/FilzaApplySandboxExt.dylib" 2>/dev/null || true
# SSH server runtime is included in both public and developer builds.
if [[ -f "$REPO_ROOT/vendor/libssh/libssh.4.dylib" ]]; then
cp "$REPO_ROOT/vendor/libssh/libssh.4.dylib" "$APP/Frameworks/libssh.4.dylib"
fi
if [[ -d "$REPO_ROOT/vendor/openssl.framework" ]]; then
rm -rf "$APP/Frameworks/openssl.framework"
cp -R "$REPO_ROOT/vendor/openssl.framework" "$APP/Frameworks/openssl.framework"
fi
if [[ "${WQ_TERMINAL:-0}" == "full" ]]; then if [[ "${WQ_TERMINAL:-0}" == "full" ]]; then
ASHELL_IPA="${ASHELL_IPA:-$HOME/Downloads/Terminal.ipa}" ASHELL_IPA="${ASHELL_IPA:-$HOME/Downloads/Terminal.ipa}"
"$REPO_ROOT/scripts/prepare_dev_terminal.sh" "$APP" "$ASHELL_IPA" "$REPO_ROOT/scripts/prepare_dev_terminal.sh" "$APP" "$ASHELL_IPA"
+24
View File
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>openssl</string>
<key>CFBundleIdentifier</key>
<string>org.openssl.OpenSSL</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>openssl</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.1.123</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>MinimumOSVersion</key>
<string>14.0</string>
</dict>
</plist>
+101
View File
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Info.plist</key>
<data>
FVnf8y74Ll+GghvlSKXTaKcT3i8=
</data>
</dict>
<key>files2</key>
<dict/>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>
Binary file not shown.