Depurar una aplicación en Android 4.4 con Windows
Ya hemos visto en un artículo anterior la forma de configurar Ubuntu para que detecte un terminal con Android 4.4. En este artículo veremos algo parecido para el caso de Windows. A diferencia de GNU/Linux existen más casos en los que se usan los drivers de depuración (aparte de la programación). Como ejemplo tenemos la aplicación Helium. Esta aplicación nos permite crear una copia de seguridad del terminal sin necesitar permisos de root. Para hacer la copia utiliza ADB por debajo. Por esta razón es necesario que Windows tenga bien instalados los drivers y que el terminal permita la conexión del PC.
Nota: hay un artículo más reciente con Android Studio en Windows 10 usando Qualcomm y Mediatek.
Hay tres detalles importantes al usar ADB en Windows. El primero es que el terminal tenga la depuración activada. El segundo es que los drivers estén bien instalados. Al conectar el terminal tiene que aparecer en el Administrador de dispositivos de Windows un dispositivo asociado con ADB que no muestre ninguna señal de advertencia. En este punto ya tenemos configurado el terminal y los drivers de Windows. ADB utiliza un identificador (dependiente del fabricante) para conectarse al terminal. El último detalle importante es que el identificador del fabricante esté definido en el archivo correspondiente para que todo funcione de forma adecuada.
Activación de las opciones de depuración
Las opciones de depuración se encuentran al final del menú Ajustes. Por defecto están ocultas y es necesario activarlas de forma manual. Para hacerlo entramos en Información del teléfono y pulsamos varias veces sobre el número de compilación. Cuando salga un aviso de Android volvemos al nivel superior y entramos en las opciones de depuración. Sólo tenemos que activar las opciones de desarrollo y la Depuración USB.
Instalar los drivers de Windows
La instalación de los drivers no es complicada aunque si que es un poco laboriosa. Antes de instalar los drivers os recomiendo hacer una copia de seguridad con la aplicación de Windows DriverBackup. No es necesario pero nos permite recuperar el driver de un dispositivo si algo sale mal. Mi equipo usa Windows 8.1 (x64). Por alguna razón el driver del MTP dejó de funcionar un tiempo después de instalar los drivers de depuración. El problema se puede arreglar sin reinstalar Windows.
Copia de seguridad de los drivers de MTP
DriverBackup es una aplicación de código abierto que permite guardar una copia de seguridad de los drivers que usa el equipo. Posteriormente se podrá restaurar esa copia de seguridad y usar el dispositivo aunque no tengamos los drivers originales. El terminal por defecto usa los drivers del protocolo MTP. Este protocolo se usa para intercambiar información entre el PC y los dispositivos multimedia.
Listado de dispositivos
En la categoría Dispositivos portátiles seleccionamos el dispositivo para el que queremos hacer la copia de seguridad.
Información de la copia de seguridad
Esperamos a que acabe el asistente.
Progreso del asistente
Al final tendremos en una carpeta los archivos asociados al driver.
Instalador de los drivers
Los siguientes pasos se aplican en los terminales de bq. Si tenemos un terminal de otra marca es necesario seguir las instrucciones de su página Web. Descargamos los drivers desde el siguiente enlace. Al ejecutar el instalador nos aparecerá una ventana de consola con información del proceso. Si usamos una versión de Windows anterior a Windows 8 no debería aparecer ningún error.
En el caso de usar Windows 8.x la cosa cambia un poco y nos obliga a modificar algunos archivos.
Error al hacer la instalación en Windows 8.x
El mensaje que se ve en la captura dice básicamente que no se puede ejecutar el instalador. Para arreglarlo hay que ir a la carpeta C:USB_Driver y editar el archivo Install.bat. Os recomiendo que hagáis la edición del archivo usando la aplicación de Windows Notepad++ aunque se puede usar el Bloc de notas de Windows. La línea que hay que añadir es la 17. La primera parte del comando de la línea 17 busca la versión de Windows que usa el equipo mientras que la segunda (la parte del do echo) define una serie de variables auxiliares.
Modificación que hay que hacer en el archivo Install.bat
Guardamos los cambios y lo ejecutamos pulsando con el botón derecho sobre el archivo Install.bat. Es necesario ejecutarlo como Administrador para que la instalación se haga de forma correcta. En las versiones antiguas de Windows el usuario trabajaba por defecto como Administrador por lo que será suficiente con ejecutar el archivo bat.
Driver instalado correctamente
Hay un par de detalles que quiero remarcar. El primero de ellos es la creación del archivo adb_usb.ini en la carpeta .android. Dentro de ese archivo tendremos una cadena de texto que tiene el ID del fabricante. Este ID es el que usará ADB posteriormente y si no está definido ADB no detectará el teléfono. El segundo detalle es que se importa una clave en el registro de Windows. A efectos prácticos hace que el driver que hemos instalado se pueda usar desde las herramientas del SDK de Android sin tener que hacer modificaciones.
Se puede dar el caso que, después de instalar los drivers, nos aparezca en el Administrador de dispositivos de Windows el terminal con una señal de exclamación. Al ver las propiedades del dispositivo veremos una pantalla similar a la siguiente.
El driver está instalado pero no se puede usar
Cuando se da este caso hay que forzar a Windows para que use el driver correcto. En Windows 7 se pueden instalar drivers que no estén firmados. A partir de Windows 8, esta opción está desactivada por defecto y tenemos que activarla para poder instalar los drivers. Podéis ver los pasos en el siguiente enlace. La opción que permite instalar drivers que no estén firmados se desactiva al reiniciar. Una vez hemos instalado los drivers abrimos las propiedades del dispositivo y pulsamos en Actualizar controlador.
Pulsamos en el botón Usar disco y ponemos como ruta la carpeta C:USB_Drivers.
Seleccionamos el archivo android_winusb.inf y dejamos que Windows trabaje. Nos saldrá un aviso indicando que es un driver que no está firmado. Si no aparece el aviso y da directamente un error hay que repetir el proceso que permite instalar drivers no firmados.
Aviso que sale al instalar drivers no firmados
Cuando finalice el proceso tendremos el driver instalado en Windows.
En el momento que esté el driver instalado ya podremos usar ADB. Abrimos una consola de Windows, vamos a la carpeta que contiene ADB (viene de serie con el SDK de Android). Ejecutamos el comando adb devices. Si todo es correcto aparecerá un aviso en el terminal pidiendo permisos para aceptar la conexión del escritorio.
Firma RSA
El archivo adb_usb.ini
Este archivo se encuentra oculto en la carpeta .android que se encuentra en la carpeta del usuario. Tiene que tener una línea con el identificador. En el caso de bq, la línea es:
0x2A47
Si adb devices no encuentra el terminal seguramente será porque no está definida la línea. Después de hacer añadir el identificador reiniciamos ADB con el comando adb kill-server y buscamos de nuevo el terminal con adb devices.
Corrección del problema del MTP
En mi equipo me ha aparecido después de un tiempo de instalar los drivers de depuración un problema relacionado con el MTP. El dispositivo aparece en Mi PC / Equipo pero al acceder Windows nos dice que no tenemos permisos. El mensaje aparece en cualquier dispositivo que use este protocolo.
La forma de arreglarlo es sencilla si hemos guardado antes de empezar el driver que se usa en el MTP. Si no habéis hecho la copia será necesario que busquéis otro equipo con la misma versión de Windows. Los pasos son:
- Abrimos la ruta C:WindowsInf.
- Renombramos el archivo wpdmtp.inf
- Copiamos el archivo el mismo archivo del otro equipo con Windows en la misma ruta.
- Desconectamos el cable USB y lo conectamos de nuevo.
Guardo una copia del archivo wpdmtp.inf que usa Windows 8.1 (x64). Podéis pedirme el archivo en los comentarios y os lo mando por correo electrónico.
Conclusiones
El proceso de instalación de los drivers de depuración es bastante entrenido. En el caso de bq hay que hacer una modificación en el archivo bat que instala los drivers. Si usamos Windows 8.x es necesario permitir la instalación de controladores que no estén firmados. Para hacerlo podéis seguir el enlace que he puesto en el artículo. Recordad que el terminal tiene que tener activada las opciones de depuración. Una vez lo hemos hecho Windows usará el driver asociado. Por último ADB usará el driver y la información contenida en el archivo adb_usb.ini para comunicarse con el terminal.
En Android 4.4 es necesario confirmar la conexión del PC. Este paso no hay que hacerlo si el terminal usa una versión anterior de Android. El proceso es en cierta manera similar al que seguimos en Ubuntu. En Ubuntu los drivers venían de serie y lo único que hacíamos era sociar el identificador del fabricante con un driver y modificar el archivo adb_usb.ini.
Para cualquier duda podéis usar los comentarios o mandarme un correo electrónico.
Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir!