ReSukiSU fork that brings a working KPM runtime to the x86_64 kernel used by Windows Subsystem for Android.
This repository contains the ReSukiSU, Manager and KPM implementation. If you only want to install a ready-to-use WSA kernel, start with WSA-Linux-Kernel.
| I want to... | Go to |
|---|---|
| Install the WSA kernel | WSA-Linux-Kernel releases |
| Understand the x86_64 KPM port | Technical overview |
| Port a KPM module from ARM64 | Module porting guide |
| Build or package the Manager | Manager x86_64 guide |
| Check the module contract | KPM x86_64 ABI |
| Prepare changes for upstream | Patch and rebase guide |
Upstream ReSukiSU and SukiSU KPM support was designed around ARM64 KernelPatch payloads. WSA uses an x86_64 kernel, so enabling CONFIG_KPM alone exposes the interface without providing a usable backend.
This fork fills that gap with:
- an x86_64 ELF loader and relocation support for KPM modules;
- an Android x86_64
ksud kpmcommand path used by ReSukiSU Manager; - x86_64 inline hooks, function pointer hooks and native syscall wrappers;
- guarded text patching, executable-memory permission transitions and safe trampoline cleanup;
- validation that rejects malformed modules and unsafe or conflicting hook targets;
doctorandauditdiagnostics for capability and module-state checks.
The detailed implementation and safety model live in docs/WSA_X86_64_KPM.md.
- The target is the WSA 5.15 x86_64 kernel. This repository is consumed as the
KernelSUsubmodule of WSA-Linux-Kernel. - ARM64
.kpmbinaries cannot run on x86_64. Modules with source code can often be rebuilt by following the porting checklist. - Native x86_64 syscall wrappers are supported. Compat syscall wrapping remains unsupported and fails with
EOPNOTSUPP. - The Manager package must include an x86_64
libksud.sowith thekpmcommand path. The packaging guide includes a preflight check.
The current source marker is ReSukiSU-x86_64-KPM-loader/0.22. Run ksud kpm version on the target system to identify the exact loader included in an installed kernel. The current ABI and supported features are documented in docs/KPM_X86_64_ABI.md.
| Path | Purpose |
|---|---|
kernel/kpm/ |
KPM loader, lifecycle and ABI integration |
kernel/hook/x86_64/ |
x86_64 patching and hook backend |
userspace/ksud/ |
Android userspace and ksud kpm commands |
manager/ |
ReSukiSU Manager application |
examples/kpm-x86_64/ |
Minimal x86_64 KPM examples |
scripts/check-kpm-x86-abi.sh |
Local ABI and documentation preflight |
The x86_64 path is covered by loader, relocation, hook, malformed-input and repeated load/control/unload tests. Release-specific versions, artifacts and runtime results are kept with the WSA kernel releases instead of being duplicated here.
This fork is based on ReSukiSU, which builds on SukiSU Ultra and KernelSU. Issues unrelated to the WSA x86_64 port should be reproduced against upstream before being reported here.
The project is licensed under GPL-2.0. Upstream notices remain in their original files. See LICENSE.