2014-07-26 59 views
0

我的手機根植的Android 4.2。流行的文件管理器可以很好地處理像「/ config」或「/ data」這樣的目錄。但在我的程序中,我無法觀察這個目錄。根訪問不適用於Android!新文件(「/ config」)。listFiles()返回null

我使用的庫RootTools

if (RootTools.isRootAvailable()) { 
    if (RootTools.isAccessGiven()) { 
     new File("/config").listFiles();//null 
    } 
} 

我看到確認 「獲得root權限」,推動 「是」 窗口。我在清單

<uses-permission android:name="android.permission.ACCESS_SUPERUSER" /> 
+0

不應該是'if(RootTools.isAccessGiven())'? – Henry

+0

@亨利,這是一個錯字。在真正的代碼中,我在log中輸出了這個方法的結果 - 並且它是空的 –

回答

0

Root權限添加進程啓動後不能被授予一個過程,因爲這會需要改變的過程中PID。這意味着爲了使用獲得的root權限,你必須產生一個新的進程,比如直接產生lscp,mv,rm或者你想要做的任何事情。

注意雖然解析ls的輸出is a bad idea™

因爲無法在Android上從shell中輕鬆運行Java代碼,所以無法使用root權限輕鬆運行Java代碼。如果你需要運行比你使用簡單的shell命令更復雜的代碼,你可能需要執行一個本地編譯的可執行文件(C/C++/Rust/etc),它可以利用root權限並且具有良好的性能並允許更復雜的代碼。

RootTools通過提供Shell類輕鬆地運行這些命令來應對這種複雜性。

相關問題