frida: Install re.frida.server via the extra-debs mechanism

On a --frida build, fetch_debs.sh resolves the latest frida iphoneos-arm64
release deb (== re.frida.server: no Depends, rootless /var/jb layout) into the
debs cache; the existing first-boot `dpkg -i` step installs it. VPHONE_FRIDA is
forwarded through the host CFW install. No APT source or dependency resolution.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
zqxwce
2026-08-12 11:40:24 +03:00
committed by zqxwce
co-authored by Claude Fable 5
parent 74b6076557
commit ae29e6de84
2 changed files with 39 additions and 0 deletions
+1
View File
@@ -80,6 +80,7 @@ echo "[*] running $INSTALLER (files placed on host mounts)..."
( cd "$VM_DIR" && env CFW_HOST_CONTAINER="$CONT" _VPHONE_PATH="$P" \
${SPOOF_BUILD:+SPOOF_BUILD="$SPOOF_BUILD"} \
${FORCE_DSC_MAXSLIDE:+FORCE_DSC_MAXSLIDE="$FORCE_DSC_MAXSLIDE"} \
${VPHONE_FRIDA:+VPHONE_FRIDA="$VPHONE_FRIDA"} \
zsh "$SCRIPT_DIR/$INSTALLER" . )
cleanup
+38
View File
@@ -70,6 +70,44 @@ else
echo " [=] No manifest at $MANIFEST (skipping downloads)"
fi
# Opt-in (vm create --frida): fetch the latest Frida iOS release deb. It's
# re.frida.server (no deps, rootless layout), so the first-boot dpkg -i handles it.
if [[ "${VPHONE_FRIDA:-0}" == "1" ]]; then
echo " [>] Resolving latest Frida iOS release..."
frida_url="$(curl -fsSL --connect-timeout 20 \
https://api.github.com/repos/frida/frida/releases/latest 2>/dev/null \
| grep -o 'https://[^"]*/frida_[^"]*_iphoneos-arm64\.deb' | head -1)"
if [[ -n "$frida_url" ]]; then
frida_name="$(deb_filename_from_url "$frida_url")"
# Keep only one Frida deb in the cache so a newer "latest" fully replaces
# any previously-pinned version at install time.
for old in "$CACHE_DIR"/frida_*_iphoneos-arm64.deb(N); do
[[ "${old:t}" == "$frida_name" ]] || rm -f "$old"
done
dest="$CACHE_DIR/$frida_name"
if [[ -s "$dest" ]]; then
echo " [=] Cached: $frida_name"
cached=$((cached + 1))
else
echo " [>] Downloading: $frida_url"
tmp="$dest.download"
if curl -fL --retry 2 --connect-timeout 20 -o "$tmp" "$frida_url"; then
mv -f "$tmp" "$dest"
echo " [+] Downloaded: $frida_name"
downloaded=$((downloaded + 1))
else
rc=$?
rm -f "$tmp"
echo " [!] ERROR: Frida download failed (curl exit $rc), skipping" >&2
failed=$((failed + 1))
fi
fi
else
echo " [!] ERROR: could not resolve latest Frida iOS deb URL, skipping" >&2
failed=$((failed + 1))
fi
fi
total=0
for f in "$CACHE_DIR"/*.deb(N); do
total=$((total + 1))