如何使用黑阈的执行指令

黑阈包含两部分,黑阈界面和一直运行的黑阈服务。黑阈服务以 shell 身份运行,由事件日志驱动,同时接受黑阈界面管理。2.6.1 之前,只有黑阈界面有权限访问黑阈服务。

2.6.6 起,黑阈提供一个实验性的功能,执行指令。

用户可以通过桌面快捷方式选择执行指令,或者设置中选择执行指令进入。开发者可以通过 API 直接进入并指定相应指令:

final String action = "me.piebridge.brevent.intent.action.COMMAND";
final String extra = "me.piebridge.brevent.intent.extra.COMMAND";
final String command = ""; // 指令内容

Intent intent = new Intent(action);
intent.putExtra(extra, command);
// 不建议指定包名,黑阈编译版包名与发布版不一样

List<ResolveInfo> ris = getPackageManager().queryIntentActivities(intent, 0);
if (ris != null && !ris.isEmpty()) {
    startActivity(intent);
}

黑阈服务像 supersu 一样运行这个指令:

sh
${command}
exit

Root 环境下,sh 将换成 su shell

执行指令有以下限制:

  • 不允许包含 & 2.6.8 起支持
    & 将会把指令放入后台,可能没有任何输出。

  • 不允许单独的指令 shsu,这明显是一个交互型指令

  • 如果黑阈服务以 Root 运行,指令直接替换成 id,不会实际执行2.8.3 起使用 su shell 后再运行

  • 如果黑阈界面移到后台,黑阈服务会强行杀掉这个指令

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容