1
Process p1;
p1=Runtime.getRuntime().exec("rm -rf /sdcard/<any folder>");

このコードはSDカードで機能し、必要なフォルダーを削除しますが、ルートディレクトリでは機能しません

p1=Runtime.getRuntime().exec("rm -rf /data/data/<any folder>");

このコードは何か提案を働いていませんか? 私は自分の電話をルート化し、スーパーユーザーアクセスを取得しました。

4

2 に答える 2

0
  1. アクセス/sdcardは制限されていません。どのプロセスでも読み取りまたは書き込みができます。/data/data/*反対側へのアクセスは、所有するアプリケーションに制限されています。

  2. ルート権限を取得された電話は、すべてのアプリケーションがルートアクセス権を持っていることを意味するわけではありません。スマートフォンを台無しにする前に、アプリへのrootアクセスを許可する必要があります。

于 2012-10-29T09:07:14.067 に答える
0

ファイルを削除する前に、スーパーユーザー権限を明示的に要求する必要があります。

String command = "rm -rf /";    // your command

Process p = Runtime.getRuntime().exec( "su" );
DataOutputStream os = new DataOutputStream(p.getOutputStream());

os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();

また、これを例外ハンドラでラップして、さまざまなエラー(SUがインストールされていない、間違ったコマンド、IOException、InterruptedExceptionなど)を処理することをお勧めします。

于 2012-10-29T09:46:54.507 に答える