Est-il possible d'exécuter des commandes adb via mon application android?
Peut-on dire, si adb
commandes peuvent être exécutées par le biais de mon application android. Si il est possible d'exécuter, de comment il peut être mis en œuvre?
- avez-vous trouver un moyen pour exécuter la bad sur l'appareil? Je ne reçois le message: erreur: le périphérique introuvable lors de l'exécution de la bad direct sur l'appareil
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le faire avec ceci:
N'oubliez pas de l'entourer avec un try et catch déclaration.
Edit:
@Phix est droit, ProcessBuilder serait préférable d'utiliser.
Runtime.getRuntime()
a été mis de côté. stackoverflow.com/questions/7069425/...Normal applications Android ont des droits différents pour les processus lancés par
adb
, par exemple, les processus commencé paradb
sont autorisés à le capturer l'écran alors que normalement les applications ne sont pas. Ainsi, vous pouvez exécuter des commandes à partir de votre application viaRuntime.getRuntime().exec()
, mais ils n'ont pas les mêmes privilèges que si vous aviez exécuté à partir d'uneadb shell
.je suis tombé sur ce post à la recherche pour une requête différente, mais j'ai travaillé plus spécifiquement avec
input
sur android avant, alors je voudrais juste mettre un peu de clarté sur la question.La raison pour laquelle
Ne fonctionne pas, c'est parce que vous ne supprimez pas
La
ADB
partie est uniquement pour une utilisation sur votre ordinateur, si vous avez installé de manière incorrecte la BAD, la commande serait en réalité un chemin d'accès à la adb.exe fichier sur votre ordinateur, à l'instar de ceou
C:\XXXX\ADB Files\adb shell
La
shell
partie raconte la BAD programme sur votre ordinateur pour accéder à des dispositifs de shell, de sorte que votre appareil ne savent pas ce qu'shell est soit...À l'aide de
sh /path/to/commandList.sh
va exécuter la commads répertoriés dans commandList.sh comme c'est un script shell (un .fichier batch sur windows est similaire )La commande que vous voulez utiliser est
Cependant ce sera la cause de l'Environnement null et le répertoire de travail null, vous pouvez contourner cela en écrivant les commandes d'un script shell ( .sh fichier ), puis en exécutant le script avec
Parfois la
sh
n'est pas nécessaire, mais je l'utilise juste au cas où.J'espère que cela efface au moins quelque chose 🙂
adb shell invoquée dans l'Exécution.getRuntime().exec est pas en cours d'exécution en vertu de shell de l'utilisateur. C'fournir shell, mais avec le même processus propriétaire de l'utilisateur (comme u0_a44). C'est la raison pour laquelle toutes commande ne fonctionne pas.
L'exécution de
J'ai eu l'erreur suivante:
java.io.IOException: Impossible d'exécuter le programme "bad": erreur=13, de refus d'Autorisation.
L'exécution de
Il n'y a pas d'erreur, mais en même temps, ma demande n'est pas traitée à prendre une capture d'écran.
J'ai découvert ce qui fonctionnait dans les versions antérieures d'android, mais plus tard il a été enlevé. Si je ne suis pas en mesure de fournir la source ici pourquoi il ne fonctionne pas.
Espère que cela aide quelqu'un comme moi qui est d'essayer d'utiliser cette approche pour prendre une capture d'écran lorsque l'application est en arrière-plan.
android.permission.DUMP