====== 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