$szk - Shizuku工具

  • 更新时间:2025-12-13 11:58:46

Shizuku工具

这是一种不需要root就能享受到root同等级权限的工具

获取权限()

获取Shizuku权限

如果Shizuku权限已经获取,那么就判断是否链接上服务,如果服务没有链接则尝试连接服务

  • 版本 : 1.7.0

$始祖库.获取权限();

有权限()

是否可用

1.判断Shizuku是否授权

2.判断Shizuku服务是否可用

3.如果Shizuku可用,则判断是否获取到了服务实例

4.如果没有获取服务实例,则会尝试重连服务(重连服务成功就会创建服务实例)

  • 返回 : {布尔值} 判断Shizuku是否获取权限并且可用

  • 版本 : 1.7.0

如果($始祖库.有权限()){
    日志("Shizuku权限已获取");
}

启用指针(是否启用)

启用指针

打开或者关闭开发者调试的指针位置选项

  • 参数 : 是否启用 {布尔值} 是否启用

  • 版本 : 1.7.0

//打开指针位置显示
$始祖库.启用指针();

等待权限()

等待Shizuku权限

此函数是个阻塞同步方法,只有当本函数执行完毕后,下面的方法才会执行

如果shizuku没有安装或者不可用会直接返回false,否则就会循环等待shizuku权限,直到shizuku权限获取成功

但是这个函数不能作为获取权限来使用,它不会获取shizuku权限,所以你需要调用getPermit()成功获取权限后再调用此方法, 设计这个方法是因为:shizuku权限获取后,并不是立马就能执行命令了,而是需要等待一段时间,而这个函数就是用来衔接这段等待时间的。

  • 返回 : {布尔值} 等待shizuku权限成功返回true,否则返回false

  • 版本 : 1.7.0

等待权限(等待回调)

等待Shizuku权限

此函数是个异步方法,放在后台等待shizuku权限,如果获取成功就执行回调

  • 参数 : 等待回调 ((是否成功)=>{}) 执行回调,参数是授权是否成功

  • 版本 : 1.7.0

点击(x, y)

点击

  • 参数 : x {整数} 点击位置x

  • 参数 : y {整数} 点击位置y

  • 版本 : 1.7.0

//点击手势(长按)(时长一秒)
$始祖库.点击(500,800);

点击(x, y, 持续时长)

点击

  • 参数 : x {整数} 点击位置x

  • 参数 : y {整数} 点击位置y

  • 参数 : 持续时长 {整数} 点击持续时长

  • 版本 : 1.7.0

//点击手势(长按)(时长一秒)
$始祖库.点击(500,800,1000);

点击(x, y, 持续时长, 延迟)

点击

  • 参数 : x {整数} 点击位置x

  • 参数 : y {整数} 点击位置y

  • 参数 : 持续时长 {整数} 点击持续时长

  • 参数 : 延迟 {整数} 点击前延迟

  • 版本 : 1.7.0

//点击手势(长按)(时长一秒)
$始祖库.点击(500,800,1000,100);

点击(位置)

点击

  • 参数 : 位置 {int[]} 点击位置

  • 版本 : 1.7.0

//点击
$始祖库.点击([500,800]);

点击(位置, 持续时长)

点击

  • 参数 : 位置 {int[]} 点击位置

  • 参数 : 持续时长 {整数} 点击持续时长

  • 版本 : 1.7.0

//点击
$始祖库.点击([500,800],50);

点击(位置, 持续时长, 延迟)

点击

  • 参数 : 位置 {int[]} 点击位置

  • 参数 : 持续时长 {整数} 点击持续时长

  • 参数 : 延迟 {整数} 延迟

  • 版本 : 1.7.0

//点击
$始祖库.点击([500,800],50,2000);

点击(位置)

点击

  • 参数 : 位置 {Point} 点击位置

  • 版本 : 1.7.0

//点击手势(长按)
定义 位置 = 新建 org.opencv.core.Point(500,800);
$始祖库.点击(位置);

点击(位置, 持续时长)

点击

  • 参数 : 位置 {Point} 点击位置

  • 参数 : 持续时长 {整数} 点击持续时长

  • 版本 : 1.7.0

//点击手势(长按)(时长一秒)
定义 位置 = 新建 org.opencv.core.Point(500,800);
$始祖库.点击(point,位置);

点击(位置, 持续时长, 延迟)

点击

  • 参数 : 位置 {Point} 点击位置

  • 参数 : 持续时长 {整数} 点击持续时长

  • 参数 : 延迟 {整数} 点击前延迟

  • 版本 : 1.7.0

//点击手势(长按)(时长一秒)
定义 位置 = 新建 org.opencv.core.Point(500,800);
$始祖库.点击(位置,1000,100);

长按(x, y)

长按

  • 参数 : x {整数} 长按位置x

  • 参数 : y {整数} 长按位置y

  • 版本 : 1.7.0

//点击手势(长按)(时长一秒)
$始祖库.长按(500,800);

长按(x, y, 持续时长)

长按

  • 参数 : x {整数} 长按位置x

  • 参数 : y {整数} 长按位置y

  • 参数 : 持续时长 {整数} 长按持续时间

  • 版本 : 1.7.0

//点击手势(长按)(时长一秒)
$始祖库.长按(500,800,1000);

长按(x, y, 持续时长, 延迟)

长按

  • 参数 : x {整数} 长按位置x

  • 参数 : y {整数} 长按位置y

  • 参数 : 持续时长 {整数} 长按持续时间

  • 参数 : 延迟 {整数} 长按前延迟

  • 版本 : 1.7.0

//点击手势(长按)(延迟一秒)
$始祖库.长按(500,800,1500,100);

滑动(x1, y1, x2, y2)

滑动

  • 参数 : x1 {整数} 起点x

  • 参数 : y1 {整数} 起点y

  • 参数 : x2 {整数} 终点x

  • 参数 : y2 {整数} 终点y

  • 版本 : 1.7.0

//滑动手势
$始祖库.滑动(500,0,500,800);

滑动(x1, y1, x2, y2, 持续时长)

滑动

  • 参数 : x1 {整数} 起点x

  • 参数 : y1 {整数} 起点y

  • 参数 : x2 {整数} 终点x

  • 参数 : y2 {整数} 终点y

  • 参数 : 持续时长 {整数} 时长

  • 版本 : 1.7.0

//滑动手势
$始祖库.滑动(500,0,500,800,1000);

滑动(x1, y1, x2, y2, 持续时长, 延迟)

滑动

  • 参数 : x1 {整数} 起点x

  • 参数 : y1 {整数} 起点y

  • 参数 : x2 {整数} 终点x

  • 参数 : y2 {整数} 终点y

  • 参数 : 持续时长 {整数} 时长

  • 参数 : 延迟 {整数} 延迟

  • 版本 : 1.7.0

//滑动手势
$始祖库.滑动(500,0,500,800,1000,2000);

主页()

返回手机主页

  • 版本 : 1.7.0

$始祖库.主页();

返回()

执行返回按钮

  • 版本 : 1.7.0

$始祖库.返回();

菜单()

执行菜单按钮

  • 版本 : 1.7.0

$始祖库.菜单();

最近任务()

打开最近任务列表

效果和'菜单()'一样

  • 版本 : 1.7.0

$始祖库.最近任务();

电源键()

执行关机键

  • 版本 : 1.7.0

$始祖库.电源键();

锁屏()

锁屏

  • 版本 : 1.7.0

$始祖库.锁屏();

解锁()

唤醒屏幕

  • 版本 : 1.7.0

$始祖库.解锁();

输入(文本)

输入文本

  • 参数 : 文本 {字符串} 文本内容

  • 版本 : 1.7.0

$始祖库.输入("我是文本");

杀死应用(包名)

杀死应用

  • 参数 : 包名 {字符串} 包名

  • 版本 : 1.7.0

$始祖库.杀死应用("包名");

设置分辨率(宽度, 高度)

设置手机分辨率

  • 参数 : 宽度 {整数} 宽度

  • 参数 : 高度 {整数} 高度

$始祖库.设置分辨率(1080,2200);

设置密度因子(密度因子)

设置手机DPI

  • 参数 : 密度因子 {整数} 密度因子

  • 版本 : 1.7.0

$始祖库.设置密度因子(320);

重置分辨率()

重置手机分辨率与DPI

  • 版本 : 1.7.0

$始祖库.重置分辨率();

执行(命令)

执行一条命令

  • 参数 : 命令 {字符串} 需要执行的命令

  • 返回 : {字符串} 执行结果

  • 版本 : 1.7.0

//等待获取shizuku权限,如果没有权限那么就会一直等待下去
$始祖库.获取权限();
$始祖库.执行("input keyevent KEYCODE_POWER");//点击电源按钮

执行(命令, 信息回调, 异常回调)

执行命令

  • 参数 : 命令 {字符串} 命令

  • 参数 : 信息回调 {(信息)=>{}} 输出信息回调

  • 参数 : 异常回调 {(异常)=>{}} 错误信息回调

  • 版本 : 1.7.0

//等待获取shizuku权限,如果没有权限那么就会一直等待下去
$始祖库.获取权限();
$始祖库.执行("ls",
    (信息)=> {
        //信息输出回调
        日志(信息);
    },
    (异常)=> {
        //异常输出回调
        $日志.异常(异常);
    }
);

执行(命令, 信息回调, 异常回调, 结束回调)

执行命令

  • 参数 : 命令 {字符串} 命令

  • 参数 : 信息回调 {(信息)=>{}} 输出信息回调

  • 参数 : 异常回调 {(异常)=>{}} 错误信息回调

  • 参数 : 结束回调 {(结果)=>{}} 结束执行回调

  • 版本 : 1.7.0

//等待获取shizuku权限,如果没有权限那么就会一直等待下去
$始祖库.获取权限();
$始祖库.执行("ls",
    (信息)=> {
        //信息输出回调
        日志(信息);
    },
    (异常)=> {
        //异常输出回调
        $日志.异常(异常);
    },
    (结果)=> {
        //结束回调
        日志(结果)
    }
);

执行(命令, 开始回调, 信息回调, 异常回调, 结束回调)

执行命令

  • 参数 : 命令 {字符串} 命令

  • 参数 : 开始回调 {()=>{}} 开始执行时的回调

  • 参数 : 信息回调 {(信息)=>{}} 输出信息回调

  • 参数 : 异常回调 {(异常)=>{}} 错误信息回调

  • 参数 : 结束回调 {(结果)=>{}} 结束执行回调

  • 版本 : 1.7.0

//等待获取shizuku权限,如果没有权限那么就会一直等待下去
$始祖库.获取权限();
$始祖库.执行("ls",
    ()=> {
        //开始执行回调
        日志("开始执行");
    },
    (信息)=> {
        //信息输出回调
        日志(信息);
    },
    (异常)=> {
        //异常输出回调
        $日志.异常(异常);
    },
    (结果)=> {
        //结束回调
        日志(结果)
    }
);