Maison  >  Article  >  Java  >  Comment exécuter des commandes Shell avec des privilèges élevés dans les applications Android ?

Comment exécuter des commandes Shell avec des privilèges élevés dans les applications Android ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-10 06:40:03474parcourir

How to Run Shell Commands with Elevated Privileges in Android Applications?

Exécution de commandes Shell à partir d'applications Android

Lorsque vous tentez d'exécuter des commandes Shell à partir d'applications Android, il est essentiel de prendre en compte les limitations imposées par le système d’exploitation. Pour obtenir des privilèges élevés, il est recommandé d'utiliser l'utilitaire "su", qui fournit un mécanisme plus sécurisé pour accorder un accès root temporaire.

Dans un terminal Android standard, l'exécution de commandes avec "su" s'effectue en tapant "su" suivi de la commande souhaitée, telle que "screenrecord --time-limit 10 /sdcard/MyVideo.mp4". Cependant, lorsque vous tentez d'effectuer cette même action à partir d'une application Java, des difficultés peuvent survenir.

Un problème potentiel survient lors de la tentative d'exécution de "su" et de la commande simultanément. Pour élever correctement les privilèges, il est nécessaire de lancer d'abord le processus « su », puis de fournir la commande en entrée via le flux d'entrée standard.

Pour y parvenir, une version modifiée du code est la suivante :

try {
    Process su = Runtime.getRuntime().exec("su");
    DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

    // Provide the command through the standard input stream
    outputStream.writeBytes("screenrecord --time-limit 10 /sdcard/MyVideo.mp4\n");
    outputStream.flush();

    // Terminate the "su" process
    outputStream.writeBytes("exit\n");
    outputStream.flush();
    su.waitFor();
} catch (IOException | InterruptedException e) {
    throw new Exception(e);
}

En modifiant le code de cette manière, il est possible d'exécuter avec succès des commandes shell à partir d'applications Android à l'aide de l'utilitaire "su", obtenant ainsi des privilèges élevés requis pour des tâches telles que l'écran enregistrement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn