Pour les appareils Android enracinés
Vous pouvez envisager d'installer BusyBox application de Stephen. Selon le Play Store, la version minimale d'Android prise en charge par l'application est Android 1.6 et c'est une application bien mise à jour. En substance, elle installe le busybox binaire en /system/xbin
et les lieux liens symétriques dans le même répertoire pour tous les utilitaires qu'il possède.
Qu'est-ce que BusyBox (pas l'application) ?
BusyBox combine de petites versions de nombreux utilitaires UNIX courants en un seul petit exécutable. Il fournit des remplacements pour la plupart des utilitaires que vous trouvez habituellement dans GNU fileutils, shellutils, etc. Les utilitaires de BusyBox ont généralement moins d'options que leurs cousins GNU complets ; cependant, les options incluses fournissent les fonctionnalités attendues et se comportent très bien comme leurs homologues GNU. BusyBox fournit un environnement assez complet pour tout petit système ou système embarqué.
Ici est la liste officielle des utilitaires qu'il fournit. find
peut être trouvée là.
Une alternative compétente à BusyBox est Toybox, qui a remplacé Toolbox dans la version Marshmallow.
Toybox combine de nombreux utilitaires de ligne de commande Linux dans un seul exécutable sous licence BSD. Il est simple, petit, rapide, et raisonnablement conforme aux standards ( POSIX-2008 y LSB 4.1 ).
Ici est la liste officielle des utilitaires que toybox supporte. BusyBox, pour le moment, semble supporter plus d'outils que Toybox.
Je ne pense pas qu'une application existe pour installer le binaire Toybox, donc vous pouvez utiliser ma réponse. aquí pour les besoins de son installation. Notez que la réponse peut être utilisée pour l'installation de Toybox et BusyBox. La seule condition préalable est de télécharger le binaire à partir de sources officielles.
Liens de téléchargement officiels :
Pour les appareils Android non enracinés
Je ne sais pas s'il existe une approche universelle pour toutes les versions d'Android. Cela dit, pour Android 4.0 et plus Installation de BusyBox (sans racine) prétend travailler. Il peut y avoir des applications de terminal qui sont fournies avec le binaire BusyBox. Je n'ai pas personnellement testé ces applications de terminal, mais il est facile de comprendre que leur plus grand inconvénient est que vous ne pouvez pas en faire bon usage en utilisant le logiciel BusyBox. adb .
Il existe cependant une approche qui semble fonctionner pour toute version d'Android supérieure à 4.2 (d'après mes tests). /data/local/tmp
est un répertoire qui peut être édité par shell
utilisateur. adb shell
vous accorde le shell à distance sur l'appareil et la connexion en tant que même utilisateur.
Tout ce que vous avez à faire est de mettre BusyBox/Toybox binaire dans /data/local/tmp
et créer des liens symboliques pour les utilitaires dans le même répertoire. Vous pouvez utiliser les étapes suivantes pour cela.
(Exigeant adb dans le PC).
adb push LOCAL\_FILE /data/local/tmp/ # replace LOCAL\_FILE with the file path of toybox/busybox binary in PC
adb shell
chmod 755 /data/local/tmp/FILE # setting appropriate permission on pushed binary file. Replace FILE with the name of the binary you pushed in first step. Recommended is to use a single word as a name with all lower-case letters
box=/data/local/tmp/FILE # setting up a local variable for usage in next step. Replace FILE as appropriate
$box | $box sed 's/\\ /\\n/g'| $box sed '$d'| while read line; do $box ln -sf /data/local/tmp/FILE /data/local/tmp/$line; done # We're executing the binary referenced by $box to list all utilities, followed by creation of a list and then for each item in the list, we're creating a symlink in a directory.
Izzy a recommandé le plus moyen simple de placer des liens symboliques pour les binaires de BusyBox .
adb shell /data/local/tmp/FILE --install -s /data/local/tmp/ # Replace FILE as appropriate. --install -s will create desired symlinks for you in a directory. Directory's path is provided next to it.
Tous ces outils sont maintenant accessibles en utilisant le chemin absolu /data/local/tmp/TOOL
. Remplacez TOOL par le nom de l'utilitaire. Exemple d'utilisation de la commande find :
adb shell /data/local/tmp/find --help
adb shell /data/local/tmp/FILE find --help # alternative way of using a tool
Pour les sessions interactives du shell, vous pouvez ajouter l'emplacement de FILE dans $PATH à l'aide de la commande export :
export PATH=/data/local/tmp:$PATH # this is prefixing /data/local/tmp into the existing value of $PATH. export would make sure that sub-shells see the same value in $PATH
Cela fait, vous pouvez maintenant utiliser find ou un autre utilitaire BusyBox/Toybox de cette manière :
adb shell
find --help
Il s'agit de Il est à noter que les modifications apportées à $PATH ne sont applicables que pour la session actuelle du shell. Cela signifie que chaque fois que vous lancez un shell en utilisant adb, vous devez exporter $PATH.
Cela dit, il n'existe pas de solution propre à Android pour les sessions shell non interactives, si ce n'est de trouver un moyen de créer une variable dont l'existence et la valeur persisteraient au-delà de la session shell en cours. dans votre PC, pas dans Android . Exemple :
adb shell $lolcat # $lolcat is a temporary variable in my shell on PC and it was assigned the value /system/xbin/toybox. My bash shell is replacing $lolcat with its value and then passing it to adb shell (or you can say, it first expanded the variable and then executed the whole command)
0 votes
Questions utiles : Utilitaires CLI sans racine && Un vrai terminal (avec ou sans racine) && Pourquoi les commandes linux ne fonctionnent-elles pas correctement sur Android ?
0 votes
Oui, cet appareil est enraciné. Mais il est intéressant de connaître les méthodes compatibles avec les appareils non rootés :)