L'exécution de commandes Shell si le code java sur Android?

J'ai une application qui est censé l'utilisation de certaines commandes shell pour copier un fichier de la carte sd dans /system/media/. Il faudra racine, et je suis en train de tester sur un dispositif enracinée. Je suis à l'aide d'exécution pour exécuter des commandes shell, mais cela ne fonctionne pas.
Voici ce que j'ai eu pour mon temps de fonctionnement

public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{
    Process p = Runtime.getRuntime().exec("su");
    DataOutputStream os = new DataOutputStream(p.getOutputStream());            
    for (String tmpCmd : commands) {
    os.writeBytes(tmpCmd+"\n");
    }           
    os.writeBytes("exit\n");  
    os.flush();
}

Mais mon logcat ne montre que deux d'entre eux de ne pas se faire rejeter

07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh)
07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh
07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh)
07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh

Ces deux l'air d'être le sysrw et sysro commandes, mais l'application me demande tout de même pour la racine de l'autorisation lorsque je déclencheur de ce code.
Je suis nouveau à travailler avec de la racine de trucs et je n'arrive pas à comprendre comment obtenir que cela fonctionne.

  • puis-je obtenir un projet de travail de cet échantillon?
  • Ce n'est pas de travail pour moi et je ne suis pas tout FileNotFound exceptions ou quoi que ce soit en Java. Aussi, SuperSU intercepte la racine de la demande et que je suis en mesure de lui accorder, donc je sais que getRuntime() est de travail. Pour une raison quelconque, il ne va pas me laisser manipuler des fichiers dans le /system/media dossier.
  • Ah, il ressemble à sysrw et sysro sont inconnus commants.
  • Désolé pour la naïveté de la question: cela ne fonctionne qu'avec un dispositif enracinée, n'est-ce pas?
InformationsquelleAutor Ben | 2011-07-30