2016-05-04 12 views
0

Ich erhalte diesen Fehler, warum ich/data/data/E/[Fehler]: sh:/data/data /: Zugriff verweigert

E/[Error]: sh: /data/data/: Permission denied 

zu gehen versuchen Aber ich verstehe nicht, warum. Wenn ich den Knopf drücke, fragt Superuser nach root-Rechten, aber es sagt mir immer noch, dass die Berechtigung im Log verweigert wird ... das sollte nicht passieren, wenn ich Root-Rechte gebe, oder?

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Button btnCon = (Button)findViewById(R.id.button1); 
    btnCon.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      RunWithRoot("su shell /data/data/"); 
     } 
    }); 
} 

private void RunWithRoot(String textView) { 
    try { 
     String line; 
     Process process = Runtime.getRuntime().exec(textView); 
     OutputStream stdin = process.getOutputStream(); 
     InputStream stderr = process.getErrorStream(); 
     InputStream stdout = process.getInputStream(); 

     stdin.write(("ls\n").getBytes()); 
     stdin.write("exit\n".getBytes()); 
     stdin.flush(); 

     stdin.close(); 
     BufferedReader br = 
       new BufferedReader(new InputStreamReader(stdout)); 
     while ((line = br.readLine()) != null) { 
      Log.d("[Output]", line); 
     } 
     br.close(); 
     br = 
       new BufferedReader(new InputStreamReader(stderr)); 
     while ((line = br.readLine()) != null) { 
      Log.e("[Error]", line); 
     } 
     br.close(); 

     process.waitFor(); 
     process.destroy(); 

    } catch (Exception ex) { 
    } 
} 

Ich hoffe jemand kann mir helfen, dies besser zu verstehen, weil zu meinem Verständnis; root ist die oberste Berechtigung.

Antwort

0

Wenn Sie ausführen, führen Sie als Shell-Benutzer, der keinen Zugriff dort hat. Versuchen Sie es mit etwas wie su -c "sh&&cd /data/data"