ADB: Um ator invisível
Eduardo Carrara Felipe Pedroso
Agenda
• O que é?
• Como funciona?
• Comandos básicos
• Shell
• Sem os fios!
O que é?
• ADB = Android Debug Bridge
• Ferramenta de linha de comando que permite
a comunicação com dispositivos ou instâncias
do emulador Android
• É um aplicativo client-server que roda no
dispositivo e na máquina
Comandos Básicos
• Sintaxe: “adb <comando>”
– Para escolher o device/emulador:“adb –s <serialNumber> <comando>”
• Comandos básicos:
– start-server / kill-server → inicia/finaliza o server do adb
– devices → lista os dispositivos conectados
– logcat → exibe o logcat (sistema de logs)
– install / uninstall→ Instala ou desinstala um APK
– push / pull → copiar arquivos entre device e PC
– reboot → reinicia o dispositivo
Shell
Devs just wanna have fun
am / pm
am → Activity Manager
● Permite enviar comandos para executar ações de sistema.
● Iniciar Activities, Serviços, Broadcasts etc.
adb shell am start -a android.intent.action.VIEW
pm → Package Manager
● Possibilita ações e requisições relacionadas aos pacotes das
aplicações.
● Listar pacotes, permissões, usuários, etc.
adb shell pm list packages
dumpsys
● ‘Dump’ das informações sobre os serviços do
sistema (meminfo, battery, cpuinfo, wifi, etc)
adb shell dumpsys <service_name>
● Para listar quais serviços estão disponíveis:
adb shell service list
sqlite3
● Permite explorar os arquivos .db do
sistema/apps através de comandos SQL
● Para explorar o database de contatos:
cd data/data/com.android.providers.contacts
sqlite3 databases/contacts2.db
input
● Permite simular eventos de input no
dispositivo (touch, teclas, dpad, etc)
input [<source>] <command> [<args>]
● Para fazer um swipe na tela:
adb shell input swipe 400 200 50 200
getevent / sendevent
● getevent: provê informações sobre
dispositivos de input e monitorar os eventos
direto no kernel
adb shell "getevent -lt /dev/input/event2"
● sendevent: permite simular os eventos, mas
no mesmo “protocolo” do getevent
Outros comandos
● getprop/setprop
● service
● bootanimation
● start/stop
● screenrecord
● screencap
Wireless ADB
Olha mãe, sem os fios!
Wireless ADB
● Conecte seu device ao cabo USB
● Habilite o modo de debug
adb tcpip <porta>
● Desconecte o cabo
adb connect <ip>:<porta>
● Para voltar à conexão original:
adb usb
Dúvidas?
• Eduardo Carrara
– @DuCarrara
– facebook.com/ducarrara
– br.linkedin.com/in/eduardocarrara
• Felipe Pedroso
– @felipeapedroso
– facebook.com/felipe.a.pedroso
– br.linkedin.com/in/felipeapedroso
Muito obrigado!
Referências
• http://developer.android.
com/tools/help/adb.html
• https://source.android.com/

ADB: Um ator invisível

  • 1.
    ADB: Um atorinvisível Eduardo Carrara Felipe Pedroso
  • 2.
    Agenda • O queé? • Como funciona? • Comandos básicos • Shell • Sem os fios!
  • 3.
    O que é? •ADB = Android Debug Bridge • Ferramenta de linha de comando que permite a comunicação com dispositivos ou instâncias do emulador Android • É um aplicativo client-server que roda no dispositivo e na máquina
  • 4.
    Comandos Básicos • Sintaxe:“adb <comando>” – Para escolher o device/emulador:“adb –s <serialNumber> <comando>” • Comandos básicos: – start-server / kill-server → inicia/finaliza o server do adb – devices → lista os dispositivos conectados – logcat → exibe o logcat (sistema de logs) – install / uninstall→ Instala ou desinstala um APK – push / pull → copiar arquivos entre device e PC – reboot → reinicia o dispositivo
  • 5.
  • 6.
    am / pm am→ Activity Manager ● Permite enviar comandos para executar ações de sistema. ● Iniciar Activities, Serviços, Broadcasts etc. adb shell am start -a android.intent.action.VIEW pm → Package Manager ● Possibilita ações e requisições relacionadas aos pacotes das aplicações. ● Listar pacotes, permissões, usuários, etc. adb shell pm list packages
  • 7.
    dumpsys ● ‘Dump’ dasinformações sobre os serviços do sistema (meminfo, battery, cpuinfo, wifi, etc) adb shell dumpsys <service_name> ● Para listar quais serviços estão disponíveis: adb shell service list
  • 8.
    sqlite3 ● Permite exploraros arquivos .db do sistema/apps através de comandos SQL ● Para explorar o database de contatos: cd data/data/com.android.providers.contacts sqlite3 databases/contacts2.db
  • 9.
    input ● Permite simulareventos de input no dispositivo (touch, teclas, dpad, etc) input [<source>] <command> [<args>] ● Para fazer um swipe na tela: adb shell input swipe 400 200 50 200
  • 10.
    getevent / sendevent ●getevent: provê informações sobre dispositivos de input e monitorar os eventos direto no kernel adb shell "getevent -lt /dev/input/event2" ● sendevent: permite simular os eventos, mas no mesmo “protocolo” do getevent
  • 11.
    Outros comandos ● getprop/setprop ●service ● bootanimation ● start/stop ● screenrecord ● screencap
  • 12.
  • 13.
    Wireless ADB ● Conecteseu device ao cabo USB ● Habilite o modo de debug adb tcpip <porta> ● Desconecte o cabo adb connect <ip>:<porta> ● Para voltar à conexão original: adb usb
  • 14.
    Dúvidas? • Eduardo Carrara –@DuCarrara – facebook.com/ducarrara – br.linkedin.com/in/eduardocarrara • Felipe Pedroso – @felipeapedroso – facebook.com/felipe.a.pedroso – br.linkedin.com/in/felipeapedroso
  • 15.
  • 16.