¿Qué es esta utilidad `adb` que sigo recibiendo consejos para usar?

10

En un montón de preguntas en este sitio veo respuestas que nos dice para ejecutar adb shello adb logcaty así sucesivamente.

Ahora, no soy un usuario completamente despistado, así que descargué e instalé Termux y tengo un intérprete de comandos cuando puedo escribir comandos, pero, ¿de dónde adbviene esto? ¿Lo descargo como una aplicación? No parece estar instalado por defecto (en un Redmi 3S, Android 6.0.1).

Además, parece que es una especie de elevador de permisos. Es como su? Si no, ¿cómo es diferente?

einpoklum
fuente
@RahulGopi: Sí, creo que podría haber una respuesta sucinta aquí en el sitio.
einpoklum
55
Es la herramienta descrita en nuestro adb tag-wiki , con recursos vinculados: ya te lo dije antes, supongo :) Recuerda: muchas de nuestras etiquetas tienen wikis decentes :) También ves, aquí en nuestro mismo sitio: ¿Qué es ADB y por qué se usa? ¿para? ¿Cómo lo instalo en mi dispositivo?
Izzy
El ADB se utiliza para conectar ratones y teclados a computadoras de última generación.

Respuestas:

33

Acerca de adb

En pocas palabras, adb(Android Debug Bridge) es una utilidad creada para instalarse en una computadora, con el fin de permitirle obtener una carcasa en un teléfono que está conectado a través de un cable USB o en la misma red Wi-Fi.

En ciertos dispositivos con Android Lollipop (5.1.1) y posiblemente versiones inferiores del sistema operativo, era posible engañar a un dispositivo para que se conectara a sí mismo, ya que el adbcliente también se incluía en el teléfono. Esto ya no es posible porque, desde Android Marshmallow (6.0) en adelante, Google eliminó el adbbinario de los teléfonos para reducir la superficie de ataque utilizable.

Sin embargo, es posible reintroducir manualmente el adbcliente en un teléfono, sin necesidad de compilar el binario usted mismo. Consulte el wiki de la etiqueta adb para obtener más información sobre este tema, así como sobre la instalación en una computadora y la resolución de problemas generales.


Donde conseguirlo

Hace algún tiempo, para obtener una adbnueva utilidad, llamada fastboot, había que descargar el SDK de Android completo de Google, si querían un paquete oficial. Hoy en día, un pequeño paquete oficial está disponible, como dice XDA . Incluye binarios para los sistemas operativos más comunes.


Cómo funciona

El adbcliente, instalado en su computadora, se conecta a un teléfono conectado o detectable por medio de un servidor interno. Luego, el usuario podrá enviar una variedad de comandos al propio teléfono, que será escuchado por adbdun demonio que reside en el teléfono.

Cuando se usa adb, usted se hace pasar por el usuario llamado shell(UID 2000). Este usuario es especial, ya que puede otorgar permisos de aplicación y acceder a más información que un usuario simple. Sin embargo, este hecho no significa que adbsea ​​lo mismo su, ya que este último le permite suplantar a cualquier usuario.

Se puede obtener más información sobre adbsu funcionamiento y consultar la documentación oficial .


Emitir comandos desde un teléfono

La mayoría de los comandos que se pueden emitir a través de adbtienden a ser utilidades que vienen preinstaladas en un teléfono.

Para acceder a ellos, debe instalar una aplicación de emulador de terminal en su teléfono (tenga en cuenta que Termux es especial, ya que especifica el suyo PATH, ignorando así los binarios del sistema). Esto, por ejemplo, le permitirá emitir comandos como logcatdirectamente en su dispositivo móvil. Sin adbembargo, recuerde omitir el prefijo.

Vale la pena mencionar que, si carece de permisos de root, el rango de comandos que podrá ejecutar y la información a la que podrá acceder será significativamente menor que si lo usa adb, porque el UID que los invoca será el aplicación en sí, y las aplicaciones tienen menos permisos que UID 2000.

Grimorio
fuente
¡Bien hecho! Lamentablemente no puedo votar dos veces :) // Sí, nuestros wikis son con demasiada frecuencia "cantidades desconocidas". No puedo señalar con suficiente frecuencia. Pero incluir un enlace en cualquier respuesta mencionada en él va un poco lejos en mi humilde opinión :) Donde encaja (como aquí: "para más detalles ..."), una buena idea. Siéntase libre de seguir adelante con eso - Mientras tanto, voy a limpiar los comentarios :)
Izzy
@Izzy Buen punto. Esperemos y veamos si realmente se necesita el spam de enlaces.
Grimoire
Tenga mi voto a favor, por favor.
iBug
@iBug me siento honrado.
Grimoire
2

Puente de depuración de Android (ADB) .

Envía comandos a través de USB o Wifi a un dispositivo Android. Por lo general, se instala en la computadora conectada al dispositivo. El cliente ADB también se puede ejecutar en el dispositivo, sin embargo, la idea es depurar el dispositivo de forma remota.

Es parte del kit de desarrollo de software de Android

Luego puede usar el administrador de SDK para descargar herramientas de la plataforma.

También hay un enlace más directo aquí en caso de que solo esté interesado en las herramientas de la plataforma

Documentación ADB

jdwolf
fuente
Espere, si no está instalado en el dispositivo, ¿por qué la gente sugiere que lo use en shells en el dispositivo? por ejemplo, en los ejemplos que di?
einpoklum
Ese es un buen punto. Tal vez sea más correcto decir que el comando adb es el "cliente" que se conecta a un dispositivo Android. El dispositivo Android también puede tener el cliente en él porque, ¿por qué no? Pero eso es como ejecutar ssh localhost
jdwolf
Para ser honesto, la documentación explica todo esto bien: developer.android.com/studio/command-line/adb.html
jdwolf