2012-03-29 61 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