mirror of
https://github.com/okhsunrog/vpnhide.git
synced 2026-08-21 22:43:46 +00:00
* docs: refresh installation and backend docs
* docs: fix review findings and add KPM to update-json
Cross-checked the docs refresh against the code and corrected:
- protocol.md: config parser is vpnhide_parse_config (not the legacy
vpnhide_parse_target_uids); path is kmod/shared/vpnhide_logic.h; drop the
unverified 0x2026 KPatch-Next marker (activator drives it via the CLI).
- zygisk/README: module declares Zygisk API v2 (not v5); add the recv hook
row and the if<N> renamed-netdev match.
- README (en/ru): live-check counts are 13 native / 12 Java; Diagnostics is
under Settings, not a tab; mention the Statistics tab; note KPM beta parity.
- detection-vectors: KPM host-route helper is kpm_is_public_host_route{4,6};
restore CONFIG_KPROBES and the Zygisk qualifiers; codegen renders four targets.
- storage.md: legacy files are no longer user-managed (migration inputs), not
'gone'. CLAUDE.md: activator has four bins (kmod/kpm/zygisk/ports).
- development/ROADMAP/kmod/lsposed/portshide READMEs + AGENTS.md: assorted
accuracy fixes (KPM needs a KernelPatch runtime, per-KMI kmod zip name, etc.).
- CONTRIBUTING.md: clang-format uses scripts/clang-format-c.sh (covers KPM src).
- portshide customize.sh: 'Hiding -> Ports' (renamed tab).
- update-json.sh: emit update-kpm.json so KPM gets Magisk/KSU update checks.
* docs: correct diagnostics check count (25, not 26 vectors)
* docs: refresh README screenshots for the 1.0.0 UI
Replace the v0.5.3-era screenshots (old per-tab Protection UI) with a
new 1.0.0 set: VPN-hidden dashboard, the unified Hiding list with
J/N/A/P, the Statistics tab + per-hook breakdown, per-app hook selection,
diagnostics, settings, and the community screen. Extra shots
(statistics-apps, settings-advanced, diagnostics-java, settings-developer)
are included for the release notes.
* docs: fix the how-it-works layer breakdown
The old 'Layer 3 — additional app-level controls' bucket was wrong:
interface hiding is what Layers 1+2 already do, app-hiding is done by the
LSPosed/Java layer (system_server PackageManager hooks), and ports is a
separate module. Fold app-hiding into Layer 1 (LSPosed) and make Layer 3
the standalone portshide module.
* docs: conceptual-coherence pass on the 5 core docs
Second review pass, this time for architectural coherence rather than
code-facts. Fixes:
- README (en/ru): 'What vpnhide hides' stopped reifying interface hiding
as a standalone 'layer'/'role' and now ties the three hiding goals to
the four J/N/A/P roles (interface = Java + Native, toggled independently)
- README (ru): add the KPM-beta hook-parity caveat (parity with the EN side)
- protocol.md: app-hiding is a normal lsposed mask bit, not a separate
'package/observer records' entry in the §6 profile table
- detection-vectors.md: a complete install is two components (native + lsposed),
not 'two roles'; name both lsposed jobs
- storage.md: scope the text protocol to the config wire (LSPosed reuses the
format for its state file); 'by function' not 'by role'; note the Apps role
shares the same resolver; heading no longer files ports under 'Native layer'
66 lines
2.1 KiB
Bash
Executable file
66 lines
2.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Generates Magisk/KSU updateJson files pointing to the current VERSION.
|
|
# Run AFTER the GitHub release is published so zipUrl is already valid.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
|
|
VERSION="$(tr -d '[:space:]' < VERSION)"
|
|
|
|
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo "error: VERSION must be MAJOR.MINOR.PATCH, got '$VERSION'" >&2
|
|
exit 1
|
|
fi
|
|
|
|
IFS='.' read -r MAJOR MINOR PATCH <<< "$VERSION"
|
|
# Force base-10: the regex above accepts a zero-padded component (e.g. 1.08.0),
|
|
# which bash would otherwise read as octal in $(( )) and abort on a digit 8/9.
|
|
VERSION_CODE=$(( 10#$MAJOR * 10000 + 10#$MINOR * 100 + 10#$PATCH ))
|
|
|
|
REPO="https://github.com/okhsunrog/vpnhide"
|
|
RAW="https://raw.githubusercontent.com/okhsunrog/vpnhide/main"
|
|
|
|
echo "Generating update-json for v${VERSION} (versionCode: $VERSION_CODE)"
|
|
|
|
mkdir -p update-json
|
|
KMOD_KMIS=("android12-5.10" "android13-5.10" "android13-5.15" "android14-5.15" "android14-6.1" "android15-6.6" "android16-6.12")
|
|
for kmi in "${KMOD_KMIS[@]}"; do
|
|
cat > "update-json/update-kmod-${kmi}.json" <<EOJSON
|
|
{
|
|
"version": "v${VERSION}",
|
|
"versionCode": ${VERSION_CODE},
|
|
"zipUrl": "${REPO}/releases/download/v${VERSION}/vpnhide-kmod-${kmi}.zip",
|
|
"changelog": "${RAW}/update-json/changelog.md"
|
|
}
|
|
EOJSON
|
|
echo " update-json/update-kmod-${kmi}.json"
|
|
done
|
|
|
|
cat > "update-json/update-zygisk.json" <<EOJSON
|
|
{
|
|
"version": "v${VERSION}",
|
|
"versionCode": ${VERSION_CODE},
|
|
"zipUrl": "${REPO}/releases/download/v${VERSION}/vpnhide-zygisk.zip",
|
|
"changelog": "${RAW}/update-json/changelog.md"
|
|
}
|
|
EOJSON
|
|
echo " update-json/update-zygisk.json"
|
|
|
|
cat > "update-json/update-kpm.json" <<EOJSON
|
|
{
|
|
"version": "v${VERSION}",
|
|
"versionCode": ${VERSION_CODE},
|
|
"zipUrl": "${REPO}/releases/download/v${VERSION}/vpnhide-kpm.zip",
|
|
"changelog": "${RAW}/update-json/changelog.md"
|
|
}
|
|
EOJSON
|
|
echo " update-json/update-kpm.json"
|
|
|
|
cat > "update-json/update-ports.json" <<EOJSON
|
|
{
|
|
"version": "v${VERSION}",
|
|
"versionCode": ${VERSION_CODE},
|
|
"zipUrl": "${REPO}/releases/download/v${VERSION}/vpnhide-ports.zip",
|
|
"changelog": "${RAW}/update-json/changelog.md"
|
|
}
|
|
EOJSON
|
|
echo " update-json/update-ports.json"
|