====== ADB ====== ===== Requisitos ===== Para poder interactuar con el móvil hay que seguir estos pasos: 1. Activar el modo desarrollador Suele hacerse tocando 7 veces consecutivas sobre la opción "Número de compilación" o "Build Number": Ajustes / Información del teléfono / Número de compilación 2. Una vez hecho el paso 1, aparecerá un nuevo menú, "Opciones de desarrollo". Ahora hay que habilitar el modo de depuración o debug mode: Ajustes / Opciones de desarrollo / Depuración USB 3. Aceptar el mensaje de advertencia que aparece 4. Conectar el cable USB 5. (En el ordenador) Lanzar: sudo adb-start server 6. (En el móvil) seguramente aparezca un mensaje, con la MAC del ordenador, para aceptar dicha conexión. Aceptarla. Ya estamos listos para interactuar con el móvil desde el ordenador vía comando adb ===== Instalar paquetes ===== ==== Usar esta ==== sudo aptitude install adb ==== Deprecated #1 ==== sudo aptitude install android-tools-adb ==== Deprecated #2 ==== sudo dpkg --add-architecture i386 sudo aptitude update sudo apt-get install libc6:i386 libstdc++6:i386 lib32stdc++6 Otra posibilidad: sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 zlib1g:i386 ===== Actualizar SDK ===== android update sdk --no-ui ===== Comandos ===== * Listar paquetes instalados adb shell pm list packages * Desinstalar paquete adb uninstall com.phonegap.helloworld * Forzar la ubicacion adb emu geo fix 30.219470 -97.745361 Para ejecutar comandos desde la consola entramos en la carpeta de instalación de Android: android/tools y ejecutamos: # ./adb shell Por ejemplo, para consultar una base de datos: # cd data # cd data Ahora podemos hacer # ls o # ls *.* En mi caso la BBDD està en: # cd lobo99.com.BBDD_sample # cd databases # ls baseDatosSimple Me conecto a la BBDD: # sqlite3 baseDatosSimple SQLite version 3.5.9 Enter ".help" for instructions Listo las tablas sqlite> .tables android_metadata usuarios Y hago una consulta: # select * from usuarios; Carlos|Garcia|Peru|30 Ingrid|Gonzalez|Spain|20 * Logs adb logcat -c; adb logcat | tee /tmp/log ===== Descargar/subir una base de datos ===== Este proceso lo he comprobado con una App desarrollada en cordova y que usa el plugin cordova-sqlite-storage 2.0.0. 1. Obtener nombre exacto del paquete, por si no lo sabemos: adb shell pm list packages | grep example.com 2. Copiar la BD a una localizacion desde la que se pueda extraer adb shell run-as com.example.myapp cd databases El directorio, pues, en el que me encuentro: /data/data/org.jamgo.streamplayer/databases Y ahora copio la base de datos: cp mydb.db /sdcard 3. Desde el pc al que esta conectado el dispositivo: adb pull /sdcard/mydb.db /tmp/ 3749 KB/s (2429952 bytes in 0.632s) ===== LG G3 ===== ==== Primera vez ==== Probar todo esto 1. Desconectar cable USB 2. Habilitar menu desarrollador 2.1. Ajustes / pestaña "General" / Acerca del teléfono / Información de software 2.2. Tocar 7 veces seguidas sobre "Número de compilación". Esto hará que aparezcan otros menús. 3. Ajustes / pestaña "Redes" / Conexion a redes Marcar "Modem USB" 4. Ajustes / pestaña "General" / Opciones Avanzadas Marcar "Depuracion USB" 5. Conectar cable USB 6. Navegar hasta "adt-bundle-linux-x86_64-xxxxxxxx/sdk/platform-tools": sudo ./adb kill-server sudo ./adb start-server sudo ./adb devices 7. En el movil aceptar 8. Finalmente: adb devices List of devices attached LGD8554006600f device ==== Subsiguientes ==== 1. Conectar el cable USB 2. Ajustes / redes / Conexion a redes Marcar "Modem USB" 3. Comandos: sudo adb start-server adb devices ==== Samsung Galaxy S2 I9100 ==== Instalar aplicaciones de google: Cyanogen 12: Tenemos que habilitar la conexión USB, para habilitar el modo desarrollador pulsar 7 veces en ajustes/sistemas/ https://www.kingoapp.com/root-tutorials/how-to-enable-usb-debugging-mode-on-android-5-lollipop.htm Descargamos Gaps, arm, habilitamos reinicio avanzado, copiamos el zip en sdcard y hacemos update:\\ https://wiki.cyanogenmod.org/w/Google_Apps ===== Errores ===== ==== Offline ==== Adb version 1.0.36 Tableta FNAC Android 4.2.2 adb devices Salida: List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully * 1381134802352 offline **Solución**: 1. Mantener cable USB conectado 2. Matar proceso adb kill-server 3. (Android) Opciones de desarrollo / Desmarcar y volver a marcar "USB debug" 4. Aaaaara adb devices ==== no permissions (verify udev rules); see [http://developer.android.com/tools/device.html] ==== Asumo: * Móvil conectado por USB al PC desde el que se ejecuta adb * Móvil con "developer mode" activado * Móvil con "USB debug" activado 1. Obtener el ID del fabricante: 1.1. Ejecutar: lsusb Salida: Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 04f2:b569 Chicony Electronics Co., Ltd Bus 001 Device 005: ID 05c6:9091 Qualcomm, Inc. Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Anotar la salida. 1.2. Desconectar el móvil del cable USB 1.3. Repetir el paso 1.1. y anotar la salida. En mi caso: Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 04f2:b569 Chicony Electronics Co., Ltd Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 1.4. Ver la diferencia entre la salida del paso 1.1 y el 1.3. En mi caso: Bus 001 Device 005: ID 05c6:9091 Qualcomm, Inc. El fabricante pues es el "05c6" 2. Editar: sudo vim /etc/udev/rules.d/51-android.rules Y añadir la linea, indicando el código del fabricante obtenido en el paso 1.4: SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev" 4. Conectar de nuevo el dispositivo 5. En mi caso con un Wiko Ufeel Prime apareció una ventana en el móvil solicitando acceso. Aceptar y listo