Сборка и выпуск
Исходники каждой версии приложены к релизу (RVC-x.y.z-source.zip).
Что нужно
- JDK 17+;
- Android SDK (platform 36, build-tools 36) и NDK 27.2.12479018;
- Rust (stable) с целями
aarch64-linux-android,armv7-linux-androideabi,x86_64-linux-android,i686-linux-androidиcargo-ndk; - Python 3 и GitHub CLI — для выпуска.
Сборка
./scripts/fetch-natives.sh # libv2ray.aar (Xray) и libwg-go.so (AmneziaWG) с проверкой SHA-256, урезанные геобазы
./scripts/build-rust.sh # librvcnet.so для четырёх ABI
./gradlew :app:testDebugUnitTest :app:assembleRelease -PrvcVersion=1.0.3APK появятся в app/build/outputs/apk/release/: по одному на ABI и universal.
Подпись
keystore.properties в корне проекта (storeFile, storePassword, keyAlias, keyPassword) или переменные окружения RVC_KEYSTORE, RVC_KEYSTORE_PASSWORD, RVC_KEY_ALIAS, RVC_KEY_PASSWORD.
Один ключ на все версии
Обновление из приложения сверяет сертификат подписи с установленным. APK, подписанный другим ключом, не установится поверх.
Выпуск версии
# APK переименовываются в RVC-<версия>-<abi>.apk и кладутся в dist/
python scripts/make-update-json.py 1.0.3 dist makdren/RVC notes.txt # update.json
sha256sum dist/RVC-1.0.3-*.apk > dist/SHA256SUMS
gh release create v1.0.3 -R makdren/RVC dist/RVC-1.0.3-*.apk dist/update.json dist/SHA256SUMSВ notes.txt строки, начинающиеся с - , попадают в окно обновления (первые три — в баннер на главном экране). На Windows запускайте скрипт с PYTHONIOENCODING=utf-8.
versionCode = MAJOR × 10000 + MINOR × 100 + PATCH.
Формат update.json
RVC раз в сутки читает https://github.com/makdren/RVC/releases/latest/download/update.json:
{
"versionCode": 10003,
"versionName": "1.0.3",
"notes": ["Что изменилось"],
"assets": {
"arm64-v8a": {"url": "https://github.com/makdren/RVC/releases/download/v1.0.3/RVC-1.0.3-arm64-v8a.apk", "sha256": "…", "size": 17187568},
"universal": {"url": "…", "sha256": "…", "size": 64036138}
}
}Этот сайт
Документация лежит в папке site/ репозитория и собирается VitePress. При каждом изменении в main GitHub Actions пересобирает сайт и публикует его на GitHub Pages.
cd site
npm ci
npm run docs:dev # локально на http://localhost:5173/RVC/