Hay muchas cosas en Android Debug Bridge que quizás no conozcas. ¡Haga clic aquí para obtener algunos consejos y trucos útiles para usar ADB!
enlaces rápidos
- Acceso a la carcasa
- Conexión a varios dispositivos
- Transferencia de archivos
- Inicio sesión
- Listado de aplicaciones instaladas a través de ADB
- Instalación y desinstalación de aplicaciones a través de ADB
- Extrayendo APKs con ADB
- Copia de seguridad y restauración de datos de la aplicación
- Listado de componentes de la aplicación
- Lanzamiento de actividades, servicios y receptores de radiodifusión
- Deshabilitar y habilitar casi cualquier aplicación
- Captura de capturas de pantalla
- Transferencia de datos binarios entre la PC y el dispositivo Android
Si ha sido un entusiasta de Android al acecho en la escena de modding, o un desarrollador de aplicaciones por cualquier período de tiempo tiempo, tarde o temprano, se topará con una buena herramienta llamada Android Debug Bridge, o ADB para corto. Se usa ampliamente en Android Studio como una utilidad complementaria de la línea de comandos. Los desarrolladores de Android también lo usan como una solución independiente para instalar y probar aplicaciones manualmente en
teléfonos inteligentes Android así como dispositivos Android emulados.Pero ADB puede hacer muchas cosas, y la mayor parte no solo es útil para los desarrolladores. Incluso si no es un desarrollador y está leyendo este artículo, es muy probable que haya usado ADB una o dos veces para descargar una aplicación o ajustar un permiso. Pero eso no es todo para lo que se puede usar ADB. Siga leyendo para obtener algunos consejos y trucos para usar ADB que quizás no conozca.
Deberá tener ADB en funcionamiento en su computadora. Asegúrese de consultar nuestro artículo sobre como instalar adb si necesitas ayuda. En caso de que esté usando Windows, también necesita instale los controladores USB OEM apropiados para su dispositivo Android.
Acceso a la carcasa
Si ha usado ADB anteriormente, puede estar acostumbrado a ejecutar comandos en una sola línea. Pero también puede usar ADB para abrir un shell de terminal en su dispositivo y ejecutar comandos directamente. ¡Y es fácil!
En su terminal o ventana del símbolo del sistema:
shell adb
A continuación, será recibido con un $
símbolo donde puede ejecutar comandos directamente en su dispositivo.
Conexión a varios dispositivos
ADB puede comunicarse con múltiples dispositivos al mismo tiempo. Sin embargo, debe especificar el dispositivo de destino al emitir comandos ADB en tales escenarios.
Para hacer esto, necesitará saber el número de serie del dispositivo de destino. Puede obtener la serie utilizando el comando de dispositivos:
dispositivos adb
Ahora, usa el -s
opción para especificar el número de serie del dispositivo de destino. Ejemplo:
adb -s <de serienúmero> caparazón
Transferencia de archivos
Para los aficionados a la línea de comandos, ADB proporciona una manera muy fácil de transferir archivos desde y hacia su dispositivo Android. solo usa el jalar
comando para copiar archivos y directorios desde el dispositivo y el empujar
Comando para copiar archivos y directorios al dispositivo:
Si desea copiar un archivo o directorio con sus subdirectorios al dispositivo Android:
adb push ruta_local ruta_dispositivo
- Ejemplo:
adb push D:\imagen.png /sdcard
El siguiente comando copiará un archivo o directorio con sus subdirectorios desde el dispositivo Android a la PC anfitriona:
adb pull ruta_del_dispositivo ruta_local
- Ejemplo:
adb pull /sdcard/backup_April.tar D:\Copia de seguridad
Inicio sesión
Android Studio proporciona la Ventana Logcat, que admite la visualización de registros desde su dispositivo en tiempo real. Sin embargo, no es exactamente útil para el procesamiento por lotes. Afortunadamente, los dispositivos Android vienen con el comando logcat disponible a través de ADB, que se puede usar para volcar los mensajes de registro del sistema y de la aplicación e imprimirlos en la pantalla.
La sintaxis básica es la siguiente:
registro adb
Para saber más, echa un vistazo a nuestro tutorial sobre cómo tomar logcats del sistema, registros del kernel y dmesg en Android.
huevos de Pascua
Google ofrece dos ingeniosos huevos de pascua relacionados con el comando logcat.
- El primero es lolcat, un guiño al jajaja meme. Da el mismo resultado que el comando logcat regular.
lolcat adb
- El segundo es longcat, que es equivalente al comando logcat -v long. Muestra todos los campos de metadatos y mensajes separados con una línea en blanco.
gato largo adb
Listado de aplicaciones instaladas a través de ADB
Para ver las aplicaciones instaladas en su dispositivo, puede usar el siguiente comando:
adb shell pm lista paquetes
Esto devolverá una lista de los nombres de los paquetes de las aplicaciones instaladas, con cada uno en su propia línea precedido por paquete:
.
Opciones
También hay algunas opciones que puede usar para recuperar listas más específicas.
- -F incluirá la ruta al APK base para cada aplicación, junto con el nombre del paquete.
- -a se asegurará de que se devuelvan todos los paquetes no APEX conocidos.
- -d hará que el comando solo devuelva paquetes deshabilitados.
- -mi hará que el comando solo devuelva paquetes habilitados.
- -s hará que el comando solo devuelva paquetes del sistema.
- -3 hará que el comando solo devuelva paquetes de terceros.
- -i incluirá el nombre del paquete de instalación para cada paquete.
- -T incluirá el UID del paquete para cada paquete.
- -tu incluirá paquetes desinstalados.
- --show-versioncode incluirá el código de versión para cada paquete.
- --apex-solo solo devolverá paquetes APEX.
- --uid solo mostrará paquetes con el UID dado.
- --usuario solo mostrará los paquetes que pertenecen a la ID de usuario dada.
Instalación y desinstalación de aplicaciones a través de ADB
Este es un uso relativamente común de ADB, pero vale la pena mencionarlo de todos modos. Entre otras formas, también puede hacer uso de ADB para instalar y desinstalar aplicaciones de Android a su dispositivo Android.
Instalar un APK
Si tiene un APK en su computadora, puede instalarlo en su dispositivo con lo siguiente:
adbinstalar-ralguna aplicación.apk
Recuerda reemplazar algoapk.apk
con la ruta completa al APK que desea instalar.
Opciones
Hay un montón de opciones para instalar APK a través de ADB.
- El -r La opción permite que ADB se instale sobre una aplicación existente (es decir, actualización). En Android Pie y versiones posteriores, no es necesario especificar esta opción.
- El -R opción, para Android Pie y posterior hará que la instalación falle si la aplicación ya está instalada.
- El -i La opción le permite especificar un nombre de paquete de instalación. Esto es lo que se devuelve si Android quiere saber qué instaló el APK.
- El -t opción permite un APK con Android: testOnly="verdadero" en su manifiesto para ser instalado.
- El -d La opción permite que el APK especificado sea una versión anterior de una aplicación ya instalada. Esto solo funciona si ambas versiones de la aplicación son depurables.
- El -gramo opción para Android Marshmallow y luego otorga automáticamente todos los permisos de tiempo de ejecución a la aplicación instalada.
Eso no es todo. Si desea una lista completa, puede consultar la documentación integrada.
Múltiples APK y paquetes
Si tiene un montón de APK que desea instalar a la vez, ya sea desde varias aplicaciones o porque está instalando un paquete de aplicaciones, puede usar ADB instalar-múltiple
y instalar-multi-paquete
características.
Si todos sus APK son para una aplicación, use instalar-múltiple
:
adbinstalar-múltipleapk1.apkapk2.apk ...
De lo contrario, utilice instalar-multi-paquete
:
adbinstalar-multi-paqueteaplicación1.apkaplicación2.apk ...
Las opciones para estos comandos son similares a instalar
, pero con algunas limitaciones. Consulte la documentación integrada de ADB para saber qué opciones están disponibles.
Desinstalar una aplicación
Para desinstalar usando ADB, necesitará el nombre del paquete de la aplicación que desea desinstalar. Consulte la sección de Listado de aplicaciones instaladas si aún no lo has hecho.
Una vez que tenga el nombre del paquete, la desinstalación es tan simple como:
desinstalación adb <Nombre del paquete>
Por lo general, no puede desinstalar el sistema o las aplicaciones preinstaladas con este comando. Sin embargo, es posible que pueda deshabilitarlos con ADB. Consulta la sección Deshabilitar y habilitar casi cualquier aplicación para detalles.
Extrayendo APKs con ADB
Hay muchas razones por las que podría querer extraer los APK de una aplicación. Tal vez desee hacer una copia de seguridad para usarla en el futuro, o tal vez ya no esté disponible en línea y desee transferirla a un dispositivo diferente.
Extraer una aplicación usando ADB es bastante simple. Primero, querrá encontrar el nombre del paquete de la aplicación que desea extraer. Hay varias formas de hacer esto, pero la más fácil suele ser usar la aplicación Configuración de su dispositivo para ver el lista de todas las aplicaciones instaladas, seleccione la que desee y desplácese hacia abajo hasta que encuentre el nombre del paquete o la aplicación IDENTIFICACIÓN.
Una vez que tenga el nombre del paquete, ejecute el siguiente comando:
ruta adb shell pm <Nombre del paquete>
Este comando devolverá la ruta de todos los APK para ese nombre de paquete.
Luego puede usar el siguiente comando para extraer cada APK a su computadora:
adb pull /ruta/a/apk.apk
Copia de seguridad y restauración de datos de la aplicación
Aunque Google aún tiene que idear una metodología de copia de seguridad con un solo clic similar a iOS, puede usar ADB para hacer una copia de seguridad y restaurar las aplicaciones instaladas junto con sus datos. Sin embargo, la funcionalidad está lejos de ser perfecta y Google ya ha marcó la característica como obsoleta.
Respaldo
Para hacer una copia de seguridad de una sola aplicación, con su APK:
adb respaldo -apk <paquetenombre> -f nombre_paquete_backup.ab
En caso de que desee hacer una copia de seguridad de todos los datos de la aplicación a la vez:
adb respaldo -F todo -todo -apk -sin sistema
Dado que el módulo de restauración no puede realizar una restauración específica de la aplicación individual, es mejor crear copias de seguridad específicas del paquete. El siguiente fragmento de comando (compatible con Linux/macOS y Windows Subsystem for Linux) puede hacerlo por usted:
para APLICACIÓN en $(adb shell pm lista de paquetes -3)
hacer
APLICACIÓN=$( eco${APLICACIÓN} | sed "s/^paquete://")
copia de seguridad adb -f ${APLICACIÓN}.respaldo ${APLICACIÓN}
hecho
Restaurar
Primero, debe instalar el APK guardado;
adb instalar <paquetenombre>.apk
Luego puede restaurar sus datos:
adbrestaurarcopia_de_nombre_del_paquete.ab
Para reiterar, las funcionalidades de copia de seguridad y restauración de ADB tienen múltiples advertencias, incluidos resultados variables según la ROM
Listado de componentes de la aplicación
Los componentes de una aplicación son cosas como sus Actividades, BroadcastReceivers, Servicios, etc. A veces es útil conocer los nombres de estos componentes en una aplicación específica, especialmente si desea iniciar actividades ocultas o enviar una transmisión con datos específicos.
Desafortunadamente, ADB no tiene una forma muy clara de enumerar los componentes de una aplicación. Pero es posible. Ejecute el siguiente comando:
adb shell dumpsys paquete
Se devolverá un montón de texto.
- Desplázate hasta que encuentres el Tabla de resolución de actividad title para ver las Actividades.
- Mira por debajo Tabla de resolución del receptor para BroadcastReceivers.
- Comprobar el Tabla de resolución de servicio para Servicios.
- Etcétera.
Cada componente mostrará la acción necesaria para iniciarlo, el nombre del componente y posiblemente alguna información adicional.
Alternativamente, si desea una forma más fácil de ver actividades, servicios y receptores, puede usar la aplicación Root Activity Launcher de XDA Recognized Developer Zacharee1. Le mostrará esos componentes para cada aplicación, junto con un montón de otras características útiles.
Precio: 0,99.
Lanzamiento de actividades, servicios y receptores de radiodifusión
ADB también se puede usar para iniciar actividades, iniciar servicios y notificar a BroadcastReceivers. Incluso puede especificar URI de datos y extras de intención si es necesario.
Para iniciar componentes, necesitará el nombre del componente que desea iniciar. Puedes ver cómo obtener eso desde el Listado de componentes de la aplicación sección.
La sintaxis del comando para iniciar una actividad es algo como esto:
Estoy empezando -a <acción> -norte <componente>
La sintaxis del comando para iniciar un servicio es algo como esto:
soy servicio de inicio -a <acción> -norte <componente>
La sintaxis del comando para notificar a un BroadcastReceiver es algo como esto:
estoy transmitiendo -a <acción> -norte <componente>
En la mayoría de los casos, para Actividades y Servicios, no necesita especificar una acción explícitamente. Por lo general, solo lo necesitará si el componente usa uno que no sea android.intento.acción. PRINCIPAL.
Además de la sintaxis básica, aquí se explica cómo especificar más datos para pasar. En general, todos los valores de los datos deben estar entre comillas dobles.
- -d le permite especificar un URI de datos.
- -mi o --es le permite especificar una cadena adicional.
- --esn le permite especificar una cadena extra nula.
- --ez se utiliza para especificar un extra booleano.
- --ei se utiliza para especificar un entero extra.
- --el es para especificar un extra largo.
- --ef pasará un flotador extra.
- --UE pasa un URI adicional.
- --ecn se puede utilizar para especificar un nombre de componente adicional.
-
--eia
pasará los valores como un Integer[] extra., ,... -
--eial
pasará los valores como una lista, ,... . - Los mismos argumentos de matriz y lista también funcionan para longs, floats y Strings. Solo reemplaza el i con la letra correspondiente.
- -F le permite especificar una bandera.
Hay aún más opciones de comportamiento que puede usar, así que consulte la documentación integrada para obtener más detalles.
Deshabilitar y habilitar casi cualquier aplicación
Las aplicaciones del sistema en Android no se pueden desinstalar y, desafortunadamente, muchas de ellas tampoco se pueden deshabilitar a través de la Configuración. Si bien ADB no le permitirá desinstalarlos, puede ayudarlo a deshabilitarlos.
Primero, asegúrese de obtener el nombre del paquete de la aplicación que desea deshabilitar. Luego, prueba estos comandos. Si uno falla, pruebe la siguiente opción.
-
pm deshabilitar
- Para volver a habilitar, utilice pm habilitar
-
pm deshabilitar-usuario --usuario 0
- Para volver a habilitar, utilice pm habilitar
-
pm ocultar
- Para volver a habilitar, utilice pm mostrar
-
pm suspender
- Para volver a habilitar, utilice pm anular la suspensión
-
pm desinstalar -k --usuario 0
- Para volver a habilitar, utilice pm instalar-existente
- Éste desinstala efectivamente la aplicación de su perfil de usuario. Mientras que el comando para volver a habilitar debería trabajo, no hay garantía de que lo hará. Es posible que deba restablecer los valores de fábrica para restaurar la aplicación.
- Si está utilizando varios perfiles de usuario en su dispositivo, asegúrese de reemplazar 0 en los comandos anteriores con la identificación de usuario real que tiene.
- Para volver a habilitar, utilice pm instalar-existente
Para saber más, echa un vistazo a nuestro tutorial sobre cómo desinstalar bloatware de operador y OEM sin acceso de root.
Captura de capturas de pantalla
La mayoría de las ROM de Android ofrecen dos prácticas utilidades de shell: captura de pantalla y grabación de pantalla, para tomar capturas de pantalla y grabar actividades de pantalla, respectivamente. Puede llamarlos directamente desde el shell ADB para capturar una captura de pantalla estática o un fragmento de video de la pantalla de su teléfono y guardarlo directamente en el almacenamiento interno del dispositivo.
La sintaxis para capturar una captura de pantalla es bastante sencilla:
Captura de pantalla de shell adb /sdcard/screenshot.png
Del mismo modo, si necesita tomar una captura de pantalla dinámica, haga lo siguiente:
adb shell screenrecord /sdcard/recording.mp4
Como era de esperar, la herramienta de captura de pantalla es bastante simple, mientras que la utilidad de registro de pantalla ofrece varios parámetros. Las opciones para este último son las siguientes:
-
--tamaño ANCHOxALTO
- Configure la resolución del archivo de video (por ejemplo, "1280x720"). De forma predeterminada, intenta tomar la resolución de pantalla principal del dispositivo de destino (si es compatible) y vuelve a 1280x720 si no lo es.
-
--tasa de bits TASA
- Establezca la tasa de bits del video, en bits por segundo. El valor se puede especificar como bits o megabits, p. '4000000' es equivalente a '4M'.
-
--informe de error
- Puede agregar información adicional, como una superposición de marca de tiempo, que puede ser útil para ilustrar errores.
-
--tiempo límite TIEMPO
- Establezca el tiempo máximo de grabación, en segundos. El valor predeterminado/máximo es 180.
-
--ID de identificación de pantalla
- Especifique el ID de pantalla física para registrar. El predeterminado se establece en la pantalla principal. Consulte "dumpsys SurfaceFlinger --display-id" para conocer los ID de pantalla válidos.
-
--verboso
- Muestra información detallada sobre la sesión de grabación.
Puede ampliar aún más las capacidades de las utilidades de captura de pantalla integradas de Android al scrcpy. Es una solución de duplicación de pantalla de código abierto, que utiliza el poder de ADB.
Transferencia de datos binarios entre la PC y el dispositivo Android
En caso de que no desee generar un shell ADB completo, pero desee incorporar un paso simplificado de datos binarios entre la PC host y el dispositivo Android de destino, puede utilizar el ejecutivo
y ejecutivo
comandos
A pesar de su existencia prolongada, los comandos exec-in y exec-out aún no están documentados. Pueden conducir a la corrupción de archivos debido a la forma en que los diferentes shells manejan las entradas y salidas. Utilizar con precaución.
El primero lo ayuda a ejecutar un comando en Android y alimentar la entrada de la consola sin filtrar como su parámetro, mientras que el el segundo hace exactamente lo contrario, es decir, ejecuta un comando en Android y captura su salida binaria sin filtrar por el sistema operativo host.
Ejemplo:
adb ejecutivo-afuera "captura de pantalla -p" > "D:\captura de pantalla.png"
Esto usará el tapa de la pantalla
comando de Android para capturar una captura de pantalla de la pantalla del teléfono, pero la guarda directamente como captura de pantalla.png en la partición D: de la PC host (siempre que esté ejecutando Windows). Por otro lado,
adb ejecutivo-en"cd /tarjeta sd && tar -xf -" < "D:\copia de seguridad.tar"
Esto extraerá el contenido del archivo backup.tar almacenado en la partición D: de la PC anfitriona (que ejecuta Windows) en la raíz del almacenamiento interno del dispositivo Android.
ADB es una herramienta increíblemente poderosa y puede hacer mucho más que lo que está arriba. Los comandos de este artículo son solo un punto de partida útil. Para un uso más avanzado, consulte comandos como cmd-l para ver diferentes servicios con los que podría interactuar y ls -l /sistema/bin para ver los diferentes ejecutables de comandos disponibles en su ROM de Android.
Para otros viajes y garrapatas de Android, consulte nuestras guías en cómo rootear su teléfono inteligente Android, cómo instalar la recuperación TWRP, y cómo instalar una ROM personalizada en su dispositivo Android.