Features
- Added elapsed patching time to the Patcher Information widget for both regular and batch patching
- Added Repatch APK source retention so URV automatically reuses the original APK or split archive when repatching, with support for saved apps, batch patching, missing-source fallback, and Storage Management cleanup
- Added a delete action to individual saved unpatched app cards in Downloads, with a confirmation prompt before removing the stored APK
- Bumped Morphe Patcher to
1.9.0 - Added configurable Play Store installation source modes for the system and rooted mount installers, adapted from MorpheApp/morphe-manager@7e24461
- Bumped Morphe Patcher to
1.12.0 - Bumped Morphe Patcher to
1.14.0 - Patch bundle changelogs can now display the full changelog history, depending on your changelog loading and cache limit settings. This replaces the previous
Previous changelogssection - Added patcher-style installation feedback to the Split APK Merger, including installation cancellation, a success dialog, and distinct patched/merged app installation messages #666 #671 #672
- bundles: improve external bundle discovery and update handling (7576a65)
- manager: improve bundle updates and repatch workflows (5ab0751), closes #709 #692 #687 #639 #683 #682
- manager: improve file picking, patching and backups (#749) (0eada70)
- manager: improve patching, bundle, and settings workflows (d86bc1f), closes #621 #617 #603 #735 #734 #703 #702 #729 #726 #725 #718 #711
- patcher: add patcher and merger resource monitoring (#748) (5ca1a04)
- patcher: bump morphe patcher to
1.15.0(0cbb49a) - root: overhaul rooted mount system with split APK support and resilient recovery (#722) (600aa60)
- settings: add graph detail controls and fix theme restarts (4ff03e9)
- signature: add APK signing and signature check controls (fcddef8)
- signature: add patching workflows and APK source selection (#741) (ba839ae)
- storage: clean unused Repatch sources automatically (f03345b), closes #745
- Added a Shizuku installer option that reports Google Play as the installation source #380
- Improved dialog titles, keystore converter messaging, and storage usage
Clearbutton alignment for consistency #532 #485 #484 - Improved downloader and runtime revoke trust dialogs with consistent confirmation prompts #497
- Added toast feedback when force downloading all patch bundles starts or downloads nothing #531
- Improved patch selection and reset patch bundle dialogs with centered content, a restore icon, and consistent
Confirmactions #529 #530 - Added
vprefixes to downloader and runtime plugin version labels #526 - Updated the debug log export toast to
Debug log exported#527 - Improved Patcher Runtimes plugin action button styling so
UpdatematchesDelete/SettingsandRevoke trustuses the grey filled style #516 - Updated the local runtime plugin trust dialog secondary action from
DeletetoUninstall#521 - Updated downloader and runtime plugin trust dialog titles to
Trustfor consistency #522 - Updated runtime plugin delete and uninstall confirmation buttons to
Confirm#520 - Added specific copied URL toast messages for downloader plugins, runtime plugins, and patch bundles #514
- Replaced local downloader and runtime plugin repository URL copy buttons with copy icons #523
- Moved the local downloader and runtime plugin
Latestoption belowPre-release#517 - Improved downloader plugin action button styling so
UpdatematchesDelete/SettingsandRevoke trustuses the grey filled style #515 - Removed redundant
downloadertext from downloader plugin names in trust dialogs #518 - Removed package/id details from runtime plugin trust dialogs #519
- Added a Split APK merger progress notification with the manager notification icon #304
- Added the manager icon to the patching progress notification #301
- Added separate Split APK merger step expansion settings for auto-collapse, auto-expand, and active-category-only expansion #302
- Adjusted the wording for the search bar in the custom file picker from
Search foldertoSearch current directory#183 - Rename the
Show patch summary before patchingsettings toggle toShow patch confirmation screenfor consistency - Made the filter selection states on the
Select an appscreen persist #193 - Added setting to disable the swipe gesture to switch between tabs on the main screen (located in Settings > General) #196
- Added the android document providers directory sort filters to the custom file picker #182
- Added patch option & value preview cards to the patch selection screens patch widgets #188
- Made it so hold tapping on the top left back button on the patcher screen brings you back to the
Appsscreen #190 - Improved the metadata loader for split APKs on the
App infoscreen #190 - Made the patch bundle bar on the patch selection screen show even when theres only one bundle available #192
- Added a versioned per-runtime framework cache keys and updated modern AAPT2 binaries to TechnoIndian builds that are used for SDK 35+ patching
- Added upstream changes ReVanced/revanced-manager#2916
- Allow external apps to appear in the Android document provider as options to select files with #203
- Pressing the system back buton on the
Appstab now exits the app - Made search queries and filters on the custom file picker persist across sessions https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/209
- Improved export filenames for patch selections and keystores #205
- Added persistent bundle sorting to the
Patch Bundle Discovery#206 - Added a toggle in Settings > General that disables the swipe guesture on the patch selection screen #212
- Added live patching progress foreground notifications #207
- Set keystores generated with the
Keystore creatortool to use the maximum possible expiration date - Improved the push notification system by using websockets (this avoids having to use FCM) to keep the notifcation worker alive
- Added push notifications for manager updates #214
- Renamed
Search bundleson theDiscover patch bundlesscreen toSearch by bundle name#219 - Improved bundle and manager update alerts and websocket status wording
- Added a
Split APK installertool to theToolstab #189 - Redesigned and completely reorganized the settings screens https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/222
- Slight UI corrections and improvements in multiple parts of the app #223
- Added an option to choose an APK from URV downloaded apps for the Patch Profiles preset APK setting https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/224
- Made the package name of apps always shown on the
App infoscreen https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/225 - Improved the
Create custom YouTube icons & headerstool https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/211 - Added a toggle in Settings > Patcher that disables/enables the expansion of the main categories on the patcher screen that are running #201
- Corrected a few inconsistencies in Settings #240
- Aligned patcher step naming in the notification with the steps on the patcher screen https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/253
- Added a loading screen that appears when selecting an app from storage from the
Select an appscreen #255 - Added support for the ReVanced Patcher v22 while keeping backwards compatibility with v21 #252
- Overall improved the stability to all patcher runtimes
- Added device architecture, Android version, device model, and patcher version to the patcher logs
- Removed the duplicate export button from the App info screen top bar, keeping the existing export action in the main action row https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/260
- Updated the Morphe runtimes aapt2 binaries to the ones used by the official ReVanced Manager #272
- Improved the existing
Previous changelogsystem to backfill to a user set limit through settings - Remove
AAPT2 versionandAAPT sha256from the patcher logs and addedAAPT2 selected,Environment,Device nameandSelected patcheslines - Bumped Morphe dependencies
- Improved the
Patching in progressnotification #278 - Renamed the manager keystore file to
urv_keystore.keystoreand added migration/restore support for legacymanager.keystorebackups #268 - Updated the ReVanced
libaapt2.sobinaries to the ones used by the official ReVanced Manager - Added live substep counts to patcher progress group https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/261
- Improved app and patch search so closing search keeps filtered results visible, and both system back and top-bar back clear the search before leaving https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/261
- Improved patch option previews with a larger inline preview and a full preview dialog for long values like file paths https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/261
- Improved patch profile APK handling by preserving split archive extensions, loading split APK icons correctly and using detected APK versions for compatibilit https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/261
- Patch profiles can now use the version detected from a selected APK
- Added an option to only keep the latest plugin-downloaded APK per app
- Added a delete confirmation for selected downloaded apps in
Downloads - Updated the manager update notification and update banner text to use clearer URV-specific wording, including
URV Manager update foundandA new manager update is available#274 - Increased the size of the status bar icon #230
- Improved patch bundle update notifications to use clearer "update found" wording and correct singular/plural grammar for available bundle updates #235
- Improved patch bundle update notifications with the manager icon, ordered bundle/version lists, and stacked grouped alerts #299
- Added persistent tracking for the currently viewed manager update version so the icon state stays correct across app restarts #232
- Reordered the General settings screen so Navigation & Tabs appears before Themes, while Themes and Background remain grouped together #234
- Renamed the screen shown after selecting an app to patch from App info to
Preparing to patchhttps://github.com/Jman-Github/Universal-ReVanced-Manager/issues/264 - Updated the
AppsandPatch Profilestab search hints to use consistent wording ofSearch by app nameandSearch by profile name#237 - Improved the Patch Profiles bundle selector with tabbed bundle switching and cleaner bundle source labeling https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/242
- Improved patch option viewing in Patch Profiles with a three-dots menu for patches with options
- Clarified changelog link wording by changing the external action to
View changelogs on GitHubon the manager update and changelog settings screens #233 - Added a scrollable changelog preview directly to the manager update popup, so release notes can be read without opening the full updater screen #229
- Added a restart prompt after changing the in-app language https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/244
- Removed an extra UI separator from the
Generalsettings screen #287 - Improved patcher state handling across all patcher runtimes
- Added a
Prevent accidental touchingsetting that protects against accidental page/tab swipes when enabled, and makes page/tab swipes easier with shorter drags when disabled https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/286 - Added installed apps as a source for the Split APK merge tool #197
- Added a split selection step before merging so specific modules can be included or excluded #197
- mproved split merge loading, cancellation, and progress handling
- Added icons to settings subsections and refined the settings card styling for a cleaner, flatter look
- Improved the main Settings screen layout, pinned the About card to the bottom when space allows, and added button-only
Reset/EditorReset/Settingscontrols for configurable settings - Improved the dashboard header and main tab labels on smaller screens by keeping the title on one scrollable line and widening the selected tab highlight
- Added remote downloader plugin importing/updating with improved plugin naming and trust handling, seeded default remote downloaders on fresh install, and support for newer official downloader plugins
- Added a full ReVanced announcements system with announcement list/detail screens, tag filtering, archived announcements, unread badges, and dashboard announcement banners ReVanced/revanced-manager#2948
- Added announcement push notifications with deep links to the specific announcement, integrated into the existing websocket/background update system
- Added settings to enable or disable announcements and announcement notifications
- Bumped the Morphe patcher dependency
- Removed the automatically imported remote downloader plugins
- Bumped Morphe Patcher to
1.3.3 - Bumped ReVanced Patcher to
22.0.1 - After importing settings, URV now requests any required runtime permissions for enabled features when they are not already granted
- Removed now unneeded extra
libaapt2.so's and aapt2 selector system - Removed API status banner #372
- Added About credits and in-app licensing viewers
- Improved root service mount reliability and safety #370
- Added LITE, MEDIUM, and FULL build variants with matching profile-aware updater behavior
- Added patcher-style progress tracking and merge log copy/export support to the Merge split APKs tool, including excluded split details in exported logs #388
- Updated the “No updates available” message #389
- Improved update dialog and changelog readability by reducing changelog heading/body sizes and tightening the update prompt text layout #381
- Removed the
MEDIUMbuild profile as it included the same runtimes asFULL - Improved the About screen layout and added version display copy behavior #399 #400
- Updated English UI wording for merge tool titles, selected app counts, patch bundle empty-state text, and APK saved casing #396 #398 #293 #319
- Updated patch/merge log copy messages, aligned delete/import wording, and made the merge log button follow patcher-style availability #404 #403 #405 #406
- Added loading-aware dashboard app input gating so app selection actions stay disabled until patch bundles are ready, with a clearer inactive button state #402
- Updated the
LITEbuild type to only exclude the ReVanced v21 runtime, and only include the ReVanced v22 and Morphe patcher runtimes - Bumped Morphe Patcher to
1.4.1 - Added a Morphe bytecode processing mode setting MorpheApp/morphe-manager#403
- Made the About screen version row so long-press copy only targets the manager version value, not the "Version" label #424
- Added patch option import/export support for patch selection backups #417
- Blocked all in-app interaction while app/APK selection loading overlays are shown, including the Apps tab and app picker flow #429
- Updated dashboard delete confirmation dialogs to use the correct singular or plural wording for selected apps, patch bundles, and patch profiles #430
- Improved text-entry UX by auto-focusing dialog and search inputs, opening the keyboard automatically, and keeping input dialogs visible above the IME across patch bundle, search, and settings flows #373 #374
- Updated the split APK merge selection dialog to show the live selected module count in the Start merge action button #362
- Added a per-install installer selection mode that lets users choose the installer each time on the patcher and saved patched app flows #208
- Added a new Patcher logging setting with Default and Verbose modes ReVanced/revanced-manager#3287
- Remember the selected split merge preset across app sessions #303
- Added a Latest toggle to remote downloader plugin source settings so sources can update from the newest stable or pre-release GitHub release
- Bumped Morphe Patcher to
1.4.2 - Improved UI strings, empty/search states, bundle changelog formatting, and import feedback order #436 #437 #441 #435 #434 #432
- Improved string consistency #433
- Bumped Morphe Patcher to
1.5.0 - Added automatic color code correction, normalization, and a color picker for patch options
- Moved the cursor to the end of prefilled input fields when dialogs and search fields open automatically #444
- Added a Storage and cache management settings screen with a storage usage breakdown, refreshable size tracking, and clear actions for cache, downloads, patch bundles, saved patched apps, patch profile inputs, signing files, plugin files, temporary workspaces, and external app folders #454
- Added a scheduled auto-clear cache system #407
- Updated the save-file icon on the
Choose splits to mergescreen #456 - Removed the duplicate top-bar cancel action from the split merge selection screen and renamed Split APK installer to Split installer #457 #455
- Added an Updates setting to switch the manager update popup between full release notes and the minimal version-only view #420
- Kept the screen awake while the split merge process is running #387
- Added a patcher setting to continue patching when individual patch errors occur #288
- Removed the
LITEandFULLURV build system and replaced it with a plugin-based system. ReVanced and Morphe are bundled with URV by default, while support for ReVanced v21 requires installing its plugin - Bumped Morphe Patcher to
1.5.1 - Removed the AmpleReVanced runtime because Ample now uses the Morphe patcher instead of its own runtime
- Make dialogs icons more consistent #467
- Made the confirmation buttons across dialogs more consistent #466
- Adjusted the keystore converter error message text size for better consistency with other tool error messages #462
- Release and Pre-release filters can no longer be selected at the same time; use Latest to show the newest bundle across both channels #473
- Reduced reorder hold delay by making app, bundle, and profile drag handles start dragging immediately #477
- Moved Bundle type to the top of bundle information before editable fields #481
- Close dashboard search bars when switching between Apps, Patches, and Profiles tabs #469
- Center storage management confirmation dialog titles and descriptions #461
- Improve YouTube asset guide ring contrast on both light and dark images #463
- Improved downloader and patcher runtime plugin source settings, including clearer runtime source details, repository URL copying, matching switch behavior, and the renamed ReVanced v21 runtime plugin #490 #493
- Improved downloader and patcher runtime plugin trust dialogs with clearer wording, centered Plugin and Signature sections, consistent warning icons, Confirm actions, and corrected downloader plugin display names #491
- Polished runtime plugin labels, uninstall confirmation text, and About screen credit punctuation #486
- Improved runtime plugin dialog wording so delete and uninstall confirmations use consistent action labels #496
- Improved downloader and patcher runtime plugin labels for consistent naming across cards and dialogs, and updated the patch bundle discovery empty state to show
No bundles foundcentered in the list #495 https://github.csues/494-Github/Universal-ReVanced-Manager/issues/494 https://github.coues/500-Github/Universal-ReVanced-Manager/issues/500 - Added CPU architecture labels to saved patched apps, showing values like ARM64, ARMv7, x86, Universal, or No native libs in the Apps tab and saved app details #251
- Improved bundle recommendation dialogs, runtime plugin cards, trust dialogs, source settings styling, and added an icon for the ReVanced v21 runtime plugin #498
- Centered the remaining patch selection and patcher result dialog text, including bundle action confirmations, patch defaults, incompatible patches, and install success dialogs #487
- Made the patch selection filter sheet open fully expanded so all filter options are visible without scrolling first #507
- Added patch selection sorting options for Z-A, enabled first, and disabled first #511
- Added app icon background image output and optional Morphe notification icon generation to the custom YouTube asset creator tool #330
- Increased the patch bundle discovery empty state text size for consistency with other search results #513
- Added a dashboard notification for newly installed runtime plugins and tightened notification card action padding #512
- Added support for experimental app version targets in Morphe patch bundles
- Improved exported log filename consistency for merger, patcher, debug, and installer logs #524
- Compact saved Apps card patch bundle summaries and added a setting to hide bundle update badges #528
- Bumped Morphe Patcher to
1.5.2 - Added an APK signer tool to the
Toolstab for signing APKs with the manager's current signing certificate #504 - Centered dialog titles that were still left-aligned in several dialogs #534
- Added patch profile action button ordering and visibility settings #482
- Centered additional dialog titles that were still left-aligned #536
- Improved patch bundle and patch profile import result messages with updated and skipped counts #386
- Centered install result dialog titles #537
- Added a filename format setting for merged APKs saved from the split APK merger tool #318
- Centered body text in the downloader help and language restart dialogs #539
- Allowed combining cleanup filters in the split APK merge tool #360
- Standardized supported version dialog layouts and centered suggested version chips #540
- Added a default-enabled New patches filter that shows newly added patches from each bundle at the top of the patch selection screen #236
- Centered the signature mismatch dialog body text across the patcher, app info, and quick action install flows #544
- Updated newly generated manager signing keystores to use
aliasas the alias andpasswordas the password while preserving compatibility with existing and legacy manager keystores #538 - Added support for importing remote patch bundles from GitHub and GitLab repository URLs by resolving root-level
patches-bundle.jsonmetadata #545 - Added support for Morphe
add-sourcelinks, including opening them in URV with the import dialog prefilled #545 - Improved the split APK downloader plugin flow by showing download progress in a loading screen before opening split selection
- Added optional live memory usage graphs to the patcher and split APK merger tool #567
- Force patching and split APK merging to run in separate processes on Android 11+ to prevent memory crashes #572
- Removed obsolete experimental patcher and memory-limit settings
- Added an instability warning for Android 10 and older
- Updating patch profiles no longer requires you to select their patch bundles again #577
- Added live progress percentages to the patcher and split APK merger with smoother step and substep tracking #568
- Added color previews to patch option presets #564
- Updated local downloader and runtime plugins to display "Loaded" instead of "Trusted" #562
- Standardized revoke trust dialog titles across downloader and runtime plugins #561
- Adjusted the supported versions dialog so it is not become too wide when opened from patch search #559
- Standardized installer log filename and timestamp formatting with other exported logs #558
- Improved dialog text consistency and added clearer save confirmations for patched and merged APKs #555 #553 #552
- Plugin notifications no longer remain after opening the Download or Patcher Runtimes settings #556
- Moved “Merged APK filename format” under “Export filename format” in Advanced system settings #551
- Added a Done button to the patcher screen after patching completes #580
- Added Shevery support for Shizuku-based installs, including detection, manager launching, installer icons, and updated installer labels #585
- Added suggested version dropdowns to app search results on the
Select an appscreen #586 - Added split ordering options to the split APK merge selection screen #582
- Added the ability to install APKs downloaded through plugins from the Downloads screen #541
- Corrected singular and plural wording in patch bundle import progress #590
- Made patch bundle update progress counts use consistent
out ofwording #591 - Added a minimal patch selection view preset with controls for version tags and patch option previews #274
- Added consistent progress notification metadata and Android 16 progress styling for cutout ring support #394
- Made bundle import and update progress banners collapse independently and remember each state #588
- Added separate remembered folders for file selection and export workflows in both the custom and built-in Android file pickers #543
- Added an
Install base & mountoption that installs base and split APKs through root before mounting the patched APK #542 - Added per-profile installer selection and automatic installation to Patch Profiles #583
- Added a Patcher Engine option to skip signing and keep patched APKs unsigned for saving or installation
- Automatically enabled manager pre-release updates when running a pre-release build #593
- Bumped Morphe Patcher to
1.6.0 - Added APK version codes to app details, supported-version displays, searches, and Morphe patch compatibility checks #594
- Added an option to choose which split APKs are merged before patching #592
- Automatically remove unavailable patches and their saved options from saved selections, and show a toast indicating which patches were removed #595
- Added an optional root-only LSPosed tab with support for LSPosed, Vector, and compatible builds, including local and GitHub module management, update checks, manager and settings shortcuts, and customizable module actions #596 #598
- Added Signature metadata injector & cloner tool under APK signature tools
- Improved the Split installer tools log, making it consistent with the Signaute metadata injector & cloner tools log design
- Added a configurable memory limit of up to 2 GB for separate-process patching runtimes. Overal improved the memory system, being adapted from Morphe Managers implementation, URV now is able handle heavier patching and split APK merging on Android 11+ devices
- Added Monochrome and Material You theme presets, including optional Pure Black styling for Material You
- Improved theme and accent preset selection, layout, indicators, and previews
- Expanded Storage & Cache Management with separate cleanup options for signing files, patcher runtime plugins, and saved LSPosed module APKs, with safeguards against clearing files while they are in use
- Added support for opening
.rvpand.mpppatch bundle files directly in URV, adapted from Morphe Manager's implementation MorpheApp/morphe-manager#483 - Made the
Recommended for this devicesplit APK merge preset deselectable while preserving the selected language and density cleanup filters #550 - Sorted new downloader and runtime plugin dashboard notifications by plugin installation time #557
- Sorted patch bundle import and update progress banners by when each operation started #587
- Added direct installation from the split APK merger and replaced its save progress step with a write step #600
- Added support for typed Morphe patch options and bumped the Morphe Patcher to
1.7.0MorpheApp/morphe-manager#706 #635 - Reorganized rooted-mount app actions into one connected segmented layout with a remembered collapsible tools section
- Rebuilt the rooted mount system with transactional operations, verified rollback, automatic recovery, boot and package-change reconciliation, legacy mount migration, and improved management tools MorpheApp/morphe-manager#737
- Added persistent transaction tracking to safely recover interrupted mount, update, downgrade, and unmount operations
- Added verified stock APK backups and rollback before making package or module changes MorpheApp/morphe-manager#673
- Added automatic mount reconciliation after reboot, manager startup, app updates, and package changes
- Added migration support for legacy URV and ReVanced root modules
- Added repair, use-stock, remount, cleanup, and diagnostic export actions
- Added stricter package, APK, signing, Android-user, and mount-ownership safety checks #646
- Improved rooted-app progress, status messages, action layouts, and installer routing MorpheApp/morphe-manager#779
- Improved system installer handling across patching, saved apps, downloads, manager updates, LSPosed modules, and split APK tools so APKs install directly from app storage, with OEM callback verification and an intent fallback MorpheApp/morphe-manager#598
- Bumped ReVanced Patcher to
22.0.2-dev.1 - Made the patcher
Donebutton available after patching finishes with errors #649 - Removed
requestedfrom the patcher and Split APK Merger memory usage labels #604 - Updated the Android toolchain and core dependencies, including Kotlin, AGP, Ktor, Koin, Coil, AndroidX, and raised the app and bundled runtimes to target SDK 36
- Bumped Morphe Library to
1.4.0#652 - Bumped Morphe Patcher to
1.8.0-dev.3#652 - Updated selected filters on the patch selection and patch bundle discovery screens to use the blue selected-state styling #642
- Added batch patching for multiple apps with preflight checks, reorderable and cancellable queues, per-app patch configuration and progress, retained source APKs and results, install-all support, automatic repatching, launcher shortcuts, and opt-in external automation actions, adapted from MorpheApp/morphe-manager#795
- Improved the Shizuku/Shevery installer flow with status and configuration controls, Play Store attribution, automatic installation of patched apps, clearer errors, and optional uninstall-and-retry handling for signature conflicts, adapted from MorpheApp/morphe-manager#734
- Added APK download helper app support as an APK source, including helper discovery and trust management, GitHub source importing and updates, helper installation/uninstallation, and selecting helpers as an APK source when patching, adapted from MorpheApp/morphe-manager#797
- Added install-target-aware Morphe patch availability with Standard and Root Mount modes, required and unavailable patch handling, matching installer routing, and optional GmsCore removal, adapted from MorpheApp/morphe-manager#747
- Improved Root Mount compatibility with merged split APK inputs when a valid installed stock APK is available
- Bumped Morphe Patcher to
1.8.0 - Improved saved unpatched app cards in Downloads
- Improved single and batch patcher logs with input APK version codes, included/excluded split lists, cleaner exports, and detailed patch failure errors
- Added an expandable Patcher information panel to single and batch patching with app version/version code, APK size, selected patches and bundles, manager and patcher versions, runtime and memory details, split/native library status, Android/device information, and available RAM/storage, inspired by Morphe's patch information panel
- Allowed manually changing split selections while filters are active in the Split APK Merger and patcher, with matching filters automatically selected or cleared as the selected splits change #615
- Updated dependent setting toggles to visually disable with their parent while preserving and restoring their previous state when the parent is re-enabled #630
- Made split sorting choices independent between the patcher and Split APK Merger #611
- Preselected the
Exclude unused languagesandExclude extra densitiesfilters on the patcher split selection screen whenSkip unneeded split APKsis enabled, while preserving the existing native-library cleanup selection behavior #612 - Improved the Monochrome theme with solid black/white accents, normal untinted light/dark surfaces, optional pure-black dark mode, and higher-contrast informational surfaces and Tools icons #607
- Restored natural single-sentence wrapping for unsupported keystore errors in the Keystore Converter so the text only wraps when it reaches the available width #624
- Integrated each patch bundle's selected patch count directly into the bundle switcher and removed the separate "Selected in this bundle" indicator
- Replaced active Install actions with Cancel controls across single and batch patching, allowing in-progress internal, Shizuku, root/mount, external, Install All, and automatic post-patch installations to be cancelled without discarding completed patch results #661
- Added custom installer names to installed app details and label instead of showing the generic
Custom installerlabel #655 - Added per-bundle pre-release update checks for patch bundles imported from GitHub and GitLab repository links #629
Bug fixes
- Fixed patch bundle discovery preferring stale primary results by selecting the newest available data, falling back to the dev service, and importing bundles through the v3 API
- Fixed saved patched apps installed through Shizuku-based custom installers showing Shell instead of the selected installer
- Fixed pre-release updates not being detected for some patch bundles imported through GitHub or GitLab URLs
- Fixed patch bundle tabs showing inaccurate counts by displaying selected and available patches as a selected/total value
- Fixed Rooted Mount being unavailable in post-patch installer choosers for compatible Standard patches
- Fixed the Patcher Information widget sometimes showing the wrong app version instead of the version of the APK actually being patched
- Fixed single and batch patching sometimes using or reporting stale patch selections, options, app metadata, and runtime information, especially after missing patches were removed or the patcher screen was restored
- Fixed system Play Store installs still appearing as installed by URV Manager in Android settings
- Fixed some Morphe patch bundles failing to load in process mode with an incorrect corrupted or incomplete error
- Fixed patcher runtimes not consistently honoring
Continue after patch errors, including process runtimes continuing after fatal patch errors when it is disabled #685 - Fixed the Split APK Merger progress notification being able to reappear after cancellation when concurrent merge state or progress updates raced with cancellation cleanup #669
- Fixed returning from a cancelled local APK patch leaving the app name and icon blank when the patcher's temporary input had already been deleted #665
- Fixed issues with remote patch bundles when using GitHub or GitLab URLs sometimes not detecting prereleases correctly
- Fixed incomplete patch bundle changelogs and missing history entries, including hidden release notes, overwritten descriptions, mixed release channels, and refresh errors not appearing when cached history is available
- Fixed ReVanced 21 and 22 patching failing before patches are applied when using process mode
- Provide a writable temporary workspace for Morphe patches in both in-process and process-mode patching
- Fixed patch bundle import and update feedback by preserving bundle name casing, identifying the selected release channel, and using correct singular/plural progress wording #601 #632 #633
- Fixed incorrect singular/plural wording when removing saved patches and displaying patch bundle update badges #605 #680
- Fixed cancelling APK preparation incorrectly displaying a failure dialog #610
- Improved split selection dialogs by removing outdated guidance and aligning the Cancel action consistently #613 #618
- Fixed manager, installed app, and applied patch bundle version displays to consistently use a single
vprefix #704 - Fixed the Process Memory Limit dialog title alignment #676
- Fixed unsupported keystore converter errors wrapping unnaturally #673
- correct file picker sorting and log export feedback (f01260d), closes #668 #732
- deps: bump Morphe Patcher to
1.14.1(942e286) - manager: fix repatching, batch installs and scrolling UI (6b0d3bc)
- morphe: correctly apply patch results and isolate workspace (3aacd3a)
- morphe: update ARSCLib for theme previews (#743) (ca5b28f), closes #1043 #740
- picker: save APK folders before processing (0cf5144), closes #732
- scope required patches and reopen completed steps (fb0e9ce), closes #670 #675
- settings: prevent empty exports (0ac73cd), closes #742
- settings: restore imports in one pass (45981a8)
- splits: keep selection presets in sync with filters (18ff36b), closes #667 #674
- storage: automatically clean unused patch files (b1d0b62), closes #750
- Fixed bundle update notifications disappearing after repeat checks while respecting intentionally dismissed alerts #535
- Fixed the Patch Bundles tab empty state so searching with no added bundles still shows the no-bundles message #483
- Fixed pressing the system back button on the
Patch ProfilesandToolstabs sending the user back to the Android home screen instead of a different tab #191 - Fixed the
Patch confirmationscreen's scroll bar being very large #186 - Fixed the Android document provider file picker not resolving intents to local paths #202
- Fixed an issue where the export filename variables wouldn't be placed at the cursor position #187
- Fixed the
Effective memory limitlisting in the patcher logs using theRequested memory limit value(needs testing) - Fixed issues with loading patches from patch bundles on the discovery
- Fixed an issue where saved app entries would be duplicated when installing a entry marked as
Saved - Fixed issues with loading metadata for certain APKs #216
- Fixed missing-split install failures when patching apps that are installed as split APKs #217
- Fixed issues with memeory on Android 10 and lower devices (needs testing) #150
- Fixed the
Patch confirmationscreen on older Android versions being covered by the three button navigation - Fixed issues with the patcher screen being "frozen" and showing no progress or anyting at all for a few seconds on older Android versions
- Fixed UI lagging/buffering issues on the
Download APK filestep - Fixed issues where downloading certain APK files using the downloader plugins would cause an error #221
- Fixed issues with the swiping to switch tabs guesture on the main screen and patch selection screen #204
- Fixed an issue where exported keystores would have the
.jsonfile extension #238 - Fixed several UI issues and visual bugs on the
Create custom YouTube icons & headerstool screen https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/243 - Fixed an issue where the
Toolstab wasn't scrollable - Fixed the wrong UI being shown when switching tabs quickly on the main screen #245
- Clarified the patch profile APK placeholder text from
No APK selectedtoNo APK for this packagehttps://github.com/Jman-Github/Universal-ReVanced-Manager/issues/241 - Fixed issues with the patching notification not appearing immediately when patching starts #256
- Fixed an issue where the patching notification would disappear before patching was actually finished #257
- Fixed an issue where using the Android Documents Provider to export apps from
Downloadswould cause a crash #258 - Fixed an issue where the patcher process would die for some users #267
- Fixed an issue where the ReVanced v22 patcher runtime wouldn't follow the experimental patcher setting
- Fixed an issue where the patching process would die (needs testing) #267
- Fixed issues where the patcher screen would not show the progress of patching accurately
- Fixed issues where the ReVanced v22 runtime would patch incorrectly resulting in broken patched apps
- Fixed an issue where if you patched an app with multiple patch bundles they sometimes would not be listed on the
App infoandApplied patchesscreens https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/262 - Fixed an issue where the hold tap guesture would not work for some apps in the
Appstab - Fixed an issue where you couldn't select certain apps in the
Appstab on multiselection mode - Fixed dependent patching flow settings so they are disabled when inactive and automatically reset when their parent toggle is turned off
- Fixed the
Export filename formateditor so tapping the text field no longer jumps the view to the end, and its helper content now scrolls separately without disrupting cursor placement #269 - Fixed issues where there would be a pause between the patchers main categories/steps
- Fixed more issues with patching on certain runtimes
- Fixed issues with resuming manager updates with the in-app manager updater #277
- Fixed manager update asset selection so the updater correctly resolves both ABI-specific APKs
- Fixed issues with the
Always create a new saved app entrysetting #279 - Fixed the patcher screens pause between
Load patchesandRead APK filesub-steps - Fixed issues with progress being reordered live during split APK merging for the AmpleReVanced runtime
- Fixed the
Export filename formatdialog so the single-line text field slides with the cursor #276 - Fixed issues with the fullscreen back gesture causing UI glitches and showing the wrong screens #280
- Fixed an issue where the
AAPT2 selectedline in patcher logs would always be listed asUnknown - Fixed RGB inputs in the custom YouTube color picker so typed values are visible and use numeric keyboard input https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/261
- Fixed previous patch bundle changelog history so it resets when a bundle source changes, fetches the correct number of older entries, and only shows historical changelog actions for bundle sources that actually supports them
- Fixed an issue where the
Patching in progressnotification would clear early #257 - Fixed an issue where the
Patchng in progressnotification would appear late #285 - Fixed an issue where on fresh installs the user would be required to regenerate the keystore manually
- Fixed background bundle and manager update checks being rescheduled on every app launch
- Fixed websocket-triggered update checks so newer refreshes are not dropped behind older queued work
- Fixed stale bundle update notifications not clearing when no updates remain
- Fixed manager update notifications being suppressed after notification permission is turned off and back on
- Clarified package selection text to use generic app package wording instead of APK-only wording for local files and patch profiles https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/264
- Fixed (hopefully) the fullscreen back gesture showing the wrong screen preview so the back animation now matches the actual destination screen #280
- Fixed an issue where the
Patching in progressnotification could remain visible after canceling patching https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/285` - Fixed patch profiles and last used patch selections/options from overriding each other
- Fixed stale merged APK output being offered after a later merge failure
- Fixed installed split archive creation to fail cleanly when APK parts are missing
- Fixed uninstall failures sometimes showing as Installation failed instead of Uninstall failed
- Fixed the uninstall service error messaging
- Fixed fullscreen back gestures showing the wrong screen preview on some devices and OEM ROMs #280
- Fixed patched app installs sometimes creating duplicate
Savedand installed entries in theAppstab #279 - Fixed patcher warnings breaking progress on the patcher screen #267 (comment)
- Fixed multiple patching and split APK merge issues across runtimes, including bundle loading regressions, cancellation/cleanup problems, merge failures, and write-progress glitches #308
- Fixed new announcement banners not appearing on the dashboard until the screen or app was reloaded
- Fixed issues where the patching in progress notifaction would lag behind, or where the patcher UI would lag behind the notification #305 #320
- Fixed the patch bundle URL editor sometimes needing an extra
OKpress after editing #324 - Fixed downloader plugin signature verification failures potentially crashing URV during launch, reload, or update checks https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/332
- Fixed patcher runtimes holding loaded patch dex objects in memory longer than necessary by scoping patch loading closer to execution
- Possibly resolved issues around patching Google Photos with
De-ReVanced#349 #343 - Fixed valid APK files being rejected in various app flows #333
- Fixed mislabeled image resources and invalid decoded manifest resource references breaking patching across the ReVanced, ReVanced v22, and Ample runtimes #346
- Fixed
.rvppatch bundles being mislabeled as Ample without positive Ample markers #358 - Fixed older ReVanced
.rvpbundles staying identified as ReVanced even when metadata loading fails #358 - Preserve replaced variants when reinstalling saved apps, and clarify that the “Always create a new saved app entry” option only affects patcher saves #279
- Fixed fullscreen bundle/profile dialogs showing a mismatched status bar strip above the top bar #341
- Fixed the patcher source selector showing a false untrusted downloader plugin warning on clean installs with no downloader plugins added or installed #353
- Fixed the patch bundle URL editor sometimes requiring two OK taps after editing #339
- Possibily resolved OOM and crashing errors that are occuring for certain users when patching Google Photos with the
De-ReVancedpatch bundle #343 #349 - Fixed several split APK merger edge cases across runtimes, including duplicate extracted split filenames, incorrect density split skipping, and process-mode merge sorting not honoring its setting
- Improved patching stability by hardening worker shutdown and notification handling during restarts and app closure and added safer recovery for stale patch progress snapshots #365
- Fixed the
Read APK filestep showing extraInitializing patchersubtext on some runtimes - Fixed
Prepare split APKsubstep ordering so skipped and non-skipped merge rows stay grouped consistently - Reworked patcher progress handling across all runtimes so
Write patched APKuses structured grouped progress instead of inconsistent fallback row creation - Fixed the patch selector action popup collapsing after toggling patches even when Collapse actions after toggling patches is disabled #338
- Fixed patch selector action popup behavior so patch toggles no longer dismiss it as an outside click when auto-collapse is turned off #338
- Fixed patch bundle update notifications showing the default bundle name instead of the user’s custom bundle name after a successful update #364
- Fixed bundle auto-update progress text so custom bundle names remain consistent throughout checking, downloading, and finalizing stages #364
- Fixed the
Recommended for this devicemerge split APK preset including extra ABI splits by preferring the device’s primary ABI - Fixed merge split tools progress grouping so skipped split rows remain grouped separately from non-skipped rows
- Fixed the native library stripping toggle handler on the choose-splits dialog to use a stable explicit toggled state path
- Fixed merge split APK filter switching so selecting
Remove extra native librariesresets previous preset exclusions first, instead of carrying over exclusions from filters likeExclude unused languagesorRecommended for this device#361 - Fixed Settings and Update action buttons wrapping awkwardly under Android screen zoom #379
- Fixed URV sometimes crashing when patching ran out of memory with the experimental patcher disabled #349
- Fixed patcher progress sometimes lagging behind the foreground notification during the early Write patched APK phase #390
- Fixed a few UI edge cases, including hidden RGB values in the custom YouTube asset color picker, clearer patch-profile empty-state wording for downloaded apps, and duplicate saved-entry normalization when overwrite protection is enabled https://github.com/Jman-Github/Universal-ReVanced-Manager/issues/291 #279
- Hardened remote patch bundle updating, API fallback handling, and bundle refresh state management #372
- Fixed version assessment so universal-fallback APKs still respect the universal patches safeguard even when suggested-version enforcement is relaxed
- Fixed bundle and profile count text so selected, enabled/disabled, and import/export messages use the correct singular or plural wording #385 #384
- Renamed the split merge native-libraries filter to
Exclude extra native librariesand fixed patch bundle update banner grammar for singular vs plural counts #363 #359 - Improved installer settings consistency by adding blocked-installer notes, fixing PAT dialog link punctuation, fixed thw remaining issues with missing patch bundle update plural strings, and cleaning up installer wording/status labels #378 #375 #377 #395
- Fixed rooted mount installs creating a second visible saved-app entry for the same patched app #279
- Fixed inconsistent dialog button alignment so export, patcher, color picker, and related settings dialogs now place actions on the right like the rest of the app #376
- Fixed local APK source handling so returning from the patcher preserves the selected file correctly
- Fixed patching notification timing and cancellation behavior so it appears immediately and clears correctly on cancel/close #401 #409 #292
- Fixed downloader plugin edge cases by improving failed-source recovery, accepting valid plugin results without a reported version, showing download progress for size-less plugins, and expanding the downloader import URL field correctly on larger screens
- Fixed rooted mount installs creating an unused empty legacy directory under
/data/adb/revanced/<package>for newly mounted apps #411 - Fixed the Export & Import settings flow by moving export actions before import, cleaning up wording and punctuation, correcting app count pluralization, and updating the manager version copy toast #418 #425 https://github.com/ /issues/416 #413 #415
- Fixed patcher progress resume/replay syncing with notifications, improved Write APK DEX substep restoration, and improved app icon/label fallback handling #419
- Fixed the dashboard "Select from storage" flow briefly showing the wrong page while the selected APK is being loaded #421
- Fixed dashboard selection toolbars and selection state not clearing cleanly when switching between Apps, Bundles, and Profiles tabs #423 #422
- Fixed incorrect gesture-back preview behavior on screens that intercept back for in-app UI state changes instead of real navigation #280
- Fixed framework cache recovery and bundled framework handling across all runtimes to prevent missing or corrupted framework cache patching failures
- Fixed duplicate Saved/Installed entries by collapsing matching saved variants after install when saved app overwrite is enabled #279
- Fixed split archive metadata resolution to use stricter device-matching split selection for app labels and icons
- Fixed split APK merging so remove-extras and native library cleanup preserve required ABI, language, and DPI splits when only one compatible config is available
- Fixed split APK tool settings so installed-app filters persist/export correctly, installer logs use clearer copy/export labels, and the duplicate GitHub PAT export toggle is removed #439 #440 #442 #443
- Fixed duplicate Apps tab entries being created after installing patched apps with custom installers #279
- Fixed patch selection action buttons collapsing while scrolling, swiping bundles, or pressing actions when auto-collapse is disabled #448
- Re-added the legacy/modern AAPT2 selector to resolve AAPT2 based resource compilation errors #460
- Fixed bundle update notifications being cleared after a follow-up background check when the same manual bundle update was still available but had already been reported #470
- Fixed the Apps tab "Update available" badge for patch bundles so stable releases correctly outrank matching prerelease/dev versions #468
- Resolved more issues with saved patched apps #279
- Fixed orphaned saved patched APKs taking up storage after they were no longer shown in the Apps tab
- Fixed bundle discovery searches showing the loading state indefinitely when no matching bundles are found #499
- Fixed patch option dialogs showing the color picker for file/path options #508
- Fixed bundle version selection dialogs showing cached patch bundle names instead of custom bundle display names #502
- Fixed ReVanced patching failures by retrying the Write patched APK step with the alternate AAPT2 binary when the selected AAPT2 fails #460
- Fixed ReVanced v22 AAPT2 selection so it uses the sanitized APK input before opening the patcher session
- Fixed color option detection so path-like fields are not mistaken for color values
- Fixed Android back navigation on the patch selector so it matches the toolbar back behavior #408
- Fixed the saved app bundle update badge toggle appearing enabled while disabled #547
- Fixed merger collapsible sections not respecting the auto-collapse and auto-expand settings #548
- Fixed merge split APK filter combinations not always being remembered across sessions #563
- Fixed bundle update notifications sometimes appearing again after being tapped #571
- Fixed split APK merger progress briefly moving backward when merging starts #570
- Fixed the merge notification remaining visible after cancellation on some devices #549
- Fixed the Bundle update label sometimes missing from saved app cards #566
- Fixed the Tools screen briefly appearing when holding Back after merging or saving a split APK #560
- Fixed rooted mounted apps sometimes starting without patches after reboot #578
- Fixed patcher and split APK merger progress bars appearing partially filled before progress begins #569
- Fixed issues with the split APK merger during corrupting and breaking some APKs
- Fixed bundle update labels not appearing when a saved app's patch bundle was imported again through settings #581
- Fixed bundle recommendations continuing to use the first selected bundle's patches after switching bundles while preserving custom patch selections #579
- Fixed patch bundle update and import progress bars showing a filled marker at the end before completion #589
- Fixed serval bugs around themeing & customization
- Fixed duplicate entries appearing in Previous changelogs
- Fixed Patch Profiles sometimes only showing storage as an APK source
- Fixed some APKs merged with the Split APK Merger tool failing when later used for patching
- Fixed the bundle update WebSocket service crashing after a background restart due to multiple DataStore instances accessing the same preferences file #647
- Fixed the
Recommended for this devicesplit preset leaving native library cleanup unselected in the Split APK Merger and patcher #622 - Fixed the
AllandNonesplit presets remaining selected after applying cleanup filters in the Split APK Merger and patcher #616 - Fixed bundle information closing when opened before a notification-triggered bundle highlight finished
- Fixed RGB inputs in the custom YouTube color picker collapsing on shorter screens so entered values are retained and visible #628
- Fixed the
Disable patch selection tab swipesetting not being restored by manager settings and full backups #651 - Fixed the patcher log export success message appearing late #620
- Fixed the merge notification remaining visible after cancellation #623
- Fixed ReVanced v22 patches failing with uninitialized hook and method errors
- Fixed patched APK export filenames omitting versions for additional applied patch bundles #650
- Fixed split APKs with manually excluded language, ABI, or density modules failing during patching, including APKs produced by the Split APK merger tool #658
Performance Improvements
- patcher: reduce APK writing and signing overhead (d0c98a4)
Refactors
- Migrated URV’s internal source namespace from
app.revanced.managertoapp.urv.manageracross the app, API, and runtime modules - Reorganized navigation, tab, and action-button settings under Appearance & UI, and improved search to expand and highlight nested settings correctly
CI
- Added a manual debug build workflow that uploads dev APK artifacts with a
-debugversion suffix without publishing a release - Updated GitHub Actions dependencies to current Node 24-compatible versions, resolving Node.js 20 and deprecated action warnings
- Converted repository to semantic release based system instead of the manual mess I had before
- All prereleases/releases are published with a universal (all ABI) APK, and the ABI specific APKs. The in-app updater now automatically picks the APK that matches your ABI
- Updated manager release APK filenames to use canonical ABI labels such as arm64-v8a, armeabi-v7a, and universal, and updated the in-app updater/workflows to match the new asset names while preserving compatibility with older releases #428
- Added JVM unit test checks before dev and release APK builds