2

adbシェルから「rm /data/system/[file]」を簡単に使用できますが、アプリからは機能しません。

コマンド 'du'、'ls'、'echo' はコードから正常に動作しますが、コマンド 'rm' は動作しません。SDカードでも機能していません。

私が試したコード:

1)

String[] cmd = { "/system/bin/sh", "-c", "rm -r /sdcard/1" }; 
    try {

        Process process = Runtime.getRuntime().exec(cmd);//execute command

        //read the output of command
        InputStreamReader reader = new InputStreamReader(process.getInputStream()); 
.....

2) (1) と同じコードで、"/system/bin/sh" の代わりに "su" を使用

3)

process=Runtime.getRuntime().exec("/system/bin/sh");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("rm -r /sdcard/1\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
process.waitFor();

4) (3) と同じコードで、「/system/bin/sh」の代わりに「su」を使用

4

2 に答える 2

0

開発者モードで起動設定に移動し、.anr ファイルでデバッグし、次に inertpreteor を dex ファイルでコンパイルして、rm コマンドの起動を開始します。

于 2014-08-13T06:52:22.033 に答える
0

アプリのフィールド構造内のファイルを削除できます

つまり: /data/data/com.mycompany.myapp

[ sudoが必要なため、他の場所でファイルを削除できるかどうかわかりません]

だから、次のように行きます:

String cmd="rm -f /data/data/com.mycompany.myapp/myfile.txt";
try
  {
  Runtime.getRuntime().exec(new String[]{"sh","-c",cmd});
  }
  catch(Exception e){}
  • -f削除を強制する [オプション]
  • 例外 {} はあなた次第です
于 2021-03-16T06:04:27.457 に答える