Device: E2303, 26.1.A.3.111, rooted.
I'd like to run an init script during boot. But there is no /system/etc/init.d directory.
I created a /system/etc/install-recovery.sh script. But it doesn't seem to get called.
Are there any other methods, or am I doing it wrong?
Regards,
gwodus.
Install the twrp for locked bootloader, this includes init.d support
Related
hi,
i'm using stock-rom 4.1.2 (root) on my xtz wifi 16gb. i can mount samba shares running 2 script in terminal emulator
Code:
su
sh cifs.sh
sh mount.sh
cifs.sh starts cifs.ko and mount.sh mounts the samba share. su sh cifs.sh or ./cifs.sh don't work.
now i want to mount the share after boot the xtz. on linux i can use init.d, but on android init.d is read-only. there is no autostart.sh. in play store there are some app who starts autostart.sh (i.e. this https://play.google.com/store/apps/details?id=nk.bla.android.autostart&hl=de; i had to create the folder opt in /data and then create autostart.sh in /opt). bit it seems the scripts isn't loaded after bot the device.
is there an other solution for autostart the scripts on xtz?
piere
Download ROM Toolbox (Pro or Lite), go to Scripts, choose Import Script, look for your script. After added, press and hold over your script, and choose Set At Boot, or smth like that.
That Should do
thx, works.
Hi,
I'm trying to run a custom init.d script on my HTC One (m7) which is running on Cyanogemod 12.1 (The problem existed already in 12.0). The problem is that none of the scripts are executed at boot time.
Looking at the "init.cm.rc" script i found the following snippets that look like the "sysinit" command should be triggered at boot time.
Code:
[...]
on post-fs-data
[...]
# Run sysinit
start sysinit
[...]
# sysinit (/system/etc/init.d)
service sysinit /system/bin/sysinit
user root
oneshot
disabled
I even tried removing the "disabled" parameter but the "sysinit" command is still not executed at boot time.
If I run the "sysinit" command on a root shell the scripts are executed as the should.
Anybody an idea what I'm missing?
Thanks in advance!
Hi.
I am also running CM12.1 on a w7dsn device, and init.d wasn't working. I was able to get it running by using the init.sh script as described here:
http://techtrickz.com/how-to/fix-xposed-framework-installation-issue-on-nexus-6/
I've just downloaded the script and run it from my sdcard, no other steps are necessary.
lfom said:
Hi.
I am also running CM12.1 on a w7dsn device, and init.d wasn't working. I was able to get it running by using the init.sh script as described here:
http://techtrickz.com/how-to/fix-xposed-framework-installation-issue-on-nexus-6/
I've just downloaded the script and run it from my sdcard, no other steps are necessary.
Click to expand...
Click to collapse
I am trying to get init.d working on d2vzw, and no luck. The script you linked to works by replacing /system/etc/install-recovery.sh, but my build has no such file. What a drag with CM...
galets said:
I am trying to get init.d working on d2vzw, and no luck. The script you linked to works by replacing /system/etc/install-recovery.sh, but my build has no such file. What a drag with CM...
Click to expand...
Click to collapse
Mine didn't have either, but after installing the script (and creating install-recovery.sh) then my scripts in init.d started to be run after every boot.
You must turn off selinux in order for init.d to work
Sent from my LG-LS980 using XDA Free mobile app
I'm using CyanogenMod 12.1 ROM on my phone, to enable the init.d you have to remove the /system/bin/sysinit then recreate the similar filename with the same content and permissions (755, root, shell).
Code:
#!/system/bin/sh
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
run-parts /system/etc/init.d
Was it the init.rc from the boot.img initrd, or the one from the rootfs /boot.img?
Just change the permissions of all files in /etc/init.d folder to 755.
Also if you use the /data/local/userinit.sh change that to 755.
Leave the /system/bin/sysinit file as it is.
Code:
#!/system/bin/sh
export PATH=/sbin:/system/sbin:/system/bin:/system/xbin
for i in /system/etc/init.d/*; do
if [ -x $i ]; then
/system/bin/log -t sysinit Running $i
$i
fi
done
Cheers
Hi,
I've followed this how-to: http://forum.xda-developers.com/showthread.php?t=1933849 to enable init.d support on my phone (GT-S5570i, Android 2.3.6, stock rom)
I have installed BusyBox (standard install, not smart install), then, after installing and launch Uni-init, i get "SUCCESS ! You have init.d support !"
Well, so I went into init.d folder and I manually launch the script "00test" to see if I am able to run scripts on my phone: ok: inside /data folder i see the test.log file! Then I delete this test file to see if my phone is really able to execute this script from the init.d folder at the boot.
Well, after reboot I go in /data but I don't see any test.log file.
Why? Uni-init told me that I have init.d support, but this don't seems true. The permissions on init.d folder and scripts are ok (rwxr-xr-x). I've also tried to change the ownership to 0 (root) and to 1000 (system) to the test script, and I've also tried another init.d activator, this one: http://download.apks.org/?apkid=com.broodplank.initdtoggler&ver=1.3&server=apk-s#.VbluDvldLcc bot no luck again.
Then I've found this solution: http://forum.xda-developers.com/showthread.php?t=2725680 which, differently from the other solutions, has inserted the runinit script inside /bin. Well: so I rebooted again, but the init scripts aren't still able to run at boot.
If i start the runinit script from a shell window, ok: scripts from init.d folder are properly executed, but again, when I boot my phone, these scripts aren't executed. Maybe I should tell to some system files to execute runinit at the boot time? I miss something?
Many thanks.
In another discussion I've read the following statement:
- the boot process calls install-recovery.sh while executing init.rc
- the install-recovery.sh calls sysinit script
- the sysinit script runs /system/etc/init.d/* in order
Click to expand...
Click to collapse
But I've found that my init.rc exclude the install-recovery.sh script:
Code:
#service flash_recovery /system/etc/install-recovery.sh
# oneshot
So, I don't have any chance to implement the init.d solution?
Hi guys need a bit of assistance in trying to run a shell script on boot via init.rc with kernel selinux set to enforcing. Im currently running/testing AEX 5.8 on oneplus 3 which has the stock boot.img as enforcing. I unpacked the stock boot using android image kitchen and added the following to init.rc:
Code:
service initd /system/bin/initd.sh
class late_start
user root
oneshot
disabled
on property:sys.boot_completed=1
start initd
initd.sh script which has been placed in system/bin folder contains the following:
Code:
#!/system/bin/sh
busybox run-parts /system/etc/init.d
exit 0
if i add androidboot.selinux=permissive to the kernel boot.img-cmdline and repackage the kernel so kernel is in permissive mode, the script runs and all scripts in system/etc/init.d complete. however if the kernel is set as enforcing, then initd.sh does not run. if i execute initd.sh via a file manager again the script runs. It seems selinux is preventing initd.sh to start on boot if kernel is set to enforcing. i tried editing plat_file_contexts in boot.img but no luck.
any tips or ideas would be appreciated
What is init.d?
init.d is a folder placed in /system/etc wich has been legendary used since the old android times to run scripts at boot. I've decided to make this simple script becouse lots of my users on my AmazBoost MOD thread were asking how they can enable init.d on stock ROM or simply on an unsupported ROM. It's easy to run and doesn't require any kind of coding skills!
What you need
- AmazFit Stratos/Pace
- Rooted ROM
How to install
1) Download the mod zip from download link and unzip it
2) Connect the wath to the PC
3) Place the enable.sh file inside your adb folder and open there a command prompt (or terminal for Mac OS/linux) then type the following codes:
Code:
adb root
adb push enable.sh /sdcard/
adb shell sh /sdcard/enable.sh
4) Done!
5) You NEED to reinstall the mod running the installer after every ROM update!
Changelog
First release!
Download and enjoy!
https://goo.gl/HYqEZt
If my work was useful always press thanks!
There is a typo in the script:
touch /system/ect/install-recovery.sh
chmod 755 /system/etc/install-recovery.sh
chown 0:2000 /system/ect/install-recovery.sh
should be
Code:
touch /system/etc/install-recovery.sh
chmod 755 /system/etc/install-recovery.sh
chown 0:2000 /system/etc/install-recovery.sh
jprelay said:
There is a typo in the script:
touch /system/ect/install-recovery.sh
should be
Code:
touch /system/etc/install-recovery.sh
Click to expand...
Click to collapse
Ooops didn't check it perfectly just used a Compiler to see if there were some syntax errors, thanks I'll updating the file now!
Inviato dal mio G8141 utilizzando Tapatalk
Script name and command name don't match either, enabler.sh
I think that I found a solution..I wish is helpful !
1) First of all you need to have unlock bootloader and then run the temporary root
(check in "PERMANENT INSTALL" description)
AFTER ROOTING LETS GO FOR UNIT SUPPORT!
I used the init.d support through terminal emulator
2) Download the term-init.sh v3 .
3) Connect the watch to your PC.
4) Place the term-init.sh file inside your adb folder and open the command prompt.. then type the following codes:
(if adb shell or adb root not working, try to disconnect and connect your watch )
Code:
adb root
adb push term-init.sh /sdcard/
(or you can drag and drop it in your sdcard)
adb shell sh /sdcard/ term-init.sh
5) After that go and run the installer.bat file from Amazboost folder!
6) Done!
I tried this tools but i have error
Code:
+ $'\r'
: not foundble.sh[12]:
/sdcard/enable.sh[13]: syntax error: 'if' unmatched
tminhnhat said:
I tried this tools but i have error
Code:
+ $'\r'
: not foundble.sh[12]:
/sdcard/enable.sh[13]: syntax error: 'if' unmatched
Click to expand...
Click to collapse
Same here too, the OP seems to have been making a lot of mistakes in his scripts
How is the init.d supposed to be enabled?
Hi, i want to enable AmazBoost so i came to this post to enable init.d but i lost, i dont understand what i need to do, when i follow the instructions i get this error.
########################################################
# #
# AmazFit universal init.d enabler by @AmazDev #
# #
########################################################
Mounting system...
Usage: mount [-r] [-w] [-o options] [-t type] device directory
: not foundbler.sh[12]:
/sdcard/enabler.sh[13]: syntax error: 'if' unmatched
I have Stratos 2 A1619
I have a Stock ROM 2.3.6.0 Unlocked
Thanks
---------- Post added at 05:20 PM ---------- Previous post was at 05:04 PM ----------
Hi, i tried with the other instructions but again i have a error:
C:\Program Files (x86)\Minimal ADB and Fastboot>adb shell sh /sdcard/term-init.sh
Init.d Enabler by Ryuinferno @ XDA
Script NOT running as root!
Superuser access not granted!
Please type 'su' first before running this script...
C:\Program Files (x86)\Minimal ADB and Fastboot>su
'su' is not recognized as an internal or external command,
operable program or batch file.
kostasntamas said:
I think that I found a solution..I wish is helpful !
1) First of all you need to have unlock bootloader and then run the temporary root
(check in "PERMANENT INSTALL" description)
AFTER ROOTING LETS GO FOR UNIT SUPPORT!
I used the init.d support through terminal emulator
2) Download the term-init.sh v3 .
3) Connect the watch to your PC.
4) Place the term-init.sh file inside your adb folder and open the command prompt.. then type the following codes:
(if adb shell or adb root not working, try to disconnect and connect your watch )
Code:
adb root
adb push term-init.sh /sdcard/
(or you can drag and drop it in your sdcard)
adb shell sh /sdcard/ term-init.sh
5) After that go and run the installer.bat file from Amazboost folder!
6) Done!
Click to expand...
Click to collapse
hi mate, do you modify the term-init.sh?
may i know which version of busybox that you are using?
currently im using the busybox from here: https://forum.xda-developers.com/showpost.php?p=78031249&postcount=107
and when i try to install term-init.sh, i encountered below error:
Code:
grep applet NOT FOUND!
run-parts applet NOT FOUND!
Required applets are NOT FOUND!
Please reinstall busybox!
illkid69 said:
hi mate, do you modify the term-init.sh?
may i know which version of busybox that you are using?
currently im using the busybox from here: https://forum.xda-developers.com/showpost.php?p=78031249&postcount=107
and when i try to install term-init.sh, i encountered below error:
Code:
grep applet NOT FOUND!
run-parts applet NOT FOUND!
Required applets are NOT FOUND!
Please reinstall busybox!
Click to expand...
Click to collapse
i have same problem do u find any solution?
Is anybody enable init.d on stock fw?
Hi,
I'm trying to install the Amazboost tweaks on my rooted Stratos (A1619) with Global FW (2.3.10.5) but I suspect that the installation of the tweaks via busybox is not running correctly. I have followed precisely the procedures with success but there is no log in the AmazBoost/LOGS folder after the reboot.
I have installed the last version of busybox (V1.29.3 for MIPS) in both /system/bin and /system/xbin but no log at all.
Some posts said that init.d is not working with stock fw.
Is that true?
Is anybody can help me to check if init.d can be enabled on my rooted Stratos (A1619) with Global FW (2.3.10.5)? And how can we verify that it works?
Thanks
Hi,
I'm still trying to understand why init.d is not running on my Stratos (A1619) with Global FW (2.3.10.5).
The init.d script refers to the "run-parts" file located in the /system/xbin/ directory.
But run-parts is not present.
I have found one file coming from the xperia x10 forum but it is not working on the Stratos: /system/xbin/run-parts: not executable: 32-bit ELF file
Is somebody could provide me this run-parts file compliant with the Stratos? (or help me to understand why the amazboost tweaks are not correctly installed)