|
||
|
|
|
|||||||
| Tutoriales Manuales, tutos, recetas, postres, etc |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Cómo editar tus propios updater-script e instrucciones usadas
¿Que es el updater-script?
Updater-script es un archivo escrito en el lenguaje de programación de scripts "edify" *que da instrucciones al recovery para realizar ciertas tareas. El updater-script se localiza en /META-INF/com/google/android/updater-script en el flashable zip. Algunas reglas básicas:
Para editarlo necesitaremos 3 cosas:
Funciones utilizadas ui_print(” “); – Graba instrucciones que queramos que aparezcan en el recovery cuando se ejecuta el updater-script. Se puede escribir cualquier cosa entre comillas dobles.
mount(“filesystem”, “partition_type”, “partition”, “mountpoint”); – Usado para montar una determinada partición.
w representa permiso de escritura x representa permiso de ejecución valores numéricos: 1 : –x 2 : -w- 3 : -wx 4 : r– 5 : r-x 6 : rw- 7 : rwx Puede usar la aplicación Root Explorer para ver los permisos de cualquier archivo o directorio. write_raw_image(“file_path”, “filename”); – Se utiliza para escribir un archivo de imagen *al dispositivo.
run_program("script.sh" "action");*– Variante del anterior, el cual permite realizar acciones con los scripts que lo permitan.
unmount(“mountpoint”); – Usado para desmontar particiones.
Ejemplo de updater-script (Explicado): Código:
# UPDATER-SCRIPT PROVIDED BY QAMRUL HAQUE # FOR GUIDE VISIT: WWW.MICROMAXUNITE2.NET Código:
ui_print(“”); Código:
show_progress(3.14, 150); Código:
ui_print(“—————-“); ui_print(” * ROM NAME * /”); ui_print(” VERSION NAME /”); ui_print(“—————-“); ui_print(“”); ROM NAME en la 2ª línea VERSION NAME en la 3ª línea —————- en la 4ª línea y en blanco en la 5ª línea. Código:
ui_print(“Formatting partitions…”); format(“ext4”, “EMMC”, “/dev/block/mmcblk0p5”, "/system"); format(“ext4”, “EMMC”, “/dev/block/mmcblk0p6”, "/cache"); format(“ext4”, “EMMC”, “/dev/block/mmcblk0p7”, "/data"); 2ª instrucción formateará la partición /system. Usa esta opción si flasheas nueva rom. No usar en actualización. 3ª instrucción formateará la partición /cache. 4ª instrucción formateará la partición /data. No usar en actualización. Código:
ui_print(“Mounting partitions…”); mount(“ext4”, “EMMC”, “/dev/block/mmcblk0p5”, “/system”); mount(“ext4”, “EMMC”, “/dev/block/mmcblk0p7”, “/data”); 2ª y 3ª instrucción montarán las particiones /system y /data respectivamente. Las particiones deben montarse para borrar archivos viejos y copiar archivos nuevos. Código:
ui_print(“Extracting files…”); package_extract_dir(“data”, “/data”); package_extract_dir(“system”, “/system”); Código:
ui_print(“Creating symlinks…”);
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/ctrlaltdel");
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/lsusb");
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("mksh", "/system/bin/sh");
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");
symlink("/system/fonts/Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("/system/fonts/Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("/factory/hdcp.keys", "/system/vendor/firmware/hdcp.keys");
symlink("/data/etc/wifi/wl1271-nvs.bin", "/system/etc/firmware/ti-connectivity/wl1271-nvs.bin");
Crea los enlaces simbólicos necesarios Código:
ui_print(“Setting permissions…”); set_perm_recursive(1000, 1000, 0771, 0644, “/data/app”); set_perm_recursive(0, 0, 0755, 0644, “/system”); set_perm_recursive(0, 0, 0777, 0777, “/system/etc/init.d”); 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_pair_devlist.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(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, 0, 06755, “/system/xbin/su”); set_perm(0, 1000, 0755, “/system/xbin/busybox”); Código:
ui_print(“Flashing kernel…”); assert(package_extract_file(“boot.img”, “/tmp/boot.img”), write_raw_image(“/tmp/boot.img”, “boot”), delete(“/tmp/boot.img”); Código:
ui_print(“Wiping dalvik-cache…”); delete_recursive(“/data/dalvik-cache”); Código:
ui_print(“Unmounting partitions…”); unmount(“/system”); unmount(“/data”); Código:
ui_print(“Finished update”); ui_print(“Reboot your phone”); ui_print(“”); ui_print(“—————-“); ui_print(” * CREDITS: * /”); ui_print(” * *NAME1 * * /”); ui_print(” * *NAME2 * * /”); ui_print(” * *NAME3 * * /”); ui_print(“—————-“); ui_print(“”); Ejemplo de updater-script (Completo): Código:
# UPDATER-SCRIPT PROVIDED BY QAMRUL HAQUE
# FOR GUIDE VISIT: WWW.MICROMAXUNITE2.NET
ui_print(“”);
show_progress(3.14, 150);
ui_print(“—————-“);
ui_print(” * ROM NAME * /”);
ui_print(” VERSION NAME /”);
ui_print(“—————-“);
ui_print(“”);
ui_print(“Formatting partitions…”);
format(“ext4”, “EMMC”, “/dev/block/mmcblk0p5”, "/system");
format(“ext4”, “EMMC”, “/dev/block/mmcblk0p6”, "/cache");
format(“ext4”, “EMMC”, “/dev/block/mmcblk0p7”, "/data");
ui_print(“Mounting partitions…”);
mount(“ext4”, “EMMC”, “/dev/block/mmcblk0p5”, “/system”);
mount(“ext4”, “EMMC”, “/dev/block/mmcblk0p7”, “/data”);
ui_print(“Extracting files…”);
package_extract_dir(“data”, “/data”);
package_extract_dir(“system”, “/system”);
ui_print(“Creating symlinks…”);
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/ctrlaltdel");
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/lsusb");
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("mksh", "/system/bin/sh");
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");
symlink("/system/fonts/Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("/system/fonts/Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("/factory/hdcp.keys", "/system/vendor/firmware/hdcp.keys");
symlink("/data/etc/wifi/wl1271-nvs.bin", "/system/etc/firmware/ti-connectivity/wl1271-nvs.bin");
ui_print(“Setting permissions…”);
set_perm_recursive(1000, 1000, 0771, 0644, “/data/app”);
set_perm_recursive(0, 0, 0755, 0644, “/system”);
set_perm_recursive(0, 0, 0777, 0777, “/system/etc/init.d”);
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_pair_devlist.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(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, 0, 06755, “/system/xbin/su”);
set_perm(0, 1000, 0755, “/system/xbin/busybox”);
ui_print(“Flashing kernel…”);
assert(package_extract_file(“boot.img”, “/tmp/boot.img”),
write_raw_image(“/tmp/boot.img”, “boot”),
delete(“/tmp/boot.img”);
ui_print(“Wiping dalvik-cache…”);
delete_recursive(“/data/dalvik-cache”);
ui_print(“Unmounting partitions…”);
unmount(“/system”);
unmount(“/data”);
ui_print(“Finished update”);
ui_print(“Reboot your phone”);
ui_print(“”);
ui_print(“—————-“);
ui_print(” * CREDITS: * /”);
ui_print(” * *NAME1 * * /”);
ui_print(” * *NAME2 * * /”);
ui_print(” * *NAME3 * * /”);
ui_print(“—————-“);
ui_print(“”);
Fuente: http://www.droidgyan.com/updater-script
__________________
|
|
|
![]() |
Estás aquí
|
||||||
|
||||||