Bumps `kotlin` from 1.9.20 to 1.9.21. Updates `org.jetbrains.kotlin:kotlin-stdlib` from 1.9.20 to 1.9.21 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/JetBrains/kotlin/releases">org.jetbrains.kotlin:kotlin-stdlib's releases</a>.</em></p> <blockquote> <h2>Kotlin 1.9.21</h2> <h2>Changelog</h2> <h3>Compiler</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-62885"><code>KT-62885</code></a> Introduce a language feature entry for expect actual classes for easier configuration of MPP projects</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-63081"><code>KT-63081</code></a> Optimize new native caches: CachedLibraries.computeVersionedCacheDirectory()</li> </ul> <h3>Docs & Examples</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-55619"><code>KT-55619</code></a> Document <code>String.format</code> function</li> </ul> <h3>IDE. Gradle Integration</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-62877"><code>KT-62877</code></a> Artifact files collecting for project configuration was finished. Resolution for configuration configuration X will be skipped</li> </ul> <h3>IDE. Gradle. Script</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-60813"><code>KT-60813</code></a> Scripts: NoSuchMethodError: 'void org.slf4j.Logger.error(java.lang.String, java.lang.Object)' when dependency uses Slf4j API</li> </ul> <h3>JavaScript</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-60785"><code>KT-60785</code></a> KJS: Destructured value class in suspend function fails with Uncaught TypeError: can't convert to primitive type error</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-63207"><code>KT-63207</code></a> KMP / JS: "TypeError: <!-- raw HTML omitted --> is not a function" with 1.9.20</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-62778"><code>KT-62778</code></a> package.json "main" field has .js extension when the result files have .mjs extension</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-61795"><code>KT-61795</code></a> KJS: Incremental Cache is not invalidated if <code>useEsClasses</code> compiler argument was changed</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-61957"><code>KT-61957</code></a> KJS: "Uncaught ReferenceError: entries is not defined" caused by enum class with <code>@JsExport</code> and Enum.entries call</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-62444"><code>KT-62444</code></a> KJS with commonJS modules should re-export in 1.9.20</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-63184"><code>KT-63184</code></a> KJS / Serialization: JsExport on serializable interface creates erroneous TypeScript</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-62190"><code>KT-62190</code></a> KJS: "IllegalStateException: Expect to have either super call or partial linkage stub inside constructor" caused by Compose and useEsModules()</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-58685"><code>KT-58685</code></a> KJS: "IllegalStateException: Not locked" cused by "unlock" called twice</li> </ul> <h3>Klibs</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-62515"><code>KT-62515</code></a> Interop klib of concurrent version is not accepted when building dependent project: "The library versions don't match"</li> </ul> <h3>Tools. CLI</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-63139"><code>KT-63139</code></a> Incorrect kotlin implementation version (1.9.255-SNAPSHOT) in metadata info</li> </ul> <h3>Tools. Gradle</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-63499"><code>KT-63499</code></a> Gradle: Source sets conventions are still registered</li> </ul> <h3>Tools. Gradle. JS</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-59523"><code>KT-59523</code></a> MPP / KJS: ESM modules uses incorrect file extension on package.json (.mjs)</li> </ul> <h3>Tools. Gradle. Kapt</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md">org.jetbrains.kotlin:kotlin-stdlib's changelog</a>.</em></p> <blockquote> <h2>1.9.21</h2> <h3>Compiler</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-62885"><code>KT-62885</code></a> Introduce a language feature entry for expect actual classes for easier configuration of MPP projects</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-63081"><code>KT-63081</code></a> Optimize new native caches: CachedLibraries.computeVersionedCacheDirectory()</li> </ul> <h3>Docs & Examples</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-55619"><code>KT-55619</code></a> Document <code>String.format</code> function</li> </ul> <h3>IDE. Gradle Integration</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-62877"><code>KT-62877</code></a> Artifact files collecting for project configuration was finished. Resolution for configuration configuration X will be skipped</li> </ul> <h3>IDE. Gradle. Script</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-60813"><code>KT-60813</code></a> Scripts: NoSuchMethodError: 'void org.slf4j.Logger.error(java.lang.String, java.lang.Object)' when dependency uses Slf4j API</li> </ul> <h3>JavaScript</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-60785"><code>KT-60785</code></a> KJS: Destructured value class in suspend function fails with Uncaught TypeError: can't convert to primitive type error</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-63207"><code>KT-63207</code></a> KMP / JS: "TypeError: <!-- raw HTML omitted --> is not a function" with 1.9.20</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-62778"><code>KT-62778</code></a> package.json "main" field has .js extension when the result files have .mjs extension</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-61795"><code>KT-61795</code></a> KJS: Incremental Cache is not invalidated if <code>useEsClasses</code> compiler argument was changed</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-61957"><code>KT-61957</code></a> KJS: "Uncaught ReferenceError: entries is not defined" caused by enum class with <code>@JsExport</code> and Enum.entries call</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-62444"><code>KT-62444</code></a> KJS with commonJS modules should re-export in 1.9.20</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-63184"><code>KT-63184</code></a> KJS / Serialization: JsExport on serializable interface creates erroneous TypeScript</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-62190"><code>KT-62190</code></a> KJS: "IllegalStateException: Expect to have either super call or partial linkage stub inside constructor" caused by Compose and useEsModules()</li> <li><a href="https://youtrack.jetbrains.com/issue/KT-58685"><code>KT-58685</code></a> KJS: "IllegalStateException: Not locked" cused by "unlock" called twice</li> </ul> <h3>Klibs</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-62515"><code>KT-62515</code></a> Interop klib of concurrent version is not accepted when building dependent project: "The library versions don't match"</li> </ul> <h3>Tools. CLI</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-63139"><code>KT-63139</code></a> Incorrect kotlin implementation version (1.9.255-SNAPSHOT) in metadata info</li> </ul> <h3>Tools. Gradle</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-63499"><code>KT-63499</code></a> Gradle: Source sets conventions are still registered</li> </ul> <h3>Tools. Gradle. JS</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-59523"><code>KT-59523</code></a> MPP / KJS: ESM modules uses incorrect file extension on package.json (.mjs)</li> </ul> <h3>Tools. Gradle. Kapt</h3> <ul> <li><a href="https://youtrack.jetbrains.com/issue/KT-63366"><code>KT-63366</code></a> Kapt processing fails with custom source sets</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|---|---|---|
| .github | ||
| app | ||
| core | ||
| daemon | ||
| dex2oat | ||
| external | ||
| gradle | ||
| hiddenapi | ||
| magisk-loader | ||
| services | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| LICENSE | ||
| README.md | ||
| build.gradle.kts | ||
| crowdin.yml | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| settings.gradle.kts | ||
README.md
LSPosed Framework
Introduction
A Riru / 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 ~ 14
Install
- Install Magisk v24+
- (For Riru flavor) Install Riru v26.1.7+
- Download and install LSPosed in Magisk app
- Reboot
- Open LSPosed manager from notification
- Have fun :)
Download
- For stable releases, please go to Github Releases page
- For canary build, please check Github Actions
Note: debug builds are only available in Github Actions.
Get Help
Only bug reports from THE LATEST DEBUG BUILD will be accepted.
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
- Telegram: @LSPosed
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
- Riru: provides a way to inject code into zygote process
- XposedBridge: the OG Xposed framework APIs
- Dobby: used for inline hooking
- LSPlant: the core ART hooking framework
- EdXposed: fork source
- ~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).