5,597,762 Members 36,661 Now Online
XDA Developers Android and Mobile Development Forum

[TUTORIAL] The updater-script completely explained

Tip us?
 
KINGbabasula
Old
(Last edited by KINGbabasula; 7th November 2013 at 06:42 PM.)
#1  
KINGbabasula's Avatar
Recognized Developer - OP
Thanks Meter 3034
Posts: 1,916
Join Date: Jan 2013
Location: Treviso

 
DONATE TO ME
Default [TUTORIAL] The updater-script completely explained

Hi all XDA Members
This is not at all an updater-script guide but an explanation

Example of updater-script:

Code:
assert(getprop("ro.product.device") == "janice" || getprop("ro.build.product") == "janice" || 
       getprop("ro.product.device") == "i9070" || getprop("ro.build.product") == "i9070" || 
       getprop("ro.product.device") == "GT-I9070" || getprop("ro.build.product") == "GT-I9070");
mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
set_perm(0, 0, 0644, "/tmp/backuptool.functions");
run_program("/tmp/backuptool.sh", "backup");
unmount("/system");
show_progress(0.500000, 0);
unmount("/system");
format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
package_extract_dir("recovery", "/system");
package_extract_dir("system", "/system");
symlink("/system/xbin/su", "/system/bin/su");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
        "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash",
        "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
        "/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
        "/system/xbin/brctl", "/system/xbin/bunzip2", "/system/xbin/bzcat",
        "/system/xbin/bzip2", "/system/xbin/cal", "/system/xbin/cat",
        "/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chgrp",
        "/system/xbin/chmod", "/system/xbin/chown", "/system/xbin/chroot",
        "/system/xbin/clear", "/system/xbin/cmp", "/system/xbin/comm",
        "/system/xbin/cp", "/system/xbin/cpio", "/system/xbin/crond",
        "/system/xbin/crontab", "/system/xbin/cut", "/system/xbin/date",
        "/system/xbin/dc", "/system/xbin/dd", "/system/xbin/depmod",
        "/system/xbin/devmem", "/system/xbin/df", "/system/xbin/diff",
        "/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
        "/system/xbin/dos2unix", "/system/xbin/du", "/system/xbin/echo",
        "/system/xbin/ed", "/system/xbin/egrep", "/system/xbin/env",
        "/system/xbin/expand", "/system/xbin/expr", "/system/xbin/false",
        "/system/xbin/fbsplash", "/system/xbin/fdisk", "/system/xbin/fgrep",
        "/system/xbin/find", "/system/xbin/flash_lock",
        "/system/xbin/flash_unlock", "/system/xbin/flashcp",
        "/system/xbin/flock", "/system/xbin/fold", "/system/xbin/free",
        "/system/xbin/freeramdisk", "/system/xbin/fstrim", "/system/xbin/fsync",
        "/system/xbin/ftpget", "/system/xbin/ftpput", "/system/xbin/fuser",
        "/system/xbin/getopt", "/system/xbin/grep", "/system/xbin/groups",
        "/system/xbin/gunzip", "/system/xbin/gzip", "/system/xbin/halt",
        "/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
        "/system/xbin/ifconfig", "/system/xbin/inetd", "/system/xbin/insmod",
        "/system/xbin/install", "/system/xbin/ionice", "/system/xbin/iostat",
        "/system/xbin/ip", "/system/xbin/kill", "/system/xbin/killall",
        "/system/xbin/killall5", "/system/xbin/less", "/system/xbin/ln",
        "/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
        "/system/xbin/lsmod", "/system/xbin/lsusb", "/system/xbin/lzcat",
        "/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
        "/system/xbin/man", "/system/xbin/md5sum", "/system/xbin/mesg",
        "/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
        "/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
        "/system/xbin/mknod", "/system/xbin/mkswap", "/system/xbin/mktemp",
        "/system/xbin/modinfo", "/system/xbin/modprobe", "/system/xbin/more",
        "/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
        "/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
        "/system/xbin/nbd-client", "/system/xbin/netstat", "/system/xbin/nice",
        "/system/xbin/nohup", "/system/xbin/nslookup", "/system/xbin/ntpd",
        "/system/xbin/od", "/system/xbin/patch", "/system/xbin/pgrep",
        "/system/xbin/pidof", "/system/xbin/ping", "/system/xbin/pipe_progress",
        "/system/xbin/pkill", "/system/xbin/pmap", "/system/xbin/poweroff",
        "/system/xbin/printenv", "/system/xbin/printf", "/system/xbin/ps",
        "/system/xbin/pstree", "/system/xbin/pwd", "/system/xbin/pwdx",
        "/system/xbin/rdev", "/system/xbin/readlink", "/system/xbin/realpath",
        "/system/xbin/renice", "/system/xbin/reset", "/system/xbin/resize",
        "/system/xbin/rev", "/system/xbin/rm", "/system/xbin/rmdir",
        "/system/xbin/rmmod", "/system/xbin/route", "/system/xbin/run-parts",
        "/system/xbin/rx", "/system/xbin/sed", "/system/xbin/seq",
        "/system/xbin/setconsole", "/system/xbin/setserial",
        "/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
        "/system/xbin/sha256sum", "/system/xbin/sha3sum",
        "/system/xbin/sha512sum", "/system/xbin/sleep", "/system/xbin/sort",
        "/system/xbin/split", "/system/xbin/stat", "/system/xbin/strings",
        "/system/xbin/stty", "/system/xbin/sum", "/system/xbin/swapoff",
        "/system/xbin/swapon", "/system/xbin/sync", "/system/xbin/sysctl",
        "/system/xbin/tac", "/system/xbin/tail", "/system/xbin/tar",
        "/system/xbin/taskset", "/system/xbin/tee", "/system/xbin/telnet",
        "/system/xbin/telnetd", "/system/xbin/test", "/system/xbin/tftp",
        "/system/xbin/tftpd", "/system/xbin/time", "/system/xbin/timeout",
        "/system/xbin/top", "/system/xbin/touch", "/system/xbin/tr",
        "/system/xbin/traceroute", "/system/xbin/true", "/system/xbin/ttysize",
        "/system/xbin/tune2fs", "/system/xbin/umount", "/system/xbin/uname",
        "/system/xbin/uncompress", "/system/xbin/unexpand", "/system/xbin/uniq",
        "/system/xbin/unix2dos", "/system/xbin/unlzma", "/system/xbin/unlzop",
        "/system/xbin/unxz", "/system/xbin/unzip", "/system/xbin/uptime",
        "/system/xbin/usleep", "/system/xbin/uudecode", "/system/xbin/uuencode",
        "/system/xbin/vi", "/system/xbin/watch", "/system/xbin/wc",
        "/system/xbin/wget", "/system/xbin/which", "/system/xbin/whoami",
        "/system/xbin/xargs", "/system/xbin/xz", "/system/xbin/xzcat",
        "/system/xbin/yes",
        "/system/xbin/zcat");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/cat", "/system/bin/chmod",
        "/system/bin/chown", "/system/bin/cmp", "/system/bin/cp",
        "/system/bin/date", "/system/bin/dd", "/system/bin/df",
        "/system/bin/dmesg", "/system/bin/du", "/system/bin/getevent",
        "/system/bin/getprop", "/system/bin/grep", "/system/bin/hd",
        "/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop",
        "/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice",
        "/system/bin/kill", "/system/bin/ln", "/system/bin/log",
        "/system/bin/ls", "/system/bin/lsmod", "/system/bin/lsof",
        "/system/bin/md5", "/system/bin/mkdir", "/system/bin/mount",
        "/system/bin/mv", "/system/bin/nandread", "/system/bin/netstat",
        "/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv",
        "/system/bin/ps", "/system/bin/r", "/system/bin/reboot",
        "/system/bin/renice", "/system/bin/restart", "/system/bin/rm",
        "/system/bin/rmdir", "/system/bin/rmmod", "/system/bin/route",
        "/system/bin/schedtop", "/system/bin/sendevent",
        "/system/bin/setconsole", "/system/bin/setprop", "/system/bin/sleep",
        "/system/bin/smd", "/system/bin/start", "/system/bin/stop",
        "/system/bin/sync", "/system/bin/top", "/system/bin/touch",
        "/system/bin/umount", "/system/bin/uptime", "/system/bin/vmstat",
        "/system/bin/watchprops",
        "/system/bin/wipe");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 0, 0755, 0755, "/system/addon.d");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
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(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0755, "/system/etc/init.d");
set_perm(0, 0, 0755, "/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(0, 2000, 0755, "/system/vendor");
set_perm(0, 2000, 0755, "/system/vendor/etc");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/lib");
set_perm(0, 0, 0644, "/system/vendor/lib/libbt-vendor.so");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/librank");
set_perm(0, 0, 06755, "/system/xbin/procmem");
set_perm(0, 0, 06755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
show_progress(0.200000, 0);
show_progress(0.200000, 10);
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
set_perm(0, 0, 0644, "/tmp/backuptool.functions");
run_program("/tmp/backuptool.sh", "restore");
delete("/system/bin/backuptool.sh");
delete("/system/bin/backuptool.functions");
show_progress(0.200000, 10);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
       write_raw_image("/tmp/boot.img", "/dev/block/mmcblk0p15"),
       delete("/tmp/boot.img"));
show_progress(0.100000, 0);
unmount("/system");
Quote:
1. getprop

Quote:
The assert getprop lines aren't a must but their use is to make a safer installation.
Example: This updater-script is for GT-I9070 so with that lines it will check in build.prop if product name matches.
If "ro.product.device is janice, i9070 or GT-I9070 the installation will continue. If not it will abort.
Quote:
2. mount

Quote:
Mount command will mount a partition as something.
Example: For GT-I9070 the /system partition is dev/block/mmcblk0p3
The partitions change device by device.
Quote:
3. package_extract_file

Quote:
This line extracts a specific file contained in the zip to a specific directory.
Example: This updater-script extracts backuptool.sh to the temporary directory /tmp
Quote:
4. set_perm

Quote:
These lines are needed to give the correct permissions to the files extracted.
Example: backuptool.sh needs 777 permission to be executed correctly.
Quote:
5. run_program

Quote:
This line execute a bash script (*.sh).
Example: backuptool.sh will be executed then after it will close itself and the updater-script will continue.
Quote:
6. unmount

Quote:
This command will unmount the specificated partition.
Example: In this case it will unmount system partition.
Quote:
7. format

Quote:
This command will format the specificated partition.
Example: This updater-script will format system partition. it needs to be unmounted before being formatted.
Quote:
8. package_extract_dir

Quote:
This command extracts a specificated folder to another folder.
Example: This updater-script extracts system folder to system partition.
Quote:
9. symlink

Quote:
This command links executable files to a file.
Example: busybox contains a lot of commands but they are all separated binaries that are linked to busybox binary by the symlinks.
Quote:
10. set_perm_recursive

Quote:
This command is the same as set_perm but for folders
Example: is used to set permissions of the folder system/etc/init.d
Quote:
11 . delete

Quote:
This command deletes a file
Example: In this updater-script is used to delete backuptool.sh.
Quote:
12. delete_recursive

Quote:
Same as delete but for folders
My Github

IF EVERYONE STARTS "JUST ASKING" IMAGINE THE MESS XDA WOULD BE

The Following 63 Users Say Thank You to KINGbabasula For This Useful Post: [ Click to Expand ]
 
KINGbabasula
Old
(Last edited by KINGbabasula; 26th July 2013 at 08:11 AM.)
#2  
KINGbabasula's Avatar
Recognized Developer - OP
Thanks Meter 3034
Posts: 1,916
Join Date: Jan 2013
Location: Treviso

 
DONATE TO ME
Aroma Installer

Folder structure:

Blue = Folders
Black = Files

META-INF
|--com
|..|--google
|.....|--android
|........|--aroma
|........|..|--exec_demo < Little executables to sleep or take a screenshot
|........|..|--fonts < Fonts: There must be a "small.png" for lowercase and a "big.png"
|........|..|--icons < The icons that will be showed if called by the aroma-config
|........|..|--langs < It may contain translations
|........|..|--splash < The splash image/s that are showed at the start as static or animation if called by aroma-config
|........|..|--themes < Can be chosen from the aroma-config
|........|..|--ttf < Fonts
|........|..|--unicode < Chinese and Cyrillic
|........|--aroma-config < File that controls the installation
|........|--update-binary < Executable
|........|--update-binary-installer < Executable
|........|--updater-script < File that controls the installation
|--CERT.RSA < Sign files
|--CERT.SF < Sign files
|--MANIFEST.MF < Sign files


Will come soon...
My Github

IF EVERYONE STARTS "JUST ASKING" IMAGINE THE MESS XDA WOULD BE

The Following 17 Users Say Thank You to KINGbabasula For This Useful Post: [ Click to Expand ]
 
KINGbabasula
Old
#3  
KINGbabasula's Avatar
Recognized Developer - OP
Thanks Meter 3034
Posts: 1,916
Join Date: Jan 2013
Location: Treviso

 
DONATE TO ME
Reserved 2
My Github

IF EVERYONE STARTS "JUST ASKING" IMAGINE THE MESS XDA WOULD BE

 
juzerali
Old
#4  
Senior Member
Thanks Meter 9
Posts: 141
Join Date: May 2011
Location: Karachi
This is awesome! thanks!
 
willverduzco
Old
#5  
willverduzco's Avatar
Portal Administrator
Thanks Meter 2007
Posts: 5,950
Join Date: Apr 2010
Location: ǝɹoɯıʇlɐq, MD̡̳̮̖͖ͮ̎̊̄

 
DONATE TO ME
Thanks for creating this guide. I've featured on the XDA Portal.
Want something on the XDA Portal? Send us a news tip! - [moderate | film | foto | develop]
The Following 6 Users Say Thank You to willverduzco For This Useful Post: [ Click to Expand ]
 
Kurotsuchi
Old
#6  
Kurotsuchi's Avatar
Member
Thanks Meter 9
Posts: 71
Join Date: Aug 2013
I am lucky because I really needed help, this may not be so related but I made my Rom using Android Kitchen, but I get the Status 0 ERROR which is related to the '' updater-script '' as described in the original thread

Status 0 might be two things: 1) You used an update-script (Amend format, which is very old) when you should be using an updater-script (Edify format), or the other way around; OR 2) Your updater-script is using the "MTD" partition type when mounting a partition rather than another type such as EMMC (and thus, you need the device defined under the kitchen's /tools/edify_defs folder).

do you have any clue for this buddy ? none of the 2 solutions above worked for me.

Thanks again, and sorry if it's not so related to your thread!
 
KINGbabasula
Old
#7  
KINGbabasula's Avatar
Recognized Developer - OP
Thanks Meter 3034
Posts: 1,916
Join Date: Jan 2013
Location: Treviso

 
DONATE TO ME
Quote:
Originally Posted by Kurotsuchi View Post
I am lucky because I really needed help, this may not be so related but I made my Rom using Android Kitchen, but I get the Status 0 ERROR which is related to the '' updater-script '' as described in the original thread

Status 0 might be two things: 1) You used an update-script (Amend format, which is very old) when you should be using an updater-script (Edify format), or the other way around; OR 2) Your updater-script is using the "MTD" partition type when mounting a partition rather than another type such as EMMC (and thus, you need the device defined under the kitchen's /tools/edify_defs folder).

do you have any clue for this buddy ? none of the 2 solutions above worked for me.

Thanks again, and sorry if it's not so related to your thread!
Please post your updater script here and i will take a look at it

Inviato dal mio GT-I9070 con Tapatalk 2
My Github

IF EVERYONE STARTS "JUST ASKING" IMAGINE THE MESS XDA WOULD BE

 
chemicalrage
Old
#8  
Senior Member
Thanks Meter 660
Posts: 1,021
Join Date: Oct 2011
Extremely HQ thread. Btw a typo in the 9th point. bynaries -> binaries.

Device: Samsung Galaxy S4 Mini (I9192 Duos) + Transcend microSDHC 32GB Class 10
ROM: Stock 4.2.2 - Rooted
Kernel: I9192-Custom-Kernel-Silviu-01012014-v3
Recovery: CWM 6.0.4.6
The Following User Says Thank You to chemicalrage For This Useful Post: [ Click to Expand ]
 
Kurotsuchi
Old
#9  
Kurotsuchi's Avatar
Member
Thanks Meter 9
Posts: 71
Join Date: Aug 2013
Quote:
Originally Posted by KINGbabasula View Post
Please post your updater script here and i will take a look at it

Inviato dal mio GT-I9070 con Tapatalk 2
Thanks for the answer buddy, here it's, ( this is for Galaxy note 8.0 ) my previous phones rom didn't have this problem because it was NOT using
MTD.


Quote:
show_progress(0.1, 0);
format("MTD", "system");
mount("MTD", "system", "/system");
package_extract_dir("system", "/system");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/playback");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/ln");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/touchinput");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/wipe");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/reboot");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/mount");
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(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");
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);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
write_raw_image("/tmp/boot.img", "boot"),
delete("/tmp/boot.img"));
show_progress(0.2, 10);
unmount("/system");
 
yashade2001
Old
#10  
yashade2001's Avatar
Senior Member
Thanks Meter 229
Posts: 328
Join Date: Sep 2012
Location: Ankara

 
DONATE TO ME
Thanx for the perfect tuto .

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes