ROMs y desarrollo Samsung Galaxy S I9000 ROMs y desarrollo Samsung Galaxy S I9000


 
Herramientas
  #1  
Viejo 09/01/11, 14:20:01
Avatar de intronauta
intronauta intronauta no está en línea
Monguer.
Mensajes: 5,345
Compra y venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone
Mencionado: 1019 comentarios
Tagged: 4 hilos
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


  • Herramientas para pasar automáticamente de AMEND a EDIFY:
HTC Android Kitchen http://forum.xda-developers.com/showthread.php?t=633246
Amend2edify: http://forum.xda-developers.com/show...php?p=10411403



Comandos básicos

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

Código:
ui_print("HOLA MUNDO!");



Barra de progreso (show progress)

Código:
show_progress(porción de la barra, frecuencia);


Una vez más este comando me trae loco, he visto dos formatos diferentes, ambos válidos:


Código:
show_progress(0.500000, 40);
Código:
show_progress(1, 15);
Montar unidades

Al contrario que con otros dispositivos que funcionan con MTD, por ahora nosotros necesitamos montarlas un poco más "artesanalmente".
Código:
run_program("/sbin/mount", "/dev/block/stl9", "/system");
run_program("/sbin/mount", "/dev/block/stl10", "/dbdata");
run_program("/sbin/mount", "/dev/block/stl11", "/cache");
run_program("/sbin/mount", "/dev/block/mmcblk0p2", "/data");
run_program("/sbin/mount", "/dev/block/mmcblk0p1", "/sdcard");
Desmontar unidades

Es recomendable desmontar las unidades cuando terminemos de trabajar en ellas
Código:
run_program("/sbin/umount", "/dev/block/stl9");
run_program("/sbin/umount", "/dev/block/stl10");
run_program("/sbin/umount", "/dev/block/stl11");
run_program("/sbin/umount", "/dev/block/mmcblk0p2");
run_program("/sbin/umount", "/dev/block/mmcblk0p1");


Copiar archivos a la memoria interna

Copiar archivos contenidos dentro de la carpeta "system" del update.zip a /system/app

Código:
package_extract_dir("system", "/system/app");


Borrar archivos de la memoria interna

Código:
delete("/system/app/Stk.apk");
delete("/system/app/ADWLauncher.apk", "/system/app/Browser.apk", "/system/app/Calculator.apk", "/system/app/Calendar.apk", ...);



Borrar carpetas de la memoria interna

Código:
delete_recursive("/data/dalvik-cache");

Formatear

El comando format tradicionalmente funciona con sistemas MTD -por ahora no válido para el galaxy-, pero podemos utilizar un sistema equivalente eliminando recursivamente las carpetas contenedoras de cada unidad:

Código:
delete_recursive("/system");
delete_recursive("/dbdata");
delete_recursive("/cache");
delete_recursive("/data");
delete_recursive("/sdcard");



Symlinks

Código:
symlink("origen","destino");
Permisos

Código:
set_perm(uid, gid, permisos, "ruta")
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
Código:
set_perm_recursive(uid, gid, permisos_directorio, permisos_archivos, "ruta")
set_perm_recursive(0, 2000, 0755, 0644, "/system");


Ejecutar un archivo (binario o script)

Ejecutando desde la raíz del update.zip

Código:
run_program("script.sh");


Ejecutando desde la memoria interna. Debe copiarse previamente a /tmp
.

Código:
 run_program("/tmp/script.sh")
 run_program("/tmp/script.sh", "argumento1", "argumento2",...)
Ejemplo: Flashear un kernel con redbend_ua (asumiendo que tenemos redbend_ua y zImage dentro de /updates)

Código:
package_extract_dir("updates", "/tmp/updates");
set_perm(0, 0, 0755, "/tmp/updates/redbend_ua");
run_program("/tmp/updates/redbend_ua", "restore", "/tmp/updates/zImage", "/dev/block/bml7");
Archivos Adjuntos
Tipo de Archivo: zip META-INF.zip (153.1 KB, 479 visitas)

Última edición por intronauta Día 22/01/11 a las 18:11:49
Responder Con Cita
Los siguientes 23 usuarios han agradecido a intronauta su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 09/01/11, 14:33:26
Avatar de vvaleta
vvaleta vvaleta no está en línea
Colaborador/a
Mensajes: 31,736
Compra y venta: (66)
 
Fecha de registro: jul 2009
Localización: zaragoza
Mensajes: 31,736
Modelo de smartphone: Xiaomi 12 Pro
Versión de ROM: La que mejor va...
Tu operador: Orange
Mencionado: 1110 comentarios
Tagged: 24 hilos
Pal hilo de tutos de cabeza...

Gracias trom.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 09/01/11, 16:09:14
Avatar de intronauta
intronauta intronauta no está en línea
Monguer.
Mensajes: 5,345
Compra y venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone
Mencionado: 1019 comentarios
Tagged: 4 hilos
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...
Responder Con Cita
  #4  
Viejo 09/01/11, 17:17:43
Avatar de vvaleta
vvaleta vvaleta no está en línea
Colaborador/a
Mensajes: 31,736
Compra y venta: (66)
 
Fecha de registro: jul 2009
Localización: zaragoza
Mensajes: 31,736
Modelo de smartphone: Xiaomi 12 Pro
Versión de ROM: La que mejor va...
Tu operador: Orange
Mencionado: 1110 comentarios
Tagged: 24 hilos
Ya tienes los tags puestos tio.
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 09/01/11, 22:58:58
Avatar de mtm
mtm mtm no está en línea
Miembro del foro
Mensajes: 189
 
Fecha de registro: oct 2008
Localización: Spain
Mensajes: 189
Modelo de smartphone: El último
Versión de ROM: Según me levante
Mencionado: 2 comentarios
Tagged: 0 hilos
Muuuuchas gracais por el tuto jefes!
Responder Con Cita
  #6  
Viejo 09/01/11, 23:04:44
Avatar de usuario_87061
usuario_87061
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
Madre mía, intronauta, eres un máquina!

Asias!!!
Responder Con Cita
  #7  
Viejo 09/01/11, 23:19:35
Avatar de Lorse
Lorse
Usuario invitado
Mensajes: n/a
 
Mensajes: n/a
Mencionado: comentarios
Tagged: hilos
Enorme!!!!

Hago un copy&paste de un comentario en otro hilo que aquí también considero esta bien


Cita:
Originalmente Escrito por intronauta Ver Mensaje
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.
salu2
Responder Con Cita
  #8  
Viejo 09/01/11, 23:47:50
Avatar de tiggerbcn
tiggerbcn tiggerbcn está en línea ahora
Colaborador/a
Mensajes: 15,081
 
Fecha de registro: oct 2009
Localización: en mi casa
Mensajes: 15,081
Versión de ROM: La que pille y me guste
Tu operador: Vodafone
Mencionado: 119 comentarios
Tagged: 4 hilos
Muchas gracias makina, esto nos va a ir muy bien para montar temas tambien.
Responder Con Cita
  #9  
Viejo 10/01/11, 00:01:26
Avatar de intronauta
intronauta intronauta no está en línea
Monguer.
Mensajes: 5,345
Compra y venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone
Mencionado: 1019 comentarios
Tagged: 4 hilos
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.
Responder Con Cita
Gracias de parte de:
  #10  
Viejo 10/01/11, 00:55:27
Avatar de vvaleta
vvaleta vvaleta no está en línea
Colaborador/a
Mensajes: 31,736
Compra y venta: (66)
 
Fecha de registro: jul 2009
Localización: zaragoza
Mensajes: 31,736
Modelo de smartphone: Xiaomi 12 Pro
Versión de ROM: La que mejor va...
Tu operador: Orange
Mencionado: 1110 comentarios
Tagged: 24 hilos
Habrá que hacer algo, para que todo esto no caiga en el olvido.
Responder Con Cita
  #11  
Viejo 12/01/11, 12:33:22
Avatar de intronauta
intronauta intronauta no está en línea
Monguer.
Mensajes: 5,345
Compra y venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone
Mencionado: 1019 comentarios
Tagged: 4 hilos
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.
Responder Con Cita
  #12  
Viejo 08/04/11, 11:43:24
Avatar de jm0077
jm0077 jm0077 no está en línea
Miembro del foro
Mensajes: 37
 
Fecha de registro: feb 2010
Mensajes: 37
Mencionado: 0 comentarios
Tagged: 0 hilos
Exclamation el update-binary es independiente de la custom rom?

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 !
Responder Con Cita
  #13  
Viejo 01/04/12, 17:45:44
Avatar de juanyllo87
juanyllo87 juanyllo87 no está en línea
Usuario muy activo
Mensajes: 673
 
Fecha de registro: mar 2011
Localización: LPGC (España)
Mensajes: 673
Modelo de smartphone: iPhone 13 Pro
Versión de ROM: iOS 15.0.1
Tu operador: Vodafone
Mencionado: 6 comentarios
Tagged: 0 hilos
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 ;)
Responder Con Cita
  #14  
Viejo 03/12/12, 12:24:45
Avatar de ninoroldan
ninoroldan ninoroldan no está en línea
Miembro del foro
Mensajes: 199
 
Fecha de registro: mar 2010
Localización: Argentina
Mensajes: 199
Modelo de smartphone: Samsung galaxy note
Versión de ROM: Oficial alemana + cf-root
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Buen tutorial, gracias

Enviado desde mi GT-N7000 usando Tapatalk 2
Responder Con Cita
  #15  
Viejo 22/01/13, 21:39:57
Avatar de limeraw139
limeraw139 limeraw139 no está en línea
Miembro del foro
Mensajes: 66
 
Fecha de registro: feb 2012
Mensajes: 66
Modelo de smartphone: Galaxy S / S3
Versión de ROM: Elite 4.2.1 B3 / LLC Stock
Versión de Radio: JVU / LLA
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Responder Con Cita
  #16  
Viejo 22/01/13, 22:06:40
Avatar de Alexis0o
Alexis0o Alexis0o no está en línea
Miembro del foro
Mensajes: 298
 
Fecha de registro: sep 2010
Mensajes: 298
Modelo de smartphone: Samsung Galaxy S
Tu operador: Movistar
Mencionado: 5 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por limeraw139 Ver Mensaje
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
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");
Eso si no me equivoco lo que hace es comprobar si el ro.product.device es uno de los que estan puestos, si no da un error.

Es un condicional. Si no existe, entonces muestra error.

Corregirme si me equivoco.
Responder Con Cita
  #17  
Viejo 24/01/13, 11:06:25
Avatar de limeraw139
limeraw139 limeraw139 no está en línea
Miembro del foro
Mensajes: 66
 
Fecha de registro: feb 2012
Mensajes: 66
Modelo de smartphone: Galaxy S / S3
Versión de ROM: Elite 4.2.1 B3 / LLC Stock
Versión de Radio: JVU / LLA
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por Alexis0o Ver Mensaje
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");
Eso si no me equivoco lo que hace es comprobar si el ro.product.device es uno de los que estan puestos, si no da un error.

Es un condicional. Si no existe, entonces muestra error.

Corregirme si me equivoco.
Si lo había visto ahí y también aqui:
assert(package_extract_file("recovery.img", "/tmp/recovery.img")
Supongo que aquí hará lo mismo.
Muchísimas gracias por tu respuesta.
Un saludo
Responder Con Cita
  #18  
Viejo 14/08/13, 17:33:25
Avatar de RuralGalaxy
RuralGalaxy RuralGalaxy no está en línea
Betatester oficial
Mensajes: 2,758
Compra y venta: (1)
 
Fecha de registro: mar 2011
Localización: Balearic Islands
Mensajes: 2,758
Modelo de smartphone: Note4
Versión de ROM: Lollipop 5.1.1
Versión de Radio: GhettoBlaster
Tu operador: Vodafone
Mencionado: 10 comentarios
Tagged: 0 hilos
Pillo sitio!
Responder Con Cita
  #19  
Viejo 26/10/13, 20:31:05
Avatar de alfrehin
alfrehin alfrehin no está en línea
Usuario novato en la web
Mensajes: 7
 
Fecha de registro: oct 2013
Mensajes: 7
Modelo de smartphone: huawei U8850
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
guiño

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.
Responder Con Cita


  #20  
Viejo 26/10/13, 23:41:11
Avatar de ChireneDroid7x
ChireneDroid7x ChireneDroid7x no está en línea
Usuario muy activo
Mensajes: 4,651
 
Fecha de registro: dic 2011
Localización: Bololandia
Mensajes: 4,651
Modelo de smartphone: Galaxy S / Nexus 4 / Nexus 5
Versión de ROM: Hoy una, Mañana otra.
Versión de Radio: Local
Tu operador: Yoigo
Mencionado: 0 comentarios
Tagged: 0 hilos
Todo esto esta muy bien, pero me suena a chino y se me escapa de las manos.

Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Foros Samsung > Otros smartphones de Samsung antiguos > Samsung Galaxy S I9000 > ROMs y desarrollo Samsung Galaxy S I9000

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 21:58:29 (GMT +2)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007