Maison > Java > javaDidacticiel > le corps du texte

Pourquoi l'exécution des commandes « su » est-elle différente dans les terminaux Java et d'émulateur ?

Patricia Arquette
Libérer: 2024-11-19 09:51:03
original
440 Les gens l'ont consulté

Why Does Executing

Exécution de commandes Shell à partir d'Android : analyse d'un piège courant

Dans le développement Android, il peut survenir des cas où l'exécution de commandes Shell est nécessaire . Cependant, des pièges courants peuvent survenir lorsque vous tentez d'exécuter de telles commandes à partir d'une application Java. Un de ces pièges est observé avec la commande "su" qui accorde des privilèges de superutilisateur sur les appareils rootés.

Considérez le scénario de capture d'écran à l'aide de la commande screenrecord. Lorsqu'elle est exécutée via le terminal de l'émulateur d'application, la commande lance avec succès l'enregistrement. Cependant, l'exécution de la même commande depuis Java à l'aide de la méthode Runtime.getRuntime().exec() ne parvient pas à créer l'enregistrement.

La divergence provient de la méthode de transmission des commandes au processus "su". Le terminal de l'émulateur permet la saisie directe des commandes, alors qu'en Java, la commande doit être fournie en entrée du processus "su" via son entrée standard.

La solution consiste à rediriger la commande vers le processus "su" entrée standard utilisant DataOutputStream. Voici l'extrait de code révisé :

En redirigeant la commande vers l'entrée standard, le processus "su" reçoit la commande et l'élève avec les privilèges root, exécutant ainsi avec succès l'enregistrement d'écran. Cette technique garantit que les commandes shell peuvent être exécutées efficacement à partir d'applications Android, nécessitant même des privilèges de superutilisateur.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal