Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: How to create a homescreen shortcut to launch a shell script? [closed]

Are there any apps for creating a home screen shortcut for a shell script (so I will need just to click on it to run the script)?

It would be great if the app will be open source, and will allow me to save scripts to the internal storage of a rooted device.

like image 934
Equidamoid Avatar asked Feb 07 '13 14:02

Equidamoid


People also ask

What is shortcut Manager?

ShortcutManager executes operations on an app's set of shortcuts, which represent specific tasks and actions that users can perform within your app.

How do I disable app shortcuts on Android?

But you can remove shortcuts (and app folders, and widgets) from your homescreen by long-pressing the shortcut you want to remove, and dragging them to the "Remove" zone at the top of the screen. You can also prevent Google Play from automatically creating app shortcuts on the homescreen in the Play Store options.


3 Answers

Answer: The answer to your question should be GScript (open source and "save anywhere" on rooted devices), but who wants to stare at that modal terminal output screen when the script completes? Details follow below.

  • SManager (free version) will let you store your custom script anywhere on the device, even your internal storage if you're using a rooted device. It will let you set different auto-launch triggers: Boot (of course), Network up/down, etc. Notifications can be triggered to keep you informed of your script's running and/or exit status, etc. But, it won't let you create a homescreen shortcut that will directly execute your script. It first launches to its own UI, and from there you may execute your script. SManager (no ads version) does let you execute your script from a homescreen shortcut cleanly and in the background, though for some scripts I construct GUI pop-up Views. I script shell and python (see SL4A/android-scripting) using this app.

  • GScript Lite (also Gscript (donate version)) is an open-source solution. You may wish to sync with the source repo and re-code/improve it to better fit your need. As it is now (v1.1.2), it needs a little improvement for ICS+, as its UI exits with a harmless error (a popup that limits its usefulness). This solution will let you directly launch scripts via homescreen shortcut (both versions), but you'll have to stare at a gratuitous terminal output screen for 20 full seconds afterword or until you manually close/dismiss it.

  • SL4A/android-scripting is mentioned in another answer. Creating homescreen shortcuts for your scripts is easily done. This is an open source solution, but it will not let you save scripts to the internal storage of your device. This solution has language support for Lua, BeanShell(Java), Bash shell, Python, Perl, JRuby, Tcl, and JavaScript using modular apk add-ons.

  • SL4A Script Launcher is an add-on to the TaskBomb automation/scheduling utility. The script execution triggers that TaskBomb provides encompasses basically every Content Provider the Android API exposes, and that is a lot. Full SL4A language support applies to this app. If all you need is simple shell scripting, you may find that it has a measure of bloat. Your script can be launched via homescreen shortcut, but this is not an open source solution.

like image 150
zero2cx Avatar answered Sep 19 '22 07:09

zero2cx


So the best option I've found is a GScript.

The GScript version on G.Play was broken, I've sent a patch to the bugtracker but I dont' see any actiivity. The project seems abandoned so I've made a fork here: https://bitbucket.org/Equidamoid/gscript . The apk is available under Downloads section.

like image 37
Equidamoid Avatar answered Sep 18 '22 07:09

Equidamoid


Maybe somebody find useful the way I do: I use ConnectBot (available on Play Store, and open source https://code.google.com/p/connectbot/). It is an SSH client that allows to connect to phone itself. You can make a shortcut to a local script doing this:

  • Create a new connection "local". You just need to introduce an alias (your script name, for example)
  • Then, edit the connection, and there is an option like "Sesion start after automatization" (I don't know the exact English words because I see Spanish locales)
  • If your script is simple enough, you just issue your commands in the input box (is multiline): if not, put the path/name of your actual file script on your phone (don't forget the 'newline'!)
  • Now, you can add a shorcut on your home screen of that connection (I have an option on Nova Launcher: long press on home screen, "add shortcut", select Connect Bot, and you will see all the connections in the app. Different launchers may differ.
like image 25
user2868521 Avatar answered Sep 20 '22 07:09

user2868521