boxmoe_header_banner_img

加载中

Shizuku 全网最详细教程:从入门到二改,解锁 Android 系统级权限


Shizuku 全网最详细教程:从入门到二改,解锁 Android 系统级权限

Shizuku 是一款革命性的 Android 开源工具,它让普通应用能够直接调用系统级 API,无需 Root 权限即可实现许多原本需要 Root 才能完成的操作。本文将为你提供全网最详细的 Shizuku 教程,涵盖基础安装、进阶指令、二次开发以及丰富的操作场景。


一、Shizuku 是什么?

Shizuku 的核心原理是通过 ADB(Android Debug Bridge)或 Root 权限启动一个独立的 Java 进程,作为应用与系统服务之间的桥梁,让普通应用能够通过 Binder 通信直接调用系统 API 。

传统方案的痛点:

· 需要在 su shell 中运行命令,速度极慢
· 处理文本输出,非常不可靠
· 受限于可用命令,功能受限

Shizuku 的优势:

· 直接调用系统 API,效率提升 300% 以上
· 无需处理文本解析,可靠性大幅提高
· 支持更丰富的系统功能调用


二、Shizuku 安装与激活教程

  1. 下载安装

从官网或可信应用市场下载最新版 Shizuku(包名:moe.shizuku.privileged.api)。

  1. 激活方式对比

激活方式 适用场景 持久性 优点
无线调试 无电脑用户 重启后需重新配对 无需电脑,操作便捷
ADB 连接 有电脑可用 重启后需重新执行 稳定性好,适合开发
Root 授权 已 Root 设备 永久有效 一次激活,永久使用

  1. 无线调试激活步骤(最常用)

第一步:开启开发者选项

打开手机「设置」→「关于手机」→ 连续点击「版本号」7 次,直到提示「已处于开发者模式」。

第二步:开启无线调试

  1. 进入「设置」→「开发者选项」
  2. 开启「USB 调试」
  3. 开启「无线调试」
  4. 点击「使用配对码配对设备」

第三步:完成配对

  1. 记下屏幕上显示的六位配对码
  2. 下拉通知栏,在 Shizuku 的通知中输入配对码
  3. 返回 Shizuku 应用,点击「启动」

第四步:验证激活

看到 Shizuku 界面显示「正在运行」即为成功 。

  1. 各品牌手机特殊设置

小米/POCO 用户:

· 在「开发者选项」中开启「USB 调试(安全设置)」
· 在「通知管理」-「通知显示设置」中将通知样式切换为「原生样式」

OPPO/一加用户:

· 在「开发者选项」中关闭「权限监控」

魅族用户:

· 在「开发者选项」中关闭「Flyme 支付保护」

华为/EMUI 用户:

· 在「开发者选项」中开启「”仅充电”模式下允许 ADB 调试选项」

  1. 常见问题排查

问题 解决方案
一直显示「正在搜索配对服务」 允许 Shizuku 在后台运行,关闭省电策略
输入配对码后立刻失败 检查通知样式设置(小米用户需切换原生样式)
Shizuku 随机停止运行 保持 USB 调试开启,将 USB 使用模式设为「仅充电」
无法开机启动 允许 Shizuku 在后台运行,加入自启动白名单


三、Shizuku 进阶指令与操作

  1. ADB 命令行激活(开发者模式)
# 通过 ADB 启动 Shizuku 服务
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/files/start.sh

# 检查 Shizuku 服务状态
adb shell dumpsys package moe.shizuku.privileged.api
  1. Shizuku 核心 API 调用示例
// 检查 Shizuku 服务是否可用
if (Shizuku.pingBinder()) {
    // Shizuku 正在运行
    int uid = Shizuku.getUid(); // 获取运行模式(ADB 或 root)
    
    // 检查特定权限
    if (Shizuku.checkPermission("android.permission.INSTALL_PACKAGES")) {
        // 执行需要特殊权限的操作
    }
}
  1. 通过 Shizuku 执行 shell 命令
// 创建 Shizuku shell 进程
Process process = Shizuku.newProcess(new String[]{"ls", "/data"}, null, null);

// 读取命令输出
BufferedReader reader = new BufferedReader(
    new InputStreamReader(process.getInputStream())
);
String line;
while ((line = reader.readLine()) != null) {
    // 处理输出
}
  1. 高级调试指令

Tasker 中的 Shizuku 状态检查:
Tasker 提供了专门的 Shizuku 状态检查功能,返回以下变量:

· %can_shizuku_be_used:是否可以使用 Shizuku
· %has_shizuku_permission:是否有 Shizuku 权限
· %is_shizuku_running:Shizuku 是否在运行
· %is_shizuku_installed:Shizuku 是否已安装

Rish Shell 终端:
Shizuku 内置了 Rish(Remote Shell),可以通过 Shizuku 权限执行高级 shell 命令:

# 进入 Rish 交互式 shell
rish

# 在 Rish 中执行命令
rish "pm list packages"

四、Shizuku 的二次开发与修改

  1. 开发环境搭建

克隆项目源码

git clone https://gitcode.com/gh_mirrors/sh/Shizuku.git
cd Shizuku

项目结构解析

· manager/:主应用模块,包含用户界面和管理功能
· server/:服务端模块,处理系统 API 调用
· api/:API 接口模块,提供开发者使用的接口
· common/:通用工具和工具类
· shell/:Shell 相关功能模块
· starter/:启动器模块

构建项目

# 构建调试版本
./gradlew :manager:assembleDebug

# 构建发布版本
./gradlew :manager:assembleRelease
  1. 集成 Shizuku API 到自己的应用

添加依赖

在 build.gradle 中添加:

def shizuku_version = '13.1.5' // 使用最新版本
implementation "dev.rikka.shizuku:api:$shizuku_version"
implementation "dev.rikka.shizuku:provider:$shizuku_version"

请求用户授权

// 检查权限并请求
if (Shizuku.isPreV11() || Shizuku.getVersion() < 11) {
    // 旧版本兼容处理
} else {
    // 请求权限
    Shizuku.requestPermission(REQUEST_CODE);
}

权限回调处理

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    if (requestCode == REQUEST_CODE) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            // 权限已授予,可以执行高权限操作
        }
    }
}
  1. 自定义修改示例

修改 Shizuku 服务启动逻辑

在 server/src/main/java/moe/shizuku/server/ShizukuService.java 中:

public class ShizukuService {
    
    // 自定义启动检查
    private static boolean customStartupCheck() {
        // 添加你的自定义逻辑
        return checkCustomConditions();
    }
    
    // 修改服务启动流程
    public static void start(Context context) {
        if (customStartupCheck()) {
            // 执行自定义启动流程
            startWithCustomConfig(context);
        } else {
            // 执行默认启动流程
            startDefault(context);
        }
    }
}

添加自定义 API

在 api/src/main/java/dev/rikka/shizuku/Shizuku.java 中添加:

public class Shizuku {
    
    // 自定义 API:获取电池信息
    public static BatteryInfo getBatteryInfo() throws RemoteException {
        IBinder binder = getBinder();
        if (binder == null) {
            throw new IllegalStateException("Shizuku not available");
        }
        
        Parcel data = Parcel.obtain();
        Parcel reply = Parcel.obtain();
        try {
            // 调用系统服务获取电池信息
            data.writeInterfaceToken(IBatteryStats.DESCRIPTOR);
            binder.transact(TRANSACTION_getBatteryStats, data, reply, 0);
            return BatteryInfo.CREATOR.createFromParcel(reply);
        } finally {
            reply.recycle();
            data.recycle();
        }
    }
}
  1. 编译与测试
# 编译所有模块
./gradlew assemble

# 运行测试
./gradlew test

# 安装到设备
adb install -r manager/build/outputs/apk/debug/manager-debug.apk

五、Shizuku 支持的精彩操作

  1. 应用管理类

操作 工具推荐 功能描述
冻结应用 小黑屋、冰箱 禁用系统应用或用户应用,节省资源
停用毒瘤应用 雹、Thanox 停用无法卸载的系统预装应用
APK 秒装 安装狮、SAI 绕过安装验证,实现快速安装
清除应用残留 SD 女佣 彻底清理应用卸载后的残留文件

  1. 系统定制类

修改屏幕分辨率(配合 SamHelper):

  1. 打开 SamHelper 的系统设置界面
  2. 关闭锁定比例
  3. 修改屏幕分辨率
  4. 点按「始终允许」使用 Shizuku

自定义充电提示:
通过 Shizuku + Tasker 实现:

· 充电时显示自定义动画
· 解锁屏幕时显示提示语
· 状态栏显示秒数

跳过开屏广告(配合轻启动、一指禅):
自动跳过应用的启动广告,提升使用体验

  1. 自动化操作(结合 Tasker)

Tasker 从 v6.6.18 开始深度集成 Shizuku,支持以下操作:

系统动作增强(使用 Shizuku 后更可靠):

· 飞行模式开关
· Wi-Fi/蓝牙控制
· 结束应用进程
· 移动数据切换
· 通话结束
· 声音模式设置

Java 代码执行:

// 在 Tasker 的 Java Code 动作中直接调用系统 API
IBinder windowManager = ServiceManager.getService("window");
IWindowManager wm = IWindowManager.Stub.asInterface(windowManager);
int rotation = wm.getRotation();
tasker.showToast("当前屏幕旋转:" + rotation);

日志捕获:
使用 Shizuku 权限捕获系统日志,即使在受限设备上也能正常工作 。

  1. 开发调试类

深度 ADB 功能:

· 简化应用安装流程
· 抓取系统日志
· 性能测试
· 查看隐藏 API

集成开发环境:
在开发工具如 AutoGLM 中,Shizuku 用于执行屏幕点击、滑动等自动化操作 。

  1. 实用工具组合

工具名称 Shizuku 作用 实现功能
黑阈 激活权限 限制应用后台运行
冰箱 授权管理 冻结不常用应用
小黑屋 权限支持 创建隔离空间
一指禅 跳过广告 自动跳过开屏广告
雹 停用应用 停用系统应用
SD 女佣 清理权限 深度清理系统
安装狮 安装授权 快速安装 APK
Scene 系统监控 查看系统状态
创建备份 备份授权 备份应用数据
存储重定向 文件访问 管理应用文件访问

  1. 游戏优化

· 游戏性能增强:通过 Shizuku 调整 CPU 调度
· 熊猫映射:Shizuku 授权后使用熊猫映射进行按键映射
· 图形设置调整:修改游戏渲染参数


六、注意事项与最佳实践

  1. 权限限制说明

· ADB 权限在不同 Android 版本上有所限制
· 在调用 API 前,始终使用 ShizukuService#checkPermission 检查权限

  1. 隐藏 API 访问(Android 9+)

自 Android 9 起,隐藏 API 的使用受到限制。建议结合以下方案:

// 使用 AndroidHiddenApiBypass 库
HiddenApiBypass.addHiddenApiExemptions("L");
  1. 多进程支持

对于需要在非 Activity 进程中使用的场景:

// 启动透明 Activity 触发 binder 发送
Intent intent = new Intent(context, TransparentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
  1. 性能优化建议

优化策略 效果提升 实现难度
批量操作处理 减少 IPC 次数 中等
缓存机制 避免重复调用 简单
异步处理 提升响应速度 中等

  1. 安全建议

· 最小权限原则:只为必要功能请求 Shizuku 权限
· 用户教育:清楚告知用户为什么需要使用 Shizuku
· 异常处理:建立健壮的错误处理机制,提供降级方案


七、总结

Shizuku 作为 Android 生态中的重要工具,为普通应用打开了系统级权限的大门。通过本文的详细教程,你应该已经掌握了:

  1. 基础安装与激活:三种激活方式及常见问题解决
  2. 进阶指令:API 调用、Shell 命令执行、Tasker 集成
  3. 二次开发:源码编译、API 集成、自定义修改
  4. 应用场景:从应用管理到系统定制的丰富操作

无论是普通用户希望深度定制手机,还是开发者需要系统级权限,Shizuku 都是一个值得掌握的强大工具。记住:权限越大,责任越大——在使用 Shizuku 时,请始终注意安全和隐私保护。

现在,开始你的 Shizuku 探索之旅吧!


参考资料:

· Shizuku 官方文档及 GitHub 仓库
· Tasker v6.6.18 更新日志
· Awesome Shizuku 项目分类

上一次更新已经跑远了✨ 计算中...
(‾◡◝) 本内容里的一些消息,可能已经跟不上时间啦~
感谢您的支持
微信赞赏

微信扫一扫

支付宝赞赏

支付宝扫一扫



评论(0)

查看评论列表

暂无评论


发表评论

北京时间 (Asia/Shanghai)

定位中...
🌤️
--°C
加载中...
体感: --°C
湿度: --%

博客统计

  • 165 点击次数
重要的日子2026年3月20日
重要的日子即将来临。
2026 年 3 月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

已阻挡的垃圾评论

后退
前进
刷新
复制
粘贴
全选
删除
返回首页

💿 音乐控制窗口

🎼 歌词

🪗 歌曲信息

封面

🎚️ 播放控制

🎶 播放进度

00:00 00:00

🔊 音量控制

100%

📋 歌单

0%
目录
顶部
底部
📖 文章导读