A fork of JingMatrix's LSPosed/Vector, aiming to make GKMSPatch work
Go to file
dependabot[bot] 3ed93a7897
Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.6.4 to 1.7.0 (#2522)
Bumps
[org.jetbrains.kotlinx:kotlinx-coroutines-core](https://github.com/Kotlin/kotlinx.coroutines)
from 1.6.4 to 1.7.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx.coroutines/releases">org.jetbrains.kotlinx:kotlinx-coroutines-core's
releases</a>.</em></p>
<blockquote>
<h2>1.7.0</h2>
<h3>Core API significant improvements</h3>
<ul>
<li>New <code>Channel</code> implementation with significant performance
improvements across the API (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3621">#3621</a>).</li>
<li>New <code>select</code> operator implementation: faster, more
lightweight, and more robust (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3020">#3020</a>).</li>
<li><code>Mutex</code> and <code>Semaphore</code> now share the same
underlying data structure (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3020">#3020</a>).</li>
<li><code>Dispatchers.IO</code> is added to K/N (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3205">#3205</a>)
<ul>
<li><code>newFixedThreadPool</code> and <code>Dispatchers.Default</code>
implementations on K/N were wholly rewritten to support graceful growth
under load (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3595">#3595</a>).</li>
</ul>
</li>
<li><code>kotlinx-coroutines-test</code> rework:
<ul>
<li>Add the <code>timeout</code> parameter to <code>runTest</code> for
the whole-test timeout, 10 seconds by default (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3270">#3270</a>).
This replaces the configuration of quiescence timeouts, which is now
deprecated (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3603">#3603</a>).</li>
<li>The <code>withTimeout</code> exception messages indicate if the
timeout used the virtual time (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3588">#3588</a>).</li>
<li><code>TestCoroutineScheduler</code>, <code>runTest</code>, and
<code>TestScope</code> API are promoted to stable (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3622">#3622</a>).</li>
<li><code>runTest</code> now also fails if there were uncaught
exceptions in coroutines not inherited from the test coroutine (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1205">#1205</a>).</li>
</ul>
</li>
</ul>
<h3>Breaking changes</h3>
<ul>
<li>Old K/N memory model is no longer supported (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3375">#3375</a>).</li>
<li>New generic upper bounds were added to reactive integration API
where the language since 1.8.0 dictates (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3393">#3393</a>).</li>
<li><code>kotlinx-coroutines-core</code> and
<code>kotlinx-coroutines-jdk8</code> artifacts were merged into a single
artifact (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3268">#3268</a>).</li>
<li>Artificial stackframes in stacktrace recovery no longer contain the
<code>\b</code> symbol and are now navigable in IDE and supplied with
proper documentation (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2291">#2291</a>).</li>
<li><code>CoroutineContext.isActive</code> returns <code>true</code> for
contexts without any job in them (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3300">#3300</a>).</li>
</ul>
<h3>Bug fixes and improvements</h3>
<ul>
<li>Kotlin version is updated to 1.8.20</li>
<li>Atomicfu version is updated to 0.20.2.</li>
<li><code>JavaFx</code> version is updated to 17.0.2 in
<code>kotlinx-coroutines-javafx</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3671">#3671</a>)..</li>
<li>JPMS is supported (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2237">#2237</a>).
Thanks <a href="https://github.com/lion7"><code>@​lion7</code></a>!</li>
<li><code>BroadcastChannel</code> and all the corresponding API are
deprecated (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2680">#2680</a>).</li>
<li>Added all supported K/N targets (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3601">#3601</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/812">#812</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/855">#855</a>).</li>
<li>K/N <code>Dispatchers.Default</code> is backed by the number of
threads equal to the number of available cores (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3366">#3366</a>).</li>
<li>Fixed an issue where some coroutines' internal exceptions were not
properly serializable (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3328">#3328</a>).</li>
<li>Introduced <code>Job.parent</code> API (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3201">#3201</a>).</li>
<li>Fixed a bug when <code>TestScheduler</code> leaked cancelled jobs
(<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3398">#3398</a>).</li>
<li><code>TestScope.timeSource</code> now provides comparable time marks
(<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3617">#3617</a>).
Thanks <a href="https://github.com/hfhbd"><code>@​hfhbd</code></a>!</li>
<li>Fixed an issue when cancelled <code>withTimeout</code> handles were
preserved in JS runtime (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3440">#3440</a>).</li>
<li>Ensure <code>awaitFrame</code> only awaits a single frame when used
from the main looper (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3432">#3432</a>).
Thanks <a
href="https://github.com/pablobaxter"><code>@​pablobaxter</code></a>!</li>
<li>Obsolete <code>Class-Path</code> attribute was removed from
<code>kotlinx-coroutines-debug.jar</code> manifest (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3361">#3361</a>).</li>
<li>Fixed a bug when <code>updateThreadContext</code> operated on the
parent context (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3411">#3411</a>).</li>
<li>Added new <code>Flow.filterIsInstance</code> extension (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3240">#3240</a>).</li>
<li><code>Dispatchers.Default</code> thread name prefixes are now
configurable with system property (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3231">#3231</a>).</li>
<li>Added <code>Flow.timeout</code> operator as
<code>@FlowPreview</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2624">#2624</a>).
Thanks <a
href="https://github.com/pablobaxter"><code>@​pablobaxter</code></a>!</li>
<li>Improved the performance of the <code>future</code> builder in case
of exceptions (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3475">#3475</a>).
Thanks <a
href="https://github.com/He-Pin"><code>@​He-Pin</code></a>!</li>
<li><code>Mono.awaitSingleOrNull</code> now waits for the
<code>onComplete</code> signal (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3487">#3487</a>).</li>
<li><code>Channel.isClosedForSend</code> and
<code>Channel.isClosedForReceive</code> are promoted from experimental
to delicate (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3448">#3448</a>).</li>
<li>Fixed a data race in native <code>EventLoop</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3547">#3547</a>).</li>

<li><code>Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)</code>
no longer creates an additional wrapper (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3442">#3442</a>).
Thanks <a
href="https://github.com/dovchinnikov"><code>@​dovchinnikov</code></a>!</li>
<li>Various <code>@FlowPreview</code> and
<code>@ExperimentalCoroutinesApi</code> are promoted to experimental and
stable respectively (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3542">#3542</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3097">#3097</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3548">#3548</a>).</li>
<li>Performance improvements in <code>Dispatchers.Default</code> and
<code>Dispatchers.IO</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3416">#3416</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3418">#3418</a>).</li>
<li>Fixed a bug when internal
<code>suspendCancellableCoroutineReusable</code> might have hanged (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3613">#3613</a>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kotlin/kotlinx.coroutines/blob/master/CHANGES.md">org.jetbrains.kotlinx:kotlinx-coroutines-core's
changelog</a>.</em></p>
<blockquote>
<h2>Version 1.7.0</h2>
<h3>Core API significant improvements</h3>
<ul>
<li>New <code>Channel</code> implementation with significant performance
improvements across the API (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3621">#3621</a>).</li>
<li>New <code>select</code> operator implementation: faster, more
lightweight, and more robust (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3020">#3020</a>).</li>
<li><code>Mutex</code> and <code>Semaphore</code> now share the same
underlying data structure (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3020">#3020</a>).</li>
<li><code>Dispatchers.IO</code> is added to K/N (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3205">#3205</a>)
<ul>
<li><code>newFixedThreadPool</code> and <code>Dispatchers.Default</code>
implementations on K/N were wholly rewritten to support graceful growth
under load (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3595">#3595</a>).</li>
</ul>
</li>
<li><code>kotlinx-coroutines-test</code> rework:
<ul>
<li>Add the <code>timeout</code> parameter to <code>runTest</code> for
the whole-test timeout, 10 seconds by default (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3270">#3270</a>).
This replaces the configuration of quiescence timeouts, which is now
deprecated (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3603">#3603</a>).</li>
<li>The <code>withTimeout</code> exception messages indicate if the
timeout used the virtual time (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3588">#3588</a>).</li>
<li><code>TestCoroutineScheduler</code>, <code>runTest</code>, and
<code>TestScope</code> API are promoted to stable (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3622">#3622</a>).</li>
<li><code>runTest</code> now also fails if there were uncaught
exceptions in coroutines not inherited from the test coroutine (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1205">#1205</a>).</li>
</ul>
</li>
</ul>
<h3>Breaking changes</h3>
<ul>
<li>Old K/N memory model is no longer supported (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3375">#3375</a>).</li>
<li>New generic upper bounds were added to reactive integration API
where the language since 1.8.0 dictates (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3393">#3393</a>).</li>
<li><code>kotlinx-coroutines-core</code> and
<code>kotlinx-coroutines-jdk8</code> artifacts were merged into a single
artifact (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3268">#3268</a>).</li>
<li>Artificial stackframes in stacktrace recovery no longer contain the
<code>\b</code> symbol and are now navigable in IDE and supplied with
proper documentation (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2291">#2291</a>).</li>
<li><code>CoroutineContext.isActive</code> returns <code>true</code> for
contexts without any job in them (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3300">#3300</a>).</li>
</ul>
<h3>Bug fixes and improvements</h3>
<ul>
<li>Kotlin version is updated to 1.8.20</li>
<li>Atomicfu version is updated to 0.20.2.</li>
<li><code>JavaFx</code> version is updated to 17.0.2 in
<code>kotlinx-coroutines-javafx</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3671">#3671</a>)..</li>
<li>JPMS is supported (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2237">#2237</a>).
Thanks <a href="https://github.com/lion7"><code>@​lion7</code></a>!</li>
<li><code>BroadcastChannel</code> and all the corresponding API are
deprecated (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2680">#2680</a>).</li>
<li>Added all supported K/N targets (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3601">#3601</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/812">#812</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/855">#855</a>).</li>
<li>K/N <code>Dispatchers.Default</code> is backed by the number of
threads equal to the number of available cores (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3366">#3366</a>).</li>
<li>Fixed an issue where some coroutines' internal exceptions were not
properly serializable (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3328">#3328</a>).</li>
<li>Introduced <code>Job.parent</code> API (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3201">#3201</a>).</li>
<li>Fixed a bug when <code>TestScheduler</code> leaked cancelled jobs
(<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3398">#3398</a>).</li>
<li><code>TestScope.timeSource</code> now provides comparable time marks
(<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3617">#3617</a>).
Thanks <a href="https://github.com/hfhbd"><code>@​hfhbd</code></a>!</li>
<li>Fixed an issue when cancelled <code>withTimeout</code> handles were
preserved in JS runtime (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3440">#3440</a>).</li>
<li>Ensure <code>awaitFrame</code> only awaits a single frame when used
from the main looper (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3432">#3432</a>).
Thanks <a
href="https://github.com/pablobaxter"><code>@​pablobaxter</code></a>!</li>
<li>Obsolete <code>Class-Path</code> attribute was removed from
<code>kotlinx-coroutines-debug.jar</code> manifest (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3361">#3361</a>).</li>
<li>Fixed a bug when <code>updateThreadContext</code> operated on the
parent context (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3411">#3411</a>).</li>
<li>Added new <code>Flow.filterIsInstance</code> extension (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3240">#3240</a>).</li>
<li><code>Dispatchers.Default</code> thread name prefixes are now
configurable with system property (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3231">#3231</a>).</li>
<li>Added <code>Flow.timeout</code> operator as
<code>@FlowPreview</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/2624">#2624</a>).
Thanks <a
href="https://github.com/pablobaxter"><code>@​pablobaxter</code></a>!</li>
<li>Improved the performance of the <code>future</code> builder in case
of exceptions (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3475">#3475</a>).
Thanks <a
href="https://github.com/He-Pin"><code>@​He-Pin</code></a>!</li>
<li><code>Mono.awaitSingleOrNull</code> now waits for the
<code>onComplete</code> signal (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3487">#3487</a>).</li>
<li><code>Channel.isClosedForSend</code> and
<code>Channel.isClosedForReceive</code> are promoted from experimental
to delicate (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3448">#3448</a>).</li>
<li>Fixed a data race in native <code>EventLoop</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3547">#3547</a>).</li>

<li><code>Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)</code>
no longer creates an additional wrapper (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3442">#3442</a>).
Thanks <a
href="https://github.com/dovchinnikov"><code>@​dovchinnikov</code></a>!</li>
<li>Various <code>@FlowPreview</code> and
<code>@ExperimentalCoroutinesApi</code> are promoted to experimental and
stable respectively (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3542">#3542</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3097">#3097</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3548">#3548</a>).</li>
<li>Performance improvements in <code>Dispatchers.Default</code> and
<code>Dispatchers.IO</code> (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3416">#3416</a>,
<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3418">#3418</a>).</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="2e92d58770"><code>2e92d58</code></a>
Merge pull request <a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3740">#3740</a>
from Kotlin/version-1.7.0</li>
<li><a
href="72ef8fd831"><code>72ef8fd</code></a>
Version 1.7.0</li>
<li><a
href="6165533182"><code>6165533</code></a>
Fix non-linearizability in <code>BufferedChannel.expandBuffer()</code>
(<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3730">#3730</a>)</li>
<li><a
href="a027d68bd2"><code>a027d68</code></a>
Merge branch 'master' into develop</li>
<li><a
href="41b4665958"><code>41b4665</code></a>
Support disabling reporting of uncaught exceptions in tests (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3736">#3736</a>)</li>
<li><a
href="25a3553ed0"><code>25a3553</code></a>
Properly recover exceptions when they are constructed from 'Throwable…
(<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3731">#3731</a>)</li>
<li><a
href="298419f8ac"><code>298419f</code></a>
Fix the error message if there were uncaught exceptions before test (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3733">#3733</a>)</li>
<li><a
href="c8ef9ec95e"><code>c8ef9ec</code></a>
Update Knit-generated tests</li>
<li><a
href="50398555ad"><code>5039855</code></a>
minor fix for doc and sample code (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3728">#3728</a>)</li>
<li><a
href="d6f1403e3b"><code>d6f1403</code></a>
Fix MutexCancellationStressTest flakiness (<a
href="https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3724">#3724</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Kotlin/kotlinx.coroutines/compare/1.6.4...1.7.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=org.jetbrains.kotlinx:kotlinx-coroutines-core&package-manager=gradle&previous-version=1.6.4&new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-06 07:16:56 +08:00
.github [skip ci] Revert "Let AGP to strip native libs" (#2498) 2023-04-17 09:16:29 +08:00
app Fix CrashReportActivity theme (#2502) 2023-04-18 11:55:43 +00:00
core [skip ci] Revert "Let AGP to strip native libs" (#2498) 2023-04-17 09:16:29 +08:00
daemon [skip ci] Revert "Let AGP to strip native libs" (#2498) 2023-04-17 09:16:29 +08:00
dex2oat Fix dex2oat build 2023-04-15 17:02:54 +00:00
external Upgrade AGP (#2515) 2023-05-02 11:55:52 +08:00
gradle Bump org.jetbrains.kotlinx:kotlinx-coroutines-core from 1.6.4 to 1.7.0 (#2522) 2023-05-06 07:16:56 +08:00
hiddenapi Implement getDefaultClassLoader 2023-02-26 16:48:49 +08:00
magisk-loader [skip ci] Revert "Let AGP to strip native libs" (#2498) 2023-04-17 09:16:29 +08:00
services Upgrade AGP 2023-04-15 23:01:08 +08:00
.gitattributes Ndk build (#753) 2021-06-20 11:46:38 +08:00
.gitignore Clean code (#863) 2021-08-07 10:10:34 +08:00
.gitmodules Use gradle dependencies 2023-02-26 16:48:49 +08:00
LICENSE [README] Fix license 2021-02-13 17:28:01 +08:00
README.md Require Riru 26.1.7+ (#2430) 2023-03-09 02:41:01 +08:00
build.gradle.kts [skip ci] Revert "Let AGP to strip native libs" (#2498) 2023-04-17 09:16:29 +08:00
crowdin.yml [daemon] Only package needed resources (#1508) 2021-12-30 17:31:34 +00:00
gradle.properties Remove experimental enableNewResourceShrinker flags (#2500) 2023-04-18 19:39:29 +08:00
gradlew Upgrade AGP (#2410) 2023-02-28 15:47:51 +00:00
gradlew.bat Upgrade AGP (#2410) 2023-02-28 15:47:51 +00:00
settings.gradle.kts Update settings.gradle.kts 2023-04-12 11:22:44 +08:00

README.md

LSPosed Framework

Build Crowdin Channel Chat Download Total

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 ~ 13

Install

  1. Install Magisk v24+
  2. (For Riru flavor) Install Riru v26.1.7+
  3. Download and install LSPosed in Magisk app
  4. Reboot
  5. Open LSPosed manager from notification
  6. 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
  • 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).