Skip to content

Releases: JingMatrix/Vector

Vector v2.2 canary 3107

Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 12:30
5e4dcb9

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 09:58
e00c5c5

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 09:35

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 03:27

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

Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Aug 02:46
3eae64f

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

Choose a tag to compare

@github-actions github-actions released this 04 Aug 09:38

๐ŸŽ‰ 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 XResources into a shared class that XposedHelpers.findClass touches on its way in, and XResources cannot resolve until the device has generated its super class. One failure is permanent, so every findClass in system_server failed 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

Choose a tag to compare

@github-actions github-actions released this 02 Aug 06:02

๐ŸŽ‰ 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

Choose a tag to compare

@JingMatrix JingMatrix released this 22 Mar 19:28

๐ŸŽ‰ 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_PRELOAD Restrictions: Resolved fatal namespace errors on Android 10 by loading the dex2oat hook library via a memfd_create tmpfs-backed file descriptor, bypassing the linker's namespace checks.
  • ๐Ÿ›ก๏ธ Reflection Parity Overhaul: Completely rebuilt the invokeSpecialMethod backend 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

Choose a tag to compare

@JingMatrix JingMatrix released this 31 Jan 22:54

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 UserManager changes) and recent ART updates affecting the dex2oat wrapper.
  • Android 10 Fixes: Resolved dex2oat crashes caused by 32-bit/64-bit architecture mismatches.
  • OnePlus Compatibility: Restored Application#attach hooking 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 SIGSEGV crashes 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 DexParser has 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

Choose a tag to compare

@JingMatrix JingMatrix released this 12 Jul 09:43

๐ŸŽ‰ 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 dex2oat hook.
  • The LSPosed manager can now be opened via the Action button.
  • New options have been added to the Select menu for scopes.
  • Allow users to toggle off detectable logging of LSPosed.

๐Ÿ› Bug Fixes

  • The LSPlt hook 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/libcxx has 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.