Modules / zygisk-sui

Zygisk - Sui

Fork by XiaoTong. Modern superuser interface implementation for Android root apps.

README

Sui

🇨🇳中文README | 🇯🇵日本語README

Modern super user interface (SUI) implementation for Android. The name, Sui, also comes from a character.

Introduction

Sui provides Java APIs, namely Shizuku API, for root / shell apps. It mainly provides two abilities:

  1. Use Android Framework APIs directly, almost as if calling system APIs from Java as root or shell.
  2. Start an app-defined AIDL-style Java service under root or shell.

This makes privileged Android app development much more comfortable.

Another advantage is that Sui does not add binaries to PATH and does not install a standalone manager app. This means we no longer need to spend a huge amount of time fighting apps that detect them.

To be clear, the full implementation of “root” is far more than su itself. There is a lot of hard work to be done before it. Sui is not a full root solution. It requires an existing root environment and runs as a Zygisk module.

Why "su" is unfriendly for app development

su, a “shell” running as root, is too far from the Android world.

To explain this, we need to briefly talk about how system APIs work. For example, we can use PackageManager#getInstalledApplications to get the app list. This is actually an inter-process communication (IPC) process between the app process and the system_server process. The Android Framework just hides the details for us.

Android uses Binder for this type of IPC. Binder allows the server side to learn the uid and pid of the client side, so system_server can check whether the app has permission to perform the operation.

Back to su. In a su environment, we usually only have commands provided by the Android system. In the same example, to get the app list with su, we have to run pm list. This is painful:

  1. Text-based output: there is no structured data like PackageInfo in Java. You have to parse text.
  2. Slow: running a command means at least one new process is started, and PackageManager#getInstalledApplications is still called inside pm list.
  3. Limited ability: commands only cover a small part of Android APIs.

Although it is possible to use Java APIs as root with app_process through libraries such as libsu or librootjava, transferring Binder objects between the app process and the root process is painful. If you want the root process to run as a daemon, once the app process restarts, there is no cheap way to get the Binder of the root process again.

In fact, for Magisk and other root solutions, making su work is not as easy as some people think. Both su itself and the communication between su and the manager app involve a lot of unpleasant work behind the scenes.

User guide

Note: the behavior of existing apps that only support su will NOT change.

Install

You can install Sui directly in KernelSU or another compatible root manager such as Magisk or APatch. Or download the zip from release and use Install from storage in your root manager.

Sui requires a compatible root environment. On Magisk, this means Magisk 24.0+ with Zygisk enabled. On KernelSU or APatch, it additionally requires a separate Zygisk implementation such as Zygisk Next, ReZygisk, or NeoZygisk. Do not add SystemUI or Settings to Zygisk DenyList, otherwise the injected management UI may not work properly.

Management UI

  • Long press the System Settings icon on the home screen to see the Sui shortcut
  • In the Sui management interface, tap the menu button in the top-right corner and select Add shortcut to home screen
  • Enter *#*#784784#*#* in the default dialer app
  • Open the Sui management interface via the Action button in KernelSU/Magisk manager

Note: On some systems, the Sui shortcut may not appear when long-pressing Settings.
Additionally, to avoid disturbing users, newer versions have removed the feature that automatically prompts to add a shortcut when entering Developer options.

Permission modes

Sui stores permission states by UID. The main modes are:

  • Ask / default: the app can connect to Sui and request permission through the normal flow.
  • Allow root: the app will be routed to the root backend.
  • Allow shell: the app will be routed to the shell backend.
  • Deny: deny the app from using Sui.
  • Hide: hide Sui from the target app. When Hide is enabled, the target app UID is intercepted in the Native Binder execTransact stage. Its Sui bridge transaction is swallowed before it can enter BridgeService and obtain the Sui Binder.

When the permission state changes, Sui may force-stop affected apps to cut off old Binder handles and make them obtain the correct backend on the next launch.

Interactive shell

Sui provides an interactive shell.

Since Sui does not add files to PATH, the required files need to be copied manually. See /data/adb/sui/post-install.example.sh to learn how to do this automatically.

After the files are correctly copied, use rish as sh to start an interactive shell.

adb root

Sui also provides optional adb root support. When enabled, Sui sets up an adbd wrapper plus preload hook so that adbd can run under the current root implementation’s SELinux domain while keeping the expected adbd socket label.

This feature is disabled by default. Enable it by creating one of the following marker files from a root shell, then reboot so Sui can apply the setup during post-fs-data:

  • Enable for the next boot only:

    touch /data/adb/sui/enable_adb_root_once
    
  • Enable persistently for every boot:

    touch /data/adb/sui/enable_adb_root
    

After reboot, use adb root normally.

To disable the persistent mode again:

rm /data/adb/sui/enable_adb_root

This feature depends on your root implementation and SELinux policy. Sui checks the required setcurrent, dyntransition, and setsockcreate permissions before enabling it. Existing app behavior does not change. This only affects the device adbd path. If your device uses a heavily customized adbd implementation, compatibility may vary.

Application development guide

Sui app development should still primarily follow the upstream Shizuku API documentation:

https://github.com/RikkaApps/Shizuku-API

Apps are recommended to use rikka.shizuku.Shizuku as the unified compatibility layer. Do not maintain a Sui-only code path. In this way, one wrapper can support both Shizuku and Sui.

In the normal integration pattern, you only need ShizukuProvider plus the regular Shizuku API flow. ShizukuProvider already attempts Sui initialization automatically, so app code usually does not need to import or call rikka.sui.Sui directly.

If you intentionally disable ShizukuProvider’s automatic Sui initialization, you can still call Sui.init(packageName) manually inside your wrapper. If it receives a Binder, it passes it to the Shizuku API layer; if not, the app can continue with the normal Shizuku flow.

Example pattern with the normal auto-initialization flow:

import android.content.pm.PackageManager
import android.content.pm.IPackageManager
import rikka.shizuku.Shizuku
import rikka.shizuku.ShizukuBinderWrapper
import rikka.shizuku.SystemServiceHelper

fun initPrivilegedApi() {
    Shizuku.addBinderReceivedListener {
        checkShizukuPermission()
    }

    if (Shizuku.pingBinder()) {
        checkShizukuPermission()
    }
}

fun checkShizukuPermission() {
    if (Shizuku.checkSelfPermission() == PackageManager.PERMISSION_GRANTED) {
        val binder = SystemServiceHelper.getSystemService("package")
            ?: return

        val pm = IPackageManager.Stub.asInterface(
            ShizukuBinderWrapper(binder)
        )

        pm.isPackageAvailable("android", 0)
    } else {
        Shizuku.requestPermission(0)
    }
}

If you want manual initialization instead, add import rikka.sui.Sui and call Sui.init(packageName) before waiting for the binder.

Common APIs include:

  • Shizuku.pingBinder()
  • Shizuku.checkSelfPermission()
  • Shizuku.requestPermission(requestCode)
  • Shizuku.getUid(), which can be used to check the current backend identity, for example 0 for root and 2000 for shell
  • SystemServiceHelper.getSystemService(name)
  • ShizukuBinderWrapper, used to wrap Android Framework service binders
  • bindUserService(), used to start an app-defined Java service running as root or shell

Build

Clone with submodules:

git clone --recurse-submodules https://github.com/XiaoTong6666/Sui.git

Gradle tasks:

BuildType could be Debug or Release.

  • :module:assemble<BuildType>

    Build the module. After assemble finishes, the flashable module zip will be generated to out.

  • :module:zip<BuildType>

    Generate the flashable module zip to out.

  • :module:push<BuildType>

    Push the zip with adb to /data/local/tmp.

  • :module:flash<BuildType>

    Install the zip with adb shell su -c magisk --install-module.

  • :module:flashWithKsud<BuildType>

    Install the zip with adb shell su -c ksud module install.

  • :module:flashAndReboot<BuildType>

    Install the zip and reboot the device.

  • :module:flashWithKsudAndReboot<BuildType>

    Install the zip with ksud and reboot the device.

For example:

./gradlew :module:assembleRelease
./gradlew :module:zipRelease
./gradlew :module:flashRelease

Internals

Sui requires Zygisk. Zygisk allows us to inject into system_server, SystemUI, Settings and related app processes.

Overall, there are five main parts, and an optional adb root path:

  • Root process

    This is a root process started by the root implementation during the post-fs-data stage. It starts a Java server that implements Shizuku API and private APIs used by other parts.

    The root server is the main source of permission configuration. It maintains the UID permission database and syncs hidden, root allowed, shell allowed, denied and default mode states to system_server.

  • Shell process

    The shell server runs as shell and serves apps granted with shell permission.

    It loads UID permission states from the configuration file mirrored by the root server. When the shell backend needs to show a permission confirmation window, it delegates the request to the root server, which then triggers the SystemUI confirmation UI.

  • SystemServer inject

    • Hooks Binder#execTransact to intercept the dedicated Binder transaction used by Sui inside system_server
    • Keeps the root binder, shell binder, and permission caches for hidden/root allowed/shell allowed/denied/default mode
    • Chooses which backend Binder to return based on the UID’s effective permission: root gets the root binder, shell gets the shell binder
    • For hidden UIDs, blocks the Sui bridge request directly; for ask/deny, still returns the root binder so the client can continue through the normal permission or denial result flow
  • SystemUI inject

    • Opens the Sui APK fd from Sui service and loads Sui Resources plus the permission dialog class
    • Attaches to the service and shows permission confirmation dialogs on callback
    • Registers secret-code style entry points and, when triggered, launches the Sui management UI hosted in the Settings process
  • Settings inject

    • Opens the Sui APK fd from Sui service and loads Sui Resources plus SuiActivity
    • Replaces ActivityThread instrumentation during Settings process startup
    • Maintains dynamic/pinned shortcuts and handles pinned-shortcut requests relayed from SystemUI
    • When the target Activity intent carries the Sui extra and token, instantiates and displays SuiActivity instead
  • adbd wrapper / preload (optional)

    • During post-fs-data, when adb root support is enabled, Sui prepares an adbd wrapper and preload library for /apex/com.android.adbd/bin/adbd or /system/bin/adbd
    • The wrapper rewrites --root_seclabel=... to the current root implementation’s SELinux domain and injects LD_PRELOAD
    • The preload hook intercepts selinux_android_setcon() / setcon() so adbd can switch into the root domain while restoring sockcreate to the expected adbd label

License

Sui is licensed under GPL-3.0-or-later.

Release History

v496-743e9c3

Published on June 17, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (496-743e9c3-release)
  • VersionCode: 496
  • Commit: 743e9c3
  • Build time: 4m 25s
  • SHA256: 3fe75ad0c02fb2a3c96afe511e426ab1eec0c87945777b307ba71f14863995ee

Message

build(deps): bump com.diffplug.spotless from 8.6.0 to 8.7.0 (#69)

Bumps com.diffplug.spotless from 8.6.0 to 8.7.0.

---
updated-dependencies:
- dependency-name: com.diffplug.spotless
  dependency-version: 8.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: XiaoTong6666 <110387028+XiaoTong6666@users.noreply.github.com>

v495-b3c27cc

Published on June 8, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (495-b3c27cc-release)
  • VersionCode: 495
  • Commit: b3c27cc
  • Build time: 3m 20s
  • SHA256: 1db7fe6a93f8158a7caa084515e419887082d869652484b8d96ea46542ab51f5

Message

fix: 修复默认隐藏未进入 binder 拦截链路 (#68)

v494-fde2611

Published on June 5, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (494-fde2611-release)
  • VersionCode: 494
  • Commit: fde2611
  • Build time: 3m 46s
  • SHA256: 5516a7ab3c446d9e221aef49a1dbe5f9411aaa9f760a973c7df6271c351e1a15

Message

build(deps): bump core from 1.18.0 to 1.19.0 (#66)

Bumps `core` from 1.18.0 to 1.19.0.

Updates `androidx.core:core` from 1.18.0 to 1.19.0

Updates `androidx.core:core-ktx` from 1.18.0 to 1.19.0

---
updated-dependencies:
- dependency-name: androidx.core:core
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: androidx.core:core-ktx
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v493-7804f7b

Published on June 3, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (493-7804f7b-release)
  • VersionCode: 493
  • Commit: 7804f7b
  • Build time: 4m 06s
  • SHA256: b484a4f2056e6e6e1235a06ad12f581ba435cbfc7b33855637b3806c4512a021

Message

build(deps): bump org.jetbrains.kotlin.android from 2.3.21 to 2.4.0 (#67)

Bumps [org.jetbrains.kotlin.android](https://github.com/JetBrains/kotlin) from 2.3.21 to 2.4.0.
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.3.21...v2.4.0)

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin.android
  dependency-version: 2.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v492-11af908

Published on June 2, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (492-11af908-release)
  • VersionCode: 492
  • Commit: 11af908
  • Build time: 3m 13s
  • SHA256: 3e79057035436ee82678e3586e0c33822fe558b14baf18247397f40bc7187384

Message

fix: 兼容 Android TV settings 包名回退 #65

- 新增 SettingsPackages,统一维护 TV settings 与普通 settings 的候选包名
- 安装阶段优先解析实际存在的 settings 包,并将其应用信息写回原有 canonical 文件名
- SuiService 改为支持多个 settings 包名候选,避免仅识别 com.android.settings
- ManagerProcess 与 SuiShortcut 改为按候选包名选择 settings 目标
- Uninstaller 卸载时同时清理两个 settings 包下的动态快捷方式

v491-f07da10

Published on June 1, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (491-f07da10-release)
  • VersionCode: 491
  • Commit: f07da10
  • Build time: 2m 57s
  • SHA256: 36e002f391801860f8b15860e50fbdfc6076d452c9882db2e9980c97e6b02882

Message

fix(build): 修复 ktlint rule 禁用格式以适配 ktlint 1.x

v490-79a7a1d

Published on June 1, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (490-79a7a1d-release)
  • VersionCode: 490
  • Commit: 79a7a1d
  • Build time: 1m 24s
  • SHA256: 51a99057ca0b66c90f3d4414c18ffb13d8dcb8a9901a3aad738197dc57760718

Message

build: 采用版本目录统一依赖管理并优化构建配置

v489-a5c1b27

Published on May 31, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (489-a5c1b27-release)
  • VersionCode: 489
  • Commit: a5c1b27
  • Build time: 1m 23s
  • SHA256: f0e39a8eef0c0477287ebaea354da0baa0cbc00dc9be987f76c023ce24634e07

Message

fix: 兼容 16KB 页对齐,修复反射基础类型传参,限制 label 并发

- CMakeLists:添加 -Wl,-z,max-page-size=16384 以兼容 16KB 页面大小
- AppLaunchUtils:反射调用时将基本类型参数零填充,避免 null 导致 IllegalArgumentException
- ManagementViewModel:label 加载改用 limitedParallelism(4) 并发,兼顾性能与线程压力

v488-2239cee

Published on May 31, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (488-2239cee-release)
  • VersionCode: 488
  • Commit: 2239cee
  • Build time: 3m 08s
  • SHA256: 8d4bed605397963733b1511c79fba279a40638543a611f657a994cee9f229868

Message

style: format code

v487-0cce12d

Published on May 30, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (487-0cce12d-release)
  • VersionCode: 487
  • Commit: 0cce12d
  • Build time: 3m 21s
  • SHA256: 278d700fa1df07a2a03fd6a3e37764fe3884f5fdd6936de0612b86ec04bce9f7

Message

fix: 增强权限确认安全边界并修复 service 注册与 shell 路由问题

本轮改动集中收紧了 SuiService 的权限管理面,增加可信调用者校验和待确认请求追踪,
同时修复了 bridge 注册重试失效、shell 路由冲刷时序、SuiApk 半初始化对象隐患和 APatch 脚本变量错误。

- 为 requestPermissionFromShell 增加可信调用者校验(uid 0/2000/systemUiUid),
  并要求 packageName 确实归属于 reqUid,防止伪造弹窗身份与未经授权的权限请求
- dispatchPermissionConfirmationResult 移除 uid=1000 宽放 fallback,只接受 systemUiUid 回传,
  并通过 Map<String, Integer> 待确认计数机制防止同 key 并发请求被误丢与伪造回写
- 将权限确认收尾逻辑抽取为 finishPermissionConfirmation,统一正常回写和异常分支的收口,
  并支持 SystemUI 无法展示弹窗时由服务端本地完成拒绝收尾,避免请求永久挂起
- 为 BINDER_TRANSACTION_REQUEST_PINNED_SHORTCUT_FROM_UI 新增 enforceManagerPermission,
  限制快捷方式创建仅可由管理端触发
- 新增 SuiConfigManager.syncUidsToShellFileNow 与 SuiService.flushShellRoutingState,
  在权限变更(dispatchPermissionConfirmationResult、updateFlagsForUid、dispatchPackageChanged)
  以及默认模式进出 shell 时,先同步 shell 配置文件再刷新 system_server 路由,消除 root/shell 切换竞态
- 修复 BridgeServiceClient.sendToBridge 中 Parcel.obtain 置于循环外导致重试失效的问题,
  改为每次重试均重新 obtain
- 修复 SuiApk.createForSettings 和 createForSystemUI 在类/构造器加载失败时
  仍返回半初始化对象的问题,改为直接返回 null;
  同时 ManagerProcess.showPermissionConfirmation 在加载失败时改为抛出 IllegalStateException,
  保证服务端 catch 路径能正确处理失败请求
- 修复 post-fs-data.sh APatch 分支中 kp_major_char/kp_minor_patch 未正确展开为计算变量的错误

此外,清理了 updateFlagsForUid 中未使用的 wasHidden 变量,并将多处 BridgeServiceClient.syncUids
调用抽取为 syncUidsToSystemServer 辅助方法以减少重复。

同步更新 api 子模块:
- Shizuku.pingBinder() 修复为使用局部变量 b,避免字段空指针
- ShizukuProvider 用 ContextCompat.registerReceiver 替换版本分支的 registerReceiver,provider 新增 androidx.core 依赖
- rish 的 STL 从 none 改为 c++_static,移除 libcxx 依赖与 prefab 配置

v486-7c850b9

Published on May 28, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (486-7c850b9-release)
  • VersionCode: 486
  • Commit: 7c850b9
  • Build time: 4m 09s
  • SHA256: b3847b1a6fbda9a9a778dc97b23c299ce1e805e0d56f23525b99fc24498d5b6d

Message

build(deps): bump com.diffplug.spotless from 8.5.1 to 8.6.0 (#64)

Bumps com.diffplug.spotless from 8.5.1 to 8.6.0.

---
updated-dependencies:
- dependency-name: com.diffplug.spotless
  dependency-version: 8.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v485-4575090

Published on May 22, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (485-4575090-release)
  • VersionCode: 485
  • Commit: 4575090
  • Build time: 3m 02s
  • SHA256: f194cb41bc658e7913305efa59de206c16d7d2f78ac9af2277c62bce5d058f30

Message

refactor: 提取共享 API 组件并优化服务端与 UI 性能

清理服务端与 UI 层的重复代码,并修复部分性能和逻辑隐患:

- 将 ui 和 module 中的重复工具类合并至 api/shared,并新增 BridgeConstants 统一跨层通信常量
- 调整 ManagementViewModel 加载模型,将分批串行加载替换为基于 Dispatchers.IO 的异步并发加载
- 将 SuiConfigManager 的配置检索改为 Map 映射,并为高频配置写盘增加 200ms 防抖节流
- 修改 Bridge 中的权限状态判断,明确互斥优先级(隐藏 > 拒绝 > Root > Shell)防止权限覆盖
- 增加 Native 层的安全防护:为 Zygisk 注入添加数据长度和初始化失败检查,并将 JNI 接口表静态化

此外,修复了 SuiDatabase 的并发初始化隐患与 SuiService 中的位运算错误,并清理了 UI 层的无效判断分支。

v484-d483c33

Published on May 18, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (484-d483c33-release)
  • VersionCode: 484
  • Commit: d483c33
  • Build time: 1m 21s
  • SHA256: 4b7f78f2ab168052b2d4b6facad8182c6f334e14b7f70a26015a2292de9a7a81

Message

docs: 添加日文 README 并同步多语言文档表述

v483-9701510

Published on May 18, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (483-9701510-release)
  • VersionCode: 483
  • Commit: 9701510
  • Build time: 2m 56s
  • SHA256: 34033bdc696c5bdeb0a0554a0f0f06d8870c924ac90dfa77cf7ba18c06061d1c

Message

docs: 添加可选的 adb root 支持相关说明

v482-c2d21cb

Published on May 18, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (482-c2d21cb-release)
  • VersionCode: 482
  • Commit: c2d21cb
  • Build time: 3m 53s
  • SHA256: 4c14c3b1f44e9e5d8c1fd8e5d4ae3859a50ac3db4445cb654a00f714f5860ab6

Message

build(deps): bump com.diffplug.spotless from 8.5.0 to 8.5.1 (#63)

Bumps com.diffplug.spotless from 8.5.0 to 8.5.1.

---
updated-dependencies:
- dependency-name: com.diffplug.spotless
  dependency-version: 8.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v481-20de56d

Published on May 17, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (481-20de56d-release)
  • VersionCode: 481
  • Commit: 20de56d
  • Build time: 4m 03s
  • SHA256: 2c4ca4e3f54dfe0d9d18b5fa535c7e61882ecdc8c841cc517c21768e8bf50ed2

Message

build(deps): bump com.diffplug.spotless from 8.4.0 to 8.5.0 (#61)

Bumps com.diffplug.spotless from 8.4.0 to 8.5.0.

---
updated-dependencies:
- dependency-name: com.diffplug.spotless
  dependency-version: 8.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v480-e333e8d

Published on May 15, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (480-e333e8d-release)
  • VersionCode: 480
  • Commit: e333e8d
  • Build time: 3m 09s
  • SHA256: 87e2f29832f9f4f86f7e1d04ccd23ce1ecbd3e1869196030e3f03ba6f0604e61

Message

Fix Japanese text (#60)

* Fix Japanese text

* Rename key for GitHub contributor link

---------

Co-authored-by: XiaoTong6666 <3278671549@qq.com>

v479-748ccf7

Published on May 14, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (479-748ccf7-release)
  • VersionCode: 479
  • Commit: 748ccf7
  • Build time: 3m 06s
  • SHA256: b60a7f61e44d15a1fb0ea2eb33f0662abbe914586b0d09fa7c4ee9ba80f7e140

Message

Add Japanese translate (#58)

* Add Japanese translate

* Fix Japanese text

* 貢献者を増やす

---------

Co-authored-by: XiaoTong6666 <3278671549@qq.com>

v478-3061557

Published on May 14, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (478-3061557-release)
  • VersionCode: 478
  • Commit: 3061557
  • Build time: 3m 51s
  • SHA256: 2dbc205bcb2843278257d1ea9e7137b41644ca3b49ebe996ee3d5e6c6acf7df5

Message

build(deps): bump com.google.android.material:material (#59)

Bumps [com.google.android.material:material](https://github.com/material-components/material-components-android) from 1.13.0 to 1.14.0.
- [Release notes](https://github.com/material-components/material-components-android/releases)
- [Commits](https://github.com/material-components/material-components-android/compare/1.13.0...1.14.0)

---
updated-dependencies:
- dependency-name: com.google.android.material:material
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

v477-0737d55

Published on May 13, 2026
Download

同步自 主仓库 构建产物喵

  • Version: v13.5.4.3 (477-0737d55-release)
  • VersionCode: 477
  • Commit: 0737d55
  • Build time: 1m 22s
  • SHA256: 7ab30fbd596aa97f47574affb1779ff3318de5a6f83db936cdca0ee8416b50e8

Message

ci(workflows): 先删除模块仓库同版本号的 release 和 tag 再重建

Module Details

Module ID
zygisk-sui
490
Stars
20
Releases

Latest Version

v496-743e9c3
Released 6/17/2026
Download Now