No description
  • Kotlin 97.9%
  • NSIS 1.6%
  • Shell 0.3%
  • Just 0.2%
Find a file
2026-10-27 23:52:18 +05:30
.github chore: move donations page to /donate 2026-10-20 13:44:02 +05:30
composeApp refactor: key patches by the engine's typed PatchRef and drop the problem cases engine 0.33 removed 2026-10-27 23:38:20 +05:30
gradle build: require engine 0.33.0 2026-10-27 23:52:18 +05:30
LICENSES feat: tester round 3 with pull to refresh, debug reports, licenses, container transitions and universal patch counts 2026-10-14 16:39:11 +05:30
.gitignore feat: Initial commit 2026-04-25 18:48:42 +05:30
build.gradle.kts feat: tester round 3 with pull to refresh, debug reports, licenses, container transitions and universal patch counts 2026-10-14 16:39:11 +05:30
gradle.properties build: version 0.33.0 2026-10-27 23:52:18 +05:30
gradlew feat: Initial commit 2026-04-25 18:48:42 +05:30
gradlew.bat feat: Initial commit 2026-04-25 18:48:42 +05:30
justfile ci: build and release in the shared CI image through just 2026-10-19 20:45:15 +05:30
LICENSE chore: license under AGPL-3.0-or-later with section 7 terms 2026-10-07 04:53:23 +05:30
NOTICE chore: license under AGPL-3.0-or-later with section 7 terms 2026-10-07 04:53:23 +05:30
README.md feat: rebuild Manager on the Penpot design with announcements and patch release notes 2026-10-11 00:52:12 +05:30
REUSE.toml feat: tester round 3 with pull to refresh, debug reports, licenses, container transitions and universal patch counts 2026-10-14 16:39:11 +05:30
settings.gradle.kts build: use upstream webview 1.10.2 2026-10-06 21:23:42 +05:30

Reseam logo

Reseam Manager

Download · Patches · Website

Reseam Manager patches Android apps. Pick an app, choose the patches you want, and Reseam Manager builds a patched copy on your device. On Android it installs it for you. On Linux and Windows it saves the file so you can move it to your phone.

Get it from reseam.app/download. The rest of this README is for people working on Reseam Manager.

Layout

One Kotlin Multiplatform Compose codebase for Android, Linux, and Windows.

composeApp/src/commonMain/composeResources   strings, the Inter font
composeApp/src/jvmCommonMain   shared code: UI, data, SDK calls, platform contracts
  app/reseam/manager/data      bundles, patched apps, app sources, settings, signing keys, trust
  app/reseam/manager/sdk       Reseam SDK calls and their adapters
  app/reseam/manager/ui        theme, components, navigation, one package per screen
  app/reseam/manager/platform  contracts for HTTP, installed apps, installing, mounting
composeApp/src/androidMain     Android entry point and platform code
composeApp/src/jvmMain         desktop entry point and platform code
  • The UI follows the Penpot file "Reseam" (Manager pages). ui/theme holds its tokens: colors for dark and light, the type scale, spacing, radii, sizes and motion. ui/components holds its components under the same names. Screens are built only from those.
  • Every string the user reads is a Compose resource in strings.xml, with plurals where a count is involved. Data code throws typed Failures and posts typed Notices; the UI words them.
  • AppGraph builds the repositories every screen shares. View models own screen state. Repositories in data/ store state as JSON files.
  • Narrow windows show one screen at a time. From 720 dp a list screen shows its detail beside it (ui/nav/Panes.kt).
  • Patching: pick an app, check its patches and app file, patch. The app file defaults to a download of the version most patches support, since an installed copy may already be patched.

Trust. The official bundle is accepted only when it is signed by Reseam's key, which is built into the app. Any other signer has to be approved by the user once.

Engine. The engine comes from one Maven dependency, app.reseam:reseam-sdk, pinned in gradle/libs.versions.toml. Patch metadata is read from the installed bundle files at launch, so it always matches the running engine. A bundle the engine can no longer load is removed.

Build

Run Gradle with JDK 17 or 21. The app compiles with a Java 17 toolchain, which Gradle downloads if it's missing.

./gradlew :composeApp:assembleDebug   # Android APK
./gradlew :composeApp:run             # desktop app

To use a local engine checkout instead of the published SDK, set RESEAM_WORKSPACE to it. Build its native parts first, from the engine repository:

cargo xtask regen all
cargo xtask runtime
cargo xtask pack-sdk

Windows installer

Builds on Linux, with no Wine or Windows machine. Install nsis and unzip, then:

./gradlew :composeApp:packageWindows

The installer lands in composeApp/build/compose/binaries/main/windows/. It bundles its own Java runtime and installs for the current user under %LOCALAPPDATA%\Programs\Reseam Manager. Set MAKENSIS if makensis isn't on PATH.

  • Data, settings, and signing keys: %LOCALAPPDATA%\app.reseam.manager\data. Uninstalling keeps them.
  • Log of the last launch: %LOCALAPPDATA%\app.reseam.manager\logs\manager.log.
  • Silent install: reseam-manager-<version>-windows-x64.exe /S /D=D:\folder (/D= must come last). Silent uninstall: Uninstall.exe /S.

On desktop, a download source that asks for a human check opens in the system webview: WebView2 on Windows, WebKitGTK 4.1 on Linux.

Release

Push a vX.Y.Z tag; CI builds with that version. It builds the Android APKs (one per ABI), the Linux DEB, RPM, and Arch packages, and the Windows installer, then writes manager.json. Everything goes to the CDN, and only manager.json to the Forgejo release, which the API reads. Installed copies check that index at launch and offer the update.

License

AGPL-3.0-or-later, with additional terms under section 7 in NOTICE.