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
add this line into right alphanumeric position in your ermissions section
add these lines direct under the last line of you permissions section
add these lines direct above your unmount system line
your updater script should look similar to this:
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
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"); |
Quote:
|
set_perm_recursive(0, 0, 0777, 0777, "system/etc/init.d"); |
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"); |
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"); |
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! "); |
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