Skip to content

feat(manager): improve file picking, patching and backups - #749

Merged
Jman-Github merged 1 commit into
devfrom
feat/morphe-manager-improvements
Oct 3, 2026
Merged

Jman-Github merged 1 commit into
devfrom
feat/morphe-manager-improvements

Conversation

@Jman-Github

@Jman-Github Jman-Github commented Oct 2, 2026 •

Copy link
Copy Markdown
Owner

Summary

Improve URV’s custom file picker, APK handling, patching behavior, and Android backup policy by adapting changes from Morphe Manager. Adapted code retains attribution comments, direct upstream links, and references to third-party/NOTICE.

Morphe adaptations

  • Preserve numeric app names such as 1.1.1.1 instead of shortening them as package identifiers.
    Upstream: 068686f
  • Cache saved-APK ABI detection by file path, size and modification time, while keeping translated labels responsive to language changes.
    Upstream: e193dd1
  • Remove leaked morphe-extracted-patches* cache directories before patch bundles load.
    Upstream: 6b92f02
  • Ignore nested APK resources during split-archive detection across all three runtimes, while retaining supported bundletool archive layouts.
    Upstream: 0b4d6ee
  • Keep the screen awake during batch patching and share the existing behavior with normal patching and split merging.
    Upstream: 974e572
  • Add a persistent Show hidden files toggle to the custom picker.
    Upstream: 205956f
  • Include sorting, search, hidden-file visibility and all 46 per-picker directory preferences in settings export/import.
    Upstream: 46e37e2
  • Configure Android backup exclusions for signing files, saved APKs, patch bundles and other large or temporary files.
    Upstream: 3a07ae5
  • Distinguish failed directory reads from empty folders and provide a Retry action.
    Upstream: e181417
  • Suppress automatic batch-patch completion notifications while URV is in the foreground.
    Upstream: 45d78a1

URV-specific behavior

  • Preserve omitted settings when importing older backups, allow explicitly empty picker values to clear saved state, and validate imported directory paths.
  • Cover URV’s current and legacy signing locations. Android 12+ device transfer preserves signing material so patched apps can still receive updates.
  • Clear saved GitHub tokens when the device-local credential marker is missing, including after backup restoration and the first upgrade to this policy.

Required testing

If you want to test this PR, please follow the checklist below when possible. Be sure to report your device model, Android version, and any failed checks, and mark unavailable tests as not tested in your final report/feedback.

File picker

  • Switch folders and refresh. Loading shimmers appear for at least half a second without flickering.
  • Switch folders quickly. The final folder shows the correct contents.
  • Open an empty folder. An empty-folder message appears.
  • Search for something that does not exist. A no-results message appears.
  • Toggle Show hidden files. Files and folders starting with . appear when enabled and disappear when disabled.
  • Change sorting and search options, then restart URV. Saved preferences remain.
  • Export settings, change picker preferences, then import the backup. The saved preferences return.
  • If an inaccessible folder is available, opening it shows a read error rather than an empty-folder message.

APK handling

  • Select an app named 1.1.1.1. Its full name appears correctly.
  • Open a saved APK repeatedly. Its architecture label remains correct.
  • Merge a supported split archive, then patch and install the result successfully.
  • If available, select a regular APK containing an embedded APK. URV does not incorrectly treat it as a split archive.

Patching

  • Run normal patching, batch patching, and split merging. The screen stays awake while each progress screen is open.
  • After completion or leaving the progress screen, normal screen timeout resumes.
  • Complete a batch with URV in the foreground. No redundant completion notification appears.
  • Complete a batch with URV in the background. A completion notification appears when notification permission is enabled.
  • Patch using a Morphe bundle more than once. Each run completes successfully.

Optional Android backup testing

Only test these if already performing a cloud restore or device transfer.

  • After a cloud restore, downloaded APKs, patch bundles, temporary files, and signing keys are not restored.
  • After a device transfer on Android 12 or newer, signing keys remain available, while downloaded APKs and patch bundles are not transferred.
  • After restoring onto another device, any saved GitHub token is cleared.

Artifact

https://github.com/Jman-Github/Universal-ReVanced-Manager/actions/runs/37073334650/artifacts/11255278572

Note

PR build data and regular release data are kept separate to prevent conflicts when switching between release builds and PR artifacts. Because of this, when you install a PR artifact, your app data will appear to be reset. It’s only a clean slate for that specific PR build. Your previous data is still preserved, and once you reinstall the release build you were using before, that data will be restored.

Validation

  • git diff --check passed.
  • .\gradlew.bat assembleRelease passed.
  • JVM tests passed.

Adapt Morphe Manager changes for picker preferences, APK handling,
patching behavior and Android backup rules.

Keep signing files out of cloud backups and clear saved GitHub tokens when initializing the device-local credential marker.
@Jman-Github Jman-Github added this to the Release URV 1.9.0 milestone Oct 2, 2026
@Jman-Github Jman-Github self-assigned this Oct 2, 2026
@Jman-Github Jman-Github added the Feature Something you wish to be added label Oct 2, 2026
@Jman-Github
Jman-Github merged commit 0eada70 into dev Oct 3, 2026
1 check passed
@Jman-Github
Jman-Github deleted the feat/morphe-manager-improvements branch October 3, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Feature Something you wish to be added

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant