News Patch requests and updates

Docs

Reseam documentation

Reseam applies community-built patches to Android apps on the device. These docs are for people who build on it.

New to writing patches? Start with Start a bundle: it copies the patch bundle template, builds it, and runs it on an app in a few minutes.

Writing patches

Start from the template, write patches in Kotlin, and publish a signed bundle.

  1. 01 Start a bundle Copy the template, build it, and run its patches on an app.
  2. 02 Your first patch Write a patch that removes a prompt from an app, build it, and test it.
  3. 03 How patching works What happens between picking patches and installing the patched app.
  4. 04 Declaring patches Name a patch, say which apps it is for, and give it options and dependencies.
  5. 05 Finding code Describe methods, classes, and fields by what they do, so patches survive app updates.
  6. 06 Pointing at instructions Select one instruction inside a method, and capture the values around it.
  7. 07 Changing code Add code at the start of a method, before it returns, around an instruction, or instead of it.
  8. 08 Manifest, resources, and files Edit the manifest, resources, XML layouts, and any file in the APK.
  9. 09 Testing and debugging Build, patch, and install in a loop, read what the engine reports, and find out why a patch didn't work.
  10. 10 Shipping your own code Write Kotlin that runs inside the patched app, and call it from patches.
  11. 11 Settings inside the app Add a settings screen to the patched app, so users can turn features on and off.
  12. 12 Reading obfuscated objects Reach a value several obfuscated classes deep, and reuse the path in any patch.
  13. 13 Raw bytecode Read and edit instructions and registers directly, when targets and code blocks aren't enough.
  14. 14 Hermes JavaScript Hook the app's JavaScript functions in a Hermes bundle, and call your TypeScript from the hooks.
  15. 15 Bundle projects The project layout, the files that configure it, and what the build produces.
  16. 16 Publishing Release a bundle so users can add it to Reseam Manager and get updates.
  17. 17 API: App runtime What your extensions call inside the patched app: settings, strings, and branded components.
  18. 18 API: Code blocks Adding code to methods, the values code blocks work with, extension bindings, and app-wide bytecode changes.
  19. 19 API: Gradle plugin The plugins that build a bundle, their settings, and the properties the build reads.
  20. 20 API: Hermes Finding and hooking JavaScript functions in a React Native app's Hermes bundle.
  21. 21 API: Manifest, resources, and files Reading and editing the manifest, compiled resources, XML documents, and any file in the APK.
  22. 22 API: Patches Declaring patches, options, and what a patch sees while it runs.
  23. 23 API: Raw bytecode Methods, classes, and instructions as data, for edits that targets and code blocks can't express.
  24. 24 API: Settings Declaring settings, the settings screen, gates, brands, and icons.
  25. 25 API: Targets and points Finding methods, classes, fields, instructions, and values inside obfuscated objects.
  26. 26 Glossary The words used across these docs.
  27. 27 Troubleshooting What common errors mean, and how to fix them.

CLI

Patch APKs, build bundles, and publish them from a terminal.

  1. 01 Overview What the reseam command does, and who it is for.
  2. 02 Install Download the reseam binary or build it from source.
  3. 03 Patch Apply patches from bundles to an APK and sign the result.
  4. 04 Perf Measure how long a patch run takes and how much memory it uses.
  5. 05 Bundle Create signing keys, pack bundles, list what is inside one, and fetch published releases.
  6. 06 Release Publish a release to a GitHub or Forgejo release, an S3 bucket, or a folder.
  7. 07 Info Print an app's package, version, and DEX, class, and method counts.

API server

Run your own instance of the server behind api.reseam.app.

  1. 01 Overview What the Reseam API serves, and who uses it.
  2. 02 Install Run your own instance with Docker or Bun.
  3. 03 Configuration The environment variables the API reads.
  4. 04 Endpoints Every route the API serves.
  5. 05 Announcements Post, edit, archive, and delete announcements.
  6. 06 Requests Patch requests, votes, comments, reports, and screening.