Skip to content

ksud: Adapt resetprop calls to prop-rs-android 0.2.0 - #3532

Merged
5ec1cff merged 1 commit into
tiann:mainfrom
XiaoTong6666:pr6
Jun 22, 2026
Merged

5ec1cff merged 1 commit into
tiann:mainfrom
XiaoTong6666:pr6

Conversation

@XiaoTong6666

Copy link
Copy Markdown
Contributor

No description provided.

@XiaoTong6666 XiaoTong6666 changed the title ksud: Adapt resetprop calls to prop-rs-android 0.2 ksud: Adapt resetprop calls to prop-rs-android 0.2.0 Jun 22, 2026
@5ec1cff
5ec1cff merged commit b0bc817 into tiann:main Jun 22, 2026
20 checks passed
pershoot pushed a commit to KernelSU-Next/KernelSU-Next that referenced this pull request Jun 22, 2026
Tools-cx-app pushed a commit to Baka-SU/BakaSU that referenced this pull request Jun 22, 2026
…3532)

Signed-off-by: Tools-cx-app <localhost.hutao@gmail.com>

[cherry-pick from upstream tiann/KernelSU#3532]
@osm0sis

osm0sis commented Jun 25, 2026 •

Copy link
Copy Markdown

This seems like a downgrade to resetprop -c use; no way to blanket apply to all areas anymore without specifying a context for each affected prop?

Why not just improve resetprop -d to automatically compact/rebuild?

@XiaoTong6666

XiaoTong6666 commented Jun 25, 2026 •

Copy link
Copy Markdown
Contributor Author

This seems like a downgrade to resetprop -c use; no way to blanket apply to all areas anymore without specifying a context for each affected prop?

This comes from the prop-rs-android 0.2.0 API change. The rebuild API now works with a specified context/area:
https://github.com/Kernel-SU/ksu_props/blob/main/crates/prop-rs-android/src/resetprop.rs#L182-L184
https://github.com/Kernel-SU/ksu_props/blob/main/crates/prop-rs-android/src/sys_prop.rs#L729-L737
So this PR only adapts ksud to the new API.

@osm0sis

osm0sis commented Jun 25, 2026

Copy link
Copy Markdown

This comes from the prop-rs-android 0.2.0 API change. The rebuild API now works with a specified context/area: https://github.com/Kernel-SU/ksu_props/blob/main/crates/prop-rs-android/src/resetprop.rs#L182-L184 https://github.com/Kernel-SU/ksu_props/blob/main/crates/prop-rs-android/src/sys_prop.rs#L729-L737 So this PR only adapts ksud to the new API.

So you're saying these changes don't affect the CLI resetprop -c? They read like it requires the context area specified now.

@XiaoTong6666

XiaoTong6666 commented Jun 25, 2026 •

Copy link
Copy Markdown
Contributor Author

So you're saying these changes don't affect the CLI resetprop -c? They read like it requires the context area specified now.

Sorry, Sorry, I wasn't clear enough in my previous reply and caused some confusion.😭
Actually, resetprop -c is context-based now.
This PR is just syncing ksud with the upstream change. If we want to revisit that behavior, it would probably need to be discussed upstream with @5ec1cff.

@osm0sis

osm0sis commented Jun 25, 2026

Copy link
Copy Markdown

I see. Yeah, what would make the most sense to me from a usability standpoint would be to have every resetprop -d automatically compact the target prop's context area afterwards, and then still have the ability for resetprop -c with nothing specified compact everything.

@5ec1cff

5ec1cff commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

@osm0sis Solved in #3545

omrxm18 added a commit to omrxm18/KernelSU-Next that referenced this pull request Jul 9, 2026
* New Crowdin updates (KernelSU-Next#1245)

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-bn-rBD/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-bg-rBG/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-fr-rFR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-hi-rIN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-hu-rHU/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-sv-rSE/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-th-rTH/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-fr-rFR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-bn-rBD/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-bg-rBG/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-fr-rFR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-hi-rIN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-hu-rHU/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-sv-rSE/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-th-rTH/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bn-rBD/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bg-rBG/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fr-rFR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hi-rIN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hu-rHU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-sv-rSE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-th-rTH/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bn-rBD/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bg-rBG/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fr-rFR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hi-rIN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hu-rHU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-sv-rSE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-th-rTH/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

[ci skip]

* Revert: feat(kernel): tiny_sulog

-retain 'supercall'
 -For use in (future): 'kernel: Add compat bridge for ksu_toolkit (SULog)'

* feat(kernel ksud): add sulog (tiann/KernelSU#3360)

-dispatch/sucompat: write_sulog('i') -> ksu_sulog_emit_grant_root()
-syscall_event_bridge: integrate ksu_sulog_capture_root_execve
-dispatch: KSU_IOCTL_GET_SULOG_FD (cmd 20)
-mark certain functions __init/__exit

* kernel: sulog: fix return value (tiann/KernelSU#3364)

* kernel: Fix building sulog on kernel 6.1 & x86_64 (tiann/KernelSU#3401)

untagged_addr used to be a marco on mm.h for x86

* manager: add sulog screen (tiann/KernelSU#3373)

-adapt: Settings UI (sub-card)
-strings: localized feature (status summary)

* manager: fix sulog string

* manager: simplify sulog parser

also fix crash when more than one entries have the same emtry key

* fix: add CORS header to ksu://icon/ responses to allow programmatic image loading (tiann/KernelSU#3402)

* ksud: remove ksud before update it

- Since ksud sulogd is a long-running daemon, write operations to the ksud file will be rejected, making it impossible to update the file. Therefore, we need to recreate it.

* ksud: add manager package name option to some commands

This is to support the next commit.

-Note: Some of this was taken care of in:
       'refactor: use built-in bootimg crate, remove magiskboot' (8e98b5d)
       The commit this change is referencing is:
       'manager: use .dev package name suffix for pr build' (upstream: ksu: b8251b0)

-omit Magica

* ksud: minor refactor (tiann/KernelSU#3377)

- sulogd: use file lock instead of pid state file
- sulogd: launch sulogd only if needed
- utils: refactor daemon creation and switching process group

* ksud: fix daemonize

* ksud: fix fmt and clippy

* ksud: add --kmi for ksud late-load

* userspace: improve module loading and ksud CLI (tiann/KernelSU#3406)

- speed up manual relocation by scanning `/proc/kallsyms` only once,
resolving only the undefined symbols actually needed by the module and
stop kallsyms iteration early
- move `ksud debug insmod` to top-level `ksud insmod` and making it
accept trailing module parameters
- add `--allow-shell` to `ksud late-load` and `ksud magica`
- boot-patch: `-i` no longer requires `-m`

-omit Magica

* chore: make clippy happy (tiann/KernelSU#3423)

* kernel,ksud: support module-provided init.rc injection (tiann/KernelSU#3478)

- The rc files in modules and the common directory will be merged and
stored in `/metadata[/watchdog]/ksu/modules.rc`. These files will be
appended to the main system rc file at system startup.
- Module rc files: The `initrc/*.rc` files for each module.
- Common rc files: All executable (chmod +x) `/data/adb/initrc.d/*.rc`
files.
- The `modules.rc` file will be regenerated after module changes
(installation, disabling, uninstallation, etc.).
- If a user modifies the common rc file, the `ksud initrc refresh`
command can be run to regenerate the file and apply the changes.
- Custom rc files can be ignored when patching bootimg using the
`--no-custom-rc` option.

---------

Co-authored-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

* kernel, ksud, manager: implement uapi version (tiann/KernelSU#3455)

Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
Co-authored-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>

-update: StatusCard (UAPI version display)

* feature: add KSU_NO_NEW_PRIVS (tiann/KernelSU#3509)

- Introduced the NO_NEW_PRIVS flag to app profile to mitigate privilege re-escalation via Custom App Profile UID/GID configurations.
- If a process is escalated to the context of the root profile with NO_NEW_PRIVS flag set, it and its children can no longer be escalated to new privileges via KernelSU (e.g. executing `su` or calling `GRANT_ROOT` super call) any more.
- Added a bitflags field to the root profile, migrated allowlist storage to v4.
- New templates and custom root profiles will have NO_NEW_PRIVS flag set by default.

---------

Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
Co-authored-by: 5ec1cff <56485584+5ec1cff@users.noreply.github.com>

* kernel: allowlist: Format/indent spaces/tabs

* ksud: su: add --ksu-no-new-privs option (tiann/KernelSU#3515)

* manager: fix template save & load (tiann/KernelSU#3517)

Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>

* dev: remove and ignore kernel/.clangd, add clangd examples

* dev: split output dir for local lkm build

Some patch is required to use separate build dir when building for android16-6.12, see:
https://github.com/5ec1cff/ddk#local-%E6%A8%A1%E5%BC%8F%E6%9E%84%E5%BB%BA%E9%80%82%E7%94%A8%E4%BA%8E%E5%A4%9A%E4%B8%AA-target-%E7%89%88%E6%9C%AC%E7%9A%84%E5%86%85%E6%A0%B8%E6%A8%A1%E5%9D%97

* kernel, ksud: refactor sucompat (tiann/KernelSU#3521)

- Execute ksud by opening fd with ksu cred and redirecting to execveat,
remove READ_SEARCH capability from effective caps.
- Redirect newfstatat/faccessat's `su` path to `ksud` .
- Now sucompat requires `/data/adb/ksud` to exist in caller's root, so
chrooted process won't be affected unexpectedly.
- Remove fallback to sh. User should install manager and open it after
first installation to install ksud to enable sucompat after first
installation.

* kernel: kernel_umount: Format a few spaces to tabs

* kernel: Add compat bridge for ksu_toolkit (SULog)

-https://github.com/backslashxx/KernelSU
 'kernel: tiny_sulog: basic ringbuffer, timestamped su log'

Co-authored-by: pershoot <190600+pershoot@users.noreply.github.com>

Adapt:
-compat_sulog_entry struct (8-byte packed)
-sulog_entry_rcv_ptr memory layout (3 64-bit ptrs)
-ktime_get_boottime() division logic
-IOCTL (10010) interception sequence
-time-handling: ktime_get_boottime_ts64 (32-bit build accomodation)
-copy_to_user from spinlock (alleviate potential panics)

Note: GET_SULOG_DUMP_V2:
      'sulogv2', 'kernel: unified uapi header'

-https://github.com/backslashxx/ksu_toolkit

* kernel: Allow domain to use memfd created by ksu domain (tiann/KernelSU#3528)

Follows
https://android.googlesource.com/platform/system/sepolicy/+/6990498e3fda84c625b1fce97e4747990f841f3b.

* manager: Spanish: Fix malformed require_kernel_version

* manager: Fix MissingFormatArgumentException for home_working_version

* kernel: Remove strncpy() from the kernel (tiann/KernelSU#3529)

torvalds/linux@079a028

* ksud: update dependencies

* ksud: Adapt resetprop calls to prop-rs-android 0.2.0 (tiann/KernelSU#3532)

-omit Magica

* manager: Chinese: Fix empty reboot_userspace

* ksud: update resetprop, improve prop area rebuild (tiann/KernelSU#3545)

- The `-c` option is now short for `--rebuild`, while retaining the
alias `--compact`.
- When using the `rebuild` option, if no NAME is provided, all property
areas with anomalies will be rebuilt. Using `-f` will rebuild all areas,
regardless of whether anomalies exist.
- The `rebuild` option can also be used with `-Z` and `-d`, which
resolves the NAME to a property name and rebuilds the property area
containing that property (if the `-d` option is specified, the property
will be deleted first and then the property area will be rebuilt).

* [PARTIAL] ksud: expose module env vars (tiann/KernelSU#3522)

ksud:
- Refactor `is_uapi_version_mismatch()` into
`ensure_uapi_version_matched()` with descriptive error messages showing
both kernel and ksud UAPI versions.
- expose `KSU_UAPI_VER` and `KSU_RUNTIME_MODE` to module scripts.
- Block module installation on UAPI version mismatch.
- Show UAPI version in `ksud --version` output.

docs:

- Document `KSU_UAPI_VER`, `KSU_RUNTIME_MODE`, `KSU_LATE_LOAD` env vars.

---------

Signed-off-by: u9521 <63995396+u9521@users.noreply.github.com>
Co-authored-by: 5ec1cff <56485584+5ec1cff@users.noreply.github.com>

-Omit:
 -'docs: initrc injection and rescue guide'
  guide/module.md, guide/rescue-from-bootloop.md
  - Add initrc injection guide with examples and limitations.
  - Rewrite rescue guide with practical manual recovery methods.

* ksud: Relax regex for module ID/config key

-allow leading numbers for: module ID/config key (module/module_config)
 -KernelSU-Next#1268

* manager: Home: Restore ksuVersionTag

-Format:
 TAG-UAPI_VERSION (KSUVER)

* manager: optimize and fix sulogscreen and other screens

* manager: optimize and fix sulogscreen and other screens

* New Crowdin updates (KernelSU-Next#1342)

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bn-rBD/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bg-rBG/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fr-rFR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hi-rIN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hu-rHU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-sv-rSE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-th-rTH/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bn-rBD/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ar-rSA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bn-rBD/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-bg-rBG/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rCN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-zh-rTW/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fr-rFR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hi-rIN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hu-rHU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ko-rKR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-sv-rSE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-th-rTH/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-tr-rTR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

[ci skip]

* manager: fix sulog screen drowndown menu

* manager: add pull to refresh for sulog screen

* New Crowdin updates (KernelSU-Next#1366)

* New translations manager/app/src/main/res/values-de-rDE/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-hi-rIN/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-in-rID/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-it-rIT/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ja-rJP/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-fa-rIR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pl-rPL/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-pt-rBR/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-ru-rRU/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-es-rEM/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-uk-rUA/strings.xml (bundle: 8)

[ci skip]

* New translations manager/app/src/main/res/values-vi-rVN/strings.xml (bundle: 8)

[ci skip]

* ksud: boot-patch: only use kmi from boot if ota (tiann/KernelSU#3557)

---------

Signed-off-by: AlexLiuDev233 <wzylin11@outlook.com>
Co-authored-by: Rifat Azad <33044977+rifsxd@users.noreply.github.com>
Co-authored-by: pershoot <190600+pershoot@users.noreply.github.com>
Co-authored-by: Ylarod <me@ylarod.cn>
Co-authored-by: 5ec1cff <56485584+5ec1cff@users.noreply.github.com>
Co-authored-by: Huy Minh <39849246+hmtheboy154@users.noreply.github.com>
Co-authored-by: KOWX712 <leecc0503@gmail.com>
Co-authored-by: NKU100 <21164383+NKU100@users.noreply.github.com>
Co-authored-by: 5ec1cff <ewtqyqyewtqyqy@gmail.com>
Co-authored-by: YuKongA <70465933+YuKongA@users.noreply.github.com>
Co-authored-by: AlexLiuDev233 <wzylin11@outlook.com>
Co-authored-by: backslashxx <118538522+backslashxx@users.noreply.github.com>
Co-authored-by: Wang Han <416810799@qq.com>
Co-authored-by: 小潼 <110387028+XiaoTong6666@users.noreply.github.com>
Co-authored-by: u9521 <63995396+u9521@users.noreply.github.com>
Co-authored-by: Rifat Azad <rifat.44.azad.rifs@gmail.com>
Repository owner locked as spam and limited conversation to collaborators Aug 6, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants