A fork of JingMatrix's LSPosed/Vector, aiming to make GKMSPatch work
Go to file
JingMatrix 156c6ae855 Remove some traces left by LSPosed
1. Avoid changing `system.prop`: there is already no need to add
   system-wise `dex2oat` flags, since LSPosed provides a wrapper for it,
   see https://nullptr.icu/index.php/archives/53/ for detailed
   explanation;
2. Postpone initialization of LSPlant: initialization of `initInfo`
   during the `onLoad` Zygisk api will change the order of parsed files
   in memory, especially bring the item `libart.so` forward;
3. Close opened virtual map file: this should no longer be a problem
   after the second point is applied since it is no longer opened during
   `onLoad`, but let us close it as a good practice;
4. Remove /data/resource-cache mount: introduced in
   https://github.com/LSPosed/LSPosed/pull/1627, most likely designed to
   solve problems in early versions of root solutions and being reverted
   does not change the function of deamon since we will have to wait
   sufficient time in `waitSystemService` of `LSPosedService` manager.
   Of course, more tests are neeeded on different devices to see if
   parasitic notification manager will work as expected.
2024-12-02 10:15:44 +01:00
.github Remove Riru support 2024-09-23 11:10:25 +02:00
apache Bump the submodule group with 2 updates (#108) 2024-12-01 08:01:07 +01:00
app [translation] Update translation from Crowdin (#102) 2024-11-26 14:55:42 +01:00
axml Bump the submodule group with 3 updates (#86) 2024-11-01 09:50:44 +01:00
core Strip logs if verbose log is disabled (#101) 2024-11-25 22:28:34 +01:00
daemon Strip logs if verbose log is disabled (#101) 2024-11-25 22:28:34 +01:00
dex2oat Add missing LD_LIBRARY_PATH env (#34) 2024-09-22 14:25:45 +02:00
external Bump the submodule group with 2 updates (#108) 2024-12-01 08:01:07 +01:00
gradle Bump the maven group with 2 updates (#105) 2024-11-28 09:38:51 +01:00
hiddenapi Fix `IContentProvider` for Android P and below (#2735) 2023-09-01 21:54:50 +08:00
magisk-loader Remove some traces left by LSPosed 2024-12-02 10:15:44 +01:00
services Strip logs if verbose log is disabled (#101) 2024-11-25 22:28:34 +01:00
.gitattributes Ndk build (#753) 2021-06-20 11:46:38 +08:00
.gitignore Rename Apache class names to avoid conflicts 2024-10-31 14:43:43 +01:00
.gitmodules Remove LSPlt submodule 2024-09-23 11:10:37 +02:00
LICENSE [README] Fix license 2021-02-13 17:28:01 +08:00
README.md Android 15 is released 2024-10-16 11:06:16 +02:00
build.gradle.kts Update dependencies 2024-10-06 10:15:22 +02:00
crowdin.yml [skip ci] Config crowdin 2024-07-24 10:27:25 +02:00
gradle.properties Adjust proguard for Android R8 2024-05-18 23:48:43 +02:00
gradlew Update dependencies (#16) 2024-09-12 11:31:07 +02:00
gradlew.bat Update dependencies (#16) 2024-09-12 11:31:07 +02:00
settings.gradle.kts Add commons-lang as a subproject 2024-09-22 14:25:45 +02:00

README.md

LSPosed Framework

Build Crowdin Download Total

Introduction

A Zygisk module trying to provide an ART hooking framework which delivers consistent APIs with the OG Xposed, leveraging LSPlant hooking framework.

Xposed is a framework for modules that can change the behavior of the system and apps without touching any APKs. That's great because it means that modules can work for different versions and even ROMs without any changes (as long as the original code was not changed too much). It's also easy to undo. As all changes are done in the memory, you just need to deactivate the module and reboot to get your original system back. There are many other advantages, but here is just one more: multiple modules can do changes to the same part of the system or app. With modified APKs, you have to choose one. No way to combine them, unless the author builds multiple APKs with different combinations.

Supported Versions

Android 8.1 ~ 15

Install

  1. Install Magisk v26+
  2. Download and install LSPosed in Magisk app
  3. Reboot
  4. Open LSPosed manager from notification
  5. Have fun :)

Download

Note: debug builds are only available in Github Actions.

Get Help

Only bug reports from THE LATEST DEBUG BUILD will be accepted.

  • GitHub issues: Issues
  • (For Chinese speakers) 本项目只接受英语标题的issue。如果您不懂英语请使用翻译工具

For Developers

Developers are welcome to write Xposed modules with hooks based on LSPosed Framework. A module based on LSPosed framework is fully compatible with the original Xposed Framework, and vice versa, a Xposed Framework-based module will work well with LSPosed framework too.

We use our own module repository. We welcome developers to submit modules to our repository, and then modules can be downloaded in LSPosed.

Community Discussion

Notice: These community groups don't accept any bug report, please use Get help to report.

Translation Contributing

You can contribute translation here.

Credits

  • Magisk: makes all these possible
  • XposedBridge: the OG Xposed framework APIs
  • Dobby: fallback of PLT hook and inline hooker for native_api implement
  • LSPlant: the core ART hooking framework
  • EdXposed: fork source
  • xz-embedded: decompress .gnu_debugdata header section of stripped libart.so
  • Riru: provides a way to inject code into zygote process
  • ~SandHook: ART hooking framework for SandHook variant~
  • ~YAHFA: previous ART hooking framework~
  • ~dexmaker and dalvikdx: to dynamically generate YAHFA hooker classes~
  • ~DexBuilder: to dynamically generate YAHFA hooker classes~

License

LSPosed is licensed under the GNU General Public License v3 (GPL-3) (http://www.gnu.org/copyleft/gpl.html).