2017-11-28 9 views
0

Hallo Leute, ich habe ein gerootet Telefon auf Android 7.1.1 basiert und ich möchte Apps ohne Aufforderung den Dialog (zurück oder Deinstallation Bestätigung) zu deinstallieren. Meine App hat root-Rechte und es ist auch eine System-App. Ich habe versucht, über "pm uninstall" Kommando-Shell-Befehl zu verwenden, aber es funktioniert nicht:ROOT - App im Hintergrund ohne Prompt Dialog zu deinstallieren

Runtime.getRuntime().exec("su pm uninstall " + packageName); 

Ich habe "Magisk/E: Unknown ID: pm". Ich habe viele andere Kombinationen ausprobiert, mit Shell-Präfix etc aber nichts. Root funktioniert sehr gut und in Manifest-Datei habe ich die Dauerwelle "DELETE_PACKAGES" gesetzt. Derselbe Befehl funktioniert, wenn ich ihn über den PC ausführe.

Wie kann ich eine App ohne Dialog zu deinstallieren?

+1

'su 'nimmt diese Argumente nicht. Versuch 'su-c' '' – jackgu1988

+1

Oh mein Gott, ich bin dumm. Danke, Mann. Beantworten Sie meine Frage, damit ich Ihnen die beste Antwort geben kann – Smart

Antwort

1

Statt Runtime.getRuntime().exec("su pm uninstall " + packageName); versuchen Runtime.getRuntime().exec("su -c 'pm uninstall " + packageName + "'");

In Ihrem Code ausgeführt wird Sie vergessen haben -c hinzuzufügen, wird so pm uninstall [...] als Argumente des su Befehl angesehen.

+1

wie ich hier meine "beste Antwort" versprach. Danke noch einmal ! – Smart

0

Sie könnten dies mit Dataoutputstream versuchen:

 try 
     { 
      Process p = Runtime.getRuntime().exec("su"); 
      DataOutputStream os = new DataOutputStream(p.getOutputStream()); 
      os.writeBytes("pm uninstall " + packageName + "\n"); 
      os.writeBytes("exit\n"); 
      os.flush(); 

      p.waitFor(); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } catch (InterruptedException e) 
     { 
      e.printStackTrace(); 
     } 
Verwandte Themen