ROM y desarrollo Motorola Moto G (2013) ROM y desarrollo Motorola Moto G (2013)

Respuesta
 
Herramientas
  #1  
Viejo 17/04/14, 14:58:41
Array

[xs_avatar]
robermgs robermgs no está en línea
Miembro del foro
 
Fecha de registro: abr 2012
Localización: Ávila
Mensajes: 76
Modelo de smartphone: Motorola Moto G 2013
Tu operador: Yoigo
Clonar particiones de Android desde la red para recuperar archivos borrados

Antes de comenzar, si su dispositivo con Android tiene memoria extraíble y los archivos se almacenan en esta lo mejor que pueden hacer es meterla directamente en su PC y recurrir a Photorec (para cualquier SO) o Recuva (si solo disponen de Windows) y evitarse leer todo lo que sigue, o probar unas de estas aplicaciones https://play.google.com/store/search...h&c=apps&hl=en dicho lo anterior...


El fin de semana sin querer borre todo el contenido de la carpeta /sdcard de mi Motorola Moto G, os imaginareis mi sobresalto al darme cuenta del error cometido, sin embargo no entre en pánico inmediatamente porque se que al borrar los archivos de cualquier partición, estos realmente no se borran sino hasta ser sobreescritos, decidí poner manos a la obra, sin embargo mi sobresalto comenzó cuando Photorec ni otros programas de recuperacion de datos, no reconocía la carpeta donde tenía montado el sistema de archivos, así que comenzó la investigación, me dí cuenta que no lo reconocia por que estos dispositivos se montan en MTP como protocolo para la transferencia de archivos; entre todas las búsquedas desesperadas me encontré con algunos que afirmaban que los dispositivos que funcionan con MTP pueden ser instalados como dispositivos de almacenamiento masivo (comunes) seleccionando el driver apropiado en la lista de dispositivos cosa que no me ha funcionado en este movil.



¿Porque lo publico?, bueno porque aunque resulto algo simple como dije antes, no encontré información para este método y espero que les sea de utilidad a otros.


Lo primero que necesitamos es tener rooteado nuestro dispositivo e instalado el busybox (la forma más sencilla para esto último es: una vez rooteado su dispositivo, vayan al market y busquen busybox installer, en un par de minutos lo tendrán listo y sin tantas complicaciones ahora que si se quieren complicar en algún momento explicaré como...), lo siguiente es tener un emulador de terminal instalado, aunque eso no es realmente necesario se los sugiero para no tener que recurrir al "adb shell" del SDK. Como he repetido en otras ocasiones el mejor emulador de terminal que conozco (en Android) es ConnectBot, para mayor comodidad les sugiero instalar SSHDroid para tener una terminal remota en su Android (aunque realmente no es necesario y si lo sugiero es para realizar todo desde su PC, además de que pueden sacarle provecho usando SFTP o SCP para copiar archivos entre otras cosas).


Partiendo del principio que no instalaron SSHDroid voy a explicar como hice para recuperar mi información, ejecuten el ConnectBot e inicien una sesión local; el primer problema (si ya intentaron algo de esto) es que el comando fdisk -l no da ningún resultado, tampoco sirve el df -h, la solución para saber como realizar esto vino luego de ejecutar dos comandos, el primero es df (sin ningún parámetro) esto me llevo al siguiente resultado:
Código:
$ su
# df
Filesystem         Size      Used    Free     Blksize
/dev                   359M    32K      359M   4096
/mnt/asec          359M     0K       359M   4096
/mnt/obb           359M     0K       359M   4096
/system             251M     211M  40M     4096
/data                 28G       3G       25G      2048
/cache              163M     8M       155M   2048
/pds                  1M        108K     1M      2048
/mnt/sdcard     28G       3G         25G     2048
En realidad la el parámetro -h resulto innecesario debido a que la información ya la arroja comprensible para humanos, que saco de esto lo más útil aquí es el Blksize (tamaño de bloque) que nos servirá para realizar una clonación limpia del disco interno de nuestro Android, ahora seguimos con:

Código:
# mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/platform/sdhci-tegra.3/by-name/system /system ext4 ro,relatime,barrier=1,data=ordered 0 0
/dev/block/platform/sdhci-tegra.3/by-name/userdata /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/platform/sdhci-tegra.3/by-name/cache /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/platform/sdhci-tegra.3/by-name/pdsb /pds ext2 ro,relatime 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
Bien algo de luz al fin, ¿por qué? porque hasta este momento me dí cuenta de como estaba operando Android con este tipo de dispositivos, para entenderlo lo primero que debemos saber es que coño es fuse? (aunque también esta en español recomiendo este porque trae más documentación al final), bueno en términos cristianos fuse es una gran solución implementada para evitar los conflictos del sistema de archivos nativo en todo tipo de dispositivos, ¿por qué? (aquí viene todo un choro de mi parte por lo que si quieren pueden saltar el párrafo siguiente).


Uno de los principales problemas a la hora de determinar el sistema de archivos que se va a usar en la partición de un disco, es para que se va a usar dicha partición y desde que sistema será accedido?, lo más común hoy en día es encontrarse con FAT32, el principal problema de esto es que no se puede tener archivos de más de 4G, así que los dispositivos móviles estaban condenados a cargar con esta limitante, o enfrentarse a problemas de incompatibilidad en los diversos sistemas operativos, lo que fuse hace es crear un sistema de archivos "virtual" (por llamarlo de alguna manera) que opera entre el sistema de archivos real y el nivel de acceso del usuario, evitando de esta manera que el sistema de archivos este condenado a ser FAT32 y permitiendo a usuarios Windows acceder de manera transparente a particiones ext3 o ext4, sin requerir soporte especial para esto y entonces para que usar MTP?, bueno eso simplemente para facilitar la sincronización con reproductores de Windows y otros programas, pero como es lo que predomina, que se le va a hacer.


Bueno una vez explicado que es fuse, eso fue lo que me dio la solución y fue porque una vez que entendí que hacia el sombrero mágico ahora solo restaba averiguar en donde estaba escondido el conejo, para eso volví a echarle un vistazo a la salida de mount y esta fue la linea que me dio la solución:


Código:
/dev/block/platform/sdhci-tegra.3/by-name/userdata /data ext4
Por si no lo han inferido he aquí la respuesta: en Android la carpeta /data tiene una particular importancia pues es donde las aplicaciones descargan el contenido necesario para funcionar, normalmente a esta carpeta solo puede acceder el sistema (también el usuario root, pero no en todos los casos a fin de evitar dejar inservible el sistema), teniendo eso en cuenta y que con las nuevas versiones de Android ha crecido la cantidad de datos necesaria para hacer funcionar las aplicaciones de calidad HD, me resulto lógico pensar que el sistema de archivos sea el mismo, es decir nuestro sobrero mágico (fuse) mediante el mago (MTP) permite el acceso a la partición ext4 en donde se aloja todo, incluido nuestro conejo (información), por lo tanto la respuesta al final del camino es hasta aburrida, y consiste en usar netcat en un puerto cualquiera, una tubería y el comando dd para recibir los datos y desde nuestro Android dd, una tubería y netcat para volcar el contenido a nuestra IP y asunto resuelto, quedaría algo así:
terminal destino:
Código:
#nc -l 1618 | dd of=/home/zosemu/xoom.img
terminal origen (ConnectBot)
Código:
#dd if=/dev/block/platform/sdhci-tegra.3/by-name/userdata bs=2048 | nc 192.168.1.100 1618
deje marcado con rojo los parámetros que tienen que modificar, puede ser que la ubicación del conejo cambie pero usando mount y df será posible encontrarlo, por último este proceso tardará un buen rato, dependiendo del tamaño del disco interno, al final solo habrá que usar:
Código:
#photorec /home/zosemu/xoom.img

Última edición por robermgs Día 17/04/14 a las 15:22:38.
Responder Con Cita


  #2  
Viejo 17/04/14, 16:07:02
Array

[xs_avatar]
dams_619 dams_619 no está en línea
Miembro del foro
 
Fecha de registro: feb 2012
Localización: Chiapas, Mexico
Mensajes: 348
Modelo de smartphone: Motorola Moto G
Tu operador: TELCEL
yo use un tutorial similar al tuyo, pero era para un motorola XOOM
traia los mismo pasos y procedimiento y no me sirvio
temine usando:
https://play.google.com/store/apps/d...ech.diskdigger

o tambien esta este
https://play.google.com/store/apps/d...obrecoverylite
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Motorola > Otros smartphones antiguos de Motorola > Motorola Moto G (modelo 2013) > ROM y desarrollo Motorola Moto G (2013)



Hora actual: 18:41:13 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /