PDA

Ver la Versión Completa : Una pista sobre CWM Recovery


STEVE_MARS
10/08/13, 09:41:48
De XDA:

As I told earlier, the Exynos 44** based devices does not have a separate partition for recovery. The recovery resides with the boot partition. That leaves you with two options ( IMHO ).

1. Flash the entire boot partition with a boot.img file that has your compiled recovery
2. Take an image of your device's boot partition. Replace the stock recovery related files with your custom one.

The second option needs Linux based OS. There are commands to pack and repack img files.
Or in windows you can use CYGWIN ( you can do it to some extent ).

Por lo tanto, basta de buscar la particion Recovery, porque en las placas de Urbetter el recovery va dentro del boot.
Tenemos dos vias de investigacion sobre CWM ya compilados de tablets similares a la nuestra, una es sobre el Samsung note 10.0 n800:
http://forum.xda-developers.com/showthread.php?t=2202714

Y basado en ésta, acaban de sacar CWM para la Hyundai T7s:
http://www.slatedroid.com/topic/86114-clockworkmod-recovery-for-t7s-yeahh/

Empezamos otra brain-storm, Voyo Team :ok:.

beachsun
11/08/13, 21:13:29
Buena pista... :aplausos:
A ver si dan mas datos de lo que hacen...

teredur
12/08/13, 10:47:44
He estado mirando esta información y alguna otra.

He realizado algún "experimento" y me encuentro un poco parado, haber si entre todos, se ilumina la "bombilla".

- "portado" ( Esto es mucho decir, más bien he creado un engendro, un poco de aquí, un pega de allá) un cwm, con la información del STEVE_MARS, etc. No tengo ni idea de si funciona o no. Alguna idea de cómo probarlo?
- Creo un uptscript, en el que únicamente carga el img en memoria y lo escribe en la flash con movi c.

Ejecuto el uptscript ( vol - )+(power), se ejecuta finaliza y reboot.

No pasa nada, Si intento (vol -) + power, todo sigue igual.

He clonado un par de git (repositorios de código fuente) de versiones de uboot, el código en C de movi, no hace referencia a ningún parámetro c. Funciona movi c?
Preguntas:
- Funciona el cwm generado? como comprobarlo?
-Se ha grabado la img en la emmc? como comprobarlo?

Chicos, son más preguntas que respuestas, pero hay que ir tirando del hilo.

No tengo ahora los link de los sitios, etc., pero si alguien esta interesado que lo comente y los pongo.:-)

beachsun
12/08/13, 11:09:49
No pasa nada, Si intento (vol -) + power, todo sigue igual.
En otro Hilo Steve dijo que para lanzar el recovery era (+)+Power...

-Se ha grabado la img en la emmc? como comprobarlo?
Por el momento solo tengo respuesta a esto.
En otro hile deje un script, que por otra parte estoy seguro que puedes hacer tu mismo, para leer la particion C y guardarla en la mSD a partir del Giga. Luego lo recuperas con un DD y compara con lo que has flasheado.

cpro
12/08/13, 11:43:03
El código de área "c" (y los otros) debe de ser propio del u-boot que preparan los de urbetter para la S1101, aunque imagino que lo extenderán a sus otras placas con chip samsung.

Antes de copiar nada en la eMMC yo habría probado a copiar ese área de memoria para ver si contenía algo o no, que parece que sí a la vista de que recupera las muertas, salvo que arranque desde la SD; o tal vez es un código que indica que si no encuentra nada intente arrancar desde la SD. Aún no hemos averiguado nada de esto.

El código base que yo utilizaría para empezar a portar ese CWM sería la versión para "manta", que creo que es la base de la Voyo. Pero antes de nada, intentaría enterarme bien de qué contiene la memoria y cómo usar el u-boot, que es la herramienta básica para gestionar lo que ahora tenemos.

jolocotroco
12/08/13, 17:27:50
Este utscript es para arrancar desde la SD, en dropad fue muy util para el desarrollo pudiendo testear rom, recovery y kernel, desde la SD, sin necesidad de flashear.

setenv bootargs root=/dev/mmcblk1p2 rootfstype=ext4 init=/init console=ttySAC2,115200
utsetbacklight 0
fatload mmc 1 0x40008000 zImage
bootm 40008000
uttext 20 20 "Failed. Please check the zImage."
sleep 10
reset

Para arrancar CWM desde la sd necesitais crear 2 particiones, la primera en fat y una segunda en ext4. En la particion fat copiar el zImage y este utscript, en la ext4 copiar el recovery, ya desempaquetado. Ejecutar power+vol- para el arranque.

STEVE_MARS
12/08/13, 18:19:48
Quiero agradecer especialmente las aportaciones que jolocotroco hace para el desarollo del tablet Voyo A15.
Él es uno de los mejores desarroladores para la gama de tablets dropad A8, C8, y otras de Urbetter, y sus conocimientos sobre este sistema de flasheo son inmensos.
Además, no tiene nuestro tablet, por lo que el esfuerzo es doble :aplausos:.

beachsun
12/08/13, 19:36:09
Je, je, no me equivoque de mucho : http://www.htcmania.com/showpost.php?p=9650714&postcount=20

STEVE_MARS
12/08/13, 20:28:07
Pues si señor, ibas encaminado :ok:

STEVE_MARS
13/08/13, 13:05:00
Este utscript es para arrancar desde la SD, en dropad fue muy util para el desarrollo pudiendo testear rom, recovery y kernel, desde la SD, sin necesidad de flashear.

setenv bootargs root=/dev/mmcblk1p2 rootfstype=ext4 init=/init console=ttySAC2,115200
utsetbacklight 0
fatload mmc 1 0x40008000 zImage
bootm 40008000
uttext 20 20 "Failed. Please check the zImage."
sleep 10
reset

Para arrancar CWM desde la sd necesitais crear 2 particiones, la primera en fat y una segunda en ext4. En la particion fat copiar el zImage y este utscript, en la ext4 copiar el recovery, ya desempaquetado. Ejecutar power+vol- para el arranque.

Por lo tanto, si en la ext4 meto un nuevo system.img, puedo testear la rom sin necesidad de flashearla, ¿correcto?
Y si modifico el kernel, en la fat pongo el nuevo zImage e igual.
Interesante...

jolocotroco
14/08/13, 00:06:26
Para testear una rom desde la mSD hay que crear cuatro particiones, ejemplo para SD 4gb,
1ª particion extsd, de 2gb fat,
2ª " rootfs, de 512mb ext4,
3ª " data, de 2gb ext4,
4ª " cache, con el resto ext4

Desempaqueta el ramdisk.img y el system.img, copias todos los archivos y carpetas de system en la carpeta system del ramdisk, ahora copia ese ramdisk en la particion rootfs.
Tambien necesitas ajustar la rom para que monte correctamente las unidades. En el ramdisk hay que modificar el fstab.smdk5250

/dev/block/mmcblk0p2 /system ext4 ro wait
/dev/block/mmcblk0p4 /cache ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait
/dev/block/mmcblk0p3 /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait

Eliminas el montaje de system, ahora esta en el rootfs, y cambias data y cache para que lo monte de la mSD, queda asi:

/dev/block/mmcblk1p4 /cache ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait
/dev/block/mmcblk1p3 /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait

teredur
14/08/13, 01:37:16
Gracias a Jolocotroco.
He seguido sus instrucciones y hay que empezar a trabajar y depurar errores.
Basado en el cwm de la T7, he ajustado algunos ficheros:
fstab y default.prod.

Creo que voy a tener muchas preguntas....

STEVE_MARS
14/08/13, 11:16:34
¿¿¿¿ Pero que ven mis ojos ????
¿¿¿¿ Es eso un Recovery en nuestras Voyo ????

¡¡¡¡¡¡ Oleeeeeee :platano:¡¡¡¡¡¡¡

beachsun
14/08/13, 11:53:21
Grande Teredur, eso tiene una pintazaaaa!!!

teredur
15/08/13, 01:09:49
He ido solucionando errores, como era de esperar tengo algunas dudas/errores:

- No funciona el touch, funcionan los tres botones físicos, pero no los virtuales.
- Al realizar un backup, salva /system /cache /data. El log indica un error al no encontrar las particiones /boot y /recovery.

Me gustaría saber si algún usuario de la T7, que se suponen tienen el mismo tipo de boot que la voyo, ha comprobado que el backup contiene el boot completo.

Podemos direccionar el boot a mmcblk0boot0, pero nos seguirían faltando misc,logo,etc.

STEVE_MARS
15/08/13, 08:35:50
Sobre el touch, si no tenemos el driver original (que suele ir en el simply recovery y que Voyo no lo ha hecho), olvidate y no te compliques. Muchos dispositivos (entre ellos la Onda V972) funcionan con las teclas vol+ y vol -.
Mas adelante, si queremos, nos metemos con TWRP. Este si incluye drivers para el tactil.
Sobre el backup pregunto en el foro de Slatedroid, a ver que nos dicen.
¿Has podido probar si instala una ROM en .zip?

jolocotroco
16/08/13, 01:13:55
@teredur
La forma de poder hacer un backup y flashear en mmcblk0 es añadiendo un script o con algun zip flasheable,

ejemplo para hacer dump:
dd if=/dev/block/mmcblk0 of=/mnt/extsd ibs= skip= count=

ejemplo para flashear
dd if=/tmp/kernel of=/dev/block/mmcblk0 bs= seek=

Hay que completar esos ejemplos con los pararametros correctos hacer backup y volver a flashear, ramdisk, kernel y recovery, si todo es ok vamos por buen camino.
El misc, logo, bootres, bootloader, no son necesarios para el recovery.
Te puedes valer de tu propia informacion: http://www.htcmania.com/showpost.php?p=9781603&postcount=243

Estoy en proceso de construccion de voyo- cm-10.1, en principio solo por el CWM, necesito completar los script con los valores correctos y esto solo lo puede hacer alguien que tenga la tableta.

teredur
16/08/13, 02:25:27
¿Has podido probar si instala una ROM en .zip?

Me he liado probando el CWM 6, pero sin compilarlo genera errores a la hora de realizar los backup.

Con el de la T7, ya tengo acceso a la sdcard y a la external_sd. Y realiza los backup correctamente ( solo system,data,cache). Hay algun detalle que pulir, pero ya mañana probare a instalarlo.

EL zip debe contener la estructura + los archivos, no?
nunca he creado un update.zip.:rolleyes:

El compañero cpro a completado la informacion, que curro.:dios:

http://www.htcmania.com/showpost.php?p=9854408&postcount=245

Creo que con estos valores se podrán crear los script que comenta jolocotroco.

No creo que falten voluntarios para robar.:silbando:

teredur
16/08/13, 14:00:06
Hola.

Como ya habia intentado anteriormente escribir el el recovery. me he aventurado a instalar el recovery, con este utscript
fatload mmc 1 0x41000000 set_bootargs
source 0x41000000
utupdateenv
utsetbacklight 1
uttext 20 30 "**********************************************"
uttext 20 40 " Instalando Recovery "
uttext 20 50 "**********************************************"
uttext 20 60 " "

sleep 1000
fatload mmc 1 0x40008000 ramdisk-recovery-uboot.img
uttext 20 160 "* Leido ramdisk-recovery-uboot.img. *"
sleep 2000
uttext 20 170 "* Comenzando a escribir en emmc. *"
movi w c 0 0x40008000 300000
uttext 20 180 "* Finalizada la escritura. *"
sleep 5000
uttext 20 200 "Apagando...."

utsetbacklight 0
shut 1
reset
La imagen la he creado como un ramdisk con mkimagem

mkimage -A arm -O linux -T ramdisk -n "recovery voyo team" -a 0x84e00 -d uramdisk.cpio.gz ramdisk-recovery-uboot.img
La dirección 0x84e00 es la del kernel (zimagen) según hemos ido destripando el mmcblk0

No funciona ni con vol - (+) power, ni vol + (+) power.

He vuelto a extraer los 9 sectores iniciales del mmcblk0 y encuentro la img grabada a partir de la dirección 0x1000000.

Podeis extraer esta zona y ver que contienen en la original.

Alguna idea de porque no arranca.

Ya tenemos las direcciones del kernel(zimagen) 0x84e00, ramdisk 0x684e00 y el recovery. 0x1000000
Nos faltan los tamaños. En el script utscript original ya indicaba para ramdisk y recovery 0x200000, +- 2MB
Y para el kernel el maximo hasta el siguiente bloque de 0x84e00...0x684dff, (0x684e00-1) en total 0x5fffff, +- 6 MB

Opiniones?

jolocotroco
16/08/13, 17:14:23
Prueba asi:
mkimage -A arm -O linux -T ramdisk -a 0x40008000 -n "ramdisk" -d ramdisk.cpio.gz ramdisk-recovery-uboot.img

teredur
17/08/13, 01:51:22
Bueno, no consigo que arranque el recovery desde el emmc.
Tal como ha comentado jolocotroco, he generado la imagen del ramdisk-recovery tanto en las direcciones para el kernel, 0x84e00,0x40008000 y 0x40800000. En ninguna de ellas arranca el recovery.
Le he añadido la opcion -C none al comando del mkimage, para generar una imagen sin cmpresion, pero sin resultados.
Alguna idea?
He probado a arrancar desde adb reboot recovery, resultado borrado de las particiones data y cache.

Pero como tenia un backup del sistema hecho con la sd recovery, he restaurado solo cache y data y a funcionar, todo como estaba (apps, cuentas, escritorios).

Creo que puede ser util a si que os deja dos zip con el contenido de cada particion:
Pasos:
Formatear sd con una primera particion en vfat con el mayor tamaño posible menos 300 MB.
Añadir una segunda particion en ext4 con el tamaño restante, minimo unos 200 MB.
Descomprimir part1.zip en la particion1(vfat)
Descomprimir patt2.zip en la particion2(ext4)
Poner la sd en la tablet, iniciar con vol - (+) power.

Es una adaptacion muy temprana en fase de testeo. Aunque no instalas nada en la tablet, puede formatear particiones, etc.
ES UNA VERSION ALPHA, NO ME HAGO RESPONSABLE DE LOS POSIBLE ERRORES O FALLOS.

STEVE_MARS puedes probar los zip?.
He probado el backup y restore, en varias ocasiones y sin problemas.

teredur
17/08/13, 01:57:19
@teredur
La forma de poder hacer un backup y flashear en mmcblk0 es añadiendo un script o con algun zip flasheable,

ejemplo para hacer dump:
dd if=/dev/block/mmcblk0 of=/mnt/extsd ibs= skip= count=

ejemplo para flashear
dd if=/tmp/kernel of=/dev/block/mmcblk0 bs= seek=

Hay que completar esos ejemplos con los pararametros correctos hacer backup y volver a flashear, ramdisk, kernel y recovery, si todo es ok vamos por buen camino.
El misc, logo, bootres, bootloader, no son necesarios para el recovery.
Te puedes valer de tu propia informacion: http://www.htcmania.com/showpost.php?p=9781603&postcount=243

Estoy en proceso de construccion de voyo- cm-10.1, en principio solo por el CWM, necesito completar los script con los valores correctos y esto solo lo puede hacer alguien que tenga la tableta.

Preparados 2 script en bash, se deben ejecutar como root (sudo).
Salvan el kernel,rfs y recovery.
He comprobado que son identicos a los previos.

extractor.sh
#!/bin/bash
dd if=/dev/block/mmcblk0 of=/extsd/kernel.bck bs=1 count=6291455 skip=544256
dd if=/dev/block/mmcblk0 of=/extsd/rfs.bck bs=1 count=2097152 skip=6835712
dd if=/dev/block/mmcblk0 of=/extsd/recovery.bck bs=1 count=2097152 skip=16777216returner.sh
#!/bin/bash
dd of=/dev/block/mmcblk0 if=/extsd/kernel.bck bs=1 count=6291455 seek=544256
dd of=/dev/block/mmcblk0 if=/extsd/rfs.bck bs=1 count=2097152 seek=6835712
dd of=/dev/block/mmcblk0 if=/extsd/recovery.bck bs=1 count=2097152 seek=16777216Como integramos esto en el CWM?

jolocotroco
17/08/13, 13:07:31
Prueba a flashear el ramdisk en la direccion del recovery, power+vol- si arranca android, algo esta mal en el recovery-ramdisk generado, si no arranca nos queda la alternativa de arrancar desde la mSD. El metodo de arranque con las particiones es comodo para el desarrollo, pero no para el usuario final, seria interesante probar si arranca el recovery cargando todo desde la fat:

fatload mmc 1 41000000 recovery-ramdisk-uboot.img
fatload mmc 1 40008000 zImage
setenv bootargs root=/dev/ram0 init=/init console=ttySAC2,115200
bootm 40008000 41000000
uttext 20 200 "Failed. Please check the recovery."
sleep 10
reset

Buen curro te as dao con los script, es un trabajo muy importante y necesario. solo apuntar un par de cosas casi sin importancia:

kernel.bck count=6291455 lo correcto es 6291456 en hex = 600000
recovery.bck count=2097152 lo correcto es 3145728 en hex = 300000

Para integrar esto en CWM, solo tiene sentido el backup de /system /data y /cache, del resto ya tenemos copia en la rom que flasheamos. Para flashear ramdisk y kernel se añade un script en el zip flasheable, podre subir una muestra para flashear una rom, antes es necesario probar el arranque del recovery.

STEVE_MARS
17/08/13, 18:02:28
Perdonadme, pero el lunes abrimos una tienda y estamos últimando los detalles.
A partir de la semana que viene me pongo al día.

teredur
18/08/13, 03:24:44
Gracias a los consejos de jolocotroco. Se ha simplificado la creacion de la sd con CWM.

Unicamente formatear una sd con vfat, desempaquetar el zip adjunto:
-utscript
-zimage
-ramdisk-recovery-uboot.img
iniciar con vol - (+) power y tendremos el CWM.

vuelvo a indicar que se trata de una versión en depuración, por lo que pueden existir errores.
Personalmente he probado backup y restore, tanto de la sd interna como externa.

STEVE_MARS
18/08/13, 10:13:54
Hola, teredur
Muuuuuchas gracias por el curro, de veras :aplausos:.
Acabo de probarlo pero no arranca en CWM.
Cuando te refieres a formatear en vfat, ¿te refieres a fat, o a fat32 formateadas en Windows, o al formato vfat de Linux con mkfs.vfat?

teredur
18/08/13, 10:54:57
Vfat en linux.

Pero debería dar lo mismo.

Comprobare de nuevo los archivos,etc. Pero seria interesante que alguien mas probara. No vaya a ser que con tantas modificaciones en la memoria de mi tablet. Este algo especialita.

Ni se las veces que he ejecutado el utscript, con movi w c.

cpro
18/08/13, 11:44:25
Vfat en linux.

Pero debería dar lo mismo.

Comprobare de nuevo los archivos,etc. Pero seria interesante que alguien mas probara. No vaya a ser que con tantas modificaciones en la memoria de mi tablet. Este algo especialita.

Ni se las veces que he ejecutado el utscript, con movi w c.

No he probado cómo funciona pero arrancar, arranca. :ok:

STEVE_MARS
18/08/13, 12:56:17
Pues he formateado la SD en vfat, en fat16 y en fat32 y a mi no me arranca.
¿Que estoy haciendo mal? :cry:

EDITO: Ya esta, formateada con cualquier formato funciona. El problema era la SD, manda eggs.

cpro
19/08/13, 12:17:52
Llevo varios días intentando arrancar un sistema sólo desde la SD, combinando SD y eMMC... y siempre me daba de bruces con que en la pantalla de desbloqueo, al tocar la pantalla, aparecía la barra de estado y ahí se quedaba. Al final, me ha dado por probar a meter los parámetros del kernel y... tachán: ya funciona!!!!!!!

Cambiamos la línea de "bootargs" por:
setenv bootargs root=/dev/ram0 init=/init ddr=33 tmu=no macID= dock= tp=ft54 umsvor= umspct= battery=W122 plug= bltype=p utmodel=s1101 lcd=b116h came=500W_D_V01 codec=wm8978 bt=gb86210 wifi=gb86210 gps=no eth=dongle fm=no gsmd=no nfc= ls= motor=no lcdRGB= oem=

No he llegado a probar si todos son necesarios o no, pero tampoco creo que merezca la pena ;-)
Hay otros parámetros que aparecen en los ficheros de configuración que, en caso de que algo no funcionara, se podría probar a añadir.
baudrate=115200 bootcmd=setdrV bootdelay=1 serialno=ExynosMID pcb= man=

Usando esos parámetros, teredur, funciona el táctil en el recovery :ok:
Y si no quieres cargar el núcleo, puedes tomarlo directamente de la eMMC:
movi r k 0 40008000

knifeboy
19/08/13, 18:07:20
Estáis hechos unos cracks!!!

STEVE_MARS
19/08/13, 22:42:38
Tengo una gran duda, me da la impresion que no podemos flashear una ROM desde el Recovery en formato .zip, es decir con estructura META-INF, boot.img y system.
He creado el boot.img con el ramdisk y el kernel, y en el update.script no consigo flashear el system, data y boot.
He probado multitud de variantes, la ultima:

format("ext4", "EMMC", "/dev/block/platform/dw_mmc.0/mmcblk0p2");
mount("ext4", "EMMC", "/dev/block/platform/dw_mmc.0/mmcblk0p3", "/data");
mount("ext4", "EMMC", "/dev/block/platform/dw_mmc.0/mmcblk0p2", "/system");

La primera fue dev/block/mmc... y tampoco, no consigue montar las unidades y por lo tanto no instala nada.

Y sobre el boot.img, he probado en mmcblk0 y varias mas pero tampoco. De hecho en una prueba he brickeado el tablet, jejejejee.

¿Es posible que esta arquitectura no lo permita?

jolocotroco
20/08/13, 00:39:08
Claro que si lo permite. El trabajo de teredur localizando el ramdisk y el kernel es precisamente para eso.
He creado un dispositivo para cyanogenmod, ya he construido de las fuentes cm-10.1 y tenemos un recovery CWM completamente funcional y compatible ya que es para android 4.2.2, faltan unas pocas pruebas y en proximos dias estara disponible.
Tambien he construido una rom cm-10.1 en formato zip flasheable, es una beta, le faltan muchas cosas, posiblemente ni arranque, pero ese zip es perfecto como base.

cpro
20/08/13, 01:23:47
La primera fue dev/block/mmc... y tampoco, no consigue montar las unidades y por lo tanto no instala nada.


No sé muy bien de qué hablas pero, si estás utilizando el ramdisk con el "fstab.smdk5250" modificado, las unidades ya están montadas.

STEVE_MARS
20/08/13, 02:44:41
Claro que si lo permite. El trabajo de teredur localizando el ramdisk y el kernel es precisamente para eso.
He creado un dispositivo para cyanogenmod, ya he construido de las fuentes cm-10.1 y tenemos un recovery CWM completamente funcional y compatible ya que es para android 4.2.2, faltan unas pocas pruebas y en proximos dias estara disponible.
Tambien he construido una rom cm-10.1 en formato zip flasheable, es una beta, le faltan muchas cosas, posiblemente ni arranque, pero ese zip es perfecto como base.

Magnifico, espero que lo publiques para echarle un vistazo.:aplausos:
Yo he estado tocando un poco CM 10.2, equivalente a JB 4.3, pero estoy en una fase muuuuy temprana.
Gracias.

Adr01
25/08/13, 23:08:28
Magnifico, espero que lo publiques para echarle un vistazo.:aplausos:
Yo he estado tocando un poco CM 10.2, equivalente a JB 4.3, pero estoy en una fase muuuuy temprana.
Gracias.
Tanta emoción!
CWM, CM10.1, 4.3. : D
Amazing! Gracias chicos tanto por su gran trabajo.

Una cuestión curiosidad: la CPU es el mismo que el Nexus 10, ¿cuáles son las diferencias registradas hardware? Chipset WiFi y resolución de la pantalla?
Al igual que lo son los golpes a no ser capaz de utilizar el software creado para el Nexus 10?

jolocotroco
01/09/13, 11:06:43
@Adr01
Voyo no es un clon de nexus10, solo tiene en comun cpu, gpu nada mas.