Skip to content

The API and the developer guide for Shizuku and Sui.

License

Notifications You must be signed in to change notification settings

Anatdx/Murasaki-api

Repository files navigation

Murasaki API

Murasaki API 是 KernelSU 内核级 API SDK,向下兼容 ShizukuSui

基于 Shizuku-APISui 开发,感谢 Rikka 的杰出工作!

特性

  • 三级权限体系:Shell / Root / Kernel 三级权限
  • 向下兼容:完全兼容 Shizuku API,现有应用无需修改
  • 内核级功能:HymoFS、SEPolicy 注入等内核级 API
  • 直连模式:直接从 ServiceManager 获取服务,无需 Provider

权限等级

等级 常量 UID 说明 兼容性
0 LEVEL_SHELL 2000 Shell/ADB 权限 Shizuku 兼容
1 LEVEL_ROOT 0 Root 权限 Sui 兼容
2 LEVEL_KERNEL 0 内核级权限 Murasaki 专有

快速开始

添加依赖

def murasaki_version = "1.0.0"

// Murasaki API
implementation "com.anatdx.murasaki:api:$murasaki_version"

// 如需支持 Shizuku 回退
implementation "com.anatdx.murasaki:provider:$murasaki_version"

初始化

import com.anatdx.murasaki.Murasaki;

// 初始化 (自动选择最高可用等级)
int level = Murasaki.init(getPackageName());

switch (level) {
    case Murasaki.LEVEL_KERNEL:
        // 内核级功能可用
        break;
    case Murasaki.LEVEL_ROOT:
        // Root 功能可用 (回退到 Sui)
        break;
    case Murasaki.LEVEL_SHELL:
        // Shell 功能可用 (回退到 Shizuku)
        break;
    default:
        // 无可用服务
        break;
}

Shizuku 兼容模式

现有 Shizuku/Sui 应用无需修改即可使用:

import rikka.shizuku.Shizuku;
import rikka.sui.Sui;

// 完全兼容 Shizuku API
Shizuku.requestPermission(REQUEST_CODE);
Shizuku.addBinderReceivedListener(() -> {
    // Binder ready
});

// 完全兼容 Sui API
if (Sui.init(packageName)) {
    // Sui available
}

内核级功能

Murasaki.getPrivilegeLevel() >= LEVEL_KERNEL 时,以下功能可用:

HymoFS

import io.murasaki.IHymoFsService;

IHymoFsService hymoFs = Murasaki.getHymoFsService();

// 隐藏路径
hymoFs.addHideRule("/system/app/Bloatware");

// 重定向路径
hymoFs.addRedirectRule("/system/build.prop", "/data/fake_build.prop", 0);

// 隐身模式
hymoFs.setStealthMode(true);

内核服务

import io.murasaki.IKernelService;

IKernelService kernel = Murasaki.getKernelService();

// 检查 UID 是否被授予 root
boolean hasRoot = kernel.isUidGrantedRoot(uid);

// 注入 SEPolicy
kernel.injectSepolicy("allow untrusted_app system_file file read");

服务发现

Murasaki 按以下顺序尝试连接服务:

  1. 直连模式 - 直接从 ServiceManager 获取 io.murasaki.IMurasakiService
  2. 桥接模式 - 通过 activity 服务桥接 (Sui 兼容)
  3. Provider 模式 - 通过 ContentProvider (Shizuku 兼容)

要求

  • Android 6.0+ (API 23+)
  • KernelSU / APatch (内核级功能)
  • 或 Magisk + Sui (Root 功能)
  • 或 Shizuku (Shell 功能)

Shizuku API 兼容说明

Murasaki 完全兼容 Shizuku API v13.x,包括:

  • rikka.shizuku.Shizuku 类的所有方法
  • rikka.sui.Sui 类的所有方法
  • ShizukuProvider 内容提供者
  • ShizukuBinderWrapper 远程调用
  • UserService 用户服务

详细 Shizuku API 文档请参阅 Shizuku-API

致谢

License

MIT License


Changelog

1.0.0 (Murasaki)

  • 添加 io.murasaki.Murasaki 类,支持三级权限体系
  • 添加直连 ServiceManager 模式
  • 添加内核级服务接口 (IKernelService, IHymoFsService)
  • 完全兼容 Shizuku API v13.1.5

Shizuku API 历史版本

基于 Shizuku-API v13.1.5,完整历史请参阅 Shizuku-API Releases

About

The API and the developer guide for Shizuku and Sui.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors