2 votes

En quoi le shell adb diffère-t-il d'un émulateur de terminal ?

J'ai quelques tâches que je veux accomplir sur Android 6.0.1 et elles nécessitent un accès Root lorsque je les exécute sur l'appareil. Cet appareil cible n'est pas rooté.

Puis-je utiliser adb depuis un PC pour exécuter des commandes comme si j'utilisais un émulateur de terminal sur un Android enraciné ? Je pensais que adb donnait une sorte d'accès temporaire sans restriction (comme le Root temporaire).

2voto

Firelord Points 23064

Je pensais que adb donnait une sorte d'accès temporaire sans restriction (comme le Root temporaire).

Lorsque vous ouvrez une application ordinaire d'émulation de terminal, un terminal s'affiche et vous êtes automatiquement connecté en tant qu'utilisateur particulier. L'ID utilisateur de cet utilisateur particulier est l'ID utilisateur de l'application émulateur de terminal affichée. Un tel utilisateur et une telle application sont considérés comme indignes de confiance et ne sont pas autorisés à faire un grand nombre de choses. Vous pouvez voir les éléments figurant sur la liste noire dans le code source de untrusted_app.te .

ADB, d'autre part, lorsqu'il s'interface avec l'appareil, utilise l'ID utilisateur 2000. Cet utilisateur est appelé coquille et peut faire pas mal de choses dans le but de déboguer mais ne peuvent toujours pas répondre aux demandes complexes d'un utilisateur final. 1 . À moins qu'Android ne propose un mécanisme permettant de basculer vers un autre utilisateur à volonté (tel que 'su' ; non graphique mais console), l'utilisateur final ne peut faire bon usage de l'utilisateur shell que lorsque l'appareil est connecté au PC en mode débogage. Suivez le code source de shell.te pour connaître les privilèges dont jouit l'utilisateur de l'obus.

En bref, si Android n'est pas enraciné, l'utilisateur shell est évidemment gagnant en raison des privilèges qui lui sont accordés par rapport à un utilisateur indigne de confiance, mais il ne sert pas de bon substitut au superutilisateur (su). En plus de cela, comme je l'ai noté ci-dessus, il a un coût.

Ressource connexe : les identifiants d'utilisateur qui sont définis dans Android


1 Qu'il soit temporaire ou non, l'utilisateur Root a toujours l'ID utilisateur 0.

0voto

Matthew Read Points 50150

adb n'accorde pas d'accès automatique à la racine, à moins que vous ne modifiiez le système pour qu'il fonctionne. adbd en tant que Root (et si vous êtes capable de faire cela, vous avez probablement Root de toute façon) ou si vous exécutez une ROM de développement non sécurisée (typiquement seulement pour les appareils Nexus) et exécutez adb root .

Donc normalement, tu dois être enraciné et lancer su sur adb shell comme vous le feriez dans un émulateur de terminal.

ADB fonctionne cependant avec quelques autorisations supplémentaires (voir ce commentaire ). Une application d'émulation de terminal peut demander certaines de ces autorisations, mais si elle ne le fait pas, vous aurez besoin de Root pour les utiliser.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X