尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ReVanced Manager 源码构建实战:JDK 17 环境搭建、Gradle 打包与 GitHub Packages 认证

ReVanced Manager 源码构建实战:JDK 17 环境搭建、Gradle 打包与 GitHub Packages 认证 ReVanced Manager 源码构建实战JDK 17 环境搭建、Gradle 打包与 GitHub Packages 认证【免费下载链接】revanced-manager Application to use ReVanced on Android项目地址: https://gitcode.com/GitHub_Trending/re/revanced-manager本篇技术指南完整讲解如何从源码构建 ReVanced Manager Android 应用APK涵盖 JDK 17 环境安装WinGet / SDKMAN! 两种方式、仓库克隆、assembleRelease构建命令以及构建失败时如何通过 Personal Access Token 认证 GitHub Packages 依赖仓库。读完本文你将能够独立搭建构建环境、产出可安装的 Release APK并理解项目各构建配置文件settings.gradle.kts、gradle.properties、app/build.gradle.kts背后的构建逻辑。构建前了解项目结构与技术栈ReVanced Manager 是 ReVanced 生态的桌面级 Android 应用用于下载、打补丁和管理 Android 应用。仓库采用多模块 Gradle 工程由 settings.gradle.kts 声明了:app与:api两个模块:app主应用模块包含全部 UIJetpack Compose、打补丁运行时、安装器与各类业务逻辑:api独立的下载器 API 库app.revanced.manager.downloader供第三方下载器接入使用独立发布到 Maven 仓库。从 gradle/libs.versions.toml 与 gradle/wrapper/gradle-wrapper.properties 可以看到当前仓库的构建环境基线组件版本以仓库实际为准GradleWrapper 分发包9.4.0Android Gradle Plugin8.13.2Kotlin2.3.21ReVanced Patcher22.0.2-dev.1Compose BOM2026.02.01Room2.8.4在开始构建之前建议先通读仓库根目录的 README.md 了解项目定位Continuing the legacy of Vanced以及 docs/README.md 中的文档目录结构。本文对应的官方构建说明位于 docs/4_building.md以下内容以它为骨架并结合源码逐层展开。第一步安装 JDK 17ReVanced Manager 的构建过程要求JDK 17。这是硬性约束而非建议版本在 app/build.gradle.kts 中Kotlin 编译显式指定了jvmToolchain(17)与jvmTarget JvmTarget.JVM_17同时compileOptions也设置了sourceCompatibility/targetCompatibility为JavaVersion.VERSION_17:api模块在 api/build.gradle.kts 中同样如此。因此如果本机默认 JDK 版本不符Gradle 会通过 Toolchain 机制尝试自动下载匹配的 JDK或直接报错要求你提供 JDK 17。官方推荐使用Temurin JDK 17Eclipse Adoptium 项目维护的 OpenJDK 发行版。根据你的操作系统有两种推荐的安装方式。方式一使用 WinGetWindowsWindows 用户可以直接使用 Windows 包管理器 WinGet 安装winget install EclipseAdoptium.Temurin.17.JDK安装完成后需要确保java命令在PATH中可用并正确设置JAVA_HOME环境变量指向 JDK 17 的安装目录。方式二使用 SDKMAN!macOS / LinuxmacOS 与 Linux 用户推荐使用 SDKMAN! 安装指定版本的 Temurin JDKsdk install java 17.0.18-tem这条命令会安装 Temurin 17.0.18 发行版。如果已经安装了其他 JDK 版本可以切换默认版本sdk use java 17.0.18-tem验证安装无论使用哪种方式安装后都应验证版本java -version输出应显示类似openjdk version 17.0.x的 17 系列版本号。JDK 安装就绪后即可进入下一步。第二步克隆仓库使用git clone将仓库克隆到本地并进入项目根目录git clone https://gitcode.com/GitHub_Trending/re/revanced-manager cd revanced-manager克隆完成后项目根目录应当包含settings.gradle.kts、build.gradle.kts、gradlew、gradlew.bat以及app/、api/、docs/等目录。gradlewUnix 系与gradlew.batWindows是 Gradle Wrapper 脚本它们会根据 gradle/wrapper/gradle-wrapper.properties 自动下载并锁定指定版本的 Gradle本仓库为 9.4.0因此无需预先单独安装 Gradle。第三步执行 Gradle 构建在项目根目录执行以下命令构建 Release APK./gradlew assembleRelease在 Windows 上请使用gradlew.bat assembleRelease或.\gradlew.bat assembleRelease。首次构建时Gradle Wrapper 会下载 Gradle 9.4.0 发行版随后 Gradle 会解析 settings.gradle.kts 中声明的仓库mavenLocal、mavenCentral、google、gradlePluginPortal、JitPack 以及 GitHub Packages拉取全部依赖后开始编译。整个流程耗时取决于网络与机器性能请耐心等待。构建产物位置与命名构建成功后的 APK 输出位置与命名由 app/build.gradle.kts 决定。其中定义了输出文件名模板val outputApkFileName ${rootProject.name}-$version.apkrootProject.name为revanced-manager见 settings.gradle.kts因此默认产物为app/build/outputs/apk/release/revanced-manager-version.apk例如当前仓库 app/CHANGELOG.md 记录的最新版本为 2.6.1则产物大致命名为revanced-manager-2.6.1.apk。版本号同时决定了versionCode的取值构建脚本使用语义化版本解析器将major * 100_000_000 minor * 100_000 patch * 100 (预发布号或 99)计算为整数版本号。Release 构建的签名逻辑assembleRelease产出的 APK 会经过签名。签名策略同样在 app/build.gradle.kts 中定义逻辑如下如果项目存在signAsDebug属性或根目录下不存在keystore.jks文件则直接使用 Android 的debug 签名便于本地自测安装否则从环境变量读取正式签名凭据KEYSTORE_PASSWORD密钥库密码KEYSTORE_ENTRY_ALIAS密钥条目别名KEYSTORE_ENTRY_PASSWORD密钥条目密码。这意味着普通开发者不配置任何签名信息也能完成构建——产物将以 debug 密钥签名可正常安装到设备用于自测。关于 Release 构建的混淆需要特别说明的是app/build.gradle.kts 中 Release 构建显式设置了isMinifyEnabled false isShrinkResources false源码注释解释了原因Causes patching to not work properly, if enabled.开启混淆会导致打补丁功能异常。这是因为 ReVanced Patcher 需要基于类名反射定位与改写代码混淆会破坏这一机制。因此该项目的 Release APK 不做代码混淆与资源收缩这也是本地构建与官方发布产物行为一致的重要前提。处理 GitHub Packages 认证问题为什么会失败执行assembleRelease时如果解析依赖阶段报出401 Unauthorized / authentication类错误原因是部分依赖托管在 GitHub Packages 上需要认证才能拉取。从 settings.gradle.kts 可以看到仓库中声明了名为githubPackages的 Maven 仓库maven { name githubPackages // A repository must be specified for some reason. registry is a dummy. url uri(https://maven.pkg.github.com/revanced/registry) credentials(PasswordCredentials::class) }它使用PasswordCredentials请求用户名与密码凭据。当 Gradle 解析依赖例如 gradle/libs.versions.toml 中revanced-patcher等由app.revanced组提供的构件需要访问该仓库时若本机未提供凭据构建即会失败。创建 Personal Access Token解决办法是创建一个具有read:packages权限的 GitHub Personal Access TokenPAT登录 GitHub进入账户的Settings → Developer settings → Personal access tokens生成一个新 Token在权限范围scopes中勾选read:packages仅需读取包无需其他权限复制生成的 Token 字符串并妥善保存。配置凭据文件将凭据写入~/.gradle/gradle.properties即 Gradle 用户主目录下的配置文件如果文件不存在则新建。文件内容如下githubPackagesUsername GitHub username githubPackagesPassword Personal access token这里的两个属性名不是随意取的githubPackages前缀与 settings.gradle.kts 中仓库的name githubPackages一一对应Gradle 会自动把githubPackagesUsername映射为用户名、githubPackagesPassword映射为密码填充到PasswordCredentials中。配置完成后重新执行./gradlew assembleRelease即可正常解析依赖并完成构建。构建配置速查源码级解读为了让你在排错或定制构建时有的放矢这里对关键构建配置文件做一次源码级梳理。gradle.properties项目级gradle.properties 定义了构建行为与 JVM 参数配置项值作用org.gradle.jvmargs-Xmx3072m -Dfile.encodingUTF-8分配 3 GB 堆内存给 Gradle 守护进程并固定 UTF-8 编码org.gradle.cachingtrue启用构建缓存加速重复构建org.gradle.paralleltrue启用并行构建:app与:api可并行编译org.gradle.configuration-cachefalse关闭配置缓存源码注释说明目前开启会导致:app:publish任务失败android.useAndroidXtrue启用 AndroidXandroid.builtInKotlinfalse不使用 AGP 内置 Kotlin 支持改由显式 Kotlin 插件驱动模块级构建脚本app/build.gradle.kts主应用模块。applicationId为app.revanced.manager.flutterminSdk为 26对应 Android 8.0 Oreo与 docs/0_prerequisites.md 中Android 8.0 及以上的要求一致compileSdk/targetSdk为 36。构建特性启用了 Compose、AIDL 与 BuildConfig原生部分通过 CMake 编译src/main/cpp/prop_override.cpp见 src/main/cpp/CMakeLists.txt并在jniLibs中打包了各 ABI 的libaapt2.so。此外构建脚本还注册了一个publish任务依赖assembleRelease产出 APK 并做 GPG 签名供官方自动化发布流程使用。api/build.gradle.kts下载器 API 库模块同样要求 JDK 17并配置了maven-publish与signing将app.revanced:revanced-manager-api发布到 GitHub Packageshttps://maven.pkg.github.com/revanced/revanced-manager。这意味着第三方开发者也可以基于:api模块构建并发布自己的下载器实现。验证构建产物并安装构建成功后将产物 APK 传输到 Android 8.0 设备上安装即可。也可以使用 ADB 直接安装adb install app/build/outputs/apk/release/revanced-manager-version.apk安装后可在设置 → 关于中核对版本号与 app/CHANGELOG.md 记录保持对应。若为自测构建debug 签名Android 系统会正常接受安装若需覆盖安装已存在的同版本应用可能需要先卸载旧版本或使用adb install -r。常见问题与排错构建报 authentication / 401 错误按上文处理 GitHub Packages 认证问题一节配置~/.gradle/gradle.properties中的githubPackagesUsername与githubPackagesPassword。JDK 版本不匹配确认java -version为 17 系列若安装了多个 JDK可通过JAVA_HOME或 Toolchain 配置指向 JDK 17。注意 gradle.properties 中org.gradle.jvmargs设置了 3 GB 堆内存机器内存较小时可酌情调低。首次构建缓慢Gradle 9.4.0 发行包与全部依赖需要从网络下载且需要访问 Google Maven、Maven Central、JitPack 与 GitHub Packages 等仓库网络受限环境可考虑配置 Gradle 镜像或提前预热依赖缓存。构建产物与预期命名不符输出文件名由rootProject.namerevanced-manager与版本号拼接而成具体以 app/build.gradle.kts 中outputApkFileName为准。延伸阅读构建完成后可以继续阅读仓库中的其他文档掌握完整使用流程docs/0_prerequisites.md设备前提条件Android 8.0 及以上docs/1_installation.md安装与初始配置docs/2_usage.md整体使用指南打补丁、管理应用、管理补丁、管理下载器、更新与设置docs/3_troubleshooting.md常见问题排查CONTRIBUTING.md参与贡献的规范与流程。对于想要深入源码的读者建议从 app/build.gradle.kts 的依赖清单出发沿着PatcherWorker、Session等核心类位于 patcher 目录理解打补丁流水线再结合本指南的构建流程即可形成从源码到 APK 再到运行时行为的完整认知闭环。【免费下载链接】revanced-manager Application to use ReVanced on Android项目地址: https://gitcode.com/GitHub_Trending/re/revanced-manager创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表