ROMs y desarrollo Xperia S ROMs y desarrollo Xperia S

Respuesta
 
Herramientas
  #1  
Viejo 12/05/13, 21:42:20
Array

[xs_avatar]
Kiamu Kiamu no está en línea
Usuario muy activo
· Votos compra/venta: (5)
 
Fecha de registro: may 2012
Mensajes: 1,435

Introducción a la cocina para Xperia

INTRODUCCIÓN

El objetivo de este tutorial es facilitar la incursión de la gente en el mundo de las ROM personalizadas. Mostraremos que partiendo desde 0 a partir de un firmware de Sony podemos crear nuestra propia ROM personalizada. Aunque los ejemplos estén basados en un Xperia S este tutorial está pensado para Smarthphones Sony. He hecho un esfuerzo y he usado Windows para hacer el tutorial ()
Tú eres el único responsable de los problemas que puedan surgir en tu telefono o ordenador al seguir este manual. No me hago responsable de nada.
Nota: Los aportes y correcciones son muy bien bienvenidos.


RECURSOS

Hacer este tutorial me ha llevado horas de trabajo, si te ayuda no olvides pulsar el botón gracias. Si lo usas para crear tu ROM se aceptan agradecimientos también
No olvides agradecer también su labor a gente que ha hecho los programas que se usan aquí como dsixda (usuario de XDA-Developers)

Última edición por Kiamu Día 16/06/13 a las 20:19:55.
Responder Con Cita
Los siguientes 96 usuarios han agradecido a Kiamu su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 12/05/13, 21:43:02
Array

[xs_avatar]
Kiamu Kiamu no está en línea
Usuario muy activo
· Votos compra/venta: (5)
 
Fecha de registro: may 2012
Mensajes: 1,435

CONSTRUYENDO LA BASE

PRIMER PASO: OBTENER UN ARCHIVO PARA FLASHTOOL


1.) Mediante Sony PC Companion, Sony Update Service o EMMA actualizamos o reparamos el firmware de nuestro Xperia. Este proceso descargará varios archivos a nuestro PC que nos permitirán crear el archivo TFT que queremos.
2.) Una vez descargados los archivos vamos a la carpeta que los contiene, por ejemplo para EMMA es esta:
Si descargamos la actualización con Sony PC Companion o Sony Update Service, esta se descargará en una carpeta temporal oculta. Nos ponemos en C./ y en la barra de herramientas vamos a "Organizar"/ "Opciones de carpeta y búsqueda" y dentro seleccionamos la pestaña "Ver" - Archivos y carpetas ocultos - Mostrar archivos, carpetas y unidades ocultos. Ahora en C:/ debería aparecer una carpeta llamada "Program Data". Ahí dentro estarán ,por ejemplo en Sony Ericsson/ Update Engine/ db/ NUMERO/ blob_fs.


3.) Copiamos los archivos seleccionados en la imagen (FILE_279195486 y FILE_279216871 en el ejemplo) en otra carpeta que crearemos con este fin.
4.) Abrimos el programa Flashtool, este manual está realizado sobre la versión v0.9.10.1, y seleccionamos Tools/Decrypt Files. Ahí en "..." seleccionamos la carpeta donde hemos guardo los archivos y pasamos ambos archivos al lado derecho "Files to convert". Aceptamos y dejamos que Flashtool trabaje con los archivos. Cuando acabe saldrá esta pantalla.




5.) Pasamos al lado derecho "Firmware Content" todos los archivos excepto "simlock.ta". Rellenamos con los siguientes datos. Realmente da igual equivocarse, simplemente son etiquetas.
Device: LT26i (O el que sea)
Version: La versión de ese firmware (ej: 6.A.2.0.100)
Branding: SEMC

Aceptamos. En la siguiente pantalla seleccionamos nuestro modelo de dispositivo para que agregue el "loader.sin" y volvemos a aceptar. El archivo resultante se guarda automáticamente en C:/Flashtool/Firmwares

Idea: Ahora puedes subir este archivo y compartirlo con el resto. Es una gran aportación cuando Sony lanza un nuevo firmware, así ayudas a la gente con terminales no libres a actualizar fácilmente a través de Flashtool.

Importante: Hay una forma de "engañar" a los programas oficiales de Sony para hacerles creer que somos de otra zona y así descargarnos esa actualización. Concretamente es editando estas lineas en build.prop.
Código:
ro.product.name= 
ro.build.fingerprint=
ro.semc.version.cust= 
ro.semc.version.cust_revision=
AQUÍ tienes un hilo que trata sobre este tema.



SEGUNDO PASO: OBTENER UN ZIP PARA RECOVERY


En el apartado anterior vimos como crear nuestro propio TFT. Ahora vamos a darle uso. Como habreis visto todas las ROM vienen en un formato tan conocido como ".zip" y no en TFT. El formato .zip es fácilmente instalable desde nuestro propio Xperia mediante un recovery. Además es relativamente sencillo de hacer nuestras propias modificaciones sobre el. Vamos a aprender a crear uno.

1.) Con Flashtool instalamos nuestra ROM en el Xperia. Es un proceso muy sencillo y explicado, así que no voy a entrar en ello.
2.) Cuando acabe encendemos nuestro telefono, nos hacemos ROOT y instalamos un recovery. Busca como, hay montón de guías.
3.) Entramos en el recovery y hacemos un Backup. Cuando acabe conectamos nuestro Xperia al PC.
4.) Vamos a donde esté nuestro Backup, en mi caso es con un recovery CWM así que lo encontraremos en:
Xperia S/clockworkmod/FechaDeLaRom
5.) Solo nos interesa el archivo "system.ext4.tar" lo copiamos a nuestro PC. Este es un archivo que se abre con un descompresor, recomiendo usar "7zip".Si lo abrimos tendremos una carpeta system con algo parecido a esto:



6.) Extraemos todo en una nueva carpeta creada para este fin y empezamos a prepararla.
7.) Empieza el preparado del zip. Lo primero es volver a comprimir las carpetas creadas, esta vez lo comprimimos en formato ".zip"



8.) El problema es que este zip así no nos sirve, si lo intentamos instalar el recovery dará un error, debe de estar "firmado". Hay varias formas de firmar un archivo zip para que lo admita el recovery, por ahora usaremos el programa "Auto-Sign".

9.) Copiamos nuestra ROM a la carpeta de "Auto-Sign" con el nombre de "Update.zip"



10.) Nos tiene que aparecer "Update.zip" subrayado en verde, entonces en la ventana desplegable seleccionamos "Update.zip" y pulsamos "Auto-Sign". Nos dirá que ha creado un nuevo archivo llamado "update_signed" y quedará "como que no ha funcionado" simplemente es tener paciencia y esperar un par de minutos. Más o menos cuando el archivo final ocupe 2-3 Mb más que el original habrá acabado. Podemos renombrar la ROM como queramos.





11.) Nuestra ROM aún no sirve para instalar desde un recovery, nos queda decirle al recovery como instalarla. Bien, si abrimos el "update_signed.zip" vemos que tenemos una nueva carpeta "META-INF". Para no liarnos, he decido dar este paso hecho. Nos bajamos el archivo "META-INF", descomprimimos y lo soltamos dentro de de la ROM. Posteriormente aprenderemos más sobre esto, pero por ahora así nos vale.
Atención: El updater-script puede no funcionar correctamente. Está probado sobre un Xperia S con Jelly Bean.

Ahora tenemos una ROM instalable desde Recovery, podemos compartirla con el resto. Quizá alguien no quiera usar flashtool.

Última edición por Kiamu Día 16/06/13 a las 20:09:44.
Responder Con Cita
Los siguientes 41 usuarios han agradecido a Kiamu su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #3  
Viejo 12/05/13, 21:43:32
Array

[xs_avatar]
Kiamu Kiamu no está en línea
Usuario muy activo
· Votos compra/venta: (5)
 
Fecha de registro: may 2012
Mensajes: 1,435

TERCER PASO: PREPARANDO LA BASE

En este paso vamos a:
  • Deodex: Es quitar los archivos ".odex" o recompilarlos dentro de sus respectivos ".apk" ¿Y esto para que sirve...? Pues reducimos el riesgo considerablemente de fastidiarla al hacer cambios.
  • Pre-rootear.
  • Zipalinear: Mejora gestión de RAM.
  • Soporte para init.d.
  • Carpeta para añadir apps propias.

Para todo esto voy a recurrir a "Android Kitchen" de dsixda. Como se que la mayoría os hareis un hilo si os pongo el enlace de descarga y el post donde el autor explica como instalarlo y como moverse. Traduzco de la lengua de Shakesperare a la de Cervantes un poco más abajo. Una vez que tengamos todo lo anterior y la ROM colocada en la carpeta:



1.) Abrimos Cygin Terminal y escribimos "cd kitchen" para que cargue esa carpeta, pulsamos ENTER. Seguidamente escribimos "./menu" y ENTER. Si todo ha salido bien debemos tener algo como esto:



2.) Empezamos con la opción (1) "Set up working folder from ROM". En la siguiente pantalla nos dice que nos aseguremos que que tenemos la ROM en la carpeta correcta, aceptamos. Nos indica los archivos compatibles y numera cada uno de ellos, escribimos el número que queremos. Ahora creará una carpeta de trabajo, a la que da un nombre automaticamente. Nos da la opción de cambiarlo o dejar ese.
En el siguiente punto aceptamos añadir un "boot.img" para que la kitchen trabaje correctamente. Si nos dice que hay un problema con "updater-script" y que necesita crear un "update-script" aceptamos crearlo.



3.) Cuando acabe volveremos a la pantalla de menu. El primer paso es añadir permisos ROOT (2) (opción c). Seguidamente añadimos BusyBox (3). Si estamos editando otra ROM puede decirnos que estas aplicaciones ya existen, podemos dejar las que hay o añadir las que la kitchen proporciona.

4.) De vuelta en el Menu, vamos a Advances Options (0). Ahí Deodex (11) System/app y Framework (b), normalmente no deoxea a la primera todo. Simplemente es volver a pasarlo sobre lo que ha dejado, en mi caso System/app (a) ATENCIÓN: Al deoxear tenemos que cambiar nuestro nivel de API a nuestra versión de Android, por ejemplo para Jelly Bean el nivel de API es 15. Pulsamos "v" y ponemos el valor 16 en el menu de deoxeo.

5.) Añadimos soporte para init.d (14) y funcionalidad data/app (13)

6.) Ya casi está. Vamos a montar la ROM, damos a la opción 99. Y en la siguiente pantalla, opción 2 (comodísima y hace zipaling). Esperamos a que acabe. (Importante firmar la ROM en este paso, la opción 2 "Lazy Mode" la firma automaticamente)

7.) La ROM resultante se guarda en la carpeta de Cygwin un nivel por encima de donde hemos metido la ROM al principio en "OUTPUT".

8.) Normalmente el updater-script resultante del paso por esta kitchen no es el correcto. Se instalará mediante recovery, pero pueden perder funciones importantes debido a que no da los permisos correctos. Puedes probar a usar el génerico facilitado más arriba (Funciona en Xperia S para Jelly Bean) o hacer tu uno.


ANDROID KITCHEN: MANUAL DE INSTALACIÓN

  • El tema original es ESTE
  • Las instrucciones de instalación en Windows son ESTAS
  • Las instrucciones de uso están AQUÍ en apartado "Detailed instructions (for newbies)".
  • Cuando tenga tiempo y dependiendo de las dificultades que encontréis lo traduciré.

Última edición por Kiamu Día 16/06/13 a las 20:10:03.
Responder Con Cita
Los siguientes 38 usuarios han agradecido a Kiamu su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #4  
Viejo 12/05/13, 21:44:02
Array

[xs_avatar]
Kiamu Kiamu no está en línea
Usuario muy activo
· Votos compra/venta: (5)
 
Fecha de registro: may 2012
Mensajes: 1,435

CUARTO PASO: LIMPIANDO LA ROM

También es importante quitar parte de las aplicaciones o personalización que nuestro fabricante mete a su smartphone. Así ganaremos fluidez y ganaremos minutos o incluso horas de batería.
Dependiendo de nuestro modelo podremos quitar unas o otras. Algunas serán esenciales para el sistema, otras totalmente prescindibles. El método el simple.

Partiendo de la ROM que hemos obtenido al finalizar el tercer paso o cualquier otra con la queramos trabajar, sin descomprimirla y con 7zip la abrimos. Es recomendable tener una copia de la ROM por si borramos más de la cuenta y queremos recuperar.
Dentro de la carpeta "System" encontramos una serie de carpetas que detallamos a continuación.
  • Carpeta "app": Eliminamos las aplicaciones que deseemos, es necesario estudiar previamente para que sirve cada cosa. Simplemente es seleccionarlas y en la barra superior dar a borrar.
  • Carpeta "bin": En esta carpeta están los binarios de Android, son necesarios para el funcionamiento correcto del sistema. Todos los archivos presentes en esta carpeta deben ser enlazados en el updater-scrip, por lo que será importante a la hora de hacer ese archivo.
  • Carpeta "etc": Aquí, por ejemplo, podemos comprobar la carpeta etc/customization y la carpeta ect/product esten limpias de aplicaciones basura. Yo recomiendo eliminarlas directamente. También podemos eliminar la carpeta fast-dormancy si hemos eliminado las respectivas apk en system/app. Dentro de la carpeta permissions encontramos una serie de archivos que dicen a Android que permisos deben de tener las aplicaciones de system/app, si eliminamos la aplicación podemos eliminar también sus permisos. Por ejemplo si eliminamos la aplicaciónes de Facebook, pordemos elimnar todos los persmisos que lleven la palabra "facebook" entre todo su nombre.
  • Carpeta "fonts": Aquí podemos cambiar las fuentes, para que la ROM tenga otro tipo de fuente. Hay que cambiarlas también en el updater-script.
  • Carpeta "framework": Al igual que en la carpeta etc/permissions si eliminamos la aplicación podemos eliminar el archivo jar correspondiente.
  • Carpeta "lib": No la tocamos en este Tutorial.
  • Carpeta "media": Dentro de esta carpeta eliminamos "vídeo". También podemos cambiar la bootanimation, más adelante aprenderemos a hacer una y a cambiarla. Centrándonos en la carpeta audio; ahí podemos en alarms, notifications y ringtones eliminar y añadir lo que queremos.
  • Carpeta "semc": Ahí tenemos las imágenes de carga en apagado, podemos cambiarlas por otras que nos gusten más. Si lo eliminamos, al no poder cargar las imagenes encenderá el movil.
  • Carpeta "tts": Aquí se guardan los archivos de síntesis de voz de PicoTTS. Si eliminamos esta aplicación de system/app podemos quitarla entera. O simplemente podemos eliminar los archivos en idiomas como Frances o Italiano.
  • Carpeta "urs": nos centraremos en "xt9". Es donde están las predicciones de teclado . Si hacemos una ROM para territorio de habla Española. Con dejar Ingles, Español, Catalan y Vasco es suficiente.
  • Carpeta "vendor": Empezaremos por "pittpat" ahí están los modelos de desbloqueo facial, si no desbloqueamos el móvil de esta forma pueden eliminarse perfectamente junto a su respectiva app en system/app. En overlay/framework, tenemos los temas de Xperia, también se pueden eliminar algunos o todos.
  • Carpeta "xbin": Mas archivos binarios que no van en "bin", normalmente aquí van busybox y superuser.
  • Volvamos un momento a system/etc allí encontramos un archivo interesante llamado "apns-conf" este archivo es de configuración de APN. Si lo configuramos correctamente los usuarios que prueben nuestra ROM no tendrán que meterlo ellos manualmente. Sobre todo si son clientes de OMV. Dejo AQUÍ el archivo apns-conf de CyanogenMOD uno de los más completos que hay, podemos añadirlo si queremos.

Ahora tu ROM pesará unos cuantos megas menos, puede que bastantes. Además de que habrás mejorado el consumo.


QUINTO PASO: HABLEMOS DE TWEAKS


Todo el mundo que anda metido en el mundillo de Android y se dedica a probar ROMS está todo el día oyendo hablar de Tweaks en Build.prop. Un tweak es básicamente una pequeña linea de código que modifica parametros por defecto en el sistema. Hay mucha tela que cortar al respecto, mucha gente sostiene que no sirven para nada otros que sí. Está demostrado que los benchmark suben o bajan ligeramente según los tweaks que usemos.
Y ¿Como metemos tweaks?

1.) Esta vez con el zip abierto de la ROM vamos a "system" y ahí abrimos Build.prop con Notepad++

[IMAGEN 12]

2.) Lo que nos interesa, por ahora, está al final en "ADDITIONAL_BUILD_PROPERTIES". (Nota: Las # implica que el sistema no lee esa linea, sirven de guía para tí. Pero el sistema se las salta)
3.) Ahí empezamos a introducir los tweaks que queramos. Debemos investigar por nuestra cuenta cuales son mejores para nuestro terminal y versión de Android.
Un ejemplo de Build.prop:

 Cita:
#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.product-res-path=framework/SemcGenericUxpRes.apk
ro.com.android.dataroaming=true
keyguard.no_require_sim=true
ro.com.android.dateformat=dd-MM-yyyy
ro.vendor.extension_library=/system/lib/libqc-opt.so
dalvik.vm.heapstartsize=8m
dalvik.vm.heapgrowthlimit=64m
dalvik.vm.heapsize=256m
ro.setupwizard.mode=DISABLED
ro.com.google.gmsversion=4.0_r7
ro.com.google.clientidbase=android-sonyericsson
ro.sf.lcd_density=320
ro.ril.hsxpa=2
ro.ril.gprsclass=12
ro.semc.xloud.supported=true
ro.usb.pid_suffix=169
dalvik.vm.dexopt-flags=m=y,v=n,o=v,u=n
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt
ro.service.swiqi.supported=true
persist.service.swiqi.enable=1
drm.service.enable=false

# MEJORAS CONEXION
ro.ril.avoid.pdp.overlap=1

# CAMBIOS INTERFAZ
persist.adb.notify=0

# DESHABILITAR LOGCAT
logcat.live=disable

# DESHABILITAR CHEQUEO DE ERRORES
ro.kernel.android.checkjni=0
ro.kernel.checkjni=0

# MEJORA RESPUESTA SCROLLING
windowsmgr.max_events_per_sec=240

# VELOCIDAD SCROLLING
ro.max.fling_velocity=12000
ro.min.fling_velocity=8000

# MEJORA RESPUESTA TACTIL
debug.performance.tuning=1
video.accelerate.hw=1

# AHORRO ENERGIA
wifi.supplicant_scan_interval=180
pm.sleep_mode=1
ro.ril.disable.power.collapse=1
ro.mot.eri.losalert.delay=1000

# MEJORA SEÑAL
ro.ril.hep=1
ro.ril.enable.dtm=1
ro.ril.hsdpa.category=10
ro.ril.enable.a53=1
ro.ril.enable.3g.prefix=1
ro.ril.htcmaskw1.bitmask=4294967295
ro.ril.htcmaskw1=14449
ro.ril.hsupa.category=5

# MEJORA NAVEGADOR
net.tcp.buffersize.default=4096,87380,256960,4096, 16384,256960
net.tcp.buffersize.wifi=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.umts=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.gprs=4096,87380,256960,4096,163 84,256960
net.tcp.buffersize.edge=4096,87380,256960,4096,163 84,256960

# OTROS
persist.sys.purgeable_assets=1
debug.enabletr=true
dalvik.vm.verify-bytecode=false
persist.sys.ui.hw=1
View.scroll_friction=10
ro.HOME_APP_ADJ=1
ro.config.nochekin=1
dalvik.vm.jniopts=forcecopy
dalvik.vm.execution-mode=int:jit
dalvik.vm.checkjni=false
dalvik.gc.type=precise


# AUMENTO FLASH
ro.media.capture.flash=led
ro.media.capture.flashMinV=3300000
ro.media.capture.torchIntensity=140
ro.media.capture.flashIntensity=145



SEXTO PASO: LOS ULTIMOS AJUSTES


  • Si hemos cambiado los sonidos del móvil, podemos decirle con que sonidos que queremos que empiece modificando estas lineas:

 Cita:
ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=

ej:
ro.config.ringtone=xperia.ogg
ro.config.notification_sound=notification.ogg
ro.config.alarm_alert=alarm.ogg
  • También podemos darle nombre a nuestra ROM modificando estos valores:

 Cita:
ro.semc.version.fs_revision=
ro.build.id=
ro.build.display.id=

ej:
ro.semc.version.fs_revision=6.1.A.2.55
ro.build.id=Xperia Series - Base+ (v0.3)
ro.build.display.id=Xperia Series - Base+ (v0.3)

Última edición por Kiamu Día 16/06/13 a las 20:11:12.
Responder Con Cita
Los siguientes 42 usuarios han agradecido a Kiamu su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #5  
Viejo 12/05/13, 21:44:34
Array

[xs_avatar]
Kiamu Kiamu no está en línea
Usuario muy activo
· Votos compra/venta: (5)
 
Fecha de registro: may 2012
Mensajes: 1,435

Séptimo paso: Creando un updater-scrip
A la hora de crear una ROM para instalar desde cualquier Recovery (CWM, TWRP,...) es necesario decirle a este como instalarla. Es decir, debemos darle una serie de comandos que debe ejecutar durante la instalación para que la ROM instale correctamente.
Para ello nos centraremos en la carpeta META-INF/com/google/android dentro de esta encontramos el archivo "updater-script" (recuerda que ya he dejado la carpeta y un archivo para descargar a modo de ejemplo, si te falta puedes usar esa)

El updater-script es este, si te entra principios de síncope al mirarlo... respira :
Primera explicación a colorines.
 Cita:
show_progress(0.1, 0);
format("ext4", "EMMC", "/dev/block/mmcblk0p12", "0", "/system"); --> Formatea system
mount("ext4", "EMMC", "/dev/block/mmcblk0p12", "/system"); --> Monta system
package_extract_dir("system", "/system"); --> Extrae todo el contenido de system al móvil (todo lógico hasta ahora)
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf"); --> De aquí para abajo son los llamados symlink o enlaces simbolicos, son necesarios para que todo funcione bien. Suelen ser siempre los mismos.
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/vmstat");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/wipe");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/reboot");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/ctrlaltdel");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/lsusb");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/umount");
set_perm_recursive(0, 0, 0755, 0644, "/system"); --> Ahora empezamos a asignar permisos
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 06755, "/system/bin/ip");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/etc");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin"); --> Instala busybox
set_perm(0, 0, 06755, "/system/xbin/su");
symlink("/system/xbin/su", "/system/bin/su");
show_progress(0.1, 10);
show_progress(0.2, 0);
show_progress(0.2, 10);
unmount("/system"); --> Desmonta system (lo montó en la seguna linea)
package_extract_file("boot.img", "/dev/block/mmcblk0p3"); - --> En caso de que la ROM venga con un kernel lo instala
format("ext4", "EMMC", "/dev/block/mmcblk0p14", "0", "/data"); -->
format("ext4", "EMMC", "/dev/block/mmcblk0p13", "0", "/cache");-- > En estos casos, hace un formateo de data y de cache. Es mejor dejarlo a elección del usuario, solo lo ponemos cuando sea obligatorio hacer los formateos.
Teniendo en cuenta lo siguiente:
  • Barra de progreso. La barra de carga, normalmente azul, que va mostrando el progreso de instalación de la ROM.
Código:
show_progress(progreso, frecuencia)
Recomendado dejarlo en
show_progress(0.1, 0) 10% y sin aumento
  • Mostrar comentarios.
Código:
ui_print("COMENTARIO")
ui_print("Formateando particiones")
  • Formateo automático.
Código:
format("ext4", "EMMC", "/dev/block/mmcblk0p12", "0", "/system") --> Obligatorio, ¡también debe montarse!

format("ext4", "EMMC", "/dev/block/mmcblk0p14", "0", "/data") --> Opcional

format("ext4", "EMMC", "/dev/block/mmcblk0p13", "0", "/cache") --> Opcional
  • Symlinks genericos(esto no lo tengo muy claro, es lo que he deducido)
symlink("origen", "destino")

[php]symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("busybox", "/system/xbin/[");
symlink("busybox", "/system/xbin/[[");
symlink("busybox", "/system/xbin/adjtimex");
symlink("busybox", "/system/xbin/arp");
symlink("busybox", "/system/xbin/ash");
symlink("busybox", "/system/xbin/awk");
symlink("busybox", "/system/xbin/base64");
symlink("busybox", "/system/xbin/basename");
symlink("busybox", "/system/xbin/bbconfig");
symlink("busybox", "/system/xbin/blkid");
symlink("busybox", "/system/xbin/blockdev");
symlink("busybox", "/system/xbin/brctl");
symlink("busybox", "/system/xbin/bunzip2");
symlink("busybox", "/system/xbin/bzcat");
symlink("busybox", "/system/xbin/bzip2");
symlink("busybox", "/system/xbin/cal");
symlink("busybox", "/system/xbin/cat");
symlink("busybox", "/system/xbin/catv");
symlink("busybox", "/system/xbin/chattr");
symlink("busybox", "/system/xbin/chgrp");
symlink("busybox", "/system/xbin/chmod");
symlink("busybox", "/system/xbin/chown");
symlink("busybox", "/system/xbin/chroot");
symlink("busybox", "/system/xbin/clear");
symlink("busybox", "/system/xbin/cmp");
symlink("busybox", "/system/xbin/comm");
symlink("busybox", "/system/xbin/cp");
symlink("busybox", "/system/xbin/cpio");
symlink("busybox", "/system/xbin/crond");
symlink("busybox", "/system/xbin/crontab");
symlink("busybox", "/system/xbin/cut");
symlink("busybox", "/system/xbin/date");
symlink("busybox", "/system/xbin/dc");
symlink("busybox", "/system/xbin/dd");
symlink("busybox", "/system/xbin/depmod");
symlink("busybox", "/system/xbin/devmem");
symlink("busybox", "/system/xbin/df");
symlink("busybox", "/system/xbin/diff");
symlink("busybox", "/system/xbin/dirname");
symlink("busybox", "/system/xbin/dmesg");
symlink("busybox", "/system/xbin/dnsd");
symlink("busybox", "/system/xbin/dos2unix");
symlink("busybox", "/system/xbin/du");
symlink("busybox", "/system/xbin/echo");
symlink("busybox", "/system/xbin/ed");
symlink("busybox", "/system/xbin/egrep");
symlink("busybox", "/system/xbin/env");
symlink("busybox", "/system/xbin/expand");
symlink("busybox", "/system/xbin/expr");
symlink("busybox", "/system/xbin/false");
symlink("busybox", "/system/xbin/fdisk");
symlink("busybox", "/system/xbin/fgrep");
symlink("busybox", "/system/xbin/find");
symlink("busybox", "/system/xbin/flash_lock");
symlink("busybox", "/system/xbin/flash_unlock");
symlink("busybox", "/system/xbin/flashcp");
symlink("busybox", "/system/xbin/flock");
symlink("busybox", "/system/xbin/fold");
symlink("busybox", "/system/xbin/free");
symlink("busybox", "/system/xbin/freeramdisk");
symlink("busybox", "/system/xbin/fsync");
symlink("busybox", "/system/xbin/ftpget");
symlink("busybox", "/system/xbin/ftpput");
symlink("busybox", "/system/xbin/fuser");
symlink("busybox", "/system/xbin/getopt");
symlink("busybox", "/system/xbin/grep");
symlink("busybox", "/system/xbin/groups");
symlink("busybox", "/system/xbin/gunzip");
symlink("busybox", "/system/xbin/gzip");
symlink("busybox", "/system/xbin/halt");
symlink("busybox", "/system/xbin/head");
symlink("busybox", "/system/xbin/hexdump");
symlink("busybox", "/system/xbin/id");
symlink("busybox", "/system/xbin/ifconfig");
symlink("busybox", "/system/xbin/inetd");
symlink("busybox", "/system/xbin/insmod");
symlink("busybox", "/system/xbin/install");
symlink("busybox", "/system/xbin/iostat");
symlink("busybox", "/system/xbin/ip");
symlink("busybox", "/system/xbin/kill");
symlink("busybox", "/system/xbin/killall");
symlink("busybox", "/system/xbin/killall5");
symlink("busybox", "/system/xbin/length");
symlink("busybox", "/system/xbin/less");
symlink("busybox", "/system/xbin/ln");
symlink("busybox", "/system/xbin/losetup");
symlink("busybox", "/system/xbin/ls");
symlink("busybox", "/system/xbin/lsattr");
symlink("busybox", "/system/xbin/lsmod");
symlink("busybox", "/system/xbin/lsusb");
symlink("busybox", "/system/xbin/lzcat");
symlink("busybox", "/system/xbin/lzma");
symlink("busybox", "/system/xbin/lzop");
symlink("busybox", "/system/xbin/lzopcat");
symlink("busybox", "/system/xbin/man");
symlink("busybox", "/system/xbin/md5sum");
symlink("busybox", "/system/xbin/mesg");
symlink("busybox", "/system/xbin/mkdir");
symlink("busybox", "/system/xbin/mke2fs");
symlink("busybox", "/system/xbin/mkfifo");
symlink("busybox", "/system/xbin/mkfs.ext2");
symlink("busybox", "/system/xbin/mkfs.vfat");
symlink("busybox", "/system/xbin/mknod");
symlink("busybox", "/system/xbin/mkswap");
symlink("busybox", "/system/xbin/mktemp");
symlink("busybox", "/system/xbin/modinfo");
symlink("busybox", "/system/xbin/modprobe");
symlink("busybox", "/system/xbin/more");
symlink("busybox", "/system/xbin/mount");
symlink("busybox", "/system/xbin/mountpoint");
symlink("busybox", "/system/xbin/mpstat");
symlink("busybox", "/system/xbin/mv");
symlink("busybox", "/system/xbin/nanddump");
symlink("busybox", "/system/xbin/nandwrite");
symlink("busybox", "/system/xbin/netstat");
symlink("busybox", "/system/xbin/nice");
symlink("busybox", "/system/xbin/nohup");
symlink("busybox", "/system/xbin/nslookup");
symlink("busybox", "/system/xbin/ntpd");
symlink("busybox", "/system/xbin/od");
symlink("busybox", "/system/xbin/patch");
symlink("busybox", "/system/xbin/pgrep");
symlink("busybox", "/system/xbin/pidof");
symlink("busybox", "/system/xbin/ping");
symlink("busybox", "/system/xbin/pkill");
symlink("busybox", "/system/xbin/pmap");
symlink("busybox", "/system/xbin/poweroff");
symlink("busybox", "/system/xbin/printenv");
symlink("busybox", "/system/xbin/printf");
symlink("busybox", "/system/xbin/ps");
symlink("busybox", "/system/xbin/pstree");
symlink("busybox", "/system/xbin/pwd");
symlink("busybox", "/system/xbin/pwdx");
symlink("busybox", "/system/xbin/rdev");
symlink("busybox", "/system/xbin/readlink");
symlink("busybox", "/system/xbin/realpath");
symlink("busybox", "/system/xbin/renice");
symlink("busybox", "/system/xbin/reset");
symlink("busybox", "/system/xbin/resize");
symlink("busybox", "/system/xbin/rev");
symlink("busybox", "/system/xbin/rm");
symlink("busybox", "/system/xbin/rmdir");
symlink("busybox", "/system/xbin/rmmod");
symlink("busybox", "/system/xbin/route");
symlink("busybox", "/system/xbin/run-parts");
symlink("busybox", "/system/xbin/rx");
symlink("busybox", "/system/xbin/sed");
symlink("busybox", "/system/xbin/seq");
symlink("busybox", "/system/xbin/setconsole");
symlink("busybox", "/system/xbin/setserial");
symlink("busybox", "/system/xbin/setsid");
symlink("busybox", "/system/xbin/sh");
symlink("busybox", "/system/xbin/sha1sum");
symlink("busybox", "/system/xbin/sha256sum");
symlink("busybox", "/system/xbin/sha512sum");
symlink("busybox", "/system/xbin/sleep");
symlink("busybox", "/system/xbin/sort");
symlink("busybox", "/system/xbin/split");
symlink("busybox", "/system/xbin/stat");
symlink("busybox", "/system/xbin/strings");
symlink("busybox", "/system/xbin/stty");
symlink("busybox", "/system/xbin/sum");
symlink("busybox", "/system/xbin/swapoff");
symlink("busybox", "/system/xbin/swapon");
symlink("busybox", "/system/xbin/sync");
symlink("busybox", "/system/xbin/sysctl");
symlink("busybox", "/system/xbin/tac");
symlink("busybox", "/system/xbin/tail");
symlink("busybox", "/system/xbin/tar");
symlink("busybox", "/system/xbin/taskset");
symlink("busybox", "/system/xbin/tee");
symlink("busybox", "/system/xbin/telnet");
symlink("busybox", "/system/xbin/telnetd");
symlink("busybox", "/system/xbin/test");
symlink("busybox", "/system/xbin/tftp");
symlink("busybox", "/system/xbin/tftpd");
symlink("busybox", "/system/xbin/time");
symlink("busybox", "/system/xbin/timeout");
symlink("busybox", "/system/xbin/top");
symlink("busybox", "/system/xbin/touch");
symlink("busybox", "/system/xbin/tr");
symlink("busybox", "/system/xbin/traceroute");
symlink("busybox", "/system/xbin/true");
symlink("busybox", "/system/xbin/ttysize");
symlink("busybox", "/system/xbin/tune2fs");
symlink("busybox", "/system/xbin/umount");
symlink("busybox", "/system/xbin/uname");
symlink("busybox", "/system/xbin/uncompress");
symlink("busybox", "/system/xbin/unexpand");
symlink("busybox", "/system/xbin/uniq");
symlink("busybox", "/system/xbin/unix2dos");
symlink("busybox", "/system/xbin/unlzma");
symlink("busybox", "/system/xbin/unlzop");
symlink("busybox", "/system/xbin/unxz");
symlink("busybox", "/system/xbin/unzip");
symlink("busybox", "/system/xbin/uptime");
symlink("busybox", "/system/xbin/usleep");
symlink("busybox", "/system/xbin/uudecode");
symlink("busybox", "/system/xbin/uuencode");
symlink("busybox", "/system/xbin/vi");
symlink("busybox", "/system/xbin/watch");
symlink("busybox", "/system/xbin/wc");
symlink("busybox", "/system/xbin/wget");
symlink("busybox", "/system/xbin/which");
symlink("busybox", "/system/xbin/whoami");
symlink("busybox", "/system/xbin/xargs");
symlink("busybox", "/system/xbin/xz");
symlink("busybox", "/system/xbin/xzcat");
symlink("busybox", "/system/xbin/yes");
symlink("busybox", "/system/xbin/zcat");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/r");
symlink("toolbox", "/system/bin/reboot");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");[/php]
  • Permisos
set_perm(uid, gid, permisos, "ruta")
set_perm_recursive(uid, gid, permisos_carpeta, permisos_archivo, "ruta")

[php]set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 06755, "/system/bin/ip");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0750, "/system/etc/init.d");
set_perm(0, 0, 0777, "/system/etc/init.d");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/etc");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm(0, 2000, 0755, "/system/vendor/lib/hw");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
set_perm(0, 0, 0777, "/system/bin/.ext");
set_perm(0, 0, 06755, "/system/bin/.ext/.su");
set_perm(0, 0, 06755, "/system/xbin/su");[/php]Más comandos para los Updater-script en este enlace:
  1. http://www.htcmania.com/showthread.php?t=169334

Última edición por Kiamu Día 01/06/13 a las 19:58:56.
Responder Con Cita
Los siguientes 38 usuarios han agradecido a Kiamu su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #6  
Viejo 12/05/13, 21:45:05
Array

[xs_avatar]
Kiamu Kiamu no está en línea
Usuario muy activo
· Votos compra/venta: (5)
 
Fecha de registro: may 2012
Mensajes: 1,435

NOVENO PASO: DECOMPILAR Y COMPILAR APK

Hay varios programas o kitchens para compilar y decompilar aplicaciones. Una apk es un archivo comprimido, a menos que queramos cambiar las imágenes no nos sirve con abirlo con un descompresor de archivos. Decompilar sirve para personalizar mucho Android o la propia aplicación, así como traducirla.

Para decompilar apk usaremos "Virtuous Ten Studio" un programa gratuito con algunas opciones especiales de pago.

Podemos descargarlo de ESTA página. Una vez descargado lo instalamos, es posible que nos pida instalar "Microsoft .NET Framework 4.5" para poder continuar.
Esta es la interfaz que nos encontramos:


A la hora de decompilar es fundamental decirle al programa bajo que framework tiene que trabajar. Sony incluye dos framework diferentes en sus Xperia "framework-res.apk" y "SemcGenericUxpRes.apk" presentes ambas en system/framework.

1. Dar a VTS los dos framework con los que trabajar.
Vamos a "File"/Open Settings/External tools/Apktool, damos a Add multiple framework (same tag) y damos un nombre al conjunto de framewoks que vamos a dar.

En la siguiente pantalla vamos a "use local files", navegamos hasta la carpeta donde están los framework. Nos mostrará la carpeta vacía. Aceptamos en ese carpeta.
Debería aparecernos así, dos framework con el nombre que nosotros pusimos.


Ahora ya podemos empezar a decompilar apk

2. Decompilando una apk.

Ahora vamos a File/New Proyect y:
  • En la pestaña Apktool, modificamos framework tag y escojemos el framework bajo el que está la apk que vamos a editar. Es decir, no useis un framework de CyanogenMOD para editar una apk de Sony, hay que usar el mismo framework y la misma versión de la apk.
  • Smali: Elegimos el API lever correcto, editamos una apk de Jelly Bean. API Level: 4.1 Jelly Bean
  • Import: Escogemos la apk que queremos decompilar y editar.
  • Por ultimo volvemos a project y damos un "SolutionName"
Se pondrá a decompilar, puede que tarde un rato. Depende del tamaño de la apk y la potencia de nuestro PC.


3.¿Que podemos hacer?
  • El compañero kassyan_123 nos explica como quitar el % de batería AQUI, el da el ejemplo basandose en APKTOOL. Nosotros ya tenemos la apk decompilada, solo tenemos que ir a ahí y cambiar la linea.
IM6
  • ¡A buscar como hacer cosas! :p


4.Compilar
Cuando acabemos de editar nuestro archivo simplemente hacemos click encima de el y damos a "Build project", nos entregará nuestra app compilada y firmada.


Normalmente la guarda en Mis Documentos/Virtuous Ten Studio/Projectsnombrequelehasdado/nombredelaapp/binary
Ahora solo tenemos que soltarla dentro de nuestro zip de la ROM.

Nota: VTS también nos permite editar archivos ".jar".


OCTAVO PASO: INTRODUCE MOD's DE TERCEROS EN TU ROM


Como veis realmente la parte más complicada de la cocina en Android es crear tus propios MODs, se requieren conocimientos de programación o tiempo buscando tutoriales. En todos los modelos de Android siempre encontraremos Mods hechos por teceros que podremos incluir en nuestra ROM.

No tiene mucha ciencia la cosa. Muchas veces basta con bajarte el MOD, descomprimirlo y soltar los archivos que tenga dentro en las misma carpetas; sustituyendo a los que hay por defecto.

Otras veces, estos MOD son más complejos y traen archivos nuevos o los archivos que sustituyen requieren otro tipo de permisos. En este caso hemos de darles estos permisos a la vez que instalamos la ROM, es decir, debemos editar el updater-script.
Lo primero debemos consultar el updater-script que trae nuestro MOD y hacer una lectura comprensiva de el. Tenemos que ver que permisos da, si elimina alguna aplicación, etc.
Una vez mirado los añadimos al updater-script de nuestra ROM.
Por ejemplo:

PRIMER UPDATER-SCRIPT DE UN MOD X
Código:
ui_print(" ");
ui_print(">>> Mount system...");
run_program("/sbin/mount", "/system");
run_program("/sbin/busybox","mount","/data");
ui_print(" ");
delete_recursive("/system/app/SystemUI.odex");
delete_recursive("/system/framework/android.policy.odex");
ui_print(">>> Extracting files...");
package_extract_dir("system", "/system");
package_extract_dir("data/", "/data/local");
ui_print(" ");
ui_print(">>> Unmount system...");
run_program("/sbin/umount", "/system");
run_program("/sbin/umount", "/data");
ui_print("Press thanks if it works :D ");
ui_print(">>> Reboot system...");
run_program("/sbin/sleep", "5");
run_program("/sbin/reboot");
¿Hay que añadir algo o solo con copiar los archivos que trae en sus respectivas carpetas nos sirve?
Depende. Fijate en los delete_recursive, ahí nos está elimando dos archivos. Pero SOLO elimina archivos odex, es decir si nuestra ROM es deodex no tenemos que eliminarlos. Si nuestra ROM es odex podemos eliminarlos a pelo en system/app o incluir estas dos lineas en nuestro updater-script. ¿Facil no?


SEGUNDO UPDATER-SCRIPT DE UN MOD Y
Código:
ui_print("Activating SONY Camera Driver");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin/mm-gs-camctrl-test");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin/MPQDvbCTestApp");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin/MPQStrMgrTest");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin/MPQUnitTest");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin/MPQVideoRendererTestApp");
ui_print("");
ui_print("Done...");
unmount("/system");
En este caso después de copiar los archivos en las carpetas correspondientes debemos añadir los permisos en azul a nuestro updater-script

Última edición por Kiamu Día 16/06/13 a las 20:11:35.
Responder Con Cita
Los siguientes 25 usuarios han agradecido a Kiamu su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #7  
Viejo 12/05/13, 21:45:46
Array

[xs_avatar]
Kiamu Kiamu no está en línea
Usuario muy activo
· Votos compra/venta: (5)
 
Fecha de registro: may 2012
Mensajes: 1,435

Añadidos futuros:
+ Crea tus tweaks init.d
+ Bootanimation personalizada
+ ftf de Kernel y Baseband
+ Obtener archivos a partir de un ftf

Agradecimientos:
Creo que debo agradecer este tutorial a:
  • a dsixda por su Android Kitchen.
  • al equipo de Virtuous Ten Studio, por darnos una herramientan tan util para editar archivos de Android bajo Windows.
  • rockernaxo de DevSXSTeam por su ayuda.
  • También a bastante gente que con sus guías y tutoriales han ayudado a mi y a otros muchos a manejarnos en Android. Merecen mención especial Yakandu y ElHechicero.
Otra gente que ha contribuido a este tutorial:
Marc0sgb

Última edición por Kiamu Día 16/06/13 a las 20:25:51.
Responder Con Cita
Los siguientes 27 usuarios han agradecido a Kiamu su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #8  
Viejo 12/05/13, 22:25:12
Array

[xs_avatar]
Yakandu Yakandu no está en línea
Usuario colaborador
· Votos compra/venta: (3)
 
Fecha de registro: abr 2011
Localización: Bilbaino Internacional
Mensajes: 5,176
Modelo de smartphone: Xperia S, Nexus 5, OPO, LG G4
Tu operador: Movistar
Pinta bien, estaré al tanto de ciertos pasos para mi ministock
Responder Con Cita
Los siguientes 2 usuarios han agradecido a Yakandu su comentario:
  #9  
Viejo 12/05/13, 22:32:26
Array

[xs_avatar]
perezagua8 perezagua8 no está en línea
Miembro del foro
 
Fecha de registro: nov 2012
Mensajes: 488
Modelo de smartphone: xperia s
Tu operador: Movistar
Muchas gracias kiamu, enserio!
Responder Con Cita
  #10  
Viejo 13/05/13, 00:45:25
Array

[xs_avatar]
rockernaxo rockernaxo no está en línea
Cocinero retirado
 
Fecha de registro: jul 2011
Localización: Pamplona
Mensajes: 2,128
Modelo de smartphone: GT-5830 ## LT-26i ## Mi3W
Tu operador: Movistar
Excelente trabajo Kiamu!!!!! Tiene una pinta estupenda y con explicaciones muy accesibles.

Mañana me paso para darte las gracias en todos lo post.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a rockernaxo su comentario:
  #11  
Viejo 13/05/13, 01:30:11
Array

[xs_avatar]
mclarens mclarens no está en línea
Usuario muy activo
· Votos compra/venta: (2)
 
Fecha de registro: ago 2011
Localización: Madrid
Mensajes: 1,660
Modelo de smartphone: Xiaomi Mi3
Tu operador: Vodafone
Genial, gran trabajo!
Responder Con Cita
  #12  
Viejo 13/05/13, 02:09:08
Array

[xs_avatar]
decibeles76 decibeles76 no está en línea
Miembro del foro
 
Fecha de registro: dic 2010
Localización: Lima-Perú
Mensajes: 164
Modelo de smartphone: LG G3 D855
Tu operador: Movistar
¡Genial! Como que lo empujas a uno al mundillo este de la cocina, espero animarme y hacer algunas pruebas con mi Xperia S ahora que Jelly Bean está a la vuelta de la esquina/ojala Aunque admito que me da algo de miedillo el dejar el teléfono como una bonita maqueta.
Responder Con Cita
  #13  
Viejo 13/05/13, 03:51:51
Array

[xs_avatar]
metroid_x metroid_x no está en línea
Usuario muy activo
 
Fecha de registro: nov 2010
Localización: Mexico
Mensajes: 2,527
Modelo de smartphone: Huawei
Tu operador: TELCEL
Kiamu eres grande

luego lo leo con mas calma y me pongo a tratar de hacer algo


Tema oficial y con chincheta
Responder Con Cita
Gracias de parte de:
  #14  
Viejo 13/05/13, 05:44:21
Array

[xs_avatar]
Teddinho Teddinho no está en línea
Miembro del foro
 
Fecha de registro: mar 2013
Localización: Santiago
Mensajes: 274
Modelo de smartphone: Nexus 4
Tu operador: Movistar
Esto es justamente lo que estaba esperando, estuve leyendo para meterme en el mundo de la cocina y con este curro pues nada que decir, a ponerle ganas y meterle mano a mi XS
Responder Con Cita
Gracias de parte de:
  #15  
Viejo 13/05/13, 06:07:34
Array

[xs_avatar]
Blackuis Blackuis no está en línea
Miembro del foro
 
Fecha de registro: ago 2012
Localización: Colombia
Mensajes: 158
Modelo de smartphone: Mate 10 Pro
Tu operador: Movistar
WOW !!!
Perfecto !!!
La habia estado buscando por mucho tiempo...

Estare moscas de nuevas actualiazciones...


Responder Con Cita
  #16  
Viejo 13/05/13, 09:34:42
Array

[xs_avatar]
joancargo joancargo no está en línea
Usuario muy activo
 
Fecha de registro: dic 2009
Localización: cerca lleida
Mensajes: 732
Modelo de smartphone: Iphone 12 mini
Tu operador: Movistar
Kiamu , fantástico el trabajo
Un 10 ya y chincheta !!
Gracias
Responder Con Cita
  #17  
Viejo 13/05/13, 15:48:54
Array

[xs_avatar]
SebbasVelasquez SebbasVelasquez no está en línea
Usuario muy activo
· Votos compra/venta: (6)
 
Fecha de registro: dic 2012
Localización: In The World
Mensajes: 806
Modelo de smartphone: Moto G
Tu operador: Vodafone
Muchísimas gracias
Hace mucho que estaba esperando y buscando un tutorial, para cocinarme alguna que otra rom
Gracias de nuevo
Responder Con Cita
Gracias de parte de:
  #18  
Viejo 13/05/13, 18:36:51
Array

[xs_avatar]
tonchimax tonchimax no está en línea
Cocinero veterano
 
Fecha de registro: nov 2011
Localización: Tenerife
Mensajes: 953
Modelo de smartphone: xperia s, z1, p8 lite, zuk z2 pro
Tu operador: Orange
buen trabajo compañero
Responder Con Cita
  #19  
Viejo 13/05/13, 21:37:22
Array

[xs_avatar]
thezeus thezeus no está en línea
Usuario muy activo
 
Fecha de registro: ene 2012
Localización: Mataró (Barcelona)
Mensajes: 609
Modelo de smartphone: Sony Xperia S | Samsung Galaxy Ace
Tu operador: Movistar
Eres un grande compañero
Responder Con Cita


  #20  
Viejo 14/05/13, 12:59:33
Array

[xs_avatar]
milocj milocj no está en línea
Betatester Oficial
· Votos compra/venta: (2)
 
Fecha de registro: ago 2012
Localización: VLC
Mensajes: 942
Modelo de smartphone: SONY XPERIA Z BLACK
Tu operador: Yoigo
Estupendo post, a la altura de su creador, un saludo!!
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   Portal | Indice > Foros Sony > Otros smartphones antiguos de Sony > Sony Xperia S > ROMs y desarrollo Xperia S



Hora actual: 10:47:34 (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 / 邮件联系 /