Cocina tu propia ROM
Bueno, pues esto es una guía básica para crear un ROM partiendo de una stock rom en formato .tar típica de samfirmware, instalarle root y busybox, establecer de serie el kernel que más rabia nos de, poner nuestro productcode y salescode preferido y añadirle o quitarle las apps que queramos. Después de eso podremos aplicar una serie de optimizaciones opcionales y pongo algunos extras a modo de ejemplo para hacerse a un idea de como se pueden ir añadiendo cosillas a nuestra criatura.
Esta guía no está pensada para que esté actualizada al día, por eso usaremos una rom como ejemplo, extraeremos su estructura, sabremos que hace cada cosa, nos familiaricemos con la sintaxis y formato, identificar archivos esenciales, etc.
La idea es que a partir de aquí sepas moverte por otras custom roms, saber adaptarte a nuevas versiones, aprender cosillas nuevas, integrarlas en tus proyectos, etc.... pero recuerda que si la publicas debes mencionar de dónde has sacado el material. El plagio es comunidades de desarrolladores o modders es reprobable.
Al lío.
Hay dos opciones para extraer un /system original, uno flasheando un stock rom con kernel de serie, instalar un CWM, hacer un nandroid backup
y extraer el system.img siguiendo este tuto para windows y linux http://www.htcmania.com/showthread.php?t=156996 o montando una imagen factory.rfs que es como se plantea este tutorial.
Lo primero es descargar una stock rom en formato .tar para flashear desde ODIN, por ejemplo una nueva JPU. Descomprimimos todos los tar.md5, y buscamos factoryfs.rfs
Montando imagen factoryfs en Windows :
Montando imagen factoryfs en linux:
Configura tu CSC (productcode y salescode):
##############################################
Con esto tendrías ya lo básico.
Solo faltaría comprimir el contenido de /ROM/ en un zip y directo a la raíz de la SDCARD.
Flashear desde un Clokworkmod recovery!
Para saber más:
Disclaimer:
Esta guía no está pensada para que esté actualizada al día, por eso usaremos una rom como ejemplo, extraeremos su estructura, sabremos que hace cada cosa, nos familiaricemos con la sintaxis y formato, identificar archivos esenciales, etc.
La idea es que a partir de aquí sepas moverte por otras custom roms, saber adaptarte a nuevas versiones, aprender cosillas nuevas, integrarlas en tus proyectos, etc.... pero recuerda que si la publicas debes mencionar de dónde has sacado el material. El plagio es comunidades de desarrolladores o modders es reprobable.
Al lío.
Hay dos opciones para extraer un /system original, uno flasheando un stock rom con kernel de serie, instalar un CWM, hacer un nandroid backup
y extraer el system.img siguiendo este tuto para windows y linux http://www.htcmania.com/showthread.php?t=156996 o montando una imagen factory.rfs que es como se plantea este tutorial.
Lo primero es descargar una stock rom en formato .tar para flashear desde ODIN, por ejemplo una nueva JPU. Descomprimimos todos los tar.md5, y buscamos factoryfs.rfs
Montando imagen factoryfs en Windows :
Puedes usar programas como Poweriso o MagicISO
Montando imagen factoryfs en linux:
Creamos nuestra carpeta de trabajo ROM:Código:mkdir factoryfs sudo mount -o loop factoryfs.rfs ./factoryfs
- Copia el contenido de /factoryfs a /ROM/system
- Borrar los siguientes archivos:
/system/bin/ --->[cat, chmod, chown ,cmp, csview, date, dd, df, dmesg, dumstate, getevent, getprop, hd, id, ifconfig, iftop, insmod, ioctl, ionice, kill, ln, log, ls, lsmod, mkdir, mount, mv, nandread, netstat, newfs_msdos, notify, printenv, ps, reboot, renice, rm, rmdir, rmmod, route, schedtop,sendevent, setconsole, setprop, sleep, smd, start, stop, sync, top, umount, vmstat, watchprops,wipe]
/system/etc/ ----> [autorun.iso] (este es el "wimax windows installer" que no necesitamos)
- Ahora, del zip "extras.zip" adjunto, extrae y coloca los siguientes archivos y carpetas en /ROM:
http://www.multiupload.com/ON4MJ68UVK
ROM/system/bin/zipalign ----> (binario necesario para hacer zipalign)
ROM/system/xbin/su -- -->(binario necesario para ser root)
ROM/system/xbin/busybox ---->(binario busybox v.1.18.1)
ROM/system/xbin/dreboot
ROM/system/etc/init.d/S01sysctl ---->(carga configuraciones y variables del kernel) (**)
ROM/system/etc/init.d/S70zipalign ----> (este script aplica zipalign a todas las /data/app en cada inicio)
ROM/system/etc/init.d/S99complete---->(devuelve el control a init.rc)
ROM/META-INF ---->(carpeta contenedora del updater-script y varios certificados necesarios para el recovery y android). Se incluye un update-script basado en DocRom por ser más o menos "genérica" pero modificado con algunas líneas extras para hacer wipe y eliminado la ejecución de un script redundante)
(**) En /system/etc/init.d podrás incluir tus propios scripts que se ejecutaran al inicio siempre que el kernel tenga activado run-parts en init.rc. Prácticamente todos los custom kernel lo tienen habilitado. Estos scripts utilizan este path #!/system/bin/sh y deben empezar por "S" seguido de un número entre 01 y 99, que indica el orden en que se ejecutarán.
*puedes sobreescribir el contenido de extras.zip sobre /ROM ya que respeta la estructuraAñadir Modem y Kernel:
Necesitamos el modem.bin distribuido con el paquete original tar.md5 y un zImage (kernel), recomendable un custom kernel con CWM. Con esto podremos flashear sobre cualquier rom sin necesidad de flashear "una base".
Ruta:ROM/updates/modem.bin
ROM/updates/zImage
Configura tu CSC (productcode y salescode):
Descarga un CSC de tu operador de aquí: http://forum.xda-developers.com/showthread.php?t=787163 y extrae la carpeta de tu operador, por ejemplo XEC para movistar:Build.prop:Si no quieres que instale las apps de movistar o los wallapers borrar todas las carpetas menos "csc", edita CSCFiles.txt y elimina sus rutas.
- Crea la carpeta ROM/system/csc
- Pon dentro el contenido de /XEC/system/
- Edita CSCVersion.txt y adáptalo al código de tu rom, en este caso “I9000XECJPU”. Haz lo mismo con SW_Configuration.xml
También puedes establecer un CSC libre para España -FOP- , tan solo descomprimir, copiar el contenido de FOP en /system y editar de la misma manera
Cambia la configuración regional del GPS:
Edita /system/build.prop:En un principio no debe sería necesario tocar prácticamente nada ya que obviamente viene configurado apropiadamente, pero puede ser interesante si tuvieses problemas y no vieras algunas aplicaciones protegidas, entonces puedes probar cambiando la versión de la compilación al final de fingerprint.(.../FROYO/XXJPU). A veces funciona...Código:ro.build.version.incremental=XXJPU ro.build.PDA=I9000XXJPU ro.build.description=GT-I9000-user 2.2.1 FROYO XXJPU release-keys ro.build.hidden_ver=I9000XXJPU ro.build.fingerprint=samsung/GT-I9000/GT-I9000/GT-I9000:2.2.1/FROYO/XXJPU:user/release-keys
Ten en cuenta cuando manipules build.prop que habrá que adaptarlo a la versión de tu compilación en cada campo, por ejemplo si fuese una Froyo 2.2 tipo JPM debería ser GT-I9000:2.2 y XXJPM tanto en ro.build.fingerprint como en ro.build.description.
Por ejemplo, un fingerprint genérico que no da problemas y muestra todas las apps de pago:Configura el idioma por defecto:Código:ro.build.fingerprint=samsung/GT-I9000/GT-I9000/GT-I9000:2.2/FROYO/XXJPO:user/release-keysYa solo faltaría darle un nombre de compilación a tu ROM:Código:ro.product.locale.language=es ro.product.locale.region=ESCódigo:ro.build.display.id=MI_ROM_MOLA_v1.XXJPU
Edita /system/etc/gps.conf:Añadir o quitar aplicaciones:
Europa:España:Código:NTP_SERVER=europe.pool.ntp.orgCódigo:NTP_SERVER=es.pool.ntp.org
- Si quieres añadir apps de serie crea la ruta /ROM/data/app y añádelas
- Para limpiar stock apps ve a /system/app y bórralas con sus .odex. Más info
- Es recomendable incluir la aplicación “superuser” en system/app para gestionar permisos root.
- Ahora añade a capricho: launchers, herramientas backup, frameworks modificados, nuevo market, sgstolols, sgs toolbox, galería3D,....
##############################################
Con esto tendrías ya lo básico.
Solo faltaría comprimir el contenido de /ROM/ en un zip y directo a la raíz de la SDCARD.
Flashear desde un Clokworkmod recovery!
Para saber más:
- lo mejor es hurgar en otras custom rom y estudiar su update-script y estructuras.
- Crear y modificar un updater-script: http://www.htcmania.com/showthread.php?p=1705973
- Aquí tenéis una videoguía para hacerse a una idea de cómo va funciona el proceso: http://forum.xda-developers.com/showthread.php?t=885048
Disclaimer:
- Eres responsable de lo que pueda pasar modificando tu sistema. No debe haber riesgo de brick con los cambios básicos propuestos pero no está de más que te informes bien antes de cualquier modificación.
- Esto funciona a base de ensayo y error así que asegúrate de hacer backups antes de nada.
- Toda esta info está sacada de las custom roms que rondan por nuestra cocina, así que todos los créditos para ellos.
- agradecimientos especiales a @Lorse por su perseverancia y ayuda y a @jorgecg por cederme amablemente su post para tenerlo todo más organizado
informacion sacada de www.htcmania.com
No hay comentarios:
Publicar un comentario