Aller au contenu

[Résolu] Lancer un binaire système depuis une application android


Recommended Posts

Posté(e) (modifié)

Je ne suis pas un fin développeur mais j'essaye, avec mon maigre bagage en java, de réaliser une mini application qui lance des scripts shell...tout fonctionne bien..sauf l'appel système :(

Si quelqu'un de charitable veut bien m'aider.. :)

Modifié par drakaz
Posté(e)

En gros tu veux qu'une applet Java provenant d'internet puisse lancer n'importe quelle commande sur le client ?

Intéressant ... ;)

Il me semble que Microsoft fait des backdoors dans le genre sous forme d'ActiveX ou alors ils ne font pas exprès :)

Posté(e)

non rien a voir, je souhaite developper une petite app android, qui permet de lancer des scripts se trouvant sur le téléphone (je code pas assez bien pour tout faire en java :D)

Posté(e)

A mon humble avis, si l'unique raison qui te pousse à vouloir faire exécuter du shell par ton appli java est que tu ne sais pas encore le faire en java ... eh bien je dirais ... prends 5 minutes pour apprendre ça sera mieux :)

Posté(e)

Il s'est écoulé 18 minutes entre ton premier post et ton dernier ... tu aurais donc eu le temps ;)

Je ne peux pas t'aider techniquement car je ne me suis pas encore penché sur le SDK Android, mais je pense qu'il y a sans doute moyen de faire ce que tu veux faire autrement que comment tu veux le faire.

Mais pour essayer de cerner ton problème ... quand tu dis

tout fonctionne bien..sauf l'appel système

ça veut dire quoi ? Ton appli plante ? Tu as un message d'erreur ? Un code de retour de la fonction système qui n'est pas documenté ?

Posté(e)

en fait ca répondait rien du tout, mais ca ne lançais surtout rien.

J'ai modifier la commande par hasard et tout fonctionne...no comment :D

Process process = Runtime.getRuntime().exec("/system/bin/su /system/xbin/camenable");

Bon par contre j'ai toujours un probleme pour lancer un process de la même manière, mais qu'il reste en tache de fond..

Posté(e) (modifié)

Avec linux pour que ça tourne en tâche de fond, il faut terminer ta commande par un espace suivi d'une esperluette (&)

Genre :

> superBinaire &

Donc essaye :

Process process = Runtime.getRuntime().exec("/system/bin/su /system/xbin/camenable &");

C'est peut être pas le mieux mais dans un premier temps ça peut te dépanner si ça fonctionne.

Modifié par Androc
Posté(e)

Finalement j'ai simplement utilisé un nouveau thread..ca roule :)

class logcat implements Runnable {

public void run() {

Process process = null;

String[] env = {"com.android.galaxo"};

try {

process = Runtime.getRuntime().exec("/system/bin/su /system/xbin/logcat_to_sd");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

Posté(e)

Eh bien tant mieux :)

Si quelqu'un de calé au niveau du SDK Android peut confirmer que c'est la "bonne solution" ou que "c'est moche mais si il veut faire ça, c'est à peu près le seul moyen" ça serait bien ;)

Comme ça, non content d'avoir trouvé ta solution tu progresserais vers les cimes divines de la jolie programmation sur Android.

Posté(e)

sinon ya le NDK et là tu le fais à la POSIX ^^ (mais un peu lourd de se taper la compil d'une librairie pour ça.

Tu aura juste un pb avec ton thread : lorsque ton applie se termine, le process lancé va planter non ?

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...