Hackeando la tablet de FoodPanda (ScamPanda) – Sunmi V2 Pro

Tras un tiempo teniendo un restaurante listado en FoodPanda (Delivery Hero) Tailandia (ScamPanda como yo lo llamo) y después de tener innumerables problemas con esa gentuza, hace un par de semanas decidí hackear la tablet que ellos proporcionan para darle una mejor vida y uso que correr solamente aplicación de ScamPanda.

Los problemas con ScamPanda vienen de largo y no es objetivo listarlos en este post, pero a modo de resumen os diré que…

  • ha habido retraso en los pagos
  • no hay manera de hablar con soporte. Lo máximo que puedes hacer es chatear con cuatro monos mal pagados de Lahore, Pakistan y que te responderán a todo con un «lo siento» sacado de plantillas preeditadas, pero que jamás te solucionarán nada.
  • Sistema de edición de menús que solo funciona en Chrome y que en otros navegadores crea duplicados y hace cosas raras. Ellos no te dicen q solo funciona en Chrome, lo tuve que descubrir después de innumerables problemas con Firefox y Safari.
  • Cualquier cambio de texto o imágenes en el menú, tiene que ser aprobado por uno de sus monos en Pakistán. Reza porque no lo rechacen o te cambien el texto sin decirte nada. Ellos son los dueños de tu restaurante ahora.
  • Nunca me dieron acceso a su API para conectar mi sistema de gestión de restaurantes como hace McDonalds o KFC, a pesar de haberlo pedido innumerables veces.
  • En vez de usar una app para el mobil como la gran mayoría de empresas de delivery, tienes que usar una tablet que ellos te proporcionan y que sólo te permite utilizar su app. Lo peor es que ellos pueden remotamente acceder al micrófono y a la cámara. Es decir, metes un espía en tu negocio. Mas abajo te doy mas detalles.

Si piensas que estos problemas de ScamPanda solo afectan a restaurantes, verás lo que te ocurrirá como usuario en el momento que te tengan que hacer un reembolso o solucionarte un problema con el restaurante o con el repartidor… No te dejes engañar por el osito sonriente de color rosa.

foodpanda hacked

Tablet de FoodPanda totalmente desbloqueada y con las apps de la competencia

Sunmi V2 Pro (Prehackeo)

Sunmi V2 Pro es el modelo que FoodPanda Tailandia esta usando como tablet ( más bien es un telefono con impresora pero a ellos les gusta llamarlo tablet ). Esta tablet es comercializada por Sunmi Shangai (chinos como no!) y han personalizado la tapa de la impresora con el color y el logo de ScamPanda.

Esta tablet te llega totalmente capada para que uses solamente la aplicación GoDroid de FoodPanda y nada más. No tienes acceso a ningún programa ni al sistema Android que hay por debajo.

Como procesador, lleva un Qualcomm Snapdragon 425 (MSM8917, ano 2016) de 4 nucleos y 1 GB de RAM que se queda bastante corto y puedes notarlo con el lagueo general del sistema. Extremadamente lento al arrancar y extremadamente lento en la ejecución. Tarda incluso al mostrar el teclado de Android. Pero… ésto es precisamente lo que nos dará el tiempo necesario para hackearla. Te cuento cómo más abajo.

SIM con 2 GigaBytes de datos mensuales

Cabe destacar que la «tablet» viene con una SIM de DTAC que te da acceso a Internet para que no tengas que conectarla a tu Wifi. El problema es que el dispositivo pierde cobertura todo el tiempo y es más fiable conectarlo a una WiFi.

Es un detalle viniendo de ScamPanda, pero ten en cuenta que en países tercermundistas como Tailandia, puede haber negocios sin Internet y ellos querrán espiar ese dispositivo a cualquier hora y en cualquier lugar donde te encuentres.

Aunque no es parte del hackeo, he probado a poner la SIM en otro teléfono y con un poco de configuración y crear el APN, puedes tener acceso a internet gratis. El problema, es que a los 2 GB mensuales, DTAC corta el acceso. Supongo que volverán a dar 2GB al siguiente mes, no estoy seguro.

foodpanda hacked

Tablet de FoodPanda totalmente desbloqueada con la Play Store de Google lista para instalar la aplicación que quieras.

Hackeando la tablet para tener acceso al sistema Android

Como sabrás por éste blog, soy informático, y tener una tablet que no controlo en mi negocio, provista de cámara y micrófono es algo que no iba a tolerar. Primero, porqué es MI NEGOCIO, segundo porqué usaba MI WIFI y tercero porque me parecía «CURIOSO» que en vez de una app que te puedas bajar de Google Play o de la App Store, te den una tablet completa.

Además, no voy a mentir… soy un chico “curiosote” y era casi un reto reventarles la tablet a los malparidos de FoodPanda y hacerlo público.

Antes, he comentado que la tablet es extramadamente lenta, así que ese sera el vector de ataque que vamos a utilizar para hackear el sistema…

Conseguir el “Debug Mode” de Android

Lo primero que probé fue conectarla a mi PC con el cable USB-C que viene para cargarla (todo un detalle que no lleve MicroUSB, teniendo en cuenta lo cutre que es) para ver si podía acceder al sistema Android a través de ADB, pero no hubo suerte… Habían desactivado incluso el modo “USB storage” mediante políticas del sistema, lo cual me dio a pensar que había algun tipo de app como «Device Administrator».

Para poder activar el «Debug Mode» en Android debía acceder a la app de Configuración de Android, pero el sistema estaba capado, incluyendo ir a Home o deslizar el menú superior con el dedo.

Después de probar y probar maneras de engañar al sistema y reiniciar la tablet varias veces, me di cuenta que precisamente cuando iniciaba Android era donde podría tener una oportunidad.

Tras la animación del boot, justo cuando dice «Starting Android…» y antes de que la app de FoodPanda se cargase, había un espacio de tiempo en el que sí que podia deslizar el dedo de arriba a abajo para poder mostrar el menú del sistema Android y acceder a la configuración de Android. Era un período de 20-30 segundos y más que suficiente para empezar a atacar. Lo único que necesitaba era activar el menú secreto de Desarrollador de Android, activar el «Debug Mode» e iniciar el ataque con el PC a través de ADB.

foodpanda hacked

Tablet de FoodPanda totalmente desbloqueada con la app de Grab Merchant (competencia) funcionando perfectamente y haciendo uso de la impresora.

SOTI MobiControl (el “device manager” a batir)

Después de varios intentos y poder conectarme con el PC a traves de ADB, otro «problemilla» apareció…

Tras el arranque del sistema, éste automáticamente arranca una app llamada SOTI MobiControl, que actúa como «device manager» de Android. Ésta app es la encargada de empezar a cerrar y blindar Android para que solo la app de ScamPanda funcione. Como era de esperar, esta app al cargarse, desactiva los puertos USB y por ende no puedes utilizar mas ADB desde tu PC. Como he dicho antes, desde que aparece «Starting Android…» hasta que SOTI MobiControl entra en acción, pasan solo 20-30 segundos, por lo que hay que encontrar una manera de evitar que la app SOTI arranque o cerrarla justo cuando esta arrancando, o bien, poder desinstalarla.

La desinstalación de SOTI MobiControl estaba descartada por dos razones. Mi intención era hackear el sistema, pero poder dejarlo todo como al inicio. Es decir, si desinstalo algo, no se si la tablet volverá a funcionar de nuevo al arrancar el sistema. Además, y lo más importante… apps registradas como «Device Administrator» no se pueden desinstalar sin desregitrarlas como «Device Administrator», por lo que cuando intentabas desregistrar SOTI MobiControl como «Device Administrator», el sistema crasheaba. Por tanto, sólo me quedaba abortar la ejecución de SOTI MobiControl cuando el sistema intente arrancar esta app.

Para poder parar una aplicación en Android, primero debo listar las apps instaladas para dar con el nombre de la app que quiero parar. Desde la línea de comandos y con ADB (Android Debug Bridge) instalado ejecutamos lo siguiente:

adb shell 'pm list packages -f'

y nos devolverá  una larga lista con las apps instaladas en Android. Para filtrar la lista y encontrar a SOTI MobiControl ejecutamos:

adb shell 'pm list packages -f' | grep soti

El nombre de la app es «net.soti.mobicontrol.sunmi», por lo que ya sabiendo el nombre de la app, para pararla ejecutamos:

adb shell am force-stop net.soti.mobicontrol.sunmi

Este comando parará la ejecución de SOTI MobiControl, pero al ser «device manager», Android volverá a intentar a cargarla una y otra vez. Para evitar ésto, con el siguiente comando, cada segundo intentaremos cerrar SOTI MobiControl. Suficiente y efectivo.

watch -n 1 adb shell am force-stop net.soti.mobicontrol.sunmi

En caso de que no tengáis instalado «watch», deberéis instalarlo (yo estoy usando la manzanita como OS).

Con este comando y el PC conectado por cable a la «tablet», ya la podréis usar como un sistema Android normal… Configurar, instalar otras apps desde la Store, en definitiva, hacer lo que queráis. El sistema Android está desbloqueado, aunque precisa tener conectada la tablet al PC a través del cable USB. Más abajo te explico como deshacerte del molesto cable.

Tablet de FoodPanda totalmente desbloqueada corriendo la app de la competencia. La misma basura, pero de color verde.

Sistema Android totalmente desbloqueado, pero necesito tener una “home app” o “launcher” de Android.

El sistema Android ahora es totalmente funcional, pero cuando doy al botón de «Home» solo veo una pantalla negra… Ésto nos indica que SOTI, aparte de “device manager” actuaba como “home App” del sistema Android. Ahora que SOTI esta siendo bloqueado, debemos usar otra app como “home app”.

Desliza el dedo de arriba a abajo para mostrar el menú deslizante superior. Pulsa en el botón que tiene el icono de la tuerca para acceder a la configuración de Android.

Desde el submenú “Apps”, busca “SOTI MobiControl” y verás que está listada como «home App». Al estar parando la app con el comando anterior y haber sido establecida como «Home App», por eso es que ves una pantalla negra al ir al «Home». Pulsa sobre «Home App» y en opciones te saldrá otra «Home App» llamada «Launcher 3», que es la de por defecto de Android. La pulsas y al darle a «Home» ya tendras el launcher de Android por defecto. Recuerda que siempre puedes ejecutar la Google Play e instalar otros launchers.

Hackeo sin necesidad de cable USB

Para poder deshacerse del cable, se requiere que el PC y la «tablet» de FoodPanda estén conectados a través de la misma red WiFi para poder usar ADB sobre TCP. Es decir, comunicación ADB sin cables.

El funcionamiento es el siguiente…

adb tcpip 5555

Este comando hará que la tablet enrute ADB a través del puerto TCP 5555. Siempre puedes poner el puerto que te salga del níspero.

Ahora necesitas saber que IP de tu red local (WiFi) tiene la tablet. Hay 50000 maneras de saberlo, pero ya que estamos con la linea de comandos…

adb shell ifconfig

Este comando te dirá que wlan0 tiene por ejemplo, la IP 192.168.1.8. Entonces, para conectar ADB por la WiFi tendrás que ejecutar:

adb connect 192.168.1.8:5555

A partir de este momento tu tablet estará conectada a tu PC por WiFi. Ejecuta el siguiente comando:

adb devices

Podrás comprobar que ahora tienes dos conexiones, la del cable y la WiFi. El problema es que el comando que estaba parando la ejecución de SOTI…

watch -n 1 adb shell am force-stop net.soti.mobicontrol.sunmi

empezará a dar error y decir que tienes dos dispositivos. Tendrás unos pocos segundos para parar el comando con «Ctrl+C», desconectar el cable USB que eliminara una conexión y volver a ejecutar el comando de nuevo para que vuelva a parar SOTI, pera esta vez por WiFi.

A partir de ahora eres libre de cables y puedes mover la tablet desbloqueada y hackeada siempre que la tablet y el PC esten conectados a la misma red WiFi. Si uno de los dos pierde la conexión, SOTI MobiControl aparecerá de nuevo y te joderá todo el invento. Deberas reiniciar la tablet y empezar de nuevo. Si tu WiFi y ordenador funcionan perfectamente, no debería desconectarse. Yo me he tirado una semana así y sin problemas. Eso si, el ordenador siempre encendido.

A la mierda FoodPanda

Con el hackeo que te he explicado podrás usar cualquier aplicación que quieras con la tablet, incluyendo “GoDroid”, que es la app de ScamPanda. El único inconveniente es que siempre habrá un comando ejectandose desde tu PC para matar a SOTI MobiControl.

Si finalmente has decidido enviar a la mierda a FoodPanda (lo deberías haber hecho hace tiempo, tanto como restaurante, como usuario) lo mejor que puedes hacer es justo después de parar la aplicacion de SOTI MobiControl, irte a la configuración de Android de «Backup & Reset» y resetar el dispositivo como si viniera de fábrica.

Al hacerlo, no necesitarás hackear el dispositivo nunca más, ya que la configuración por defecto sera la de Sunmi, que es la marca de la Tablet. Recuerda que al resetear la tablet, GoDroid y todo rastro de FoodPanda desaparecerá (HAZLO XD)

Bonus Track – Portando GoDroid (FoodPanda app) a otro teléfono Android que tu quieras.

En teoría es posible utilizar la app de FoodPanda (GoDroid) en otro dispositivo Android, pero como no está en la Google Play, deberás extraer la app de la tablet con su configuración e instalarla en otro teléfono o tablet Android. Y digo en teoría porque a mi no me funciono. Supongo que con más tiempo algo habria sacado. Te cuento lo que hice…

Para extraer la app de GoDroid de la Tablet, ejecutas el comando que habíamos ejecutado antes para saber el nombre completo de una app. Éste también nos dará la ubicación del instalador apk dentro de la tablet…

adb shell 'pm list packages -f' | grep deliveryhero

Esta vez filtramos por “deliveryhero” que es el nombre del package de “GoDroid” y además, la empresa madre de FoodPanda, que tienen diferentes nombres en distintos paises.

En mi caso, el apk de “GoDroid” me dice que está ubicado en…

/data/app/com.deliveryhero.rps.restaurantandroidapp-2/base.apk

por lo que para copiar el apk de la tablet a nuestro PC, utilizamos el comando…

adb pull /data/app/com.deliveryhero.rps.restaurantandroidapp-2/base.apk

este comando nos copiará el apk pero no la configuración de la app. Para instalar la apk en otro teléfono o tablet…

“adb install base.apk”

Para obtener la configuración de la app, podemos hacer uso del comando backup de ADB:

adb backup -apk -f modafackas.backup com.deliveryhero.rps.restaurantandroidapp

Sustituye “modafackas.backup” por el nombre de archivo que quieras en tu Pc y la ejecución del comando anterior nos creará un archivo backup en nuestro PC.
Para restaurarlo en el dispositivo destino, justo después de instalar GoDroid, ejecutas:

adb restore modafackas.backup

Y esto es la teoría pero… ¡no funcionará! 🙁 La app de “GoDroid” hace uso del “Device Id” que será «V2XXXXX….» en las tablet Sunni, pero que en otros telefonos será «Unknown». El problema es que está info, GoDroid la utiliza para loguearse en su API y por lo tanto, la app fallará.

Yo seguiré investigando, pero si conoces a alguna pobre alma con un restaurante que utilice a estos tipos, dile primero que corte relación automáticamente y que, si no puede, por lo menos utilice la tablet para algo mas que FoodPanda. Por ejemplo instalar GrabFood, LineMan, Wongnai, RobinHood o cualquier otra app de la competencia. Como nota a destacar, la impresora térmica de la tablet funciona perfectamente con la app de Grab, XD.

Por último, deciros que todos estos comandos de ADB son bastante útiles en el día a día con tu teléfono y que puedes usarlos para otros menesteres.

¡A seguir hackeando!

(Visited 419 times, 1 visits today)

Si te ha gustado y quieres compartir esta página..