|
||
|
![]() |
![]() |
ROMs y desarrollo Samsung Galaxy S I9000 ROMs y desarrollo Samsung Galaxy S I9000 |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Como crear un updater-script
A partir del Clockworkmod recovery v3.0 desaparece la compatibilidad con los update-script tradicionales en formato AMEND, que ya fue depreciado por Android en Donut 1.6 y solo es compatible con updater-script en formato EDIFY para solventar algunas limitaciones con el formato AMEND.
A diferencia de los update-script, los updater-script necesitan un binario llamado update-binary para poder ejecutarse. Éste se obtiene compilando desde las fuentes, pero adjunto una plantilla de la carpeta META-INF con un update-binary extraído del zip usado en el kernel advanced voodoo v666, así solo necesitamos acompañarlo de nuestro updater-script. Para saber más sobre cómo funciona un update-script pásate por aquí, aunque la sintaxis difiere entre amend y edify, utilizan la misma lógica al menos en los comandos más básicos y comunes http://www.htcmania.com/showthread.php?t=156478
Comandos básicosHTC Android Kitchen http://forum.xda-developers.com/showthread.php?t=633246 Los updater-script permiten introducir comentarios # , tenlo en cuenta a la hora de mantener orden y transparencia en tu código. Imprimir mensaje en pantalla Barra de progreso (show progress)
Montar unidades Al contrario que con otros dispositivos que funcionan con MTD, por ahora nosotros necesitamos montarlas un poco más "artesanalmente". Desmontar unidades Es recomendable desmontar las unidades cuando terminemos de trabajar en ellas
Copiar archivos a la memoria interna Copiar archivos contenidos dentro de la carpeta "system" del update.zip a /system/app Borrar archivos de la memoria interna
Borrar carpetas de la memoria interna Formatear Symlinks Permisos
Ejecutar un archivo (binario o script) Ejecutando desde la raíz del update.zip Ejemplo: Flashear un kernel con redbend_ua (asumiendo que tenemos redbend_ua y zImage dentro de /updates)
__________________
________ ★[CWMODIN] Flashea y personaliza ODIN stock roms desde el recovery http://ow.ly/kbEwt★[Universal Flasher Tool] Flashea temas metamorph y archivos desde el recovery con autobackup http://goo.gl/Gxucm Última edición por intronauta Día 22/01/11 a las 18:11:49. |
Los siguientes 23 usuarios han agradecido a intronauta su comentario: | ||
|
#3
|
||||
|
||||
Bueno, por hoy lo dejo que me tengo que pirar. Queda pendiente saber como desmontar y formatear una partición. Es de locos. He probado con MTD y BLM y nada, que no hay manera :
Tampoco me ha dado tiempo a probar si dbdata es DATADATA como en amend. Si alguno podéis ir probando y dais con ello os habréis ganado el cielo, que lo sepais... ![]()
__________________
________ ★[CWMODIN] Flashea y personaliza ODIN stock roms desde el recovery http://ow.ly/kbEwt★[Universal Flasher Tool] Flashea temas metamorph y archivos desde el recovery con autobackup http://goo.gl/Gxucm |
#5
|
||||
|
||||
Muuuuchas gracais por el tuto jefes!
|
#6
|
||||
|
||||
Madre mía, intronauta, eres un máquina!
Asias!!! ![]() |
#7
|
||||
|
||||
Enorme!!!!
![]() ![]() Hago un copy&paste de un comentario en otro hilo que aquí también considero esta bien ![]() AMEND es el formato para los update-script que se lanzó con Android 1.0 para funcionar desde el recovery y tiene una sintaxis determinada bastante básica. Con Donut (android 1.6) se depreció en favor del formato EDIFY que necesitaba de un update-binary y un update-script con una sintaxis parecida a la utilizada en amend pero con algunas funciones avanzadas. Los custom recovery han mantenido la compatibilidad con Amend y Edify pero parece que esto va a cambiar. El primero ha sido el CWM recovery eliminando la compatibilidad con los update-script tradicionales (amend) y ya veremos que pasa con el de amon_ra (que nos da igual porque no hay para galaxy).
Creo que se han aventurado demasiado, ya que practicamente nadie trabaja con EDIFY al menos en galaxy, supongo que AMEND es más sencillo y cubre las necesidades habituales para cualquier cocinero. Pero por ejemplo las cyanogenmod ya trabajan exclusivamente con EDIFY. Será cuestión de poco tiempo el que todos los cocineros actualicen toda los paquetes al nuevo formato. Mientras tocará esperar. ![]() |
#8
|
||||
|
||||
Muchas gracias makina, esto nos va a ir muy bien para montar temas tambien.
|
#9
|
||||
|
||||
He resubido el archivo META-INF con el update-binary incluido en el kernel advanced voodoo v666 ya que el primero lo extraje de un zip de HTC y diferían en tamaño. También he añadido algunos comandos más.
Deseando que las cocinas de xda empiecen a trabajar con edify para clarificar algunas cosas, especialmente las custom rom.
__________________
________ ★[CWMODIN] Flashea y personaliza ODIN stock roms desde el recovery http://ow.ly/kbEwt★[Universal Flasher Tool] Flashea temas metamorph y archivos desde el recovery con autobackup http://goo.gl/Gxucm |
Gracias de parte de: | ||
#11
|
||||
|
||||
Pues mientras no salga nada nuevo ya está terminado.
He pasado un update-script a updater-script de una rom completa y aunque ha sido un poco coñazo :P funciona todo, así que lo doy por finiquitado. Por si alguien está interesado, también he probado con la herramienta amend2edify y funciona de P.M, prácticamente no hay que tocar nada, solo falla cuando hay líneas en blanco generando una línea de error que toca quitar a mano, pero nada grave.
__________________
________ ★[CWMODIN] Flashea y personaliza ODIN stock roms desde el recovery http://ow.ly/kbEwt★[Universal Flasher Tool] Flashea temas metamorph y archivos desde el recovery con autobackup http://goo.gl/Gxucm |
#12
|
||||
|
||||
![]()
Hola!
genial tuto ![]() Ahora mismo quiero flash un AOSP compilado para la HTC Desire, sin embargo me he dado cuenta que si quiero usar el updater-script necesito el update-binary. Ademas me he dado cuenta que existe un file metadata dentro de META-INF/com/android Quisiera saber si el update-binary es indistinto de la rom que queramos flasher o si es posible obtenerla desde alguna carpeta luego de que las fuentes AOSP han sido compiladas. Gracias ! |
#13
|
||||
|
||||
Hola intronauta muy buen tutorial, más o menos me he enterado pero al intentar meterlo por CWM solamente consigo que salga el mensaje status 6.
Quiero meter una aplicación en system/app para hacer una prueba. El apk lo metí en una /system/app del zip. El update-script es el que cogí de tu post. El updater-script lo he escrito así con el notepad++: run_program("/sbin/mount", "/dev/block/stl9", "/system"); package_extract_dir("system", "/system/app"); run_program("/sbin/umount", "/dev/block/stl9"); ui_print("Completado"); No sé donde habré fallado. Gracias y saludos ;) |
#14
|
||||
|
||||
Buen tutorial, gracias
Enviado desde mi GT-N7000 usando Tapatalk 2 |
#15
|
||||
|
||||
Hola estoy intentando apreder como va todo esto que no tengo ni idea. ¿Me podeis responder una pregunta? ¿para que sirve el comando "assert" que ponen delante de otros comandos?
Salu2 Última edición por limeraw139 Día 22/01/13 a las 21:49:21. |
#16
|
||||
|
||||
Código:
assert(getprop("ro.product.device") == "galaxys" || getprop("ro.build.product") == "galaxys" || getprop("ro.product.device") == "galaxysmtd" || getprop("ro.build.product") == "galaxysmtd" || getprop("ro.product.device") == "GT-I9000" || getprop("ro.build.product") == "GT-I9000" || getprop("ro.product.device") == "GT-I9000M" || getprop("ro.build.product") == "GT-I9000M" || getprop("ro.product.device") == "GT-I9000T" || getprop("ro.build.product") == "GT-I9000T"); Es un condicional. Si no existe, entonces muestra error. Corregirme si me equivoco.
__________________
|
#17
|
||||
|
||||
Lo dices por esto?:
Código:
assert(getprop("ro.product.device") == "galaxys" || getprop("ro.build.product") == "galaxys" || getprop("ro.product.device") == "galaxysmtd" || getprop("ro.build.product") == "galaxysmtd" || getprop("ro.product.device") == "GT-I9000" || getprop("ro.build.product") == "GT-I9000" || getprop("ro.product.device") == "GT-I9000M" || getprop("ro.build.product") == "GT-I9000M" || getprop("ro.product.device") == "GT-I9000T" || getprop("ro.build.product") == "GT-I9000T"); Es un condicional. Si no existe, entonces muestra error. Corregirme si me equivoco. ![]() assert(package_extract_file("recovery.img", "/tmp/recovery.img") Supongo que aquí hará lo mismo. Muchísimas gracias por tu respuesta. Un saludo |
#19
|
||||
|
||||
![]()
Hola espectacular foro.... Necesito un aporte de ustedes q veo q estan empapado en el tema. De casualidad ustedes no saben los paso para cocinar una actualización para huawei u8850 vision estoy cansado de buscar una estable y no encuentro... Porfa si tienen algun aporte les agradezco.. E buscado hasta en foros rusos y chino y ninguna es estable.
|
|
#20
|
||||
|
||||
Todo esto esta muy bien, pero me suena a chino y se me escapa de las manos.
![]() |
![]() |
![]() |
||||||
|