Executes scripts after certain events happened.

Event based script runner Screenshot
Event based script runner Screenshot
Event based script runner Screenshot
Update
Mar 27, 2023
Developer
Category
Installs
1,000+
Rate
0
If you do not know what is an sh script, expect there is a step by step instruction to help you setup some simple tasks, feel this application won't open or crash, or think 12K application won't be able to do much, you definitely do not understand the meaning of this application. I suggest you stop here and won't waste time anymore.
I cannot quite understand the reviews or mails from some guys, I developed this free tool without benefit, just for people to resolve their issues. I do not have responsibilities to explain some very basic linux or android commands.

This is a very small tool to execute one of following sh scripts after a certain event.
Device boot -> init.sh
Screen on -> screen-on.sh
Screen off -> screen-off.sh
User present -> screen-unlock.sh
Wifi on -> wifi-on.sh
Wifi off -> wifi-off.sh
Wifi connected -> wifi-connected.sh
Wifi disconnected -> wifi-disconnected.sh
And a user action One Short -> one-shot.sh

It searches following folders for scripts. -- Real locations may be various according to manufacturers or ROM builders.
/storage/emulated/0/init/ -- init/ in internal storage
/storage/sdcard1/init/ -- init/ in external storage
/storage/emulated/0/Android/data/org.gemini.init/files/ -- in app internal storage files
/storage/sdcard1/Android/data/org.gemini.init/files/ -- in app external storage files

It could be a very powerful tool if you would like to solve following troubles,
1. Apps on SD card cannot be auto started.
2. Would like to regular move files from one folder to another.
3. Executes some actions when screen on / off.
There is a sample @ https://github.com/Hzj-jie/android-init/tree/master/sample

This app has a very small footprint, only several hundreds kilo bytes of storage and several mega bytes memory usage, and no extra permissions required.

code is @ https://github.com/hzj-jie/android-init

Note:
1. Make sure this app itself is able to auto start when booting, some ROMs have such controls.
2. Make sure this app is protected, the script will stop if this app stopped.
3. You need to start the app once before it can receive boot complete signal. (Click on 'Activate Init' icon.)
4. Usually nohup cannot work, the script will stop after the service of this app stopped.
5. You can still use & to concurrently execute several scripts.
6. The app service will stop after executing script, and publish a notification. If your script needs a long run, sleep forever.
7. App will output the output of sh command into /storage/sdcard1/Android/data/org.gemini.init/files/output.log or /storage/emulated/0/Android/data/org.gemini.init/files/output.log.

FAQ:
1. How does it work?
The app starts a service, and looks for scripts in certain folders, executes the all scripts it found with 'sh {full path of init.sh}', redirects output and error streams to log files.
2. Why no icon?
I do not mean to cheat, but it help to save memory. And you do not need to click on the app icon. The whole package is only 12 kilo bytes, I do not want an icon to enlarge it.
3. How to start an activity?
am --user 0.
4. Screenshots?
Yes, all screenshots are coming from my phone, if you have copyright to any of them, feel free to let me know, I will remove it.
5. Why I need to click on 'Activate Init' first?
Start from Android 3.1, BOOT_COMPLETED signal will only be received by apps which have actively been started by users.
http://commonsware.com/blog/2011/07/05/boot-completed-regression.html
6. If I was using output redirection, where is the output file?
Same as output.log, i.e. app data folder in external or internal storage, (such as /storage/emulated/0/Android/data/org.gemini.ini/files/). Technically said, the start directory is same as where output.log is placed.
7. How to write an sh script?
Google "how to write sh script". But note, supported commands may be various according to your ROM
8. Root commands?
If your device is rooted.
9. output.log is not realtime?
Yes, log writer has a buffer, tasks may also be delayed by OS.