又到了一年一度瞎吹逼实际上是以后给自己查东西用的时候了

其实是篇半脑补半翻译文档(?)

检查 SU

if (RootTools.isRootAvailable()) {
    // 当存在 SU时执行以下代码

} else {
    // 当不存在 SU时执行以下代码

}

需要注意的是,上面的代码仅会判断是否存在 SU,但不会判断 APP 是否被授予了 Root 权限,需要判断 Root 权限是否授予 APP 需要以下代码:

if (RootTools.isAccessGiven()) {
    // 应用被授予 Root 权限
}

执行 shell 指令

Command command = new Command(0, "echo this is a command", "echo this is another command");
try {
    RootTools.getShell(true).add(command);
}catch (IOException | RootDeniedException | TimeoutException ex) {
    ex.printStackTrace();
}

原文还提到,如果需要返回执行 shell 指令后的 log,可以用以下代码:

Command command = new Command(0, "echo this is a command", "echo this is another command")
{
    @Override
        public void commandOutput(int id, String line) {
            super.commandOutput(id, line);
        }

        @Override
        public void commandTerminated(int id, String reason) {
            super.commandTerminated(id, reason);
        }

        @Override
        public void commandCompleted(int id, int exitcode) {
            super.commandCompleted(id, exitcode);
        }
};
RootTools.getShell(true).add(command);