MCPcopy Index your code
hub / github.com/OfficialKatana/SPatch

github.com/OfficialKatana/SPatch @V100.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release V100.0 ↗ · + Follow
3,890 symbols 9,134 edges 567 files 260 documented · 7% updated 2mo agoV1.0.28 · 2026-04-24★ 4357 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Introduction

SPatch is a simple App based on SandHook that allows you to use an Xposed Module without needing to root, unlock the bootloader, or flash a custom system image. (Supports Android 5.0~9.0)

The only two restriction of SPatch are:

  1. Unable to modify system, so any Module which modifies system won't be able to work properly.
  2. Currently resource hooks are not supported. (Theming modules use Resource Hooks).

Usage

Preparation

Download the latest APK from the release page, and install it on your Android device.

Install APP and Xposed Module

Open SPatch, Click on the Drawer Button at the bottom of home page(Or long click the screen), add your desired APP and Xposed Module to SPatch's virtual environment.

Note: All operations(installation of Xposed Module, APP)must be done in SPatch, otherwise the Xposed Module installed won't take effect. For example, if you install the YouTube app on your system (Your phone's original system, not in SPatch), and then install YouTube AdAway (A YouTube Xposed Module) in SPatch; or you install YouTube in SPatch, and install YouTube AdAway on original system; or both of them are installed on original system, neither of these three cases will work!

How to install

There are three ways to install an APP or Xposed Module to SPatch:

  1. Clone an installed app from your original system. (Click Button at bottom of home page, then click Add App, the first page shows a list of installed apps.)
  2. Install via an APK file. (Click Button at bottom of home page, then click Add App, the second page shows APKs found in your sdcard)
  3. Install via an external file chooser. (Click Button at bottom of home page, then click Add App, use the floating action button to choose an APK file to install)

For Xposed Module, You can install it from Xposed Installer, too.

Activate the Xposed Module

Open Xposed Installer in SPatch, go to the module fragment, check the module you want to use:

How to activate module

Reboot

You only need to reboot SPatch, There's no need to reboot your phone; Just click Settings in home page of SPatch, click Reboot button, and SPatch will reboot in a blink.

How to reboot

Supported Modules

Almost all modules except system-relevant are supported, please try it by yourself :)

Others

GameGuardian

SPatch also supports GameGuardian, you should use the separate version for GameGuardian.(Download it in release page).

Video Tutorial

Support

Contributions to SPatch are always welcomed!!

For Developers

Credits

  1. VirtualApp
  2. Xposed

Extension points exported contracts — how you extend this code

AnimatorListener (Interface)
(no doc) [16 implementers]
lib/src/main/java/com/keijumt/passwordview/animation/Animator.java
IParameterValidator (Interface)
(no doc) [6 implementers]
app/src/main/java/com/beust/jcommander/IParameterValidator.java
LibLoader (Interface)
(no doc) [1 implementers]
lib/src/main/java/com/swift/sandhook/SandHookConfig.java
IStringConverter (Interface)
(no doc) [18 implementers]
app/src/main/java/com/beust/jcommander/IStringConverter.java
ActionListener (Interface)
(no doc)
lib/src/main/java/com/keijumt/passwordview/ActionListener.java
XmlResourceParser (Interface)
(no doc) [12 implementers]
app/src/main/java/com/sk/spatch/xmltool/android/content/res/XmlResourceParser.java
HookModeCallBack (Interface)
(no doc)
lib/src/main/java/com/swift/sandhook/SandHook.java
ZipExtraField (Interface)
(no doc) [7 implementers]
app/src/main/java/com/sk/spatch/xmltool/decode/extrafield/ZipExtraField.java

Core symbols most depended-on inside this repo

size
called by 440
app/src/main/jni/ResourceTable.cpp
add
called by 211
app/src/main/jni/ZipFile.cpp
get
called by 163
app/src/main/java/com/sk/spatch/core/SInvoker.java
toString
called by 128
app/src/main/java/com/sk/spatch/xmltool/decode/ZipOutputStream.java
error
called by 106
app/src/main/jni/SourcePos.cpp
next
called by 81
app/src/main/java/com/sk/spatch/xmltool/v1/XmlPullParser.java
getPrintableSource
called by 81
app/src/main/jni/AaptAssets.cpp
equals
called by 78
app/src/main/java/com/sk/spatch/xmltool/decode/ZipLong.java

Shape

Method 2,926
Class 546
Function 367
Interface 43
Enum 8

Languages

Java71%
C++25%
C4%

Modules by API surface

lib/src/main/java/com/swift/sandhook/wrapper/StubMethodsFactory.java302 symbols
app/src/main/jni/Bundle.h121 symbols
app/src/main/jni/ResourceTable.cpp84 symbols
app/src/main/java/com/beust/jcommander/JCommander.java83 symbols
app/src/main/java/com/sk/spatch/xmltool/decode/AXmlResourceParser.java77 symbols
app/src/main/jni/system_properties.cpp73 symbols
app/src/main/java/com/sk/spatch/xmltool/android/content/res/AXmlResourceParser.java73 symbols
app/src/main/java/com/github/topbottomsnackbar/TBSnackbar.java68 symbols
app/src/main/jni/AaptAssets.h65 symbols
app/src/main/jni/Resource.cpp58 symbols
app/src/main/jni/ResourceTable.h51 symbols
app/src/main/jni/XMLNode.cpp44 symbols

For agents

$ claude mcp add SPatch \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page