Releases: JingMatrix/Vector
Release list
Vector v2.2 canary 3107
Ask the scope table by name whether an install matters (#931)
Built from 5e4dcb92 by run 32572816475.
This is a canary: the current state of master, tested by CI and nothing else. It is
published here rather than left as a workflow artifact so that it can be downloaded
without a GitHub account.
| Build | Use it when |
|---|---|
Vector-v2.2-3107-Debug.zip |
You are chasing a bug. Far more logging, and the build maintainers ask for in reports. |
Vector-v2.2-3107-Release.zip |
You just want the newest code. |
Only the five most recent canaries are kept.
Vector v2.2 canary 3106
Answer a right click the way a long press is answered (#930)
Built from e00c5c50 by run 32565983663.
This is a canary: the current state of master, tested by CI and nothing else. It is
published here rather than left as a workflow artifact so that it can be downloaded
without a GitHub account.
| Build | Use it when |
|---|---|
Vector-v2.2-3106-Debug.zip |
You are chasing a bug. Far more logging, and the build maintainers ask for in reports. |
Vector-v2.2-3106-Release.zip |
You just want the newest code. |
Only the five most recent canaries are kept.
Vector v2.2 canary 3105
Keep one implementation of everything both managers draw
Built from 99c86ed4 by run 32564867163.
This is a canary: the current state of master, tested by CI and nothing else. It is
published here rather than left as a workflow artifact so that it can be downloaded
without a GitHub account.
| Build | Use it when |
|---|---|
Vector-v2.2-3105-Debug.zip |
You are chasing a bug. Far more logging, and the build maintainers ask for in reports. |
Vector-v2.2-3105-Release.zip |
You just want the newest code. |
Only the five most recent canaries are kept.
Vector v2.2 canary 3104
Name the framework after the build that produces it
Built from 8c83ab5a by run 32442767120.
This is a canary: the current state of master, tested by CI and nothing else. It is
published here rather than left as a workflow artifact so that it can be downloaded
without a GitHub account.
| Build | Use it when |
|---|---|
Vector-v2.2-3104-Debug.zip |
You are chasing a bug. Far more logging, and the build maintainers ask for in reports. |
Vector-v2.2-3104-Release.zip |
You just want the newest code. |
Only the five most recent canaries are kept.
Vector v2.2 canary 3103
Isolate the IServiceCallback registration behind its own class (#926)
Built from 3eae64fe by run 32440365537.
This is a canary: the current state of master, tested by CI and nothing else. It is
published here rather than left as a workflow artifact so that it can be downloaded
without a GitHub account.
| Build | Use it when |
|---|---|
Vector-v2.2-3103-Debug.zip |
You are chasing a bug. Far more logging, and the build maintainers ask for in reports. |
Vector-v2.2-3103-Release.zip |
You just want the newest code. |
Only the five most recent canaries are kept.
Vector v2.2
๐ Vector 2.2 ๐
Vector 2.2 is a hotfix for 2.1, and it brings libxposed API 102 โ where a module can be swapped out without taking the process down with it.
Important
If you installed the manager as a separate app, uninstall it before updating: a 2.1 manager cannot talk to a 2.2 daemon. A parasitic manager needs nothing.
๐ฉน What 2.1 got wrong
- ๐ช No hooks in release builds. Modules loaded, and then nothing happened. R8 had merged
XResourcesinto a shared class thatXposedHelpers.findClasstouches on its way in, andXResourcescannot resolve until the device has generated its super class. One failure is permanent, so everyfindClassinsystem_serverfailed for the rest of the boot. - ๐ Canaries installed the wrong build. Press install on a canary, get the newest release. The page is rebuilt around the builds themselves: each row a head commit, with its author, its pull request, and the issues closed since the build you are running.
๐ libxposed API 102
Hot reload โ a module's code replaced inside a process that is already running it. No more killing every process you are injected into to try a change, and no more reboot when the module hooks the system, taking with it the state you were trying to reproduce. Updates can reach processes still running the old code, if the module agrees to it. Around that: an entry class can step out of lifecycle callbacks while its siblings carry on, hookers swap atomically, and a module targeting 102 leaves the legacy API alone.
๐ฅ One module, one configuration
A module is one package and one binary for the whole device, so its configuration belongs to the package; only its presence varies per user. Nothing enforced that, and a module installed in one user could run inside another user's applications. It now runs only in the users that installed it โ system_server excepted, since it belongs to none of them.
๐งน Everything else
The IPC interfaces moved into Vector's own namespace, and the refactor shook out a run of unrelated bugs: JNI exceptions left pending across the native boundary, one of which left a process without Xposed while the log announced success; "Install as an app" going green for a copy that was a different build; an unbounded wait on a binder thread; a health flag latched before the work it reports. And the monochrome icon now carries the statue's own line work, so the themed launcher icon finally says what it is.
The two fixes at the top exist because you reported them. Thank you โ please keep telling us what breaks.
Vector v2.1
๐ Vector 2.1 ๐
Vector 2.1 is the first release built on libxposed API 101, the newly published standard, and it ships with a manager rebuilt from scratch and support for the latest Android platforms.
Where 2.0 was the definitive close of the API 100 era, 2.1 opens the next one: the framework, the daemon, and the manager have all moved to API 101.
๐งฉ libxposed API 101
With API 101 now published, the ecosystem's new standard brings significant breaking changes. Vector 2.1 migrates the entire framework onto it, adapting to the changed package-query and reflection contracts so modules written against the current API behave as their authors intend.
๐จ A New Manager, Rebuilt in Compose
The manager has been rewritten from the ground up in Jetpack Compose, and its design is community-centred: an interface built to take the everyday experience to the next level, shaped by my own aesthetic taste and open to yours.
Our mascot is The Winged Victory of Samothrace โ because Vector and Victory are never far apart. We warmly welcome feedback on the new design so we can keep refining this front end together.
๐ฑ Expanded Platform Support
- ๐ค Android 17: Full support for the latest Android release, extending Vector's range to Android 8.1 through 17.
- ๐ก๏ธ GrapheneOS: The parasitic manager now loads correctly under GrapheneOS's hardened dynamic-code-loading restrictions.
- ๐พ 16 KB Page Sizes: Native support for devices that ship with 16 KB memory pages.
A personal note: I, JingMatrix, have founded my own consultancy, Matrix Transformation, and now work as a full-time entrepreneur. Nurturing this community is one of the company's most important goals โ it is how I realize my own long-held pursuit of serving you โ and so all of my open-source projects, Vector included, are funded by the company. Thank you for being part of this journey.
Vector v2.0
๐ Vector 2.0 ๐
Welcome to Vector 2.0! As part of our ongoing transition, the project has officially been renamed from LSPosed to Vector. While our major internal refactoring is still underway, we are releasing 2.0 now to provide a stable, feature-complete environment for those relying on legacy libxposed APIs.
๐ libxposed API 100 & 101
With the recent publication of libxposed API 101, the ecosystem is moving toward a new standard with significant breaking changes. Because API 100 was never officially published, Vector 2.0 serves as the definitive implementation of the API 100 era, built from the exact commit prior to the API 101 jump.
๐๏ธ Architecture & API Updates
- Vector & Zygisk Overhaul: Officially renamed and modularized the project, featuring a completely rewritten, modern Zygisk architecture.
- API 100 Finalization: Completed all remaining libxposed API 100 features, including comprehensive support for static initializers, constructor hooking, and centralized logging.
โ๏ธ Core Engine & System Enhancements
- ๐ Bypassed Bionic
LD_PRELOADRestrictions: Resolved fatal namespace errors on Android 10 by loading thedex2oathook library via amemfd_createtmpfs-backed file descriptor, bypassing the linker's namespace checks. - ๐ก๏ธ Reflection Parity Overhaul: Completely rebuilt the
invokeSpecialMethodbackend to improve performance, enhance robustness, and mirror standard Java reflection behavior. - โฑ๏ธ Late Injection Standalone Launch: Added native support for manual late injection (triggered by NeoZygisk), without relying on Magisk's early-init phaseโhighly useful for AOSP debug builds.
LSPosed v1.11.0
LSPosed v1.11.0 ๐
This release brings major improvements for Android 16 Beta readiness, resolves specific quirks on Android 10 and OnePlus devices, and significantly reinforces overall system stability.
๐ฑ Compatibility & Core
- Android 16 Beta Support: Fixed compatibility issues with Android 16 QPR Beta 3 (specifically
UserManagerchanges) and recent ART updates affecting thedex2oatwrapper. - Android 10 Fixes: Resolved
dex2oatcrashes caused by 32-bit/64-bit architecture mismatches. - OnePlus Compatibility: Restored
Application#attachhooking capabilities, overcoming aggressive method inlining found in recent OOS updates. - Dex2Oat Overhaul: Refactored the wrapper to utilize the APEX linker directly, eliminating missing symbol errors and boosting reliability.
๐ ๏ธ Stability & Fixes
- Database Integrity: Resolved critical crashes and potential corruption during database initialization and migration.
- Frida Compatibility: Fixed
SIGSEGVcrashes when running alongside Frida by making memory mapping parsing more robust. - SELinux: Corrected file contexts for the modern Xposed API 100 (
openRemoteFile) and ensured they persist across reboots. - Injection Reliability: Implemented retry logic for System Server injection to minimize start-up failures.
โก Internal Changes
- Kotlin Refactor: The
DexParserhas been rewritten in Kotlin for improved performance and maintainability. - WebUI Removal: Removed the WebUI integration as it is no longer required.
๐ฎ Development Plan
The current LSPosed fork is undergoing a complete refactor into a new project: Vector.
We are in the process of rewriting the Java layer into Kotlin and adding extensive documentation for the native layer.
The name Vector was chosen to manifest its close mathematical relationship with Matrix, while symbolizing the framework's role as a precise injection vector for modules.
LSPosed v1.10.2
๐ To celebrate the release of Android 16, we are excited to announce a new stable version of LSPosed!
To better understand LSPosed, we recommend reading our troubleshooting guide.
โจ What's New
- Fully support Android 16.
- Hide traces introduced by the
dex2oathook. - The LSPosed manager can now be opened via the Action button.
- New options have been added to the
Selectmenu for scopes. - Allow users to toggle off detectable logging of LSPosed.
๐ Bug Fixes
- The
LSPlthook has been abandoned for efficiency considerations. - Resolved an issue where modules targeting
systemui(e.g.,ClassicPowerMenu) were not working. - Removed Telemetry monitoring.
๐ Other Changes
- The dependency on
topjohnwu/libcxxhas been removed in favor of the official C++ implementation. This will result in a larger release archive for LSPosed.
๐ High-Priority Plans
- Creating comprehensive development documentation for LSPosed.
- Resolving open issues with assignees.
Full Changelog: v1.10.1...v1.10.2
โค๏ธ A personal note
For the past few months, I have been focused on finishing my PhD thesis manuscript, which has limited my active development on LSPosed. I sincerely appreciate the community's passion and support during this time. It has been a pleasure to witness our community grow and thrive around this open-source fork. I am deeply indebted to your trust and respect, which has indeed helped me navigate the unavoidable challenges and depressions faced by a PhD candidate.
Maintaining this project is a joyful responsibility. However, life is a grand museum of passions, and I am constantly called by my devotion to research and teaching at the university. For users eagerly awaiting new features, I want to reassure you that the LSPosed codebase is quite stable and sufficient for its functionality. Moreover, I sincerely encourage developers to join the project. For all users, please consider participating in the GitHub Discussions to share your experiences and various tips. Nothing is more valuable to an open-source project than an active community.