From 71937f53797c39bf026d21264f8f919eee0b88b8 Mon Sep 17 00:00:00 2001 From: TinyHai <34483077+TinyHai@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:14:40 +0800 Subject: [PATCH 001/113] manager: fix update no response when changelog is empty (#1786) --- .../app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt index 7f1d483f14bf..6ecf53a8974e 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt @@ -128,7 +128,9 @@ fun UpdateCard() { message = stringResource(id = R.string.new_version_available).format(newVersionCode), MaterialTheme.colorScheme.outlineVariant ) { - if (changelog.isNotEmpty()) { + if (changelog.isEmpty()) { + uriHandler.openUri(newVersionUrl) + } else { updateDialog.showConfirm( title = title, content = changelog, From f3eab5eac54d3ac8a2d9b09e4e5279bb692ba1e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:14:59 +0800 Subject: [PATCH 002/113] build(deps-dev): bump vitepress from 1.2.2 to 1.2.3 in /website (#1803) Bumps [vitepress](https://github.com/vuejs/vitepress) from 1.2.2 to 1.2.3.
Release notes

Sourced from vitepress's releases.

v1.2.3

Please refer to CHANGELOG.md for details.

Changelog

Sourced from vitepress's changelog.

1.2.3 (2024-06-04)

Bug Fixes

Commits

Most Recent Ignore Conditions Applied to This Pull Request | Dependency Name | Ignore Conditions | | --- | --- | | vitepress | [< 1.2, > 1.1.3] |
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vitepress&package-manager=npm_and_yarn&previous-version=1.2.2&new-version=1.2.3)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package.json | 2 +- website/yarn.lock | 110 +++++++++++++++++++++---------------------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/website/package.json b/website/package.json index 4d1ee790e71e..9a89a65fabf6 100644 --- a/website/package.json +++ b/website/package.json @@ -7,7 +7,7 @@ "author": "weishu", "license": "MIT", "devDependencies": { - "vitepress": "^1.2.2", + "vitepress": "^1.2.3", "vue": "^3.4.27" }, "scripts": { diff --git a/website/yarn.lock b/website/yarn.lock index 15a2062cfd70..25a40addb817 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -378,17 +378,17 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== -"@shikijs/core@1.6.0", "@shikijs/core@^1.5.2": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.6.0.tgz#ec8c199715859c7bbd2717c26526edc93e18d1c7" - integrity sha512-NIEAi5U5R7BLkbW1pG/ZKu3eb1lzc3/+jD0lFsuxMT7zjaf9bbNwdNyMr7zh/Zl8EXQtQ+MYBAt5G+JLu+5DlA== +"@shikijs/core@1.6.2", "@shikijs/core@^1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.6.2.tgz#29be410e33e604c8ccc7d5ab75cade1a52db8ec2" + integrity sha512-guW5JeDzZ7uwOjTfCOFZ2VtVXk5tmkMzBYbKGfXsmAH1qYOej49L5jQDcGmwd6/OgvpmWhzO2GNJkQIFnbwLPQ== -"@shikijs/transformers@^1.5.2": - version "1.6.0" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.6.0.tgz#552ea80721517c815f7615e150193a96ac508049" - integrity sha512-qGfHe1ECiqfE2STPWvfogIj/9Q0SK+MCRJdoITkW7AmFuB7DmbFnBT2US84+zklJOB51MzNO8RUXZiauWssJlQ== +"@shikijs/transformers@^1.6.2": + version "1.6.2" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.6.2.tgz#dab9f22531f1a16114a59f11e5d681edbd764970" + integrity sha512-ndqTWyHnxmsLkowhKWTam26opw8hg5a34y6FAUG/Xf6E49n3MM//nenKxXiWpPYkNPl1KZnYXB1k+Ia46wjOZg== dependencies: - shiki "1.6.0" + shiki "1.6.2" "@types/estree@1.0.5": version "1.0.5" @@ -418,10 +418,10 @@ resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== -"@vitejs/plugin-vue@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" - integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== +"@vitejs/plugin-vue@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz#e3dc11e427d4b818b7e3202766ad156e3d5e2eaa" + integrity sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ== "@vue/compiler-core@3.4.27": version "3.4.27" @@ -465,7 +465,7 @@ "@vue/compiler-dom" "3.4.27" "@vue/shared" "3.4.27" -"@vue/devtools-api@^7.2.0": +"@vue/devtools-api@^7.2.1": version "7.2.1" resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.2.1.tgz#1eb3d33c85b76306106d5804bafa0d13178e9224" integrity sha512-6oNCtyFOrNdqm6GUkFujsCgFlpbsHLnZqq7edeM/+cxAbMyCWvsaCsIMUaz7AiluKLccCGEM8fhOsjaKgBvb7g== @@ -527,34 +527,34 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.27.tgz#f05e3cd107d157354bb4ae7a7b5fc9cf73c63b50" integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== -"@vueuse/core@10.9.0", "@vueuse/core@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.9.0.tgz#7d779a95cf0189de176fee63cee4ba44b3c85d64" - integrity sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg== +"@vueuse/core@10.10.0", "@vueuse/core@^10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.10.0.tgz#05a98d3c5674762455a2c552c915d461d83e6490" + integrity sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw== dependencies: "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.9.0" - "@vueuse/shared" "10.9.0" + "@vueuse/metadata" "10.10.0" + "@vueuse/shared" "10.10.0" vue-demi ">=0.14.7" -"@vueuse/integrations@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.9.0.tgz#2b1a9556215ad3c1f96d39cbfbef102cf6e0ec05" - integrity sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q== +"@vueuse/integrations@^10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.10.0.tgz#31f413b88d7ed24213958eba6824d46b2bf71b5f" + integrity sha512-vHGeK7X6mkdkpcm1eE9t3Cpm21pNVfZRwrjwwbrEs9XftnSgszF4831G2rei8Dt9cIYJIfFV+iyx/29muimJPQ== dependencies: - "@vueuse/core" "10.9.0" - "@vueuse/shared" "10.9.0" + "@vueuse/core" "10.10.0" + "@vueuse/shared" "10.10.0" vue-demi ">=0.14.7" -"@vueuse/metadata@10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.9.0.tgz#769a1a9db65daac15cf98084cbf7819ed3758620" - integrity sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA== +"@vueuse/metadata@10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.10.0.tgz#53e61e9380670e342cbe6e03d852f3319308cb5b" + integrity sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug== -"@vueuse/shared@10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.9.0.tgz#13af2a348de15d07b7be2fd0c7fc9853a69d8fe0" - integrity sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw== +"@vueuse/shared@10.10.0": + version "10.10.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.10.0.tgz#93f7c2210151ff43c2c7677963f7aa3aef5d9896" + integrity sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og== dependencies: vue-demi ">=0.14.7" @@ -721,12 +721,12 @@ rollup@^4.13.0: "@rollup/rollup-win32-x64-msvc" "4.18.0" fsevents "~2.3.2" -shiki@1.6.0, shiki@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.6.0.tgz#f017ed09d467f99a28d5dfb572bcba6dfcadbcf3" - integrity sha512-P31ROeXcVgW/k3Z+vUUErcxoTah7ZRaimctOpzGuqAntqnnSmx1HOsvnbAB8Z2qfXPRhw61yptAzCsuKOhTHwQ== +shiki@1.6.2, shiki@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.6.2.tgz#082db563387a94c10e4002e0c62c61bc78e9cae7" + integrity sha512-X3hSm5GzzBd/BmPmGfkueOUADLyBoZo1ojYQXhd+NU2VJn458yt4duaS0rVzC+WtqftSV7mTVvDw+OB9AHi3Eg== dependencies: - "@shikijs/core" "1.6.0" + "@shikijs/core" "1.6.2" source-map-js@^1.2.0: version "1.2.0" @@ -743,10 +743,10 @@ tabbable@^6.2.0: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -vite@^5.2.11: - version "5.2.11" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.11.tgz#726ec05555431735853417c3c0bfb36003ca0cbd" - integrity sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ== +vite@^5.2.12: + version "5.2.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.12.tgz#3536c93c58ba18edea4915a2ac573e6537409d97" + integrity sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA== dependencies: esbuild "^0.20.1" postcss "^8.4.38" @@ -754,26 +754,26 @@ vite@^5.2.11: optionalDependencies: fsevents "~2.3.3" -vitepress@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.2.2.tgz#7680c807ab62ece6edd1cd1ec41f8619860e9ba2" - integrity sha512-uZ3nXR5NY4nYj3RJWCo5jev9qlNZAQo5SUXu1U0QSUx84cUm/o7hCTDVjZ4njVSVui+PsV1oAbdQOg8ygbaf4w== +vitepress@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.2.3.tgz#a507d2f5e86c1fbcdb5ec2212f1db4828504df34" + integrity sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg== dependencies: "@docsearch/css" "^3.6.0" "@docsearch/js" "^3.6.0" - "@shikijs/core" "^1.5.2" - "@shikijs/transformers" "^1.5.2" + "@shikijs/core" "^1.6.2" + "@shikijs/transformers" "^1.6.2" "@types/markdown-it" "^14.1.1" - "@vitejs/plugin-vue" "^5.0.4" - "@vue/devtools-api" "^7.2.0" + "@vitejs/plugin-vue" "^5.0.5" + "@vue/devtools-api" "^7.2.1" "@vue/shared" "^3.4.27" - "@vueuse/core" "^10.9.0" - "@vueuse/integrations" "^10.9.0" + "@vueuse/core" "^10.10.0" + "@vueuse/integrations" "^10.10.0" focus-trap "^7.5.4" mark.js "8.11.1" minisearch "^6.3.0" - shiki "^1.5.2" - vite "^5.2.11" + shiki "^1.6.2" + vite "^5.2.12" vue "^3.4.27" vue-demi@>=0.14.7: From 2a576470f58c13e5cdd365c1caf42e187ce0f50a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:15:17 +0800 Subject: [PATCH 003/113] build(deps): bump zip from 2.1.0 to 2.1.2 in /userspace/ksud (#1799) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [zip](https://github.com/zip-rs/zip2) from 2.1.0 to 2.1.2.
Release notes

Sourced from zip's releases.

v2.1.2

🐛 Bug Fixes

  • Derive Debug for ZipWriter
  • lower default version to 4.5 and use the version-needed-to-extract where feasible.

🚜 Refactor

  • use a MIN_VERSION constant

⚙️ Miscellaneous Tasks

  • Bug fixes for debug implementation
  • Bug fixes for debug implementation
  • Update unit tests
  • Remove unused import

v2.1.1

🐛 Bug Fixes

  • Derive Debug for ZipWriter
  • lower default version to 4.5 and use the version-needed-to-extract where feasible.

🚜 Refactor

  • use a MIN_VERSION constant

⚙️ Miscellaneous Tasks

  • Bug fixes for debug implementation
  • Bug fixes for debug implementation
  • Update unit tests
  • Remove unused import
Changelog

Sourced from zip's changelog.

Changelog

2.1.1 - 2024-05-28

🐛 Bug Fixes

  • Derive Debug for ZipWriter
  • lower default version to 4.5 and use the version-needed-to-extract where feasible.

🚜 Refactor

  • use a MIN_VERSION constant

⚙️ Miscellaneous Tasks

  • Bug fixes for debug implementation
  • Bug fixes for debug implementation
  • Update unit tests
  • Remove unused import
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zip&package-manager=cargo&previous-version=2.1.0&new-version=2.1.2)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- userspace/ksud/Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 4e0b195fb99d..ee17c7f56431 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -885,7 +885,7 @@ dependencies = [ "sha256", "tempdir", "which", - "zip 2.1.0", + "zip 2.1.2", "zip-extensions", ] @@ -1770,9 +1770,9 @@ dependencies = [ [[package]] name = "zip" -version = "2.1.0" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2568cd0f20e86cd9a7349fe05178f7bd22f22724678448ae5a9bac266df2689" +checksum = "098d5d7737fb0b70814faa73c17df84f047d38dd31d13bbf2ec3fb354b5abf45" dependencies = [ "arbitrary", "bzip2", From 9fdbaaa89f653dbf8f4adf16afc70802069b6e94 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 01:15:34 +0800 Subject: [PATCH 004/113] build(deps): bump zip-extensions from 0.6.2 to 0.7.0 in /userspace/ksud (#1798) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [zip-extensions](https://github.com/matzefriedrich/zip-extensions-rs) from 0.6.2 to 0.7.0.
Release notes

Sourced from zip-extensions's releases.

v0.7.0

Changes

  • The create_from_directory_with_options method now supports per-item file options. This introduces a breaking change: instead of passing FileOptions directly, an Fn must be specified that will be called for each file and must return a FileOptions value.
  • Upgraded the zip dependency to version 0.6.6.
Changelog

Sourced from zip-extensions's changelog.

[0.7.0] - 2024-06-01

Changed

  • [PR #13] Adds support for per-item file options by the create_from_directory_with_options method. This introduces a breaking change; instead of passing a FileOptions directly an Fn must be specified that is called for each file, and must return a FileOptions value.
  • Upgraded the zip dependency to version 0.6.6.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zip-extensions&package-manager=cargo&previous-version=0.6.2&new-version=0.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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- userspace/ksud/Cargo.lock | 4 ++-- userspace/ksud/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index ee17c7f56431..e39414abfa24 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -1791,9 +1791,9 @@ dependencies = [ [[package]] name = "zip-extensions" -version = "0.6.2" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecf62554c4ff96bce01a7ef123d160c3ffe9180638820f8b4d545c65b221b8c" +checksum = "c865b4f0f43f22d1bd7ba05479b5c003e0e98e9090c3a2e4280b5eace59f62df" dependencies = [ "zip 0.6.6", ] diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index d031660307dc..b5486adaa892 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -17,7 +17,7 @@ zip = { version = "2", features = [ "time", "zstd", ], default-features = false } -zip-extensions = "0.6" +zip-extensions = "0.7" java-properties = "2" log = "0.4" env_logger = { version = "0.11", default-features = false } From 149d25751cf7392185244e66beef80d0ca5457b3 Mon Sep 17 00:00:00 2001 From: igor <134963561+igormiguell@users.noreply.github.com> Date: Tue, 4 Jun 2024 14:15:55 -0300 Subject: [PATCH 005/113] website: update translations (#1796) --- website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md b/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md index e880f99b1ea2..4d300a553ad4 100644 --- a/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md @@ -18,9 +18,13 @@ O KernelSU usa kprobe para fazer ganchos do kernel, se o kprobe funcionar bem em Primeiro, adicione o KernelSU à árvore de origem do kernel: ```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - +curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.9.5 ``` +:::info INFORMAÇÕES +[KernelSU 1.0 não oferece mais suporte a kernels não GKI](https://github.com/tiann/KernelSU/issues/1705). A última versão suportada é a `v0.9.5`, por favor, certifique-se de usar o branch correto. +::: + Então, você deve verificar se o kprobe está ativado na configuração do seu kernel, se não estiver, adicione estas configurações a ele: ```txt From 46fb24ca74ceef705f777d20b7c44498a1048eda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Jun 2024 11:02:06 +0800 Subject: [PATCH 006/113] build(deps): bump lifecycle from 2.8.0 to 2.8.1 in /manager (#1782) Bumps `lifecycle` from 2.8.0 to 2.8.1. Updates `androidx.lifecycle:lifecycle-runtime-ktx` from 2.8.0 to 2.8.1 Updates `androidx.lifecycle:lifecycle-runtime-compose` from 2.8.0 to 2.8.1 Updates `androidx.lifecycle:lifecycle-viewmodel-compose` from 2.8.0 to 2.8.1 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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 6ec08d63e90b..039835ee314a 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -3,7 +3,7 @@ agp = "8.4.1" kotlin = "2.0.0" ksp = "2.0.0-1.0.21" compose-bom = "2024.05.00" -lifecycle = "2.8.0" +lifecycle = "2.8.1" accompanist = "0.34.0" navigation = "2.7.7" activity-compose = "1.9.0" From 234d5fdd170627ca5c38ed3b89fb64b5051f330e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 22:04:01 +0800 Subject: [PATCH 007/113] build(deps): bump agp from 8.4.1 to 8.5.0 in /manager (#1824) Bumps `agp` from 8.4.1 to 8.5.0. Updates `com.android.application` from 8.4.1 to 8.5.0 Updates `com.android.library` from 8.4.1 to 8.5.0 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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 039835ee314a..6a898959aefc 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.4.1" +agp = "8.5.0" kotlin = "2.0.0" ksp = "2.0.0-1.0.21" compose-bom = "2024.05.00" From 5397838dce8f6793e922902cb1689a6297558639 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 22:04:32 +0800 Subject: [PATCH 008/113] build(deps): bump androidx.compose:compose-bom from 2024.05.00 to 2024.06.00 in /manager (#1820) Bumps androidx.compose:compose-bom from 2024.05.00 to 2024.06.00. [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=androidx.compose:compose-bom&package-manager=gradle&previous-version=2024.05.00&new-version=2024.06.00)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 6a898959aefc..db811ad09022 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -2,7 +2,7 @@ agp = "8.5.0" kotlin = "2.0.0" ksp = "2.0.0-1.0.21" -compose-bom = "2024.05.00" +compose-bom = "2024.06.00" lifecycle = "2.8.1" accompanist = "0.34.0" navigation = "2.7.7" From 2ce8c2df07923e8fac2effb91ee57f8f723d8e16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 22:05:07 +0800 Subject: [PATCH 009/113] build(deps): bump clap from 4.5.4 to 4.5.7 in /userspace/ksud (#1817) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.4 to 4.5.7.
Release notes

Sourced from clap's releases.

v4.5.7

[4.5.7] - 2024-06-10

Fixes

  • Clean up error message when too few arguments for num_args

v4.5.6

[4.5.6] - 2024-06-06

Changelog

Sourced from clap's changelog.

[4.5.7] - 2024-06-10

Fixes

  • Clean up error message when too few arguments for num_args

[4.5.6] - 2024-06-06

[4.5.5] - 2024-06-06

Fixes

  • Allow exclusive to override required_unless_present, required_unless_present_any, required_unless_present_all
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.4&new-version=4.5.7)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- userspace/ksud/Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index e39414abfa24..0a76aa4eb7c0 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -293,9 +293,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" dependencies = [ "clap_builder", "clap_derive", @@ -303,9 +303,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" dependencies = [ "anstream", "anstyle", @@ -315,9 +315,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" dependencies = [ "heck", "proc-macro2", From e75f65409f5ec1a0154deb9bf3f5337f746cad0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 22:05:23 +0800 Subject: [PATCH 010/113] build(deps): bump regex from 1.10.4 to 1.10.5 in /userspace/ksud (#1815) Bumps [regex](https://github.com/rust-lang/regex) from 1.10.4 to 1.10.5.
Changelog

Sourced from regex's changelog.

1.10.5 (2024-06-09)

This is a new patch release with some minor fixes.

Bug fixes:

Commits
  • 0718fc5 1.10.5
  • 377463b changelog: 1.10.4 and 1.10.5
  • 68c4f0b regex-automata-0.4.7
  • 4757b5f regex-syntax-0.8.4
  • 1430b65 changelog: 1.10.4
  • 1f9f9cc bytes: escape invalid UTF-8 bytes in debug output for Match
  • ab4c8d1 doc: fix duplicate phrasing typo
  • ddeb85e cli/deps: update memmap2 to 0.9
  • 023f1c9 lite: fix attribute warning about rustfmt
  • 9c139f4 syntax: simplify Hir::dot constructors
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=regex&package-manager=cargo&previous-version=1.10.4&new-version=1.10.5)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- userspace/ksud/Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 0a76aa4eb7c0..0c6e8f5b3b31 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -1211,9 +1211,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", From e7a04d0e7cb383521c61a9b45808fce426660b9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 22:05:50 +0800 Subject: [PATCH 011/113] build(deps): bump zip from 2.1.2 to 2.1.3 in /userspace/ksud (#1810) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [zip](https://github.com/zip-rs/zip2) from 2.1.2 to 2.1.3.
Release notes

Sourced from zip's releases.

v2.1.3

🐛 Bug Fixes

  • Some date/time filters were previously unreliable (i.e. later-pass filters had no earliest-pass or latest-fail, and vice-versa)
  • Decode Zip-Info UTF8 name and comment fields (#159)

🚜 Refactor

  • Return extended timestamp fields copied rather than borrowed (#183)

⚙️ Miscellaneous Tasks

  • Fix a new Clippy warning
  • Fix a bug and inline deserialize for safety
  • Add check for wrong-length blocks, and incorporate fixed-size requirement into the trait name
  • Fix a fuzz failure by using checked_sub
  • Add feature gate for new unit test
Changelog

Sourced from zip's changelog.

2.1.3 - 2024-06-04

🐛 Bug Fixes

  • Some date/time filters were previously unreliable (i.e. later-pass filters had no earliest-pass or latest-fail, and vice-versa)
  • Decode Zip-Info UTF8 name and comment fields (#159)

🚜 Refactor

  • Return extended timestamp fields copied rather than borrowed (#183)

⚙️ Miscellaneous Tasks

  • Fix a new Clippy warning
  • Fix a bug and inline deserialize for safety
  • Add check for wrong-length blocks, and incorporate fixed-size requirement into the trait name
  • Fix a fuzz failure by using checked_sub
  • Add feature gate for new unit test

2.1.1 - 2024-05-28

🐛 Bug Fixes

  • Derive Debug for ZipWriter
  • lower default version to 4.5 and use the version-needed-to-extract where feasible.

🚜 Refactor

  • use a MIN_VERSION constant

⚙️ Miscellaneous Tasks

  • Bug fixes for debug implementation
  • Bug fixes for debug implementation
  • Update unit tests
  • Remove unused import

2.1.0 - 2024-05-25

🚀 Features

  • Support mutual conversion between DateTime and MS-DOS pair

🐛 Bug Fixes

  • version-needed-to-extract was incorrect in central header, and version-made-by could be lower than that (#100)
  • version-needed-to-extract was incorrect in central header, and version-made-by could be lower than that (#100)

⚙️ Miscellaneous Tasks

  • Another tweak to ensure version_needed is applied
  • Tweaks to make version_needed and version_made_by work with recently-merged changes

2.0.0 - 2024-05-24

🚀 Features

  • Add fmt::Display for DateTime
  • Implement more traits for DateTime

... (truncated)

Commits
  • b5eb25d Merge pull request #188 from zip-rs/release-plz-2024-06-04T17-06-20Z
  • cb07622 chore: release
  • 5c77e93 ci(fuzz): Update fuzz_write seed corpus
  • 0fef68b ci(fuzz): Update fuzz_read seed corpus
  • fce5e0a test: Add regression tests for #159
  • e052842 style: cargo fmt --all
  • b4970dd test: Delete a unit test that's no longer needed
  • 362a112 ci(fuzz): Limit Zopfli buffer size to fix OOMEs
  • b7bec1c fix: Some date/time filters were previously unreliable (i.e. later-pass filte...
  • cb50ca1 test: Bug fix? Explicitly type int that may become as large as 3 << 29
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=zip&package-manager=cargo&previous-version=2.1.2&new-version=2.1.3)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- userspace/ksud/Cargo.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 0c6e8f5b3b31..03d049b39b79 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -885,7 +885,7 @@ dependencies = [ "sha256", "tempdir", "which", - "zip 2.1.2", + "zip 2.1.3", "zip-extensions", ] @@ -1770,9 +1770,9 @@ dependencies = [ [[package]] name = "zip" -version = "2.1.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "098d5d7737fb0b70814faa73c17df84f047d38dd31d13bbf2ec3fb354b5abf45" +checksum = "775a2b471036342aa69bc5a602bc889cb0a06cda00477d0c69566757d5553d39" dependencies = [ "arbitrary", "bzip2", From 0fa203d021fe7f2c8ba5b681743c5382de46cfd1 Mon Sep 17 00:00:00 2001 From: dabao1955 Date: Sun, 16 Jun 2024 22:06:15 +0800 Subject: [PATCH 012/113] website: fix typo (#1807) --- website/docs/guide/how-to-integrate-for-non-gki.md | 2 +- website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/guide/how-to-integrate-for-non-gki.md b/website/docs/guide/how-to-integrate-for-non-gki.md index 242246a5c360..e4521cf031b0 100644 --- a/website/docs/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/guide/how-to-integrate-for-non-gki.md @@ -22,7 +22,7 @@ curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh ``` :::info -[KernelSU 1.0 no longer supports non-GKI kernels](https://github.com/tiann/KernelSU/issues/1705). The last supported version is `v0.9.5`, please make sure to use the correct branch. +[KernelSU 1.0 and later versions no longer support non-GKI kernels](https://github.com/tiann/KernelSU/issues/1705). The last supported version is `v0.9.5`, please make sure to use the correct version. ::: Then, you should check if *kprobe* is enabled in your kernel config, if it is not, please add these configs to it: diff --git a/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md b/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md index 60668221bef1..e9f250f63e70 100644 --- a/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md @@ -22,7 +22,7 @@ curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh ``` :::info -[KernelSU 1.0 已经不再支持非 GKI 内核](https://github.com/tiann/KernelSU/issues/1705),最后的支持版本为 `v0.9.5`,请注意使用正确的分支。 +[KernelSU 1.0 及更高版本已经不再支持非 GKI 内核](https://github.com/tiann/KernelSU/issues/1705),最后的支持版本为 `v0.9.5`,请注意使用正确的版本。 ::: 然后,你需要检查你的内核是否开启了 *kprobe* 相关的配置,如果没有开启,需要添加以下配置: From 3695435c3fa3c2d60ff3fff9b722c4a42cfc892c Mon Sep 17 00:00:00 2001 From: dabao1955 Date: Sun, 16 Jun 2024 22:07:58 +0800 Subject: [PATCH 013/113] Redirect the Feature Requests issue template tab (#1788) ref: #1705 --- .github/ISSUE_TEMPLATE/config.yml | 5 +++ .github/ISSUE_TEMPLATE/feature_request.yml | 39 ---------------------- 2 files changed, 5 insertions(+), 39 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000000..d4f07b614a0e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Feature Request + url: https://github.com/tiann/KernelSU/issues/1705 + about: "We do not accept external Feature Requests, see this link for more details." diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index f094b0234e5e..000000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Feature Request -description: "Suggest an idea for this project" -title: "[Feature]" -labels: "feature" -body: - - type: markdown - id: feature-info - attributes: - value: "## Feature Infomation" - - type: textarea - id: feature-main - validations: - required: true - attributes: - label: "Is your feature request related to a problem? Please describe." - description: "A clear and concise description of what the problem is." - placeholder: "I'm always frustrated when [...]" - - type: textarea - id: feature-solution - validations: - required: true - attributes: - label: "Describe the solution you'd like." - description: "A clear and concise description of what you want to happen." - - type: textarea - id: feature-describe - validations: - required: true - attributes: - label: "Describe alternatives you've considered." - description: "A clear and concise description of any alternative solutions or features you've considered." - - type: textarea - id: feature-extra - validations: - required: false - attributes: - label: "Additional context" - description: "Add any other context or screenshots about the feature request here." - From 197d168e4d9197ea8d69ac1768d499f3d58811be Mon Sep 17 00:00:00 2001 From: igor <134963561+igormiguell@users.noreply.github.com> Date: Sun, 16 Jun 2024 23:36:15 -0300 Subject: [PATCH 014/113] manager: improve grammar in english (#1814) Improved the grammar and fixed some typos. Feel free to let me know if there are any mistakes. A question. Why is the Profile App not translatable? Would it be possible to make it translatable? --- manager/app/src/main/res/values/strings.xml | 48 ++++++++++----------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index d094969af1a2..baa152154b4b 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -35,18 +35,18 @@ Reboot to EDL About Are you sure you want to uninstall module %s? - %s is uninstalled + %s uninstalled Failed to uninstall: %s Version Author - overlayfs is not available, module cannot work! + Modules are unavailable as OverlayFS is disabled by the kernel. Refresh Show system apps Hide system apps - Report Log + Send logs Safe mode Reboot to take effect - Modules are disabled because it is conflict with Magisk\'s! + Modules are unavailable due to a conflict with Magisk! Learn KernelSU https://kernelsu.org/guide/what-is-kernelsu.html Learn how to install KernelSU and use modules @@ -69,36 +69,36 @@ Failed to update App Profile for %s The current KernelSU version %d is too low for the manager to function properly. Please upgrade to version %d or higher! Umount modules by default - The global default value for \"Umount modules\" in App Profiles. If enabled, it will remove all module modifications to the system for applications that do not have a Profile set. - Enabling this option will allow KernelSU to restore any modified files by the modules for this application. + The global default value for \"Umount modules\" in App Profile. If enabled, it will remove all module modifications to the system for apps that don\'t have a Profile set. + Enabling this option will allow KernelSU to restore any modified files by the modules for this app. Domain Rules Update Downloading module: %s Start downloading: %s - New version: %s is available, click to upgrade + New version %s is available, click to upgrade. Launch - Force Stop + Force stop Restart Failed to update SELinux rules for: %s Changelog App Profile Template Manage local and online template of App Profile - Create Template - Edit Template + Create template + Edit template id Invalid template id Name Description Save Delete - View Template + View template readonly template id already exists! Import/Export Import from clipboard Export to clipboard - Can not find local template to export! + Cannot find local template to export! Imported successfully Sync online templates Failed to save template @@ -110,25 +110,25 @@ Open Enable WebView Debugging Can be used to debug WebUI, please enable only when needed. - Direct Install (Recommended) - Select a File - Install to Inactive Slot (After OTA) + Direct install (Recommended) + Select a file + Install to inactive slot (After OTA) Your device will be **FORCED** to boot to the current inactive slot after a reboot!\nOnly use this option after OTA is done.\nContinue? Next %1$s partition image is recommended Select KMI Minimize sparse image - Resize the sparse image where the module is located to its actual size. Note that this may cause the module to work abnormally, so please only use when necessary (such as for backup) + Resize the sparse image where the module is located to its actual size. Note that this may cause the module to work abnormally, so please only use when necessary (such as for backup). Uninstall - Uninstall Temporarily - Uninstall Permanently - Restore Stock Image + Uninstall temporarily + Uninstall permanently + Restore stock image Temporarily uninstall KernelSU, restore to original state after next reboot. - Uninstalling KernelSU(Root and all modules) completely and permanently. - Restore the stock factory image (if a backup exists), usually used before OTA; if you need to uninstall KernelSU, please use \"Permanent Uninstall\". + Uninstalling KernelSU (Root and all modules) completely and permanently. + Restore the stock factory image (If a backup exists), usually used before OTA; if you need to uninstall KernelSU, please use \"Uninstall permanently\". Flashing Flash success Flash failed - Selected lkm: %s - Save Logs - \ No newline at end of file + Selected LKM: %s + Save logs + From 8a3414ca03970e22c5bec216eaf1423184e1621b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 10:36:30 +0800 Subject: [PATCH 015/113] build(deps): bump com.google.devtools.ksp from 2.0.0-1.0.21 to 2.0.0-1.0.22 in /manager (#1811) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [com.google.devtools.ksp](https://github.com/google/ksp) from 2.0.0-1.0.21 to 2.0.0-1.0.22.
Release notes

Sourced from com.google.devtools.ksp's releases.

2.0.0-1.0.22

Important Changes

  • KSErrorType.toString() now contains the reference name it was tried to be resolved, and therefore KSErrorType is no longer a singleton. Processors relying on equality checks of that (in contrast of using KSType.isError) will need to be updated accordingly.

Issues Fixed

#1908 KSP2: Calling KSP2 in programs does not appear to work on macOS or Windows #1917 KSP2's symbol-processing-aa-embeddable artifact exposes an unresolvable pre-release kotlin 2.0.20 dependency #1911 NoSuchMethodError when running KSP2 with Dagger (KSP 2.0.0-1.0.21) #1909 KSP2: default annotation arguments no longer work in 1.0.21 #1232 Expose simple names on a missing types's synthetic declaration #1857 [KSP2] Modifiers are missing for property accessors #1924 [KSP2] Type arg becomes '*' after calling KSType.replace() with an error type #1948 KSP2 default annotation KClass values for built-in types use java.lang.* versions

What's Changed

Full Changelog: https://github.com/google/ksp/compare/2.0.0-1.0.21...2.0.0-1.0.22

Commits
  • 1ac3fd8 CI: auto-merge: rebase again before push
  • 414d37a CI: enable manual trigger
  • eaf9f7a map java types to kotlin types when parsing annotation class reference values
  • 893a784 Update ksp2entrypoints.md
  • 0c63983 Update ksp2entrypoints.md
  • f08bc85 DeclarationProvider: skip builtins when possible.
  • 76bf45d Make originalAnnotations lazy
  • e34a635 fix property accessor modifier logic
  • 82871d8 Provide more hints for error types.
  • c77e170 #1232: Include type hint into KSErrorType.
  • Additional commits viewable in compare view

Most Recent Ignore Conditions Applied to This Pull Request | Dependency Name | Ignore Conditions | | --- | --- | | com.google.devtools.ksp | [< 1.10, > 1.9.23-1.0.20] |
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=com.google.devtools.ksp&package-manager=gradle&previous-version=2.0.0-1.0.21&new-version=2.0.0-1.0.22)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index db811ad09022..2fdaa05eb709 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] agp = "8.5.0" kotlin = "2.0.0" -ksp = "2.0.0-1.0.21" +ksp = "2.0.0-1.0.22" compose-bom = "2024.06.00" lifecycle = "2.8.1" accompanist = "0.34.0" From f8fb134708578a9ef3aa28c2d282873e0b10f761 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Mon, 17 Jun 2024 07:43:13 +0200 Subject: [PATCH 016/113] Translations update from Hosted Weblate (#1734) Translations update from [Hosted Weblate](https://hosted.weblate.org) for [KernelSU/Manager](https://hosted.weblate.org/projects/kernelsu/manager/). Current translation status: ![Weblate translation status](https://hosted.weblate.org/widget/kernelsu/manager/horizontal-auto.svg) --------- Co-authored-by: Pierre GRASSER Co-authored-by: dabao1955 Co-authored-by: WikiBayer Co-authored-by: weishu --- manager/app/src/main/res/values-de/strings.xml | 4 ++++ manager/app/src/main/res/values-fr/strings.xml | 4 ++-- manager/app/src/main/res/values-nl/strings.xml | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/manager/app/src/main/res/values-de/strings.xml b/manager/app/src/main/res/values-de/strings.xml index 047123467301..e87577420f44 100644 --- a/manager/app/src/main/res/values-de/strings.xml +++ b/manager/app/src/main/res/values-de/strings.xml @@ -117,5 +117,9 @@ Öffnen Updates suchen Automatisch nach Updates suchen beim Öffnen der App + Temporär deinstallieren + Deinstallieren + KernelSU (Root und alle Module) vollständig und dauerhaft deinstallieren. + Ändert die Größe des Sparse-Images, in dem sich das Modul befindet, auf seine tatsächliche Größe. Beachten Sie, dass dies dazu führen kann, dass das Modul nicht ordnungsgemäß funktioniert; verwenden Sie es daher nur, wenn es notwendig ist (z. B. für ein Backup). Protokolle Speichern \ No newline at end of file diff --git a/manager/app/src/main/res/values-fr/strings.xml b/manager/app/src/main/res/values-fr/strings.xml index 01c0672b87a6..6b6c45d9bded 100644 --- a/manager/app/src/main/res/values-fr/strings.xml +++ b/manager/app/src/main/res/values-fr/strings.xml @@ -118,8 +118,8 @@ Suivant L\'image de la partition %1$s est recommandée Sélectionner une KMI - Minimiser l\'image clairsemée - Redimensionne l\'image clairsemée où se trouve le module à sa taille réelle. Notez que cela peut entraîner un dysfonctionnement du module, alors utilisez cette fonctionnalité uniquement lorsque nécessaire (pour la sauvegarde, par exemple) + Minimiser la taille de l\'image partiellement allouée + Redimensionner à sa taille réelle l\'image partiellement allouée où se trouve le module. Notez que cela peut entraîner un dysfonctionnement du module, utilisez donc cette fonctionnalité uniquement lorsque c\'est nécessaire (par exemple pour la sauvegarde de l\'appareil). Désinstaller Désinstaller temporairement Désinstaller définitivement diff --git a/manager/app/src/main/res/values-nl/strings.xml b/manager/app/src/main/res/values-nl/strings.xml index bebf37890eb2..992e8f8ab64f 100644 --- a/manager/app/src/main/res/values-nl/strings.xml +++ b/manager/app/src/main/res/values-nl/strings.xml @@ -125,5 +125,8 @@ Permanent verwijderen Herstel stockafbeelding Verwijder KernelSU tijdelijk en herstel het naar de oorspronkelijke staat na de volgende herstart. + Het verwijderen van KernelSU (Root en alle modules) volledig en permanent. + Herstel de fabrieksimage (als er een back-up bestaat), meestal gebruikt vóór OTA; als u KernelSU moet verwijderen, gebruik dan \"Permanent verwijderen\". + Knipperen Logboeken Opslaan \ No newline at end of file From f52beb9f75a44f4753d839980b92864eef6735e4 Mon Sep 17 00:00:00 2001 From: 5ec1cff <56485584+5ec1cff@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:19:04 +0800 Subject: [PATCH 017/113] throne_tracker: skip iterate if failed to open dir (#1832) fix https://github.com/tiann/KernelSU/issues/1800 --- kernel/throne_tracker.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/throne_tracker.c b/kernel/throne_tracker.c index eb04c8b0f344..d7c1dae14a17 100644 --- a/kernel/throne_tracker.c +++ b/kernel/throne_tracker.c @@ -236,13 +236,13 @@ void search_manager(const char *path, int depth, struct list_head *uid_data) file = ksu_filp_open_compat(pos->dirpath, O_RDONLY | O_NOFOLLOW, 0); if (IS_ERR(file)) { pr_err("Failed to open directory: %s, err: %ld\n", pos->dirpath, PTR_ERR(file)); - return; + goto skip_iterate; } iterate_dir(file, &ctx.ctx); filp_close(file, NULL); } - +skip_iterate: list_del(&pos->list); if (pos != &data) kfree(pos); From ce776bc5e4bd596a78c7afd8e5ca95a9b95dcf1a Mon Sep 17 00:00:00 2001 From: Wang Han Date: Sat, 29 Jun 2024 10:54:32 +0800 Subject: [PATCH 018/113] Update resetprop (#1842) Sync with A15 branch to add property override support. --- userspace/ksud/bin/aarch64/resetprop | Bin 76536 -> 75336 bytes userspace/ksud/bin/x86_64/resetprop | Bin 77160 -> 76104 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/userspace/ksud/bin/aarch64/resetprop b/userspace/ksud/bin/aarch64/resetprop index 1155e5f49a3e48b43f6a809280664da5ee4ceb07..305032c90dc9103a4da5c1e18b18324a29a8e17e 100644 GIT binary patch literal 75336 zcmdSCeSDPFng4%gCXh)8AwU8F(F}q$i6{X=W@2#}o-`mz#8_j+CLswV5|WSy42orV zXd4S{8BGhN2%%-SnXGPE8!FkdB^Gx#wrsz#qSCHg2c&i)v_*}YD3IU#x*y2REz|G* z_MhMDH@=3?eSgl=b*^*Hb*}R;anquucRC#oWqw@hMI~=Zt8~V11h_pzas0}s;+0=b zP^oG-;W2#8cy`Qk63E9yxBjYJprorc!tI!1#52(>U2vEYb}h(C(PNru3MQ<`YVuhR z81W1|6sPCb6K~||*U?NDzCn*4-gh--8PR*BGV<|j|0=1Llvg-Wk6-xZt8u6Ps!TNX zviy$?Ws=qZR8Ausm2aernXQ*^$CpRwyosi`_mNKI{D1qA^zv;s+Ru(hjSNjR%bQ-m zp}wJf?evwE)zhmgtJjp*yO#W4j=~p5;mhGi^R<7fAg+~veH6Ya3jft8 z{MV!K--^PwMB(>D;SWUNe;kEB6or2=3jd2J{L4}J6H)k+QTYFk!v84>|9%wyvnad_ z=xep_@F@I-QTU%k;eQr|KN^Mq_bB{tqVOl9@c$Ks|6>&Xy(s(#QTXA^ zo7Wl_6Qc0bqVWDG{M}Lbf++loD12!Yer*&!5QYD46#ls={4b*L{}F{h9fj|W!e5BO z4@BVyqwvFV46fCVAmM&Yxg@N=T@3J>%DZ~r-%4DO^pNz4`UDIF=Eyi?r^XMPwi zN_-1J@rADX6ctrft}HF8tgdWOMMb4eB}F9--X?DudP1m#nO*Yf!a~4fO<kC1LQ`Lx~9BAmDW^OmzOr^bzHCN%1hU;s;gPcLv_hoWLhJhe66aik&3NCKf2U)zYsyqrX+_Or)kLzUme=w%EDUNJDkQfeLhEbGODk7Z zmR{l3ly4|1E3Ya?J7zSYN=aa$DE3N9YK!t~>WXOIavHdDbu~g74Xroi`jUF170f)> zHqyn4=nM2CLmHiGtiFmwS!G2l>uO5MN=xeLOGaFceyoH(y58(@CHnG4DpjO)yrQ-A zq>|O;TGLk5td`CppmiU4SVhk)6`4t*wRTCV*0YONl~hU>($`c)wRPyWu31uUzQ2XkHQG8SwLSL-9tXRMP=zG_1u8{col-)-ZozNhEYYU58Ce4CA*WaQsv<4rwu+jz6RdTjiPeR{d4 zZ2YPHIv=+2{jEA5vGK~_FWC4=2H$VvD-2#ecy)iU@@sFZ;dD`)s_aw|pDlXXIaKGB`4@k={&{)mmwGU9jHc(=iK+xV#l z-(%zZWn+TRsVIEd#w#PAh>dSD+UtUiH~W>_sJChN%zl+*;~R|rlWOD5e&w<8X20^; zc(Y&mZM@m9@@%}>uZnGan{4FqG27Xc-z>M;7T;`lvz_hn+oHrj6oo%x_u2StgU_?^_ZfVl zjbCN(6*hi@!8h6XpusoW`20({oUJy#(BRu_{BDCkWaA4i>-ik9@y{FO_SpFUWAObp z{%bS!eB8!4gV|4Z8homa4;p-yjep+Y^KAT4gO5CXbvv5pL>Hp){WiX;T9-3ooTHd> z9$lsL{Wjhl7w-L6m)k8Hj`CTd^A7x<1f9|T^%%SpUXP&%rdxQYC4QELw=74M&%zrn zmX^wI;fGoB$+Pg*bCrAxA8UzUXyMH>APFwE@W#=Uma4+Sn@3d=P;23hqaH1OlZ79t zG5S9N3!iA=n=Sk(3%}FCo9lN8-fiKn`}?gHevBobHVZ%2!XL8m$rk>Ig-@~YT^4?v zh3~fT<1KuTg-^Bcr!4#g3m>-d)_sVGg}=@c|AK{|Wa0ZQ{Ph-I$;K}q>7O@Pc(;X5 zv+zk4-eciYE&OB)@3HVVTKIGeKgGglS@@|I-e=)&vhaQj{{;)5XW?(Q@c9-#-NF}I z_zVkQY~eF4e1(O-#lqKGcw>syLYpkSF?DHtz``3-k;XS$c*E3c{7ws>r7`+HyDj_- z3*Tzt4b!QGwpsXDmiUJ(e71!@V&P|7_$~{dW8u3kyw}3_Sa>-zG(V>-e6C4?VGDn| zg^yVHFIxBu7JiO}@3-)GSa|i7q5l7O7T#^)n!4%b4W-lT%h~^JY%-{!-8Q!P*dk=> z_@;V~Y{-?Dc^Yawb!<(R)R%j-%|bQ3x~96es-)o>sqSg4Z}2n{^Yi<7+TN#Z6R%{$ zFFixgwxo=Lrr%W0zMt%XuWl@YDmo-;AuQ z7o$2G5RuJin}nY9hMLu@rK3Jp*-+uR^|1_1J)f_&Y+QR9s~ak> z=x2i-skEY`dbO@9omjSXVUbzg%2ggVnj6bSO{N@rtjc;%bxnikO5|xCQL7eNYV-L| zO`WHl!vN3!Rgn0*%B#!kN~%0sm(Z$nYX!QgD6gu$l5IU_4W5Pyq%d~eH5IPE5^g-` zonn1?-Ac}VJT;9CY`@Fc(~pL_TS)T7DL3W=qODxJ^T4=qv|;*?a?i;*|V>g zv#V;oe;6%X-%wLWKi5jj*GsFZuG;WFP4ZIdk}M0EWe^Y}jy{VdvF!v+ovNvG9gnV&{fdz= z?efDn)jx8(NB)f$xvt1yG}UcLS1;4S;;O3h)eIXmf=7<_%!Jd+%GXaXGFwC}chS}J z#?X0}oGRUNOUcSg?R-gly4@4S{F5uaMa;iZ>d>6P4E&VC$=CcZM!OlPRQ~d1`Ty8c zebHmg(PeaCIe(LPS(n!uye6`KemT^BMy1u?3M}H-*f>bj<6T|vq0F>aRBk7${@9dz z+`}n8B{nf;QpT9<6c0=FG?%RV6J4>R_l%pWZohpV?$x|3-}JJQhLS6}OdlHb7WI1MUYyGQ}DfQQ5|Eev6=;?A6EVHoY9bl~(E1ET5 zRnu5qX6~h!YpIGF@oK6ua18d9Rpph{n3~Emk4$mW#mqgH+l&PIYCt5>Kg`sI1@zR{ zmS9^xH#}8VR@RKHnOU>4va@Dq}VO8QC*t&&ZkKo#C62J2PwM zjF~fM&YGD$bN0-fnckVcnYpvFX3dy2bJna`*|TQP%9-Vz<(rk8os~T!duH~m?Ck8> z**V$XY+rWn?5x={X3v~GYj*bR*|T$IduRJ*=jLSP%*dIUGb<-MXLe3bjyK1blk3g$ z&hXCk&hln^XM1zJUa!xa>&x=Z@NxIlm+hPF%kg=AK3{GwBIZ(jE?MW2EEmdDO=H8V zTYU`Vb&ciKrP}1_S-GLXobfBG%gUQD-C|zk(A%R&ml#87G~Ymv>G=QnV>aaf9-V*l zyWbQ@`lH_LSr4hmPp!-1tRI?i%lpmK_uhf%(M)x zGi$7&HEJtsX%x+jlvIf)w86t=oce}(am00p|FN3Jsxr??G4xt)RGkLIGunU;S2FZ= zh1T@KrIdyZlHskI$0R04zab%tH?7Lr^0LatwU)4|nwnaP!0^!u5fxQcuEhaPFTZW| zZJzoKYvsZ^etAu826tL$e6v!T-%fWa8?tki)#5bLJFsH__we zb-0=3Ydnd^@P|q?!rd{epC8(!>9)kEz;=f|sQtfkEn zwXwFAYg6)grOO*#S>&UF(yO_ELUYy75pm^Z;OIA+R@c;3K8_kR%9CDGZ#-q#d+=iw zHE2U04ouN&xfo^Uv8`r`tW;3WB9)QlMw@9iF=vJydl6 zqI(NiuEc9+12Xr>{3YhY+=DmwxXnFna}V3(O*Hqg&2V#%J<%{l=AN~AHev3~o4kqU z{A;E&^ELNY%{@DFkJ{YZHuE*l2+T79Q$91Ena<4Ll+)a6H|uTgX`AuPe9S#|Q(m(k zCU53v@}~T!J{cU``Pty$0lwWl_w)TJ&;QQ%6yHDc{gAKw;^1I1-!#72d>8XAx*3o{umv>!zS)2o}0jaa0i%xlG{KJcm&J_6WG)(1N~qVcnW+D zY@ngKB%ICE2sj742v&eeDCq>7k$&(3SO`vH6S5XO4>n6Un~!Z^1Uw3!Vzcl(sMs8g zp;6L74_FJ%0S|%&U^iF=9=%(s7O)R&1E(#812=-Fz}?_^FyHoC;=xKF|j) z1y_J&U<23$?gn>)2f>5jbKp_%1b7k*gAuUpUh<{WOj}02U=O$uEXe0f3oHg3z^ePm z6Wk3x2fCM22QV89gLA+>Fb{N(7XKezfrVfe7y$FYgJ3Z@ht0%|;6|_ojDUwgKbwg? zU@;g0+rXGHlm$)#Pdz}L!E81QSAZMAS}=)C!WQtkhiFeQ|6$UD7r_KNch(Bp0xSmo zU@cexE`5ahfeBwBJ(v$Z2No8iC$JB^09KR`Cm9Z$2Bxm0KHxU64BQJgfgRvZ@F;i? zJYPzEz!hcW1Ga%~24x>O6`WR%F2F8u1(>y(eg&SaATO}6l4o$+qoffYOkxmU1k=IP zHPibSn7SUlf>|IxCsbXa2kZf}LDhsDU^dtQmVrCK7VsdrV*_%4hrlp+6zl_E2Hg|L z2b=`H1!jTg!G&PV6-<~&oj?zG z6wC%sfO+6s;0mx0tOeB*{SBN7R)IdS z30w+p1B<~OU<0@tYzFs&d%;N?kqvAGPk~dPM1C;&tAtIWuAmP*2`&ZmHc@x55NrY) zz@1l^;9FoVctPI(f%0$U9rS<^ za1NODWAX!6fVJRGuo*lAwt}jSI)P>2TVMlt0n7@ayD7Yb)4+|OADq-qSztEU1fF=F zd_d1Xkq_ttPl9FOd9Vj`Po?dDLLAToW`hgCrC<|S2DX43!HeK-uO43H zJo+!_3RFKwUtkru13dVz)DwIT>;OB!ZgBT8@{@P)0@ww{+zbb%g2^u-6F3Q62p$Ai zfX{)oU;`v(Cw@s7xb$W60+as@8NsZ7N2YYz9!v%=f>~hle=sJ&ZmzLR|15n2Mow@JxEIU^JHR%u z2Rs6v1tZ`^FzE!cWioETEHDD*gD3uzHV2b`gDhYh*a3#Y6JP`kgH5ke-&+U=Q^Awq zG%)73$OkrnE5JUm0Ze#}b^^P==Y$8l!Ss`~1=t2&1l60=a~knMAD9Z}gIQo1xDadt z%fKCAE!YZf1UtZHup8V9z6BlvFMuzDF}I=%FcmxnP6NZBAG`<_fbLWDNpKRl5zGR2 zf(yZeU_N*RtO8Gf8^JKR1MCC$g6`X>BRC1{0JFdo;6m^eSO}g4IYLu?U;w-bwt(*6 zp$l*lcoa+rd%!v1S#TlP4=x20rjr*ackIeQxl>mQ=7Af*6<{-13+@EBfd|3e;34oi z@MW+I>;X@Lr@#mp1}}o=!K5tO<@eY;Fd6iL9&jl*4J-z;!3NL|HiJvSyoH2SB{N0IIc@bQ%pzVQYb&;zfb}f-nuZ+pOG$XB~?UrhW8N%x0^BjTM4jVFA37`^=SM4gHa z+B-}V@hty1^zpDmo(r{no^kGrah7QkkdTkao=&_;2ru%>N4Pm~GDb{JP=2o}og~0;C9W-(s;T|Qjdl3eI}omsJA2qOIR^s>WhpCKv}}1jvEP^Mwr&Fd3s%h zZ-LK)*V@OZqdY$cUjW~S+>{@%$-7VLDc_UC^V~t(@GKv#{%{K|oXB<&t^zJ!A{nxM zclbV8hN)C^vX?NkFH8Jsa0lV4Z1E*5kFY+%wDz*pQ}QY!Eava{N;*EmH5u_uPU^h_ z?kss&>n(8)!e4-wa^xd%j~MCAxYBPVZV$YotOP(l689`zKk20}NS`tL*hTmVyvN|B zFG(KBDk|L90LEyD4{@gfC4zM8Dq`^Q>D-TSl0gOFbkk zKk>qqq0XzM-A4E}!tH5AmR7>f6K2-O1J?m}RygSgD-!)fvg}TfP9W({5$A;8Xb;|{ zob!?nu9jzOdrLjt*aY7^Bfin+Bp(m_Qg}^wybG5N=Z7<85-!h3Z;iJCZki>nlv4}m zflKGv9KXUh!)L)yHF#+wk+~Iq4*YK68P}#>CCyR7ju7UTFhgcZa}qubUnRVyUrRe) zkaFf5c717LmZ`gaR7Ubl8qSy?+{3fkS0vAL_*(cp;VpSenuUbzy+)c9@CV_O99O6D z@Y+P!?gccTgyko8S;n%6qUm`rae5XSWx{#*9)gQmgpJ@C8<20xubbC>Nut-2#AzVT zUdek!V(ry&3=>SHG+oEiC+MCqkTT ziDR(=qN57JWG^a9!i+H}{U!jP3NO#{kv3|9ONM((2umC7ir<$Y;T?qc5Z-l-a4G8~ z;k8RBM#7DLA$2_uzZc%^yg^65C z2`jkA=yx``C2bYqt%PfGS^AKKH51ltrnQ8LUJeqLdaqtSue$w%n`Cm9@!DhXfc8n} z-?O|V5jRV3wQ=HvDn|M{f>QO zo;B;(N8Hr=uh`owHo)v($??cW_%tckrUR*KHsQ?$h|IISpXU>HlrWLW?0Zsf1^fwk zskhnxC9eQ{54@&NOS?;&y@aU;uFgx+bigOUSMY2tU;2vt9jXEu~H z(jEF~)`OfIkAS>DxLr>?IT<^Tvzec{U8sn1I`+61>AEsPR=Y2!bv{z5!?pX zT0CUmgxhVzGyAb{&%x~`p6Eb6!gU#(Hm(fr-Zr_jbF!{yt!bhtblHwVrSXKjysgR_<^=Rw)Fv~o5y&BpD3n`+}) z;U>XZ^Xq_1vc>C$bHmA;BOmDxZ^8A`?*l^QTYV+nXTM0e)P0+T+w4>-jooF2*~Ybp z=sv=ymf%nFOx{=dL*hzEo2?+u1>&?w93y}6BcN3i|5U6*2NK3dbhra90M{Typ7?G0 zdgLJdTkw)jJ`(o`FQ?$Nes8e>Jx1JYiD=;?@cqR1Sa_{pjfNx*O9=ule!o)0zyAy6B zoR4SZ_lOfA<+j1^HS@5PYtGr-gr6eZFX=4dVuzTq%o`= z%CUKpk8PbNZIwlM^D5epcBGuv7`vZg+28OGrI`3V)!0U!?fpa?PHBT}#3`=1+NYE@ z5Ph@~c7!mkt!PhkU3A3YpObu->V4bnTPF$2s~xfjl8>B0`r$+urvD+l8cT9`tv&PD zH=zJ2D;0hx{5FXryy4F!@tRFoKVhN*`3RQ>cizUWfD6NE3@hl%{ z>q&4OaIG$0XzLsQFKxY)_){CvkN8i;i9HshurC2GOY*EGPBv$hC-poJ{jL5Z@mq<1 zY6D|R;^ULu^fzRX{wrs^Nl!Aj@oewEq7OOyJx};lCohH9@R@KvB%jn2`phQc@=QKM zzBdC(^6?Sg5nyafUH?Wt#l*X?ndTyzeOw}n3J{*U1)WIvilP3!8(x0HyHohWq5kdR zRnDX3{4dP&wZ@d>dx|(^TaA1TJ1FgZ0X_gv_s~8PH)b5|0w?t{$A-k61iukpp5-Hb zFbl2;?t&0k?2Nu=wv@1?+pdmZ43`JjB=IeMR`S|N*g?V!-5A|PANRWn>mf|~0O?qx z=zi!S__OdFXTlFt_UnFb=VP@W@j*}sT*K}|6 z9f>oIe`?{Yu8~(BVO@mzCCt*_is2*hrVgcCxsPxbPU>OC6<+QqT!7CO-m(`i_Z1Sh zUv1l<)KUIPg0IlyYyHREr#MB}3Ny^+d&oV9Ho|<8j*rMDcOFi_d4%BO;VbtaPQew( z7%#YbZ^+zd^b^PZt)cl|+Oz=fAY7BAE53Sl`{eB{=T;Fq1AsPX@f)d9~G%d za2_~Kzm~Bp{lZ6B6=6+IURGQ)?MB*dy7TV$^!xb9we3IXa#C(~LC2lSJTi+j&N8)aS>w#y#+Cag za!ky$qKQCwa+7;>leV;bJWHIS-fm18k1Lc_cC&a@$_R-?Q~`(~qA@ zob+djD(NgXRLb#7*gm5#^Db>v0M`cR2FTEbo?OyZeiU!I!{zC(D6KPPDp z61HMLz6w5Hc#EAq34ajY+C~w$y>O;3rObl{yM;0d>?$RWMIi(PhVF7Hy00P&8(X}YqEEs=9CVM#wG4$r2X z!gs(o!Ap9xT}9Rt2HzpPWxX%5O5F2=C$t&!hDB#0o7+P>n_;|5ev{x9!UcG?>QUw? zg47)TIY@Y+uA8Af=Y8?d%GeWGi-~ip-586OvD*ZH!p4gnJK?+FwYu>x+(EdP;Uqu# z2zSJzbAa{{?u3WFYv#$jaACM^8`lRXWr&ROk$CROIB98ZQrShmBhS*9>RXf!wj%2xo2IZEyiNt9-lRnrz&2aJ6vOa=YNF z;H+hwge$hCjldPcS@n0(;H>2)O=0NR;!QO;YZ*Scg|>2+!uf3F%3Z)L8`l7rZsVHa zJT`7GT&j&b1eXM7mE~o)7&vR)P8poFZgSu7V(994;)Dxljh7792WKrK9WG+y=D@vW zOPddO63!}%++VbFO$KKzcL&@FTYjx@FWbtMdyhwK@#GHVAsZ+6A=_-+1-MpQela)E z$8GUa;dWT!Nqwfl1uXGojF_MOQ(doLuL8flfp6HQf(}$LcZ%!vL6_szOHa5$myWAo z1#V}hES=A)8uv$w1~LW~4Wv8VzfK#b-Vbk8&xc)sJ7l?$=5f95emO2FGC~ckB>p?( zciNTKKL6sPfqOGmOA%!iGYxQWr(HSI-so}_y&>Fb-X*OX983~ic|0!Z&P(Udy2=y&z;1=sEaK0n3{3&!KVUgJV6V1HRZF!~hONeM;qOVqU z;l*Bb-i$1*%IA%xJu}??0eKH7Urv1Ru7M?v^)JK+V+TC(9&aH2l(#qD=Y7xR$t)UH z{Q>8K1+61my(-~|w>Tlst44Nti$@lFyGHhSJ&CE_Kw`Q#oS5bHkE-ytj;i&lq=>gT zDeQeEX{R@1^daw4qm#V7qf@<$$9TMrd<(B-Y1(CvL?Lg9;^ ziG^N~f0{qA{1%7*=`@w_UV^H9`krA;FRXDSv@dadYY+dQgZD?Moy(Uxs$UopXsuh~ z*s&)~jd+iKSFptKs8;V0s`X@ml+SY^2+$z5Dx)8ShVO@8J)ZY40OE)SF*ch-}h+{ty4d zh*zV>`(U;4{n{C$*aO;o#$R95-{bW6SN<~Ii2tw_UilY8 zzG3=%++S`s!XMJYLw`2qE!5r@|JiGVKd8O;o{u%&*J|&9^LH8V8?^U~^WQMu{o4C0 z=gj)8(%vi2#r{lhmon`=?%XKjy;yq>y|>9ozgl}={GOSAh4$XtyUYkL(%zryeb9LS ziuRt-TV%XHqP@Qo`Ht~^ul8OU`HAsfs=dcW295V6+I#3v$Bg$cY43~w^dH81p7!4R z?*B2~7i;fNy<7A%y*`Vych9>;IT7se+{bHvo$QW7i zbiBWH`CLc*xh~%0Nb{a6BeQ5^?FW-xs$lNO;tvAgQ}DNp^gk{6Y+^3(z}@0fhnF~3 zzQ7h;vYvmwR<xJw&H*8Dw$Y3Uf#(#NH&moDnuF!Ef&SiIX&^1|Ga zRUa&IY~K?%-1qw3j(XmUwf79(Z+WEPH5vbNNBZG*?779EIyQ||@4rNyN4Q&mJ0cK< z*T;}k%k$9}ZW&qlbb`O@xA!>idts9!;oL2kHon&G_~xFuBMUxQik*;r?hX%jWL$dk zwG7EGPQ4%J3jcOQZ1}g8o1faV#1VIuU0C9{2b(cuC&V_34R%xSJm$cw=8oyLSBIq4*n#e{m@O;MQUI z5J{nnHKRkHt{xNWFB%*A_`zi6@08Huo-e+hp5h;v7{h$GNe!%tR|Oxt9PPcM)WEUp znNMA5nfIjgvxcwx`{h}DiXRVCEdxCFF~5DpcLn+oy=^uzV{kds} z)w;lBY;woNZ&!}AH*#HS=4kj_SK7=`pocOT11%!M z2#udKGY*t|UYf278pvlBabmQv8)izs%XLl4OpR5+-wh6qZ&Paamt)m^AG@w=|LH(% z&P2kc9;a_r1!33t_HpRqW7ALik4v>Lk=GZJ#P3i!QpSO4x~x*Rl;d}(8~j+X%~I7ZSZaPUa&h;2c@4!id>-x z`Kkczd5aow3yxO<@7%0fPLfZ{O7a=22JlIPr+=h^XIx|3BZPIi`d{oH>mLyPrNpXN z*E4<(Ji6W|by`WC{wi@8lWvtPKJ7mjGw$9Pu3r84^5EgLH95Yv8~nbs&1zlO;2>?0 z(*9H8N60IDi+|vwDTyI9SFS*$lqnf%tLMdFFvY07=hkAD>y zp*q?q_aURLPJ#n&k5}5!KZ?E=tJblwDVTVJnl0%n(N{*vxM1>Rg$wEm^*FBMx2Xt-PnV`b@K+KEjRmA(i!wB@|d!0P;RY#)}+#huJaGPhOX*Y-W+@#JiI(9 z__j0oT$u6(RFb#*j6e64FZc(3^)B){RNZ|19_h#3Ti_?ce_iMO!qXScU!Dp?@NiQ#UD!>B&neL(%a2GJF2OB=YZ#B~Pqh$}XObwF}G<5kklp*-bOIa;56XJ>$ zM@IPvievpDH#V?$lV11JiK^g?YeMFqsL!P*@u*X?xYNWU8E@OS<*GDep9J2yGqYv$2r z*ryBp*gyDZ(rw0OO!nLn%y8T=)6=SgaSoOHePob)7=yWSgQL82hpBbME0D6dd)Kn{ z^5FPh%6mnQYK**lDJ$KfIwjp=ZA>|}yt;|sNgK#G9IO1DVq3dOCw54)J=g1Ya29Rz z3UXyMrUxtjvVFP7(RD{;L~9*m@Pdko({#qT?PQ1Ij{hXTv=}vGH?pU0{kve8`8cw` z-{~HiJSJ_le_e^p&)B%Y4=-gcM?TMR{2=xuwEph6E;tX)y-9^q?{*9*_9fnmBaV}` zr|6|1DfpUGbvDu#GGCu|rM7G7=A{PJH{ye7_!o0`sD8Ig4M_Sw(}xwD=kj2Ov{S?x zmn-R|pJ{D0jdeTi{nNqy?kaTgvsizw_8zNpH}gL3-^b@r#~#&nN6?Gj1OGOdt;z9n zx<2QTek<|R6m5?r(|KcH`8~wDQlA48f+CB%G$uHLdTDiXsOME&;EuDyxx$E#@O%2$ zT;)0^e(mK^Y5gsXp}&yl<=A=s(!auhgL^$cyK$(}SO=yu#G{RtcAZg-(~@n434 zmzNz2$z1#CO z7kSmai+| zrOpE}=ttu9dUgA}89TChizB#Yj0&>voqT#0;~gL3*VJ3$v)`2|;b$~{Y`f@Jd;x17 z(uez&<%KRkcvlG7f}*EN(l-B{zjG?_LzMR(<;mJh^sANUbZ-~?V@(%OX>a@+?G>Ru zjs(i__;Zk$mMJo9aN0> z4`}nm&1xVpIJnC{T=)0BM!jTQPoYm;v4yo_3zOSR(eGJo8*7mq{?{=b-J&-Y@MaP> zt=94Wk7zH6$NpdDQEcSL*xJKRHS=e*{b85N@er?{yvH*iq}4dq<&9AV&9XjnEY9W5 zU$*xAk~^r-NgQ=s3>Sw_Giez1Xtb`^Pe}hPX(q+1j@Gn!1D_?x`are68K(|EN&9$_ z@%!LMN-;-^EMwaP*aXsLb|tFWn+Q8k8j*v)+0v4lsIsNLZ`V22O+ojPMsy%D`bVl9 zQ@%Fl!BwO+-}4ewHsxIKi0wnx?hz{c6#0ptCo&2zzVUD1@TEKC`HU+y^Bv?l>l&9? z!94E4$L84k!b8+!!f4(1W?j;f?h>Cx)xE-cZ_eobdyq9V?3&Q-9_b(0?3~0}WbPYz zr1_L`{zU##f8oQfiS3KXSK*WFPE_NpFUb>sLDQ}9oX53%8pBW9dA^OjC0zWcFT;IG9^LeTF2;uFc?)G+ z?@%-U8=F}~Id9=_`I-C7Fno{Bhv2)&OJrf+K<3BMQdjpwX=5T|n8IF08JiMc>=E}TgT2HLgBiq+BYrA; z1$`sUG5b*m<8cl3TF+N(KzM=3nB4BAZ--sFyxBaTcKM$d`+j<>aE|BsTPZDJ;(tQ_ zmhsbjvu-0^V(rL!EwgXg62{tM##|m_?=HsRo$Na=VjZrJdFh+@-{S+c)&8lfMQpR# zZf3tYBX)`PU3#p)GlM#s^_BWdedOJJaewm(^7$pYl(~R?cgi2K`=?#5c5G-%1@$xM zh0CLE=$Ae8b#P)o%&{SRMfqipf+gHb+<6-D}ICd>ov+*Ay z+b2_$X5%AiYG7Op^PId(IV<%x{d=B2q>og5+uz?$*#msj#V;nFW3vkOQ#X907LUW{ z#g_=4hR3F~6vz8=2JjuyzvJ(3V}6qLyqhtqalEVe!1B51M4xB$bQj_&cgst2B3tJ7 z4}R4d8raRwrDDF1)jj=R4#&-ZJ5GR~@!f z57G@AN_Y7|{k%!$$0FBGHCiZ3b6cN6*aIVPpOo4&Z|(b+z2JQ^~5X9~8!umLiT zwZ7_6?6J5q*OK2eH>ytS_!Zf{Jq3Hfn5;&&%6NZg1;>`Mhl4EWUv-*3pWE&4#1A=? zL0AT1>4a%@!v{sqfq8tL#1X&q)TO~);-{H*N!mz!F7a)|XDt^wDf2!l6MLbR$zG6q zstR2xkN%*Q2cO|lAt`HcD`#`;6@C0*3^rj{=u7xI-S}0qS2T+{@_*mJBS3ihLW(d~=KGLtxx<}LK4+0ZfglW#ggeLqqm z;_CZBrR+h`$IX2hk)fBlVyK@l3Mu|~!XH1lFm$!<4IYnq_0o1V zaCzC7(CO{&Q129H@Vy_og6}*N7s8M4ncVk<;2(bwA3Ec51^vkSTV$z_dVT}FpJv`W z9uw^SQDP`EJn(d{3pp;l{XvGq2{$U_AI5wZJN$XtPfOGL4P7qL$>n9sLl@&!@~y~W zp0^Ih`d?+;`f35XjL_d%BV;~BSu!WeIj=))S>AiId%z##e_rN=!Q(179IKw6gPtOT zo0q3uoV!le$L>ST6T@5exy$*a{~0HHQsEI@cbty(%Njd#au+`JsBL$QgKrjn-JGZC z>m}qu23b1?rEkg^uC#RwGTQa@9(p=w=tsz*f`pw5)%bdSZoAZU2_PL@9 z<{^1TPwnDgN}ZkT(fAqbY0BsF(~8fovqHG zBPp=_%qYk6XU99Ae>ctb{QZnk%?><<9l)3AT_AQKArx`h?Z8OG4h(yKIb~}7`!U@P z9MJ4QKI6lGwA11M^n#v>^sY|>=%fx#kc=1`VLTcc^2LAdzEBqUsI3fe429c z?Pf_QKILJD^0s|7_5Kq2n9QU2prgl8*0EgI>lLgijputOtiMJ%;)~2n-MPGv{^W49)@_*@ zSpEU!`iJ*>#ZJF&jG?c=X>zAe4Z31P*JCr!Q2(>k{|&-gXt!d-AEpckL3Lz_M$UwHfJ!jjUJxN zehBu)@M*qGoI#h1c|Q(Y6i=Iv2tCL+5Wh|ATm;)4xeLFJyCH6LBCg0f&4|U0nWt5*NR*6P4ZOjy>abz&{3lYX#My06uTE;t*1^)h?C7i*lX)m_Ai zA?`3_8?MPF@<@In$LToLA$~HlYJT%Xx)RUnn;4h;#g}Pq8+h zNBc|o-xDT#O-Jwxy2pr)!1?$>oLN=wzl%LT_qpTrvoE>a+uv}g!|XdG-_Ks$JLo}Q zUyP^DshK}P7XkX1)b|zAOZ&?{$T&FBOZvijN75XrYj7?LSZ{T{b)yPaIMi&`FUiN@ zoSXbli#&fuo-k(%;md95>gStFRkV9npc-A-f@VAx^Cz1X&_B`zJY)2lE z0o$R;)I7Mq`DZ-8I9vrE_+*f6Kb0(fO?0@JHkqfjiS)HQ(KBm2&Pn=<7NYwF?32vb z?kdP!`z>jkt$N#hy4p#*4Egk5rqA@#4)3^zXXcS_ANY}LSmwvBn09F!*$0#MdJ5S* zayA&_?-aYANBt_8XP%T_2HBs=AxXC#w{b={Hf|A*z@OlYk;_NdPnm>-zqiR-$fnZEta znXV(7=Wm`9n7?Jt_y10H%6^yFMA5_hvFwv*dr)E@7olI)7Mgw+pkH)rtTDcC$RRRF z{ccBwwj12{f1>S8>ax#Wx78^1Z-tOb-dqqy| zOi{)xe(KIt#>w~4i}c3|=9q5!lX(_f^bR)a4EDf5eZGLb=6rgW=`Wi88*yk`Jx-^jFZx&7LH9$_lcXOy zG~4lA^dfa%Pn~3ZcjMEpK(5pD!4Jt78_~=Q>cnm$6@fR5JIX~LfYQ$epn^e#iZ6LNh^A_S$6fal7 zXW%@@vWY#bO=GyHVXIp*I^j$~(~s;wyhA=R=GZ6ORm`}NG3btAy@M~#_}dw8jK4Jc z(spM&wk951vwcrDMi&dOL>H?+4>Pmx=6B6aKI{LHMI>9aF$=HMG0n!Iszuz0027-DZi_V(nt1YP&? ze%0FGheQ7S-~#-P)p6LTc-nac^F~6b5c?!{Nb2uqT;ii)55_YlVlw+=PQw>*vNwe< ze`x-Wn}T6{i%&12r%f+nXl`%otgBL6z zZSyeI!g?`>ea!)xlf^e%5F_`F0%OECiyP_hoKRVLBz?q$?c?5m@-?whMd(s|iek4a z(9SE`o?8Aga&0>@HQ4oNd!3x&oI!?ni0dP6#wTBWP0r5a@n;@;cT8ygKBdiFe%VW> z+_m5H4^*?yS4CORJL0!5IiP|&Myt_Pj)d(yDl3ls6Z>@T(JFXsvdZP&?)GDjv?Kp` zX>RD)yfmMz(O&1ih3qv>&J8Rtpu7U+lKuEmGKX;Qi@7(gya4WU^6Xu^ceyD;ejugw9LF$s$zJ)#!MvvK~ld}W*i}%;`i;emi^6umr zo0=(Yca&${k4Vn!Teg%ozMHnjM_P@Kv_SWf&LAgy9-1E^>kZi_k+zrlqZuEIv7pUI zY6oY1F@~=)OwI5he;lpvB-vg3M#Q58MIxc zGj4nOhKeJ_oJCs8d>~4h`zX_D_he6A)_O7@NIOa!wi#{sOX}T5ou%y#Q7>s1dDr(a zyed8p!;;D_j%$PRTQc{w{gS{=4LOWH%$&C_pSkD*oH ze;C|~t*MD)E{~@Vj-W3lU~fih_D0gl8ql;iV(avA!96(a&A)x9%~k8>agNPAGJvh` zkTSgJMC{`j#z6`Dm@C=e6npdra*G`;;e9l^7JDeX{HEjYrQYn1NP5;cEs`Jm+1kE| zl>b-kkb`pimfeGlOOf?%WM<6NFlM&uVQl4o;| z;Cqy*t=ZWhVO_?4o@!^FK3u{14D;{oVst3F<$h*MF*?P67xbn}o-0+ZRe$DQ$>3Jb zx0c0)WIspF2SxW4}<||;wGqrhcz6$1(rzy`B8C>+YyVZcXrk1^Q>0^>tH|5H_X3kaG`kM1Py^pxt z?qCZ`I_9yE|*_)QO%b*Wx3`$+&wvmpMPcn_7Z*HLHp7E>$bCI{}>zFs@*Lcho6zszJ<2r z_s=c(|J_ z@}jTL2h-7soIkJ^sf|<7v&?JO^R`bpZ@XN>Sp@ryvId(b`j&HuClb;3D8_LT<9ReT zXH4kKcidW^I=d?_^zMH4*V&J>?n7QVcd1bW?@p4lJ9S^>uPS_VxvNtm_A^Gky6IQx zzQ?$08{v*^T&}uL?%Ccr;m+He+1Hi%w~e*3oYfS^au;lvzJDqE`{r3j>PG)F5>MOT zWFLR=ODZ^U9rv|7o2+K^zNWaVq6&IT*?)1kw@aVY z?j26X&nr>`z0R?}PIJYb>tY=>k@Ki9@)f!8Stfm6M!APB?Uv@4@F??Ef%_)vkfPSn zHU&~AnQQ1^;~596%~RU>e`K`y$*YU^W3)rd@Ro^h5MDsvk#5wma#8;FY9D|U-me8TIX7sW5bLCbI$z+x_=R0;bY48GM7c@i`dt5 z$C2?P{JOTU&+B({A1f_{Eu>#7{KapRM$ad?{WG3h*}tC5eAxOMMcdC0y+~igPh)Jd z2WPAkthQF{f;RrDrg8_>rP&K-vKknT-C=yloxDTp<(q=VZ!$ttCo3}eGl|< z=#8%?1PhEf>>D0(citGph9>J{drGjBFvVJ3i<^04aIrP+vm?2C`n^5ePic8Td`iZe z_>{+}kHx3V#Qx$V`Ug_v{2v`nrY*#mya|5;+f>)~L*~M9`zOkJN5+!rhjkLJ*bm7j zKK^F%+c&5>vAwyJ_kyf>uIfb=%(| z^OPD!m~rl4?pvGv#$BxI0KTNk5i){Z#B9 zdMhG*1#$V`e~llKN56|AcDaFklWBuyY^R*P1klBW>%@K~xBmqcf32A|tPnehUV7og z9{zAZe5K^}Kl0u{+CJ`K$h{Ix9`v(kU~s%jGW;j)TxBHVD3S3rioTqr?GvZrZ#P|t zO^T5JT;?P8V|He6cUk6=$ZF1w9h>*K*%x!W)NK0hPPOyq;J;EX{(Hx1<^>rmukenq zlG)0d^b?-_=;|12*>27@W=kKz?#tXbowiJC+VsKU;oqI;qTdWoQMnSHGPu84%3#h} zH<^9FMYLVoM)iJ#=K^`Ia=hQnv#fPLA|IKnTiG{}ws10LU3~eSOlNrOH|B(of1U5w z_-^C7mG2h5oB0Oje1e`@pO$p`JuSHp_5objrGf{@@7v5PAG)|#%$_uNU<;&vv|pwZ z|47#K<{rr~sR!%E)BJYlXQZd!cBYM1>jK!2YU*{f$jn_pxl6}*-8tE~J1A??-w>bv z$)BVPjFG!^Qnu6sJqAh3{7YV}kNntg8IPj3k65R0-cUD)KO*%X#8$HwZqfaX;tpARpxen@^}@k1lW(FeZuhpzo!ma`Snzl7bX#Ul>y(iUG4{V^7LSL^eT zzWyD{Je1G4S;qLempSMj*1!53bR&I1?wej-AajC#$29y$HC^`?9h$Ewa?3b(aJC|6 zZjrfaKq+;}1OGVXpJwc6c7n1i7&p@XVcK8oJ3Ujh{i_wkld<|h*2N@j?`(NKnRSsr zK~Eo{|L`}GNl19c1KAkq6m1ENjn!h$OuzV}u@H>nXm*RKq z4!+LkrxRbs7V$R}BL{K?w6;`@auiKbxHs zw!44#_>pJWhgiveWs#b6u8naMaZSv;p8F)Sm(%=vTR83Y$R__Y(xo3oT)d)35nml!vS*r8w zYbyB1~qfZ`bd$i$*v`xs6S=#0^qiudpys+y!`g1Dl@QLknk+YR^wTd;5 z`(#d?!|x{lL|dhUGWP5L;rkOOy|j1Y8Mp}JHZ4xA`w{tlIAwn5XU^-lr_%qA6LxYO z{fsr9tby6nStIkon-itayECP%Hujq*{H`9^HXQMDwjlapERSxzJUIKko9Bhj(Vpk< zZQ7(yqA%$q^F%*hZI8Y)PR={XFM^CxS2uZaXE1q4cN5!ppgZXo>;rX3I_V#hcQ3x1 zo49Sir+i6k=wHi!mL5;qzt^}oIhj7*$D04+2lMDJchPU|r2j0!Mst7C*azrD{%fC+ z>*G=Ey_|oGeU`QSEBtoz^c2lzX8xXM>zQ}6_%d=Q2VVA5ByAmaIiT(NeEtmCJpX1* z^XNS0r;m_3i$CgM??dca3A!%Ew=5@I&N8m}qQ)M{GI;Tg zuJD$7Br`I^* zel6$vKf>-licg;A@PClb-J!_fUqAR#$}{|p4EH(w;DYplO|R`A9(S&JOY)$FJC$XPS?M@uVhA?v9e(n{M*k#U49&D5h=?zB2puGq|m;cDRb*dO_QmO_rb z%w1yZ%=EI(Mg`l)l70iewd57yo}k<1f1%+Iy6!ap!Nt91%X$B&ocCXjUDPi+>mk0m z7v@m38NYepf4UU>cXY(_Y_rWv(3j@tpB)vPAo`c}410&7SK4E?e_UYsCGrwKp_n;< zGtpcr+e~kkVdnorwEVMJqmuvNarv$MSjKKLV>ks{KTf;z$vXA_Y46PAqqweoU)9Z0 zEwKo+u^4M1Hj;2K7#pM*td`_OfbBRSCyt#&LU@rN1`F^O2P26r0%dU%5+`CZ2t4zw z?mT5O9&k+NB^Gkx!DiwF6MHhw?4~oEPq=3|)65ypXWw)8@g=+uV{hI8e-%y3{;x6;aq8hyI#|6s{n6X0tAcS_ z1&_r~cEiU^z21D2jbkq5YQBjcoE*2^@>$1!ERs)~vrRuVw_RIQ^10zmty@w2@KuM_ z1L=Nr-?fUfy~u~^_jB(LXS!=(y0OJQJ;~dakl%a{?a)Do5>O zPOY3qng+%|b0_ssVZU$#U&n&@2T8$6x6>IuM~ zi)~-;KC}L%M%X8swut6*ZUb9VMa>(*Fma-HU8}Rm@Kmj{TB9VtR$Yqxz?hxpJ-V-= z7t>h>xz2;%UeHh7_dlTV5x?c>v_W|I4lVOi|E7A+ZT;&o;I(+3X}B0tuklTq2Z z{h_}UZkHL(Z{j2gPYo+%BGhjV?G{e3KRdtj89zGCOWSy z_P@3cyam~Vinf%;q(z3UB5ysPwU=C}ba_ML7gz9Jwx(9btcLfSDHk2nHRXfDSF5}d z-v1^|?Msc^PPx+YiFf4@Q>FO4n^tn{Uh>Nhmdl)yy!0vNjOL#4VZ&doO=qonZsz+Z zZy2oMzGtf)j;*nYM?mZb#w~x^*pyOq@3MKIXBddiwFZqHgt!v1Ib*{2aV|`I>*%(Q zB_>V*a*b%mizB1@vaRf2IaWFJhAkn^x3uP|T-DvdnGN+NaXoaZ-1V~!yz1S3&|8rC zft~_=Z!r7}eu$zUbt#&a2 z_?+F-4{;rr+WahfpUhOzruIge5&3LdoFVBL7i>q*+t-;y3=8acQQ+?6`la2#XQA_s zaaMb0QvFiaI(&oh6NE<2bizCQt{w7G%7F)7t#Z(rgjCK}-;CZU`MSw>miijl@2RY= zZ8{s&v9ue0($#3SZ(@&A^nw-A+0m|Z*!wv5H$;3I@9dv!k)9pW9b?G`BR-(&XIh7R zgh$Tb-A;R2=~t`zl|*csc)#l7{b~emrEU9YTa-Q>Kvxf+MP^Em+^D|b5Bo5EH2Hm* zy~^MErR&=F`SvWKpB2wC-`(^Xk&lpG{wSx(t97Iby@1v$!Cqe*>1zXhy_vDq8LzT* zWUa@36lT7$7atF=v?Ik8R-bfYrJ4hb#dhY>Vb%i4_gkrhbfND64?gyyS+lg(ob`_> zIFB4O09_K}XyE;_aiLj^z23#j&@mwczK34uJ@(oC@IA#0+B{TpEOQC5MCPDZ#0G~h z<7kFezw>?nB@t&z#~bGv-vNJS!M|L7xTWRH)}0@~$7&YOe7V%0(fl{m@60NHdFBny z%QgPY9a)?+?OFJZ7C*AcWZDQX3>^pG?pRMRAn@eJ1}OKua6{W_hDwh`(G_of(drvM z!kl66IIw0)_`Od|4aeq;4d(?`HAkg`UuX@~f`@1s@l?v}P!eUE`!#lGym!CN4vo=0 zz5z+^p%o_*ptFzwtCiX`LCS>NBPW;Uhc1` zUDtmLe>d08?f)=;>#zlHJ!JKjz}v+?lx{h;Wyx3SV~nz6{=CR$_71{%4>-k^oYYf> zZr=_hk!O+gZJIBY{?y)T`gGTtS-V%m@1)E69_v8|>!9Y$W6S}inN3|^WZrLm+3LG~ z_NsHOwDm6HRowvYyUB9`-PeBd5htpzjPjJHe1Z6`fau&_&4Hk>0DzevB_G%N0hPJPCY@#T5K~eOCH=Nl&_?!Qt_Xn<%5iU)o+exnrsFkNIk_-G={L#FFu`2D~{r z&>p>s`8?yVoU z`p)`i7UceZxFU!2XYd);96ke14Sp^sE(P@;Y7Dk_`Z|`Pqv(4L9w6Q10J>A*MELNr zPHAoG5MTLd$I?UNz{84;rJc-wwMp$&TfK6+XYziVzr6|^={$owX83Tpbg}3$=wh0| z)68Dlg)THL@(ArX$91betykyGyP@$ya3p^a6w}bvv5Tr?+pAR&!2H*!r=AC_Dr16=VL6KrPkCv z@N*~d+ZjD`_RJXeUDBI>*`682*pQNJ-_aFQnp*V!t_8bW4qVmTQp*^pbGCWr*zzNK zzLzp?$4098c8+oFr>$?nuezA8YHu2Is~mmJ?^*YdZ&p6fTA+U4iM~}adk-vS2#EiZ%Hhd{aFYeS9Fwe|Eeszd8Otl-Ll=HjY^|3lqSggQr`P`FIh(ZAAr7- zeuUFD-<}rXAmfwpvCQ3XXso8+Gi!J5so{!~v$Zdp(JP*-xl}$}S(xkp?UEe-R^}w* zNIOQ)pFHsL=H!X(QTi4ge@naS%N}3cp6mbak^$tm6Zq6+g8vv}r+QWHcFGk#)NVcN z@#jbK=|}gMC$vX5)Gy7Yui5m~qOZ{nq#Fy~*3tK|+m@*O9Qv3`Utgf?({swg-7`Cw z4`uD}&Ldhgp|=*Tn;CXebB!;fH-L@#jg_-@H!u$ynTI|2J)ONWc<}u1OTwCim5iI_ zVb9_{GmbOQOOk`_;!!=Ug)d#z)N%(jRUe<5#S>TcHY8c?UCrg~sfsgX@}%}^9W8}F zl!!ktFMmH(e0RFxyKlk|r!u#W!!Hy!LTjq#i|=Q{6{*C{(%!=L%ToGF(7R+7j3d4H z%XxTn;|s(*B^~_h=uuN{T7+{Oy9DnUXZ`(Z=D60Ur#e_~SjT(tb=r))X>SX*JN~q0 zpCA53+D?-R^6PVILu&6+?BzS?pLd2>ZPxx^ zDB%oe@p-#W`#SXR6%V2VsA1nFTY$U&NR9j&oy%L4Aw7H7LdkV$1;dlAgOqLj_kEUa z_GdZ=em!ZWJJh~q2>l^-xqAZkFS(Ylc?s{$ySRUh(M`cqb!N?BpAaBcqz}9$AIhXxmEWT%~ zWsm9rEBKg`Y zxoVE|oUn^bn$|HXu`AIZ%w~T@+=CCMP$s&=8Q@yBZ7;r+iNQtuE#+~x*(u8?2VJss z74F$#%C6yA4`s*VWtV?mNCW;MDlv{rrQq2W;&dG2!^`&b8I`5L;m3`2X8TFAUY@I zpk=d$+niChIiqa*+rLAd^8cs@KV8?B4`@84`+E;sQya1=_mjlgt&+dooZHxg$##_$ z(HM?{28=yZc}Xjsq;#?U@E)Z}=3YKv(Rf*AKT26mKD+n*g-yh;XOD=!W$#pCI;gL$ zR_HR)#^42~GttALzk-e{&SjMk@a-<_%_)EHhZj$`z5pE{&(18z)>Z#%$C!>&b-;Sw zr{NmHt_-Z!3MV@mo`W z`tY0FLHZnG(JHOdwfScpIZNAxPkd~9FIn)N7RGbu9>3H3E%4Iio6+3O8WLe_eojm| z^&txHyM{5qLui*pthp;GQ~9M+-Re*8t=aa?7SVJJn$5B=>CFpR71!Vs{v*no$s9fh z4fGF;Uu@p__q?IKs`iojd-uGddRucpb*_k5p)XP%GIYT?$s)A38~IA-cZF+@9uHCG z^XN5Wvt3I*tze@txCkd{)17QJ#Lw)ejLP z#BM~F=8t?!b4T+xiTUfdLIt$Zm6y^Z8_&6CyEnndgg4oSl+VgWh9{q%DQ}MRL5iNu zB(EvU`QWx{*2y&1GV#7ao?E{D#f`{GvQJ_!F8Dfptrc1**S-jutco2JHlwCqz z_SyUIrwy8e7IVrm?=uT-C#|b5!$!&dBGLva>l(_^TpvzWJR13#y5~%Xh<`E|kAEV$ zLH?@J^@JFM;WFuZ@Fit_sO^E_bAOg6?u94jz!T-`7obl0?A4%iJbhnqKzfWb|0Lfl z*=xa5j`V&0&~@}hev7oXU;}MUCZA+D+Iv9tHH`gW{yv}2y!W%$`w?mWnZDN3AMq*W zn{N7>78x{qF=Llv4Idvm2M#aL&@uEIipM%VSht$>q2$&^e5KubZTkls72kLd<#1+V z7wZUR6Po}$oF;}nWfoAEC!^G=}p0Goc zRAzC!O!(EC+bHuXUuYrEweQ2!u+ve-n8LZw>c^cqPXBdO%_?yG8CFF@NtX~>iXAO)cPYU*y!B4n#bm^=FK17lc z_o7!lPv6dRoO|e&px0|z*jKed`QO#S?&Lf|(!VkeG zH-pPhKwtgDSrmQgoSDY9PI#h?U(*$MaLt6U;>v$IPTO8N;+vxJk~oc5rKpVS!#ZEs zfBfdK;>yH+5hNykaG;HY?>=rlUp3Vn{}X1<*`H(ziycG0(> zW6k~7H15g$i{VuT;%PQ(t7I0=35BNl?a&$gC$&yAWmpGd$Syr|%LmT#?rbS`y1zqK zdDDZz(_f0u?J32fEoO6!uRcQXzXIG-{hxT>0(eP37mNE}!(WbxRZ#8ti zd!Kc5i{Bmp)r_O&mSmXv#?SP>2;HR<7v}Sm(IG$|dM|!u-m}m83GW@njiFr0Og?1W zag_T-{)l;8VQ31T;JsJfL&PrL!uvzak;X}nhd<1HO!5kAxt^&Wc+f~5d=&b~^8o2` zm@AE6+ZxVJ$fIX9FK~Vn9bA^3(R-+WxFV$Yv{QJm_?637kpU{UV`rAExgA-vl0I(7 z_IEc|)4n+Gw6e$IR~`%<$Q>JcoAFV9 zhe`7&X|U_Tr|d}EczpMe!Fwp{{in;J`+$)%^N}%~oUx&7bj!YM;`wm>H}b|-A)Cy0 z1_JQa;{0G;2W{uwRP7CFc>itHKbAP}cincdyYe=8S8C*5p6}#&a16Ba6m_t6sy?+X z=k;^*RhNG(V@29r{95D(@@evXkv!?bLE{Tc0$eR@yvmoq*9v7f)GyJT9DzHQM3F~? zuP8bf(Q1r#Mu}b7%pPwccz4%QV!yD?m@$aU`H8sCMs{FL`+>WrrA8*xjy1HSiuIwI za?Dyv9m8dTP$gsUtu>?L_@z|@Id5i1PLhXyFVa3BkF{7f>Mrs{@fDB4zqFq^0iOUT zd<&v}$(iG_L%MdaACMRRd|(*4`X%=6nm^fhIJ+fF1=!EYmT5tcn$O$6R?;uHp7FSr z_6}3WD%In+LXY$hKPelu+8}0%eN_v+v(a{%rVpblVHq?CH0^ zaf$qJmm%BajSV#GETh)540H^#H96QAy*|o!=0j6HaZdfTY2(i*YdU|gcVgQ|N4pmt zlKOcqeU^{u&|KN*M*K`Y|59%b_WbBvN>&4wNnkJTkX>hSvF-%SxOXg9j=K*&|2OPQ zCA)h*yTYmGw<~`w{aUjQon>x=L+ugVbyBgGh&w=e&|d-Nuk_B0 zs@qW*Hyi#TpZGsDAEwmadU z{gJI~I{lGcksdh$zSO5ey)*ck#`EcsbCMmwkMuH6(~fH7It?UIQ!wR3LkXueC(;j%u`>fG5qabnEYFXpHG8}==c(2 z7w=B(So$9LXpP&dcqGYV1k}C2{}T1Py6s< z{2}ri8d{2Tq)Xk=(&N86k~6sV82Z2cwdmZWJC%M%dQ{E#6B-xhnRKY?19LviUTS|A zVb1R%%Mu##=e>z%M?)q6MUMAlp!Y4#BUmN$2(9eFZ57Sra!SfBDk&K!e5l_~> z)Dq3a*B|ko<2+YPC4H+z>nHku(`FQq@%fe-xs0|-?sDf}YJ_*DEO$;yE>4YnHD12% zk8_qd?E6-WY~7oD4K3R#^Batd;&L`2<7$tZ7@yPiPnLeliW~zU;N%D5WmyYuDQaWy zsOOSpRJP~CMNA?SlhCHG(rJAIz2v3zL2{y}pA;Qw{EZy)mOljh`1n3)Jad_s ze@chXS&kaXCf|INbY;QBLaZ!6k;kTG_Ump8A?>le+}m~kHQBh@!t zhvIQ(J%1+gBgK3cJ!2y=@dLgMu0JB0L>Bx9GndQ4t;l^t&`!Sjjs!LsV%q#n@#5L% z9k#STDG6h*8mPHk=O;?TFOtq1dz(4&r{=!=H+E8nH}^H~41VJ0E`F=>4c&2;4%yYC zyTpEY{=lWk*XoP<^?PI%wW|rdpN1a^U)l?5>^Hwo`{;*@o3b$aN1hY=E$5b^!+aa& zqWH$>uz2@`#z|$TZMkV+9Bp!OmTGulY<&4Z7w;sq`e%y1( z0>qb&qa*PAV>PDotsCNd0mRlQP&+jr@ar>nwVxA1MRJg0pli+_deM)5FE#R0#(D^R zNDuZAXv2!zUyPq> zo8+b{@SaY;)!(l7)E-x#bf(xk=)LpGlwMio*_;bkKV5wi@shpxgY5Ucvv*pfZX!lu zIpb?JSP_q}8Ch#oyb;+bvL@&(EqszS|3T>Lz`jYLhq%7pIWg3x7{#22Ze`Ev-3PfB zo}T>lxd-l`jz{?mlMdTp9cLvf_%2$(4(w6A>|K`!lAD7z{?Yggqsv(b@2GeVzu_wx zpO=tzB(s=z_yya%JIK2{-t}-c#^GHq_uILj$9)#}wfJWAFm95m#BaXNvo7xc75%j6 zo_0U+diBJR(_X^<+%o5@^xV0p>>&H-1y8|)`Ad^;?`!ZH@f`a6#DSd?L*de3e;emu zYEyM?t$t^NWIE`et<>s&5}V8vaEhOIf0#3ek|`)p-{Yv$dt}CghtN%Q(CCXeG6&-Cf+CK z;HbWA8R^Rd)bZ7XzJQ-6^7|%+3QB_gc{VYnClbHsQY-XL`tq>w(6?o0GJOl!sYiM{ z?SVF5U`4T=-kZcXQ1cdiv*mg8V?CT%iEy3GIIoj@1YNEp{aQQe2>Sm0>wFo_%keot zM|N~wS7qVWe5OO#fg=AJU);}jUH|^BeN%wY;vD0`3`L63* z+`BS~`|g$aJ7miPRrE{e&Al?pDZ}9NC6yOwcKCKv7JZdW{6;)qE9;0`PkLle{8_A% z^w35O{IWmXr0fSISY*6#K<=rs)%I_pN?oP?ueI{qkhq+iR>S$ z_65UQkF#p>3cdan^Q{@}tHdw!Sfjk}!NkBXv~12YdAw6=fLZ5BE1N|!Z5y4&tntX` zijiN5ty6Vt-OWkc)AB3nMOokXbB=3Q=~W?(o%#`=PhH92f^=tTXYA=<_#}K@d;0RR zds?oxceQLbz7b{NA=ZvF#;^ZEype)7%E(IN^wIpL8H(i)qd%1WMB1{lgTi&&`g1AH zC##;r=X0(2Yn~GfFXKF3K5~KlN3vNrSK-6C%gSDC=qG+Yqz$^wB9227c~nl#XV0Ys zC`V;O|BI3+f0>=1BpJ@V4-^EJ`40+5<&>{H+y8kuWi9EGk?#Uq#t*EBzc)HD@RS$} zHv@UxLFRJpZ|1yypIE2dv*d@!BR@UaCU^OoS~l@5(1)n=S>{*+ zb!v`PP#$Z!(G7@hMW5~QIw-&5KsD$0kS(Muc^}+4jG@v=EZ<$!OjAMVo zw=!CDOT#hpoaRqstatv2tPl7XR#`fyW^4!ruHIu>KGUi*%{Nx^?`WzDq6mwA@`ru9+9G)$VtzGs{D3_`^I<34|%)`=M9 z{PR^iT8>Y3>wTB;mo4(Eb+cCK{vF!Zp8nX*iT1>18y}0VSRW|4dQzfWz>U$CQPNBZMC^T!5v zIunzcPf~wAF;0`e80^nSU+|WHZsaS2Hyvx9z9O>jkhPOFxj6^=EvKGklDwLICDK=Omrh)0b)c&<6G`W$u|}edo;wudW

V$xZILB+j|QkHiZs@{Z7o&(NV)H@qv27()BE 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 diff --git a/userspace/ksud/bin/x86_64/resetprop b/userspace/ksud/bin/x86_64/resetprop index dc4d9910e9ed4ef9dee3e0b6b3a2c3fe1ab3999d..80030612649bbf17fea4052597e5c7233e85a363 100644 GIT binary patch delta 34600 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 From 5e4c9a60d1abbb816f594e92950093d86025dbc6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Jun 2024 10:54:57 +0800 Subject: [PATCH 019/113] build(deps): bump log from 0.4.21 to 0.4.22 in /userspace/ksud (#1843) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [log](https://github.com/rust-lang/log) from 0.4.21 to 0.4.22.

Changelog

Sourced from log's changelog.

[0.4.22] - 2024-06-27

What's Changed

New Contributors

Full Changelog: https://github.com/rust-lang/log/compare/0.4.21...0.4.22

Commits
  • d5ba2cf Merge pull request #634 from rust-lang/cargo/0.4.22
  • d1a8306 prepare for 0.4.22 release
  • 46894ef Merge pull request #633 from rust-lang/feat/panic-info
  • e0d389c Merge pull request #632 from rust-lang/feat/loosen-atomics
  • c9e5e13 use Location::caller() for file and line info
  • 507b672 loosen orderings for logger initialization
  • c879b01 Merge pull request #628 from Thomasdezeeuw/fix-warnings
  • 405fdb4 Merge pull request #627 from Thomasdezeeuw/check-features
  • 1307ade Remove unneeded import
  • 710560e Don't use --all-features in CI
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=log&package-manager=cargo&previous-version=0.4.21&new-version=0.4.22)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- userspace/ksud/Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 03d049b39b79..6b450c3276c2 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -941,9 +941,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "loopdev" From a89a334ccab0eb0d1c0e96bcbde96c7192447960 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 29 Jun 2024 10:55:37 +0800 Subject: [PATCH 020/113] build(deps): bump android_logger from 0.13.3 to 0.14.1 in /userspace/ksud (#1830) Bumps [android_logger](https://github.com/rust-mobile/android_logger-rs) from 0.13.3 to 0.14.1.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=android_logger&package-manager=cargo&previous-version=0.13.3&new-version=0.14.1)](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) ---
Dependabot commands and options
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 show ignore conditions` will show all of the ignore conditions of the specified dependency - `@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)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- userspace/ksud/Cargo.lock | 18 ++++-------------- userspace/ksud/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 6b450c3276c2..fc34f18cad7c 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -63,14 +63,13 @@ checksum = "5ecc8056bf6ab9892dcd53216c83d1597487d7dacac16c8df6b877d127df9937" [[package]] name = "android_logger" -version = "0.13.3" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c494134f746c14dc653a35a4ea5aca24ac368529da5370ecf41fe0341c35772f" +checksum = "05b07e8e73d720a1f2e4b6014766e6039fd2e96a4fa44e2a78d0e1fa2ff49826" dependencies = [ "android_log-sys", - "env_logger 0.10.2", + "env_filter", "log", - "once_cell", ] [[package]] @@ -532,15 +531,6 @@ name = "env_filter" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" -dependencies = [ - "log", -] - -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "log", "regex", @@ -862,7 +852,7 @@ dependencies = [ "const_format", "derive-new", "encoding_rs", - "env_logger 0.11.3", + "env_logger", "extattr", "getopts", "hole-punch", diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index b5486adaa892..d7e86788bb0e 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -55,7 +55,7 @@ procfs = "0.16" loopdev = { git = "https://github.com/Kernel-SU/loopdev" } [target.'cfg(target_os = "android")'.dependencies] -android_logger = "0.13" +android_logger = "0.14" [profile.release] strip = true From 3dc6e65586360c9bd4c66318a026f04a6f32793d Mon Sep 17 00:00:00 2001 From: igor <134963561+igormiguell@users.noreply.github.com> Date: Fri, 28 Jun 2024 23:55:55 -0300 Subject: [PATCH 021/113] website: fix typo (#1834) --- website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md b/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md index 4d300a553ad4..d67dd89888d7 100644 --- a/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/pt_BR/guide/how-to-integrate-for-non-gki.md @@ -22,7 +22,7 @@ curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh ``` :::info INFORMAÇÕES -[KernelSU 1.0 não oferece mais suporte a kernels não GKI](https://github.com/tiann/KernelSU/issues/1705). A última versão suportada é a `v0.9.5`, por favor, certifique-se de usar o branch correto. +[KernelSU 1.0 e versões posteriores não suportam mais kernels não GKI](https://github.com/tiann/KernelSU/issues/1705). A última versão suportada é a `v0.9.5`, por favor, certifique-se de usar a versão correta. ::: Então, você deve verificar se o kprobe está ativado na configuração do seu kernel, se não estiver, adicione estas configurações a ele: From 16d5742b12df9219841462150c54e598b28b3a4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Jul 2024 13:32:48 +0800 Subject: [PATCH 022/113] build(deps): bump clap from 4.5.7 to 4.5.8 in /userspace/ksud (#1850) --- userspace/ksud/Cargo.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index fc34f18cad7c..0ccca889799b 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -292,9 +292,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.7" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" dependencies = [ "clap_builder", "clap_derive", @@ -302,9 +302,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.7" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" dependencies = [ "anstream", "anstyle", @@ -314,9 +314,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.5" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck", "proc-macro2", From 17c720867dc57105390d6d8571ffdef8be2a5a69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Jul 2024 13:33:45 +0800 Subject: [PATCH 023/113] build(deps): bump lifecycle from 2.8.1 to 2.8.3 in /manager (#1851) --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 2fdaa05eb709..3a1ea10e0e79 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -3,7 +3,7 @@ agp = "8.5.0" kotlin = "2.0.0" ksp = "2.0.0-1.0.22" compose-bom = "2024.06.00" -lifecycle = "2.8.1" +lifecycle = "2.8.3" accompanist = "0.34.0" navigation = "2.7.7" activity-compose = "1.9.0" From 56c3954524ab34672fc63e369730546ce22779aa Mon Sep 17 00:00:00 2001 From: RobinChen Date: Sat, 6 Jul 2024 13:37:00 +0800 Subject: [PATCH 024/113] ksud: [Fix] grant root to the shell in debug mode (#1853) Failed to check app_profile version --- kernel/allowlist.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/allowlist.c b/kernel/allowlist.c index 9daceef2011b..136cd58d4f27 100644 --- a/kernel/allowlist.c +++ b/kernel/allowlist.c @@ -108,6 +108,7 @@ void ksu_show_allow_list(void) static void ksu_grant_root_to_shell() { struct app_profile profile = { + .version = KSU_APP_PROFILE_VER; .allow_su = true, .current_uid = 2000, }; From f80a946b0d5964a470e6db0871a47159df451fa4 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sat, 6 Jul 2024 14:34:25 +0800 Subject: [PATCH 025/113] ksud: upgrade zip (#1859) --- userspace/ksud/Cargo.lock | 29 +++++++++++++++++++++++++++-- userspace/ksud/Cargo.toml | 6 ++++-- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 0ccca889799b..19f2118fbb01 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -377,6 +377,21 @@ dependencies = [ "libc", ] +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" version = "1.4.2" @@ -944,6 +959,16 @@ dependencies = [ "libc", ] +[[package]] +name = "lzma-rs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "297e814c836ae64db86b36cf2a557ba54368d03f6afcd7d947c266692f71115e" +dependencies = [ + "byteorder", + "crc", +] + [[package]] name = "memchr" version = "2.7.2" @@ -1761,8 +1786,7 @@ dependencies = [ [[package]] name = "zip" version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775a2b471036342aa69bc5a602bc889cb0a06cda00477d0c69566757d5553d39" +source = "git+https://github.com/zip-rs/zip2.git#d45bdccc6afbf5121b3a4668b67dfebbaa328cd8" dependencies = [ "arbitrary", "bzip2", @@ -1772,6 +1796,7 @@ dependencies = [ "displaydoc", "flate2", "indexmap", + "lzma-rs", "memchr", "thiserror", "time", diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index d7e86788bb0e..289805b3d130 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -10,12 +10,14 @@ rust-version = "1.77.2" anyhow = "1" clap = { version = "4", features = ["derive"] } const_format = "0.2" -zip = { version = "2", features = [ +zip = { git = "https://github.com/zip-rs/zip2.git", features = [ "deflate", "deflate64", "bzip2", "time", "zstd", + "lzma", + "xz", ], default-features = false } zip-extensions = "0.7" java-properties = "2" @@ -60,4 +62,4 @@ android_logger = "0.14" [profile.release] strip = true opt-level = "z" -lto = true \ No newline at end of file +lto = true From bd24044ec3c8c14fd9efba209a9a1b73c328d4d5 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sat, 6 Jul 2024 19:36:37 +0800 Subject: [PATCH 026/113] Revert "ksud: [Fix] grant root to the shell in debug mode" (#1860) Reverts tiann/KernelSU#1853 --- kernel/allowlist.c | 1 - 1 file changed, 1 deletion(-) diff --git a/kernel/allowlist.c b/kernel/allowlist.c index 136cd58d4f27..9daceef2011b 100644 --- a/kernel/allowlist.c +++ b/kernel/allowlist.c @@ -108,7 +108,6 @@ void ksu_show_allow_list(void) static void ksu_grant_root_to_shell() { struct app_profile profile = { - .version = KSU_APP_PROFILE_VER; .allow_su = true, .current_uid = 2000, }; From 25a21f4b5faf1d347f73f641fe9f8222bc85ea89 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 21:10:42 +0800 Subject: [PATCH 027/113] build(deps-dev): bump vitepress from 1.2.3 to 1.3.0 in /website (#1865) --- website/package.json | 2 +- website/yarn.lock | 633 +++++++++++++++++++++++-------------------- 2 files changed, 343 insertions(+), 292 deletions(-) diff --git a/website/package.json b/website/package.json index 9a89a65fabf6..a46e1c6def5f 100644 --- a/website/package.json +++ b/website/package.json @@ -7,7 +7,7 @@ "author": "weishu", "license": "MIT", "devDependencies": { - "vitepress": "^1.2.3", + "vitepress": "^1.3.0", "vue": "^3.4.27" }, "scripts": { diff --git a/website/yarn.lock b/website/yarn.lock index 25a40addb817..acce1e0a47d4 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -150,10 +150,10 @@ "@algolia/logger-common" "4.23.3" "@algolia/requester-common" "4.23.3" -"@babel/parser@^7.24.4": - version "7.24.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.5.tgz#4a4d5ab4315579e5398a82dcf636ca80c3392790" - integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== +"@babel/parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== "@docsearch/css@3.6.0", "@docsearch/css@^3.6.0": version "3.6.0" @@ -178,120 +178,120 @@ "@docsearch/css" "3.6.0" algoliasearch "^4.19.1" -"@esbuild/aix-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" - integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== - -"@esbuild/android-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" - integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== - -"@esbuild/android-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" - integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== - -"@esbuild/android-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" - integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== - -"@esbuild/darwin-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" - integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== - -"@esbuild/darwin-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" - integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== - -"@esbuild/freebsd-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" - integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== - -"@esbuild/freebsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" - integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== - -"@esbuild/linux-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" - integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== - -"@esbuild/linux-arm@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" - integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== - -"@esbuild/linux-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" - integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== - -"@esbuild/linux-loong64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" - integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== - -"@esbuild/linux-mips64el@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" - integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== - -"@esbuild/linux-ppc64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" - integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== - -"@esbuild/linux-riscv64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" - integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== - -"@esbuild/linux-s390x@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" - integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== - -"@esbuild/linux-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" - integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== - -"@esbuild/netbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" - integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== - -"@esbuild/openbsd-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" - integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== - -"@esbuild/sunos-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" - integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== - -"@esbuild/win32-arm64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" - integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== - -"@esbuild/win32-ia32@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" - integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== - -"@esbuild/win32-x64@0.20.2": - version "0.20.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc" - integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== +"@esbuild/aix-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f" + integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ== + +"@esbuild/android-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052" + integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A== + +"@esbuild/android-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28" + integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg== + +"@esbuild/android-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e" + integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA== + +"@esbuild/darwin-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a" + integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ== + +"@esbuild/darwin-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22" + integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw== + +"@esbuild/freebsd-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e" + integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g== + +"@esbuild/freebsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261" + integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ== + +"@esbuild/linux-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b" + integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q== + +"@esbuild/linux-arm@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9" + integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA== + +"@esbuild/linux-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2" + integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg== + +"@esbuild/linux-loong64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df" + integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg== + +"@esbuild/linux-mips64el@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe" + integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg== + +"@esbuild/linux-ppc64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4" + integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w== + +"@esbuild/linux-riscv64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc" + integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA== + +"@esbuild/linux-s390x@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de" + integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A== + +"@esbuild/linux-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0" + integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ== + +"@esbuild/netbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047" + integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg== + +"@esbuild/openbsd-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70" + integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow== + +"@esbuild/sunos-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b" + integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg== + +"@esbuild/win32-arm64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d" + integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A== + +"@esbuild/win32-ia32@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b" + integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA== + +"@esbuild/win32-x64@0.21.5": + version "0.21.5" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" + integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== "@jridgewell/sourcemap-codec@^1.4.15": version "1.4.15" @@ -378,23 +378,32 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== -"@shikijs/core@1.6.2", "@shikijs/core@^1.6.2": - version "1.6.2" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.6.2.tgz#29be410e33e604c8ccc7d5ab75cade1a52db8ec2" - integrity sha512-guW5JeDzZ7uwOjTfCOFZ2VtVXk5tmkMzBYbKGfXsmAH1qYOej49L5jQDcGmwd6/OgvpmWhzO2GNJkQIFnbwLPQ== +"@shikijs/core@1.10.3", "@shikijs/core@^1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.10.3.tgz#f01763b36f08ad3d2ef46cea7e61858d9d9947d6" + integrity sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg== + dependencies: + "@types/hast" "^3.0.4" -"@shikijs/transformers@^1.6.2": - version "1.6.2" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.6.2.tgz#dab9f22531f1a16114a59f11e5d681edbd764970" - integrity sha512-ndqTWyHnxmsLkowhKWTam26opw8hg5a34y6FAUG/Xf6E49n3MM//nenKxXiWpPYkNPl1KZnYXB1k+Ia46wjOZg== +"@shikijs/transformers@^1.10.3": + version "1.10.3" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.10.3.tgz#7bda4d272f5347eacfb107e26db8d68ffa2267c7" + integrity sha512-MNjsyye2WHVdxfZUSr5frS97sLGe6G1T+1P41QjyBFJehZphMcr4aBlRLmq6OSPBslYe9byQPVvt/LJCOfxw8Q== dependencies: - shiki "1.6.2" + shiki "1.10.3" "@types/estree@1.0.5": version "1.0.5" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== + dependencies: + "@types/unist" "*" + "@types/linkify-it@^5": version "5.0.0" resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" @@ -413,6 +422,11 @@ resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== +"@types/unist@*": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" + integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== + "@types/web-bluetooth@^0.0.20": version "0.0.20" resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" @@ -423,140 +437,143 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz#e3dc11e427d4b818b7e3202766ad156e3d5e2eaa" integrity sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ== -"@vue/compiler-core@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.27.tgz#e69060f4b61429fe57976aa5872cfa21389e4d91" - integrity sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg== +"@vue/compiler-core@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.31.tgz#b51a76f1b30e9b5eba0553264dff0f171aedb7c6" + integrity sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg== dependencies: - "@babel/parser" "^7.24.4" - "@vue/shared" "3.4.27" + "@babel/parser" "^7.24.7" + "@vue/shared" "3.4.31" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" -"@vue/compiler-dom@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz#d51d35f40d00ce235d7afc6ad8b09dfd92b1cc1c" - integrity sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw== +"@vue/compiler-dom@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz#30961ca847f5d6ad18ffa26236c219f61b195f6b" + integrity sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ== dependencies: - "@vue/compiler-core" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-core" "3.4.31" + "@vue/shared" "3.4.31" -"@vue/compiler-sfc@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz#399cac1b75c6737bf5440dc9cf3c385bb2959701" - integrity sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA== +"@vue/compiler-sfc@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz#cc6bfccda17df8268cc5440842277f61623c591f" + integrity sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ== dependencies: - "@babel/parser" "^7.24.4" - "@vue/compiler-core" "3.4.27" - "@vue/compiler-dom" "3.4.27" - "@vue/compiler-ssr" "3.4.27" - "@vue/shared" "3.4.27" + "@babel/parser" "^7.24.7" + "@vue/compiler-core" "3.4.31" + "@vue/compiler-dom" "3.4.31" + "@vue/compiler-ssr" "3.4.31" + "@vue/shared" "3.4.31" estree-walker "^2.0.2" magic-string "^0.30.10" postcss "^8.4.38" source-map-js "^1.2.0" -"@vue/compiler-ssr@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz#2a8ecfef1cf448b09be633901a9c020360472e3d" - integrity sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw== +"@vue/compiler-ssr@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz#f62ffecdf15bacb883d0099780cf9a1e3654bfc4" + integrity sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA== dependencies: - "@vue/compiler-dom" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-dom" "3.4.31" + "@vue/shared" "3.4.31" -"@vue/devtools-api@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.2.1.tgz#1eb3d33c85b76306106d5804bafa0d13178e9224" - integrity sha512-6oNCtyFOrNdqm6GUkFujsCgFlpbsHLnZqq7edeM/+cxAbMyCWvsaCsIMUaz7AiluKLccCGEM8fhOsjaKgBvb7g== +"@vue/devtools-api@^7.3.5": + version "7.3.5" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.3.5.tgz#afd9f3bca50cfff96aebeea3cc3853fd127267f7" + integrity sha512-BSdBBu5hOIv+gBJC9jzYMh5bC27FQwjWLSb8fVAniqlL9gvsqvK27xTgczMf+hgctlszMYQnRm3bpY/j8vhPqw== dependencies: - "@vue/devtools-kit" "^7.2.1" + "@vue/devtools-kit" "^7.3.5" -"@vue/devtools-kit@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.2.1.tgz#eb4e6726f0f71aa0b9405c847799f75cc86d3d81" - integrity sha512-Wak/fin1X0Q8LLIfCAHBrdaaB+R6IdpSXsDByPHbQ3BmkCP0/cIo/oEGp9i0U2+gEqD4L3V9RDjNf1S34DTzQQ== +"@vue/devtools-kit@^7.3.5": + version "7.3.5" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.3.5.tgz#66669ee94da6c927fc28255477f65aae3f616316" + integrity sha512-wwfi10gJ1HMtjzcd8aIOnzBHlIRqsYDgcDyrKvkeyc0Gbcoe7UrkXRVHZUOtcxxoplHA0PwpT6wFg0uUCmi8Ww== dependencies: - "@vue/devtools-shared" "^7.2.1" + "@vue/devtools-shared" "^7.3.5" + birpc "^0.2.17" hookable "^5.5.3" mitt "^3.0.1" perfect-debounce "^1.0.0" speakingurl "^14.0.1" + superjson "^2.2.1" -"@vue/devtools-shared@^7.2.1": - version "7.2.1" - resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.2.1.tgz#576c048375ba3c63e555017abbc0b1019a7d4cbe" - integrity sha512-PCJF4UknJmOal68+X9XHyVeQ+idv0LFujkTOIW30+GaMJqwFVN9LkQKX4gLqn61KkGMdJTzQ1bt7EJag3TI6AA== +"@vue/devtools-shared@^7.3.5": + version "7.3.5" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.3.5.tgz#4c4020df6d71ab058518a8f3a272fc7f2682c5d8" + integrity sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A== dependencies: - rfdc "^1.3.1" + rfdc "^1.4.1" -"@vue/reactivity@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.27.tgz#6ece72331bf719953f5eaa95ec60b2b8d49e3791" - integrity sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA== +"@vue/reactivity@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.31.tgz#eda80e90c4f9d7659efe1f5ed99c2dfdc9e93d77" + integrity sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q== dependencies: - "@vue/shared" "3.4.27" + "@vue/shared" "3.4.31" -"@vue/runtime-core@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.27.tgz#1b6e1d71e4604ba7442dd25ed22e4a1fc6adbbda" - integrity sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA== +"@vue/runtime-core@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.31.tgz#ad3a41ad76385c0429e3e4dbefb81918494e10cf" + integrity sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw== dependencies: - "@vue/reactivity" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/reactivity" "3.4.31" + "@vue/shared" "3.4.31" -"@vue/runtime-dom@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz#fe8d1ce9bbe8921d5dd0ad5c10df0e04ef7a5ee7" - integrity sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q== +"@vue/runtime-dom@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.31.tgz#bae7ad844f944af33699c73581bc36125bab96ce" + integrity sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw== dependencies: - "@vue/runtime-core" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/reactivity" "3.4.31" + "@vue/runtime-core" "3.4.31" + "@vue/shared" "3.4.31" csstype "^3.1.3" -"@vue/server-renderer@3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.27.tgz#3306176f37e648ba665f97dda3ce705687be63d2" - integrity sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA== +"@vue/server-renderer@3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.31.tgz#bbe990f793c36d62d05bdbbaf142511d53e159fd" + integrity sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA== dependencies: - "@vue/compiler-ssr" "3.4.27" - "@vue/shared" "3.4.27" + "@vue/compiler-ssr" "3.4.31" + "@vue/shared" "3.4.31" -"@vue/shared@3.4.27", "@vue/shared@^3.4.27": - version "3.4.27" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.27.tgz#f05e3cd107d157354bb4ae7a7b5fc9cf73c63b50" - integrity sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== +"@vue/shared@3.4.31", "@vue/shared@^3.4.31": + version "3.4.31" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.31.tgz#af9981f57def2c3f080c14bf219314fc0dc808a0" + integrity sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA== -"@vueuse/core@10.10.0", "@vueuse/core@^10.10.0": - version "10.10.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.10.0.tgz#05a98d3c5674762455a2c552c915d461d83e6490" - integrity sha512-vexJ/YXYs2S42B783rI95lMt3GzEwkxzC8Hb0Ndpd8rD+p+Lk/Za4bd797Ym7yq4jXqdSyj3JLChunF/vyYjUw== +"@vueuse/core@10.11.0", "@vueuse/core@^10.11.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.11.0.tgz#b042585a8bf98bb29c177b33999bd0e3fcd9e65d" + integrity sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g== dependencies: "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.10.0" - "@vueuse/shared" "10.10.0" - vue-demi ">=0.14.7" + "@vueuse/metadata" "10.11.0" + "@vueuse/shared" "10.11.0" + vue-demi ">=0.14.8" -"@vueuse/integrations@^10.10.0": - version "10.10.0" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.10.0.tgz#31f413b88d7ed24213958eba6824d46b2bf71b5f" - integrity sha512-vHGeK7X6mkdkpcm1eE9t3Cpm21pNVfZRwrjwwbrEs9XftnSgszF4831G2rei8Dt9cIYJIfFV+iyx/29muimJPQ== +"@vueuse/integrations@^10.11.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.11.0.tgz#ce2746587172af9ab8faa713f42e619609ed0de1" + integrity sha512-Pp6MtWEIr+NDOccWd8j59Kpjy5YDXogXI61Kb1JxvSfVBO8NzFQkmrKmSZz47i+ZqHnIzxaT38L358yDHTncZg== dependencies: - "@vueuse/core" "10.10.0" - "@vueuse/shared" "10.10.0" - vue-demi ">=0.14.7" + "@vueuse/core" "10.11.0" + "@vueuse/shared" "10.11.0" + vue-demi ">=0.14.8" -"@vueuse/metadata@10.10.0": - version "10.10.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.10.0.tgz#53e61e9380670e342cbe6e03d852f3319308cb5b" - integrity sha512-UNAo2sTCAW5ge6OErPEHb5z7NEAg3XcO9Cj7OK45aZXfLLH1QkexDcZD77HBi5zvEiLOm1An+p/4b5K3Worpug== +"@vueuse/metadata@10.11.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.11.0.tgz#27be47cf115ee98e947a1bfcd0b1b5b35d785fb6" + integrity sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ== -"@vueuse/shared@10.10.0": - version "10.10.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.10.0.tgz#93f7c2210151ff43c2c7677963f7aa3aef5d9896" - integrity sha512-2aW33Ac0Uk0U+9yo3Ypg9s5KcR42cuehRWl7vnUHadQyFvCktseyxxEPBi1Eiq4D2yBGACOnqLZpx1eMc7g5Og== +"@vueuse/shared@10.11.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.11.0.tgz#be09262b2c5857069ed3dadd1680f22c4cb6f984" + integrity sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A== dependencies: - vue-demi ">=0.14.7" + vue-demi ">=0.14.8" algoliasearch@^4.19.1: version "4.23.3" @@ -579,6 +596,18 @@ algoliasearch@^4.19.1: "@algolia/requester-node-http" "4.23.3" "@algolia/transporter" "4.23.3" +birpc@^0.2.17: + version "0.2.17" + resolved "https://registry.yarnpkg.com/birpc/-/birpc-0.2.17.tgz#d0bdb90d4d063061156637f03b7b0adea1779734" + integrity sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg== + +copy-anything@^3.0.2: + version "3.0.5" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-3.0.5.tgz#2d92dce8c498f790fa7ad16b01a1ae5a45b020a0" + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== + dependencies: + is-what "^4.1.8" + csstype@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" @@ -589,34 +618,34 @@ entities@^4.5.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== -esbuild@^0.20.1: - version "0.20.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1" - integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== +esbuild@^0.21.3: + version "0.21.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d" + integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw== optionalDependencies: - "@esbuild/aix-ppc64" "0.20.2" - "@esbuild/android-arm" "0.20.2" - "@esbuild/android-arm64" "0.20.2" - "@esbuild/android-x64" "0.20.2" - "@esbuild/darwin-arm64" "0.20.2" - "@esbuild/darwin-x64" "0.20.2" - "@esbuild/freebsd-arm64" "0.20.2" - "@esbuild/freebsd-x64" "0.20.2" - "@esbuild/linux-arm" "0.20.2" - "@esbuild/linux-arm64" "0.20.2" - "@esbuild/linux-ia32" "0.20.2" - "@esbuild/linux-loong64" "0.20.2" - "@esbuild/linux-mips64el" "0.20.2" - "@esbuild/linux-ppc64" "0.20.2" - "@esbuild/linux-riscv64" "0.20.2" - "@esbuild/linux-s390x" "0.20.2" - "@esbuild/linux-x64" "0.20.2" - "@esbuild/netbsd-x64" "0.20.2" - "@esbuild/openbsd-x64" "0.20.2" - "@esbuild/sunos-x64" "0.20.2" - "@esbuild/win32-arm64" "0.20.2" - "@esbuild/win32-ia32" "0.20.2" - "@esbuild/win32-x64" "0.20.2" + "@esbuild/aix-ppc64" "0.21.5" + "@esbuild/android-arm" "0.21.5" + "@esbuild/android-arm64" "0.21.5" + "@esbuild/android-x64" "0.21.5" + "@esbuild/darwin-arm64" "0.21.5" + "@esbuild/darwin-x64" "0.21.5" + "@esbuild/freebsd-arm64" "0.21.5" + "@esbuild/freebsd-x64" "0.21.5" + "@esbuild/linux-arm" "0.21.5" + "@esbuild/linux-arm64" "0.21.5" + "@esbuild/linux-ia32" "0.21.5" + "@esbuild/linux-loong64" "0.21.5" + "@esbuild/linux-mips64el" "0.21.5" + "@esbuild/linux-ppc64" "0.21.5" + "@esbuild/linux-riscv64" "0.21.5" + "@esbuild/linux-s390x" "0.21.5" + "@esbuild/linux-x64" "0.21.5" + "@esbuild/netbsd-x64" "0.21.5" + "@esbuild/openbsd-x64" "0.21.5" + "@esbuild/sunos-x64" "0.21.5" + "@esbuild/win32-arm64" "0.21.5" + "@esbuild/win32-ia32" "0.21.5" + "@esbuild/win32-x64" "0.21.5" estree-walker@^2.0.2: version "2.0.2" @@ -640,6 +669,11 @@ hookable@^5.5.3: resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== +is-what@^4.1.8: + version "4.1.16" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-4.1.16.tgz#1ad860a19da8b4895ad5495da3182ce2acdd7a6f" + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== + magic-string@^0.30.10: version "0.30.10" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" @@ -672,7 +706,7 @@ perfect-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -picocolors@^1.0.0: +picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== @@ -686,15 +720,24 @@ postcss@^8.4.38: picocolors "^1.0.0" source-map-js "^1.2.0" +postcss@^8.4.39: + version "8.4.39" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" + integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.1" + source-map-js "^1.2.0" + preact@^10.0.0: version "10.22.0" resolved "https://registry.yarnpkg.com/preact/-/preact-10.22.0.tgz#a50f38006ae438d255e2631cbdaf7488e6dd4e16" integrity sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw== -rfdc@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rollup@^4.13.0: version "4.18.0" @@ -721,12 +764,13 @@ rollup@^4.13.0: "@rollup/rollup-win32-x64-msvc" "4.18.0" fsevents "~2.3.2" -shiki@1.6.2, shiki@^1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.6.2.tgz#082db563387a94c10e4002e0c62c61bc78e9cae7" - integrity sha512-X3hSm5GzzBd/BmPmGfkueOUADLyBoZo1ojYQXhd+NU2VJn458yt4duaS0rVzC+WtqftSV7mTVvDw+OB9AHi3Eg== +shiki@1.10.3, shiki@^1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.10.3.tgz#2276fb21a07043b28c5b16001e6a04fef99dbb8f" + integrity sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ== dependencies: - "@shikijs/core" "1.6.2" + "@shikijs/core" "1.10.3" + "@types/hast" "^3.0.4" source-map-js@^1.2.0: version "1.2.0" @@ -738,56 +782,63 @@ speakingurl@^14.0.1: resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== +superjson@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.1.tgz#9377a7fa80fedb10c851c9dbffd942d4bcf79733" + integrity sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA== + dependencies: + copy-anything "^3.0.2" + tabbable@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== -vite@^5.2.12: - version "5.2.12" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.12.tgz#3536c93c58ba18edea4915a2ac573e6537409d97" - integrity sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA== +vite@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.3.tgz#5265b1f0a825b3b6564c2d07524777c83e3c04c2" + integrity sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A== dependencies: - esbuild "^0.20.1" - postcss "^8.4.38" + esbuild "^0.21.3" + postcss "^8.4.39" rollup "^4.13.0" optionalDependencies: fsevents "~2.3.3" -vitepress@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.2.3.tgz#a507d2f5e86c1fbcdb5ec2212f1db4828504df34" - integrity sha512-GvEsrEeNLiDE1+fuwDAYJCYLNZDAna+EtnXlPajhv/MYeTjbNK6Bvyg6NoTdO1sbwuQJ0vuJR99bOlH53bo6lg== +vitepress@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.3.0.tgz#58159790059507987cbc18fd8ebd119bb4fa6fd0" + integrity sha512-Cbm2AgXcCrukUeV+/24g1ZDSvw8blamh/1uf2pz3ApFpaYb9T7mo4imWDZ6APn2uPo4bJ6sgOzvsJ4aH+oLbBA== dependencies: "@docsearch/css" "^3.6.0" "@docsearch/js" "^3.6.0" - "@shikijs/core" "^1.6.2" - "@shikijs/transformers" "^1.6.2" + "@shikijs/core" "^1.10.3" + "@shikijs/transformers" "^1.10.3" "@types/markdown-it" "^14.1.1" "@vitejs/plugin-vue" "^5.0.5" - "@vue/devtools-api" "^7.2.1" - "@vue/shared" "^3.4.27" - "@vueuse/core" "^10.10.0" - "@vueuse/integrations" "^10.10.0" + "@vue/devtools-api" "^7.3.5" + "@vue/shared" "^3.4.31" + "@vueuse/core" "^10.11.0" + "@vueuse/integrations" "^10.11.0" focus-trap "^7.5.4" mark.js "8.11.1" minisearch "^6.3.0" - shiki "^1.6.2" - vite "^5.2.12" - vue "^3.4.27" - -vue-demi@>=0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2" - integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA== - -vue@^3.4.27: - version "3.4.27" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.27.tgz#40b7d929d3e53f427f7f5945386234d2854cc2a1" - integrity sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA== - dependencies: - "@vue/compiler-dom" "3.4.27" - "@vue/compiler-sfc" "3.4.27" - "@vue/runtime-dom" "3.4.27" - "@vue/server-renderer" "3.4.27" - "@vue/shared" "3.4.27" + shiki "^1.10.3" + vite "^5.3.3" + vue "^3.4.31" + +vue-demi@>=0.14.8: + version "0.14.8" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.8.tgz#00335e9317b45e4a68d3528aaf58e0cec3d5640a" + integrity sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q== + +vue@^3.4.27, vue@^3.4.31: + version "3.4.31" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.31.tgz#83a3c4dab8302b0e974b0d4b92a2f6a6378ae797" + integrity sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ== + dependencies: + "@vue/compiler-dom" "3.4.31" + "@vue/compiler-sfc" "3.4.31" + "@vue/runtime-dom" "3.4.31" + "@vue/server-renderer" "3.4.31" + "@vue/shared" "3.4.31" From 0106628da1f54d41d3fc0afab0edb55bdea149d4 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Mon, 8 Jul 2024 22:49:18 +0800 Subject: [PATCH 028/113] Upgrade gradle (#1866) --- manager/app/build.gradle.kts | 3 +++ manager/app/src/main/cpp/CMakeLists.txt | 3 +++ .../java/me/weishu/kernelsu/ui/screen/Home.kt | 4 ++-- .../ui/viewmodel/SuperUserViewModel.kt | 6 +++--- manager/build.gradle.kts | 20 +++++++------------ manager/gradle/libs.versions.toml | 4 +++- .../gradle/wrapper/gradle-wrapper.properties | 2 +- manager/gradlew | 3 ++- 8 files changed, 24 insertions(+), 21 deletions(-) diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index 1c85d8af7e8a..7cfb9959f742 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -34,6 +34,7 @@ android { aidl = true buildConfig = true compose = true + prefab = true } kotlinOptions { @@ -113,4 +114,6 @@ dependencies { implementation(libs.markdown) implementation(libs.androidx.webkit) + + implementation(libs.lsposed.cxx) } \ No newline at end of file diff --git a/manager/app/src/main/cpp/CMakeLists.txt b/manager/app/src/main/cpp/CMakeLists.txt index cca26d5e4aef..4556ce01d5ec 100644 --- a/manager/app/src/main/cpp/CMakeLists.txt +++ b/manager/app/src/main/cpp/CMakeLists.txt @@ -7,6 +7,9 @@ cmake_minimum_required(VERSION 3.18.1) project("kernelsu") +find_package(cxx REQUIRED CONFIG) +link_libraries(cxx::cxx) + add_library(kernelsu SHARED jni.cc diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt index 6ecf53a8974e..b1e998888ca6 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Home.kt @@ -416,8 +416,8 @@ private fun InfoCard() { } fun getManagerVersion(context: Context): Pair { - val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0) - return Pair(packageInfo.versionName, packageInfo.versionCode) + val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0)!! + return Pair(packageInfo.versionName!!, packageInfo.versionCode) } @Preview diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt index 37e05aa82aff..ecb5024aaed0 100644 --- a/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt +++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/viewmodel/SuperUserViewModel.kt @@ -45,7 +45,7 @@ class SuperUserViewModel : ViewModel() { val packageName: String get() = packageInfo.packageName val uid: Int - get() = packageInfo.applicationInfo.uid + get() = packageInfo.applicationInfo!!.uid val allowSu: Boolean get() = profile != null && profile.allowSu @@ -90,7 +90,7 @@ class SuperUserViewModel : ViewModel() { .toPinyinString(it.label).contains(search, true) }.filter { it.uid == 2000 // Always show shell - || showSystemApps || it.packageInfo.applicationInfo.flags.and(ApplicationInfo.FLAG_SYSTEM) == 0 + || showSystemApps || it.packageInfo.applicationInfo!!.flags.and(ApplicationInfo.FLAG_SYSTEM) == 0 } } @@ -146,7 +146,7 @@ class SuperUserViewModel : ViewModel() { apps = packages.map { val appInfo = it.applicationInfo - val uid = appInfo.uid + val uid = appInfo!!.uid val profile = Natives.getAppProfile(it.packageName, uid) AppInfo( label = appInfo.loadLabel(pm).toString(), diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index 0e503df3b636..ade4608c0152 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -15,29 +15,23 @@ cmaker { default { arguments.addAll( arrayOf( - "-DANDROID_STL=c++_static", + "-DANDROID_STL=none", ) ) - val flags = arrayOf( - "-Wno-gnu-string-literal-operator-template", - "-Wno-c++2b-extensions", - ) - cFlags.addAll(flags) - cppFlags.addAll(flags) - abiFilters("arm64-v8a", "x86_64") + abiFilters("arm64-v8a", "x86_64", "riscv64") } buildTypes { if (it.name == "release") { - arguments += "-DDEBUG_SYMBOLS_PATH=${buildDir.absolutePath}/symbols" + arguments += "-DDEBUG_SYMBOLS_PATH=${layout.buildDirectory.asFile.get().absolutePath}/symbols" } } } val androidMinSdkVersion = 26 -val androidTargetSdkVersion = 34 -val androidCompileSdkVersion = 34 -val androidBuildToolsVersion = "34.0.0" -val androidCompileNdkVersion = "26.3.11579264" +val androidTargetSdkVersion = 35 +val androidCompileSdkVersion = 35 +val androidBuildToolsVersion = "35.0.0" +val androidCompileNdkVersion = "27.0.11718014-beta1" val androidSourceCompatibility = JavaVersion.VERSION_21 val androidTargetCompatibility = JavaVersion.VERSION_21 val managerVersionCode by extra(getVersionCode()) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 3a1ea10e0e79..8b86099ffb54 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -75,4 +75,6 @@ sheet-compose-dialogs-core = { group = "com.maxkeppeler.sheets-compose-dialogs", sheet-compose-dialogs-list = { group = "com.maxkeppeler.sheets-compose-dialogs", name = "list", version.ref = "sheets-compose-dialogs" } sheet-compose-dialogs-input = { group = "com.maxkeppeler.sheets-compose-dialogs", name = "input", version.ref = "sheets-compose-dialogs" } -markdown = { group = "io.noties.markwon", name = "core", version.ref = "markdown" } \ No newline at end of file +markdown = { group = "io.noties.markwon", name = "core", version.ref = "markdown" } + +lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version = "27.0.11718014-beta1" } \ No newline at end of file diff --git a/manager/gradle/wrapper/gradle-wrapper.properties b/manager/gradle/wrapper/gradle-wrapper.properties index b82aa23a4f05..a4413138c96c 100644 --- a/manager/gradle/wrapper/gradle-wrapper.properties +++ b/manager/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/manager/gradlew b/manager/gradlew index 4b6a9cfc46fa..b740cf13397a 100755 --- a/manager/gradlew +++ b/manager/gradlew @@ -1,4 +1,5 @@ #!/bin/sh + # # Copyright © 2015-2021 the original authors. # @@ -54,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. From 34faba11a3d32866e829c6c4943d1e0214c4f431 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Mon, 8 Jul 2024 23:48:34 +0800 Subject: [PATCH 029/113] Setup Android SDK (#1867) --- .github/workflows/build-manager.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index b5013641c661..e5f0c1b4c3c1 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -89,6 +89,9 @@ jobs: with: gradle-home-cache-cleanup: true + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + - name: Download arm64 ksud uses: actions/download-artifact@v4 with: @@ -157,4 +160,4 @@ jobs: APK=$(find ./app/build/outputs/apk/release -name "*.apk") pip3 install telethon python3 $GITHUB_WORKSPACE/scripts/ksubot.py $APK - fi \ No newline at end of file + fi From ad2d51ad5f733363f4ee7bc0749281057d094970 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 22:08:14 +0800 Subject: [PATCH 030/113] build(deps): bump clap from 4.5.8 to 4.5.9 in /userspace/ksud (#1868) --- userspace/ksud/Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 19f2118fbb01..c6f25bac4b21 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -292,9 +292,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.8" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" dependencies = [ "clap_builder", "clap_derive", @@ -302,9 +302,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.8" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" dependencies = [ "anstream", "anstyle", From b056eacc5ed34537db74d0d16c40f2ade3c6b585 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 22:09:34 +0800 Subject: [PATCH 031/113] build(deps): bump rust-embed from 8.4.0 to 8.5.0 in /userspace/ksud (#1869) --- userspace/ksud/Cargo.lock | 133 ++++++++++++++++++++++++-------------- 1 file changed, 83 insertions(+), 50 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index c6f25bac4b21..26fab1c2db69 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -34,6 +34,18 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -43,6 +55,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "android-properties" version = "0.2.2" @@ -153,7 +171,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -321,7 +339,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -368,6 +386,15 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.12" @@ -467,6 +494,12 @@ dependencies = [ "typenum", ] +[[package]] +name = "dary_heap" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" + [[package]] name = "deflate64" version = "0.1.8" @@ -490,7 +523,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -501,7 +534,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -523,7 +556,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -666,6 +699,10 @@ name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] [[package]] name = "heck" @@ -744,36 +781,25 @@ dependencies = [ [[package]] name = "include-flate" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e11569346406931d20276cc460215ee2826e7cad43aa986999cb244dd7adb0" +checksum = "df49c16750695486c1f34de05da5b7438096156466e7f76c38fcdf285cf0113e" dependencies = [ - "include-flate-codegen-exports", + "include-flate-codegen", "lazy_static", "libflate", ] [[package]] name = "include-flate-codegen" -version = "0.1.4" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a7d6e1419fa3129eb0802b4c99603c0d425c79fb5d76191d5a20d0ab0d664e8" +checksum = "8c5b246c6261be723b85c61ecf87804e8ea4a35cb68be0ff282ed84b95ffe7d7" dependencies = [ "libflate", - "proc-macro-hack", "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "include-flate-codegen-exports" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75657043ffe3d8280f1cb8aef0f505532b392ed7758e0baeac22edadcee31a03" -dependencies = [ - "include-flate-codegen", - "proc-macro-hack", + "syn", ] [[package]] @@ -908,21 +934,25 @@ checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libflate" -version = "1.4.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18" +checksum = "45d9dfdc14ea4ef0900c1cddbc8dcd553fbaacd8a4a282cf4018ae9dd04fb21e" dependencies = [ "adler32", + "core2", "crc32fast", + "dary_heap", "libflate_lz77", ] [[package]] name = "libflate_lz77" -version = "1.2.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf" +checksum = "e6e0d73b369f386f1c44abd9c570d5318f55ccde816ff4b562fa452e5182863d" dependencies = [ + "core2", + "hashbrown", "rle-decode-fast", ] @@ -1087,12 +1117,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - [[package]] name = "proc-macro2" version = "1.0.83" @@ -1279,9 +1303,9 @@ checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" [[package]] name = "rust-embed" -version = "8.4.0" +version = "8.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19549741604902eb99a7ed0ee177a0663ee1eda51a29f71401f166e47e77806a" +checksum = "fa66af4a4fdd5e7ebc276f115e895611a34739a9c1c01028383d612d550953c0" dependencies = [ "include-flate", "rust-embed-impl", @@ -1298,7 +1322,7 @@ dependencies = [ "proc-macro2", "quote", "rust-embed-utils", - "syn 2.0.65", + "syn", "walkdir", ] @@ -1377,7 +1401,7 @@ checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -1444,17 +1468,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.65" @@ -1493,7 +1506,7 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", ] [[package]] @@ -1599,7 +1612,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.65", + "syn", "wasm-bindgen-shared", ] @@ -1621,7 +1634,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.65", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1763,6 +1776,26 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zip" version = "0.6.6" From 4a1ebe490ec59fb14a0469f4dc1f38afdf884aeb Mon Sep 17 00:00:00 2001 From: Wang Han <1701210638@pku.edu.cn> Date: Wed, 10 Jul 2024 11:38:12 +0800 Subject: [PATCH 032/113] Allow skipping commented policy (#1870) --- userspace/ksud/src/sepolicy.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/userspace/ksud/src/sepolicy.rs b/userspace/ksud/src/sepolicy.rs index 581c416a8185..7e623d15aaf4 100644 --- a/userspace/ksud/src/sepolicy.rs +++ b/userspace/ksud/src/sepolicy.rs @@ -352,10 +352,11 @@ where let mut statements = vec![]; for line in input.split(['\n', ';']) { - if line.trim().is_empty() { + let trimmed_line = line.trim(); + if trimmed_line.is_empty() || trimmed_line.starts_with('#') { continue; } - if let Ok((_, statement)) = PolicyStatement::parse(line.trim()) { + if let Ok((_, statement)) = PolicyStatement::parse(trimmed_line) { statements.push(statement); } else if strict { bail!("Failed to parse policy statement: {}", line) From 6765c1d62c4d2fd14949661f334d0bc48d09e156 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:06:47 +0800 Subject: [PATCH 033/113] build(deps): bump agp from 8.5.0 to 8.5.1 in /manager (#1873) --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 8b86099ffb54..2bbf3f4fb0d2 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.5.0" +agp = "8.5.1" kotlin = "2.0.0" ksp = "2.0.0-1.0.22" compose-bom = "2024.06.00" From 9d22dde6d7f413ef05308154b03b42df8e115e93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 01:07:22 +0800 Subject: [PATCH 034/113] build(deps): bump com.google.devtools.ksp from 2.0.0-1.0.22 to 2.0.0-1.0.23 in /manager (#1872) --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 2bbf3f4fb0d2..c1b9e7797489 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] agp = "8.5.1" kotlin = "2.0.0" -ksp = "2.0.0-1.0.22" +ksp = "2.0.0-1.0.23" compose-bom = "2024.06.00" lifecycle = "2.8.3" accompanist = "0.34.0" From eab91d9d2b2c022f8f429fc2ca9fc344942d2d69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 23:20:13 +0800 Subject: [PATCH 035/113] build(deps-dev): bump vitepress from 1.3.0 to 1.3.1 in /website (#1879) --- website/package.json | 2 +- website/yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/website/package.json b/website/package.json index a46e1c6def5f..b35f4f9500de 100644 --- a/website/package.json +++ b/website/package.json @@ -7,7 +7,7 @@ "author": "weishu", "license": "MIT", "devDependencies": { - "vitepress": "^1.3.0", + "vitepress": "^1.3.1", "vue": "^3.4.27" }, "scripts": { diff --git a/website/yarn.lock b/website/yarn.lock index acce1e0a47d4..111a7bd5ef86 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -686,10 +686,10 @@ mark.js@8.11.1: resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== -minisearch@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-6.3.0.tgz#985a2f1ca3c73c2d65af94f0616bfe57164b0b6b" - integrity sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ== +minisearch@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.0.0.tgz#726410c5ac4400b67cde8113efbd69b035bff7f5" + integrity sha512-0OIJ3hUE+YBJNruDCqbTMFmk/IoB1CpZzuGfl11khFIel66ew9UoLF/+gfq3bdyrneqr3P7BTjFZApUbmk+9Dg== mitt@^3.0.1: version "3.0.1" @@ -805,10 +805,10 @@ vite@^5.3.3: optionalDependencies: fsevents "~2.3.3" -vitepress@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.3.0.tgz#58159790059507987cbc18fd8ebd119bb4fa6fd0" - integrity sha512-Cbm2AgXcCrukUeV+/24g1ZDSvw8blamh/1uf2pz3ApFpaYb9T7mo4imWDZ6APn2uPo4bJ6sgOzvsJ4aH+oLbBA== +vitepress@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.3.1.tgz#e0b674d5a9975d10e4af8dc3da19d95976b8f077" + integrity sha512-soZDpg2rRVJNIM/IYMNDPPr+zTHDA5RbLDHAxacRu+Q9iZ2GwSR0QSUlLs+aEZTkG0SOX1dc8RmUYwyuxK8dfQ== dependencies: "@docsearch/css" "^3.6.0" "@docsearch/js" "^3.6.0" @@ -822,7 +822,7 @@ vitepress@^1.3.0: "@vueuse/integrations" "^10.11.0" focus-trap "^7.5.4" mark.js "8.11.1" - minisearch "^6.3.0" + minisearch "^7.0.0" shiki "^1.10.3" vite "^5.3.3" vue "^3.4.31" From ea112fc0dc8e93937daf68fe7a20ec644cf7f323 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Wed, 17 Jul 2024 23:32:10 +0800 Subject: [PATCH 036/113] Upgrade deps (#1886) --- manager/build.gradle.kts | 2 +- manager/gradle/libs.versions.toml | 2 +- manager/gradle/wrapper/gradle-wrapper.jar | Bin 43453 -> 43504 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- manager/gradlew | 5 ++++- manager/gradlew.bat | 2 ++ 6 files changed, 9 insertions(+), 4 deletions(-) diff --git a/manager/build.gradle.kts b/manager/build.gradle.kts index ade4608c0152..acfe9d43bd36 100644 --- a/manager/build.gradle.kts +++ b/manager/build.gradle.kts @@ -31,7 +31,7 @@ val androidMinSdkVersion = 26 val androidTargetSdkVersion = 35 val androidCompileSdkVersion = 35 val androidBuildToolsVersion = "35.0.0" -val androidCompileNdkVersion = "27.0.11718014-beta1" +val androidCompileNdkVersion = "27.0.12077973" val androidSourceCompatibility = JavaVersion.VERSION_21 val androidTargetCompatibility = JavaVersion.VERSION_21 val managerVersionCode by extra(getVersionCode()) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index c1b9e7797489..ea26ac8634c7 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -15,7 +15,7 @@ markdown = "4.6.2" webkit = "1.11.0" appiconloader-coil = "1.5.0" parcelablelist = "2.0.1" -libsu = "5.2.2" +libsu = "6.0.0" apksign = "1.4" cmaker = "1.2" diff --git a/manager/gradle/wrapper/gradle-wrapper.jar b/manager/gradle/wrapper/gradle-wrapper.jar index e6441136f3d4ba8a0da8d277868979cfbc8ad796..2c3521197d7c4586c843d1d3e9090525f1898cde 100644 GIT binary patch delta 8703 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 Ojj7^59?Sdh$^Qpp*~F>< delta 8662 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 diff --git a/manager/gradle/wrapper/gradle-wrapper.properties b/manager/gradle/wrapper/gradle-wrapper.properties index a4413138c96c..09523c0e5490 100644 --- a/manager/gradle/wrapper/gradle-wrapper.properties +++ b/manager/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/manager/gradlew b/manager/gradlew index b740cf13397a..f5feea6d6b11 100755 --- a/manager/gradlew +++ b/manager/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/manager/gradlew.bat b/manager/gradlew.bat index 25da30dbdeee..9d21a21834d5 100644 --- a/manager/gradlew.bat +++ b/manager/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## From c01b4629b10a17291ef5f9249d8a5382d183b186 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 23:32:44 +0800 Subject: [PATCH 037/113] build(deps): bump org.lsposed.libcxx:libcxx from 27.0.11718014-beta1 to 27.0.12077973 in /manager (#1885) --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index ea26ac8634c7..f8befe083fff 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -77,4 +77,4 @@ sheet-compose-dialogs-input = { group = "com.maxkeppeler.sheets-compose-dialogs" markdown = { group = "io.noties.markwon", name = "core", version.ref = "markdown" } -lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version = "27.0.11718014-beta1" } \ No newline at end of file +lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version = "27.0.12077973" } \ No newline at end of file From 685ae46bc092b354f747bda8ed540a26ac435473 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 22:17:04 +0800 Subject: [PATCH 038/113] build(deps): bump io.coil-kt:coil-compose from 2.6.0 to 2.7.0 in /manager (#1888) --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index f8befe083fff..bdbf48d1fde1 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -8,7 +8,7 @@ accompanist = "0.34.0" navigation = "2.7.7" activity-compose = "1.9.0" kotlinx-coroutines = "1.8.1" -coil-compose = "2.6.0" +coil-compose = "2.7.0" compose-destination = "1.10.2" sheets-compose-dialogs = "1.3.0" markdown = "4.6.2" From 35d025cc183204956b74661e93b4e2e180df7f89 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 19 Jul 2024 22:50:50 +0800 Subject: [PATCH 039/113] Upgrade zip (#1891) --- userspace/ksud/Cargo.lock | 11 ++++++----- userspace/ksud/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 26fab1c2db69..095773721831 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -502,9 +502,9 @@ checksum = "7762d17f1241643615821a8455a0b2c3e803784b058693d990b11f2dce25a0ca" [[package]] name = "deflate64" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ace6c86376be0b6cdcf3fb41882e81d94b31587573d1cfa9d01cd06bba210d" +checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b" [[package]] name = "deranged" @@ -916,7 +916,7 @@ dependencies = [ "sha256", "tempdir", "which", - "zip 2.1.3", + "zip 2.1.4", "zip-extensions", ] @@ -1818,8 +1818,9 @@ dependencies = [ [[package]] name = "zip" -version = "2.1.3" -source = "git+https://github.com/zip-rs/zip2.git#d45bdccc6afbf5121b3a4668b67dfebbaa328cd8" +version = "2.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e29ab4097989787b2029a5981c41b7bfb427b5a601e23f455daacb4d0360a9e9" dependencies = [ "arbitrary", "bzip2", diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index 289805b3d130..12a32a5a4c44 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -10,7 +10,7 @@ rust-version = "1.77.2" anyhow = "1" clap = { version = "4", features = ["derive"] } const_format = "0.2" -zip = { git = "https://github.com/zip-rs/zip2.git", features = [ +zip = { version = "2.1.4", features = [ "deflate", "deflate64", "bzip2", From d7364cfc8e967d03ef5462a36523711dcba10b30 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 19 Jul 2024 23:46:53 +0800 Subject: [PATCH 040/113] [skip ci] Group dependabot dependencies (#1892) --- .github/dependabot.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 018b1c009ce3..95e3839ef7ad 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,18 +4,35 @@ updates: directory: / schedule: interval: daily - + groups: + actions: + patterns: + - "*" - package-ecosystem: cargo directory: userspace/ksud schedule: interval: daily - + allow: + - dependency-type: "all" + groups: + crates: + patterns: + - "*" - package-ecosystem: gradle directory: manager schedule: interval: daily - + groups: + maven: + patterns: + - "*" - package-ecosystem: npm directory: website schedule: interval: daily + allow: + - dependency-type: "all" + groups: + npm: + patterns: + - "*" From 35f97d85adc9ac5c1d779d9c8841cf780347b275 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 23:54:31 +0800 Subject: [PATCH 041/113] build(deps): bump the crates group in /userspace/ksud with 40 updates (#1894) --- userspace/ksud/Cargo.lock | 240 +++++++++++++++++--------------------- userspace/ksud/Cargo.toml | 2 +- 2 files changed, 105 insertions(+), 137 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 095773721831..2be8f2cb0d5a 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" dependencies = [ "windows-sys", ] @@ -165,9 +165,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", @@ -182,9 +182,9 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -195,12 +195,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - [[package]] name = "bitflags" version = "1.3.2" @@ -236,9 +230,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" [[package]] name = "bzip2" @@ -263,13 +257,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.98" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" dependencies = [ "jobserver", "libc", - "once_cell", ] [[package]] @@ -344,9 +337,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" [[package]] name = "colorchoice" @@ -376,9 +369,9 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "core-foundation-sys" @@ -550,9 +543,9 @@ dependencies = [ [[package]] name = "displaydoc" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", @@ -561,9 +554,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "encoding_rs" @@ -690,9 +683,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "hashbrown" @@ -916,15 +909,15 @@ dependencies = [ "sha256", "tempdir", "which", - "zip 2.1.4", + "zip", "zip-extensions", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" @@ -1001,9 +994,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap" @@ -1023,9 +1016,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] @@ -1057,9 +1050,9 @@ dependencies = [ [[package]] name = "object" -version = "0.32.2" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] @@ -1070,27 +1063,14 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "pbkdf2" -version = "0.11.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest", "hmac", - "password-hash", - "sha2", ] [[package]] @@ -1119,9 +1099,9 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.83" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -1262,9 +1242,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" dependencies = [ "aho-corasick", "memchr", @@ -1273,9 +1253,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" [[package]] name = "remove_dir_all" @@ -1315,9 +1295,9 @@ dependencies = [ [[package]] name = "rust-embed-impl" -version = "8.4.0" +version = "8.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9f96e283ec64401f30d3df8ee2aaeb2561f34c824381efa24a35f79bf40ee4" +checksum = "6125dbc8867951125eec87294137f4e9c2c96566e61bf72c45095a7c77761478" dependencies = [ "proc-macro2", "quote", @@ -1328,9 +1308,9 @@ dependencies = [ [[package]] name = "rust-embed-utils" -version = "8.4.0" +version = "8.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38c74a686185620830701348de757fd36bef4aa9680fd23c49fc539ddcc1af32" +checksum = "2e5347777e9aacb56039b0e1f28785929a8a3b709e87482e7442c72e7c12529d" dependencies = [ "sha2", "walkdir", @@ -1464,15 +1444,15 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.65" +version = "2.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2863d96a84c6439701d7a38f9de935ec562c8832cc55d1dde0f513b52fad106" +checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" dependencies = [ "proc-macro2", "quote", @@ -1491,18 +1471,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", @@ -1530,9 +1510,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" dependencies = [ "backtrace", "bytes", @@ -1553,9 +1533,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-width" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" @@ -1565,9 +1545,9 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "utf8parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "version_check" @@ -1708,9 +1688,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", @@ -1724,51 +1704,51 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winsafe" @@ -1797,23 +1777,23 @@ dependencies = [ ] [[package]] -name = "zip" -version = "0.6.6" +name = "zeroize" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac", - "pbkdf2", - "sha1", - "time", - "zstd 0.11.2+zstd.1.5.2", + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1822,29 +1802,36 @@ version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e29ab4097989787b2029a5981c41b7bfb427b5a601e23f455daacb4d0360a9e9" dependencies = [ + "aes", "arbitrary", "bzip2", + "constant_time_eq", "crc32fast", "crossbeam-utils", "deflate64", "displaydoc", "flate2", + "hmac", "indexmap", "lzma-rs", "memchr", + "pbkdf2", + "rand 0.8.5", + "sha1", "thiserror", "time", + "zeroize", "zopfli", - "zstd 0.13.1", + "zstd", ] [[package]] name = "zip-extensions" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c865b4f0f43f22d1bd7ba05479b5c003e0e98e9090c3a2e4280b5eace59f62df" +checksum = "eb0a99499b3497d765525c5d05e3ade9ca4a731c184365c19472c3fd6ba86341" dependencies = [ - "zip 0.6.6", + "zip", ] [[package]] @@ -1861,32 +1848,13 @@ dependencies = [ "simd-adler32", ] -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] - [[package]] name = "zstd" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" dependencies = [ - "zstd-safe 7.1.0", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", + "zstd-safe", ] [[package]] @@ -1900,9 +1868,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.10+zstd.1.5.6" +version = "2.0.12+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" +checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" dependencies = [ "cc", "pkg-config", diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index 12a32a5a4c44..40f227ef6169 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -19,7 +19,7 @@ zip = { version = "2.1.4", features = [ "lzma", "xz", ], default-features = false } -zip-extensions = "0.7" +zip-extensions = "0.8" java-properties = "2" log = "0.4" env_logger = { version = "0.11", default-features = false } From 88ea96d4cb9d8a8c345542efac165a7786eab6b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 23:55:03 +0800 Subject: [PATCH 042/113] build(deps): bump the npm group in /website with 13 updates (#1893) --- website/yarn.lock | 570 +++++++++++++++++++++++----------------------- 1 file changed, 283 insertions(+), 287 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 111a7bd5ef86..9d627829fb7d 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -29,153 +29,158 @@ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== -"@algolia/cache-browser-local-storage@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz#0cc26b96085e1115dac5fcb9d826651ba57faabc" - integrity sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg== - dependencies: - "@algolia/cache-common" "4.23.3" - -"@algolia/cache-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.23.3.tgz#3bec79092d512a96c9bfbdeec7cff4ad36367166" - integrity sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A== - -"@algolia/cache-in-memory@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz#3945f87cd21ffa2bec23890c85305b6b11192423" - integrity sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg== - dependencies: - "@algolia/cache-common" "4.23.3" - -"@algolia/client-account@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.23.3.tgz#8751bbf636e6741c95e7c778488dee3ee430ac6f" - integrity sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA== - dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/transporter" "4.23.3" - -"@algolia/client-analytics@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.23.3.tgz#f88710885278fe6fb6964384af59004a5a6f161d" - integrity sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA== - dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" - -"@algolia/client-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.23.3.tgz#891116aa0db75055a7ecc107649f7f0965774704" - integrity sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw== - dependencies: - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" - -"@algolia/client-personalization@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.23.3.tgz#35fa8e5699b0295fbc400a8eb211dc711e5909db" - integrity sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g== - dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" - -"@algolia/client-search@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.23.3.tgz#a3486e6af13a231ec4ab43a915a1f318787b937f" - integrity sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw== - dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" - -"@algolia/logger-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.23.3.tgz#35c6d833cbf41e853a4f36ba37c6e5864920bfe9" - integrity sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g== - -"@algolia/logger-console@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.23.3.tgz#30f916781826c4db5f51fcd9a8a264a06e136985" - integrity sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A== - dependencies: - "@algolia/logger-common" "4.23.3" - -"@algolia/recommend@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.23.3.tgz#53d4f194d22d9c72dc05f3f7514c5878f87c5890" - integrity sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w== - dependencies: - "@algolia/cache-browser-local-storage" "4.23.3" - "@algolia/cache-common" "4.23.3" - "@algolia/cache-in-memory" "4.23.3" - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/logger-console" "4.23.3" - "@algolia/requester-browser-xhr" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/requester-node-http" "4.23.3" - "@algolia/transporter" "4.23.3" - -"@algolia/requester-browser-xhr@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz#9e47e76f60d540acc8b27b4ebc7a80d1b41938b9" - integrity sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw== - dependencies: - "@algolia/requester-common" "4.23.3" - -"@algolia/requester-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.23.3.tgz#7dbae896e41adfaaf1d1fa5f317f83a99afb04b3" - integrity sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw== - -"@algolia/requester-node-http@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz#c9f94a5cb96a15f48cea338ab6ef16bbd0ff989f" - integrity sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA== - dependencies: - "@algolia/requester-common" "4.23.3" - -"@algolia/transporter@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.23.3.tgz#545b045b67db3850ddf0bbecbc6c84ff1f3398b7" - integrity sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ== - dependencies: - "@algolia/cache-common" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/requester-common" "4.23.3" +"@algolia/cache-browser-local-storage@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz#97bc6d067a9fd932b9c922faa6b7fd6e546e1348" + integrity sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/cache-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.24.0.tgz#81a8d3a82ceb75302abb9b150a52eba9960c9744" + integrity sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g== + +"@algolia/cache-in-memory@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz#ffcf8872f3a10cb85c4f4641bdffd307933a6e44" + integrity sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w== + dependencies: + "@algolia/cache-common" "4.24.0" + +"@algolia/client-account@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.24.0.tgz#eba7a921d828e7c8c40a32d4add21206c7fe12f1" + integrity sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-analytics@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.24.0.tgz#9d2576c46a9093a14e668833c505ea697a1a3e30" + integrity sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.24.0.tgz#77c46eee42b9444a1d1c1583a83f7df4398a649d" + integrity sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA== + dependencies: + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-personalization@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.24.0.tgz#8b47789fb1cb0f8efbea0f79295b7c5a3850f6ae" + integrity sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/client-search@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.24.0.tgz#75e6c02d33ef3e0f34afd9962c085b856fc4a55f" + integrity sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA== + dependencies: + "@algolia/client-common" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/logger-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.24.0.tgz#28d439976019ec0a46ba7a1a739ef493d4ef8123" + integrity sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA== + +"@algolia/logger-console@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.24.0.tgz#c6ff486036cd90b81d07a95aaba04461da7e1c65" + integrity sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg== + dependencies: + "@algolia/logger-common" "4.24.0" + +"@algolia/recommend@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.24.0.tgz#8a3f78aea471ee0a4836b78fd2aad4e9abcaaf34" + integrity sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" + +"@algolia/requester-browser-xhr@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz#313c5edab4ed73a052e75803855833b62dd19c16" + integrity sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/requester-common@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.24.0.tgz#1c60c198031f48fcdb9e34c4057a3ea987b9a436" + integrity sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA== + +"@algolia/requester-node-http@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz#4461593714031d02aa7da221c49df675212f482f" + integrity sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw== + dependencies: + "@algolia/requester-common" "4.24.0" + +"@algolia/transporter@4.24.0": + version "4.24.0" + resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.24.0.tgz#226bb1f8af62430374c1972b2e5c8580ab275102" + integrity sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA== + dependencies: + "@algolia/cache-common" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/requester-common" "4.24.0" "@babel/parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" - integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" + integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== -"@docsearch/css@3.6.0", "@docsearch/css@^3.6.0": +"@docsearch/css@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.1.tgz#f0a728ecb486c81f2d282650fc1820c914913408" + integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg== + +"@docsearch/css@^3.6.0": version "3.6.0" resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.0.tgz#0e9f56f704b3a34d044d15fd9962ebc1536ba4fb" integrity sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ== "@docsearch/js@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.0.tgz#f9e46943449b9092d874944f7a80bcc071004cfb" - integrity sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ== + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.1.tgz#aaf6c6427371a53c1cd46b2ed08b9c353e5cd02d" + integrity sha512-erI3RRZurDr1xES5hvYJ3Imp7jtrXj6f1xYIzDzxiS7nNBufYWPbJwrmMqWC5g9y165PmxEmN9pklGCdLi0Iqg== dependencies: - "@docsearch/react" "3.6.0" + "@docsearch/react" "3.6.1" preact "^10.0.0" -"@docsearch/react@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.0.tgz#b4f25228ecb7fc473741aefac592121e86dd2958" - integrity sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w== +"@docsearch/react@3.6.1": + version "3.6.1" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.1.tgz#0f826df08693293806d64277d6d9c38636211b97" + integrity sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw== dependencies: "@algolia/autocomplete-core" "1.9.3" "@algolia/autocomplete-preset-algolia" "1.9.3" - "@docsearch/css" "3.6.0" + "@docsearch/css" "3.6.1" algoliasearch "^4.19.1" "@esbuild/aix-ppc64@0.21.5": @@ -294,89 +299,89 @@ integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== "@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@rollup/rollup-android-arm-eabi@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz#bbd0e616b2078cd2d68afc9824d1fadb2f2ffd27" - integrity sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ== - -"@rollup/rollup-android-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz#97255ef6384c5f73f4800c0de91f5f6518e21203" - integrity sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA== - -"@rollup/rollup-darwin-arm64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096" - integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== - -"@rollup/rollup-darwin-x64@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz#e07d76de1cec987673e7f3d48ccb8e106d42c05c" - integrity sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA== - -"@rollup/rollup-linux-arm-gnueabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz#9f1a6d218b560c9d75185af4b8bb42f9f24736b8" - integrity sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA== - -"@rollup/rollup-linux-arm-musleabihf@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz#53618b92e6ffb642c7b620e6e528446511330549" - integrity sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A== - -"@rollup/rollup-linux-arm64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz#99a7ba5e719d4f053761a698f7b52291cefba577" - integrity sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw== - -"@rollup/rollup-linux-arm64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz#f53db99a45d9bc00ce94db8a35efa7c3c144a58c" - integrity sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ== - -"@rollup/rollup-linux-powerpc64le-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz#cbb0837408fe081ce3435cf3730e090febafc9bf" - integrity sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA== - -"@rollup/rollup-linux-riscv64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz#8ed09c1d1262ada4c38d791a28ae0fea28b80cc9" - integrity sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg== - -"@rollup/rollup-linux-s390x-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz#938138d3c8e0c96f022252a28441dcfb17afd7ec" - integrity sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg== - -"@rollup/rollup-linux-x64-gnu@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz#1a7481137a54740bee1ded4ae5752450f155d942" - integrity sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w== - -"@rollup/rollup-linux-x64-musl@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz#f1186afc601ac4f4fc25fac4ca15ecbee3a1874d" - integrity sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg== - -"@rollup/rollup-win32-arm64-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz#ed6603e93636a96203c6915be4117245c1bd2daf" - integrity sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA== - -"@rollup/rollup-win32-ia32-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz#14e0b404b1c25ebe6157a15edb9c46959ba74c54" - integrity sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg== - -"@rollup/rollup-win32-x64-msvc@4.18.0": - version "4.18.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz#5d694d345ce36b6ecf657349e03eb87297e68da4" - integrity sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@rollup/rollup-android-arm-eabi@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz#f0da481244b7d9ea15296b35f7fe39cd81157396" + integrity sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA== + +"@rollup/rollup-android-arm64@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz#82ab3c575f4235fb647abea5e08eec6cf325964e" + integrity sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg== + +"@rollup/rollup-darwin-arm64@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz#6a530452e68a9152809ce58de1f89597632a085b" + integrity sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ== + +"@rollup/rollup-darwin-x64@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz#47727479f5ca292cf434d7e75af2725b724ecbc7" + integrity sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA== + +"@rollup/rollup-linux-arm-gnueabihf@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz#46193c498aa7902a8db89ac00128060320e84fef" + integrity sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g== + +"@rollup/rollup-linux-arm-musleabihf@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz#22d831fe239643c1d05c98906420325cee439d85" + integrity sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ== + +"@rollup/rollup-linux-arm64-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz#19abd33695ec9d588b4a858d122631433084e4a3" + integrity sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ== + +"@rollup/rollup-linux-arm64-musl@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz#d60af8c0b9be424424ff96a0ba19fce65d26f6ab" + integrity sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ== + +"@rollup/rollup-linux-powerpc64le-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz#b1194e5ed6d138fdde0842d126fccde74a90f457" + integrity sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ== + +"@rollup/rollup-linux-riscv64-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz#f5a635c017b9bff8b856b0221fbd5c0e3373b7ec" + integrity sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg== + +"@rollup/rollup-linux-s390x-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz#f1043d9f4026bf6995863cb3f8dd4732606e4baa" + integrity sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg== + +"@rollup/rollup-linux-x64-gnu@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz#1e781730be445119f06c9df5f185e193bc82c610" + integrity sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g== + +"@rollup/rollup-linux-x64-musl@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz#08f12e1965d6f27d6898ff932592121cca6abc4b" + integrity sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ== + +"@rollup/rollup-win32-arm64-msvc@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz#4a5dcbbe7af7d41cac92b09798e7c1831da1f599" + integrity sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g== + +"@rollup/rollup-win32-ia32-msvc@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz#075b0713de627843a73b4cf0e087c56b53e9d780" + integrity sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg== + +"@rollup/rollup-win32-x64-msvc@4.18.1": + version "4.18.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz#0cb240c147c0dfd0e3eaff4cc060a772d39e155c" + integrity sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw== "@shikijs/core@1.10.3", "@shikijs/core@^1.10.3": version "1.10.3" @@ -480,18 +485,18 @@ "@vue/shared" "3.4.31" "@vue/devtools-api@^7.3.5": - version "7.3.5" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.3.5.tgz#afd9f3bca50cfff96aebeea3cc3853fd127267f7" - integrity sha512-BSdBBu5hOIv+gBJC9jzYMh5bC27FQwjWLSb8fVAniqlL9gvsqvK27xTgczMf+hgctlszMYQnRm3bpY/j8vhPqw== + version "7.3.6" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.3.6.tgz#165f676d959db2c1dec1a035a781394bb6833777" + integrity sha512-z6cKyxdXrIGgA++eyGBfquj6dCplRdgjt+I18fJx8hjWTXDTIyeQvryyEBMchnfZVyvUTjK3QjGjDpLCnJxPjw== dependencies: - "@vue/devtools-kit" "^7.3.5" + "@vue/devtools-kit" "^7.3.6" -"@vue/devtools-kit@^7.3.5": - version "7.3.5" - resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.3.5.tgz#66669ee94da6c927fc28255477f65aae3f616316" - integrity sha512-wwfi10gJ1HMtjzcd8aIOnzBHlIRqsYDgcDyrKvkeyc0Gbcoe7UrkXRVHZUOtcxxoplHA0PwpT6wFg0uUCmi8Ww== +"@vue/devtools-kit@^7.3.6": + version "7.3.6" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.3.6.tgz#dc08613a369e1168e905b00a4590be12bd36fa8f" + integrity sha512-5Ym9V3fkJenEoptqKoo+cgY5RTVwrSssFdzRsuyIgaeiskCT+rRJeQdwoo81tyrQ1mfS7Er1rYZlSzr3Y3L/ew== dependencies: - "@vue/devtools-shared" "^7.3.5" + "@vue/devtools-shared" "^7.3.6" birpc "^0.2.17" hookable "^5.5.3" mitt "^3.0.1" @@ -499,10 +504,10 @@ speakingurl "^14.0.1" superjson "^2.2.1" -"@vue/devtools-shared@^7.3.5": - version "7.3.5" - resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.3.5.tgz#4c4020df6d71ab058518a8f3a272fc7f2682c5d8" - integrity sha512-Rqii3VazmWTi67a86rYopi61n5Ved05EybJCwyrfoO9Ok3MaS/4yRFl706ouoISMlyrASJFEzM0/AiDA6w4f9A== +"@vue/devtools-shared@^7.3.6": + version "7.3.6" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.3.6.tgz#0a332f4d4d74d6eee056c6f7143e141a4b1b3e08" + integrity sha512-R/FOmdJV+hhuwcNoxp6e87RRkEeDMVhWH+nOsnHUrwjjsyeXJ2W1475Ozmw+cbZhejWQzftkHVKO28Fuo1yqCw== dependencies: rfdc "^1.4.1" @@ -576,25 +581,25 @@ vue-demi ">=0.14.8" algoliasearch@^4.19.1: - version "4.23.3" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.23.3.tgz#e09011d0a3b0651444916a3e6bbcba064ec44b60" - integrity sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg== - dependencies: - "@algolia/cache-browser-local-storage" "4.23.3" - "@algolia/cache-common" "4.23.3" - "@algolia/cache-in-memory" "4.23.3" - "@algolia/client-account" "4.23.3" - "@algolia/client-analytics" "4.23.3" - "@algolia/client-common" "4.23.3" - "@algolia/client-personalization" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/logger-console" "4.23.3" - "@algolia/recommend" "4.23.3" - "@algolia/requester-browser-xhr" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/requester-node-http" "4.23.3" - "@algolia/transporter" "4.23.3" + version "4.24.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.24.0.tgz#b953b3e2309ef8f25da9de311b95b994ac918275" + integrity sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g== + dependencies: + "@algolia/cache-browser-local-storage" "4.24.0" + "@algolia/cache-common" "4.24.0" + "@algolia/cache-in-memory" "4.24.0" + "@algolia/client-account" "4.24.0" + "@algolia/client-analytics" "4.24.0" + "@algolia/client-common" "4.24.0" + "@algolia/client-personalization" "4.24.0" + "@algolia/client-search" "4.24.0" + "@algolia/logger-common" "4.24.0" + "@algolia/logger-console" "4.24.0" + "@algolia/recommend" "4.24.0" + "@algolia/requester-browser-xhr" "4.24.0" + "@algolia/requester-common" "4.24.0" + "@algolia/requester-node-http" "4.24.0" + "@algolia/transporter" "4.24.0" birpc@^0.2.17: version "0.2.17" @@ -687,9 +692,9 @@ mark.js@8.11.1: integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== minisearch@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.0.0.tgz#726410c5ac4400b67cde8113efbd69b035bff7f5" - integrity sha512-0OIJ3hUE+YBJNruDCqbTMFmk/IoB1CpZzuGfl11khFIel66ew9UoLF/+gfq3bdyrneqr3P7BTjFZApUbmk+9Dg== + version "7.0.2" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.0.2.tgz#537c15a63e25ff8b9eb4ef0f0566ca6c1be43309" + integrity sha512-Pf0sFXaCgRpOBDr4G8wTbVAEH9o9rvJzCMwj0TMe3L/NfUuG188xabfx6Vm3vD/Dv5L500n7JeiMB9Mq3sWMfQ== mitt@^3.0.1: version "3.0.1" @@ -706,21 +711,12 @@ perfect-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a" integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== -picocolors@^1.0.0, picocolors@^1.0.1: +picocolors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -postcss@^8.4.38: - version "8.4.38" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" - integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.2.0" - -postcss@^8.4.39: +postcss@^8.4.38, postcss@^8.4.39: version "8.4.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== @@ -730,9 +726,9 @@ postcss@^8.4.39: source-map-js "^1.2.0" preact@^10.0.0: - version "10.22.0" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.22.0.tgz#a50f38006ae438d255e2631cbdaf7488e6dd4e16" - integrity sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw== + version "10.22.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.22.1.tgz#6a3589973fe0c6e53211091607d31f4b7b27334d" + integrity sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A== rfdc@^1.4.1: version "1.4.1" @@ -740,28 +736,28 @@ rfdc@^1.4.1: integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rollup@^4.13.0: - version "4.18.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda" - integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== + version "4.18.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.1.tgz#18a606df5e76ca53b8a69f2d8eab256d69dda851" + integrity sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.18.0" - "@rollup/rollup-android-arm64" "4.18.0" - "@rollup/rollup-darwin-arm64" "4.18.0" - "@rollup/rollup-darwin-x64" "4.18.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.18.0" - "@rollup/rollup-linux-arm-musleabihf" "4.18.0" - "@rollup/rollup-linux-arm64-gnu" "4.18.0" - "@rollup/rollup-linux-arm64-musl" "4.18.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.18.0" - "@rollup/rollup-linux-riscv64-gnu" "4.18.0" - "@rollup/rollup-linux-s390x-gnu" "4.18.0" - "@rollup/rollup-linux-x64-gnu" "4.18.0" - "@rollup/rollup-linux-x64-musl" "4.18.0" - "@rollup/rollup-win32-arm64-msvc" "4.18.0" - "@rollup/rollup-win32-ia32-msvc" "4.18.0" - "@rollup/rollup-win32-x64-msvc" "4.18.0" + "@rollup/rollup-android-arm-eabi" "4.18.1" + "@rollup/rollup-android-arm64" "4.18.1" + "@rollup/rollup-darwin-arm64" "4.18.1" + "@rollup/rollup-darwin-x64" "4.18.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.18.1" + "@rollup/rollup-linux-arm-musleabihf" "4.18.1" + "@rollup/rollup-linux-arm64-gnu" "4.18.1" + "@rollup/rollup-linux-arm64-musl" "4.18.1" + "@rollup/rollup-linux-powerpc64le-gnu" "4.18.1" + "@rollup/rollup-linux-riscv64-gnu" "4.18.1" + "@rollup/rollup-linux-s390x-gnu" "4.18.1" + "@rollup/rollup-linux-x64-gnu" "4.18.1" + "@rollup/rollup-linux-x64-musl" "4.18.1" + "@rollup/rollup-win32-arm64-msvc" "4.18.1" + "@rollup/rollup-win32-ia32-msvc" "4.18.1" + "@rollup/rollup-win32-x64-msvc" "4.18.1" fsevents "~2.3.2" shiki@1.10.3, shiki@^1.10.3: @@ -795,9 +791,9 @@ tabbable@^6.2.0: integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== vite@^5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.3.tgz#5265b1f0a825b3b6564c2d07524777c83e3c04c2" - integrity sha512-NPQdeCU0Dv2z5fu+ULotpuq5yfCS1BzKUIPhNbP3YBfAMGJXbt2nS+sbTFu+qchaqWTD+H3JK++nRwr6XIcp6A== + version "5.3.4" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.4.tgz#b36ebd47c8a5e3a8727046375d5f10bf9fdf8715" + integrity sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA== dependencies: esbuild "^0.21.3" postcss "^8.4.39" From 109e92293c4098c96ccceacc36a09ee251b88b13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 22:47:47 +0800 Subject: [PATCH 043/113] build(deps): bump the crates group in /userspace/ksud with 3 updates (#1898) --- userspace/ksud/Cargo.lock | 12 ++++++------ userspace/ksud/Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 2be8f2cb0d5a..d429686df900 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -1798,9 +1798,9 @@ dependencies = [ [[package]] name = "zip" -version = "2.1.4" +version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e29ab4097989787b2029a5981c41b7bfb427b5a601e23f455daacb4d0360a9e9" +checksum = "b895748a3ebcb69b9d38dcfdf21760859a4b0d0b0015277640c2ef4c69640e6f" dependencies = [ "aes", "arbitrary", @@ -1850,18 +1850,18 @@ dependencies = [ [[package]] name = "zstd" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" +checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.1.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" +checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" dependencies = [ "zstd-sys", ] diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index 40f227ef6169..f85218e05d1e 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -10,7 +10,7 @@ rust-version = "1.77.2" anyhow = "1" clap = { version = "4", features = ["derive"] } const_format = "0.2" -zip = { version = "2.1.4", features = [ +zip = { version = "2.1.5", features = [ "deflate", "deflate64", "bzip2", From 54322c020895ca97c0ac8578832e2e8ed654c1bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 21 Jul 2024 22:48:19 +0800 Subject: [PATCH 044/113] build(deps): bump the npm group in /website with 2 updates (#1899) --- website/yarn.lock | 203 ++++++++++++++++++++++------------------------ 1 file changed, 99 insertions(+), 104 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 9d627829fb7d..a1c38d4c17b9 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -155,16 +155,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== -"@docsearch/css@3.6.1": +"@docsearch/css@3.6.1", "@docsearch/css@^3.6.0": version "3.6.1" resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.1.tgz#f0a728ecb486c81f2d282650fc1820c914913408" integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg== -"@docsearch/css@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.0.tgz#0e9f56f704b3a34d044d15fd9962ebc1536ba4fb" - integrity sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ== - "@docsearch/js@^3.6.0": version "3.6.1" resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.1.tgz#aaf6c6427371a53c1cd46b2ed08b9c353e5cd02d" @@ -303,85 +298,85 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@rollup/rollup-android-arm-eabi@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.1.tgz#f0da481244b7d9ea15296b35f7fe39cd81157396" - integrity sha512-lncuC4aHicncmbORnx+dUaAgzee9cm/PbIqgWz1PpXuwc+sa1Ct83tnqUDy/GFKleLiN7ZIeytM6KJ4cAn1SxA== - -"@rollup/rollup-android-arm64@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.1.tgz#82ab3c575f4235fb647abea5e08eec6cf325964e" - integrity sha512-F/tkdw0WSs4ojqz5Ovrw5r9odqzFjb5LIgHdHZG65dFI1lWTWRVy32KDJLKRISHgJvqUeUhdIvy43fX41znyDg== - -"@rollup/rollup-darwin-arm64@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.1.tgz#6a530452e68a9152809ce58de1f89597632a085b" - integrity sha512-vk+ma8iC1ebje/ahpxpnrfVQJibTMyHdWpOGZ3JpQ7Mgn/3QNHmPq7YwjZbIE7km73dH5M1e6MRRsnEBW7v5CQ== - -"@rollup/rollup-darwin-x64@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.1.tgz#47727479f5ca292cf434d7e75af2725b724ecbc7" - integrity sha512-IgpzXKauRe1Tafcej9STjSSuG0Ghu/xGYH+qG6JwsAUxXrnkvNHcq/NL6nz1+jzvWAnQkuAJ4uIwGB48K9OCGA== - -"@rollup/rollup-linux-arm-gnueabihf@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.1.tgz#46193c498aa7902a8db89ac00128060320e84fef" - integrity sha512-P9bSiAUnSSM7EmyRK+e5wgpqai86QOSv8BwvkGjLwYuOpaeomiZWifEos517CwbG+aZl1T4clSE1YqqH2JRs+g== - -"@rollup/rollup-linux-arm-musleabihf@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.1.tgz#22d831fe239643c1d05c98906420325cee439d85" - integrity sha512-5RnjpACoxtS+aWOI1dURKno11d7krfpGDEn19jI8BuWmSBbUC4ytIADfROM1FZrFhQPSoP+KEa3NlEScznBTyQ== - -"@rollup/rollup-linux-arm64-gnu@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.1.tgz#19abd33695ec9d588b4a858d122631433084e4a3" - integrity sha512-8mwmGD668m8WaGbthrEYZ9CBmPug2QPGWxhJxh/vCgBjro5o96gL04WLlg5BA233OCWLqERy4YUzX3bJGXaJgQ== - -"@rollup/rollup-linux-arm64-musl@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.1.tgz#d60af8c0b9be424424ff96a0ba19fce65d26f6ab" - integrity sha512-dJX9u4r4bqInMGOAQoGYdwDP8lQiisWb9et+T84l2WXk41yEej8v2iGKodmdKimT8cTAYt0jFb+UEBxnPkbXEQ== - -"@rollup/rollup-linux-powerpc64le-gnu@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.1.tgz#b1194e5ed6d138fdde0842d126fccde74a90f457" - integrity sha512-V72cXdTl4EI0x6FNmho4D502sy7ed+LuVW6Ym8aI6DRQ9hQZdp5sj0a2usYOlqvFBNKQnLQGwmYnujo2HvjCxQ== - -"@rollup/rollup-linux-riscv64-gnu@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.1.tgz#f5a635c017b9bff8b856b0221fbd5c0e3373b7ec" - integrity sha512-f+pJih7sxoKmbjghrM2RkWo2WHUW8UbfxIQiWo5yeCaCM0TveMEuAzKJte4QskBp1TIinpnRcxkquY+4WuY/tg== - -"@rollup/rollup-linux-s390x-gnu@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.1.tgz#f1043d9f4026bf6995863cb3f8dd4732606e4baa" - integrity sha512-qb1hMMT3Fr/Qz1OKovCuUM11MUNLUuHeBC2DPPAWUYYUAOFWaxInaTwTQmc7Fl5La7DShTEpmYwgdt2hG+4TEg== - -"@rollup/rollup-linux-x64-gnu@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.1.tgz#1e781730be445119f06c9df5f185e193bc82c610" - integrity sha512-7O5u/p6oKUFYjRbZkL2FLbwsyoJAjyeXHCU3O4ndvzg2OFO2GinFPSJFGbiwFDaCFc+k7gs9CF243PwdPQFh5g== - -"@rollup/rollup-linux-x64-musl@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.1.tgz#08f12e1965d6f27d6898ff932592121cca6abc4b" - integrity sha512-pDLkYITdYrH/9Cv/Vlj8HppDuLMDUBmgsM0+N+xLtFd18aXgM9Nyqupb/Uw+HeidhfYg2lD6CXvz6CjoVOaKjQ== - -"@rollup/rollup-win32-arm64-msvc@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.1.tgz#4a5dcbbe7af7d41cac92b09798e7c1831da1f599" - integrity sha512-W2ZNI323O/8pJdBGil1oCauuCzmVd9lDmWBBqxYZcOqWD6aWqJtVBQ1dFrF4dYpZPks6F+xCZHfzG5hYlSHZ6g== - -"@rollup/rollup-win32-ia32-msvc@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.1.tgz#075b0713de627843a73b4cf0e087c56b53e9d780" - integrity sha512-ELfEX1/+eGZYMaCIbK4jqLxO1gyTSOIlZr6pbC4SRYFaSIDVKOnZNMdoZ+ON0mrFDp4+H5MhwNC1H/AhE3zQLg== - -"@rollup/rollup-win32-x64-msvc@4.18.1": - version "4.18.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.1.tgz#0cb240c147c0dfd0e3eaff4cc060a772d39e155c" - integrity sha512-yjk2MAkQmoaPYCSu35RLJ62+dz358nE83VfTePJRp8CG7aMg25mEJYpXFiD+NcevhX8LxD5OP5tktPXnXN7GDw== +"@rollup/rollup-android-arm-eabi@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz#3d9fd50164b94964f5de68c3c4ce61933b3a338d" + integrity sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w== + +"@rollup/rollup-android-arm64@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz#e1a6d4bca2eb08c84fd996a4bf896ce4b6f4014c" + integrity sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw== + +"@rollup/rollup-darwin-arm64@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz#0a3fffea69489a24a96079af414b0be78df8abbc" + integrity sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA== + +"@rollup/rollup-darwin-x64@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz#13fbdb15f58f090871b0ffff047ece06ad6ad74c" + integrity sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg== + +"@rollup/rollup-linux-arm-gnueabihf@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz#e9d9219ddf6f6e946e2ee322198af12466d2c868" + integrity sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw== + +"@rollup/rollup-linux-arm-musleabihf@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz#4ba804a00b5e793196a622f6977e05f23e01f59a" + integrity sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ== + +"@rollup/rollup-linux-arm64-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz#d871e3f41de759a6db27fc99235b782ba47c15cc" + integrity sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug== + +"@rollup/rollup-linux-arm64-musl@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz#6e63f7ad4cc51bd2c693a2826fd279de9eaa05b5" + integrity sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ== + +"@rollup/rollup-linux-powerpc64le-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz#1540b284d91c440bc9fa7a1714cfb71a5597e94d" + integrity sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ== + +"@rollup/rollup-linux-riscv64-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz#70ae58103b5bc7ba2e2235738b51d97022c8ef92" + integrity sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg== + +"@rollup/rollup-linux-s390x-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz#579ca5f271421a961d3c73d221202c79e02ff03a" + integrity sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA== + +"@rollup/rollup-linux-x64-gnu@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz#f0282d761b8b4e7b92b236813475248e37231849" + integrity sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA== + +"@rollup/rollup-linux-x64-musl@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz#65da807ac66c505ad14b76f1e5976006cb67dd5f" + integrity sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A== + +"@rollup/rollup-win32-arm64-msvc@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz#1eed24b91f421c2eea8bb7ca8889ba0c867e1780" + integrity sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg== + +"@rollup/rollup-win32-ia32-msvc@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz#1ed93c9cdc84e185359797a686f4d1576afcea58" + integrity sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q== + +"@rollup/rollup-win32-x64-msvc@4.19.0": + version "4.19.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz#baf9b65023ea2ecc5e6ec68f787a0fecfd8ee84c" + integrity sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag== "@shikijs/core@1.10.3", "@shikijs/core@^1.10.3": version "1.10.3" @@ -736,28 +731,28 @@ rfdc@^1.4.1: integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rollup@^4.13.0: - version "4.18.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.1.tgz#18a606df5e76ca53b8a69f2d8eab256d69dda851" - integrity sha512-Elx2UT8lzxxOXMpy5HWQGZqkrQOtrVDDa/bm9l10+U4rQnVzbL/LgZ4NOM1MPIDyHk69W4InuYDF5dzRh4Kw1A== + version "4.19.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.19.0.tgz#83b08cc0b2bc38c26c194cb7f2cdabd84a2a8c02" + integrity sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.18.1" - "@rollup/rollup-android-arm64" "4.18.1" - "@rollup/rollup-darwin-arm64" "4.18.1" - "@rollup/rollup-darwin-x64" "4.18.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.18.1" - "@rollup/rollup-linux-arm-musleabihf" "4.18.1" - "@rollup/rollup-linux-arm64-gnu" "4.18.1" - "@rollup/rollup-linux-arm64-musl" "4.18.1" - "@rollup/rollup-linux-powerpc64le-gnu" "4.18.1" - "@rollup/rollup-linux-riscv64-gnu" "4.18.1" - "@rollup/rollup-linux-s390x-gnu" "4.18.1" - "@rollup/rollup-linux-x64-gnu" "4.18.1" - "@rollup/rollup-linux-x64-musl" "4.18.1" - "@rollup/rollup-win32-arm64-msvc" "4.18.1" - "@rollup/rollup-win32-ia32-msvc" "4.18.1" - "@rollup/rollup-win32-x64-msvc" "4.18.1" + "@rollup/rollup-android-arm-eabi" "4.19.0" + "@rollup/rollup-android-arm64" "4.19.0" + "@rollup/rollup-darwin-arm64" "4.19.0" + "@rollup/rollup-darwin-x64" "4.19.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.19.0" + "@rollup/rollup-linux-arm-musleabihf" "4.19.0" + "@rollup/rollup-linux-arm64-gnu" "4.19.0" + "@rollup/rollup-linux-arm64-musl" "4.19.0" + "@rollup/rollup-linux-powerpc64le-gnu" "4.19.0" + "@rollup/rollup-linux-riscv64-gnu" "4.19.0" + "@rollup/rollup-linux-s390x-gnu" "4.19.0" + "@rollup/rollup-linux-x64-gnu" "4.19.0" + "@rollup/rollup-linux-x64-musl" "4.19.0" + "@rollup/rollup-win32-arm64-msvc" "4.19.0" + "@rollup/rollup-win32-ia32-msvc" "4.19.0" + "@rollup/rollup-win32-x64-msvc" "4.19.0" fsevents "~2.3.2" shiki@1.10.3, shiki@^1.10.3: From 62297a74a6a736d28f11ebe67cd63794ca2295fe Mon Sep 17 00:00:00 2001 From: LoveSy Date: Mon, 22 Jul 2024 07:43:59 +0800 Subject: [PATCH 045/113] Upgrade rustix (#1900) --- userspace/ksud/Cargo.lock | 42 +++++++++++++++++----------------- userspace/ksud/src/sepolicy.rs | 20 ++++++++-------- userspace/ksud/src/su.rs | 28 ++++++----------------- 3 files changed, 38 insertions(+), 52 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index d429686df900..8db180d9ac1a 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -203,9 +203,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block-buffer" @@ -902,7 +902,7 @@ dependencies = [ "regex", "retry", "rust-embed", - "rustix 0.38.30", + "rustix 0.38.34 (git+https://github.com/Kernel-SU/rustix.git?branch=main)", "serde", "serde_json", "sha1", @@ -1112,13 +1112,13 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "chrono", "flate2", "hex", "lazy_static", "procfs-core", - "rustix 0.38.34", + "rustix 0.38.34 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1127,7 +1127,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "chrono", "hex", ] @@ -1324,28 +1324,28 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustix" -version = "0.38.30" -source = "git+https://github.com/Kernel-SU/rustix.git?branch=main#0e270bce2d97466be6b987bb5f7ea5b1e8d84969" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno 0.3.9", - "itoa", "libc", "linux-raw-sys", - "once_cell", "windows-sys", ] [[package]] name = "rustix" version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +source = "git+https://github.com/Kernel-SU/rustix.git?branch=main#4a53fbc7cb7a07cabe87125cc21dbc27db316259" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.6.0", "errno 0.3.9", + "itoa", "libc", "linux-raw-sys", + "once_cell", "windows-sys", ] @@ -1366,18 +1366,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.202" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.202" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", @@ -1386,9 +1386,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa", "ryu", @@ -1633,7 +1633,7 @@ checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" dependencies = [ "either", "home", - "rustix 0.38.34", + "rustix 0.38.34 (registry+https://github.com/rust-lang/crates.io-index)", "winsafe", ] diff --git a/userspace/ksud/src/sepolicy.rs b/userspace/ksud/src/sepolicy.rs index 7e623d15aaf4..b7286a06a769 100644 --- a/userspace/ksud/src/sepolicy.rs +++ b/userspace/ksud/src/sepolicy.rs @@ -11,7 +11,7 @@ use nom::{ sequence::Tuple, IResult, Parser, }; -use std::{path::Path, vec}; +use std::{ffi, path::Path, vec}; type SeObject<'a> = Vec<&'a str>; @@ -660,19 +660,19 @@ impl<'a> TryFrom<&'a PolicyStatement<'a>> for Vec { struct FfiPolicy { cmd: u32, subcmd: u32, - sepol1: *const libc::c_char, - sepol2: *const libc::c_char, - sepol3: *const libc::c_char, - sepol4: *const libc::c_char, - sepol5: *const libc::c_char, - sepol6: *const libc::c_char, - sepol7: *const libc::c_char, + sepol1: *const ffi::c_char, + sepol2: *const ffi::c_char, + sepol3: *const ffi::c_char, + sepol4: *const ffi::c_char, + sepol5: *const ffi::c_char, + sepol6: *const ffi::c_char, + sepol7: *const ffi::c_char, } -fn to_c_ptr(pol: &PolicyObject) -> *const libc::c_char { +fn to_c_ptr(pol: &PolicyObject) -> *const ffi::c_char { match pol { PolicyObject::None | PolicyObject::All => std::ptr::null(), - PolicyObject::One(s) => s.as_ptr().cast::(), + PolicyObject::One(s) => s.as_ptr().cast::(), } } diff --git a/userspace/ksud/src/su.rs b/userspace/ksud/src/su.rs index b19bf7a21ca1..7884137e7ef2 100644 --- a/userspace/ksud/src/su.rs +++ b/userspace/ksud/src/su.rs @@ -19,30 +19,16 @@ use rustix::{ #[cfg(any(target_os = "linux", target_os = "android"))] pub fn grant_root(global_mnt: bool) -> Result<()> { - const KERNEL_SU_OPTION: u32 = 0xDEAD_BEEF; - const CMD_GRANT_ROOT: u64 = 0; - - let mut result: u32 = 0; - unsafe { - #[allow(clippy::cast_possible_wrap)] - libc::prctl( - KERNEL_SU_OPTION as i32, // supposed to overflow - CMD_GRANT_ROOT, - 0, - 0, - std::ptr::addr_of_mut!(result).cast::(), - ); - } + rustix::process::ksu_grant_root()?; - anyhow::ensure!(result == KERNEL_SU_OPTION, "grant root failed"); - let mut command = std::process::Command::new("sh"); + let mut command = Command::new("sh"); let command = unsafe { command.pre_exec(move || { if global_mnt { let _ = utils::switch_mnt_ns(1); let _ = utils::unshare_mnt_ns(); } - std::result::Result::Ok(()) + Result::Ok(()) }) }; // add /data/adb/ksu/bin to PATH @@ -64,7 +50,7 @@ fn print_usage(program: &str, opts: Options) { fn set_identity(uid: u32, gid: u32, groups: &[u32]) { #[cfg(any(target_os = "linux", target_os = "android"))] { - rustix::process::set_groups( + rustix::thread::set_thread_groups( groups .iter() .map(|g| unsafe { Gid::from_raw(*g) }) @@ -89,7 +75,7 @@ pub fn root_shell() -> Result<()> { // we are root now, this was set in kernel! use anyhow::anyhow; - let env_args: Vec = std::env::args().collect(); + let env_args: Vec = env::args().collect(); let program = env_args[0].clone(); let args = env_args .iter() @@ -154,7 +140,7 @@ pub fn root_shell() -> Result<()> { .collect::>(); let matches = match opts.parse(&args[1..]) { - std::result::Result::Ok(m) => m, + Result::Ok(m) => m, Err(f) => { println!("{f}"); print_usage(&program, opts); @@ -282,7 +268,7 @@ pub fn root_shell() -> Result<()> { set_identity(uid, gid, &groups); - std::result::Result::Ok(()) + Result::Ok(()) }) }; From 084182d7fbb1b9280df00cda977d2fc1956f3f22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 20:46:45 +0800 Subject: [PATCH 046/113] build(deps): bump syn from 2.0.71 to 2.0.72 in /userspace/ksud in the crates group (#1902) --- userspace/ksud/Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 8db180d9ac1a..b3933fc90df6 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -1450,9 +1450,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.71" +version = "2.0.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" dependencies = [ "proc-macro2", "quote", From 226025e55b31d30a401d5413e41b191245d29b96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 20:47:12 +0800 Subject: [PATCH 047/113] build(deps): bump the npm group in /website with 3 updates (#1903) --- website/yarn.lock | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index a1c38d4c17b9..585f8642e773 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -378,7 +378,14 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz#baf9b65023ea2ecc5e6ec68f787a0fecfd8ee84c" integrity sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag== -"@shikijs/core@1.10.3", "@shikijs/core@^1.10.3": +"@shikijs/core@1.11.0": + version "1.11.0" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.11.0.tgz#a07a55037ba74f13b860698149bda03382b74cc1" + integrity sha512-VbEhDAhT/2ozO0TPr5/ZQBO/NWLqtk4ZiBf6NplYpF38mKjNfMMied5fNEfIfYfN+cdKvhDB4VMcKvG/g9c3zg== + dependencies: + "@types/hast" "^3.0.4" + +"@shikijs/core@^1.10.3": version "1.10.3" resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.10.3.tgz#f01763b36f08ad3d2ef46cea7e61858d9d9947d6" integrity sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg== @@ -386,11 +393,11 @@ "@types/hast" "^3.0.4" "@shikijs/transformers@^1.10.3": - version "1.10.3" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.10.3.tgz#7bda4d272f5347eacfb107e26db8d68ffa2267c7" - integrity sha512-MNjsyye2WHVdxfZUSr5frS97sLGe6G1T+1P41QjyBFJehZphMcr4aBlRLmq6OSPBslYe9byQPVvt/LJCOfxw8Q== + version "1.11.0" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.11.0.tgz#9d96205d9f2ad17c402f967b9b709205f1257146" + integrity sha512-RNEUyOxF1cPYVG2EvBv0CZeDU1Tp4fSxmsVD2Ofv+8h9hBqqgpq+l+7uyouyqV1JHNlqwRmUwAqrQU3GQQ3csQ== dependencies: - shiki "1.10.3" + shiki "1.11.0" "@types/estree@1.0.5": version "1.0.5" @@ -687,9 +694,9 @@ mark.js@8.11.1: integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== minisearch@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.0.2.tgz#537c15a63e25ff8b9eb4ef0f0566ca6c1be43309" - integrity sha512-Pf0sFXaCgRpOBDr4G8wTbVAEH9o9rvJzCMwj0TMe3L/NfUuG188xabfx6Vm3vD/Dv5L500n7JeiMB9Mq3sWMfQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.1.0.tgz#f5830e9109b5919ee7b291c29a304f381aa68770" + integrity sha512-tv7c/uefWdEhcu6hvrfTihflgeEi2tN6VV7HJnCjK6VxM75QQJh4t9FwJCsA2EsRS8LCnu3W87CuGPWMocOLCA== mitt@^3.0.1: version "3.0.1" @@ -755,12 +762,12 @@ rollup@^4.13.0: "@rollup/rollup-win32-x64-msvc" "4.19.0" fsevents "~2.3.2" -shiki@1.10.3, shiki@^1.10.3: - version "1.10.3" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.10.3.tgz#2276fb21a07043b28c5b16001e6a04fef99dbb8f" - integrity sha512-eneCLncGuvPdTutJuLyUGS8QNPAVFO5Trvld2wgEq1e002mwctAhJKeMGWtWVXOIEzmlcLRqcgPSorR6AVzOmQ== +shiki@1.11.0, shiki@^1.10.3: + version "1.11.0" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.11.0.tgz#fad958667d7dc8e58f58e7c6ebd24d75d7c4e199" + integrity sha512-NqH/O1zRHvnuk/WfSL6b7+DtI7/kkMMSQGlZhm9DyzSU+SoIHhaw/fBZMr+zp9R8KjdIzkk3JKSC6hORuGDyng== dependencies: - "@shikijs/core" "1.10.3" + "@shikijs/core" "1.11.0" "@types/hast" "^3.0.4" source-map-js@^1.2.0: From 566c7bcb38e288f9e665069b8910e6e23f37de40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 14:16:01 +0800 Subject: [PATCH 048/113] build(deps): bump the npm group in /website with 3 updates (#1905) --- website/yarn.lock | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 585f8642e773..0521bd245472 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -378,26 +378,19 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz#baf9b65023ea2ecc5e6ec68f787a0fecfd8ee84c" integrity sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag== -"@shikijs/core@1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.11.0.tgz#a07a55037ba74f13b860698149bda03382b74cc1" - integrity sha512-VbEhDAhT/2ozO0TPr5/ZQBO/NWLqtk4ZiBf6NplYpF38mKjNfMMied5fNEfIfYfN+cdKvhDB4VMcKvG/g9c3zg== - dependencies: - "@types/hast" "^3.0.4" - -"@shikijs/core@^1.10.3": - version "1.10.3" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.10.3.tgz#f01763b36f08ad3d2ef46cea7e61858d9d9947d6" - integrity sha512-D45PMaBaeDHxww+EkcDQtDAtzv00Gcsp72ukBtaLSmqRvh0WgGMq3Al0rl1QQBZfuneO75NXMIzEZGFitThWbg== +"@shikijs/core@1.11.1", "@shikijs/core@^1.10.3": + version "1.11.1" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.11.1.tgz#a102cf56f32fa8cf3ceb9f918f2da5511782efe7" + integrity sha512-Qsn8h15SWgv5TDRoDmiHNzdQO2BxDe86Yq6vIHf5T0cCvmfmccJKIzHtep8bQO9HMBZYCtCBzaXdd1MnxZBPSg== dependencies: "@types/hast" "^3.0.4" "@shikijs/transformers@^1.10.3": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.11.0.tgz#9d96205d9f2ad17c402f967b9b709205f1257146" - integrity sha512-RNEUyOxF1cPYVG2EvBv0CZeDU1Tp4fSxmsVD2Ofv+8h9hBqqgpq+l+7uyouyqV1JHNlqwRmUwAqrQU3GQQ3csQ== + version "1.11.1" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.11.1.tgz#917f542f6b1eab8e599013bb0afd2b52bd4eee4e" + integrity sha512-e6DUvZRylv+V8htF5q3ZuNyPaxJYQnsLyTd2S/K6ePs8t132NJS82LG2vARmtfSFP3I3CcBXfJ73FaCgI9kAMg== dependencies: - shiki "1.11.0" + shiki "1.11.1" "@types/estree@1.0.5": version "1.0.5" @@ -762,12 +755,12 @@ rollup@^4.13.0: "@rollup/rollup-win32-x64-msvc" "4.19.0" fsevents "~2.3.2" -shiki@1.11.0, shiki@^1.10.3: - version "1.11.0" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.11.0.tgz#fad958667d7dc8e58f58e7c6ebd24d75d7c4e199" - integrity sha512-NqH/O1zRHvnuk/WfSL6b7+DtI7/kkMMSQGlZhm9DyzSU+SoIHhaw/fBZMr+zp9R8KjdIzkk3JKSC6hORuGDyng== +shiki@1.11.1, shiki@^1.10.3: + version "1.11.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.11.1.tgz#6c06c5fcf55f1dac2db2596af935fef6a41a209d" + integrity sha512-VHD3Q0EBXaaa245jqayBe5zQyMQUdXBFjmGr9MpDaDpAKRMYn7Ff00DM5MLk26UyKjnml3yQ0O2HNX7PtYVNFQ== dependencies: - "@shikijs/core" "1.11.0" + "@shikijs/core" "1.11.1" "@types/hast" "^3.0.4" source-map-js@^1.2.0: From 543da3589a85cf3ce715ea58fe0479bcb1dcef44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 20:15:35 +0800 Subject: [PATCH 049/113] build(deps): bump the crates group in /userspace/ksud with 7 updates (#1908) --- userspace/ksud/Cargo.lock | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index b3933fc90df6..3c64e50cf645 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -303,9 +303,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.9" +version = "4.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "8f6b81fb3c84f5563d509c59b5a48d935f689e993afa90fe39047f05adef9142" dependencies = [ "clap_builder", "clap_derive", @@ -313,9 +313,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "5ca6706fd5224857d9ac5eb9355f6683563cc0541c7cd9d014043b57cbec78ac" dependencies = [ "anstream", "anstyle", @@ -569,9 +569,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" +checksum = "c6dc8c8ff84895b051f07a0e65f975cf225131742531338752abfb324e4449ff" dependencies = [ "log", "regex", @@ -579,9 +579,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" +checksum = "06676b12debf7bba6903559720abca942d3a66b8acb88815fd2c7c6537e9ade1" dependencies = [ "env_filter", "log", @@ -848,9 +848,9 @@ dependencies = [ [[package]] name = "jobserver" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -1050,9 +1050,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.1" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" dependencies = [ "memchr", ] @@ -1510,9 +1510,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "tokio" -version = "1.38.1" +version = "1.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" +checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a" dependencies = [ "backtrace", "bytes", From 59ba84eb2b45c7ee7cded8774c918100d62a2712 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Jul 2024 20:15:57 +0800 Subject: [PATCH 050/113] build(deps): bump the npm group in /website with 6 updates (#1907) --- website/yarn.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index 0521bd245472..c7f7ebf14108 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -433,9 +433,9 @@ integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== "@vitejs/plugin-vue@^5.0.5": - version "5.0.5" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz#e3dc11e427d4b818b7e3202766ad156e3d5e2eaa" - integrity sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ== + version "5.1.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.0.tgz#d29f2aad9127c73b578e7a463e76249e89256e0b" + integrity sha512-QMRxARyrdiwi1mj3AW4fLByoHTavreXq0itdEW696EihXglf1MB3D4C2gBvE0jMPH29ZjC3iK8aIaUMLf4EOGA== "@vue/compiler-core@3.4.31": version "3.4.31" @@ -480,18 +480,18 @@ "@vue/shared" "3.4.31" "@vue/devtools-api@^7.3.5": - version "7.3.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.3.6.tgz#165f676d959db2c1dec1a035a781394bb6833777" - integrity sha512-z6cKyxdXrIGgA++eyGBfquj6dCplRdgjt+I18fJx8hjWTXDTIyeQvryyEBMchnfZVyvUTjK3QjGjDpLCnJxPjw== + version "7.3.7" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.3.7.tgz#78f46e9d7af206f06392b4139045e6538cef0a19" + integrity sha512-kvjQ6nmsqTp7SrmpwI2G0MgbC4ys0bPsgQirHXJM8y1m7siQ5RnWQUHJVfyUrHNguCySW1cevAdIw87zrPTl9g== dependencies: - "@vue/devtools-kit" "^7.3.6" + "@vue/devtools-kit" "^7.3.7" -"@vue/devtools-kit@^7.3.6": - version "7.3.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.3.6.tgz#dc08613a369e1168e905b00a4590be12bd36fa8f" - integrity sha512-5Ym9V3fkJenEoptqKoo+cgY5RTVwrSssFdzRsuyIgaeiskCT+rRJeQdwoo81tyrQ1mfS7Er1rYZlSzr3Y3L/ew== +"@vue/devtools-kit@^7.3.7": + version "7.3.7" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.3.7.tgz#c1c19d427e3b457cf91305c86ae2e6a58830442b" + integrity sha512-ktHhhjI4CoUrwdSUF5b/MFfjrtAtK8r4vhOkFyRN5Yp9kdXTwsRBYcwarHuP+wFPKf4/KM7DVBj2ELO8SBwdsw== dependencies: - "@vue/devtools-shared" "^7.3.6" + "@vue/devtools-shared" "^7.3.7" birpc "^0.2.17" hookable "^5.5.3" mitt "^3.0.1" @@ -499,10 +499,10 @@ speakingurl "^14.0.1" superjson "^2.2.1" -"@vue/devtools-shared@^7.3.6": - version "7.3.6" - resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.3.6.tgz#0a332f4d4d74d6eee056c6f7143e141a4b1b3e08" - integrity sha512-R/FOmdJV+hhuwcNoxp6e87RRkEeDMVhWH+nOsnHUrwjjsyeXJ2W1475Ozmw+cbZhejWQzftkHVKO28Fuo1yqCw== +"@vue/devtools-shared@^7.3.7": + version "7.3.7" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.3.7.tgz#765d2e0e4d3def891cdead22ef2a373d1d1f4df0" + integrity sha512-M9EU1/bWi5GNS/+IZrAhwGOVZmUTN4MH22Hvh35nUZZg9AZP2R2OhfCb+MG4EtAsrUEYlu3R43/SIj3G7EZYtQ== dependencies: rfdc "^1.4.1" @@ -721,9 +721,9 @@ postcss@^8.4.38, postcss@^8.4.39: source-map-js "^1.2.0" preact@^10.0.0: - version "10.22.1" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.22.1.tgz#6a3589973fe0c6e53211091607d31f4b7b27334d" - integrity sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A== + version "10.23.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.0.tgz#6a364d96e3b3433eee5a728fe336df064d405fa6" + integrity sha512-Pox0jeY4q6PGkFB5AsXni+zHxxx/sAYFIFZzukW4nIpoJLRziRX0xC4WjZENlkSrDQvqVgZcaZzZ/NL8/A+H/w== rfdc@^1.4.1: version "1.4.1" @@ -819,9 +819,9 @@ vitepress@^1.3.1: vue "^3.4.31" vue-demi@>=0.14.8: - version "0.14.8" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.8.tgz#00335e9317b45e4a68d3528aaf58e0cec3d5640a" - integrity sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q== + version "0.14.9" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.9.tgz#db2be43705e2bc8501f01ca6163e34ada2f2eb21" + integrity sha512-dC1TJMODGM8lxhP6wLToncaDPPNB3biVxxRDuNCYpuXwi70ou7NsGd97KVTJ2omepGId429JZt8oaZKeXbqxwg== vue@^3.4.27, vue@^3.4.31: version "3.4.31" From 5b83bb473ec5e194be5b00b62fbe05f7443d59c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 11:38:19 +0800 Subject: [PATCH 051/113] build(deps-dev): bump vue from 3.4.31 to 3.4.34 in /website (#1910) --- website/package.json | 2 +- website/yarn.lock | 128 +++++++++++++++++++++---------------------- 2 files changed, 65 insertions(+), 65 deletions(-) diff --git a/website/package.json b/website/package.json index b35f4f9500de..90826d3ac7b9 100644 --- a/website/package.json +++ b/website/package.json @@ -8,7 +8,7 @@ "license": "MIT", "devDependencies": { "vitepress": "^1.3.1", - "vue": "^3.4.27" + "vue": "^3.4.34" }, "scripts": { "docs:dev": "vitepress dev docs", diff --git a/website/yarn.lock b/website/yarn.lock index c7f7ebf14108..ae98f001b780 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -437,47 +437,47 @@ resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.0.tgz#d29f2aad9127c73b578e7a463e76249e89256e0b" integrity sha512-QMRxARyrdiwi1mj3AW4fLByoHTavreXq0itdEW696EihXglf1MB3D4C2gBvE0jMPH29ZjC3iK8aIaUMLf4EOGA== -"@vue/compiler-core@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.31.tgz#b51a76f1b30e9b5eba0553264dff0f171aedb7c6" - integrity sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg== +"@vue/compiler-core@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.34.tgz#4e6af7a00927284f1f67571e2e1a8a6e93ee2d1f" + integrity sha512-Z0izUf32+wAnQewjHu+pQf1yw00EGOmevl1kE+ljjjMe7oEfpQ+BI3/JNK7yMB4IrUsqLDmPecUrpj3mCP+yJQ== dependencies: "@babel/parser" "^7.24.7" - "@vue/shared" "3.4.31" + "@vue/shared" "3.4.34" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" -"@vue/compiler-dom@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.31.tgz#30961ca847f5d6ad18ffa26236c219f61b195f6b" - integrity sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ== +"@vue/compiler-dom@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.34.tgz#fd3b8df142b063c2cc0ec3e168b76b0d7774b78c" + integrity sha512-3PUOTS1h5cskdOJMExCu2TInXuM0j60DRPpSCJDqOCupCfUZCJoyQmKtRmA8EgDNZ5kcEE7vketamRZfrEuVDw== dependencies: - "@vue/compiler-core" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-core" "3.4.34" + "@vue/shared" "3.4.34" -"@vue/compiler-sfc@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.31.tgz#cc6bfccda17df8268cc5440842277f61623c591f" - integrity sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ== +"@vue/compiler-sfc@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.34.tgz#9a892747f8f707183a592f2dbd359b0272749dc1" + integrity sha512-x6lm0UrM03jjDXTPZgD9Ad8bIVD1ifWNit2EaWQIZB5CULr46+FbLQ5RpK7AXtDHGjx9rmvC7QRCTjsiGkAwRw== dependencies: "@babel/parser" "^7.24.7" - "@vue/compiler-core" "3.4.31" - "@vue/compiler-dom" "3.4.31" - "@vue/compiler-ssr" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-core" "3.4.34" + "@vue/compiler-dom" "3.4.34" + "@vue/compiler-ssr" "3.4.34" + "@vue/shared" "3.4.34" estree-walker "^2.0.2" magic-string "^0.30.10" - postcss "^8.4.38" + postcss "^8.4.39" source-map-js "^1.2.0" -"@vue/compiler-ssr@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.31.tgz#f62ffecdf15bacb883d0099780cf9a1e3654bfc4" - integrity sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA== +"@vue/compiler-ssr@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.34.tgz#4fac491550ddc2d8733ebb58a9c3bfbe85aa7bce" + integrity sha512-8TDBcLaTrFm5rnF+Qm4BlliaopJgqJ28Nsrc80qazynm5aJO+Emu7y0RWw34L8dNnTRdcVBpWzJxhGYzsoVu4g== dependencies: - "@vue/compiler-dom" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-dom" "3.4.34" + "@vue/shared" "3.4.34" "@vue/devtools-api@^7.3.5": version "7.3.7" @@ -506,43 +506,43 @@ dependencies: rfdc "^1.4.1" -"@vue/reactivity@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.31.tgz#eda80e90c4f9d7659efe1f5ed99c2dfdc9e93d77" - integrity sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q== +"@vue/reactivity@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.34.tgz#388ec52f55a3fbe6f9332d5d993567a1886fdc76" + integrity sha512-ua+Lo+wBRlBEX9TtgPOShE2JwIO7p6BTZ7t1KZVPoaBRfqbC7N3c8Mpzicx173fXxx5VXeU6ykiHo7WgLzJQDA== dependencies: - "@vue/shared" "3.4.31" + "@vue/shared" "3.4.34" -"@vue/runtime-core@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.31.tgz#ad3a41ad76385c0429e3e4dbefb81918494e10cf" - integrity sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw== +"@vue/runtime-core@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.34.tgz#47d2ab89c796d7012be17e2bbec40cff001317d7" + integrity sha512-PXhkiRPwcPGJ1BnyBZFI96GfInCVskd0HPNIAZn7i3YOmLbtbTZpB7/kDTwC1W7IqdGPkTVC63IS7J2nZs4Ebg== dependencies: - "@vue/reactivity" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/reactivity" "3.4.34" + "@vue/shared" "3.4.34" -"@vue/runtime-dom@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.31.tgz#bae7ad844f944af33699c73581bc36125bab96ce" - integrity sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw== +"@vue/runtime-dom@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.34.tgz#8a7f25647c3ac8d9fc2208fd5e06f70ba2dd6638" + integrity sha512-dXqIe+RqFAK2Euak4UsvbIupalrhc67OuQKpD7HJ3W2fv8jlqvI7szfBCsAEcE8o/wyNpkloxB6J8viuF/E3gw== dependencies: - "@vue/reactivity" "3.4.31" - "@vue/runtime-core" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/reactivity" "3.4.34" + "@vue/runtime-core" "3.4.34" + "@vue/shared" "3.4.34" csstype "^3.1.3" -"@vue/server-renderer@3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.31.tgz#bbe990f793c36d62d05bdbbaf142511d53e159fd" - integrity sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA== +"@vue/server-renderer@3.4.34": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.34.tgz#4b3a5bc6fb818aef9713e41fb78dece256dd933c" + integrity sha512-GeyEUfMVRZMD/mZcNONEqg7MiU10QQ1DB3O/Qr6+8uXpbwdlmVgQ5Qs1/ZUAFX1X2UUtqMoGrDRbxdWfOJFT7Q== dependencies: - "@vue/compiler-ssr" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-ssr" "3.4.34" + "@vue/shared" "3.4.34" -"@vue/shared@3.4.31", "@vue/shared@^3.4.31": - version "3.4.31" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.31.tgz#af9981f57def2c3f080c14bf219314fc0dc808a0" - integrity sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA== +"@vue/shared@3.4.34", "@vue/shared@^3.4.31": + version "3.4.34" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.34.tgz#130858419e634a427ca82c36e1da75c66a39ba8e" + integrity sha512-x5LmiRLpRsd9KTjAB8MPKf0CDPMcuItjP0gbNqFCIgL1I8iYp4zglhj9w9FPCdIbHG2M91RVeIbArFfFTz9I3A== "@vueuse/core@10.11.0", "@vueuse/core@^10.11.0": version "10.11.0" @@ -711,7 +711,7 @@ picocolors@^1.0.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -postcss@^8.4.38, postcss@^8.4.39: +postcss@^8.4.39: version "8.4.39" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== @@ -823,13 +823,13 @@ vue-demi@>=0.14.8: resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.9.tgz#db2be43705e2bc8501f01ca6163e34ada2f2eb21" integrity sha512-dC1TJMODGM8lxhP6wLToncaDPPNB3biVxxRDuNCYpuXwi70ou7NsGd97KVTJ2omepGId429JZt8oaZKeXbqxwg== -vue@^3.4.27, vue@^3.4.31: - version "3.4.31" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.31.tgz#83a3c4dab8302b0e974b0d4b92a2f6a6378ae797" - integrity sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ== +vue@^3.4.31, vue@^3.4.34: + version "3.4.34" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.34.tgz#19d9a82854d54c4506d1e2854c9c038ee430484a" + integrity sha512-VZze05HWlA3ItreQ/ka7Sx7PoD0/3St8FEiSlSTVgb6l4hL+RjtP2/8g5WQBzZgyf8WG2f+g1bXzC7zggLhAJA== dependencies: - "@vue/compiler-dom" "3.4.31" - "@vue/compiler-sfc" "3.4.31" - "@vue/runtime-dom" "3.4.31" - "@vue/server-renderer" "3.4.31" - "@vue/shared" "3.4.31" + "@vue/compiler-dom" "3.4.34" + "@vue/compiler-sfc" "3.4.34" + "@vue/runtime-dom" "3.4.34" + "@vue/server-renderer" "3.4.34" + "@vue/shared" "3.4.34" From 18f0b26279cb546a2337c8c0c02815711857ca72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jul 2024 11:42:55 +0800 Subject: [PATCH 052/113] build(deps): bump postcss from 8.4.39 to 8.4.40 in /website in the npm group (#1911) --- website/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index ae98f001b780..c0114fbc6b44 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -712,9 +712,9 @@ picocolors@^1.0.1: integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== postcss@^8.4.39: - version "8.4.39" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.39.tgz#aa3c94998b61d3a9c259efa51db4b392e1bde0e3" - integrity sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw== + version "8.4.40" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" + integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== dependencies: nanoid "^3.3.7" picocolors "^1.0.1" From aec1f9d470bebb83f39d4e5b97b972fd2dfe0c9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 10:06:44 +0800 Subject: [PATCH 053/113] build(deps): bump the maven group in /manager with 4 updates (#1913) --- manager/gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index bdbf48d1fde1..648385746499 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -3,10 +3,10 @@ agp = "8.5.1" kotlin = "2.0.0" ksp = "2.0.0-1.0.23" compose-bom = "2024.06.00" -lifecycle = "2.8.3" +lifecycle = "2.8.4" accompanist = "0.34.0" navigation = "2.7.7" -activity-compose = "1.9.0" +activity-compose = "1.9.1" kotlinx-coroutines = "1.8.1" coil-compose = "2.7.0" compose-destination = "1.10.2" From 7d2704391fe4c98ddb063cce291b5bc6ec13b487 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Jul 2024 10:07:04 +0800 Subject: [PATCH 054/113] build(deps): bump the npm group in /website with 3 updates (#1912) --- website/yarn.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/website/yarn.lock b/website/yarn.lock index c0114fbc6b44..18c4540858a9 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -410,9 +410,9 @@ integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== "@types/markdown-it@^14.1.1": - version "14.1.1" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.1.tgz#06bafb7a4e3f77b62b1f308acf7df76687887e0b" - integrity sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg== + version "14.1.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" + integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== dependencies: "@types/linkify-it" "^5" "@types/mdurl" "^2" @@ -721,9 +721,9 @@ postcss@^8.4.39: source-map-js "^1.2.0" preact@^10.0.0: - version "10.23.0" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.0.tgz#6a364d96e3b3433eee5a728fe336df064d405fa6" - integrity sha512-Pox0jeY4q6PGkFB5AsXni+zHxxx/sAYFIFZzukW4nIpoJLRziRX0xC4WjZENlkSrDQvqVgZcaZzZ/NL8/A+H/w== + version "10.23.1" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.23.1.tgz#d400107289bc979881c5212cb5f5cd22cd1dc38c" + integrity sha512-O5UdRsNh4vdZaTieWe3XOgSpdMAmkIYBCT3VhQDlKrzyCm8lUYsk0fmVEvoQQifoOjFRTaHZO69ylrzTW2BH+A== rfdc@^1.4.1: version "1.4.1" @@ -786,9 +786,9 @@ tabbable@^6.2.0: integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== vite@^5.3.3: - version "5.3.4" - resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.4.tgz#b36ebd47c8a5e3a8727046375d5f10bf9fdf8715" - integrity sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA== + version "5.3.5" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.5.tgz#b847f846fb2b6cb6f6f4ed50a830186138cb83d8" + integrity sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA== dependencies: esbuild "^0.21.3" postcss "^8.4.39" From 0911af068667040c0b3a23ad134a8c2904c4ac50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=81=E3=82=BB?= <123655015+chise0713@users.noreply.github.com> Date: Fri, 26 Jul 2024 09:47:37 +0800 Subject: [PATCH 055/113] ksud(feat): Parse KMI from boot or kernel --- userspace/ksud/src/boot_patch.rs | 86 ++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 5 deletions(-) diff --git a/userspace/ksud/src/boot_patch.rs b/userspace/ksud/src/boot_patch.rs index c2661c68fc76..fb0c9eaa10fb 100644 --- a/userspace/ksud/src/boot_patch.rs +++ b/userspace/ksud/src/boot_patch.rs @@ -97,6 +97,61 @@ pub fn get_current_kmi() -> Result { bail!("Unsupported platform") } +fn parse_kmi_from_kernel(kernel: &PathBuf, workdir: &Path) -> Result { + use regex::Regex; + use std::fs::{copy, File}; + use std::io::{BufReader, Read}; + let kernel_path = workdir.join("kernel"); + copy(&kernel, &kernel_path).context("Failed to copy kernel")?; + + let file = File::open(&kernel_path).context("Failed to open kernel file")?; + let mut reader = BufReader::new(file); + let mut buffer = Vec::new(); + reader + .read_to_end(&mut buffer) + .context("Failed to read kernel file")?; + + let printable_strings: Vec<&str> = buffer + .split(|&b| b == 0) + .filter_map(|slice| std::str::from_utf8(slice).ok()) + .filter(|s| s.chars().all(|c| c.is_ascii_graphic() || c == ' ')) + .collect(); + + let re = + Regex::new(r"(?:.* )?(\d+\.\d+)(?:\S+)?(android\d+)").context("Failed to compile regex")?; + for s in printable_strings { + if let Some(caps) = re.captures(s) { + if let (Some(kernel_version), Some(android_version)) = (caps.get(1), caps.get(2)) { + let kmi = format!("{}-{}", android_version.as_str(), kernel_version.as_str()); + return Ok(kmi); + } + } + } + println!("- Failed to get KMI version"); + bail!("Try to choose LKM manually") +} + +fn parse_kmi_from_boot(magiskboot: &Path, image: &PathBuf, workdir: &Path) -> Result { + let image_path = workdir.join("image"); + + std::fs::copy(&image, &image_path).context("Failed to copy image")?; + + let status = Command::new(magiskboot) + .current_dir(workdir) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .arg("unpack") + .arg(&image_path) + .status() + .context("Failed to execute magiskboot command")?; + + if !status.success() { + bail!("magiskboot unpack failed with status: {:?}", status.code().unwrap()); + } + + parse_kmi_from_kernel(&image_path, workdir) +} + fn do_cpio_cmd(magiskboot: &Path, workdir: &Path, cmd: &str) -> Result<()> { let status = Command::new(magiskboot) .current_dir(workdir) @@ -313,10 +368,34 @@ fn do_patch( let tmpdir = tempdir::TempDir::new("KernelSU").context("create temp dir failed")?; let workdir = tmpdir.path(); + // extract magiskboot + let magiskboot = find_magiskboot(magiskboot_path, workdir)?; + let kmi = if let Some(kmi) = kmi { kmi } else { - get_current_kmi().context("Unknown KMI, please choose LKM manually")? + let kmi = match get_current_kmi() { + Ok(value) => value, + Err(e) => { + println!("- {}", e); + if let Some(image_path) = &image { + println!( + "- Trying to auto detect KMI version for {}", + image_path.to_str().unwrap() + ); + parse_kmi_from_boot(&magiskboot, image_path, tmpdir.path())? + } else if let Some(kernel_path) = &kernel { + println!( + "- Trying to auto detect KMI version for {}", + kernel_path.to_str().unwrap() + ); + parse_kmi_from_kernel(kernel_path, tmpdir.path())? + } else { + "".to_string() + } + } + }; + kmi }; let skip_init = kmi.starts_with("android12-"); @@ -329,9 +408,6 @@ fn do_patch( // try extract magiskboot/bootctl let _ = assets::ensure_binaries(false); - // extract magiskboot - let magiskboot = find_magiskboot(magiskboot_path, workdir)?; - if let Some(kernel) = kernel { std::fs::copy(kernel, workdir.join("kernel")).context("copy kernel from failed")?; } @@ -558,7 +634,7 @@ fn find_boot_image( } else { if cfg!(not(target_os = "android")) { println!("- Current OS is not android, refusing auto bootimage/bootdevice detection"); - bail!("please specify a boot image"); + bail!("Please specify a boot image"); } let mut slot_suffix = utils::getprop("ro.boot.slot_suffix").unwrap_or_else(|| String::from("")); From a49adaa8470272805f845e648c0504af936517dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=81=E3=82=BB?= <123655015+chise0713@users.noreply.github.com> Date: Fri, 26 Jul 2024 11:02:13 +0800 Subject: [PATCH 056/113] ksud: Replace dependencies `regex` to `regex-lite` --- userspace/ksud/Cargo.lock | 8 +++++++- userspace/ksud/Cargo.toml | 2 +- userspace/ksud/src/boot_patch.rs | 9 +++++---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 3c64e50cf645..a74965235818 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -899,7 +899,7 @@ dependencies = [ "loopdev", "nom", "procfs", - "regex", + "regex-lite", "retry", "rust-embed", "rustix 0.38.34 (git+https://github.com/Kernel-SU/rustix.git?branch=main)", @@ -1251,6 +1251,12 @@ dependencies = [ "regex-syntax", ] +[[package]] +name = "regex-lite" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" + [[package]] name = "regex-syntax" version = "0.8.4" diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index f85218e05d1e..c01c8b021f82 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -25,7 +25,6 @@ log = "0.4" env_logger = { version = "0.11", default-features = false } serde = { version = "1" } serde_json = "1" -regex = "1" encoding_rs = "0.8" retry = "2" humansize = "2" @@ -46,6 +45,7 @@ sha1 = "0.10" tempdir = "0.3" chrono = "0.4" hole-punch = { git = "https://github.com/tiann/hole-punch" } +regex-lite = "0.1.6" [target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies] rustix = { git = "https://github.com/Kernel-SU/rustix.git", branch = "main", features = [ diff --git a/userspace/ksud/src/boot_patch.rs b/userspace/ksud/src/boot_patch.rs index fb0c9eaa10fb..29313f1b8d70 100644 --- a/userspace/ksud/src/boot_patch.rs +++ b/userspace/ksud/src/boot_patch.rs @@ -10,6 +10,7 @@ use anyhow::bail; use anyhow::ensure; use anyhow::Context; use anyhow::Result; +use regex_lite::Regex; use which::which; use crate::defs; @@ -27,7 +28,6 @@ fn ensure_gki_kernel() -> Result<()> { #[cfg(target_os = "android")] pub fn get_kernel_version() -> Result<(i32, i32, i32)> { - use regex::Regex; let uname = rustix::system::uname(); let version = uname.release().to_string_lossy(); let re = Regex::new(r"(\d+)\.(\d+)\.(\d+)")?; @@ -52,7 +52,6 @@ pub fn get_kernel_version() -> Result<(i32, i32, i32)> { #[cfg(target_os = "android")] fn parse_kmi(version: &str) -> Result { - use regex::Regex; let re = Regex::new(r"(.* )?(\d+\.\d+)(\S+)?(android\d+)(.*)")?; let cap = re .captures(version) @@ -98,7 +97,6 @@ pub fn get_current_kmi() -> Result { } fn parse_kmi_from_kernel(kernel: &PathBuf, workdir: &Path) -> Result { - use regex::Regex; use std::fs::{copy, File}; use std::io::{BufReader, Read}; let kernel_path = workdir.join("kernel"); @@ -146,7 +144,10 @@ fn parse_kmi_from_boot(magiskboot: &Path, image: &PathBuf, workdir: &Path) -> Re .context("Failed to execute magiskboot command")?; if !status.success() { - bail!("magiskboot unpack failed with status: {:?}", status.code().unwrap()); + bail!( + "magiskboot unpack failed with status: {:?}", + status.code().unwrap() + ); } parse_kmi_from_kernel(&image_path, workdir) From f378b827b2c2f49438f62571d45f27fdc41dd5a4 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 26 Jul 2024 13:11:26 +0800 Subject: [PATCH 057/113] Remove regex dependency from android_logger --- userspace/ksud/Cargo.lock | 1 - userspace/ksud/Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index a74965235818..7382fa2968fb 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -574,7 +574,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6dc8c8ff84895b051f07a0e65f975cf225131742531338752abfb324e4449ff" dependencies = [ "log", - "regex", ] [[package]] diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index c01c8b021f82..cdbb274849c6 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -57,7 +57,7 @@ procfs = "0.16" loopdev = { git = "https://github.com/Kernel-SU/loopdev" } [target.'cfg(target_os = "android")'.dependencies] -android_logger = "0.14" +android_logger = { version = "0.14", default-features = false } [profile.release] strip = true From f800751772842be0a18e82782420c054975373e4 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 26 Jul 2024 13:21:23 +0800 Subject: [PATCH 058/113] Use customize java-properties to get rid of regex dep --- userspace/ksud/Cargo.lock | 43 ++------------------------------------- userspace/ksud/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 42 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 7382fa2968fb..b88586744d09 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -46,15 +46,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - [[package]] name = "allocator-api2" version = "0.2.18" @@ -837,12 +828,11 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "java-properties" version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37bf6f484471c451f2b51eabd9e66b3fa7274550c5ec4b6c3d6070840945117f" +source = "git+https://github.com/Kernel-SU/java-properties.git?branch=master#42a4aa941b70ded2dd3be9e9f892471023e70229" dependencies = [ "encoding_rs", "lazy_static", - "regex", + "regex-lite", ] [[package]] @@ -1227,41 +1217,12 @@ dependencies = [ "rand_core 0.3.1", ] -[[package]] -name = "regex" -version = "1.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata", - "regex-syntax", -] - -[[package]] -name = "regex-automata" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - [[package]] name = "regex-lite" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - [[package]] name = "remove_dir_all" version = "0.5.3" diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index cdbb274849c6..bd60d3b7a393 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -20,7 +20,7 @@ zip = { version = "2.1.5", features = [ "xz", ], default-features = false } zip-extensions = "0.8" -java-properties = "2" +java-properties = { git = "https://github.com/Kernel-SU/java-properties.git", branch = "master", default-features = false } log = "0.4" env_logger = { version = "0.11", default-features = false } serde = { version = "1" } From f7220627757fbb7cb9b5a075c9ef900641845296 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 26 Jul 2024 13:24:55 +0800 Subject: [PATCH 059/113] Fix clippy --- userspace/ksud/src/boot_patch.rs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/userspace/ksud/src/boot_patch.rs b/userspace/ksud/src/boot_patch.rs index 29313f1b8d70..a303e03091e4 100644 --- a/userspace/ksud/src/boot_patch.rs +++ b/userspace/ksud/src/boot_patch.rs @@ -100,7 +100,7 @@ fn parse_kmi_from_kernel(kernel: &PathBuf, workdir: &Path) -> Result { use std::fs::{copy, File}; use std::io::{BufReader, Read}; let kernel_path = workdir.join("kernel"); - copy(&kernel, &kernel_path).context("Failed to copy kernel")?; + copy(kernel, &kernel_path).context("Failed to copy kernel")?; let file = File::open(&kernel_path).context("Failed to open kernel file")?; let mut reader = BufReader::new(file); @@ -132,7 +132,7 @@ fn parse_kmi_from_kernel(kernel: &PathBuf, workdir: &Path) -> Result { fn parse_kmi_from_boot(magiskboot: &Path, image: &PathBuf, workdir: &Path) -> Result { let image_path = workdir.join("image"); - std::fs::copy(&image, &image_path).context("Failed to copy image")?; + std::fs::copy(image, &image_path).context("Failed to copy image")?; let status = Command::new(magiskboot) .current_dir(workdir) @@ -375,7 +375,7 @@ fn do_patch( let kmi = if let Some(kmi) = kmi { kmi } else { - let kmi = match get_current_kmi() { + match get_current_kmi() { Ok(value) => value, Err(e) => { println!("- {}", e); @@ -395,8 +395,7 @@ fn do_patch( "".to_string() } } - }; - kmi + } }; let skip_init = kmi.starts_with("android12-"); From 3398bd580a830fa9e7eb689e40acdde67e239711 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 26 Jul 2024 18:14:57 +0800 Subject: [PATCH 060/113] Set zip features correctly (#1916) --- userspace/ksud/Cargo.lock | 219 ++++++-------------------------------- userspace/ksud/Cargo.toml | 6 +- 2 files changed, 32 insertions(+), 193 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index b88586744d09..458b835a62a8 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -23,17 +23,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if 1.0.0", - "cipher", - "cpufeatures", -] - [[package]] name = "ahash" version = "0.8.11" @@ -92,9 +81,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ "anstyle", "anstyle-parse", @@ -107,33 +96,33 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", "windows-sys", @@ -225,36 +214,11 @@ version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "cc" version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" -dependencies = [ - "jobserver", - "libc", -] [[package]] name = "cfg-if" @@ -282,21 +246,11 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clap" -version = "4.5.10" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6b81fb3c84f5563d509c59b5a48d935f689e993afa90fe39047f05adef9142" +checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" dependencies = [ "clap_builder", "clap_derive", @@ -304,9 +258,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.10" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca6706fd5224857d9ac5eb9355f6683563cc0541c7cd9d014043b57cbec78ac" +checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" dependencies = [ "anstream", "anstyle", @@ -316,9 +270,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" dependencies = [ "heck", "proc-macro2", @@ -328,15 +282,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] name = "colorchoice" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] name = "const_format" @@ -358,12 +312,6 @@ dependencies = [ "unicode-xid", ] -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - [[package]] name = "core-foundation-sys" version = "0.8.6" @@ -529,7 +477,6 @@ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer", "crypto-common", - "subtle", ] [[package]] @@ -560,18 +507,18 @@ dependencies = [ [[package]] name = "env_filter" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6dc8c8ff84895b051f07a0e65f975cf225131742531338752abfb324e4449ff" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" dependencies = [ "log", ] [[package]] name = "env_logger" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06676b12debf7bba6903559720abca942d3a66b8acb88815fd2c7c6537e9ade1" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" dependencies = [ "env_filter", "log", @@ -699,15 +646,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - [[package]] name = "hole-punch" version = "0.0.4-alpha.0" @@ -795,15 +733,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - [[package]] name = "is_executable" version = "1.0.1" @@ -815,9 +744,9 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" @@ -835,15 +764,6 @@ dependencies = [ "regex-lite", ] -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - [[package]] name = "js-sys" version = "0.3.69" @@ -1052,28 +972,12 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest", - "hmac", -] - [[package]] name = "pin-project-lite" version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - [[package]] name = "powerfmt" version = "0.2.0" @@ -1408,12 +1312,6 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - [[package]] name = "syn" version = "2.0.72" @@ -1517,9 +1415,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -1742,60 +1640,31 @@ dependencies = [ "syn", ] -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "zip" version = "2.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b895748a3ebcb69b9d38dcfdf21760859a4b0d0b0015277640c2ef4c69640e6f" dependencies = [ - "aes", "arbitrary", - "bzip2", - "constant_time_eq", "crc32fast", "crossbeam-utils", "deflate64", "displaydoc", "flate2", - "hmac", "indexmap", "lzma-rs", "memchr", - "pbkdf2", - "rand 0.8.5", - "sha1", "thiserror", "time", - "zeroize", "zopfli", - "zstd", ] [[package]] name = "zip-extensions" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb0a99499b3497d765525c5d05e3ade9ca4a731c184365c19472c3fd6ba86341" +checksum = "386508a00aae1d8218b9252a41f59bba739ccee3f8e420bb90bcb1c30d960d4a" dependencies = [ "zip", ] @@ -1813,31 +1682,3 @@ dependencies = [ "once_cell", "simd-adler32", ] - -[[package]] -name = "zstd" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcf2b778a664581e31e389454a7072dab1647606d44f7feea22cd5abb9c9f3f9" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "7.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" -dependencies = [ - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index bd60d3b7a393..34e0bb9af0b1 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -10,16 +10,14 @@ rust-version = "1.77.2" anyhow = "1" clap = { version = "4", features = ["derive"] } const_format = "0.2" -zip = { version = "2.1.5", features = [ +zip = { version = "2.1.5", default-features = false } +zip-extensions = { version = "0.8.1", features = [ "deflate", "deflate64", - "bzip2", "time", - "zstd", "lzma", "xz", ], default-features = false } -zip-extensions = "0.8" java-properties = { git = "https://github.com/Kernel-SU/java-properties.git", branch = "master", default-features = false } log = "0.4" env_logger = { version = "0.11", default-features = false } From 93eb17db29a5908b2ad365b3889ad6d2b979b614 Mon Sep 17 00:00:00 2001 From: sus <54392299+jeffpeng3@users.noreply.github.com> Date: Fri, 26 Jul 2024 19:22:09 +0800 Subject: [PATCH 061/113] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=96=87=E6=AA=94?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=20(#1901)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README_TW.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README_TW.md b/docs/README_TW.md index d025e1742a67..a148e45c369b 100644 --- a/docs/README_TW.md +++ b/docs/README_TW.md @@ -36,7 +36,7 @@ WSA和ChromeOS和執行在容器中的 Android 也可以與 KernelSU 一同運 若要協助翻譯 KernelSU 或改進現有翻譯,請使用 [Weblate](https://hosted.weblate.org/engage/kernelsu/)。 翻譯管理器的PR不再被接受,因為它會與Weblate衝突。 -### 討論 +## 討論 - Telegram:[@KernelSU](https://t.me/KernelSU) From 74e4a9cc2ccd346cf12bb11386d18911ab67344a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 3 Aug 2024 13:15:23 +0800 Subject: [PATCH 062/113] build(deps): bump com.google.devtools.ksp from 2.0.0-1.0.23 to 2.0.0-1.0.24 in /manager in the maven group (#1925) --- manager/gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 648385746499..e3b68aa73b66 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] agp = "8.5.1" kotlin = "2.0.0" -ksp = "2.0.0-1.0.23" +ksp = "2.0.0-1.0.24" compose-bom = "2024.06.00" lifecycle = "2.8.4" accompanist = "0.34.0" From 2eed3925db06f56f37cdf662b6fcccc5ce696eed Mon Sep 17 00:00:00 2001 From: SupeChicken666 Date: Sat, 3 Aug 2024 22:36:56 +0800 Subject: [PATCH 063/113] ci: Fix ARCVM workflow to adapt to the change of kernel/Makefile (#1906) Probably fixes #1655, likely related Signed-off-by: supechicken --- .github/workflows/build-kernel-arcvm.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-kernel-arcvm.yml b/.github/workflows/build-kernel-arcvm.yml index 18c97c2f949d..9dbe8de1a0f6 100644 --- a/.github/workflows/build-kernel-arcvm.yml +++ b/.github/workflows/build-kernel-arcvm.yml @@ -82,7 +82,7 @@ jobs: SUBLEVEL=$(grep -E '^SUBLEVEL = ' Makefile | awk '{print $3}') echo "ChromeOS ARCVM Linux kernel version: $VERSION.$PATCHLEVEL.$SUBLEVEL" echo "version=$VERSION.$PATCHLEVEL.$SUBLEVEL" >> $GITHUB_ENV - + - name: Setup KernelSU working-directory: kernel run: | @@ -94,7 +94,9 @@ jobs: echo "[+] Add KernelSU driver to Makefile" DRIVER_MAKEFILE=$KERNEL_ROOT/drivers/Makefile - grep -q "kernelsu" $DRIVER_MAKEFILE || echo "obj-y += kernelsu/" >> $DRIVER_MAKEFILE + DRIVER_KCONFIG=$KERNEL_ROOT/drivers/Kconfig + grep -q "kernelsu" "$DRIVER_MAKEFILE" || printf "\nobj-\$(CONFIG_KSU) += kernelsu/\n" >> "$DRIVER_MAKEFILE" + grep -q "kernelsu" "$DRIVER_KCONFIG" || sed -i "/endmenu/i\\source \"drivers/kernelsu/Kconfig\"" "$DRIVER_KCONFIG" echo "[+] Apply KernelSU patches" cd $KERNEL_ROOT && git apply $GITHUB_WORKSPACE/KernelSU/.github/patches/5.10/*.patch || echo "[-] No patch found" From 8db94270aa76f8631a68c234fb8da47bd002abb3 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sun, 4 Aug 2024 23:06:11 +0800 Subject: [PATCH 064/113] Upgrade ndk for CI (#1941) --- .github/workflows/build-su.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build-su.yml b/.github/workflows/build-su.yml index 2fbb93a9a485..c74275a6cb14 100644 --- a/.github/workflows/build-su.yml +++ b/.github/workflows/build-su.yml @@ -26,9 +26,6 @@ jobs: else echo "UPLOAD=false" >> $GITHUB_OUTPUT fi - - uses: nttld/setup-ndk@v1 - with: - ndk-version: r26d - name: Build su working-directory: ./userspace/su run: ndk-build @@ -36,4 +33,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: su - path: ./userspace/su/libs \ No newline at end of file + path: ./userspace/su/libs From 894b61748b03bc746369ec3db85462c2e798f871 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sun, 4 Aug 2024 23:13:38 +0800 Subject: [PATCH 065/113] Update build-su.yml (#1942) --- .github/workflows/build-su.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-su.yml b/.github/workflows/build-su.yml index c74275a6cb14..22fd58af4508 100644 --- a/.github/workflows/build-su.yml +++ b/.github/workflows/build-su.yml @@ -28,7 +28,7 @@ jobs: fi - name: Build su working-directory: ./userspace/su - run: ndk-build + run: $ANDROID_NDK/ndk-build - name: Upload a Build Artifact uses: actions/upload-artifact@v4 with: From 46f21e84e804e62810ac2e858fd8ab109eecb50d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:22:35 +0800 Subject: [PATCH 066/113] build(deps): bump the crates group across 1 directory with 12 updates (#1936) --- userspace/ksud/Cargo.lock | 68 ++++++++++++++++++++++++++------------- userspace/ksud/Cargo.toml | 2 +- 2 files changed, 47 insertions(+), 23 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 458b835a62a8..d262204ba46f 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -32,7 +32,7 @@ dependencies = [ "cfg-if 1.0.0", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -210,15 +210,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.6.1" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cc" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" [[package]] name = "cfg-if" @@ -248,9 +248,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -258,9 +258,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -270,9 +270,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck", "proc-macro2", @@ -725,9 +725,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" dependencies = [ "equivalent", "hashbrown", @@ -986,9 +986,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +dependencies = [ + "zerocopy 0.6.6", +] [[package]] name = "proc-macro2" @@ -1374,9 +1377,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "tokio" -version = "1.39.1" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", @@ -1491,9 +1494,9 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "which" -version = "6.0.1" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7" +checksum = "3d9c5ed668ee1f17edb3b627225343d210006a90bb1e3745ce1f30b1fb115075" dependencies = [ "either", "home", @@ -1620,13 +1623,34 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" +[[package]] +name = "zerocopy" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" +dependencies = [ + "byteorder", + "zerocopy-derive 0.6.6", +] + [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy-derive" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -1642,9 +1666,9 @@ dependencies = [ [[package]] name = "zip" -version = "2.1.5" +version = "2.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b895748a3ebcb69b9d38dcfdf21760859a4b0d0b0015277640c2ef4c69640e6f" +checksum = "40dd8c92efc296286ce1fbd16657c5dbefff44f1b4ca01cc5f517d8b7b3d3e2e" dependencies = [ "arbitrary", "crc32fast", diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index 34e0bb9af0b1..3e6545dd38fd 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -10,7 +10,7 @@ rust-version = "1.77.2" anyhow = "1" clap = { version = "4", features = ["derive"] } const_format = "0.2" -zip = { version = "2.1.5", default-features = false } +zip = { version = "2.1.6", default-features = false } zip-extensions = { version = "0.8.1", features = [ "deflate", "deflate64", From a94c51c78e9f1ca4816c020671da0026e1f6e6a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 10:22:56 +0800 Subject: [PATCH 067/113] build(deps): bump the npm group across 1 directory with 17 updates (#1937) --- website/package.json | 2 +- website/yarn.lock | 411 +++++++++++++++++++++++-------------------- 2 files changed, 223 insertions(+), 190 deletions(-) diff --git a/website/package.json b/website/package.json index 90826d3ac7b9..16b4479277bb 100644 --- a/website/package.json +++ b/website/package.json @@ -8,7 +8,7 @@ "license": "MIT", "devDependencies": { "vitepress": "^1.3.1", - "vue": "^3.4.34" + "vue": "^3.4.35" }, "scripts": { "docs:dev": "vitepress dev docs", diff --git a/website/yarn.lock b/website/yarn.lock index 18c4540858a9..416f8124f7d9 100644 --- a/website/yarn.lock +++ b/website/yarn.lock @@ -150,10 +150,31 @@ "@algolia/logger-common" "4.24.0" "@algolia/requester-common" "4.24.0" -"@babel/parser@^7.24.7": +"@babel/helper-string-parser@^7.24.8": version "7.24.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" - integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/parser@^7.24.7": + version "7.25.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.3.tgz#91fb126768d944966263f0657ab222a642b82065" + integrity sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw== + dependencies: + "@babel/types" "^7.25.2" + +"@babel/types@^7.25.2": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.2.tgz#55fb231f7dc958cd69ea141a4c2997e819646125" + integrity sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" "@docsearch/css@3.6.1", "@docsearch/css@^3.6.0": version "3.6.1" @@ -293,92 +314,99 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== -"@jridgewell/sourcemap-codec@^1.4.15": +"@jridgewell/sourcemap-codec@^1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== -"@rollup/rollup-android-arm-eabi@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz#3d9fd50164b94964f5de68c3c4ce61933b3a338d" - integrity sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w== - -"@rollup/rollup-android-arm64@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz#e1a6d4bca2eb08c84fd996a4bf896ce4b6f4014c" - integrity sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw== - -"@rollup/rollup-darwin-arm64@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz#0a3fffea69489a24a96079af414b0be78df8abbc" - integrity sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA== - -"@rollup/rollup-darwin-x64@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz#13fbdb15f58f090871b0ffff047ece06ad6ad74c" - integrity sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg== - -"@rollup/rollup-linux-arm-gnueabihf@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz#e9d9219ddf6f6e946e2ee322198af12466d2c868" - integrity sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw== - -"@rollup/rollup-linux-arm-musleabihf@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz#4ba804a00b5e793196a622f6977e05f23e01f59a" - integrity sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ== - -"@rollup/rollup-linux-arm64-gnu@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz#d871e3f41de759a6db27fc99235b782ba47c15cc" - integrity sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug== - -"@rollup/rollup-linux-arm64-musl@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz#6e63f7ad4cc51bd2c693a2826fd279de9eaa05b5" - integrity sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ== - -"@rollup/rollup-linux-powerpc64le-gnu@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz#1540b284d91c440bc9fa7a1714cfb71a5597e94d" - integrity sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ== - -"@rollup/rollup-linux-riscv64-gnu@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz#70ae58103b5bc7ba2e2235738b51d97022c8ef92" - integrity sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg== - -"@rollup/rollup-linux-s390x-gnu@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz#579ca5f271421a961d3c73d221202c79e02ff03a" - integrity sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA== - -"@rollup/rollup-linux-x64-gnu@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz#f0282d761b8b4e7b92b236813475248e37231849" - integrity sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA== - -"@rollup/rollup-linux-x64-musl@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz#65da807ac66c505ad14b76f1e5976006cb67dd5f" - integrity sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A== - -"@rollup/rollup-win32-arm64-msvc@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz#1eed24b91f421c2eea8bb7ca8889ba0c867e1780" - integrity sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg== - -"@rollup/rollup-win32-ia32-msvc@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz#1ed93c9cdc84e185359797a686f4d1576afcea58" - integrity sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q== - -"@rollup/rollup-win32-x64-msvc@4.19.0": - version "4.19.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz#baf9b65023ea2ecc5e6ec68f787a0fecfd8ee84c" - integrity sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag== - -"@shikijs/core@1.11.1", "@shikijs/core@^1.10.3": +"@rollup/rollup-android-arm-eabi@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.2.tgz#6b991cb44bf69e50163528ea85bed545330ba821" + integrity sha512-OHflWINKtoCFSpm/WmuQaWW4jeX+3Qt3XQDepkkiFTsoxFc5BpF3Z5aDxFZgBqRjO6ATP5+b1iilp4kGIZVWlA== + +"@rollup/rollup-android-arm64@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.2.tgz#5d3c8c2f9742d62ba258cc378bd2d4720f0c431c" + integrity sha512-k0OC/b14rNzMLDOE6QMBCjDRm3fQOHAL8Ldc9bxEWvMo4Ty9RY6rWmGetNTWhPo+/+FNd1lsQYRd0/1OSix36A== + +"@rollup/rollup-darwin-arm64@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.2.tgz#8eac8682a34a705bb6a57eb3e739fd6bbedfabed" + integrity sha512-IIARRgWCNWMTeQH+kr/gFTHJccKzwEaI0YSvtqkEBPj7AshElFq89TyreKNFAGh5frLfDCbodnq+Ye3dqGKPBw== + +"@rollup/rollup-darwin-x64@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.2.tgz#70a9953fc624bd7f645901f4250f6b5807ac7e92" + integrity sha512-52udDMFDv54BTAdnw+KXNF45QCvcJOcYGl3vQkp4vARyrcdI/cXH8VXTEv/8QWfd6Fru8QQuw1b2uNersXOL0g== + +"@rollup/rollup-linux-arm-gnueabihf@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.2.tgz#8f6c4ff4c4972413ff94345080380d4e3caa3c69" + integrity sha512-r+SI2t8srMPYZeoa1w0o/AfoVt9akI1ihgazGYPQGRilVAkuzMGiTtexNZkrPkQsyFrvqq/ni8f3zOnHw4hUbA== + +"@rollup/rollup-linux-arm-musleabihf@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.2.tgz#5d3c0fe5ea5ddf2feb511b3cb031df17eaa7e33d" + integrity sha512-+tYiL4QVjtI3KliKBGtUU7yhw0GMcJJuB9mLTCEauHEsqfk49gtUBXGtGP3h1LW8MbaTY6rSFIQV1XOBps1gBA== + +"@rollup/rollup-linux-arm64-gnu@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.2.tgz#b7f104388b2f5624d9f8adfff10ba59af8ab8ed1" + integrity sha512-OR5DcvZiYN75mXDNQQxlQPTv4D+uNCUsmSCSY2FolLf9W5I4DSoJyg7z9Ea3TjKfhPSGgMJiey1aWvlWuBzMtg== + +"@rollup/rollup-linux-arm64-musl@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.2.tgz#6d5ca6d3904309bec285ea5202d589cebb93dee4" + integrity sha512-Hw3jSfWdUSauEYFBSFIte6I8m6jOj+3vifLg8EU3lreWulAUpch4JBjDMtlKosrBzkr0kwKgL9iCfjA8L3geoA== + +"@rollup/rollup-linux-powerpc64le-gnu@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.2.tgz#4df9be1396ea9eb0ca99fd0f2e858008d7f063e3" + integrity sha512-rhjvoPBhBwVnJRq/+hi2Q3EMiVF538/o9dBuj9TVLclo9DuONqt5xfWSaE6MYiFKpo/lFPJ/iSI72rYWw5Hc7w== + +"@rollup/rollup-linux-riscv64-gnu@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.2.tgz#80d63c5562915a2f8616a04251fcaee0218112b0" + integrity sha512-EAz6vjPwHHs2qOCnpQkw4xs14XJq84I81sDRGPEjKPFVPBw7fwvtwhVjcZR6SLydCv8zNK8YGFblKWd/vRmP8g== + +"@rollup/rollup-linux-s390x-gnu@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.2.tgz#ef62e9bc5cc3b84fcfe96ec0a42d1989691217b3" + integrity sha512-IJSUX1xb8k/zN9j2I7B5Re6B0NNJDJ1+soezjNojhT8DEVeDNptq2jgycCOpRhyGj0+xBn7Cq+PK7Q+nd2hxLA== + +"@rollup/rollup-linux-x64-gnu@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.2.tgz#6a275282a0080fee98ddd9fda0de23c4c6bafd48" + integrity sha512-OgaToJ8jSxTpgGkZSkwKE+JQGihdcaqnyHEFOSAU45utQ+yLruE1dkonB2SDI8t375wOKgNn8pQvaWY9kPzxDQ== + +"@rollup/rollup-linux-x64-musl@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.2.tgz#64f0c704107e6b45b26dd8c2e1ff64246e4a1251" + integrity sha512-5V3mPpWkB066XZZBgSd1lwozBk7tmOkKtquyCJ6T4LN3mzKENXyBwWNQn8d0Ci81hvlBw5RoFgleVpL6aScLYg== + +"@rollup/rollup-win32-arm64-msvc@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.2.tgz#bada17b0c5017ff58d0feba401c43ff5a646c693" + integrity sha512-ayVstadfLeeXI9zUPiKRVT8qF55hm7hKa+0N1V6Vj+OTNFfKSoUxyZvzVvgtBxqSb5URQ8sK6fhwxr9/MLmxdA== + +"@rollup/rollup-win32-ia32-msvc@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.2.tgz#a716d862f6ac39d88bdb825e27f63aeb0387cd66" + integrity sha512-Mda7iG4fOLHNsPqjWSjANvNZYoW034yxgrndof0DwCy0D3FvTjeNo+HGE6oGWgvcLZNLlcp0hLEFcRs+UGsMLg== + +"@rollup/rollup-win32-x64-msvc@4.19.2": + version "4.19.2" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.2.tgz#d67206c5f2e4b2832ce360bbbde194e96d16dc51" + integrity sha512-DPi0ubYhSow/00YqmG1jWm3qt1F8aXziHc/UNy8bo9cpCacqhuWu+iSq/fp2SyEQK7iYTZ60fBU9cat3MXTjIQ== + +"@shikijs/core@1.12.1": + version "1.12.1" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.12.1.tgz#32626494bef573cce01f9e0a36d5776cbc1b2e58" + integrity sha512-biCz/mnkMktImI6hMfMX3H9kOeqsInxWEyCHbSlL8C/2TR1FqfmGxTLRNwYCKsyCyxWLbB8rEqXRVZuyxuLFmA== + dependencies: + "@types/hast" "^3.0.4" + +"@shikijs/core@^1.10.3": version "1.11.1" resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.11.1.tgz#a102cf56f32fa8cf3ceb9f918f2da5511782efe7" integrity sha512-Qsn8h15SWgv5TDRoDmiHNzdQO2BxDe86Yq6vIHf5T0cCvmfmccJKIzHtep8bQO9HMBZYCtCBzaXdd1MnxZBPSg== @@ -386,11 +414,11 @@ "@types/hast" "^3.0.4" "@shikijs/transformers@^1.10.3": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.11.1.tgz#917f542f6b1eab8e599013bb0afd2b52bd4eee4e" - integrity sha512-e6DUvZRylv+V8htF5q3ZuNyPaxJYQnsLyTd2S/K6ePs8t132NJS82LG2vARmtfSFP3I3CcBXfJ73FaCgI9kAMg== + version "1.12.1" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.12.1.tgz#8aedda6f038636662666c771dbb13296084fce34" + integrity sha512-zOpj/S2thBvnJV4Ty3EE8aRs/VqCbV+lgtEYeBRkPxTW22uLADEIZq0qjt5W2Rfy2KSu29e73nRyzp4PefjUTg== dependencies: - shiki "1.11.1" + shiki "1.12.1" "@types/estree@1.0.5": version "1.0.5" @@ -433,51 +461,51 @@ integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== "@vitejs/plugin-vue@^5.0.5": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.0.tgz#d29f2aad9127c73b578e7a463e76249e89256e0b" - integrity sha512-QMRxARyrdiwi1mj3AW4fLByoHTavreXq0itdEW696EihXglf1MB3D4C2gBvE0jMPH29ZjC3iK8aIaUMLf4EOGA== + version "5.1.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz#f11091e0130eca6c1ca8cfb85ee71ea53b255d31" + integrity sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A== -"@vue/compiler-core@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.34.tgz#4e6af7a00927284f1f67571e2e1a8a6e93ee2d1f" - integrity sha512-Z0izUf32+wAnQewjHu+pQf1yw00EGOmevl1kE+ljjjMe7oEfpQ+BI3/JNK7yMB4IrUsqLDmPecUrpj3mCP+yJQ== +"@vue/compiler-core@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.35.tgz#421922a75ecabf1aabc6b7a2ce98b5acb2fc2d65" + integrity sha512-gKp0zGoLnMYtw4uS/SJRRO7rsVggLjvot3mcctlMXunYNsX+aRJDqqw/lV5/gHK91nvaAAlWFgdVl020AW1Prg== dependencies: "@babel/parser" "^7.24.7" - "@vue/shared" "3.4.34" + "@vue/shared" "3.4.35" entities "^4.5.0" estree-walker "^2.0.2" source-map-js "^1.2.0" -"@vue/compiler-dom@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.34.tgz#fd3b8df142b063c2cc0ec3e168b76b0d7774b78c" - integrity sha512-3PUOTS1h5cskdOJMExCu2TInXuM0j60DRPpSCJDqOCupCfUZCJoyQmKtRmA8EgDNZ5kcEE7vketamRZfrEuVDw== +"@vue/compiler-dom@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.35.tgz#cd0881f1b4ed655cd96367bce4845f87023a5a2d" + integrity sha512-pWIZRL76/oE/VMhdv/ovZfmuooEni6JPG1BFe7oLk5DZRo/ImydXijoZl/4kh2406boRQ7lxTYzbZEEXEhj9NQ== dependencies: - "@vue/compiler-core" "3.4.34" - "@vue/shared" "3.4.34" + "@vue/compiler-core" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/compiler-sfc@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.34.tgz#9a892747f8f707183a592f2dbd359b0272749dc1" - integrity sha512-x6lm0UrM03jjDXTPZgD9Ad8bIVD1ifWNit2EaWQIZB5CULr46+FbLQ5RpK7AXtDHGjx9rmvC7QRCTjsiGkAwRw== +"@vue/compiler-sfc@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.35.tgz#16f87dd3bdab64cef14d3a6fcf53f8673e404071" + integrity sha512-xacnRS/h/FCsjsMfxBkzjoNxyxEyKyZfBch/P4vkLRvYJwe5ChXmZZrj8Dsed/752H2Q3JE8kYu9Uyha9J6PgA== dependencies: "@babel/parser" "^7.24.7" - "@vue/compiler-core" "3.4.34" - "@vue/compiler-dom" "3.4.34" - "@vue/compiler-ssr" "3.4.34" - "@vue/shared" "3.4.34" + "@vue/compiler-core" "3.4.35" + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" estree-walker "^2.0.2" magic-string "^0.30.10" - postcss "^8.4.39" + postcss "^8.4.40" source-map-js "^1.2.0" -"@vue/compiler-ssr@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.34.tgz#4fac491550ddc2d8733ebb58a9c3bfbe85aa7bce" - integrity sha512-8TDBcLaTrFm5rnF+Qm4BlliaopJgqJ28Nsrc80qazynm5aJO+Emu7y0RWw34L8dNnTRdcVBpWzJxhGYzsoVu4g== +"@vue/compiler-ssr@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.35.tgz#0774c9a0afed74d71615209904b38f3fa9711adb" + integrity sha512-7iynB+0KB1AAJKk/biENTV5cRGHRdbdaD7Mx3nWcm1W8bVD6QmnH3B4AHhQQ1qZHhqFwzEzMwiytXm3PX1e60A== dependencies: - "@vue/compiler-dom" "3.4.34" - "@vue/shared" "3.4.34" + "@vue/compiler-dom" "3.4.35" + "@vue/shared" "3.4.35" "@vue/devtools-api@^7.3.5": version "7.3.7" @@ -506,43 +534,43 @@ dependencies: rfdc "^1.4.1" -"@vue/reactivity@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.34.tgz#388ec52f55a3fbe6f9332d5d993567a1886fdc76" - integrity sha512-ua+Lo+wBRlBEX9TtgPOShE2JwIO7p6BTZ7t1KZVPoaBRfqbC7N3c8Mpzicx173fXxx5VXeU6ykiHo7WgLzJQDA== +"@vue/reactivity@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.35.tgz#dfbb4f5371da1290ac86e3313d0e9a68bb0ab38d" + integrity sha512-Ggtz7ZZHakriKioveJtPlStYardwQH6VCs9V13/4qjHSQb/teE30LVJNrbBVs4+aoYGtTQKJbTe4CWGxVZrvEw== dependencies: - "@vue/shared" "3.4.34" + "@vue/shared" "3.4.35" -"@vue/runtime-core@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.34.tgz#47d2ab89c796d7012be17e2bbec40cff001317d7" - integrity sha512-PXhkiRPwcPGJ1BnyBZFI96GfInCVskd0HPNIAZn7i3YOmLbtbTZpB7/kDTwC1W7IqdGPkTVC63IS7J2nZs4Ebg== +"@vue/runtime-core@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.35.tgz#c036013a7b1bbe0d14a6b76eb4355dae6690d2e6" + integrity sha512-D+BAjFoWwT5wtITpSxwqfWZiBClhBbR+bm0VQlWYFOadUUXFo+5wbe9ErXhLvwguPiLZdEF13QAWi2vP3ZD5tA== dependencies: - "@vue/reactivity" "3.4.34" - "@vue/shared" "3.4.34" + "@vue/reactivity" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/runtime-dom@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.34.tgz#8a7f25647c3ac8d9fc2208fd5e06f70ba2dd6638" - integrity sha512-dXqIe+RqFAK2Euak4UsvbIupalrhc67OuQKpD7HJ3W2fv8jlqvI7szfBCsAEcE8o/wyNpkloxB6J8viuF/E3gw== +"@vue/runtime-dom@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.35.tgz#74254c7c327163d692e1d7d2b6d9e92463744e90" + integrity sha512-yGOlbos+MVhlS5NWBF2HDNgblG8e2MY3+GigHEyR/dREAluvI5tuUUgie3/9XeqhPE4LF0i2wjlduh5thnfOqw== dependencies: - "@vue/reactivity" "3.4.34" - "@vue/runtime-core" "3.4.34" - "@vue/shared" "3.4.34" + "@vue/reactivity" "3.4.35" + "@vue/runtime-core" "3.4.35" + "@vue/shared" "3.4.35" csstype "^3.1.3" -"@vue/server-renderer@3.4.34": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.34.tgz#4b3a5bc6fb818aef9713e41fb78dece256dd933c" - integrity sha512-GeyEUfMVRZMD/mZcNONEqg7MiU10QQ1DB3O/Qr6+8uXpbwdlmVgQ5Qs1/ZUAFX1X2UUtqMoGrDRbxdWfOJFT7Q== +"@vue/server-renderer@3.4.35": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.35.tgz#188e94e82d8e729ba7b40dd91d10678b85f77c6b" + integrity sha512-iZ0e/u9mRE4T8tNhlo0tbA+gzVkgv8r5BX6s1kRbOZqfpq14qoIvCZ5gIgraOmYkMYrSEZgkkojFPr+Nyq/Mnw== dependencies: - "@vue/compiler-ssr" "3.4.34" - "@vue/shared" "3.4.34" + "@vue/compiler-ssr" "3.4.35" + "@vue/shared" "3.4.35" -"@vue/shared@3.4.34", "@vue/shared@^3.4.31": - version "3.4.34" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.34.tgz#130858419e634a427ca82c36e1da75c66a39ba8e" - integrity sha512-x5LmiRLpRsd9KTjAB8MPKf0CDPMcuItjP0gbNqFCIgL1I8iYp4zglhj9w9FPCdIbHG2M91RVeIbArFfFTz9I3A== +"@vue/shared@3.4.35", "@vue/shared@^3.4.31": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.35.tgz#5432f4b1c79e763fcf78cc830faf59ff01248968" + integrity sha512-hvuhBYYDe+b1G8KHxsQ0diDqDMA8D9laxWZhNAjE83VZb5UDaXl9Xnz7cGdDSyiHM90qqI/CyGMcpBpiDy6VVQ== "@vueuse/core@10.11.0", "@vueuse/core@^10.11.0": version "10.11.0" @@ -675,11 +703,11 @@ is-what@^4.1.8: integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== magic-string@^0.30.10: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== + version "0.30.11" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.11.tgz#301a6f93b3e8c2cb13ac1a7a673492c0dfd12954" + integrity sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.0" mark.js@8.11.1: version "8.11.1" @@ -711,7 +739,7 @@ picocolors@^1.0.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -postcss@^8.4.39: +postcss@^8.4.39, postcss@^8.4.40: version "8.4.40" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.40.tgz#eb81f2a4dd7668ed869a6db25999e02e9ad909d8" integrity sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q== @@ -731,36 +759,36 @@ rfdc@^1.4.1: integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rollup@^4.13.0: - version "4.19.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.19.0.tgz#83b08cc0b2bc38c26c194cb7f2cdabd84a2a8c02" - integrity sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA== + version "4.19.2" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.19.2.tgz#4985cd2028965157e8d674a70e49f33aca9038eb" + integrity sha512-6/jgnN1svF9PjNYJ4ya3l+cqutg49vOZ4rVgsDKxdl+5gpGPnByFXWGyfH9YGx9i3nfBwSu1Iyu6vGwFFA0BdQ== dependencies: "@types/estree" "1.0.5" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.19.0" - "@rollup/rollup-android-arm64" "4.19.0" - "@rollup/rollup-darwin-arm64" "4.19.0" - "@rollup/rollup-darwin-x64" "4.19.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.19.0" - "@rollup/rollup-linux-arm-musleabihf" "4.19.0" - "@rollup/rollup-linux-arm64-gnu" "4.19.0" - "@rollup/rollup-linux-arm64-musl" "4.19.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.19.0" - "@rollup/rollup-linux-riscv64-gnu" "4.19.0" - "@rollup/rollup-linux-s390x-gnu" "4.19.0" - "@rollup/rollup-linux-x64-gnu" "4.19.0" - "@rollup/rollup-linux-x64-musl" "4.19.0" - "@rollup/rollup-win32-arm64-msvc" "4.19.0" - "@rollup/rollup-win32-ia32-msvc" "4.19.0" - "@rollup/rollup-win32-x64-msvc" "4.19.0" + "@rollup/rollup-android-arm-eabi" "4.19.2" + "@rollup/rollup-android-arm64" "4.19.2" + "@rollup/rollup-darwin-arm64" "4.19.2" + "@rollup/rollup-darwin-x64" "4.19.2" + "@rollup/rollup-linux-arm-gnueabihf" "4.19.2" + "@rollup/rollup-linux-arm-musleabihf" "4.19.2" + "@rollup/rollup-linux-arm64-gnu" "4.19.2" + "@rollup/rollup-linux-arm64-musl" "4.19.2" + "@rollup/rollup-linux-powerpc64le-gnu" "4.19.2" + "@rollup/rollup-linux-riscv64-gnu" "4.19.2" + "@rollup/rollup-linux-s390x-gnu" "4.19.2" + "@rollup/rollup-linux-x64-gnu" "4.19.2" + "@rollup/rollup-linux-x64-musl" "4.19.2" + "@rollup/rollup-win32-arm64-msvc" "4.19.2" + "@rollup/rollup-win32-ia32-msvc" "4.19.2" + "@rollup/rollup-win32-x64-msvc" "4.19.2" fsevents "~2.3.2" -shiki@1.11.1, shiki@^1.10.3: - version "1.11.1" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.11.1.tgz#6c06c5fcf55f1dac2db2596af935fef6a41a209d" - integrity sha512-VHD3Q0EBXaaa245jqayBe5zQyMQUdXBFjmGr9MpDaDpAKRMYn7Ff00DM5MLk26UyKjnml3yQ0O2HNX7PtYVNFQ== +shiki@1.12.1, shiki@^1.10.3: + version "1.12.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.12.1.tgz#72d9d230a8d68ddaf8cf7c94a1dc6a5f2625324e" + integrity sha512-nwmjbHKnOYYAe1aaQyEBHvQymJgfm86ZSS7fT8OaPRr4sbAcBNz7PbfAikMEFSDQ6se2j2zobkXvVKcBOm0ysg== dependencies: - "@shikijs/core" "1.11.1" + "@shikijs/core" "1.12.1" "@types/hast" "^3.0.4" source-map-js@^1.2.0: @@ -785,6 +813,11 @@ tabbable@^6.2.0: resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + vite@^5.3.3: version "5.3.5" resolved "https://registry.yarnpkg.com/vite/-/vite-5.3.5.tgz#b847f846fb2b6cb6f6f4ed50a830186138cb83d8" @@ -819,17 +852,17 @@ vitepress@^1.3.1: vue "^3.4.31" vue-demi@>=0.14.8: - version "0.14.9" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.9.tgz#db2be43705e2bc8501f01ca6163e34ada2f2eb21" - integrity sha512-dC1TJMODGM8lxhP6wLToncaDPPNB3biVxxRDuNCYpuXwi70ou7NsGd97KVTJ2omepGId429JZt8oaZKeXbqxwg== - -vue@^3.4.31, vue@^3.4.34: - version "3.4.34" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.34.tgz#19d9a82854d54c4506d1e2854c9c038ee430484a" - integrity sha512-VZze05HWlA3ItreQ/ka7Sx7PoD0/3St8FEiSlSTVgb6l4hL+RjtP2/8g5WQBzZgyf8WG2f+g1bXzC7zggLhAJA== - dependencies: - "@vue/compiler-dom" "3.4.34" - "@vue/compiler-sfc" "3.4.34" - "@vue/runtime-dom" "3.4.34" - "@vue/server-renderer" "3.4.34" - "@vue/shared" "3.4.34" + version "0.14.10" + resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.10.tgz#afc78de3d6f9e11bf78c55e8510ee12814522f04" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue@^3.4.31, vue@^3.4.35: + version "3.4.35" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.35.tgz#9ad23525919eece40153fdf8675d07ddd879eb33" + integrity sha512-+fl/GLmI4GPileHftVlCdB7fUL4aziPcqTudpTGXCT8s+iZWuOCeNEB5haX6Uz2IpRrbEXOgIFbe+XciCuGbNQ== + dependencies: + "@vue/compiler-dom" "3.4.35" + "@vue/compiler-sfc" "3.4.35" + "@vue/runtime-dom" "3.4.35" + "@vue/server-renderer" "3.4.35" + "@vue/shared" "3.4.35" From d5d6c10757d4ddce196174f986e0a7c3264d3fdb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Aug 2024 00:21:59 +0800 Subject: [PATCH 068/113] build(deps): bump gradle/actions from 3 to 4 in the actions group (#1946) --- .github/workflows/build-manager.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build-manager.yml b/.github/workflows/build-manager.yml index e5f0c1b4c3c1..89360617be92 100644 --- a/.github/workflows/build-manager.yml +++ b/.github/workflows/build-manager.yml @@ -85,9 +85,7 @@ jobs: java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - with: - gradle-home-cache-cleanup: true + uses: gradle/actions/setup-gradle@v4 - name: Setup Android SDK uses: android-actions/setup-android@v3 From 2dac1c701cba8c79a3ca6b3c5491e044a5fb1167 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 15:19:27 +0800 Subject: [PATCH 069/113] build(deps): bump the crates group across 1 directory with 22 updates (#1979) --- userspace/ksud/Cargo.lock | 119 ++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 64 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index d262204ba46f..262a61a495d0 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -32,7 +32,7 @@ dependencies = [ "cfg-if 1.0.0", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -216,9 +216,12 @@ checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cc" -version = "1.1.7" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +checksum = "5fb8dd288a69fc53a1996d7ecfbf4a20d59065bff137ce7e56bbd620de191189" +dependencies = [ + "shlex", +] [[package]] name = "cfg-if" @@ -248,9 +251,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" dependencies = [ "clap_builder", "clap_derive", @@ -258,9 +261,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -314,9 +317,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core2" @@ -329,9 +332,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -574,9 +577,9 @@ dependencies = [ [[package]] name = "flate2" -version = "1.0.30" +version = "1.0.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" +checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" dependencies = [ "crc32fast", "miniz_oxide", @@ -725,9 +728,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown", @@ -766,9 +769,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] @@ -959,9 +962,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.2" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -986,11 +989,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee4364d9f3b902ef14fab8a1ddffb783a1cb6b4bba3bfc1fa3922732c7de97f" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" dependencies = [ - "zerocopy 0.6.6", + "zerocopy", ] [[package]] @@ -1239,18 +1242,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.204" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.207" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" dependencies = [ "proc-macro2", "quote", @@ -1259,11 +1262,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -1303,6 +1307,12 @@ dependencies = [ "tokio", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "simd-adler32" version = "0.3.7" @@ -1317,9 +1327,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.72" +version = "2.0.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7" dependencies = [ "proc-macro2", "quote", @@ -1440,19 +1450,20 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if 1.0.0", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", @@ -1465,9 +1476,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1475,9 +1486,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", @@ -1488,9 +1499,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "which" @@ -1522,9 +1533,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ "windows-sys", ] @@ -1623,34 +1634,14 @@ version = "0.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" -[[package]] -name = "zerocopy" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6" -dependencies = [ - "byteorder", - "zerocopy-derive 0.6.6", -] - [[package]] name = "zerocopy" version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy-derive" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91" -dependencies = [ - "proc-macro2", - "quote", - "syn", + "byteorder", + "zerocopy-derive", ] [[package]] From bbc31bdbcafc5e0718031a1b65862024f49cccb3 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Thu, 15 Aug 2024 16:28:05 +0800 Subject: [PATCH 070/113] Use tempfile (#1980) --- userspace/ksud/Cargo.lock | 102 +++++++++++-------------------- userspace/ksud/Cargo.toml | 32 +++++----- userspace/ksud/src/boot_patch.rs | 10 ++- userspace/ksud/src/utils.rs | 2 +- 4 files changed, 59 insertions(+), 87 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 262a61a495d0..369e1e421423 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -115,7 +115,7 @@ version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -125,7 +125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ "anstyle", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -551,7 +551,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -575,6 +575,12 @@ dependencies = [ "libc", ] +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + [[package]] name = "flate2" version = "1.0.31" @@ -585,12 +591,6 @@ dependencies = [ "miniz_oxide", ] -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - [[package]] name = "generic-array" version = "0.14.7" @@ -668,7 +668,7 @@ version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -819,7 +819,7 @@ dependencies = [ "serde_json", "sha1", "sha256", - "tempdir", + "tempfile", "which", "zip", "zip-extensions", @@ -1040,19 +1040,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "rand" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" -dependencies = [ - "fuchsia-cprng", - "libc", - "rand_core 0.3.1", - "rdrand", - "winapi", -] - [[package]] name = "rand" version = "0.8.5" @@ -1061,7 +1048,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core 0.6.4", + "rand_core", ] [[package]] @@ -1071,24 +1058,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", + "rand_core", ] -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.6.4" @@ -1118,37 +1090,19 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "regex-lite" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53a49587ad06b26609c52e423de037e7f57f20d53535d66e08c695f347df952a" -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - [[package]] name = "retry" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9166d72162de3575f950507683fac47e30f6f2c3836b71b7fbc61aa517c9c5f4" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -1208,7 +1162,7 @@ dependencies = [ "errno 0.3.9", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1222,7 +1176,7 @@ dependencies = [ "libc", "linux-raw-sys", "once_cell", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] @@ -1337,13 +1291,16 @@ dependencies = [ ] [[package]] -name = "tempdir" -version = "0.3.7" +name = "tempfile" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ - "rand 0.4.6", - "remove_dir_all", + "cfg-if 1.0.0", + "fastrand", + "once_cell", + "rustix 0.38.34 (registry+https://github.com/rust-lang/crates.io-index)", + "windows-sys 0.59.0", ] [[package]] @@ -1537,7 +1494,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1564,6 +1521,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", +] + [[package]] name = "windows-targets" version = "0.52.6" diff --git a/userspace/ksud/Cargo.toml b/userspace/ksud/Cargo.toml index 3e6545dd38fd..5a4068a5c00c 100644 --- a/userspace/ksud/Cargo.toml +++ b/userspace/ksud/Cargo.toml @@ -2,16 +2,15 @@ name = "ksud" version = "0.1.0" edition = "2021" -rust-version = "1.77.2" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -anyhow = "1" -clap = { version = "4", features = ["derive"] } +anyhow = "1.0" +clap = { version = "4.5", features = ["derive"] } const_format = "0.2" -zip = { version = "2.1.6", default-features = false } -zip-extensions = { version = "0.8.1", features = [ +zip = { version = "2.1", default-features = false } +zip-extensions = { version = "0.8", features = [ "deflate", "deflate64", "time", @@ -21,29 +20,29 @@ zip-extensions = { version = "0.8.1", features = [ java-properties = { git = "https://github.com/Kernel-SU/java-properties.git", branch = "master", default-features = false } log = "0.4" env_logger = { version = "0.11", default-features = false } -serde = { version = "1" } -serde_json = "1" +serde = { version = "1.0" } +serde_json = "1.0" encoding_rs = "0.8" -retry = "2" -humansize = "2" +retry = "2.0" +humansize = "2.1" libc = "0.2" -extattr = "1" +extattr = "1.0" jwalk = "0.8" -is_executable = "1" -nom = "7" +is_executable = "1.0" +nom = "7.1" derive-new = "0.6" -rust-embed = { version = "8", features = [ +rust-embed = { version = "8.5", features = [ "debug-embed", "compression", # must clean build after updating binaries ] } -which = "6" +which = "6.0" getopts = "0.2" sha256 = "1" sha1 = "0.10" -tempdir = "0.3" +tempfile = "3.12" chrono = "0.4" hole-punch = { git = "https://github.com/tiann/hole-punch" } -regex-lite = "0.1.6" +regex-lite = "0.1" [target.'cfg(any(target_os = "android", target_os = "linux"))'.dependencies] rustix = { git = "https://github.com/Kernel-SU/rustix.git", branch = "main", features = [ @@ -61,3 +60,4 @@ android_logger = { version = "0.14", default-features = false } strip = true opt-level = "z" lto = true +codegen-units = 1 diff --git a/userspace/ksud/src/boot_patch.rs b/userspace/ksud/src/boot_patch.rs index a303e03091e4..8ce6ee73a186 100644 --- a/userspace/ksud/src/boot_patch.rs +++ b/userspace/ksud/src/boot_patch.rs @@ -211,7 +211,10 @@ pub fn restore( magiskboot_path: Option, flash: bool, ) -> Result<()> { - let tmpdir = tempdir::TempDir::new("KernelSU").context("create temp dir failed")?; + let tmpdir = tempfile::Builder::new() + .prefix("KernelSU") + .tempdir() + .context("create temp dir failed")?; let workdir = tmpdir.path(); let magiskboot = find_magiskboot(magiskboot_path, workdir)?; @@ -366,7 +369,10 @@ fn do_patch( ); } - let tmpdir = tempdir::TempDir::new("KernelSU").context("create temp dir failed")?; + let tmpdir = tempfile::Builder::new() + .prefix("KernelSU") + .tempdir() + .context("create temp dir failed")?; let workdir = tmpdir.path(); // extract magiskboot diff --git a/userspace/ksud/src/utils.rs b/userspace/ksud/src/utils.rs index 9bacfa366496..f7e695507be1 100644 --- a/userspace/ksud/src/utils.rs +++ b/userspace/ksud/src/utils.rs @@ -206,7 +206,7 @@ fn find_temp_path() -> String { } // Try to create a random directory in /dev/ - let r = tempdir::TempDir::new_in("/dev/", ""); + let r = tempfile::tempdir_in("/dev/"); match r { Ok(tmp_dir) => { if let Some(path) = tmp_dir.into_path().to_str() { From fd09ccfc2906ad119f7158f9518810e06a73a919 Mon Sep 17 00:00:00 2001 From: LoveSy Date: Thu, 15 Aug 2024 17:04:02 +0800 Subject: [PATCH 071/113] Drop some legacy codes (#1981) --- userspace/ksud/src/defs.rs | 2 - userspace/ksud/src/init_event.rs | 2 +- userspace/ksud/src/mount.rs | 87 ++++++++++++-------------------- userspace/ksud/src/utils.rs | 66 +----------------------- 4 files changed, 35 insertions(+), 122 deletions(-) diff --git a/userspace/ksud/src/defs.rs b/userspace/ksud/src/defs.rs index c4b9fc3f989b..dd71a0f63e82 100644 --- a/userspace/ksud/src/defs.rs +++ b/userspace/ksud/src/defs.rs @@ -29,8 +29,6 @@ pub const MODULE_UPDATE_TMP_DIR: &str = concatcp!(ADB_DIR, "modules_update/"); pub const SYSTEM_RW_DIR: &str = concatcp!(MODULE_DIR, ".rw/"); pub const TEMP_DIR: &str = "/debug_ramdisk"; -pub const TEMP_DIR_LEGACY: &str = "/sbin"; - pub const MODULE_WEB_DIR: &str = "webroot"; pub const DISABLE_FILE_NAME: &str = "disable"; pub const UPDATE_FILE_NAME: &str = "update"; diff --git a/userspace/ksud/src/init_event.rs b/userspace/ksud/src/init_event.rs index 7107ff74225d..5839c1957fa4 100644 --- a/userspace/ksud/src/init_event.rs +++ b/userspace/ksud/src/init_event.rs @@ -191,7 +191,7 @@ pub fn on_post_data_fs() -> Result<()> { } // mount temp dir - if let Err(e) = mount::mount_tmpfs(utils::get_tmp_path()) { + if let Err(e) = mount::mount_tmpfs(defs::TEMP_DIR) { warn!("do temp dir mount failed: {}", e); } diff --git a/userspace/ksud/src/mount.rs b/userspace/ksud/src/mount.rs index 11be898bbeb7..a15deb976092 100644 --- a/userspace/ksud/src/mount.rs +++ b/userspace/ksud/src/mount.rs @@ -63,21 +63,18 @@ pub fn mount_ext4(source: impl AsRef, target: impl AsRef) -> Result< .attach(source) .with_context(|| "Failed to attach loop")?; let lo = new_loopback.path().ok_or(anyhow!("no loop"))?; - if let Result::Ok(fs) = fsopen("ext4", FsOpenFlags::FSOPEN_CLOEXEC) { - let fs = fs.as_fd(); - fsconfig_set_string(fs, "source", lo)?; - fsconfig_create(fs)?; - let mount = fsmount(fs, FsMountFlags::FSMOUNT_CLOEXEC, MountAttrFlags::empty())?; - move_mount( - mount.as_fd(), - "", - CWD, - target.as_ref(), - MoveMountFlags::MOVE_MOUNT_F_EMPTY_PATH, - )?; - } else { - mount(lo, target.as_ref(), "ext4", MountFlags::empty(), "")?; - } + let fs = fsopen("ext4", FsOpenFlags::FSOPEN_CLOEXEC)?; + let fs = fs.as_fd(); + fsconfig_set_string(fs, "source", lo)?; + fsconfig_create(fs)?; + let mount = fsmount(fs, FsMountFlags::FSMOUNT_CLOEXEC, MountAttrFlags::empty())?; + move_mount( + mount.as_fd(), + "", + CWD, + target.as_ref(), + MoveMountFlags::MOVE_MOUNT_F_EMPTY_PATH, + )?; Ok(()) } @@ -157,27 +154,18 @@ pub fn mount_overlayfs( #[cfg(any(target_os = "linux", target_os = "android"))] pub fn mount_tmpfs(dest: impl AsRef) -> Result<()> { info!("mount tmpfs on {}", dest.as_ref().display()); - if let Result::Ok(fs) = fsopen("tmpfs", FsOpenFlags::FSOPEN_CLOEXEC) { - let fs = fs.as_fd(); - fsconfig_set_string(fs, "source", KSU_OVERLAY_SOURCE)?; - fsconfig_create(fs)?; - let mount = fsmount(fs, FsMountFlags::FSMOUNT_CLOEXEC, MountAttrFlags::empty())?; - move_mount( - mount.as_fd(), - "", - CWD, - dest.as_ref(), - MoveMountFlags::MOVE_MOUNT_F_EMPTY_PATH, - )?; - } else { - mount( - KSU_OVERLAY_SOURCE, - dest.as_ref(), - "tmpfs", - MountFlags::empty(), - "", - )?; - } + let fs = fsopen("tmpfs", FsOpenFlags::FSOPEN_CLOEXEC)?; + let fs = fs.as_fd(); + fsconfig_set_string(fs, "source", KSU_OVERLAY_SOURCE)?; + fsconfig_create(fs)?; + let mount = fsmount(fs, FsMountFlags::FSMOUNT_CLOEXEC, MountAttrFlags::empty())?; + move_mount( + mount.as_fd(), + "", + CWD, + dest.as_ref(), + MoveMountFlags::MOVE_MOUNT_F_EMPTY_PATH, + )?; Ok(()) } @@ -188,29 +176,20 @@ pub fn bind_mount(from: impl AsRef, to: impl AsRef) -> Result<()> { from.as_ref().display(), to.as_ref().display() ); - if let Result::Ok(tree) = open_tree( + let tree = open_tree( CWD, from.as_ref(), OpenTreeFlags::OPEN_TREE_CLOEXEC | OpenTreeFlags::OPEN_TREE_CLONE | OpenTreeFlags::AT_RECURSIVE, - ) { - move_mount( - tree.as_fd(), - "", - CWD, - to.as_ref(), - MoveMountFlags::MOVE_MOUNT_F_EMPTY_PATH, - )?; - } else { - mount( - from.as_ref(), - to.as_ref(), - "", - MountFlags::BIND | MountFlags::REC, - "", - )?; - } + )?; + move_mount( + tree.as_fd(), + "", + CWD, + to.as_ref(), + MoveMountFlags::MOVE_MOUNT_F_EMPTY_PATH, + )?; Ok(()) } diff --git a/userspace/ksud/src/utils.rs b/userspace/ksud/src/utils.rs index f7e695507be1..c08fdeee26c4 100644 --- a/userspace/ksud/src/utils.rs +++ b/userspace/ksud/src/utils.rs @@ -1,17 +1,15 @@ use anyhow::{bail, Context, Error, Ok, Result}; use std::{ - fs::{self, create_dir_all, remove_file, write, File, OpenOptions}, + fs::{create_dir_all, remove_file, write, File, OpenOptions}, io::{ ErrorKind::{AlreadyExists, NotFound}, Write, }, path::Path, process::Command, - sync::OnceLock, }; use crate::{assets, boot_patch, defs, ksucalls, module, restorecon}; -use std::fs::metadata; #[allow(unused_imports)] use std::fs::{set_permissions, Permissions}; #[cfg(unix)] @@ -189,68 +187,6 @@ pub fn has_magisk() -> bool { which::which("magisk").is_ok() } -fn is_ok_empty(dir: &str) -> bool { - use std::result::Result::Ok; - - match fs::read_dir(dir) { - Ok(mut entries) => entries.next().is_none(), - Err(_) => false, - } -} - -fn find_temp_path() -> String { - use std::result::Result::Ok; - - if is_ok_empty(defs::TEMP_DIR) { - return defs::TEMP_DIR.to_string(); - } - - // Try to create a random directory in /dev/ - let r = tempfile::tempdir_in("/dev/"); - match r { - Ok(tmp_dir) => { - if let Some(path) = tmp_dir.into_path().to_str() { - return path.to_string(); - } - } - Err(_e) => {} - } - - let dirs = [ - defs::TEMP_DIR, - "/patch_hw", - "/oem", - "/root", - defs::TEMP_DIR_LEGACY, - ]; - - // find empty directory - for dir in dirs { - if is_ok_empty(dir) { - return dir.to_string(); - } - } - - // Fallback to non-empty directory - for dir in dirs { - if metadata(dir).is_ok() { - return dir.to_string(); - } - } - - "".to_string() -} - -pub fn get_tmp_path() -> &'static str { - static CHOSEN_TMP_PATH: OnceLock = OnceLock::new(); - - CHOSEN_TMP_PATH.get_or_init(|| { - let r = find_temp_path(); - log::info!("Chosen temp_path: {}", r); - r - }) -} - #[cfg(target_os = "android")] fn link_ksud_to_bin() -> Result<()> { let ksu_bin = PathBuf::from(defs::DAEMON_PATH); From 421371f496bd931043dce29ce5b801f01a00c510 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 15:05:03 +0800 Subject: [PATCH 072/113] build(deps): bump the maven group across 1 directory with 5 updates (#1962) --- manager/gradle/libs.versions.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index e3b68aa73b66..daf6c7a99ba5 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] -agp = "8.5.1" -kotlin = "2.0.0" -ksp = "2.0.0-1.0.24" +agp = "8.5.2" +kotlin = "2.0.10" +ksp = "2.0.10-1.0.24" compose-bom = "2024.06.00" lifecycle = "2.8.4" accompanist = "0.34.0" From b032ce7445851be5529aecf6c82f5281cef2a5ea Mon Sep 17 00:00:00 2001 From: LoveSy Date: Fri, 16 Aug 2024 23:45:04 +0800 Subject: [PATCH 073/113] Try add android15-6.6-2024-07 support (#1987) --- .github/workflows/build-kernel-a15.yml | 121 +++++++++++++++++++++++++ .github/workflows/release.yml | 3 + 2 files changed, 124 insertions(+) create mode 100644 .github/workflows/build-kernel-a15.yml diff --git a/.github/workflows/build-kernel-a15.yml b/.github/workflows/build-kernel-a15.yml new file mode 100644 index 000000000000..eedc9807aa3f --- /dev/null +++ b/.github/workflows/build-kernel-a15.yml @@ -0,0 +1,121 @@ +name: Build Kernel - Android 15 +on: + push: + branches: ["main", "ci", "checkci"] + paths: + - ".github/workflows/build-kernel-a15.yml" + - ".github/workflows/gki-kernel.yml" + - ".github/scripts/build_a13.sh" + - "kernel/**" + pull_request: + branches: ["main"] + paths: + - ".github/workflows/build-kernel-a15.yml" + - ".github/workflows/gki-kernel.yml" + - ".github/scripts/build-a13.sh" + - "kernel/**" + workflow_call: +jobs: + build-kernel: + if: github.event_name != 'pull_request' && github.ref != 'refs/heads/checkci' + strategy: + matrix: + include: + - version: "6.6" + sub_level: 30 + os_patch_level: 2024-07 + uses: ./.github/workflows/gki-kernel.yml + secrets: inherit + with: + version: android15-${{ matrix.version }} + version_name: android15-${{ matrix.version }}.${{ matrix.sub_level }} + tag: android15-${{ matrix.version }}-${{ matrix.os_patch_level }} + os_patch_level: ${{ matrix.os_patch_level }} + patch_path: ${{ matrix.version }} + + upload-artifacts: + needs: build-kernel + runs-on: ubuntu-latest + if: ${{ ( github.event_name != 'pull_request' && github.ref == 'refs/heads/main' ) || github.ref_type == 'tag' || github.ref == 'refs/heads/ci' }} + env: + CHAT_ID: ${{ secrets.CHAT_ID }} + BOT_TOKEN: ${{ secrets.BOT_TOKEN }} + MESSAGE_THREAD_ID: ${{ secrets.MESSAGE_THREAD_ID }} + COMMIT_MESSAGE: ${{ github.event.head_commit.message }} + COMMIT_URL: ${{ github.event.head_commit.url }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + steps: + - name: Download artifacts + uses: actions/download-artifact@v4 + + - uses: actions/checkout@v4 + with: + path: KernelSU + fetch-depth: 0 + + - name: List artifacts + run: | + tree + + - name: Download prebuilt toolchain + run: | + AOSP_MIRROR=https://android.googlesource.com + BRANCH=main-kernel-build-2024 + git clone $AOSP_MIRROR/platform/prebuilts/build-tools -b $BRANCH --depth 1 build-tools + git clone $AOSP_MIRROR/kernel/prebuilts/build-tools -b $BRANCH --depth 1 kernel-build-tools + git clone $AOSP_MIRROR/platform/system/tools/mkbootimg -b $BRANCH --depth 1 + pip3 install telethon + + - name: Set boot sign key + env: + BOOT_SIGN_KEY: ${{ secrets.BOOT_SIGN_KEY }} + run: | + if [ ! -z "$BOOT_SIGN_KEY" ]; then + echo "$BOOT_SIGN_KEY" > ./kernel-build-tools/linux-x86/share/avb/testkey_rsa2048.pem + fi + + - name: Bot session cache + id: bot_session_cache + uses: actions/cache@v4 + if: false + with: + path: scripts/ksubot.session + key: ${{ runner.os }}-bot-session + + - name: Build boot images + run: | + export AVBTOOL=$GITHUB_WORKSPACE/kernel-build-tools/linux-x86/bin/avbtool + export GZIP=$GITHUB_WORKSPACE/build-tools/path/linux-x86/gzip + export LZ4=$GITHUB_WORKSPACE/build-tools/path/linux-x86/lz4 + export MKBOOTIMG=$GITHUB_WORKSPACE/mkbootimg/mkbootimg.py + export UNPACK_BOOTIMG=$GITHUB_WORKSPACE/mkbootimg/unpack_bootimg.py + cd $GITHUB_WORKSPACE/KernelSU + export VERSION=$(($(git rev-list --count HEAD) + 10200)) + echo "VERSION: $VERSION" + cd - + bash $GITHUB_WORKSPACE/KernelSU/.github/scripts/build_a13.sh + + - name: Display structure of boot files + run: ls -R + + - name: Upload images artifact + uses: actions/upload-artifact@v4 + with: + name: boot-images-android15 + path: Image-android15*/*.img.gz + + check-build-kernel: + if: (github.event_name == 'pull_request' && !github.event.pull_request.draft) || github.ref == 'refs/heads/checkci' + strategy: + matrix: + include: + - version: "6.6" + sub_level: 30 + os_patch_level: 2024-07 + uses: ./.github/workflows/gki-kernel.yml + with: + version: android15-${{ matrix.version }} + version_name: android15-${{ matrix.version }}.${{ matrix.sub_level }} + tag: android15-${{ matrix.version }}-${{ matrix.os_patch_level }} + os_patch_level: ${{ matrix.os_patch_level }} + patch_path: ${{ matrix.version }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26b3171c8e68..dcc0fca8856c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,6 +18,9 @@ jobs: build-a14-kernel: uses: ./.github/workflows/build-kernel-a14.yml secrets: inherit + build-a15-kernel: + uses: ./.github/workflows/build-kernel-a15.yml + secrets: inherit build-wsa-kernel: uses: ./.github/workflows/build-kernel-wsa.yml secrets: inherit From 221c834a9f8183675cbda6ee200ac7a84a0fddad Mon Sep 17 00:00:00 2001 From: LoveSy Date: Sat, 17 Aug 2024 12:42:22 +0800 Subject: [PATCH 074/113] Try add android15-6.6-2024-07 for LKM (#1988) --- .github/workflows/build-lkm.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-lkm.yml b/.github/workflows/build-lkm.yml index 5a14ce1b4826..7755a514f30c 100644 --- a/.github/workflows/build-lkm.yml +++ b/.github/workflows/build-lkm.yml @@ -29,10 +29,13 @@ jobs: - version: "android14-6.1" sub_level: 75 os_patch_level: 2024-05 + - version: "android15-6.6" + sub_level: 30 + os_patch_level: 2024-07 uses: ./.github/workflows/gki-kernel.yml with: version: ${{ matrix.version }} version_name: ${{ matrix.version }}.${{ matrix.sub_level }} tag: ${{ matrix.version }}-${{ matrix.os_patch_level }} os_patch_level: ${{ matrix.os_patch_level }} - build_lkm: true \ No newline at end of file + build_lkm: true From b2dbaa9bc85c53c75a6fbcf5131d1e7d109c404f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 00:14:28 +0800 Subject: [PATCH 075/113] build(deps): bump the crates group across 1 directory with 6 updates (#1984) --- userspace/ksud/Cargo.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/userspace/ksud/Cargo.lock b/userspace/ksud/Cargo.lock index 369e1e421423..3bb563592a11 100644 --- a/userspace/ksud/Cargo.lock +++ b/userspace/ksud/Cargo.lock @@ -216,9 +216,9 @@ checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cc" -version = "1.1.11" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb8dd288a69fc53a1996d7ecfbf4a20d59065bff137ce7e56bbd620de191189" +checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" dependencies = [ "shlex", ] @@ -251,9 +251,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.15" +version = "4.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" dependencies = [ "clap_builder", "clap_derive", @@ -833,9 +833,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.156" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "a5f43f184355eefb8d17fc948dbecf6c13be3c141f20d834ae842193a448c72a" [[package]] name = "libflate" @@ -1196,18 +1196,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.207" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5665e14a49a4ea1b91029ba7d3bca9f299e1f7cfa194388ccc20f14743e784f2" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.207" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6aea2634c86b0e8ef2cfdc0c340baede54ec27b1e46febd7f80dffb2aa44a00e" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", @@ -1216,9 +1216,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.124" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ "itoa", "memchr", From 195c9081bc56ea3b42c810a8aecc4802cba93b84 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 25 Aug 2024 11:49:53 +0800 Subject: [PATCH 076/113] [add device]: (#2006) has been added to the website. Related issue: https://github.com/tiann/KernelSU/issues/2005 Co-authored-by: GitHub Actions <41898282+github-actions[bot]@users.noreply.github.com> --- website/docs/repos.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/website/docs/repos.json b/website/docs/repos.json index 6ae95b901627..2e8eb1c1afad 100644 --- a/website/docs/repos.json +++ b/website/docs/repos.json @@ -54,7 +54,7 @@ "kernel_name": "android_kernel_xiaomi_onc", "kernel_link": "https://github.com/hadadarjt/android_kernel_xiaomi_onc/tree/los21-KSU/local-non-gerrit-review", "devices": "Redmi 7: onclite | Redmi Y3: onc" - }, + }, { "maintainer": "HMTheBoy154", "maintainer_link": "https://github.com/hmtheboy154", @@ -691,5 +691,12 @@ "kernel_name": "kernel_xiaomi_chopin", "kernel_link": "https://github.com/ChopinKernels/kernel_xiaomi_chopin_android_S", "devices": "Redmi Note 10 Pro 5G (chopin) / Poco X3 GT (choping)" + }, + { + "maintainer": "Fede2782", + "maintainer_link": "https://github.com/Fede2782", + "kernel_name": "android_kernel_motorola_sdm632", + "kernel_link": "https://github.com/Fede2782/android_kernel_motorola_sdm632", + "devices": "Motorola Moto G7 (river)" } -] +] \ No newline at end of file From f7ae418e490090b416e792d404f371cab8221c56 Mon Sep 17 00:00:00 2001 From: Pang YS <161192932+devbx@users.noreply.github.com> Date: Sun, 25 Aug 2024 11:51:25 +0800 Subject: [PATCH 077/113] id_ID: Update guide for Non-GKI devices (#1975) --- .../guide/how-to-integrate-for-non-gki.md | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/website/docs/id_ID/guide/how-to-integrate-for-non-gki.md b/website/docs/id_ID/guide/how-to-integrate-for-non-gki.md index 11bd7905e9ba..d26d3c62ceea 100644 --- a/website/docs/id_ID/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/id_ID/guide/how-to-integrate-for-non-gki.md @@ -17,23 +17,13 @@ KernelSU menggunakan kprobe untuk melakukan hook kernel, jika *kprobe* berjalan Pertama, tambahkan KernelSU ke dalam berkas kernel source tree: -- Latest tag(stable) - -```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - -``` - -- main branch(dev) - ```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main +curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.9.5 ``` -- Select tag(Such as v0.5.2) - -```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 -``` +:::info +[KernelSU 1.0 dan versi yang lebih baru tidak lagi mendukung kernel non-GKI](https://github.com/tiann/KernelSU/issues/1705). Versi terakhir yang didukung adalah `v0.9.5`, pastikan untuk menggunakan versi yang benar. +::: Kemudian, Anda harus memeriksa apakah *kprobe* diaktifkan dalam konfigurasi kernel Anda, jika tidak, tambahkan konfigurasi ini ke dalamnya: @@ -56,7 +46,7 @@ Jika kprobe tidak dapat bekerja pada kernel Anda (mungkin karena bug di upstream Pertama, tambahkan KernelSU ke dalam direktori kernel source tree: ```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - +curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.9.5 ``` Kemudian, tambahkan panggilan KernelSU ke source kernel, berikut ini adalah patch yang dapat dirujuk: From 8169a16f56ffbe6d09ef55f255249ede7127de58 Mon Sep 17 00:00:00 2001 From: dabao1955 Date: Sun, 25 Aug 2024 11:51:50 +0800 Subject: [PATCH 078/113] website: fix selected kernelsu version on `non-gki` steps (#1848) --- .../docs/guide/how-to-integrate-for-non-gki.md | 16 ++-------------- .../zh_CN/guide/how-to-integrate-for-non-gki.md | 2 +- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/website/docs/guide/how-to-integrate-for-non-gki.md b/website/docs/guide/how-to-integrate-for-non-gki.md index e4521cf031b0..b4e6c80253f6 100644 --- a/website/docs/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/guide/how-to-integrate-for-non-gki.md @@ -55,22 +55,10 @@ If kprobe does not work in your kernel (may be an upstream or kernel bug below 4 First, add KernelSU to your kernel source tree: -::: code-group - -```sh[Latest tag(stable)] -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - -``` - -```sh[ main branch(dev)] -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main -``` - -```sh[Select tag(Such as v0.5.2)] -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 +```sh +curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.9.5 ``` -::: - Keep in mind that on some devices, your defconfig may be in `arch/arm64/configs` or in other cases `arch/arm64/configs/vendor/your_defconfig`. For whichever defconfig you're using, make sure to enable `CONFIG_KSU` with `y` to enable or `n` to disable it. For example, in case you chose to enable it, you defconfig should contain the following string: ```txt diff --git a/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md b/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md index e9f250f63e70..5f20068259fd 100644 --- a/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/zh_CN/guide/how-to-integrate-for-non-gki.md @@ -51,7 +51,7 @@ CONFIG_KPROBE_EVENTS=y 首先,把 KernelSU 添加到你的内核源码树,在内核的根目录执行以下命令: ```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - +curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.9.5 ``` 请注意,某些设备的defconfig文件可能在`arch/arm64/configs/设备代号_defconfig`或位于`arch/arm64/configs/vendor/设备代号_defconfig`。在您的defconfig文件中,将 `CONFIG_KSU`设置为`y`以启用KernelSU,或设置为`n`以禁用。比如在某个defconfig中: From 4b978cc7c18009882e883f28a14b91f66434c3a9 Mon Sep 17 00:00:00 2001 From: sus <54392299+jeffpeng3@users.noreply.github.com> Date: Sun, 25 Aug 2024 11:52:43 +0800 Subject: [PATCH 079/113] website: Updated translations (#1959) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新翻譯 --- website/docs/.vitepress/locales/zh_TW.ts | 2 +- website/docs/zh_TW/guide/app-profile.md | 31 +-- .../zh_TW/guide/difference-with-magisk.md | 12 +- website/docs/zh_TW/guide/faq.md | 6 +- website/docs/zh_TW/guide/how-to-build.md | 24 +- .../guide/how-to-integrate-for-non-gki.md | 98 +++++--- website/docs/zh_TW/guide/installation.md | 223 +++++++++--------- website/docs/zh_TW/guide/module-webui.md | 17 +- website/docs/zh_TW/guide/module.md | 111 +++++++-- .../docs/zh_TW/guide/rescue-from-bootloop.md | 26 +- .../guide/unofficially-support-devices.md | 6 +- website/docs/zh_TW/guide/what-is-kernelsu.md | 6 +- website/docs/zh_TW/index.md | 6 +- 13 files changed, 340 insertions(+), 228 deletions(-) diff --git a/website/docs/.vitepress/locales/zh_TW.ts b/website/docs/.vitepress/locales/zh_TW.ts index 3a92d45b2cf7..5d6fd9e8f14e 100644 --- a/website/docs/.vitepress/locales/zh_TW.ts +++ b/website/docs/.vitepress/locales/zh_TW.ts @@ -6,7 +6,7 @@ const pkg = require('vitepress/package.json') export default defineConfig({ lang: 'zh-TW', - description: '一個以核心為基礎,適用於 Android GKI 的 Root 解決方案。', + description: '一個基於核心,適用於 Android GKI 的 Root 解決方案。', themeConfig: { nav: nav(), diff --git a/website/docs/zh_TW/guide/app-profile.md b/website/docs/zh_TW/guide/app-profile.md index 659c5660164b..993857702927 100644 --- a/website/docs/zh_TW/guide/app-profile.md +++ b/website/docs/zh_TW/guide/app-profile.md @@ -2,7 +2,8 @@ App Profile 是 KernelSU 提供的一種針對各種應用程式自訂其使用配置的機制。 -對於授予了root 權限(也即可以使用 `su`)的應用程式來說,App Profile 也可以稱為Root Profile,它可以自訂 `su` 的 `uid`, `gid` , `groups` , ` capabilities` 以及 `SELinux context` 規則,從而限制 root 使用者的權限;例如可以針對防火牆應用程式僅授予網路權限,而不授予檔案存取權限,針對凍結類別應用程式僅授予 shell 權限而不是直接給 root ;透過最小化權限原則**把權力關進籠子裡**。 +對於授予了 root 權限(即可以使用 `su`)的應用程式來說,App Profile 也可以稱為 Root Profile,它可以自訂 `su` 的 `uid`、`gid`、`groups`、` capabilities` 以及 `SELinux context` 規則,從而限制 root 使用者的權限。 +例如可以針對防火牆應用程式僅授予網路權限,而不授予檔案存取權限,針對凍結類別應用程式僅授予 shell 權限而不是直接給 root ;透過最小化權限原則**把權力關進籠子裡**。 對於沒有被授予 root 權限的普通應用,App Profile 可以控制核心以及模組系統對此應用的行為;例如是否需要針對此應用程式卸載模組造成的修改等。核心和模組系統可以透過此配置決定是否要做一些類似「隱藏痕跡」類別的操作。 @@ -16,8 +17,8 @@ UID 為 0 的使用者稱為 root 使用者,GID 為 0 的群組稱為 root 群 對於 Android 系統來說,每個應用程式都是一個單獨的使用者(不考慮 share uid 的情況),擁有一個唯一的 UID。例如 `0` 是 root 使用者,`1000` 是 `system`,`2000` 是 ADB shell,10000-19999 的是一般使用者。 -:::info -此處的 UID 跟 Android 系統的多使用者,或者說工作資料(Work Profile),不是概念。工作資料實際上是對 UID 進行分片實現的,例如 10000-19999 是主使用者,110000-119999 是工作資料;他們中的任何一個普通應用都擁有自己獨有的 UID。 +:::info 補充 +此處的 UID 跟 Android 系統的多使用者,或者說工作資料(Work Profile),是不同概念。工作資料實際上是對 UID 進行分片實現的,例如 10000-19999 是主使用者,110000-119999 是工作資料;他們中的任何一個普通應用都擁有自己獨有的 UID。 ::: 每一個應用程式可以有若干個群組,GID 使其主要的群組,通常與 UID 一致;其他的群組稱為補充群組(groups)。某些權限是透過群組控制的,例如網路訪問,藍牙等。 @@ -29,7 +30,7 @@ oriole:/ $ id uid=2000(shell) gid=2000(shell) groups=2000(shell),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),1078(ext_data_ww) (ext_obb_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid),3012(readreadtracefs:s05: ``` -其中,UID 為`2000`,GID 也即主要組ID 也為`2000`;除此之外它還在許多補充組裡面,例如`inet` 組代表可以創建`AF_INET` 和`AF_INET6` 的socket(存取網路),`sdcard_rw` 代表可以讀寫sdcard 等。 +其中,UID 為`2000`,GID 也即主要組 ID 也為 `2000`;除此之外它還在許多補充組裡面,例如 `inet` 組代表可以創建 `AF_INET` 和 `AF_INET6` 的 socket(存取網路),`sdcard_rw` 代表可以讀寫 sdcard 等。 KernelSU 的 Root Profile 可以自訂執行 `su` 後 root 程式的 UID, GID 和 groups。例如,你可以設定某個 root 應用程式的Root Profile 其UID 為`2000`,這表示此應用程式在使用`su` 的時候,它的實際權限是ADB Shell 等級;你可以去掉groups 中的`inet` ,這樣這個`su` 就無法存取網路。 @@ -43,7 +44,7 @@ App Profile 只是控制 root 應用程式使用 `su` 後的權限,它並非 Capabilities 是 Linux 的一種分權機制。 -傳統的 UNIX 系統為了執行權限檢查,將流程分為兩類:特權程式(其有效使用者 ID 為 0,稱為超級使用者或 root)和非特權程式(其有效 UID 為非零)。特權程式會繞過所有核心權限檢查,而非特權程式則根據其憑證(通常是有效UID、有效GID和補充群組清單)進行完整的權限檢查。 +傳統的 UNIX 系統為了執行權限檢查,將流程分為兩類:特權程式(其等效使用者 ID 為 0,稱為超級使用者或 root)和非特權程式(其等效 UID 為非零)。特權程式會繞過所有核心權限檢查,而非特權程式則根據其憑證(通常是等校 UID、等效 GID 和補充群組清單)進行完整的權限檢查。 從 Linux 2.2開始,Linux 將傳統上與超級使用者關聯的特權分解為獨立的單元,稱為 Capabilities(有的也翻譯為「權能」),它們可以獨立啟用和停用。 @@ -52,7 +53,7 @@ Capabilities 是 Linux 的一種分權機制。 KernelSU 的 Root Profile 可以自訂執行 `su` 後 root 程式的 Capabilities,從而實現只授予「部分 root 權限」。與上面介紹的UID, GID 不同,某些 root 應用就是需要 `su` 後 UID 是 `0`,此時我們可以透過限制這個 UID 為 `0` 的 root 使用者的 Capabilities,就可以限制它能夠執行的操作。 :::tip 強烈建議 -Linux 系統關於 Capability 的[官方文件](https://man7.org/linux/man-pages/man7/capabilities.7.html),解釋了每一項Capability 所代表的能力,寫的非常詳細,如果你想要自訂Capabilities,請務必先閱讀此文件。 +Linux 的 Capability [官方文件](https://man7.org/linux/man-pages/man7/capabilities.7.html)詳細解釋了每一項 Capability 所代表的能力,如果你想要自訂Capabilities,請務必先閱讀此文件。 ::: ### SELinux {#selinux} @@ -76,7 +77,7 @@ SELinux 的完整概念比較複雜,我們這裡不打算講解它的具體運 KernelSU 的 Root Profile 可以自訂執行 `su` 後 root 程式的 SELinux context,並且可以針對這個 context 設定特定的存取控制規則,從而更精細地控制 root 權限。 -通常情況下,應用程式執行 `su` 後,會將進程切換到一個**不受任何限制** 的SELinux 域,例如`u:r:su:s0`,透過 Root Profile,我們可以將它切換到一個自訂的網域,例如 `u:r:app1:s0`,然後為這個網域制定一系列規則: +通常情況下,應用程式執行 `su` 後,會將進程切換到一個**不受任何限制** 的 SELinux 域,例如`u:r:su:s0`,透過 Root Profile,我們可以將它切換到一個自訂的作用域,例如 `u:r:app1:s0`,然後為這個作用域制定一系列規則: ```sh type app1 @@ -85,34 +86,34 @@ typeattribute app1 mlstrustedsubject allow app1 * * * ``` -注意:此處的 `allow app1 * * *` 僅僅作為演示方便而使用,實際過程中不應使用這個規則,因為它跟 permissive 區別不大。 +注意:此處的 `allow app1 * * *` 僅僅作為示範方便而使用,實際過程中不應使用這個規則,因為它跟寬容模式區別不大。 ### 逃逸 {#escalation} 如果 Root Profile 的配置不合理,那麼可能會發生逃逸的情況:Root Profile 的限制會意外失效。 -例如,如果你為ADB shell 使用者設定允許root 權限(這是相當常見的情況);然後你給某個普通應用程式允許root 權限,但是配置它的root profile 中的UID 為2000(ADB shell 使用者的UID);那麼此時,這個App 可以透過執行兩次 `su` 來獲得完整的root 權限: +例如,如果你為ADB shell 使用者設定允許root 權限(這是相當常見的情況);然後你給某個普通應用程式允許 root 權限,但是配置它的 root profile 中的 UID 為 2000(ADB shell 使用者的UID);那麼此時,這個 App 可以透過執行兩次 `su` 來獲得完整的root 權限: -1. 第一次執行 `su`,由於 App Profile 強制生效,會正常切換到 UID 為 `2000(adb shell)` 而非 `0(root)`。 -2. 第二次執行 `su`,由於此時它 UID 是 `2000`,而你給 `2000(adb shell)` 配置了允許 root,它會獲得完整的 root 權限! +1. 第一次執行 `su`,由於 App Profile 強制生效,會正常切換到 UID 為 `2000` (adb shell) 而非 `0` (root)。 +2. 第二次執行 `su`,由於此時它 UID 是 `2000`,而你給 `2000` (adb shell) 配置了允許 root,它會獲得完整的 root 權限! :::warning 注意 這是完全符合預期的行為,並非 BUG!因此我們建議: -如果你的確需要給 adb 授予 root 權限(例如你是開發者),那麼不建議你在配置 Root Profile 的時候將 UID 改成 `2000`,用 `1000(system)` 會更好。 +如果你的確需要給 adb 授予 root 權限(例如你是開發者),那麼不建議你在配置 Root Profile 的時候將 UID 改成 `2000`,用 `1000` (system) 會更好。 ::: ## Non Root Profile {#non-root-profile} ### 卸載模組 {#umount-modules} -KernelSU 提供了一種 systemless 的方式來修改系統分區,這是透過掛載 overlayfs 來實現的。但有些情況下,App 可能會對這種行為比較敏感;因此,我們可以透過設定「卸載模組」來卸載掛載在這些應用程式上的模組。 +KernelSU 提供了一種無須直接修改系統分區的方式 (systemless) 來修改系統分區,這是透過掛載 overlayfs 來實現的。但有些情況下,App 可能會對這種行為比較敏感;因此,我們可以透過設定「卸載模組」來卸載掛載在這些應用程式上的模組。 另外,KernelSU 管理器的設定介面還提供了一個「預設卸載模組」的開關,這個開關預設是**開啟**的,這表示**如果不對應用程式做額外的設定**,預設情況下 KernelSU 或某些模組會對此應用程式執行卸載操作。當然,如果你不喜歡這個設定或這個設定會影響某些 App,你可以有以下選擇: 1. 保持「預設卸載模組」的開關,然後針對不需要「卸載模組」的應用程式進行單獨的設置,在 App Profile 中關閉「卸載模組」;(相當於「白名單」)。 2. 關閉「預設卸載模組」的開關,然後針對需要「卸載模組」的應用程式進行單獨的設置,在 App Profile 中開啟「卸載模組」;(相當於「黑名單」)。 -:::info -KernelSU 在 5.10 及以上內核上,內核無須任何修改就可以卸載模組;但在 5.10 以下的設備上,這個開關僅僅是一個“設定”,KernelSU 本身不會做任何動作,如果你希望在 5.10 以前的內核可以卸載模組,你需要將 `path_unmount` 函數向後移植到 `fs/namespace.c`,您可以在[如何為非 GKI 核心整合 KernelSU](/zh_TW/guide/how-to-integrate-for-non-gki.html)的末尾獲取更多資訊。一些模組(如 ZygiskNext)也會透過這個設定決定是否需要卸載。 +:::info 提示 +KernelSU 在 5.10 及以上內核上,內核無須任何修改就可以卸載模組;但在 5.10 以下的設備上,這個開關僅僅是一個"設定",KernelSU 本身不會做任何動作,如果你希望在 5.10 以前的內核可以卸載模組,你需要將 `path_unmount` 函數向後移植到 `fs/namespace.c`,您可以在[如何為非 GKI 核心整合 KernelSU](how-to-integrate-for-non-gki.md#how-to-backport-path_unpount)獲取更多資訊。一些模組(如 ZygiskNext)也會透過這個設定決定是否需要卸載。 ::: \ No newline at end of file diff --git a/website/docs/zh_TW/guide/difference-with-magisk.md b/website/docs/zh_TW/guide/difference-with-magisk.md index 6cd291e171de..fdaa5fc9d940 100644 --- a/website/docs/zh_TW/guide/difference-with-magisk.md +++ b/website/docs/zh_TW/guide/difference-with-magisk.md @@ -1,4 +1,4 @@ -# KernelSU 與 Magisk 的差異 {#title} +# KernelSU 與 Magisk 的差異 {#difference-with-magisk} 儘管 KernelSU 模組和 Magisk 模組之間有許多相似之處,但由於它們完全不同的實作機制,不可避免地存在一些差異;如果您想讓您的模組同時在 Magisk 和 KernelSU 上運作,那麼您必須瞭解這些差異。 @@ -6,7 +6,7 @@ - 模組檔案格式:都以 Zip 的格式組織模組,並且模組的格式幾乎相同 - 模組安裝目錄:都位於 `/data/adb/modules` -- Systemless:都支援通過模組以無系統修改的方式來更改 `/system` +- 無系統修改:都支援透過模組以無系統修改的方式來更改 `/system` - `post-fs-data.sh`:執行階段和語義完全相同 - `service.sh`:執行階段和語義完全相同 - `system.prop`:完全相同 @@ -19,10 +19,10 @@ 以下是一些不同之處: -1. KernelSU 的模組不支援在 Recovery 中安裝。 +1. KernelSU 的模組無法在 Recovery 中安裝。 2. KernelSU 的模組沒有內建的 Zygisk 支援 (但您可以透過 [ZygiskNext](https://github.com/Dr-TSNG/ZygiskNext) 來使用 Zygisk 模組)。 3. KernelSU 模組取代或刪除檔案與 Magisk 完全不同。KernelSU 不支援 `.replace` 方法,相反,您需要透過 `mknod filename c 0 0` 建立相同名稱的資料夾以刪除對應檔案。 -4. BusyBox 的目錄不同;KernelSU 內建的 BusyBox 在 `/data/adb/ksu/bin/busybox` 而 Magisk 在 `/data/adb/magisk/busybox`;**注意此為 KernelSU 內部行為,未來可能會變更!** -5. KernelSU 不支援 `.replace` 檔案;但 KernelSU 支援 `REPLACE` 和 `REMOVE` 變數以移除或取代檔案 (資料夾)。 +4. BusyBox 的目錄不同。KernelSU 內建的 BusyBox 在 `/data/adb/ksu/bin/busybox`,而 Magisk 在 `/data/adb/magisk/busybox`。**注意此為 KernelSU 內部行為,未來可能會變更!** +5. KernelSU 不支援 `.replace` 檔案;但 KernelSU 支援 `REPLACE` 和 `REMOVE` 變數以移除或取代檔案與資料夾。 6. KernelSU 新增了 `boot-completed` 階段以在啟動完成時執行一些腳本。 -7. KernelSU 新增了 `post-mount` 階段,以便在掛載 overlayfs 後執行一些腳本 +7. KernelSU 新增了 `post-mount` 階段,以便在掛載 overlayfs 後執行一些腳本。 diff --git a/website/docs/zh_TW/guide/faq.md b/website/docs/zh_TW/guide/faq.md index 8f1c13400c26..57166b68c4ac 100644 --- a/website/docs/zh_TW/guide/faq.md +++ b/website/docs/zh_TW/guide/faq.md @@ -26,7 +26,7 @@ KernelSU 沒有內建 Zygisk 支援,但是您可以用 [ZygiskNext](https://gi KernelSU 的模組系統與 Magisk 的 magic mount 存在衝突,如果在 KernelSU 中啟用了任何模組,那麼整個 Magisk 將無法正常運作。 -但是如果您只使用 KernelSU 的 `su`,那么它會和 Magisk 一同運作:KernelSU 修改 `kernel` 、 Magisk 修改 `ramdisk`,它們可以搭配使用。 +但是如果您只使用 KernelSU 的 `su`,那么它會和 Magisk 一同運作:KernelSU 修改 `kernel`、Magisk 修改 `ramdisk`,它們可以搭配使用。 ## KernelSU 会取代 Magisk 嗎? @@ -49,11 +49,11 @@ KernelSU 的模組系統與 Magisk 的 magic mount 存在衝突,如果在 Kern ## 如何為舊版核心整合 KernelSU? -請參閱[指南](how-to-integrate-for-non-gki) +請參閱[指南](how-to-integrate-for-non-gki.md) ## 為何我的 Android 版本為 13,但核心版本卻是 "android12-5.10"? -核心版本與 Android 版本無關,如果您要刷新 KernelSU,請一律使用**核心版本**而非 Android 版本,如果你為 "android12-5.10" 的裝置刷新 Android 13 的核心,等候您的將會是開機迴圈。 +核心版本與 Android 版本無關,如果您要使用 KernelSU,請一律使用**核心版本**而非 Android 版本,如果你為 "android12-5.10" 的裝置寫入 Android 13 的核心,等候您的將會是開機迴圈。 ## 我是 GKI1.0,能用 KernelSU 嗎? diff --git a/website/docs/zh_TW/guide/how-to-build.md b/website/docs/zh_TW/guide/how-to-build.md index 034044945df1..89517c84b0d2 100644 --- a/website/docs/zh_TW/guide/how-to-build.md +++ b/website/docs/zh_TW/guide/how-to-build.md @@ -5,7 +5,7 @@ 1. [建置核心](https://source.android.com/docs/setup/build/building-kernels) 2. [標準核心映像 (GKI) 發行組建](https://source.android.com/docs/core/architecture/kernel/gki-release-builds) -::: warning +::: warning 警告 此文件適用於 GKI 裝置,如果您是舊版核心,請參閱[如何為非 GKI 裝置整合 KernelSU](how-to-integrate-for-non-gki) ::: @@ -20,7 +20,7 @@ repo init -m manifest.xml repo sync ``` -`` 是一個可以唯一確定組建的資訊清單檔案,您可以使用這個資訊清單進行可重新預測的組建。您需要從[標準核心映像 (GKI) 發行組建](https://source.android.com/docs/core/architecture/kernel/gki-release-builds) 下載資訊清單檔案 +`` 是一個可以唯一確定組建的資訊清單,您可以使用這個資訊清單進行可重新預測的組建。您需要從[標準核心映像 (GKI) 發行組建](https://source.android.com/docs/core/architecture/kernel/gki-release-builds)下載資訊清單。 ### 建置 {#build} @@ -34,14 +34,14 @@ LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh 不要忘記新增 `LTO=thin`,否則,如果您的電腦記憶體小於 24GB,建置可能會失敗。 -從 Android 13 開始,核心由 `bazel` 建置: +從 Android 13 開始,核心使用 `bazel` 建置: ```sh tools/bazel build --config=fast //common:kernel_aarch64_dist ``` -:::info -對於某些 Android 14 內核,要使 Wi-Fi/藍牙正常工作,可能需要刪除所有受 GKI 保護的匯出: +:::info 你可能需要知道... +對於某些 Android 14 核心,要使 Wi-Fi/藍牙正常工作,可能需要刪除所有受 GKI 保護的匯出: ```sh rm common/android/abi_gki_protected_exports_* @@ -52,22 +52,20 @@ rm common/android/abi_gki_protected_exports_* 如果您可以成功建置核心,那麼建置 KernelSU 就會非常輕鬆,依自己的需求在核心原始碼根目錄中執行以下任一命令: -- 最新 tag (穩定版本) +::: code-group -```sh +```sh[最新 tag (穩定版本)] curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - ``` -- main 分支 (開發版本) - -```sh +```sh[main 分支 (開發版本)] curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main ``` -- 選取 tag (例如 v0.5.2) - -```sh +```sh[選取 tag (例如 v0.5.2)] curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 ``` +::: + 然後重新建置核心,您將會得到一個帶有 KernelSU 的核心映像! diff --git a/website/docs/zh_TW/guide/how-to-integrate-for-non-gki.md b/website/docs/zh_TW/guide/how-to-integrate-for-non-gki.md index 43b4980e9a66..a6c28485f313 100644 --- a/website/docs/zh_TW/guide/how-to-integrate-for-non-gki.md +++ b/website/docs/zh_TW/guide/how-to-integrate-for-non-gki.md @@ -1,4 +1,4 @@ -# 如何為非 GKI 核心整合 KernelSU {#introduction} +# 如何為非 GKI 核心整合 KernelSU {#how-to-integrate-kernelsu-for-non-gki-kernels} KernelSU 可以被整合到非 GKI 核心中,現在它最低支援到核心 4.14 版本;理論上也可以支援更低的版本。 @@ -11,31 +11,21 @@ KernelSU 可以被整合到非 GKI 核心中,現在它最低支援到核心 4. 1. 藉助 `kprobe` 自動整合 2. 手動修改核心原始碼 -## 使用 kprobe 整合 {#using-kprobes} +## 使用 kprobe 整合 {#integrate-with-kprobe} KernelSU 使用 kprobe 機制來處理核心的相關 hook,如果 *kprobe* 可以在您建置的核心中正常運作,那麼建議使用這個方法進行整合。 首先,把 KernelSU 新增至您的核心來源樹狀結構,再核心的根目錄執行以下命令: -- 最新 tag (稳定版本) - -```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - -``` - -- main 分支(開發版本) - ```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s main +curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.9.5 ``` -- 選取 tag (例如 v0.5.2) - -```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.5.2 -``` +:::info 公告 +[KernelSU 1.0 及更新版本不再支援非 GKI 核心](https://github.com/tiann/KernelSU/issues/1705)。最後一個支援的版本為 `v0.9.5`,請確保使用的版本正確。 +::: -然後,您需要檢查您的核心是否啟用 *kprobe* 相關組態,如果未啟用,則需要新增以下組態: +然後,您需要檢查您的核心是否啟用 *kprobe*,如果未啟用,則需要新增以下設定: ``` CONFIG_KPROBES=y @@ -45,33 +35,40 @@ CONFIG_KPROBE_EVENTS=y 最後,重新建置您的核心即可。 -如果您發現 KPROBES 仍未生效,很有可能是因為它的相依性 `CONFIG_MODULES` 並未被啟用 (如果還是未生效請輸入 `make menuconfig` 搜尋 KPROBES 的其他相依性並啟用) +如果您發現 KPROBES 仍未生效,很有可能是因為它依賴的 `CONFIG_MODULES` 並未被啟用,如果還是未生效請輸入 `make menuconfig` 搜尋 KPROBES 的其他相依性並啟用。 如果您在整合 KernelSU 之後手機無法啟動,那麼很可能您的核心中 **kprobe 無法正常運作**,您需要修正這個錯誤,或者使用第二種方法。 :::tip 如何檢查 kprobe 是否損毀? -將 `KernelSU/kernel/ksu.c` 中的 `ksu_enable_sucompat()` 和 `ksu_enable_ksud()` 取消註解,如果正常開機,即 kprobe 已損毀;或者您可以手動嘗試使用 kprobe 功能,如果不正常,手機會直接重新啟動。 +將 `KernelSU/kernel/ksu.c` 中的 `ksu_enable_sucompat()` 和 `ksu_enable_ksud()` 註解掉,如果正常開機,即 kprobe 已損毀;或者您可以手動嘗試使用 kprobe 功能,如果不正常,手機會直接重新啟動。 ::: :::info 如何為非 GKI 核心啟用卸載模組功能 -如果你的內核版本小於 5.10,你應該將 `path_umount` 向後移植至 `fs/namespace.c`。 卸載模組功能依賴於這個函數。 如果你沒有向後移植 `path_umount`,卸載模組功能將無法工作。 你可以在底下查看更多關於 `path_unmount` 的資料。 +如果你的內核版本小於 5.10,你應該將 `path_umount` 向後移植至 `fs/namespace.c`。卸載模組功能依賴於這個函數。如果你沒有向後移植 `path_umount`,卸載模組功能將無法工作。你可以在[這裡查看更多關於 `path_unmount` 的資料](#how-to-backport-path_unpount)。 ::: -## 手動修改核心原始碼 {#modify-kernel-source-code} +## 手動修改核心原始碼 {#manually-modify-the-kernel-source} -如果 kprobe 無法正常運作 (可能是上游的錯誤或核心版本過低),那您可以嘗試這種方法: +如果 kprobe 無法正常運作 (在4.8之前可能是上游或核心的錯誤),那您可以嘗試這種方法: -首先,將 KernelSU 新增至您的原始碼樹狀結構,再核心的根目錄執行以下命令: +首先,將 KernelSU 新增至您的原始碼樹狀結構,在核心的根目錄執行以下命令: ```sh -curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash - +curl -LSs "https://raw.githubusercontent.com/tiann/KernelSU/main/kernel/setup.sh" | bash -s v0.9.5 +``` +請記住,在某些裝置上,您的 `defconfig` 可能位於 `arch/arm64/configs` 中,或在其他情況下位於 `arch/arm64/configs/vendor/你的defconfig` 中。無論您使用哪個 `defconfig`,請確保使用 `CONFIG_KSU=y` 啟用KernelSU,或使用 `n` 停用它。例如,如果您選擇啟用它,則 `defconfig` 應包含以下字串: +```conf +# KernelSU +CONFIG_KSU=y ``` 然後,手動修改核心原始碼,您可以參閱下方的 patch: -```diff +::: code-group + +```diff[exec.c] diff --git a/fs/exec.c b/fs/exec.c index ac59664eaecf..bdd585e1d2cc 100644 --- a/fs/exec.c @@ -97,7 +94,7 @@ index ac59664eaecf..bdd585e1d2cc 100644 return __do_execve_file(fd, filename, argv, envp, flags, NULL); } ``` -```diff +```diff[open.c] diff --git a/fs/open.c b/fs/open.c index 05036d819197..965b84d486b8 100644 --- a/fs/open.c @@ -128,7 +125,7 @@ index 05036d819197..965b84d486b8 100644 if (mode & ~S_IRWXO) /* where's F_OK, X_OK, W_OK, R_OK? */ return -EINVAL; ``` -```diff +```diff[read_write.c] diff --git a/fs/read_write.c b/fs/read_write.c index 650fc7e0f3a6..55be193913b6 100644 --- a/fs/read_write.c @@ -151,7 +148,7 @@ index 650fc7e0f3a6..55be193913b6 100644 return -EBADF; if (!(file->f_mode & FMODE_CAN_READ)) ``` -```diff +```diff[stat.c] diff --git a/fs/stat.c b/fs/stat.c index 376543199b5a..82adcef03ecc 100644 --- a/fs/stat.c @@ -175,6 +172,8 @@ index 376543199b5a..82adcef03ecc 100644 return -EINVAL; ``` +::: + 主要修改四個項目: 1. do_faccessat,通常位於 `fs/open.c` @@ -236,9 +235,11 @@ index 2ff887661237..e758d7db7663 100644 return -EINVAL; ``` +### 安全模式 {#safe-mode} + 若要啟用 KernelSU 內建的安全模式,您還需要修改 `drivers/input/input.c` 中的 `input_handle_event` 方法: -:::tip +:::tip 小建議 強烈建議啟用此功能,如果遇到開機迴圈,這將會非常有用! ::: @@ -266,9 +267,45 @@ index 45306f9ef247..815091ebfca4 100755 add_input_randomness(type, code, value); ``` +:::info 不小心進入安全模式? +如果您使用手動整合且不停用 `CONFIG_KPROBES`,那麼您將可能會在啟動後透過按下音量來減少按鈕來觸發安全模式!因此,如果使用手動集成,您需要停用 `CONFIG_KPROBES` ! +::: + +### 無法在終端中執行 `pm` ? {#failed-to-execute-pm-in-terminal} + +你應該修改 `fs/devpts/inode.c`,參考: + +```diff +diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c +index 32f6f1c68..d69d8eca2 100644 +--- a/fs/devpts/inode.c ++++ b/fs/devpts/inode.c +@@ -602,6 +602,8 @@ struct dentry *devpts_pty_new(struct pts_fs_info *fsi, int index, void *priv) + return dentry; + } + ++#ifdef CONFIG_KSU ++extern int ksu_handle_devpts(struct inode*); ++#endif ++ + /** + * devpts_get_priv -- get private data for a slave + * @pts_inode: inode of the slave +@@ -610,6 +612,7 @@ struct dentry *devpts_pty_new(struct pts_fs_info *fsi, int index, void *priv) + */ + void *devpts_get_priv(struct dentry *dentry) + { ++ #ifdef CONFIG_KSU ++ ksu_handle_devpts(dentry->d_inode); ++ #endif + if (dentry->d_sb->s_magic != DEVPTS_SUPER_MAGIC) + return NULL; + return dentry->d_fsdata; +``` + ### 如何向後移植 path_umount {#how-to-backport-path_unpount} -你可以透過向後移植 `path_umount` 來讓卸載模組功能在小於 5.10 的非 GKI 核心上運作. 你可以參考這個修改: +你可以透過向後移植 `path_umount` 來讓卸載模組功能在低於 5.10 的非 GKI 核心上運作。你可以參考這個修改: ```diff --- a/fs/namespace.c @@ -315,5 +352,4 @@ index 45306f9ef247..815091ebfca4 100755 * This is important for filesystems which use unnamed block devices. ``` - 最後,再次建置您的核心,KernelSU 將會如期運作。 diff --git a/website/docs/zh_TW/guide/installation.md b/website/docs/zh_TW/guide/installation.md index c0e0f32d3d6e..1d2e7a3d852f 100644 --- a/website/docs/zh_TW/guide/installation.md +++ b/website/docs/zh_TW/guide/installation.md @@ -1,25 +1,25 @@ # 安裝 {#title} -## 檢查您的裝置是否受支援 {#check-if-supported} +## 檢查您的裝置是否受支援 {#check-if-your-device-is-supported} -從 [GitHub Releases](https://github.com/tiann/KernelSU/releases) 下載 KernelSU 管理器應用程式,然後將應用程式安裝至裝置並開啟: +從 [GitHub Releases](https://github.com/tiann/KernelSU/releases) 下載 KernelSU 管理器,然後安裝至裝置並開啟: -- 如果應用程式顯示「不支援」,則表示您的裝置不支援 KernelSU,您需要自行編譯核心才能繼續使用,,KernelSU 官方也永遠不會為您提供一個可以刷新的 Boot 映像。 -- 如果應用程式顯示「未安裝」,那麼 KernelSU 支援您的裝置;可以進行下一步作業。 +- 如果顯示「不支援」,則表示您的裝置不支援 KernelSU,您需要自行編譯核心才能繼續使用,KernelSU 官方也永遠不會提供一個您可以寫入的 Boot 映像。 +- 如果顯示「未安裝」,那麼 KernelSU 支援您的裝置。 -:::info +::: info 提示 對於顯示「不支援」的裝置,這裡有一個[非官方支援裝置清單](unofficially-support-devices.md),您可以使用這個清單裡的核心自行編譯。 ::: -## 備份您的原廠 boot.img {#backup-boot-image} +## 備份您的原廠 boot.img {#backup-stock-boot-img} -在進行刷新作業前,您必須預先備份您的原廠 boot.img。如果您在後續刷新作業中出現了任何問題,您都可以透過使用 Fastboot 刷新回到原廠 Boot 以還原系統。 +在寫入核心映像前,您必須預先備份您的原廠 boot.img。如果您在後續寫入中出現了任何問題,您都可以透過使用 Fastboot 寫回原廠 Boot 以還原系統。 -::: warning -刷新作業可能會造成資料遺失,請確保做好這一步再繼續進行下一步作業!!必要時您還可以備份您手機的所有資料。 +::: warning 警告 +寫入核心映像可能會造成資料遺失,請確保做好這一步再繼續進行下一步作業!!必要時您還可以備份您手機的所有資料。 ::: -## 必要知識 {#acknowage} +## 必要知識 {#necessary-knowledge} ### ADB 和 Fastboot {#adb-and-fastboot} @@ -27,9 +27,9 @@ ### KMI -KMI 全稱 Kernel Module Interface,相同 KMI 的核心版本是**相容的** 這也是 GKI 中「標準」的涵義所在;反之,如果 KMI 不同,那麼這些核心之間無法彼此相容,刷新與您裝置 KMI 不同的核心映像可能會導致開機迴圈。 +KMI 全稱 Kernel Module Interface,相同 KMI 的核心版本是**相容的**,這也是 GKI 中「標準」的涵義所在。反之,如果 KMI 不同,那麼這些核心之間無法彼此相容,寫入與您裝置 KMI 不同的核心映像可能會導致無法開機。 -具體來講,對 GKI 的裝置,其核心版本格式應該如下: +具體來講,對於 GKI 的裝置,其核心版本格式應該如下: ```txt KernelRelease := @@ -37,21 +37,27 @@ Version.PatchLevel.SubLevel-AndroidRelease-KmiGeneration-suffix w .x .y -zzz -k -something ``` -其中,`w.x-zzz-k` 為 KMI 版本。例如,一部裝置核心版本為 `5.10.101-android12-9-g30979850fc20`,那麼它的 KMI 為 `5.10-android12-9`;理論上刷新其他這個 KMI 的核心也能正常開機。 +其中,`w.x-zzz-k` 為 KMI 版本。例如,一部裝置核心版本為 `5.10.101-android12-9-g30979850fc20`,那麼它的 KMI 為 `5.10-android12-9`,理論上寫入其他這個 KMI 的核心也能正常開機。 -::: tip +::: tip 補充 請注意,核心版本中的 SubLevel 並非 KMI 的一部分!也就是說 `5.10.101-android12-9-g30979850fc20` 與 `5.10.137-android12-9-g30979850fc20` 的 KMI 相同! ::: +### 安全性修補程式等級 {#security-patch-level} + +較新的 Android 裝置可能具有防回滾機制,不允許寫入具有較舊安全性修補程式等級的啟動映像。例如,如果您的裝置核心為 `5.10.101-android12-9-g30979850fc20`,則其安全修補程式等級為 `2023-11`;即使寫入了 KMI 對應的核心,如果安全修補程式等級早於 `2023-11`(例如 `2023-06`),也可能會導致無法開機。 + +因此,最好使用具有最新安全性修補程式等級的核心來維護與 KMI 的對應關係。 + ### 核心版本與 Android 版本 {#kernel-version-vs-android-version} 請注意:**核心版本與 Android 版本並不一定相同!** -如果您發現您的核心版本是 `android12-5.10.101`,然而您 Android 系統的版本為 Android 13 或者其他;請不要覺得奇怪,因為 Android 系統的版本與 Linux 核心的版本號碼並非一致;Linux 核心的版本號碼一般與**裝置出廠時隨附的 Android 系統的版本一致**,如果後續 Android 系統更新,核心版本一般不會發生變化。如果您需要刷新,**請以核心版本為準!!** +如果您發現您的核心版本是 `android12-5.10.101`,然而您 Android 系統的版本為 Android 13 或更高,請不要覺得奇怪,因為 Android 系統的版本與 Linux 核心的版本號碼並非一致。Linux 核心的版本號碼一般與**裝置出廠時隨附的 Android 系統的版本一致**,如果後續 Android 系統更新,核心版本一般不會發生變化。如果您需要寫入,**請以核心版本為準!!** ## 安裝簡介 {#introduction} -自 `0.9.0` 版本以後,在 GKI 裝置中,KernelSU 支援兩種運行模式: +自 `0.9.0` 版本以後,在 GKI 裝置上,KernelSU 支援兩種運作模式: 1. `GKI`:使用**通用核心鏡像**(GKI)取代掉裝置原有的核心。 2. `LKM`:使用**可載入核心模組**(LKM)的方式載入到裝置核心中,不會替換掉裝置原有的核心。 @@ -60,55 +66,56 @@ w .x .y -zzz -k -something ### GKI 模式 {#gki-mode} -GKI 模式會替換掉裝置原有的內核,使用 KernelSU 提供的通用內核鏡像。 GKI 模式的優點是: +GKI 模式會替換掉裝置原有的核心,使用 KernelSU 提供的通用核心鏡像。 GKI 模式的優點是: -1. 通用型強,適用於大多數裝置;例如三星開啟了 KNOX 的裝置,LKM 模式無法運作。還有一些冷門的魔改裝置,也只能使用 GKI 模式; -2. 不依賴官方韌體即可使用;不需要等待官方韌體更新,只要 KMI 一致,就可以使用; +1. 通用型高,適用於大多數裝置;例如開啟了 KNOX 的三星裝置、或是 LKM 模式無法運作的裝置。還有一些冷門的魔改裝置,也只能使用 GKI 模式。 +2. 不依賴官方韌體即可使用;不需要等待官方韌體更新,只要 KMI 一致,就可以使用。 ### LKM 模式 {#lkm-mode} -LKM 模式不會替換掉裝置原有的內核,而是使用可載入內核模組的方式載入到裝置內核中。 LKM 模式的優點是: +LKM 模式不會替換掉裝置原有的核心,而是使用可載入核心模組的方式載入到裝置核心中。 LKM 模式的優點是: -1. 不會取代裝置原有的核心;如果你對裝置原有的核心有特殊需求,或是你希望在使用第三方核心的同時使用 KernelSU,可以使用 LKM 模式; -2. 升級和 OTA 較為方便;升級 KernelSU 時,可以直接在管理器內部安裝,無需再手動刷寫;系統 OTA 後,可以直接安裝到第二個槽位,也無需再手動刷寫; -3. 適用於一些特殊場景;例如使用臨時 ROOT 權限也可以載入 LKM,由於不需要替換 boot 分區,因此不會觸發 avb,不會使裝置意外變磚; -4. LKM 可以被暫時卸載;如果你暫時想取消 root,可以卸載 LKM,這個過程不需要刷寫分區,甚至也不用重啟裝置;如果你想再次 root,只需要重啟裝置即可; +1. 不會取代裝置原有的核心:如果你對裝置原有的核心有特殊需求,或是你希望在使用第三方核心的同時使用 KernelSU,可以使用 LKM 模式。 +2. 升級和 OTA 較為方便:升級 KernelSU 時,可以直接在管理器內部安裝,無需再手動寫入;系統 OTA 後,可以直接安裝到第二個槽位,也無需再手動寫入。 +3. 適用於一些特殊場景:例如使用臨時 root 權限也可以載入 LKM,由於不需要替換 boot 分區,因此不會觸發 avb,不會使裝置意外變磚。 +4. LKM 可以被暫時卸載:如果你暫時想取消 root,可以卸載 LKM,這個過程不需要寫入分區,甚至也不用重啟裝置。如果你想重新取得 root,只需要重啟裝置即可。 :::tip 兩種模式共存 -打開管理器後,你可以在首頁看到裝置目前運行的模式;注意 GKI 模式的優先級高於 LKM ,如你你既使用 GKI 內核替換掉了原有的內核,又使用 LKM 的方式修補了 GKI 內核,那麼 LKM 會被忽略,裝置將永遠以 GKI 的模式運作。 +打開管理器後,你可以在首頁看到裝置目前運行的模式。注意 GKI 模式的優先級高於 LKM ,如你既使用 GKI 核心替換掉了原有的核心,又使用 LKM 的方式修補了 GKI 核心,那麼 LKM 會被忽略,裝置將永遠以 GKI 的模式運作。 ::: ### 選哪個? {#which-one} -如果你的裝置是手機,我們建議您優先考慮 LKM 模式;如果你的裝置是模擬器、WSA 或 Waydroid 等,我們建議您優先考慮 GKI 模式。 +如果你的裝置是手機,我們建議您優先考慮 LKM 模式。 +如果你的裝置是模擬器、WSA 或 Waydroid 等,我們建議您優先考慮 GKI 模式。 ## LKM 安裝 {#lkm-installation} ### 取得官方韌體 {#get-the-official-firmware} -使用 LKM 的模式,需要取得官方韌體,然後在官方韌體的基礎上修補;如果你使用的是第三方內核,可以把第三方內核的 boot.img 作為官方韌體。 +使用 LKM 的模式,需要取得官方韌體,然後在官方韌體的基礎上修補;如果你使用的是第三方核心,可以把第三方核心的 boot.img 作為官方韌體。 -取得官方韌體的方法有很多,如果你的裝置支援 `fastboot boot`,那麼我們最推薦以及最簡單的方法是使用 `fastboot boot` 臨時啟動 KernelSU 提供的 GKI 內核,然後安裝管理器,最後在管理器中直接安裝;這種方法不需要你手動下載官方韌體,也不需要你手動提取 boot。 +取得官方韌體的方法有很多,如果你的裝置支援 `fastboot boot`,那麼我們最推薦以及最簡單的方法是使用 `fastboot boot` 臨時啟動 KernelSU 提供的 GKI 核心,並參考[使用管理器](#use-the-manager)安裝。 如果你的裝置不支援 `fastboot boot`,那麼你可能需要手動去下載官方韌體包,然後從中提取 boot。 -與 GKI 模式不同,LKM 模式會修改 `ramdisk`,因此在出廠 Android 13 的裝置上,它需要修補的是 `init_boot` 分區而非 `boot` 分區;而 GKI 模式則永遠是操作 `boot` 分區。 +與 GKI 模式不同,LKM 模式會修改 `ramdisk`,因此在出廠 Android 13 的裝置上,通常它需要修補的是 `init_boot` 分區而非 `boot` 分區;而 GKI 模式則永遠是修改 `boot` 分區。 ### 使用管理器 {#use-the-manager} 開啟管理器,點選右上角的安裝圖標,會出現若干個選項: -1. 選擇並修補一個文件:如果你手機目前沒有 root 權限,你可以選擇這個選項,然後選擇你的官方韌體,管理器會自動修補它;你只需要刷入這個修補後的文件,即可永久取得 root 權限; -2. 直接安裝:如果你手機已經 root,你可以選擇這個選項,管理器會自動獲取你的裝置資訊,然後自動修補官方韌體,然後刷入;你可以考慮使用`fastboot boot` KernelSU 的 GKI 內核來取得臨時 root 安裝管理器,然後再使用這個選項;這種方式也是 KernelSU 升級最主要的方式; -3. 安裝到另一個分割區:如果你的裝置支援 A/B 分割區,你可以選擇這個選項,管理器會自動修補官方韌體,然後安裝到另一個分割區;這種方式適用於 OTA 後的裝置,你可以在 OTA 後直接安裝到另一個分割區,然後重新啟動裝置即可; +1. 選擇並修補一個文件:如果你手機目前沒有 root 權限,你可以選擇這個選項,然後選擇你的官方韌體,管理器會自動修補它。你只需要寫入這個修補後的文件,即可永久取得 root 權限。 +2. 直接安裝:如果你手機已經 root,你可以選擇這個選項,管理器會自動獲取你的裝置資訊,然後自動修補官方韌體,然後寫入。你可以考慮使用 `fastboot boot` KernelSU 的 GKI 核心來取得臨時 root 安裝管理器,然後再使用這個選項。**這種方式也是 KernelSU 升級最主要的方式**。 +3. 安裝到另一個分割區:如果你的裝置支援 A/B 分區,你可以選擇這個選項,管理器會自動修補官方韌體,然後安裝到另一個分區。這種方式適用於 OTA 後的裝置,你可以在 OTA 後直接安裝到另一個分割區,然後重新啟動裝置即可。 -### 使用命令列 +### 使用命令列{#use-the-command-line} -如果你不想使用管理器,你也可以使用命令列來安裝 LKM;KernelSU 提供的 `ksud` 工具可以幫助你快速修補官方韌體,然後刷入。 +如果你不想使用管理器,你也可以使用命令列來安裝 LKM。KernelSU 提供的 `ksud` 可以幫助你快速修補官方韌體,然後寫入。 這個工具支援 macOS、Linux 和 Windows,你可以在 [GitHub Release](https://github.com/tiann/KernelSU/releases) 下載對應的版本。 -使用方法:`ksud boot-patch` 具體的使用方法你可以查看命令列幫助。 +使用方法:`ksud boot-patch`。 你可以查看命令列的提示了解具體的使用方法。 ```sh husky:/ # ksud boot-patch -h @@ -129,126 +136,130 @@ Options: -h, --help Print help ``` 需要說明的幾個選項: -1. `--magiskboot` 選項可以指定 magiskboot 的路徑,如果不指定,ksud 會在環境變數中尋找;如果你不知道如何取得 magiskboot,可以參考[這裡](#patch-boot-image); -2. `--kmi` 選項可以指定 `KMI` 版本,如果你的裝置核心名字沒有遵循 KMI 規範,你可以透過這個選項來指定; +1. `--magiskboot` 選項可以指定 magiskboot 的路徑,如果不指定,ksud 會在環境變數中尋找。如果你不知道如何取得 magiskboot,可以參考[這裡](#patch-boot-image)。 +2. `--kmi` 選項可以指定 `KMI` 版本,如果你的裝置核心名字沒有遵循 KMI 規範,你可以透過這個選項來指定。 + 最常見的使用方法為: ```sh ksud boot-patch -b --kmi android13-5.10 ``` -## GKI 安裝 +## GKI 安裝{#gki-mode-installation} GKI 的安裝方式有以下幾種,各自適用於不同的場景,請依需求選擇: -1. 使用自訂 Recovery (如 TWRP) 安裝 -2. 使用核心刷新應用程式 (例如 Franco Kernel Manager) 安裝 -3. 使用 KernelSU 提供的 boot.img 透過 Fastboot 安裝 +1. 使用 KernelSU 提供的 boot.img 透過 Fastboot 安裝 +2. 使用核心寫入程式 (例如 KernelFlasher) 安裝 +3. 使用自訂 Recovery (例如 TWRP) 安裝 4. 手動修補 boot.img 並安裝 -## 使用自訂 Recovery 安裝 {#install-by-recovery} - -先決條件:您的裝置必須有自訂的 Recovery,例如 TWRP;如果沒有或者只有官方 Recovery,請使用其他方法。 - -步驟: - -1. 在 KernelSU 的 [Release 頁面](https://github.com/tiann/KernelSU/releases) 下載與您手機版本相符的以 AnyKernel3 開頭的 Zip 套件;例如,手機核心版本為 `android12-5.10.66`,那麼您應該下載 `AnyKernel3-android12-5.10.66_yyyy-MM.zip` 這個檔案 (其中 `yyyy` 為年份,`MM` 為月份)。 -2. 重新開機手機至 TWRP。 -3. 使用 Adb 將 AnyKernel3-*.zip 放置到手機 /sdcard 然後在 TWRP 圖形使用者介面選擇並安裝;或者您也可以直接 `adb sideload AnyKernel-*.zip` 安裝。 - -PS. 這種方法適用於任何狀況下的安裝 (不限於初次安裝或後續更新),只要您用 TWRP 就可以進行作業。 - -## 使用核心刷新應用程式安裝 {#install-by-kernel-flasher} - -先決條件:您的裝置必須已經 Root。例如您已經安裝了 Magisk 並取得 Root 存取權,或者您已經安裝了舊版本的 KernelSU 需升級到其他版本的 KernelSU;如果您的裝置並未 Root,請嘗試其他方法。 - -步驟: - -1. 下載 AnyKernel3 的 Zip 檔案;請參閱 *使用自訂 Recovery 安裝* 章節的内容。 -2. 開啟核心刷新應用程式提供的 AnyKernel3 Zip 檔案進行刷新。 - -如果您先前並未使用過核心刷新應用程式,可以嘗試下面幾個方法: - -1. [Kernel Flasher](https://github.com/capntrips/KernelFlasher/releases) -2. [Franco Kernel Manager](https://play.google.com/store/apps/details?id=com.franco.kernel) -3. [Ex Kernel Manager](https://play.google.com/store/apps/details?id=flar2.exkernelmanager) - -PS. 這種方法在更新 KernelSU 時比較方便,無需電腦即可完成 (注意備份!)。 - ## 使用 KernelSU 提供的 boot.img 安裝 {#install-with-boot-img-provided-by-kernelsu} -這種方法無需您有 TWRP,也無需您的手機有 Root 權限;適用於您初次安裝 KernelSU。 +如果你的裝置的 `boot.img` 使用常見的壓縮格式,你可以直接寫入 KernelSU 提供的 GKI 核心映像,這種方法無需 TWRP,也無需您的手機有 Root 權限;適用於您初次安裝 KernelSU。 ### 找到合適的 boot.img {#find-proper-boot-img} -KernelSU 為 GKI 裝置提供了標準 boot.img,您需要將 boot.img 刷新至裝置的 Boot 分割區。 +KernelSU 為 GKI 裝置提供了標準 boot.img,您需要將 boot.img 寫入至裝置的 Boot 分區。 -您可以從 [GitHub Release](https://github.com/tiann/KernelSU/releases) 下載 boot.img,請注意,您應該使用正確版本的 boot.img。例如,如果您的裝置顯示核心是 `android12-5.10.101`,需要下載 `android-5.10.101_yyyy-MM.boot-.img`. +您可以從 [GitHub Release](https://github.com/tiann/KernelSU/releases) 下載 boot.img,請注意,您應該使用正確版本的 boot.img。如果你不知道你該下載哪個檔案,請詳細閱讀文檔中的 [KMI](#kmi) 與[安全性修補程式等級](#security-patch-level)。 -其中 `` 指的是您的官方 boot.img 的核心壓縮格式,請檢查您原有 boot.img 的核心壓縮格式,您應該使用正確的格式,例如 `lz4`、`gz`;如果使用不正確的壓縮格式,刷新 Boot 後可能無法開機。 +通常,在相同的 KMI 和安全性修補程式等級下,會存在三種不同格式的啟動檔案。除了核心壓縮格式之外,它們都是相同的。請檢查您原來的 boot.img 的核心壓縮格式。您應該使用正確的格式,例如 `lz4` 、 `gz`,如果你使用了不正確的壓縮格式,你可能會在寫入後無法開機。 -::: info -1. 您可以透過 magiskboot 以取得您的原始 Boot 的壓縮格式;當然,您也可以詢問與您相同型號的其他更有經驗的使用者。另外,核心的壓縮格式通常部會出現變更,如果您使用的某個壓縮格式成功開機,後續可以優先嘗試這個格式。 +::: info 關於 boot.img 的壓縮格式 +1. 您可以透過 magiskboot 以取得您的原始 Boot 的壓縮格式。當然,您也可以詢問與您相同型號的其他更有經驗的使用者。另外,核心的壓縮格式通常不會出現變更,如果您使用的某個壓縮格式成功開機,後續可以優先嘗試這個格式。 2. 小米裝置通常 `gz` 或者 **不壓縮**。 3. Pixel 裝置有些特殊,請遵循下方的指示。 ::: -### 將 boot.img 刷新至裝置 {#flash-boot-img-to-device} +### 將 boot.img 寫入至裝置 {#flash-boot-img-to-device} -使用 `adb` 連接您的裝置,然後執行 `adb reboot bootloader` 進入 fastboot 模式,然後使用此命令刷新 KernelSU: +使用 `adb` 連接您的裝置,然後執行 `adb reboot bootloader` 進入 fastboot 模式,然後使用此命令寫入 KernelSU: ```sh fastboot flash boot boot.img ``` -::: info -如果您的裝置支援 `fastboot boot`,可以先使用 `fastboot boot boot.img` 來先嘗試使用 boot.img 開機進入系統,如果出現意外,重新啟動即可開機。 +::: info 提示 +如果您的裝置支援 `fastboot boot`,可以先使用 `fastboot boot boot.img` 來嘗試使用 boot.img 開機進入系統,如果出現意外,重新啟動即可開機。 ::: ### 重新開機 {#reboot} -刷新完成後,您應該重新啟動您的裝置: +寫入完成後,您應該重新啟動您的裝置: ```sh fastboot reboot ``` -## 手動修補 boot.img {#patch-boot-image} +## 使用核心寫入程式安裝 {#install-with-kernel-flasher} + +先決條件:您的裝置必須已經 Root。例如您已經安裝了 Magisk 並取得 Root 存取權,或者您已經安裝了舊版本的 KernelSU 需升級到其他版本的 KernelSU;如果您的裝置並未 Root,請嘗試其他方法。 + +步驟: + +1. 下載 AnyKernel3 的 Zip 檔。如果你不知道你該下載哪個檔案,請詳細閱讀文檔中的 [KMI](#kmi) 與[安全性修補程式等級](#security-patch-level)。 +2. 開啟核心寫入程式提供的 AnyKernel3 Zip 檔案並寫入核心。 -對於某些裝置來說,其 boot.img 格式並不是很常見,比如 `lz4`,`gz` 和未壓縮;最典型的就是 Pixel,它的 boot.img 格式是 `lz4_legacy` 壓縮,ramdisk 可能是 `gz` 也可能是 `lz4_legacy` 壓縮;此時如果您直接刷新 KernelSU 提供的 boot.img,手機可能無法開機;這時,您可以透過手動修補 boot.img 來完成。 +如果您先前並未使用過核心寫入應用程式,可以嘗試下面幾個: -一般有兩種修補方法: +1. [Kernel Flasher](https://github.com/capntrips/KernelFlasher/releases) +2. [Franco Kernel Manager](https://play.google.com/store/apps/details?id=com.franco.kernel) +3. [Ex Kernel Manager](https://play.google.com/store/apps/details?id=flar2.exkernelmanager) + +P.S. 這種方法在更新 KernelSU 時比較方便,無需電腦即可完成 (注意備份!)。 + +## 手動修補 boot.img {#patch-boot-image} -1. [Android-Image-Kitchen](https://forum.xda-developers.com/t/tool-android-image-kitchen-unpack-repack-kernel-ramdisk-win-android-linux-mac.2073775/) -2. [magiskboot](https://github.com/topjohnwu/Magisk/releases) +對於某些裝置來說,其 boot.img 格式並不是很常見,不屬於 `lz4`,`gz` 和未壓縮;最典型的就是 Pixel,它的 boot.img 格式是 `lz4_legacy` 壓縮,ramdisk 可能是 `gz` 也可能是 `lz4_legacy` 壓縮;此時如果您直接寫入 KernelSU 提供的 boot.img,手機可能無法開機。這時,您可以透過手動修補 boot.img 來完成。 -其中,Android-Image-Kitchen 適用於在電腦上作業,magiskboot 需要手機協作。 +永遠建議使用 `magiskboot` 來修補映像,一般有兩種修補方法: -### 準備 {#patch-preparation} +1. [magiskboot](https://github.com/topjohnwu/Magisk/releases) +2. [magiskboot_build](https://github.com/ookiineko/magiskboot_build/releases/tag/last-ci) -1. 取得您手機的原廠 boot.img;您可以聯絡您的裝置製造商,您也可能需要[payload-dumper-go](https://github.com/ssut/payload-dumper-go) -2. 下載 KernelSU 提供的與您的裝置 KMI 一致地 AnyKernel3 Zip 檔案 (可參閱 *使用自訂 Recovery 安裝*)。 -3. 解壓縮 AnyKernel3 Zip 檔案,取得其中的 `Image` 檔案,此檔案為 KernelSU 的核心檔案。 +其中,官方的 `magiskboot` 僅能在 Android 上使用,若您想在電腦上完成,可以嘗試第二個選項。 -### 使用 Android-Image-Kitchen {#using-android-image-kitchen} +### 準備 {#preparation} -1. 下載 Android-Image-Kitchen 至您的電腦。 -2. 將手機原廠 boot.img 放置於 Android-Image-Kitchen 根目錄。 -3. 在 Android-Image-Kitchen 根目錄執行 `./unpackimg.sh boot.img`;此命令會將 boot.img 解除封裝,您會得到一些檔案。 -4. 將 `split_img` 目錄中的 `boot.img-kernel` 取代為您從 AnyKernel3 解壓縮出來的 `Image` (注意名稱變更為 boot.img-kernel)。 -5. 在 Android-Image-Kitchecn 根目錄執行 `./repackimg.sh`;此時您會得到一個 `image-new.img` 檔案;使用此 boot.img 透過 fastboot 刷新即可 (刷新方法請參閱上一章節)。 +1. 取得您手機的原廠 boot.img,您可以從您的裝置製造商取得,您也可能需要 [payload-dumper-go](https://github.com/ssut/payload-dumper-go)。 +2. 下載 KernelSU 提供的與您的裝置 KMI 一致的 AnyKernel3 Zip 檔 (可參閱[使用自訂 Recovery 安裝](#install-with-custom-recovery))。 +3. 解壓縮 AnyKernel3 Zip 檔,取得其中的 `Image` 檔,此檔案為具有 KernelSU 的核心。 -### 使用 magiskboot {#using magiskboot} +### 在 Android 上使用 magiskboot {#using-magiskboot-on-Android-devices} -1. 在 Magisk 的 [Release 頁面](https://github.com/topjohnwu/Magisk/releases) 下載最新的 Magisk 安裝套件。 -2. 將 `Magisk-*(version).apk` 重新命名為 `Magisk-*.zip` 然後解壓縮。 -3. 將解壓縮後的 `Magisk-*/lib/arm64-v8a/libmagiskboot.so` 檔案,使用 Adb 推入至手機:`adb push Magisk-*/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot` +1. 在 Magisk 的 [Release 頁面](https://github.com/topjohnwu/Magisk/releases) 下載最新的 Magisk。 +2. 將 `Magisk-*(version).apk` 重新命名為 `Magisk-*.zip` 並解壓縮。 +3. 使用 Adb 將 magiskboot 推入至手機:`adb push Magisk-*/lib/arm64-v8a/libmagiskboot.so /data/local/tmp/magiskboot`。 4. 使用 Adb 將原廠 boot.img 和 AnyKernel3 中的 Image 推入至手機。 -5. adb shell 進入 /data/local/tmp/ 目錄,然後賦予先前推入檔案的可執行權限 `chmod +x magiskboot` +5. adb shell 進入 /data/local/tmp/ 目錄,然後賦予先前推入的檔案可執行權限 `chmod +x magiskboot`。 6. adb shell 進入 /data/local/tmp/ 目錄,執行 `./magiskboot unpack boot.img` 此時會將 `boot.img` 解除封裝,得到一個名為 `kernel` 的檔案,這個檔案是您的原廠核心。 7. 使用 `Image` 取代 `kernel`: `mv -f Image kernel` -8. 執行 `./magiskboot repack boot.img` 重新封裝 img,此時您會得到一個 `new-boot.img` 檔案,透過 Fastboot 將這個檔案刷新至裝置即可。 +8. 執行 `./magiskboot repack boot.img` 重新封裝映像,此時您會得到一個 `new-boot.img` 檔案,透過 Fastboot 將這個檔案寫入至裝置即可。 + +### 在 Windows/macOS/Linux PC 上使用 magiskboot {#using-magiskboot-on-PC} + +1. 在 [magiskboot_build](https://github.com/ookiineko/magiskboot_build/releases/tag/last-ci) 下載對應的 magiskboot。 +2. (僅linux)賦予檔案可執行權限 `chmod +x magiskboot`。 +3. 執行 `./magiskboot unpack boot.img` 此時會將 `boot.img` 解除封裝,得到一個名為 `kernel` 的檔案,這個檔案是您的原廠核心。 +4. 使用 `Image` 取代 `kernel`: `mv -f Image kernel` +5. 執行 `./magiskboot repack boot.img` 重新封裝映像,此時您會得到一個 `new-boot.img` 檔案,透過 Fastboot 將這個檔案寫入至裝置即可。 + +## 使用自訂 Recovery 安裝 {#install-with-custom-recovery} + +先決條件:您的裝置必須有自訂的 Recovery,例如 TWRP。如果沒有或者只有官方 Recovery,請使用其他方法。 + +步驟: + +1. 在 KernelSU 的 [Release 頁面](https://github.com/tiann/KernelSU/releases) 下載與您手機版本相符的以 AnyKernel3 開頭的 Zip 檔;例如,手機核心版本為 `android12-5.10.66`,那麼您應該下載 `AnyKernel3-android12-5.10.66_yyyy-MM.zip` 這個檔案 (其中 `yyyy` 為年份,`MM` 為月份)。 +2. 重新開機手機至 TWRP。 +3. 使用 Adb 將 AnyKernel3-*.zip 放置到手機 `/sdcard` 然後在 TWRP 圖形使用者介面選擇並安裝;或者您也可以直接 `adb sideload AnyKernel-*.zip` 安裝。 + +PS. 這種方法適用於任何狀況下的安裝 (不限於初次安裝或後續更新),只要您用 TWRP 就可以進行作業。 ## GKI的其他替代方法 {#other-methods} -其實所有這些安裝方法的主旨只有一個,那就是**將原廠核心取代為 KernelSU 提供的核心**;只要能實現這個目的,就可以安裝;比如以下是其他可行的方法: +其實所有這些安裝方法的主旨只有一個,那就是**將原廠核心取代為 KernelSU 提供的核心**。只要能實現這個目的,就可以安裝,比如以下是其他可行的方法: + +1. 首先安裝 Magisk,透過 Magisk 取得 Root 權限後使用核心寫入程式寫入 KernelSU 的 AnyKernel Zip。 +2. 使用某些 PC 上的寫入工具組寫入 KernelSU 提供的核心。 + +但是,如果不起作用,請嘗試 Magiskboot 方法。 -1. 首先安裝 Magisk,透過 Magisk 取得 Root 權限後使用核心刷新程式刷新 KernelSU 的 AnyKernel Zip。 -2. 使用某些 PC 上的刷新工具組刷新 KernelSU 提供的核心。 diff --git a/website/docs/zh_TW/guide/module-webui.md b/website/docs/zh_TW/guide/module-webui.md index 5dbdaf7826f2..671faad7a153 100644 --- a/website/docs/zh_TW/guide/module-webui.md +++ b/website/docs/zh_TW/guide/module-webui.md @@ -2,11 +2,11 @@ KernelSU 的模組除了執行啟動腳本和修改系統檔案之外,還支援顯示 UI 介面和與使用者互動。 -該模組可以透過任何 Web 技術編寫HTML + CSS + JavaScript頁面。 KernelSU的管理器將透過 WebView 顯示這些頁面。它還提供了一些用於與系統互動的JavaScript API,例如執行shell命令。 +該模組可以透過任何 Web 技術編寫 HTML + CSS + JavaScript 頁面。 KernelSU的管理器將透過 WebView 顯示這些頁面。它還提供了一些用於與系統互動的 JavaScript API,例如執行 shell 命令。 ## WebUI 根目錄 {#webroot-directory} -Web資源應放置在模組根目錄的`webroot`子目錄中,並且其中**必須**有一個名為`index.html`的文件,該檔案是模組頁面入口。 +Web資源應放置在模組根目錄的 `webroot` 子目錄中,並且其中**必須**有一個名為 `index.html` 的文件,該檔案是模組頁面入口。 包含Web介面的最簡單的模組結構如下: @@ -18,7 +18,7 @@ Web資源應放置在模組根目錄的`webroot`子目錄中,並且其中**必 `-- index.html ``` -:::warning +:::warning 提醒 安裝模組時,KernelSU 將自動設定`webroot`的權限和 SELinux context。如果您不知道自己在做什麼,請不要自行設定該目錄的權限! ::: @@ -28,7 +28,7 @@ Web資源應放置在模組根目錄的`webroot`子目錄中,並且其中**必 如果只是一個顯示頁面,那和一般網頁沒有什麼不同。更重要的是,KernelSU 提供了一系列的系統 API,讓您可以實現模組獨特的功能。 -KernelSU 提供了一個 JavaScript 庫並[在 npm 上發布](https://www.npmjs.com/package/kernelsu),您可以在網頁的 JavaScript 程式碼中使用它。 +KernelSU [在 npm 上發布](https://www.npmjs.com/package/kernelsu)了一個 JavaScript 庫,您可以在網頁的 JavaScript 程式碼中使用它。 例如,您可以執行 shell 命令來取得特定配置或修改屬性: @@ -42,8 +42,9 @@ const { errno, stdout } = exec("getprop ro.product.model"); [API 文檔](https://www.npmjs.com/package/kernelsu) -如果您發現現有的API無法滿足您的需求或使用不方便,歡迎您在[這裡](https://github.com/tiann/KernelSU/issues)給我們建議! -## 一些技巧 +如果您發現現有的 API 無法滿足您的需求或使用不方便,歡迎您在[這裡](https://github.com/tiann/KernelSU/issues)給我們建議! -1. 您可以正常使用`localStorage`來儲存一些數據,但卸載管理器後,這些數據將會遺失。如果需要持久保存,可以自行將資料寫入某個目錄。 -2. 對於簡單的頁面,我建議您使用[parceljs](https://parceljs.org/)進行打包。它無須設定,使用非常方便。不過,如果你是前端高手或有自己的喜好,那就選擇你喜歡的吧! +## 一些技巧 {#some-tips} + +1. 您可以正常使用 `localStorage` 來儲存一些數據,但解除安裝管理器後,這些數據將會遺失。如果需要持久保存,可以自行將資料寫入某個目錄。 +2. 對於簡單的頁面,我建議您使用 [parceljs](https://parceljs.org/) 進行打包。它無須設定,使用非常方便。不過,如果你是前端高手或有自己的喜好,那就選擇你喜歡的吧! diff --git a/website/docs/zh_TW/guide/module.md b/website/docs/zh_TW/guide/module.md index 717c862890ec..dac0fec6c3ee 100644 --- a/website/docs/zh_TW/guide/module.md +++ b/website/docs/zh_TW/guide/module.md @@ -1,8 +1,8 @@ -# 模組指南 {#introduction} +# 模組指南 {#module-guide} -KernelSU 提供了一個模組機制,它可以在保持系統分割區完整性的同時達到修改系統分割區的效果;這種機制一般被稱為 systemless。 +KernelSU 提供了一個模組機制,它可以在保持系統分割區完整性的同時達到修改系統分割區的效果;這種機制一般被稱為 systemless (無系統修改)。 -KernelSU 的模組運作機制與 Magisk 幾乎相同,如果您熟悉 Magisk 模組的開發,那麼開發 KernelSU 的模組大同小異,您可以跳過下列有關模組的介紹,只需要瞭解 [KernelSU 模組與 Magisk 模組的異同](difference-with-magisk.md)。 +KernelSU 的模組運作機制與 Magisk 幾乎相同,如果您熟悉 Magisk 模組的開發,那麼開發 KernelSU 的模組大同小異,您可以跳過下列有關模組的介紹,只需要瞭解 [KernelSU 模組與 Magisk 模組的差異](difference-with-magisk.md)。 ## WebUI @@ -11,20 +11,20 @@ KernelSU 的模組支援顯示互動介面,請參閱 [WebUI 文檔](module-web ## Busybox KernelSU 提供了一個完備的 BusyBox 二進位檔案 (包括完整的 SELinux 支援)。可執行檔位於 `/data/adb/ksu/bin/busybox`。 -KernelSU 的 BusyBox 支援同時執行時可切換的 "ASH Standalone Shell Mode"。 -這種讀了模式意味著在執行 BusyBox 的 ash shell 時,每個命令都會直接使用 BusyBox 中內建的應用程式,而不論 PATH 的設定為何。 -例如,`ls`、`rm`、`chmod` 等命令將不會使用 PATH 中設定的命令 (在 Android 的狀況下,預設狀況下分別為 `/system/bin/ls`、`/system/bin/rm` 和 `/system/bin/chmod`),而是直接呼叫 BusyBox 內建的應用程式。 +KernelSU 的 BusyBox 支援執行時可切換的 "ASH 獨立模式"。 +ASH 獨立模式在執行 BusyBox 時,每個命令都會直接使用 BusyBox 中內建的應用程式,而不論 `PATH` 的設定為何。 +例如,`ls`、`rm`、`chmod` 等命令將不會使用 `PATH` 中設定的命令 (在 Android 的狀況下,預設狀況下分別為 `/system/bin/ls`、`/system/bin/rm` 和 `/system/bin/chmod`),而是直接呼叫 BusyBox 內建的應用程式。 這確保了腳本始終在可預測的環境中執行,並始終具有完整的命令套件,不論它執行在哪個 Android 版本上。 要強制下一個命令不使用 BusyBox,您必須使用完整路徑呼叫可執行檔。 -在 KernelSU 上下文中執行的每個 shell 腳本都將在 BusyBox 的 ash shell 中以獨立模式執行。對於第三方開發人員相關的內容,包括所有開機腳本和模組安裝腳本。 +每個基於 KernelSU 上下文的腳本都將在 BusyBox 的獨立模式執行。對於第三方開發人員而言,這包括所有開機腳本和模組安裝腳本。 對於想要在 KernelSU 之外使用這個「獨立模式」功能的使用者,有兩種啟用方法: 1. 將環境變數 `ASH_STANDALONE` 設為 `1`。例如:`ASH_STANDALONE=1 /data/adb/ksu/bin/busybox sh