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

Respuesta
 
Herramientas
  #1  
Viejo 09/01/11, 14:20:01
Array

[xs_avatar]
intronauta intronauta no está en línea
Monguer.
· Votos compra/venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone

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)
__________________
________
[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.
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
Array

[xs_avatar]
vvaleta vvaleta no está en línea
Colaborador/a
· Votos compra/venta: (66)
 
Fecha de registro: jul 2009
Localización: zaragoza
Mensajes: 31,720
Modelo de smartphone: Xiaomi 12 Pro
Tu operador: Orange
Pal hilo de tutos de cabeza...

Gracias trom.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 09/01/11, 16:09:14
Array

[xs_avatar]
intronauta intronauta no está en línea
Monguer.
· Votos compra/venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone

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
Responder Con Cita
  #4  
Viejo 09/01/11, 17:17:43
Array

[xs_avatar]
vvaleta vvaleta no está en línea
Colaborador/a
· Votos compra/venta: (66)
 
Fecha de registro: jul 2009
Localización: zaragoza
Mensajes: 31,720
Modelo de smartphone: Xiaomi 12 Pro
Tu operador: Orange
Ya tienes los tags puestos tio.
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 09/01/11, 22:58:58
Array

[xs_avatar]
mtm mtm no está en línea
Miembro del foro
 
Fecha de registro: oct 2008
Localización: Spain
Mensajes: 189
Modelo de smartphone: El último

Muuuuchas gracais por el tuto jefes!
Responder Con Cita
  #6  
Viejo 09/01/11, 23:04:44
Array

[xs_avatar]
usuario_87061
Usuario invitado
 
Mensajes: n/a

Madre mía, intronauta, eres un máquina!

Asias!!!
Responder Con Cita
  #7  
Viejo 09/01/11, 23:19:35
Array

[xs_avatar]
Lorse
Usuario invitado
 
Mensajes: n/a

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
Array

[xs_avatar]
tiggerbcn tiggerbcn no está en línea
Colaborador/a
 
Fecha de registro: oct 2009
Localización: en mi casa
Mensajes: 14,905
Tu operador: Vodafone

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
Array

[xs_avatar]
intronauta intronauta no está en línea
Monguer.
· Votos compra/venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone

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
Responder Con Cita
Gracias de parte de:
  #10  
Viejo 10/01/11, 00:55:27
Array

[xs_avatar]
vvaleta vvaleta no está en línea
Colaborador/a
· Votos compra/venta: (66)
 
Fecha de registro: jul 2009
Localización: zaragoza
Mensajes: 31,720
Modelo de smartphone: Xiaomi 12 Pro
Tu operador: Orange
Habrá que hacer algo, para que todo esto no caiga en el olvido.
Responder Con Cita
  #11  
Viejo 12/01/11, 12:33:22
Array

[xs_avatar]
intronauta intronauta no está en línea
Monguer.
· Votos compra/venta: (1)
 
Fecha de registro: ago 2009
Mensajes: 5,345
Tu operador: Pepephone

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
Responder Con Cita
  #12  
Viejo 08/04/11, 11:43:24
Array

[xs_avatar]
jm0077 jm0077 no está en línea
Miembro del foro
 
Fecha de registro: feb 2010
Mensajes: 37

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
Array

[xs_avatar]
juanyllo87 juanyllo87 no está en línea
Usuario muy activo
 
Fecha de registro: mar 2011
Localización: LPGC (España)
Mensajes: 673
Modelo de smartphone: iPhone 13 Pro
Tu operador: Vodafone
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
Array

[xs_avatar]
ninoroldan ninoroldan no está en línea
Miembro del foro
 
Fecha de registro: mar 2010
Localización: Argentina
Mensajes: 199
Modelo de smartphone: Samsung galaxy note
Tu operador: Movistar
Buen tutorial, gracias

Enviado desde mi GT-N7000 usando Tapatalk 2
Responder Con Cita
  #15  
Viejo 22/01/13, 21:39:57
Array

[xs_avatar]
limeraw139 limeraw139 no está en línea
Miembro del foro
 
Fecha de registro: feb 2012
Mensajes: 66
Modelo de smartphone: Galaxy S / S3
Tu operador: Yoigo
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
Array

[xs_avatar]
Alexis0o Alexis0o no está en línea
Miembro del foro
 
Fecha de registro: sep 2010
Mensajes: 298
Modelo de smartphone: Samsung Galaxy S
Tu operador: Movistar
 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
Array

[xs_avatar]
limeraw139 limeraw139 no está en línea
Miembro del foro
 
Fecha de registro: feb 2012
Mensajes: 66
Modelo de smartphone: Galaxy S / S3
Tu operador: Yoigo
 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
Array

[xs_avatar]
RuralGalaxy RuralGalaxy no está en línea
Betatester oficial
· Votos compra/venta: (1)
 
Fecha de registro: mar 2011
Localización: Balearic Islands
Mensajes: 2,758
Modelo de smartphone: Note4
Tu operador: Vodafone
Pillo sitio!
Responder Con Cita
  #19  
Viejo 26/10/13, 20:31:05
Array

[xs_avatar]
alfrehin alfrehin no está en línea
Usuario novato en la web
 
Fecha de registro: oct 2013
Mensajes: 7
Modelo de smartphone: huawei U8850
Tu operador: Movistar
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
Array

[xs_avatar]
ChireneDroid7x ChireneDroid7x no está en línea
Usuario muy activo
 
Fecha de registro: dic 2011
Localización: Bololandia
Mensajes: 4,651
Modelo de smartphone: Galaxy S / Nexus 4 / Nexus 5
Tu operador: Yoigo
Todo esto esta muy bien, pero me suena a chino y se me escapa de las manos.

__________________
Consigue 20gb de almacenamiento en la nube con Pincha en la imagen
Responder Con Cita
Respuesta

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



Hora actual: 00:01:18 (GMT +2)



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

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