2

我会在我的根 Android 2.1 设备上执行一个命令

字符串路径 = "/data/data/com.android.providers.settings/databases/settings.db"; Runtime.getRuntime().exec("/system/bin/chmod -f 777" + 路径);

但是这个命令对目标文件没有任何作用。任何想法?

4

3 回答 3

2

RootTools 库提供了检查 root 和发出 root 命令的简单方法:

RootTools.isRootAvailable()
List<String> output = RootTools.sendShell(command);

http://code.google.com/p/roottools/

于 2011-07-03T15:06:00.390 回答
1

您需要首先以 root 用户身份获取运行时。您可以从Google Code 上的 MarketEnabler 源中使用一个不错的 ShellInterface 类。尽管请记住,此源代码是在 GPL 下发布的。

本质上,您需要做的是确定您的su命令在哪里,并使用 STDIN 和 STDOUT 的输入流和输出流创建一种 shell。有了这些,您就可以将您的命令推送到您的“终端”。完成所有命令后,刷新缓冲区,然后等待运行时完成。完成后,您可以关闭运行时界面。

然后查看您尝试创建/修改/等的文件,看看是否一切正常。

于 2011-01-04T13:48:16.123 回答
0

Bao Le 我相信您正在尝试在 Android 应用程序中删除 shell 命令,这里(在您的 Android 应用程序中运行 Android 本机代码)是从应用程序运行命令的众多方法中的几种。

于 2011-01-04T13:56:14.440 回答