jueves, 20 de junio de 2013

Conecta cualquier módem USB a cualquier tablet Android


Requisitos: ser root

Normalmente, cuando estamos trabajando con nuestro portátil o nuestra tablet WiFi por ahí y necesitamos conectarnos a internet, nos basta con hacer tethering para disfrutar de internet en dicho dispositivo. Pero, ¿Qué pasa cuando necesitamos estar conectados por largo tiempo? Nuestro principal enemigo es el drenaje de batería que supone hacer tethering desde nuestro smartphone, aparte del gran consumo de datos que supone estar tanto tiempo conectado. Si somos de los que usamos mucho internet en casos así, seguro que tenemos uno de los famosos “pinchos”.
Los popularmente llamados “pinchos” son los módems USB que las operadoras dan como promoción para un plan de datos, o como alternativa al propio plan de datos. Por lo general, estos periféricos no son del todo compatibles con las tablets Android. Y puede llegar a ser un gran fastidio necesitar usar el módem y que nuestra tablet no lo reconozca.
Uno de los foreros de XDA, Bhaskar1109, ha descubierto una manera de eludir esta incompatibilidad, haciendo posible que cualquier tablet Android pueda usar estos módems para conectarse a internet mediante red móvil. El proceso puede parecer un poco complicado, pero si contamos con experiencia en tocar algunos archivos de sistema, tenemos root y sabemos manejar el terminal en el PC y la tablet, todo irá sobre ruedas.
Para el proceso necesitaremos un APK que instalaremos en la tablet y dos scripts, que serán los que meteremos en el sistema. Así como algunas carpetas y archivos a modificar. Todo está dentro de este archivo comprimido que recomiendo descargar antes de iniciar el proceso.

Primeros pasos

Tablet_con_modem

Para crear la compatibilidad, deberemos poner el módem USB en modo “sólo módem” (modem-only). Esto quiere decir que, si el módem dispone de servicio de almacenamiento masivo (lo podemos usar como pendrive), perderemos dicha característica. Para ello, deberemos buscar el modo de hacerlo en la red. Puesto que cada modelo de módem tiene su propio sistema. Normalmente, se trata de mandar unos comandos mediante el terminal de Windows, por lo que no debería traernos demasiados problemas.
Acto seguido, deberemos averiguar el “vid” y “pid” del módem. Esto lo podemos conseguir yendo a la barra de notificaciones de Windows, abriendo menú contextual en el icono del módem (clic derecho) y entrando en Módem – Propiedades – Detalles.
Una vez apuntados el “vid” y “pid” del módem, necesitaremos una aplicación de gestor de archivos. Nos vale ESFileExplorer, Solid Explorer o similares. Debo destacar que cada gestor de archivos tiene una manera de conseguir acceso root. En el caso de ES File Explorer debemos darle permiso en el menú de ajustes. En Solid Explorer, por el contrario, nos pedirá acceso root cuando hagamos una operación que lo requiera.
Si ya hemos instalado nuestro gestor de archivos en la tablet y tenemos a buen seguro que dispone de permisos root para acceder a todo el sistema, tenemos que ir al directorio /system/bin/preinstall.sh y añadir una linea a dicho archivo.
echo “19d2 1176″ > /sys/bus/usb-serial/drivers/option1/new_id
Donde 19d2 es el “vid” del módem y el 1176 es el “pid”. Únicamente deberemos cambiar esos dígitos por los que habíamos apuntado anteriormente.

Reiniciamos la tablet

En el archivo que descargamos, existe una carpeta llamada “peers“. Abrimos el archivo conf-chat y escribimos nuestro APN en donde procede.
Cuando la tablet no reconoce el módem no generará los archivos ttyUSB, que son necesarios para comunicarse con el módem. En el anterior paso, cambiamos el archivo para que ahora reconozca el modelo de módem y genere los archivos ttyUSB. Si queremos asegurarnos, podemos comprobar la operación escribiendo en el emulador de terminal de Android (está en la Play Store) el comando “dmesg” (sin comillas). Nos desplazamos hacia abajo y veremos los puertos ttyUSB generados como la captura. Si esto se comprueba satisfactoriamente, tendremos medio trabajo hecho.

Pic1

Ahora deberemos encontrar qué puerto es el puerto pppd porque lo necesitamos para ponerlo en el archivo conf-pppd de la carpeta peers. Abrimos conf-pppd con el Wordpad y veremos que dice que el puerto es “ttyUSB1“.  Eso es porque en este ejemplo, el puerto es 1, por lo que no necesita más modificaciones para poder conectarse. Si nuestro puerto fuera “ttyUSB2deberíamos cambiar esa linea y poner lo evidente. Es decir, “ttyUSB2“.

Cómo determinar el puerto ttyUSB

Para determinar qué puerto ttyUSB es el usaremos deberemos abrir dos ventanas en el emulador de terminal de Android. En la primera ventana pondremos busybox tr -s “\n” < /dev/ttyUSBx. Donde “x” es el primer puerto generado por nuestro módem.

Pic2

Ahora, en la segunda ventana, pondremos echo -e “ATi\r” > /dev/ttyUSBx. Donde la “x” es el mismo que pusimos en la anterior ventana.

Pic3

Rápidamente veremos un OK en la primera ventana. Si no vemos nada en la primera ventana, deberemos desconectar el módem y volver a conectarlo, para usar el siguiente puerto. Si no vemos respuesta, deberemos repetir el proceso de conectar-desconectar-poner siguiente puerto tantas veces como sea necesario. Si, por el contrario, todo va bien y responde, seguimos adelante.

Pic7
Volvemos a la segunda ventana y ponemos echo -e “AT+CGDCONT=1,\”IP\”,\”www\”\r” > /dev/ttyUSBx. Donde la “x” es el puerto que se abrió y el “www” es nuestro APN. En la primera ventana nos deberá salir un OK.
Pic8

Hecho éso, volvemos a poner en la segunda ventana echo -e “ATDT*99#\r” > /dev/ttyUSBx. Veremos,  en la primera ventana, la conexión con el puerto de salida. Si, en vez de éso, vemos un ERROR, es que el puerto que pusimos no es el pppd adecuado. Desconectamos y conectamos el módem y probamos el siguiente puerto hasta que consigamos el mensaje “CONNECT” en la primera pantalla.

Pic10

Si conseguimos el mensaje CONNECT con el ttyUSB1, pues dejamos el archivo conf-pppd como está. Si no, pues cambiamos la primera linea del conf-pppd, poniendo el puerto que nos haya dado el resultado satisfactorio.

Pic11

Una vez hecho, copiamos la carpeta peers en /etc/ppp/, en la memoria del dispositivo. Luego, instalamos la aplicación GScript_mod.apk. La abrimos y añadimos los dos scripts que están en la carpeta gscript  (inet-ON.sh y inet-OFF.sh). Uno sirve para habilitar la conexión y el otro para deshabilitarla. La carpeta gscript también debe estar copiada en la memoria interna para poder buscar los scripts desde la aplicación.
Por último, reiniciamos la tablet. Insertamos el módem de nuevo. Abrimos la aplicación GScript y le damos a “correr” el inet-ON.sh.

Pic12

Si todo va bien y hemos seguido las instrucciones al pie de la letra, nuestro módem nos proveerá de acceso a internet. Aunque el desarrollador reconoce que hay un bug en el proceso, y es que la tablet no muestra un icono de “datos móviles activos” en la barra de estado.

¡Hecho!

Pic13

Yo lo he probado con una Transformer TF101 y me ha ido de perlas. Si bien es verdad que es un poco lioso, no es muy complicado una vez sigues los pasos tal que están explicados y con tranquilidad. Esperamos que haya sido de ayuda y que todo haya ido sobre ruedas.
Para más información y soporte existe un hilo oficial en XDA Forum.

0 comentarios :

Publicar un comentario