2012-03-29 59 views
0

我有Android设备的根,我尝试实现一些小应用程序。这个程序需要从/ proc/pid/net读取文件。我用Runtime.getRuntime().exec(new String[] { "su", "-c", "cat /proc/"+PID+ "/net/tcp6" });做了它,但我必须接受每个PID的超级许可。还有一些其他的可能性,我怎么能从我的应用程序读取Android系统文件?与FileReader有什么关系?如何在没有exec -commando的情况下获得su权限?如何从系统文件夹读取文件

回答

1

exec命令是如何获得su权限。你可能能够chmod 777你想要的文件,然后他们可能会被读取通过Java。也就是说,您可以将要读取的文件移动到SD卡或应用程序数据位置,然后从那里读取它们。 Here对root很有用。您不必每次都手动使用exec命令,但RootTools仍然使用exec

我相信,如果你这样做:

Process p = Runtime.getRuntime().exec("su"); 

您将获得root权限。
然后你可以这样做:

p.getRuntime().exec("command"); 

,然后你就不必把su中,只要这个过程仍然有效。

虽然在相当长的一段时间内我没有做过以上解释(与过程),所以我可能是错的。您可能仍然需要每次包含su。但无论如何,我建议使用RootTools

+0

伟大的我会尝试RootTools。第二件事情是行不通的,因为每次你使用'getRuntime().exe'时,它将是一个新的终端实例打开,所以它第二次没有su-permissions – Aprel 2012-03-29 08:50:50

+0

好吧。我认为可能是这种情况,但不确定,所以我认为我会建议。 – Jakar 2012-03-29 09:10:12

+0

@Aprel我忘记了正确的方法。如果你去[这个问题](http://stackoverflow.com/questions/7129144/mount-rw-system-in-android-application-to-edit-read-only-files/8160400),你可以看到正确的使用root访问的方式。 – Jakar 2012-04-14 05:02:22