Shizuku的启动

描述

上一篇文章写了利用Termux来启动Shizuku,比较繁琐,有些人用起来不方便或者出错导致无法启动Shizuku,今天有一点点点的空闲时间.来处理这么问题,并且得到一个更有效的解决方案.但还是需要改包,不过这里我已经修改好了.

公众号聊天界面回复 "shizuku" 即可获取下载链接.

如果您不放心我修改的安装包,请按照下面的方法自行修改一下即可使用了

修改方法:

  1. 首先使用MT管理器提取出shizuku的apk安装包.点击定位跳转到安装包的提取位置.
  2. 点击提取的安装包,在弹出的悬浮窗中选择"查看"按钮
  3. 点击"AndroidManifest.xml"文件, 并选择反编译
  4. 找到包含 moe.shizuku.manager.starter.StarterActivity 字符串的那一行,大概在81行附近, 如果找不到的话,可以使用搜索(右上角三个点按钮)
  5. 在这一行的 /> 符号前面加入 android:exported="true" 后保存.加入后的样子如下
<activity android:label="@string/0_resource_name_obfuscated_RES_2131820740" 
          android:name="moe.shizuku.manager.starter.StarterActivity" 
          android:exported="true" />
6. 编辑完成,保存退出,这里会提示你文件已被修改,是否更新, 选择确定

7. 最后,会生成一个新的apk包, 给这个包进行签名后安装,就完工了.

**最重要的一步: ** 别忘记了给手机开启无线ADB的功能, 手机连上数据线,电脑命令行中输入: adb tcpip 5555 这个端口你可以随意指定,最好是比5555大.

准备好了以后,上代码

Autojs Code

//adb tcpip 5555  这条命令你设置的什么端口,下面的5555就用什么端口
var port = new java.lang.Integer(5555)
app.startActivity({
    packageName : "moe.shizuku.privileged.api",
    className : "moe.shizuku.manager.starter.StarterActivity",
    extras : {
        "moe.shizuku.manager.extra.HOST" : "localhost",
        "moe.shizuku.manager.extra.PORT" : new java.lang.Integer(5555),
        "moe.shizuku.manager.extra.IS_ROOT" : false
    },
    // root : true
})

Android Code

intent = new Intent();
intent.setClassName("moe.shizuku.privileged.api", "moe.shizuku.manager.starter.StarterActivity");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("moe.shizuku.manager.extra.HOST", "localhost");
intent.putExtra("moe.shizuku.manager.extra.PORT", new java.lang.Integer(5555));
intent.putExtra("moe.shizuku.manager.extra.IS_ROOT", false);
context.startActivity(intent);

Shell Code

am start -n moe.shizuku.privileged.api/moe.shizuku.manager.starter.StarterActivity \\
    --es moe.shizuku.manager.extra.HOST localhost \\
    --ei moe.shizuku.manager.extra.PORT 5555 \\
    --ez moe.shizuku.manager.extra.IS_ROOT false

shell的方式无法启动 , 我已经使用--ei 来指定PORT的值为 int类型了,但传入进去后,shizuku接收intent的方法依旧识别为未知参数,然后指定一个0端口(可能必须是Integer类型,它才能识别为正确的吧)...这就有点蛋疼了.我觉得他这里应该指定 5555位默认端口,而不是0.

管理器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分