Quantcast
Channel: xda-developers - Android Software and Hacking General [Developers Only]
Viewing all articles
Browse latest Browse all 3614

Enabling Init.d at ROM install w/o kernel support

$
0
0
If you own a device without init.d support the people who use your ROM need to install init.d with any of the known apps or CWM packages.

here i will show you how to add init.d into your ROM.

but first before we do anything we have to thank Ryuinferno for his great work.



What is to do?

1. make your CWM installable ROM
2. add busybox binary to your ROM
3. add init.d enabling script to your ROM
4. add lines to your updater script

what we need!
1. go to http://forum.xda-developers.com/show....php?t=1933849 and grab the zip init package on Post 3.
2. download my busybox binary Attachment 2452898


Lets go and do the magic.

put the downloaded busybox binary into /system/xbin
put add_initd.sh into root of your CWM zip
Make folder init.d into folder /system/etc
Put 00test and 08setperm into the init.d folder
open your updater script in notepad++ and add these lines direct under your symlink section
Quote:

ui_print("Creating busybox system links...");
symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
"/system/xbin/ash", "/system/xbin/awk",
"/system/xbin/basename", "/system/xbin/bunzip2",
"/system/xbin/bzip2", "/system/xbin/cal",
"/system/xbin/cat", "/system/xbin/chgrp",
"/system/xbin/chmod", "/system/xbin/chown",
"/system/xbin/cmp", "/system/xbin/cp",
"/system/xbin/cpio", "/system/xbin/cut",
"/system/xbin/date", "/system/xbin/dd",
"/system/xbin/df", "/system/xbin/diff",
"/system/xbin/dos2unix", "/system/xbin/du",
"/system/xbin/echo", "/system/xbin/egrep",
"/system/xbin/expr", "/system/xbin/false",
"/system/xbin/fgrep", "/system/xbin/find",
"/system/xbin/free", "/system/xbin/ftpget",
"/system/xbin/ftpput", "/system/xbin/grep",
"/system/xbin/gunzip", "/system/xbin/gzip",
"/system/xbin/ifconfig", "/system/xbin/insmod",
"/system/xbin/kill", "/system/xbin/killall",
"/system/xbin/less", "/system/xbin/lsmod",
"/system/xbin/md5sum", "/system/xbin/mknod",
"/system/xbin/more", "/system/xbin/netstat",
"/system/xbin/od", "/system/xbin/pidof",
"/system/xbin/ping", "/system/xbin/ping6",
"/system/xbin/printf", "/system/xbin/ps",
"/system/xbin/rm", "/system/xbin/rmmod",
"/system/xbin/route", "/system/xbin/sed",
"/system/xbin/seq", "/system/xbin/sort",
"/system/xbin/strings", "/system/xbin/tail",
"/system/xbin/telnet", "/system/xbin/test",
"/system/xbin/tftp", "/system/xbin/top",
"/system/xbin/touch", "/system/xbin/true",
"/system/xbin/uname", "/system/xbin/unix2dos",
"/system/xbin/unzip", "/system/xbin/vi",
"/system/xbin/wc", "/system/xbin/wget",
"/system/xbin/which", "/system/xbin/xargs",
"/system/xbin/yes");
symlink("busybox", "/system/xbin/adjtimex", "/system/xbin/arp",
"/system/xbin/base64",
"/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
"/system/xbin/brctl", "/system/xbin/bzcat",
"/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chroot",
"/system/xbin/clear", "/system/xbin/comm",
"/system/xbin/crond",
"/system/xbin/crontab",
"/system/xbin/dc", "/system/xbin/depmod",
"/system/xbin/devmem",
"/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
"/system/xbin/ed", "/system/xbin/env",
"/system/xbin/expand",
"/system/xbin/fdisk",
"/system/xbin/flash_lock", "/system/xbin/flash_unlock",
"/system/xbin/flashcp", "/system/xbin/flock", "/system/xbin/fold",
"/system/xbin/freeramdisk", "/system/xbin/fsync",
"/system/xbin/fuser",
"/system/xbin/getopt", "/system/xbin/groups",
"/system/xbin/halt",
"/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
"/system/xbin/ifconfig", "/system/xbin/inetd",
"/system/xbin/install", "/system/xbin/iostat", "/system/xbin/ip",
"/system/xbin/killall5",
"/system/xbin/length", "/system/xbin/ln",
"/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
"/system/xbin/lsusb", "/system/xbin/lzcat",
"/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
"/system/xbin/man", "/system/xbin/mesg",
"/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
"/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
"/system/xbin/mkswap", "/system/xbin/mktemp",
"/system/xbin/modinfo", "/system/xbin/modprobe",
"/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
"/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
"/system/xbin/nice", "/system/xbin/nohup",
"/system/xbin/nslookup", "/system/xbin/ntpd",
"/system/xbin/patch", "/system/xbin/pgrep",
"/system/xbin/pkill", "/system/xbin/pmap",
"/system/xbin/poweroff", "/system/xbin/printenv",
"/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/rmdir",
"/system/xbin/run-parts", "/system/xbin/rx",
"/system/xbin/setconsole", "/system/xbin/setserial",
"/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
"/system/xbin/sha256sum", "/system/xbin/sha512sum",
"/system/xbin/sleep", "/system/xbin/split",
"/system/xbin/stat", "/system/xbin/stty",
"/system/xbin/sum", "/system/xbin/swapoff", "/system/xbin/swapon",
"/system/xbin/sync", "/system/xbin/sysctl", "/system/xbin/tac",
"/system/xbin/tar", "/system/xbin/taskset",
"/system/xbin/tee", "/system/xbin/telnetd",
"/system/xbin/tftpd",
"/system/xbin/time", "/system/xbin/timeout",
"/system/xbin/tr", "/system/xbin/traceroute",
"/system/xbin/ttysize", "/system/xbin/tune2fs",
"/system/xbin/umount", "/system/xbin/uncompress",
"/system/xbin/unexpand", "/system/xbin/uniq",
"/system/xbin/unlzma", "/system/xbin/unlzop", "/system/xbin/unxz",
"/system/xbin/uptime", "/system/xbin/usleep",
"/system/xbin/uudecode", "/system/xbin/uuencode",
"/system/xbin/watch",
"/system/xbin/whoami",
"/system/xbin/xz", "/system/xbin/xzcat",
"/system/xbin/zcat");
ui_print("Creating busybox system links...done");
add this line into right alphanumeric position in your ermissions section
Quote:

set_perm_recursive(0, 0, 0777, 0777, "system/etc/init.d");
add these lines direct under the last line of you permissions section
Quote:

set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 1000, 06750, "/system/xbin/shelld");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 06755, "/system/xbin/vlu");
add these lines direct above your unmount system line
Quote:

ui_print("Enabling Init.d...");
package_extract_file("add_initd.sh", "/tmp/add_initd.sh");
set_perm(0, 0, 0777, "/tmp/add_initd.sh");
run_program("/tmp/add_initd.sh");
unmount("/system");
ui_print("Enabling Init.d...done");
your updater script should look similar to this:
Quote:

ui_print(" ");
ui_print(" ");
ui_print("**************************************** ******");
ui_print(" Android 4.2.1 ");
ui_print(" MIUMI 3.11.15 Beta Port for CUBOT ONE ");
ui_print(" ~ powered by Maximus1 ~ ");
ui_print("**************************************** ******");
ui_print(" Thanks to.... ");
ui_print(" www.miui-germany.de ");
ui_print("**************************************** ******");
ui_print(" ");
show_progress(0.500000, 0);
ui_print("*** Wiping cache areas ***");
ui_print(">>> Dalvik-cache...");
mount("ext4", "EMMC", "/dev/block/mmcblk0p10", "/data");
delete_recursive("/data/dalvik-cache");
ui_print(">>> /cache...");
mount("ext4", "EMMC", "/dev/block/mmcblk0p7", "/cache");
delete_recursive("/cache");
ui_print("Formatting system...");
unmount("/system");
format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0");
ui_print("Formatting system...done");
ui_print("Installing system files...");
mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/system");
package_extract_dir("system", "/system");
ui_print("Installing system files...done");
ui_print("Creating system links...");
symlink("/system/bin/aee_aed", "/system/bin/debuggerd");
symlink("/system/bin/mksh", "/system/bin/sh");
symlink("/system/bin/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/reboot", "/system/bin/renice",
"/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");
ui_print("Creating system links...done");
ui_print("Creating busybox system links...");
symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
"/system/xbin/ash", "/system/xbin/awk",
"/system/xbin/basename", "/system/xbin/bunzip2",
"/system/xbin/bzip2", "/system/xbin/cal",
"/system/xbin/cat", "/system/xbin/chgrp",
"/system/xbin/chmod", "/system/xbin/chown",
"/system/xbin/cmp", "/system/xbin/cp",
"/system/xbin/cpio", "/system/xbin/cut",
"/system/xbin/date", "/system/xbin/dd",
"/system/xbin/df", "/system/xbin/diff",
"/system/xbin/dos2unix", "/system/xbin/du",
"/system/xbin/echo", "/system/xbin/egrep",
"/system/xbin/expr", "/system/xbin/false",
"/system/xbin/fgrep", "/system/xbin/find",
"/system/xbin/free", "/system/xbin/ftpget",
"/system/xbin/ftpput", "/system/xbin/grep",
"/system/xbin/gunzip", "/system/xbin/gzip",
"/system/xbin/ifconfig", "/system/xbin/insmod",
"/system/xbin/kill", "/system/xbin/killall",
"/system/xbin/less", "/system/xbin/lsmod",
"/system/xbin/md5sum", "/system/xbin/mknod",
"/system/xbin/more", "/system/xbin/netstat",
"/system/xbin/od", "/system/xbin/pidof",
"/system/xbin/ping", "/system/xbin/ping6",
"/system/xbin/printf", "/system/xbin/ps",
"/system/xbin/rm", "/system/xbin/rmmod",
"/system/xbin/route", "/system/xbin/sed",
"/system/xbin/seq", "/system/xbin/sort",
"/system/xbin/strings", "/system/xbin/tail",
"/system/xbin/telnet", "/system/xbin/test",
"/system/xbin/tftp", "/system/xbin/top",
"/system/xbin/touch", "/system/xbin/true",
"/system/xbin/uname", "/system/xbin/unix2dos",
"/system/xbin/unzip", "/system/xbin/vi",
"/system/xbin/wc", "/system/xbin/wget",
"/system/xbin/which", "/system/xbin/xargs",
"/system/xbin/yes");
symlink("busybox", "/system/xbin/adjtimex", "/system/xbin/arp",
"/system/xbin/base64",
"/system/xbin/bbconfig", "/system/xbin/blkid", "/system/xbin/blockdev",
"/system/xbin/brctl", "/system/xbin/bzcat",
"/system/xbin/catv", "/system/xbin/chattr", "/system/xbin/chroot",
"/system/xbin/clear", "/system/xbin/comm",
"/system/xbin/crond",
"/system/xbin/crontab",
"/system/xbin/dc", "/system/xbin/depmod",
"/system/xbin/devmem",
"/system/xbin/dirname", "/system/xbin/dmesg", "/system/xbin/dnsd",
"/system/xbin/ed", "/system/xbin/env",
"/system/xbin/expand",
"/system/xbin/fdisk",
"/system/xbin/flash_lock", "/system/xbin/flash_unlock",
"/system/xbin/flashcp", "/system/xbin/flock", "/system/xbin/fold",
"/system/xbin/freeramdisk", "/system/xbin/fsync",
"/system/xbin/fuser",
"/system/xbin/getopt", "/system/xbin/groups",
"/system/xbin/halt",
"/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
"/system/xbin/ifconfig", "/system/xbin/inetd",
"/system/xbin/install", "/system/xbin/iostat", "/system/xbin/ip",
"/system/xbin/killall5",
"/system/xbin/length", "/system/xbin/ln",
"/system/xbin/losetup", "/system/xbin/ls", "/system/xbin/lsattr",
"/system/xbin/lsusb", "/system/xbin/lzcat",
"/system/xbin/lzma", "/system/xbin/lzop", "/system/xbin/lzopcat",
"/system/xbin/man", "/system/xbin/mesg",
"/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
"/system/xbin/mkfs.ext2", "/system/xbin/mkfs.vfat",
"/system/xbin/mkswap", "/system/xbin/mktemp",
"/system/xbin/modinfo", "/system/xbin/modprobe",
"/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mpstat",
"/system/xbin/mv", "/system/xbin/nanddump", "/system/xbin/nandwrite",
"/system/xbin/nice", "/system/xbin/nohup",
"/system/xbin/nslookup", "/system/xbin/ntpd",
"/system/xbin/patch", "/system/xbin/pgrep",
"/system/xbin/pkill", "/system/xbin/pmap",
"/system/xbin/poweroff", "/system/xbin/printenv",
"/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/rmdir",
"/system/xbin/run-parts", "/system/xbin/rx",
"/system/xbin/setconsole", "/system/xbin/setserial",
"/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
"/system/xbin/sha256sum", "/system/xbin/sha512sum",
"/system/xbin/sleep", "/system/xbin/split",
"/system/xbin/stat", "/system/xbin/stty",
"/system/xbin/sum", "/system/xbin/swapoff", "/system/xbin/swapon",
"/system/xbin/sync", "/system/xbin/sysctl", "/system/xbin/tac",
"/system/xbin/tar", "/system/xbin/taskset",
"/system/xbin/tee", "/system/xbin/telnetd",
"/system/xbin/tftpd",
"/system/xbin/time", "/system/xbin/timeout",
"/system/xbin/tr", "/system/xbin/traceroute",
"/system/xbin/ttysize", "/system/xbin/tune2fs",
"/system/xbin/umount", "/system/xbin/uncompress",
"/system/xbin/unexpand", "/system/xbin/uniq",
"/system/xbin/unlzma", "/system/xbin/unlzop", "/system/xbin/unxz",
"/system/xbin/uptime", "/system/xbin/usleep",
"/system/xbin/uudecode", "/system/xbin/uuencode",
"/system/xbin/watch",
"/system/xbin/whoami",
"/system/xbin/xz", "/system/xbin/xzcat",
"/system/xbin/zcat");
ui_print("Creating busybox system links...done");

symlink("/system/fonts/Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf");
symlink("/system/fonts/Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf");
symlink("/system/lib/modules/wlan_mt6628.ko", "/system/lib/modules/wlan.ko");
ui_print("Setting permissions...");
set_perm_recursive(0, 0, 0755, 0644, "/system");
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(0, 2000, 0755, "/system/bin/sysinit");
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, 0777, 0777, "system/etc/init.d");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(1001, 1000, 0770, 0644, "/system/etc/ril");
set_perm(0, 0, 0444, "/system/etc/ril/oper.lis");
set_perm(0, 1000, 0750, "/system/etc/throttle.sh");
set_perm(1014, 2000, 0550, "/system/etc/wide-dhcpv6/dhcp6c.script");
set_perm_recursive(0, 0, 0777, 0777, "system/etc/init.d");
set_perm(0, 2000, 0755, "/system/vendor");
set_perm_recursive(0, 2000, 0755, 0755, "/system/vendor/bin");
set_perm(0, 2000, 0755, "/system/vendor/lib");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/lib/drm");
set_perm(0, 0, 0644, "/system/vendor/lib/drm/libdrmwvmplugin.so");
set_perm(0, 2000, 0755, "/system/vendor/lib/egl");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/lib/hw");
set_perm(0, 0, 0644, "/system/vendor/lib/hw/gralloc.mt6589.so");
set_perm_recursive(0, 2000, 0755, 0644, "/system/vendor/pittpatt");
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(0, 0, 0755, "/system/addon.d/70-gapps.sh");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/busybox");
set_perm(0, 1000, 06750, "/system/xbin/shelld");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 06755, "/system/xbin/vlu");

ui_print("Setting permissions...done");
ui_print("Update boot image...");
show_progress(0.200000, 0);
show_progress(0.200000, 10);
package_extract_file("boot.img", "/dev/bootimg");
show_progress(0.100000, 0);
symlink("su", "/system/bin/su");
ui_print("Update boot image...done");
ui_print("Enabling Init.d...");
package_extract_file("add_initd.sh", "/tmp/add_initd.sh");
set_perm(0, 0, 0777, "/tmp/add_initd.sh");
run_program("/tmp/add_initd.sh");

unmount("/system");
ui_print("Enabling Init.d...done");
ui_print("Complete...");
ui_print(" ..... Goodbye! ");
thats it.
if i didn´t make an error while writing this tutorial and you by pasting, your rom should have init.d support without kernel support.
you can check your work. after one or two reboots a test.log should exist in /data

Attached Files
File Type: zip busybox.zip - [Click for QR Code] (1.04 MB)

Viewing all articles
Browse latest Browse all 3614

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>