Restaurar los datos de Android desde la memoria interna montando el almacenamiento interno en el sistema

Restaurar los datos de Android desde la memoria interna montando el almacenamiento interno en el sistema

Recuperar datos, fotos y vídeos eliminados, documentos y otros elementos de la memoria interna de los modernos teléfonos y tabletas Android se ha convertido en una tarea difícil porque el almacenamiento interno está conectado a través del protocolo MTP en lugar de Mass Storage (como una unidad flash) y el software de recuperación de datos habitual no puede encontrar y recuperar archivos en este modo.

Los programas de recuperación de datos de Android más conocidos (véase Recuperación de datos de Android) intentan solucionar este problema: acceden automáticamente al root (o se lo conceden al usuario) y luego acceden directamente al almacenamiento del dispositivo, pero esto no funciona en todos los dispositivos.

Sin embargo, hay una manera de montar manualmente (conectar) el almacenamiento interno de Android como una unidad flash (Dispositivo de Almacenamiento Masivo) utilizando los comandos ADB, y luego utilizar cualquier programa de recuperación de datos que funciona con el sistema de archivos ext4 utilizado en ese almacenamiento, como PhotoRec o R-Studio. Este tutorial se centrará en cómo montar el almacenamiento en modo de almacenamiento masivo y luego recuperar los datos del almacenamiento interno de Android, incluso después de un restablecimiento de fábrica.

Advertencia: el método descrito no es para principiantes. Si usted es uno de ellos, algunos puntos pueden no ser comprensibles y el resultado de las acciones no será necesariamente el esperado (en teoría, es posible empeorar las cosas). Utiliza lo anterior sólo bajo tu responsabilidad y prepárate para que algo salga mal y tu dispositivo Android no vuelva a encenderse (pero, si lo haces todo, entendiendo el proceso y sin errores, esto no debería ocurrir).

Preparando la conexión del almacenamiento interno

Todos los pasos que se indican a continuación pueden realizarse en Windows, Mac OS y Linux. En mi caso utilicé Windows 10 con el subsistema de Windows para Linux instalado y Ubuntu Shell desde la tienda de aplicaciones. Instalar componentes de Linux no es necesario, todas las acciones se pueden hacer en la línea de comandos (y no serán diferentes), pero preferí esta opción, ya que usando el ADB Shell en la línea de comandos hubo problemas con la visualización de caracteres especiales, que no afectan al método, pero es un inconveniente.

Antes de empezar a conectar la memoria interna de Android como una unidad flash en Windows, siga estos pasos:

  1. Descargue y descomprima las herramientas de plataforma del SDK de Android en una carpeta de su ordenador. La descarga está disponible en el sitio web oficial https://developer.android.com/studio/releases/platform-tools.html
  2. Abra la configuración de las variables de entorno del sistema (por ejemplo, empezando por «variables» en una búsqueda de Windows y haciendo clic en «Variables de entorno» en la ventana de propiedades del sistema que se abre. Segunda forma: abra el Panel de control – Sistema – Configuración avanzada del sistema – «Variables de entorno» en la pestaña «Avanzado»).
  3. Seleccione la variable PATH (ya sea del sistema o del usuario) y haga clic en «Cambiar».
  4. En la siguiente ventana, haga clic en «Crear» y especifique la ruta de la carpeta Platform Tools del paso 1 y aplique los cambios realizados.

Si está realizando los pasos anteriores en Linux o MacOS, busque en la web cómo añadir la carpeta Android Platform Tools al PATH en esos sistemas operativos.

Conectar la memoria interna de Android como dispositivo de almacenamiento masivo

Ahora vamos a la parte principal de este tutorial: conectar directamente la memoria interna de Android como una unidad flash a tu ordenador.

  1. Reinicie su teléfono o tableta en el modo de recuperación. Por lo general, para hacer esto, hay que apagar el teléfono, luego mantener pulsados los botones de encendido y «bajar volumen» durante un tiempo (5-6) segundos, y una vez que aparezca la pantalla de fastboot, seleccionar el modo de recuperación utilizando los botones de volumen y arrancar en él, confirmando la selección con una breve pulsación del botón de encendido. Para algunos dispositivos el método puede ser diferente, pero se puede encontrar fácilmente en Internet buscando: «device model_ recovery mode»
  2. Conecta el dispositivo a tu ordenador por USB y espera un rato hasta que se configure. Si el dispositivo muestra un error en el Administrador de Dispositivos de Windows cuando se completa la configuración, busque e instale el controlador ADB específico para su modelo de dispositivo.
  3. Ejecute Ubuntu Shell (en mi ejemplo, es el shell de Ubuntu para Windows 10), línea de comandos o terminal de Mac y escriba dispositivos adb.exe (Nota: desde bajo Ubuntu en Windows 10, uso adb para Windows. Podría instalar adb para Linux, pero entonces no «vería» los dispositivos conectados – limitación de las funciones del subsistema de Windows para Linux).
  4. Si el comando hace que vea el dispositivo conectado en la lista, puede continuar. Si no es así, introduzca el comando dispositivos fastboot.exe
  5. Si el dispositivo se muestra en este caso, entonces todo está conectado correctamente, pero el recovery no permite utilizar los comandos ADB. Probablemente, tendrás que instalar recuperaciones personalizadas (te recomiendo buscar TWRP para tu modelo de teléfono). Leer más: Instalar recuperadores personalizados de Android.
  6. Después de instalar el custom recovery, entra en él y repite el comando adb.exe devices – si tu dispositivo es ahora visible, puedes continuar.
  7. Introduzca el comando adb.exe shell y pulse Enter.

En ADB Shell, ejecute los siguientes comandos en orden.

mount | grep /data

Como resultado, obtenemos el nombre del bloque del dispositivo, que se utilizará a continuación (no lo pierdas de vista, recuérdalo).

El siguiente comando es desmontar la partición de datos en el teléfono, para poder montarla como Mass Storage.

umount /data

A continuación busca el índice LUN de la partición deseada correspondiente al Dispositivo de Almacenamiento Masivo

find /sys -name lun*

Se mostrarán varias líneas, nos interesan las que tienen en la ruta f_mass_storagepero aún no sabemos cuál es (suele terminar sólo en lun o lun0)

En el siguiente comando, utilizamos el nombre del dispositivo del primer paso y una de las rutas con f_mass_storage (una de ellas corresponde a la memoria interna). Si se introduce la que no es, recibirá un mensaje de error, entonces intente la siguiente.

echo /dev/block/mmcblk0p42 > /sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file

El siguiente paso es crear un script que conecte el almacenamiento interno con el sistema principal (todo lo que sigue es una línea larga).

echo "echo 0 > /sys/devices/virtual/android_usb/android0/enable && echo "mass_storage,adb" > /sys/devices/virtual/android_usb/android0/functions && echo 1 > /sys/devices/virtual/android_usb/android0/enable" > enable_mass_storage_android.sh

Ejecutando el script.

sh enable_mass_storage_android.sh

En este punto, la sesión de ADB Shell se cerrará y una nueva unidad («flash drive») que representa la memoria interna de Android se conectará al sistema.

Dicho esto, en el caso de Windows es posible que se le pida que formatee la unidad; no lo haga (simplemente Windows no puede manejar el sistema de archivos ext3/4, pero muchos programas de recuperación de datos sí).

Recuperación de datos del almacenamiento interno de Android conectado

Ahora que el almacenamiento interno está conectado como una unidad normal, podemos utilizar cualquier software de recuperación de datos que sepa trabajar con particiones de Linux, como el gratuito PhotoRec (disponible para todos los sistemas operativos comunes) o el de pago R-Studio.

Estoy intentando realizar acciones con PhotoRec:

  1. Descargue y descomprima PhotoRec desde el sitio web oficial https://www.cgsecurity.org/wiki/TestDisk_Download
  2. Inicie el programa, para Windows y ejecute el programa en modo gráfico ejecute el archivo qphotorec_win.exe (para más detalles: recuperación de datos en PhotoRec).
  3. En la ventana principal del programa, en la parte superior, seleccione el dispositivo Linux (la nueva unidad que hemos conectado). Si sólo necesitas un determinado tipo de archivo, te recomiendo que lo especifiques manualmente (el botón «Formatos de archivo»). Esto hará que el proceso sea más rápido.
  4. Una vez más, asegúrese de que está seleccionado el sistema de archivos correcto (a veces cambia «por sí mismo»).
  5. Inicie la búsqueda de archivos (se empezarán a encontrar en la segunda pasada, la primera es una búsqueda de cabecera de archivo). Si se encuentran, se restaurarán automáticamente en la carpeta que hayas especificado.

En mi experimento, de 30 fotos borradas de la memoria interna, se recuperaron 10 en perfecto estado (mejor que nada), para el resto sólo se encontraron miniaturas, también se encontraron capturas de pantalla png tomadas antes del hard reset. R-Studio mostró aproximadamente el mismo resultado.

Pero de todos modos, no es un problema del método que funciona, sino un problema de la eficiencia de la recuperación de datos per se en algunos escenarios. También observo que DiskDigger Photo Recovery (en modo de escaneo profundo con root) y Wondershare Dr. Fone para Android mostró resultados dramáticamente peores en el mismo dispositivo. Por supuesto, también puede probar cualquier otra herramienta que le permita recuperar archivos de las particiones del sistema de archivos de Linux.

Una vez finalizado el proceso de recuperación, retire el dispositivo USB conectado (utilizando los métodos adecuados de su sistema operativo).

A continuación, sólo tienes que reiniciar el teléfono seleccionando la opción correspondiente en el menú de recuperación.