ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

ReVanced Manager 应用管理指南:在 Apps 标签页中查看、打开、重新修补与卸载已修补应用

ReVanced Manager 应用管理指南:在 Apps 标签页中查看、打开、重新修补与卸载已修补应用 ReVanced Manager 应用管理指南在 Apps 标签页中查看、打开、重新修补与卸载已修补应用【免费下载链接】revanced-manager Application to use ReVanced on Android项目地址: https://gitcode.com/GitHub_Trending/re/revanced-managerReVanced Manager 是用于在 Android 上生成并安装 ReVanced 修补版应用的图形化管理工具。本文聚焦于该项目的应用管理环节如何进入Apps标签页、识别列表中“已修补”与“可修补”两类应用、查看应用详情并完成打开、重新修补Repatch、卸载Uninstall、移除补丁Unpatch以及 Root 挂载Mount等操作。读完本文你将能独立完成日常的修补后应用管理流程并理解这些操作在源码层面AppsScreen.kt、InstalledAppInfoScreen.kt、RootInstaller.kt是如何实现的。管理已修补应用的基本步骤官方使用文档 docs/2_2_managing_apps.md 给出了一条极简的操作路径这是整个应用管理流程的核心骨架点击顶部导航栏中的Apps标签页在列表中选择想要查看view、打开open、重新修补re-patch或卸载uninstall的应用。后续所有小节都是围绕这两个步骤展开的细节与原理说明。在 ReVanced Manager 中Apps标签页是 Dashboard 主界面的第一个分页由 DashboardScreen.kt 通过HorizontalPager承载点击应用后通过 Nav.kt 中定义的InstalledApplicationInfo(packageName)或SelectedApplicationInfo路由进入对应的详情页。Apps 标签页两类应用与三种操作入口进入Apps标签页后界面由 AppsScreen.kt 渲染数据由 AppsViewModel.kt 提供。列表实际上聚合了两类应用已修补应用Patched来自InstalledAppRepository.getAll()Room 数据库installed_app表即曾经通过 ReVanced Manager 修补并安装过的应用。条目左侧带有AutoAwesome图标标识可修补应用Patchable来自PM.appList设备上所有已安装应用显示补丁数量徽标patch_count与建议版本suggestedVersion等元信息。列表按以下分组顺序呈现见buildAppListAppsScreen.kt分组触发条件标题资源Pinned apps置顶应用被长按置顶pinned_apps_section_titleAvailable apps可用存在未置顶的应用available_apps_section_title对应用条目本身支持以下交互单击已修补应用进入InstalledAppInfoScreen应用信息页可修补应用进入SelectedAppInfoScreen修补配置页长按调用viewModel.togglePinned(packageName)将应用加入/移出PreferencesManager.pinnedApps偏好集合AppsViewModel.kt用于置顶或取消置顶搜索顶部SearchBar支持按包名、原包名或应用标签过滤matchesQueryAppsScreen.kt占位文案为search_apps未安装标记当已修补应用的PackageInfo无法从系统获取时条目尾部显示Not installednot_installed资源AppsScreen.kt。从存储导入 APK列表外的第四个入口Apps列表顶部还有一个Select from storageselect_from_storage入口点击后通过ActivityResultContracts.GetContent()拉起系统文件选择器只接受APK_MIMETYPE。选中后由AppsViewModel.handleStorageResult将文件复制到应用私有临时目录uiTempDir/input.apk解析出包名与版本后封装为SelectedApp.Local(temporary true)AppsViewModel.kt直接进入修补配置页。若设备上没有可用的文件选择器会弹出no_file_picker_found提示AppsScreen.kt。已修补应用详情页打开、卸载、移除补丁与重新修补点击某个已修补应用后进入 InstalledAppInfoScreen.kt 对应的应用信息页。页面顶部展示应用图标、名称、修补后的版本号以及仅对 Mount 类型当前的挂载状态下方是四个核心操作按钮其可用性由安装类型InstallType决定。安装类型Default 与 Mount每个已修补应用在数据库中都会记录其安装方式见 InstalledApp.kt 中的枚举定义InstallType说明详情页可用操作DEFAULT标准安装直接覆盖安装修补版 APK打开、卸载Uninstall、重新修补MOUNT通过 Magisk 模块 bind mount 方式挂载需 Root打开、移除补丁Unpatch、挂载/卸载Mount/Unmount、重新修补详情页同时展示currentPackageName修补后的包名、originalPackageName原始包名两者不同时才显示与安装类型三项元信息InstalledAppInfoScreen.kt。打开应用点击Openopen_app按钮调用viewModel.launch()即pm.launch(currentPackageName)InstalledAppInfoViewModel.kt通过系统PackageManager的启动 Intent 拉起该应用。卸载应用Default 安装类型对DEFAULT类型点击Uninstall会调用pm.uninstallPackage(...)——项目基于Ackpine会话式卸载 API 实现ru.solrudev.ackpine.uninstaller。卸载成功或失败的结果会通过Session.State回调处理若失败原因不是UninstallFailure.Aborted则弹出uninstall_app_fail提示卸载完成后无论结果如何都会从数据库中删除该应用的记录并返回上一页InstalledAppInfoViewModel.kt。移除补丁与挂载控制Mount 安装类型需 Root对于MOUNT类型按钮区变为Unpatch移除补丁与Mount/Unmount挂载/卸载两者都要求rootInstaller.hasRootAccess()为真InstalledAppInfoScreen.kt。其底层实现位于 RootInstaller.kt挂载执行mount -o bind 修补版APK路径 原始APK路径其中修补版 APK 位于/data/adb/modules/包名-revanced/包名.apkmodulesPath常量RootInstaller.kt卸载执行umount -l解除绑定移除补丁先卸载若已挂载随后递归删除/data/adb/modules/包名-revanced模块目录deleteRecursively()RootInstaller.kt恢复原始应用。点击Unpatch前会弹出确认对话框unpatch_app/unpatch_description“所有补丁将被移除原始应用将被恢复”InstalledAppInfoScreen.kt。Root 服务的通信通过 AIDL 接口IRootSystemService.aidl与ManagerRootService完成远程文件系统操作走FileSystemManagerRootInstaller.kt。查看已应用的补丁详情页的Applied patchesapplied_patches条目显示已应用补丁的总数多语言复数资源patch_count点击后弹出AppliedPatchesDialog查看补丁清单InstalledAppInfoScreen.kt。数据来自InstalledAppRepository.getAppliedPatches()与getInstalledPatchBundles()即 Room 中按包名关联的AppliedPatch与InstalledPatchBundle记录InstalledAppRepository.kt。重新修补RepatchRepatch按钮通过onPatchClick(installedApp.originalPackageName)回调以原始包名作为参数重新进入修补流程InstalledAppInfoScreen.kt。对MOUNT类型同样要求 Root 权限。该入口会引导至应用选择/修补配置页复用正常的打补丁管线详见 docs/2_1_patching.md。可修补应用修补前的配置页点击可修补应用或从存储导入的 APK进入 SelectedAppInfoScreen.kt这是“重新修补”前的核心配置页包含三个关键设置项Select patches选择补丁显示当前已选补丁数量patch_selector_item_description若相对于默认选择有改动会附加patch_selection_changed_warning提示Version目标版本根据所选补丁的compatiblePackages约束计算版本交集buildVersionOptionsSelectedAppInfoScreen.kt。当用户开启“允许不兼容补丁”且所选版本不在严格兼容列表内时显示version_compatibility_warning若完全无版本约束则显示Any available version允许选择任意版本Select APK sourceAPK 来源Auto自动解析优先已安装 APK、已下载 APK、下载器最后回退到存储选择、已下载的 APK、已配置的下载器以及从存储选择 APK 文件AppSourceSelectorDialogSelectedAppInfoScreen.kt。若选择需要联网的来源且当前网络为计费网络会显示network_metered_warning警告卡片。当所选补丁数大于 0 且没有阻塞性错误时右下角会出现Patch悬浮按钮若存在未填写的必选补丁选项先跳转RequiredOptions页面否则直接进入打补丁流程SelectedAppInfoScreen.kt。数据清理与状态同步机制AppsViewModel在初始化时会对已修补应用做一次“存活校验”fetchPackageInfos对MOUNT类型检查 Root 模块目录是否还存在对DEFAULT类型检查系统PackageManager是否仍能查到该包名。校验失败的应用会通过installedAppsRepository.delete(app)自动从本地数据库移除AppsViewModel.kt因此Apps列表始终反映真实可管理的应用集合不会残留已卸载应用的僵尸条目。下一步至此你已经掌握了查看、打开、重新修补与卸载已修补应用的完整流程。接下来官方文档的下一章节会讲解如何新增补丁源、管理已有补丁以及移除补丁请继续阅读 Managing patches补丁管理完整的使用流程请参阅 docs/2_usage.md应用修补的具体步骤见 docs/2_1_patching.md。【免费下载链接】revanced-manager Application to use ReVanced on Android项目地址: https://gitcode.com/GitHub_Trending/re/revanced-manager创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表