Depurar una aplicación en Android 4.4 con Windows


  • MVP

    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.

    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.

    Archivos del backup

    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.

    Actualización del driver

    Pulsamos en el botón Usar disco y ponemos como ruta la carpeta C:\USB_Drivers.

    Ruta de los 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.

    Driver instalado

    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.

    Error MTP

    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:\Windows\Inf.
    • 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.

    Artículo original: https://www.innerzaurus.com/android/programacion/depurar-una-aplicacion-en-android-4-4-con-windows/


    Editado: Si el MTP deja de funcionar (y no tenéis un backup del driver) podéis arreglarlo en el siguiente enlace: http://www.mibqyyo.com/comunidad/discussion/comment/313563#Comment_313563


  • MVP

    Cosas pendientes:

    • Instalación del driver de depuración en los Aqauris E5 4G.


  • MVP

    Currada de coj..... Bravo compi, buen trabajo¡¡¡¡



  • Excelente trabajo @mimecar. Muy bueno.

    Muchas gracias !!!



  • ¡¡Olé!! ¡Grandísimo tutorial!



  • Si si, buenísimo... muchas gracias



  • Me has ayudado muchísimo para poder programar en mi dispositivo FNAC 5!!

    Muchísimas gracias!!



  • ¡Genial! Muchísimas gracias porque llevaba días intentando solucionarlo y por fin lo he conseguido. 



  • Muchas gracias por el tutorial, necesitaba que el adb reconociera el dispositivo para poder desarrollar. En Linux lo tenía averiguado pero en Windows 8 resulta más engorroso.


  • MVP

    Aunque he añadido el enlace al artículo lo pongo aquí. Si deja de funcionar el MTP y no tenéis un backup del driver (creo que os aconsejaba hacerlo en la guía :D) podéis arreglarlo en el siguiente enlace http://www.mibqyyo.com/comunidad/discussion/comment/313563#Comment_313563



  • Muy buen aporte!!

     Tengo win8.1 y me veía forzado a utilizar el adb con mi antiguo teléfono, pero ahora gracias a ti, podre desarrollar con mi bq E5.
    Gracias, un saludo.


  • MVP

    Tengo pendiente poner los pasos para el E5 4G y las tabletas. Lo añado a la lista de tareas 😛



  • Hola tengo un problema a la hora de modificar el archivo install.bat.

    Modifico el archivo pero a la hora de ejecutarlo me aparece: "El sistema no puede encontrar la ruta especificada."


  • MVP

    ¿Has modificado el archivo que está en la ruta C:\USB_Driver?



  • Buenas estoy intentando instalar los drivers adb para que el android studio me reconozca mi aquaris E4 pero tengo varios problemas el primero es que acabo de instalar windows10 pero creo que el problema radica en que no tengo ni zorra de donde tengo que colocar el instalador o directamente no me funciona.


    1º Descargo el .zip que indicas arriba que contiene los drivers de mi movil y lo descomprimo en el Escritorio.
    2º Entro en la carpeta y ejecuto el driver adb (C:\Users\andres\Desktop\Drivers&Tool\Drivers ADB\BQ_USB_Driver.exe) y se produce un error con la version de mi windows.
    3º Como pones en el tutorial aun no esta optimizado para windows 8.x ni mucho menos para windows 10 entonces descargo este archivo que subiste contestando a otro usuario (https://dl.dropboxusercontent.com/u/92458135/Foro bq/ADB WIndows 10/Install.bat) y lo sustituyo por el que hay en (C:\USB_Driver\Install.bat) y...repito el paso 2? En mi caso sale el mismo fallo con la version de windows.


  • MVP

    Hola @{andresjover93}

    En Windows 10 he probado la depuración con un Aquaris M5 y funciona correctamente. Descomprime de nuevo el archivo de ADB en C:\USB_Drive. Después edita el archivo .bat y añade la línea:
    set osrecognized=1 && set PARAM=/S

    Antes de la línea:
    if not defined osrecognized goto NotSupport

    Guarda el archivo y ejecuta el archivo .bat como Administrador. Sube una captura de pantalla en la que se vean los mensajes que salen y pon el enlace en el foro.



  • Me has salvado el día! 😄 Ya tira, ya veo cual era el problema porque había probado varias cosas pero se ve que yo remplazaba el archivo Intall.bat por el de win10 y luego ejecutaba el driver.exe y luego  al ejecutarse daba el error y luego probaba a ejecutar el install pero con la ejecución previa del .exe  parece que se modifica el contenido de install, ahora siguiendo los pasos que me has indicado he obtenido los siguientes mensajes de la consola:

    Así que problema resuelto. Gracias otra vez 🙂

    edito: me he comido un cacho de la foto con el paint pero el mensaje es igual que el de la foto del tuto.



  • Parece que hoy no es mi día 😞

    En el administrador de dispositivos no aparece nada similar a la foto que indique que los drivers estén instalados:
    y el C:\Users\andres.android\adb_usb.ini muestra lo siguiente:
    que en principio parece tener el identificador de bq.
    Bueno y a todo esto teniendo el móvil conectado por usb al ordenador en modo desarrollador con el la depuración de usb activa el android studio sigue sin reconocérmelo. Así que no se por donde seguir 😕


  • MVP

    ¿Qué dispositivo aparece en "Otros dispositivos"? El archivo .ini tiene el identificador de bq.



  • Aparecen 2 dispositivos sin controladores pero los nombres no me suenan de nada ahora mismo:

    edito: en dispositivos portátiles aparece aquaris e4 pero ni rastro del driver adb