Update script permission?

razz1

Senior Member
Nov 3, 2011
842
1,013
0
chicago
I am finishing off an update script and ran into a problem trying to set the permissions on an init.d script that I am loading to the system. Here are a few things I have tried to set on "crystal_clear" without success.

set_perm_recursive(0, 0, 0777, 0777, "/system/etc/init.d");

set_perm(0, 0, 0777, "/system/etc/init.d/crystal_clear");

Am I even close with this? This is my first update script. I bet i'm just missing something stupid but it's been killing me for hours and tried so many variations.
Here is everything so far. If there is something else you see here that doesn't look right please let me know.

show_progress(0.1, 0);
ui_print("Mounting System Partition");
mount("ext4", "EMMC", "/dev/block/mmcblk0p14", "/system");
package_extract_file("tweaks/buildprop.sh", "/tmp/buildprop.sh");
package_extract_file("tweaks/sysmount/sysrw", "/tmp/sysrw");
package_extract_file("tweaks/sysmount/sysro", "/tmp/sysro");
set_perm(0, 0, 0777, "/tmp/buildprop.sh");
set_perm(0, 0, 0777, "/tmp/sysrw");
set_perm(0, 0, 0777, "/tmp/sysro");
ui_print("");
ui_print("Patching Build.prop");
run_program("/sbin/sh", "/tmp/sysrw");
run_program("/sbin/sh", "/tmp/buildprop.sh");
ui_print("");
ui_print("Patching adreno_config.txt, and egl.cfg");
package_extract_dir("system", "/system");
run_program("/sbin/sh", "/tmp/sysro");
show_progress(0.1, 10);
ui_print("");
ui_print("All tweaking processes are done");
ui_print("Adjusting framebuffer and color depth");
package_extract_file("system", "/system/etc/init.d");
set_perm(0, 0, 0777, 0777, "/etc/init.d/crystal_clear");
show_progress(0.2, 0);
unmount("/system");
ui_print("DONE");
 
Last edited:

qwerty12

Senior Member
Jan 21, 2005
451
329
0
(*Europe).London
General comments.

A simple
Code:
set_perm_recursive(0, 0, 0755, 0755, "/system/etc/init.d");
after I've extracted the all the files I've wanted to the right place has always worked fine in the CWM ZIP I keep for personal use to install BusyBox etc.

package_extract_file("tweaks/sysmount/sysrw", "/tmp/sysrw");
package_extract_file("tweaks/sysmount/sysro", "/tmp/sysro");
set_perm(0, 0, 0777, "/tmp/sysrw");
set_perm(0, 0, 0777, "/tmp/sysro");
run_program("/sbin/sh", "/tmp/sysrw");
run_program("/sbin/sh", "/tmp/sysro");
You don't need these. CWM/TWRP will mount /system rw by default and you don't really need to remount it ro in CWM.

package_extract_dir("system", "/system");
package_extract_file("system", "/system/etc/init.d");
Is "system" a directory or a file?

That said, I think you want the former - just have a system folder in the root of your ZIP mirroring where you want the files to be placed (so in your ZIP, create a "system" folder at the same level as META-INF and then have a "etc" folder inside that, then a "init.d" folder inside "etc" with your script inside "init.d").
 
Last edited:

razz1

Senior Member
Nov 3, 2011
842
1,013
0
chicago
THANK YOU!
I'm going to try a few things you said and go from there.
Here is my current hierarchy...

4xMultiSampling_Antialiasing.zip
......META-INF
..........com
.............google
................android
.....................update-binary
.....................updater-script
......system
.........etc
.............Init.d
................crystal_clear. <-----this is what would not change to 0777
......lib
........egl
..........egl.config
......tweaks
.........build.prop.sh
.........sysmount
..............sysro
..............sysrw
 
Last edited:

razz1

Senior Member
Nov 3, 2011
842
1,013
0
chicago
Yes that was a typo, but I appreciate your attention to detail because that's is exactly what I need. As you know, its that sort of thing that can kill a script. Critique away!
 
  • Like
Reactions: sleshepic
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone