[DEV] - Meta-Inf folder for custom ROMS - AT&T Samsung Galaxy S 4 Android Development

I believe this is the meta-inf we will be using. I created in in part on the OTA and my knowledge of the mount points.
I invite anyone to take a look at it and give feedback.
Although I trust my own work, a second set of eyes never hurts.
And of course... Sharing is Caring!
I am also uploading the stock rooted ROMS using this meta-inf as I speak. Good thing they are tiny, lol
Note: For security purposes you should use 755 on the init.d instead of 777. Thanks jcase for the info!

Code:
show_progress(0.1, 0);
ui_print("-------------------------");
ui_print("| www.scottsroms.com |");
ui_print("-------------------------");
ui_print("| Stock Root - i337 |");
ui_print("-------------------------");
format("ext4", "EMMC", "/dev/block/mmcblk0p16");
mount("ext4", "EMMC", "/dev/block/mmcblk0p16", "/system");
package_extract_dir("system", "/system");
symlink("dumpstate", "/system/bin/dumpcrash");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("debuggerd", "/system/bin/csview");
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/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/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");
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, 1000, 04750, "/system/bin/diag_mdlog");
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(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(0, 0, 0644, "/system/vendor/etc/audio_effects.conf");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/lib/hw");
set_perm(0, 2000, 0755, "/system/vendor/lib/hw");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/left_eye-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/nose_base-y0-yi45-p0-pi45-r0-ri20.lg_32/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/multi_pose_face_landmark_detectors.7/right_eye-y0-yi45-p0-pi45-r0-ri20.lg_32-2/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-r0-ri30.4a-v24/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rn30-ri30.5-v24/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/detection/yaw_roll_face_detectors.6/head-y0-yi45-p0-pi45-rp30-ri30.5-v24/full_model.bin");
set_perm(0, 0, 0644, "/system/vendor/pittpatt/models/recognition/face.face.y0-y0-22-b-N/full_model.bin");
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(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_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
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);
package_extract_file("boot.img", "/dev/block/mmcblk0p20");
show_progress(0.2, 10);
unmount("/system");
ui_print("-------------------------");
ui_print("| All Done! |");
ui_print("-------------------------");
show_progress(0.2, 10);
unmount("/system");

I dont see init.d perms at a quick glance assuming by rom time theyd be there
sgh-i747(d2att)(sgs3) on latest cm10.1 or ultimatum

howtomen said:
I dont see init.d perms at a quick glance assuming by rom time theyd be there
sgh-i747(d2att)(sgs3) on latest cm10.1 or ultimatum
Click to expand...
Click to collapse
Thanks for checking... They are the second line after the Symlinks. I think it should be fine there because I dont see anything that over writes.

scrosler said:
I believe this is the meta-inf we will be using. I created in in part on the OTA and my knowledge of the mount points.
I invite anyone to take a look at it and give feedback.
Although I trust my own work, a second set of eyes never hurts.
And of course... Sharing is Caring!
I am also uploading the stock rooted ROMS using this meta-inf as I speak. Good thing they are tiny, lol
Click to expand...
Click to collapse
This is not going to work for all roms, the requirements will differ from rom to rom, and firmware version to firmware version. For instance, what about where they place su? Some will place in bin, some will place in xbin. Some will manually install busybox, some won't have busybox. I think this is best left to the individual developer, rather than use a catch all.
Also your permissions for init.d are wrong, and leaving the device vulnerable to rouge apps whenever an authorized application or user remounts system as rw. Watch for remount, make edits/drop scripts, gain a backdoor on next reboot.
Try changing
Code:
set_perm_recursive(0, 0, 0777, 0777, "/system/etc/init.d");
to
Code:
set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");

jcase said:
This is not going to work for all roms, the requirements will differ from rom to rom, and firmware version to firmware version. For instance, what about where they place su? Some will place in bin, some will place in xbin. Some will manually install busybox, some won't have busybox. I think this is best left to the individual developer, rather than use a catch all.
Also your permissions for init.d are wrong, and leaving the device vulnerable to rouge apps whenever an authorized application or user remounts system as rw. Watch for remount, make edits/drop scripts, gain a backdoor on next reboot.
Try changing
Code:
set_perm_recursive(0, 0, 0777, 0777, "/system/etc/init.d");
to
Code:
set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
Click to expand...
Click to collapse
Yeah, these are the generic scripts with modified mount points and firmware symlinks. I figure if the developer knows what they are doing they will know how to remove the busybox install script and mod the su location. Thats the basic part.
The intent was more so to have the mount points mapped properly so as to eliminate any guessed and make it simple.
Noted on the init.d but on the same note I view it like this...
Why would you be installing software you cant trust on a rooted phone? Seems like you are already involved in risky behavior.

scrosler said:
Yeah, these are the generic scripts with modified mount points and firmware symlinks. I figure if the developer knows what they are doing they will know how to remove the busybox install script and mod the su location. Thats the basic part.
The intent was more so to have the mount points mapped properly so as to eliminate any guessed and make it simple.
Noted on the init.d but on the same note I view it like this...
Why would you be installing software you cant trust on a rooted phone? Seems like you are already involved in risky behavior.
Click to expand...
Click to collapse
Few people have the time and skill to audit every app they install. Even as someone who does it for a living, I don't even have the time to hit them all. Why leave a gaping whole when the fix is simple, non intrusive and easy?

jcase said:
Few people have the time and skill to audit every app they install. Even as someone who does it for a living, I don't even have the time to hit them all. Why leave a gaping whole when the fix is simple, non intrusive and easy?
Click to expand...
Click to collapse
Right, I get you there. I am asking the following so I can understand more about it not to challenge your input...
Wouldn't a program, to write to /system, to begin with, have to ask for SU permissions? Or is this a trade secret that you would not be able to divulge in a public forum?

scrosler said:
Right, I get you there. I am asking the following so I can understand more about it not to challenge your input...
Wouldn't a program, to write to /system, to begin with, have to ask for SU permissions? Or is this a trade secret that you would not be able to divulge in a public forum?
Click to expand...
Click to collapse
Look at this guide on linux file permissions for a better understanding http://www.tuxfiles.org/linuxhelp/filepermissions.html
Why would it need to be root? You have it world writable.
Here is one possible scenario
Rouge app monitors the mount options on system, waiting for a program to remount it. Say Supersu (or any common root app that occasionally remounts system partition to preform a common function) decides it needs to update su, and remounts system (or worse some rom dev who doesn't know what he is doing leaves system mounted rw).
Our rouge app detects remount of the system partition, it is now writable if permissions allow. Sine you left the init.d dir world writable, our rouge app can freely write to it without any additional permissions. It decides to drop it's own script that drops a root shell.
Then it can wait for the user to reboot, present a fake prompt informing them that the need to reboot, or use a reboot vulnerability to force the reboot (search my github and you will find a few I found, should be patched now).
Device reboots, runs the script, cat sh > backdoor, chmod 06755 backdoor. Now the app can get root access without permission.
TL;DR: dont hide the keys to your house under the welcome mat

Ok gotcha! Thats what I didint understand but makes sense now. I noted the suggested changes in both threads and will edit the init.d in the meta inf folder when I get out of work.
Thanks for taking the time to explain.
-Scott

Where did you place the Meta-INF files? I know system files goto system/framework but I cant find where Meta-INF files go. I'm using a root file manager.

chipdawg said:
Where did you place the Meta-INF files? I know system files goto system/framework but I cant find where Meta-INF files go. I'm using a root file manager.
Click to expand...
Click to collapse
This is not for u. Just stop. This goes no where near in /system nor do u need to use this with a root explorer
sgh-i337 using some sort of ultimatum. sgs4 life

I installed a mod without using Meta-INF files. I cannot launch apps after download. I get a black screen.

chipdawg said:
I installed a mod without using Meta-INF files. I cannot launch apps after download. I get a black screen.
Click to expand...
Click to collapse
U realize meta inf folder has nothing to do with a meta inf folder. These files are to run a install things on a recovery. They never touch ur /system so ur not placing them anywhere. Please dont mess with this unless u know what ur doing. This wont make u get a black screen.
sgh-i337 using some sort of ultimatum. sgs4 life

howtomen said:
U realize meta inf folder has nothing to do with a meta inf folder. These files are to run a install things on a recovery. They never touch ur /system so ur not placing them anywhere. Please dont mess with this unless u know what ur doing. This wont make u get a black screen.
sgh-i337 using some sort of ultimatum. sgs4 life
Click to expand...
Click to collapse
I'm just trying to out why I cant run NEW apps after installing a mod. The mod works but now I cant update or run new apps.

chipdawg said:
I'm just trying to out why I cant run NEW apps after installing a mod. The mod works but now I cant update or run new apps.
Click to expand...
Click to collapse
going back to stock or your backup you made before you installed the mod will help you

chipdawg said:
I'm just trying to out why I cant run NEW apps after installing a mod. The mod works but now I cant update or run new apps.
Click to expand...
Click to collapse
Why not go to the mods discussion page and ask? Sounds like you either did not know what you were doing and installed something for a different phone, or you don't know what you are doing and messed up an install.
Sent from my SAMSUNG-SGH-I337 using Tapatalk 4 Beta

scrosler said:
I believe this is the meta-inf we will be using. I created in in part on the OTA and my knowledge of the mount points.
I invite anyone to take a look at it and give feedback.
Although I trust my own work, a second set of eyes never hurts.
And of course... Sharing is Caring!
I am also uploading the stock rooted ROMS using this meta-inf as I speak. Good thing they are tiny, lol
Note: For security purposes you should use 755 on the init.d instead of 777. Thanks jcase for the info!
Click to expand...
Click to collapse
Sir can you help with META-INF folder for my device?

howtomen said:
I dont see init.d perms at a quick glance assuming by rom time theyd be there
sgh-i747(d2att)(sgs3) on latest cm10.1 or ultimatum
Click to expand...
Click to collapse
How about Note 3 SM-N9005 running android 5.0 lollipop?

howtomen said:
I dont see init.d perms at a quick glance assuming by rom time theyd be there
sgh-i747(d2att)(sgs3) on latest cm10.1 or ultimatum
Click to expand...
Click to collapse
Please CICI any file put it in the rum does not work

Related

[Q] help with updater script

ok when i go to install my ROM CWM says error 6 installation aborted
here is my updater script:
Code:
show_progress(0.1, 0);
mount("MTD", "system", "/system");
delete_recursive("/system");
package_extract_dir("system", "/system");
symlink("dumpstate", "/system/bin/dumpcrash");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("debuggerd", "/system/bin/csview");
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/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/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");
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(0, 0, 06755, "/system/bin/su");
symlink("/system/bin/su", "/system/xbin/su");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor");
set_perm_recursive(0, 0, 0755, 0644, "/system/vendor/firmware");
set_perm(0, 2000, 0755, "/system/vendor/firmware");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
show_progress(0.1, 10);
show_progress(0.2, 0);
show_progress(0.2, 10);
flash_zimage
unmount("/system");
any fix?
I'm not sure I follow your script for what the purpose of the script is.
This does not look like a rom installation script is what I mean. At least not for a stock based ROM.
tdunham said:
I'm not sure I follow your script for what the purpose of the script is.
This does not look like a rom installation script is what I mean.
Click to expand...
Click to collapse
it is i use the android kitchen
Ok gotcha. First of all, I'm not an expert on scripts and I'm not sure how much you know about the installer scripts...
That being said, the mount command does not look correct for our file system. The line:
package_extract_dir("system", "/system");
is correct but if you're installing a ROM this is not the only directory that you are working with. There are others that need to be removed and replaced with the new files as well.
Is the kitchen something that creates these scripts for you and you're just wondering why they do not work?
tdunham said:
Ok gotcha. First of all, I'm not an expert on scripts and I'm not sure how much you know about the installer scripts...
That being said, the mount command does not look correct for our file system. The line:
package_extract_dir("system", "/system");
is correct but if you're installing a ROM this is not the only directory that you are working with. There are others that need to be removed and replaced with the new files as well.
Is the kitchen something that creates these scripts for you and you're just wondering why they do not work?
Click to expand...
Click to collapse
i would like to make an updater script that works to flash and test my ROM. what else could i use to make one?
oh and the kitchen thread can be found here http://forum.xda-developers.com/showthread.php?t=1227549
jamcar said:
i would like to make an updater script that works to flash and test my ROM. what else could i use to make one?
Click to expand...
Click to collapse
The best thing to do is to download all sorts of flash files. From full ROMs, kernels, modems, assorted custom installs like themes and see how the 'pros' write their own code and determine what it is designed to do. This is the easiest way to learn is by example. I am not suggesting you steal their code but many things are standard, like mounting file systems and copy/delete/symlink commands are all standard.
But you have to be very careful because if you are flashing a rom and the partition command is not correct, you can really mess up the phone too.
---------- Post added at 10:07 PM ---------- Previous post was at 09:45 PM ----------
jamcar said:
i would like to make an updater script that works to flash and test my ROM. what else could i use to make one?
oh and the kitchen thread can be found here http://forum.xda-developers.com/showthread.php?t=1227549
Click to expand...
Click to collapse
Go by example. See how the other developers code the scripts to install their ROMs and learn what the code is and how it works. The installer script can be difficult to learn at first because it looks complicated but it actually a very basic command set that takes time and practice to comprehend properly.
Like I said, start with small scripts and learn what they do. A ROM script is exactly the same but they can be overwhelming just because they are so long.

Updater Script: All the things I need?

I'm trying to edit an Updater Script for a ROM I created, but I don't know where some things are missing. I edited Updater-/Aroma-Scripts before, but changing things for a totally different ROM is more difficult. I can install the ROM and boot, but after the bootanimation the phone reboots over and over.
Is there a rule that says which commands I need if I add specific files etc.? Currently I've those lines (without mounting etc.):
Code:
format("MTD", "system");
format("MTD", "cache");
mount("MTD", "system", "/system");
mount("MTD", "userdata", "/data");
package_extract_dir("system", "/system");
package_extract_dir("data", "/data");
symlink("toolbox", "/system/bin/start");
symlink("toolbox", "/system/bin/lsmod");
symlink("toolbox", "/system/bin/r");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/ifconfig");
symlink("toolbox", "/system/bin/ionice");
symlink("toolbox", "/system/bin/schedtop");
symlink("toolbox", "/system/bin/wipe");
symlink("toolbox", "/system/bin/reboot");
symlink("toolbox", "/system/bin/rmdir");
symlink("toolbox", "/system/bin/route");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/lsof");
symlink("toolbox", "/system/bin/getevent");
symlink("toolbox", "/system/bin/mkdir");
symlink("toolbox", "/system/bin/netstat");
symlink("toolbox", "/system/bin/renice");
symlink("toolbox", "/system/bin/uptime");
symlink("mksh", "/system/bin/sh");
symlink("toolbox", "/system/bin/smd");
symlink("toolbox", "/system/bin/sync");
symlink("toolbox", "/system/bin/mount");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/top");
symlink("toolbox", "/system/bin/log");
symlink("toolbox", "/system/bin/sendevent");
symlink("toolbox", "/system/bin/ps");
symlink("toolbox", "/system/bin/dmesg");
symlink("toolbox", "/system/bin/umount");
symlink("toolbox", "/system/bin/kill");
symlink("toolbox", "/system/bin/stop");
symlink("toolbox", "/system/bin/newfs_msdos");
symlink("toolbox", "/system/bin/iftop");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/rmmod");
symlink("toolbox", "/system/bin/setconsole");
symlink("toolbox", "/system/bin/mv");
symlink("toolbox", "/system/bin/rm");
symlink("toolbox", "/system/bin/id");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/hd");
symlink("toolbox", "/system/bin/ctrlaltdel");
symlink("toolbox", "/system/bin/sleep");
symlink("toolbox", "/system/bin/ls");
symlink("toolbox", "/system/bin/cmp");
symlink("toolbox", "/system/bin/insmod");
symlink("toolbox", "/system/bin/nandread");
symlink("toolbox", "/system/bin/date");
symlink("toolbox", "/system/bin/dd");
symlink("toolbox", "/system/bin/getprop");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/df");
symlink("toolbox", "/system/bin/touch");
symlink("toolbox", "/system/bin/ioctl");
symlink("toolbox", "/system/bin/setprop");
symlink("toolbox", "/system/bin/notify");
symlink("toolbox", "/system/bin/ln");
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");
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(1000, 1000, 0771, 0644, "/data/app");
set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm(0, 0, 0755, "/system/etc/be_movie");
set_perm(0, 0, 0755, "/system/etc/be_photo");
set_perm(0, 0, 06755, "/system/bin/su");
symlink("/system/bin/su", "/system/xbin/su");
set_perm(0, 2000, 0755, "/system/bin/sysinit");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 0777, "/system/xbin/sqlite3");
set_perm(0, 0, 0777, "/system/xbin/zipalign");
set_perm_recursive(0, 0, 0755, 0644, "/system/lib/modules");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
unmount("/system");
unmount("/data");
I'm not sure about a few lines because I saw different values in other ROMs.
Code:
set_perm_recursive(0, 2000, 0777, 0777, "/system/etc/init.d");
set_perm_recursive(0 ,0 , 0755, 0755, "/system/etc/init.d");
Does it depend on the way of adding init.d support? I added it with DoomLords method:
Code:
set_perm(0, 0, 0755, "/system/xbin/busybox-installer");
run_program("/sbin/sh", "/system/xbin/busybox-installer");
delete("/system/xbin/busybox-installer");
Do I need the busybox installer or is it enough if busybox is in /system/xbin/?
Do I need to set permissions for init.d scripts (V6 SuperCharger)?
Code:
symlink("/data/etc/wifi/wl1271-nvs.bin","/system/etc/firmware/ti-connectivity/wl1271-nvs.bin");
Do I need to add this file or not? Some ROMS have it, others not, even if the installation process is the same.
I searched a lot but in nearly every topic there are only questions to specific problems. Most of the guides to the updater scripts doesn't cover the permissions and symlinking.
Do these not help?
http://forum.xda-developers.com/showthread.php?t=1345296
http://www.londatiga.net/it/how-to-create-android-update-zip-package/
Thanks, but they don't explain which symlinks I've to do or which permissions I've to set that everything works. I'm sorry, but I don't know where to start to get this knowledge. I looked into two ROMs, but they're different in terms of that. I think I've to start all over or download a third one etc. etc.
Daniel D. said:
I think I've to start all over or download a third one etc. etc.
Click to expand...
Click to collapse
Best way to learn imo.
I know, but I thought it would be easier at this point.
Thank you.
I tried it again with a script build from another ROM but I always get reboots after the bootanimation. What could that be? build.prop problems? I don't get it, I changed a few .apk's, added init.d support and the Xperia S keyboard. EVERYTHING works if I flash it manually... I can't even post an error log or something.
I looked through the files again: There are no big differences between my ROM and others. Hmm, perhaps the way I implemented init.d support. F***, I'll look after it tomorrow.
Daniel D. said:
I tried it again with a script build from another ROM but I always get reboots after the bootanimation. What could that be? build.prop problems? I don't get it, I changed a few .apk's, added init.d support and the Xperia S keyboard. EVERYTHING works if I flash it manually... I can't even post an error log or something.
I looked through the files again: There are no big differences between my ROM and others. Hmm, perhaps the way I implemented init.d support. F***, I'll look after it tomorrow.
Click to expand...
Click to collapse
you can always get logs. even in a boot-loop situation.
http://forum.xda-developers.com/showthread.php?p=18195325
i highly recommend not using someone elses scripts and making your own using dixsidias and such.
Pvy
Thanks for your answer. Most of the updater-scripts are equal except of a few things (I deleted lines that I don't need, but I don't know if there are missing lines I need ). The most annoying problem is the reboot before I can add the pin code after the first boot, everything else "works" until then.
I hope this will be another way of creating a ROM: Install the stock ROM, add the apk's and apps and tweaks that I want and pull this on my computer and try to build the ROM from these files. But: There will be the updater-scipt before! Let's see if this is problem-solving approach. I mean there are a lot of tutorials, but most of them doesn't cover the part with the updater-script as I wrote above (which symlinks do I need, which permissions do I have to set). Perhaps I've another problem than symlinking or permissions.
I'll try to get a log with your topic, but I didn't see a possibility to get it during boot!? I'll try it out...
Wow, you're a hero!! Thanks for this. I've no dbus.conf file in /system/etc/. Let's start here... Even if my original folder of .587 the file is missing.
Daniel D. said:
Thanks for your answer. Most of the updater-scripts are equal except of a few things (I deleted lines that I don't need, but I don't know if there are missing lines I need ). The most annoying problem is the reboot before I can add the pin code after the first boot, everything else "works" until then.
I hope this will be another way of creating a ROM: Install the stock ROM, add the apk's and apps and tweaks that I want and pull this on my computer and try to build the ROM from these files. But: There will be the updater-scipt before! Let's see if this is problem-solving approach. I mean there are a lot of tutorials, but most of them doesn't cover the part with the updater-script as I wrote above (which symlinks do I need, which permissions do I have to set). Perhaps I've another problem than symlinking or permissions.
I'll try to get a log with your topic, but I didn't see a possibility to get it during boot!? I'll try it out...
Wow, you're a hero!! Thanks for this. I've no dbus.conf file in /system/etc/. Let's start here... Even if my original folder of .587 the file is missing.
Click to expand...
Click to collapse
haha np,
i used to cheat to make my script.
i used to make a recovery image and copy it into dixidias kitchen and generate a updater script from that
the reason there is no tutorials as it changes with every single update and on every fone. there are common parts but they do change.
Pvy

HandyBesitzer's Custom ROM learning thread

Hi,
since i found some time and i'm not happy with my ROM, i decided to make my own. So before doing this there are lots of questions for me and i hope someone will find the time and patience to answer them.
1. If i do something wrong with the ROM can this destroy my Desire? I just want to mak a Custom ROM not Kernel or something like this.
2. At first i only want to change designe. Do i need some Programms for this? With WinRar i can extract the apks. Can i only change the picture files, and put them back into the apk?
3. Will apps from other ROMs work with my ROM? e.g. The HTC_IME?
4. Where can i get a "clean" HTC Sense ROM? I'm looking to make my changes with the latest official release from HTC. Is there a flashable ROM where i can do my changes?
For first i think that's it.
Thanks very much in advance
HandyBesitzer
Re: How to program custom ROM
If you want the stock 2.3 rom, check my sig. The PB99IMG has the rom itself in it.
Sense apps work only on sense roms, because they require the sense framework. You can take apps from other sense roms, and they will work.
If you just want to be a zip-dev, then you only need winrar and notepad.
You can't ruin your phone by flashing roms, even broken ones.
Thank you very much
So about the apps. I can take the HTC_IME from a Sense 4.x and Android 4.X and use it with the Stock? That's great
Is there something i need to do with the PG99IMG.zip, because i don't want to loose my root
Re: How to program custom ROM
Sense 4 only works on ics. You could take the designs from it, i think...
You just take the pb99img, extract the system files from it, and then you mod away.
Or you could just take a stock rooted rom, and begin with that.
pb99img.zip doesn't work. There is only a img file i cannot open.
I tryed to use this http://forum.xda-developers.com/showthread.php?t=1200261 but the links are broken. Is there someone who can upload this ROM again or has an othere link to a pre rooted ROM?
OK i get a pre-rooted Gingerbread. But when trying to install it i get this error:
-- Installing: /sdcard/GingerSense4_0.zip
Finding update package...
Opening update package...
installing update...
Amend scripting (update-script) is no longer suported.
Amed scripting was deprecated by Google in Android 1.5.
It was necessary to remove it when upgrading to
the ClockworkMod 3.0 Gingerbread based recovery.
Please switch to Edify scripting (updater-script
and update-binary) to creat working update zip
packages.
Installation aborted.
So the last line i understand very good. It hasn't worked Can someone tell me, what is wrong with the zip?
I only deleted some apps from the zip, changed the build.prop a little bit, deleted some sound.mp3 and added some new to it.
And i removed the bootsound file. That's it and than i flashed the zip.
Ah yes i get the pre rootet from her
http://www.brutzelstube.de/2011/gerootetes-offizielles-stock-rom-3-14-405-1-fur-das-classic-desire/
Thanks in advance.
HandyBesitzer
HandyBesitzer said:
OK i get a pre-rooted Gingerbread. But when trying to install it i get this error:
-- Installing: /sdcard/GingerSense4_0.zip
Finding update package...
Opening update package...
installing update...
Amend scripting (update-script) is no longer suported.
Amed scripting was deprecated by Google in Android 1.5.
It was necessary to remove it when upgrading to
the ClockworkMod 3.0 Gingerbread based recovery.
Please switch to Edify scripting (updater-script
and update-binary) to creat working update zip
packages.
Installation aborted.
So the last line i understand very good. It hasn't worked Can someone tell me, what is wrong with the zip?
I only deleted some apps from the zip, changed the build.prop a little bit, deleted some sound.mp3 and added some new to it.
And i removed the bootsound file. That's it and than i flashed the zip.
Ah yes i get the pre rootet from her
http://www.brutzelstube.de/2011/gerootetes-offizielles-stock-rom-3-14-405-1-fur-das-classic-desire/
Thanks in advance.
HandyBesitzer
Click to expand...
Click to collapse
1) You can't use any ICS/JB apps, they're not compatible.
2) Your recovery doesn't support the amend script as stated, you can usually get one from another ROM or try to start off a GB Sense Custom ROM
1. I did not use a ics app.
2. What dos this man "amend script as stated" is there a tut about amend Skript?
I am 100% New with android programming.
==EDIT==
Ok i fixed the amend script and flashing working now . But i only see this white HTC boot screen and nothing happens -.- What steps do i need to see why the ROM doesn't boot into the ROM??
==EDIT2==
I got a logcat
==EDIT3==
logcat:
HTML:
--------- beginning of /dev/log/main
I//system/xbin/run-parts( 80): run-parts: /system/etc/init.d/04zipalign exited with code 111
I//system/xbin/run-parts( 80): run-parts: /system/etc/init.d/05sysctl exited with code 111
I//system/xbin/run-parts( 80): cp: can't stat '/data/app/*': No such file or directory
I//system/xbin/run-parts( 80): cp: can't stat '/data/app-private/*': No such file or directory
I//system/xbin/run-parts( 80): +++ Apps-to-SD successfully enabled
I//system/xbin/run-parts( 80): Bad mode
I//system/xbin/run-parts( 80): /system/etc/init.d/60disableled: cannot create /sys/devices/platform/leds-microp/leds/button-backlight/brightness: directory nonexistent
I//system/xbin/run-parts( 80): Bad mode
I//system/xbin/run-parts( 80): run-parts: /system/etc/init.d/60disableled exited with code 10
I//system/xbin/run-parts( 80): Mounting /system as RW
I//system/xbin/run-parts( 80): Usage: mount [-r] [-w] [-o options] [-t type] device directory
I//system/xbin/run-parts( 80): Enabling ADB icon
I//system/xbin/run-parts( 80): Setup Sweep2Wake
I/logwrapper( 80): /system/xbin/run-parts terminated by exit(1)
D/AK8973 ( 181): AK8973 daemon 1.3.4 Start
D/AK8973 ( 181): (Library version : 1.2.1.620)
D/CANDaemon( 184): [CAND] [main] start v2
D/CANDaemon( 184): [CAND] [monitor_cable_status_thread] ENTER FUNCTION
D/CANDaemon( 184):
D/CANDaemon( 184): [CAND] [server_function] server_function is running.
D/CANDaemon( 184):
Soo,
after getting help from familyguy59 special thanks to him i now readed some tutorials and i think i know what's wrong with my ROM.
For all those who know a bit about that can you pls have a look at my Updater-script?
https://www.dropbox.com/s/hi4g5sgx1k4weya/GinerSense4_4.zip
http://forum.xda-developers.com/showthread.php?t=1272270
i tryed to install the kitchen showed in the link above. but everytime i type in ./menu nothing happens.
I really hope you can help me.
the consol says:
[email protected] /cygdrive/c/Andro-Dev/kitchen.
$ ./menu
-bash: ./menu No such file or directory
Also there is no kitchen folder in cygwin folder/home/your user name/kitchen
Thank you all
Did u type "cd kitchen" first then ". /menu"
RSK Sattelite SuperSense4.1
Yes i Did i think i forgot to download something. i replaced all and reinstalled and now it works
And because i really think my whole ROM is simply said complete destroyed, i redownloaded the pre-rooted one and toke it for the kitchen.
So the only thing is now to do the edify scripting and add the App2SD. Can the kitchen do this? i haven't found it.
HandyBesitzer said:
Yes i Did i think i forgot to download something. i replaced all and reinstalled and now it works
And because i really think my whole ROM is simply said complete destroyed, i redownloaded the pre-rooted one and toke it for the kitchen.
So the only thing is now to do the edify scripting and add the App2SD. Can the kitchen do this? i haven't found it.
Click to expand...
Click to collapse
Lol i think it took me 3 times to get it working.
And Yes it can. I think if i remember its 00 option (advanced) i think.
RSK Sattelite SuperSense4.1
I found it but now i have a bootloop. What can i do to fix it or found the error?
here is my zip:
https://www.dropbox.com/s/3uburfbidy5kb02/GingerSense4_0_1.zip
jmcclue said:
Lol i think it took me 3 times to get it working.
And Yes it can. I think if i remember its 00 option (advanced) i think.
RSK Sattelite SuperSense4.1
Click to expand...
Click to collapse
I tryed to add the A2SD. And the kitchen says it is enabled. But the youtube.apk in the sd-ext/app_s directory isn't isntalled. What is wrong? I think it is the updater-script.
The ext partition isn't mounted and there is no package_extract to the sd ext partition. I also tryed to mount and extract but it doesn't work. can someone explain me hwo to add the sd-ext?
Code:
ui_print("");
ui_print(" GingerSense_0_0");
ui_print("");
ui_print(" von HandyBesitzer");
ui_print("");
ui_print("");
show_progress(0.1, 0);
format("MTD", "system");
ui_print("System Partition einbinden");
mount("MTD", "system", "/system");
ui_print("Instalation vorbereiten");
package_extract_file("check_data_app", "/tmp/check_data_app");
set_perm(0, 0, 0777, "/tmp/check_data_app");
run_program("/tmp/check_data_app");
ui_print("Data Partition einbinden");
mount("MTD", "userdata", "/data");
ui_print("Instalation");
package_extract_dir("data", "/data");
set_perm_recursive(1000, 1000, 0771, 0644, "/data/app");
package_extract_dir("system", "/system");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/chownto");
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/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/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/umount");
symlink("toolbox", "/system/bin/uptime");
symlink("toolbox", "/system/bin/vmstat");
symlink("toolbox", "/system/bin/watchprops");
symlink("toolbox", "/system/bin/wipe");
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_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(0, 0, 0777, "/system/bin/a2sd");
set_perm(0, 0, 0777, "/system/etc/init.d/00banner");
set_perm(0, 0, 0777, "/system/etc/init.d/01sysctl");
set_perm(0, 0, 0777, "/system/etc/init.d/02firstboot");
set_perm(0, 0, 0777, "/system/etc/init.d/04apps2sd");
set_perm(0, 0, 0777, "/system/etc/init.d/99complete");
set_perm(0, 0, 0777, "/system/bin/launcha2sd");
set_perm(0, 0, 0777, "/system/bin/starta2sd");
set_perm(0, 0, 0777, "/system/bin/jita2sd");
set_perm(0, 0, 0777, "/system/bin/chka2sd");
set_perm(0, 0, 0777, "/system/bin/zipalign");
set_perm(0, 0, 0777, "/system/bin/sysinit");
set_perm(0, 0, 0777, "/system/bin/busybox.a2sd");
set_perm(0, 0, 0644, "/system/bin/apps2sd.hlp");
set_perm(0, 0, 0777, "/system/xbin/a2sd");
set_perm(0, 0, 0777, "/system/bin/dtinstall");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 04755, "/system/xbin/bash");
symlink("/system/xbin/bash", "/system/bin/sh");
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);
run_program("/data/dtinstall.launch");
ui_print("Instalation beenden");
delete("/system/bin/dtinstall");
delete("/data/dtinstall.launch");
package_extract_file("move_cache_sd", "/tmp/move_cache_sd");
set_perm(0, 0, 0777, "/tmp/move_cache_sd");
run_program("/tmp/move_cache_sd");
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);
ui_print("");
ui_print("Instalation fertig.");
ui_print("Viel Spass mit der Neuen ROM");
ui_print("");
ui_print("System Parition freigeben");
unmount("/system");
ui_print("Data Partition freigeben");
unmount("/data");
Hey dude,
you might also want to search for and watch some YouTube videos about/with/for the kitchen. And then you should try and make your own ROM from source
Lg
Edit:
Oh, and make sure you can code in either C++ or Java. At best you can code in both, though. That way you can make your ROM truly yours
I just lerned C in my university and java i can a little bit from school

Updater-Script

Hi everybody.
I built a rom that looks just like the s4.
Now I cannot upload it because when I try to test it and flash it, it gives me ERROR 0.
I know its because I need a updater script but I do from dsixda Kitchen.
If somebody can upload for me a updater script so it will work for me or tell me what to do I will really appreciate it.
THIS IS NOT A QUESTION! I WANT AN UPDATER SCRIPT OR A TUTORIAL!
Thanks ,
SAMSUNGIVANY
Didn't mean to hit Thanks, but have one on me I guess. This should lead you to what you want. Assuming you want to do it yourself
http://forum.xda-developers.com/showthread.php?p=25136413
Sent from my SGH-T889 using xda app-developers app
Sorry for late reply, I'm busy
Didn't work.
Check This Out:
http://forum.xda-developers.com/showthread.php?p=40872871#post40872871
SAMSUNGIVANY said:
Didn't work.
Check This Out:
http://forum.xda-developers.com/showthread.php?p=40872871#post40872871
Click to expand...
Click to collapse
which deviceee you have - this updater-scrpt is for note 2 n7100
SAMSUNGIVANY said:
Hi everybody.
I built a rom that looks just like the s4.
Now I cannot upload it because when I try to test it and flash it, it gives me ERROR 0.
I know its because I need a updater script but I do from dsixda Kitchen.
If somebody can upload for me a updater script so it will work for me or tell me what to do I will really appreciate it.
THIS IS NOT A QUESTION! I WANT AN UPDATER SCRIPT OR A TUTORIAL!
Thanks ,
SAMSUNGIVANY
Click to expand...
Click to collapse
send mi your updater script....
as well the update-binary from the kitchen often don´t work....
try with this update-binary
amnodaniel said:
send mi your updater script....
as well the update-binary from the kitchen often don´t work....
try with this update-binary
Click to expand...
Click to collapse
This is the one I used from that person.
I9300
mithun46 said:
which deviceee you have - this updater-scrpt is for note 2 n7100
Click to expand...
Click to collapse
I have a I9300.
Forgot to say.
deleted
SAMSUNGIVANY said:
I have a I9300.
Forgot to say.
Click to expand...
Click to collapse
dosn´t matter they have the same mount points--- this after noon i will have a look
amnodaniel said:
dosn´t matter they have the same mount points--- this after noon i will have a look
Click to expand...
Click to collapse
No they are ediffrent
mithun46 said:
No they are ediffrent
Click to expand...
Click to collapse
Thanks-- i thougth that are the same...anyway.... that it can be checked opening the boot.img and cheking on boot.img-ramdisk/fstab the mount partitions.
i´ve seen that you already send a updater script to that guy... i´m afraid that SAMSUNGIVANY doesn,t know to much.... from what i´ve seen your updater script is a good one but you should tell to SAMSUNGIVANY that shall include the simlinks to toolbox and the fallow sequency to instal the busybox
set_perm(0, 1000, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
Click to expand...
Click to collapse
---------- Post added at 09:19 PM ---------- Previous post was at 09:02 PM ----------
maybe this can be usefull
i just make some small changes on the mithun46 script
show_progress(1, 80);
ui_print(" ");
ui_print(" ");
ui_print("*******************************************");
ui_print("* Welcome to Sammy-to-zip ROM Installation*");
ui_print("*******************************************");
ui_print(" ");
ui_print(" ");
ui_print("Preparing Installation...");
ui_print("Mounting Partitions...");
mount("ext4", "EMMC", "/dev/block/mmcblk0p8", "/cache");
mount("ext4", "EMMC", "/dev/block/mmcblk0p12", "/data");
mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");
ui_print("Cleaning...");
delete_recursive("/system");
delete_recursive("/cache");
delete_recursive("/data/dalvik-cache");
ui_print("Extracting New System...");
package_extract_dir("system", "/system");
ui_print("Setting Permissions...");
ui_print("@ Simlinking...");
symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
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/lsof");
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/playback");
symlink("toolbox", "/system/bin/printenv");
symlink("toolbox", "/system/bin/ps");
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/touchinput");
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("dumpstate", "/system/bin/dumpcrash");
symlink("debuggerd", "/system/bin/csview");
symlink("mksh", "/system/bin/sh");
ui_print("@ Setting Permissions....");
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 0, 0755, 0755, "/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_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_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
here is missing the mounts points to flash the modem (i don´t know them on s3)
here is missing the mounts points to flash the kernel (i don´t know them on s3)
for this i need a boot.img from s3
ui_print("Installing Extra Apps...");
package_extract_dir("data", "/data");
set_perm_recursive(0, 2000, 0755, 0666, "/data/app");
package_extract_dir("sdcard", "/sdcard");
ui_print(" ");
ui_print(" ");
ui_print("=====DONE=====");
ui_print(" ");
ui_print("Produced by Mithun46 - 2013");
unmount("/cache");
unmount("/data");
unmount("/system");
Click to expand...
Click to collapse
Thnx
Thank you all for helping.
Each one of you is going to be credited.
I used One's Updater-script and One's Update Binary.
Thank you again for making a dream come true,
SAMSUNGIVANY.
Why do you put your name under there mithun ? And call it free updater script forgot to remove the alliance stuff and link the proper scripts it calls for ??
Lol, rom never got released..
hey. I was searching how can I edit updater-script, so i found this.
I ported a ROM from s2 to my s advance, but while flashing in cwm, it shows an error:
set_perm:some changes failed
(error7)
I think this was it! Can anybody help ?
szzlgupta said:
hey. I was searching how can I edit updater-script, so i found this.
I ported a ROM from s2 to my s advance, but while flashing in cwm, it shows an error:
set_perm:some changes failed
(error7)
I think this was it! Can anybody help ?
Click to expand...
Click to collapse
Pull the recovery.log from /tmp, it'll give you more detail
Usually it's because the file doesn't exist /typo
CNexus said:
Pull the recovery.log from /tmp, it'll give you more detail
Usually it's because the file doesn't exist /typo
Click to expand...
Click to collapse
There is no such file in /tmp :s
szzlgupta said:
There is no such file in /tmp :s
Click to expand...
Click to collapse
Are you sure?
Flash this, and then navigate to /tmp. It has to be there. Or else go to the Advanced menu (in CWM) > Copy recovery.log
http://forum.xda-developers.com/showthread.php?t=1646108
CNexus said:
Are you sure?
Flash this, and then navigate to /tmp. It has to be there. Or else go to the Advanced menu (in CWM) > Copy recovery.log
http://forum.xda-developers.com/showthread.php?t=1646108
Click to expand...
Click to collapse
How does it matter whether i have that file or not in cm10 which im using and is also base of the ROM. Please explain. I cant understand :/
szzlgupta said:
How does it matter whether i have that file or not in cm10 which im using and is also base of the ROM. Please explain. I cant understand :/
Click to expand...
Click to collapse
That file is created by the recovery. It's not gonna be inside your rom, but it'll tell you more detailed info about the updater-script error so you can fix it.

[Q] Status 7 error while trying to install StockMOD rom 4.3

I have a SGH-i747 and have been trying to install This ROM(StockMODCustomROM4.3RLS2.1). I'm currently running the latest 6.0.4.7 cwm recovery, and I have also already tried to remove asserts from the updater-script but there wasnt any.
This is what the updater-script file says:
show_progress(1.0, 6000);
ui_print(" ");
ui_print("Installing ROM Update... ");
format("ext4", "EMMC", "/dev/block/mmcblk0p14");
mount("ext4", "EMMC", "/dev/block/mmcblk0p14", "/system");
package_extract_dir("system", "/system");
ui_print(" Symlinking");
symlink("dumpstate", "/system/bin/dumpcrash");
symlink("toolbox", "/system/bin/cat");
symlink("toolbox", "/system/bin/chmod");
symlink("toolbox", "/system/bin/chown");
symlink("toolbox", "/system/bin/cmp");
symlink("debuggerd", "/system/bin/csview");
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/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/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("toolbox", "/system/bin/chcon");
symlink("toolbox", "/system/bin/setenforce");
symlink("toolbox", "/system/bin/grep");
symlink("toolbox", "/system/bin/runcon");
symlink("toolbox", "/system/bin/touchinput");
symlink("toolbox", "/system/bin/md5");
symlink("toolbox", "/system/bin/getsebool");
symlink("toolbox", "/system/bin/setsebool");
symlink("toolbox", "/system/bin/restorecon");
symlink("toolbox", "/system/bin/getenforce");
symlink("toolbox", "/system/bin/load_policy");
symlink("toolbox", "/system/bin/cp");
symlink("toolbox", "/system/bin/playback");
symlink("toolbox", "/system/bin/du");
symlink("wiperiface_v02", "/system/bin/wiperiface");
ui_print(" Setting Permissions");
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_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
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, 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(0, 0, 0711, "/system/bin/.ext");
set_perm(0, 0, 0755, "/system/bin/.ext/.su");
set_perm(0, 0, 0755, "/system/xbin/su");
set_perm(0, 0, 0755, "/system/xbin/daemonsu");
set_perm(0, 0, 0755, "/system/etc/install-recovery.sh");
set_perm(0, 0, 0644, "/system/etc/.has_su_daemon");
set_perm(0, 0, 0644, "/system/etc/.installed_su_daemon");
set_perm(0, 0, 04755, "/system/xbin/run-parts");
set_perm(0, 0, 04755, "/system/xbin/bash");
set_perm(0, 0, 04755, "/system/xbin/sqlite3");
package_extract_file("boot.img", "/dev/block/mmcblk0p7");
symlink("/system/xbin/busybox", "/system/bin/busybox");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 1000, 0755, "/system/xbin/busybox");
symlink("/system/xbin/busybox", "/system/bin/busybox");
ui_print(" Installing Busybox");
run_program("/system/xbin/busybox", "--install", "-s", "/system/xbin");
ui_print(" ");
ui_print(" ");
ui_print(" ");
ui_print(" ");
ui_print("Finished Installing. ");
ui_print("First boot may take a while...");
ui_print("Please be patient and wait ");
ui_print(" ");
ui_print(" ");
ui_print("================================================");
ui_print(" Enjoy! And remember to visit us on xda ");
ui_print(" Share your experiences with us as well! ");
ui_print(" ");
ui_print(" -Team Inferno- ");
ui_print("================================================");
ui_print(" ");
ui_print(" ");
unmount("/system");
Are you on a 4.3 bootloader and modem?
Possibly same problem, more detail
Posting here because I'm not allowed to post to the thread for the ROM.
EDIT: I have an SGH-I747 which was, before I started, running OTA 4.3. I installed both Clockworkmod 6.0.4.7 and TWRP 2.7.0.0, as well as ROM Manager. It occurs to me that I didn't try using TWRP to do the install, just CWM. I did flash I747UCUEMJB Modem even though I probably didn't need to, since I was already running UCUEMJB, and I did the "wipe data/factory reset" and "wipe cache partition" steps in CWM.
EDIT2: I tried flashing the ROM again with TWRP and that seems to have done the trick.
Slade420 said:
I have a SGH-i747 and have been trying to install This ROM(StockMODCustomROM4.3RLS2.1). I'm currently running the latest 6.0.4.7 cwm recovery, and I have also already tried to remove asserts from the updater-script but there wasnt any.
This is what the updater-script file says:
show_progress(1.0, 6000);
ui_print(" ");
ui_print("Installing ROM Update... ");
format("ext4", "EMMC", "/dev/block/mmcblk0p14"); <--this is the culprit, I think
{ big snip of uninteresting script }
unmount("/system");
Click to expand...
Click to collapse
OP should note that RLS2.1 is not supposed to be standalone, it is supposed to be installed over RLS2. I had a similar error attempting to install RLS2.
OP should also note that there was probably additional information in his error message, which would have been useful to include.
The error message I got was that format() expects 5 args, got 3.
I did some looking for a reference to the scripting language. I found that it's called edify, and saw many guides and explanations, but nothing resembling a programmer's reference, and not really anything that a competent UNIX programmer wouldn't be able to guess by inspection. I did find some examples where format() is called with 5 args, and was tempted to just edit the script so that the line would be
Code:
format("ext4", "EMMC", "/dev/block/mmcblk0p14", "system", 0);
but chickened out, this being my first attempt to flash a ROM.
Evidently many people have been able to install these ROMs without this problem: how is it possible that something as basic as the required number of arguments to a filesystem formatting command could vary from device to device?
How should I proceed, if I want to get this installed?

Categories

Resources