Skip to content

feat(patcher): add Reseam runtime - #770

Merged
Jman-Github merged 6 commits into
devfrom
feat/reseam-runtime
Oct 24, 2026
Merged

Jman-Github merged 6 commits into
devfrom
feat/reseam-runtime

Conversation

@Jman-Github

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

Copy link
Copy Markdown
Owner

Summary

Add Reseam patching support through an optional runtime plugin, including signed .reseam bundles, custom Git repository imports, and patching split APKs without merging them.

The integration uses URV’s existing patching screens, logs, progress tracking, resource graphs, and batch flows while accounting for Reseam’s native engine and separate APK components.

This also improves split APK download handling, preserves unmerged downloads for later patching, extends CI coverage to the new plugin, and removes the legacy release and changelog transition logic.

Reseam runtime plugin

  • Add an optional Reseam runtime plugin versioned 1.0.0, using Reseam SDK 0.20.1.
  • Use the same icon as the ReVanced v21 runtime plugin.
  • Distribute the plugin separately through release assets for download and import.
  • Detect Reseam bundles using the .reseam extension and bundle format markers.
  • Load bundle identity, patches, compatibility information, and options through the SDK.
  • Verify signed catalogs and retain signer identity checks for bundle updates.
  • Support dependency bundles and reject conflicting duplicate sources.
  • Report incompatible bundles with clearer runtime version errors.

Repository imports

  • Support repository links from custom Git hosts, including git.reseam.app.
  • Discover compatible release assets from Forgejo/Gitea and self-hosted GitLab repositories.
  • Support Reseam bundle indexes alongside existing repository import methods.
  • Recognize .reseam assets when importing GitHub releases.
  • Preserve existing ReVanced and Morphe bundle handling.

Split APK patching and installation

  • Pass the base APK and selected split components directly to Reseam without merging them.
  • Identify the base component from its manifest and normalize its filename for the SDK.
  • Respect split selection, native library stripping, and unused split preferences.
  • Remove the SDK’s signing block before applying URV’s configured signing identity.
  • Sign every output component with the same key and package the result as a split APK archive.
  • Use the session-based split installer when System Installer is selected.
  • Support split output through the built-in Shizuku installer and compatible root installation paths.
  • Prevent unsupported rooted mount operations for split output.

Patching progress and diagnostics

  • Integrate Reseam events with URV’s existing patching steps and logs.
  • Show progress while inspecting and extracting split components.
  • Prevent repeated preparation events from restarting displayed progress.
  • Track writing and output preparation without moving completed progress backwards.
  • Display readable patch names while retaining stable identifiers for selections.
  • Include native process memory alongside existing resource telemetry.
  • Report storage exhaustion with clearer failure details.

Download handling and performance

  • Preserve downloaded split APK archives for later Reseam patching.
  • Identify saved downloads as APK or Split APK in the downloads screen.
  • Preserve the appropriate file extension when exporting downloaded or patched apps.
  • Inspect split manifests without extracting every APK first.
  • Reuse validated download metadata during patch preparation to avoid duplicate inspection.

Cleanup and runtime consistency

  • Clean up Reseam workspaces and temporary split files after success, failure, or cancellation.
  • Include abandoned Reseam workspaces in existing scratch cleanup.
  • Integrate process lifecycle handling with URV’s existing runtime infrastructure.
  • Share common runtime plugin helpers with the ReVanced v21 plugin.
  • Preserve existing ReVanced v21 behavior while making those helpers reusable.

Artifact

https://github.com/Jman-Github/Universal-ReVanced-Manager/actions/runs/40064559761/artifacts/12548429254

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.
  • Focused JVM tests passed for runtime integration, bundle imports, split archives, saved downloads, and progress tracking.
  • Verified third-party bundle loading with Reseam SDK 0.20.1.
  • Workflow syntax and artifact checks passed.
  • Seven shell regression suites passed under Ubuntu WSL.
  • End-to-end patching and installation on an Android device.
  • Feedback and verification from users on the Reseam integration.

@Jman-Github Jman-Github self-assigned this Oct 11, 2026
@Jman-Github Jman-Github added the Feature Something you wish to be added label Oct 11, 2026
@Pique1986

This comment was marked as spam.

Update the Reseam SDK to 0.29.0 and integrate the shared runtime changes, keeping Reseam JNI execution in disposable ART services.

Reject incomplete patch-source selections and carry forward the latest dev fixes. Normalize Gradle line endings so the complete changes merge cleanly into dev.
@Jman-Github
Jman-Github marked this pull request as ready for review October 24, 2026 05:00
@Jman-Github
Jman-Github merged commit 8de2cdc into dev Oct 24, 2026
1 check passed
@Jman-Github
Jman-Github deleted the feat/reseam-runtime branch October 24, 2026 05:23
github-actions Bot pushed a commit that referenced this pull request Oct 24, 2026
# [1.10.0-dev.1](v1.9.0...v1.10.0-dev.1) (2026-10-24)

### Bug Fixes

* **manager:** fix picker, exports, language and dynamic colors ([c7f44e6](c7f44e6)), closes [#751](#751) [#752](#752) [#766](#766)

### Features

* **discovery:** use the Patch Bundle Registry API ([ea9e377](ea9e377))
* **patcher:** add embedded JVM runtimes ([430625e](430625e))
* **patcher:** add Reseam runtime ([#770](#770)) ([8de2cdc](8de2cdc))
SA-SUJON pushed a commit to SA-SUJON/Universal-ReVanced-Manager that referenced this pull request Oct 27, 2026
# [1.10.0](Jman-Github/Universal-Patch-Manager@v1.9.0...v1.10.0) (2026-10-27)

### Bug Fixes

* **build:** restore classpaths and bump Morphe and Reseam SDKs ([da1b3dc](Jman-Github@da1b3dc))
* **bundles:** migrate legacy discovery sources ([2b1cc2f](Jman-Github@2b1cc2f))
* **bundles:** prevent downgrades and clear stuck progress ([3a301d1](Jman-Github@3a301d1)), closes [Jman-Github#780](Jman-Github#780) [Jman-Github#783](Jman-Github#783)
* **file-picker:** remove forced shimmer delay ([a06e22c](Jman-Github@a06e22c))
* **manager:** fix picker, exports, language and dynamic colors ([c7f44e6](Jman-Github@c7f44e6)), closes [Jman-Github#751](Jman-Github#751) [Jman-Github#752](Jman-Github#752) [Jman-Github#766](Jman-Github#766)
* **manager:** fix update alerts, reordering and runtime checks ([1494d5a](Jman-Github@1494d5a)), closes [Jman-Github#794](Jman-Github#794) [Jman-Github#795](Jman-Github#795) [Jman-Github#797](Jman-Github#797)
* **manager:** preserve bundle pins and improve UI consistency ([077cf03](Jman-Github@077cf03)), closes [Jman-Github#786](Jman-Github#786) [Jman-Github#793](Jman-Github#793) [Jman-Github#792](Jman-Github#792) [Jman-Github#791](Jman-Github#791) [Jman-Github#789](Jman-Github#789)
* **patcher:** stabilize runtime workers and merging ([ff82091](Jman-Github@ff82091))
* **reseam:** fix bundle selection and plugin discovery ([582e60e](Jman-Github@582e60e))
* **reseam:** prevent native loader crashes and update SDK to 0.31.0 ([58b492d](Jman-Github@58b492d))
* **revanced-v21:** fix resource decoding and bump patcher to 21.1.0-dev.5 ([e3e326b](Jman-Github@e3e326b))
* **root:** stream APKs into package install sessions ([c4ecbf3](Jman-Github@c4ecbf3))

### Features

* **bundles:** add version pinning and refine settings UI ([24e760f](Jman-Github@24e760f)), closes [Jman-Github#782](Jman-Github#782) [Jman-Github#768](Jman-Github#768) [Jman-Github#773](Jman-Github#773) [Jman-Github#772](Jman-Github#772)
* **discovery:** use the Patch Bundle Registry API ([ea9e377](Jman-Github@ea9e377))
* **file-picker:** add breadcrumbs and file details ([781e00b](Jman-Github@781e00b))
* **patcher:** add embedded JVM runtimes ([430625e](Jman-Github@430625e))
* **patcher:** add Reseam runtime ([Jman-Github#770](Jman-Github#770)) ([8de2cdc](Jman-Github@8de2cdc))
* **updater:** support UPM updates with migration notice ([6d9e108](Jman-Github@6d9e108))

Crowdin-Dev-Head: 60f09e2
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.

2 participants