Wie können mehrere Befehle mit einem Terminal-Emulator-Shortcut ausgeführt werden?

  • Antworten:13
  • Bentwortet
Marcus W
  • Forum-Beiträge: 3.584

03.01.2015, 13:21:55 via Website

Hallo Community!
Ich brauche mal die Hilfe von ein paar Linux-Cracks, da ich beschämt gestehen muss, dass das für mich weitgehend fremdes Land ist.

Ich möchte gern einen Shortcut auf dem Homescreen erstellen, der das Gerät mittels Shelll-Command rebooten lässt.
Kein Problem, der Shortcut dafür wäre:

/system/bin/reboot

image

Aber ohne SU-Rechte wird das leider nichts. Deshalb müsste ich mich als SU in das Verzeichnis einklinken.

/system/xbin/su

image

Funktioniert auch. Jetzt suche ich nach einem Weg, wie ich diese beiden Befehle in einem Shortcut zusammenführen kann.
Ich nutze den Terminal-Emulator von MobilDev Falls ihr einen anderen Terminal-Emulator kennt, der das einfacher möglich macht, bin ich auch dafür dankbar.

BusyBox ist selbstverständlich vorhanden. ;)

— geändert am 03.01.2015, 15:16:30

Antworten
Klaus T.
  • Forum-Beiträge: 8.183

03.01.2015, 14:09:34 via App

Guck dir mal den SManager (Script Manager) an. Damit habe ich so was mal gemacht. Ob Shortcuts damit gehen, weiss ich aber nicht mehr.

Achja.....mehrere Befehle macht man in ein Shell-Script (ähnlich .bat bei Windows)

— geändert am 03.01.2015, 14:21:36

if all else fails, read the instructions.

Antworten
Sven R.
  • Forum-Beiträge: 1.904

03.01.2015, 15:42:58 via App

Kann man nicht wie am Computer einfach vor den Befehl "su" setzen?

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
reinold p
  • Forum-Beiträge: 3.401

03.01.2015, 19:20:08 via App

eine lauffähige shell-Datei beginnt mit
"#!/system/bin/sh"
Befehle kannst du (leider nur in der shell-Datei) hintereinander schreiben durch
"; "

Aber dies ist keine ausführbare Datei. Du mußt sie im TerminalEmulator mit "sh Dateiname" ausführen. Bei meinem LightningBrowser kann ich ein TE-Shortcut auf den HomeScreen setzen, mit zB "sh" als Command und dem shell-Dateinamen mit Pfad als Parameter. Aber das hilft nicht. Der su-Befehl, der eine neue Shell-Instanz öffnet, muß vor der shell-Datei ausgeführt werden und darf nicht darin stehen.

(jeweils " weglassen)

Wenn's wirklich nur um einen Reboot-Knopf geht: es gibt Apps, die das erweiterte Rebootmenü erzeugen. Vllt bringen sie diesen ShortCut mit.

— geändert am 03.01.2015, 19:59:02

Antworten
Marcus W
  • Forum-Beiträge: 3.584

03.01.2015, 20:40:31 via Website

Eigentlich möchte ich mich nur ein wenig in die ganze Materie reinfuchsen und das soll mir als erstes "Projekt" dienen, weil mir unter Lollipop der Reboot-Button fehlt. Ja, könnte man mit einer App machen, aber es geht mir um die Bastelei und den Umgang mit TE und Shell-Befehlen an sich.

Was wohl funktioniert ist im Shortcut unter "Argument" folgendes einzufügen:

-c "reboot"

Leider crasht mir ständig der Launcher beim Versuch diesen Shortcut zu erstellen.

Deshalb habe ich es mit folgendem Skript versucht, welches ich im Netz gefunden und reboot.sh genannt habe:

#!/system/bin/sh
am broadcast
android.intent.action.ACTION_SHUTDOWN
sleep(5)
reboot

Dieses Skript habe ich mittels chmod mit permission 0755 versehen.
Leider schlägt jeder Teil dieses Skriptes fehl. "am broadcast" braucht noch ein Atribut, welches festlegt für welchen User es gilt und beim Rest fehlen auch noch weitere Spezifikationen. "(5)" ist ein unbekannter Wert. Keine Ahnung wofür dieses Skript geschrieben wurde, aber auf meinem Androiden funktioniert es so jedenfalls auch mit Busybox nicht.
Ich muss mich da nochmal weiter einlesen und tippsel mal am Rechner ein paar Varianten zusammen, die ich dann probiere - am Tab ist mir das zu blöd. :)

— geändert am 03.01.2015, 20:42:36

Antworten
reinold p
  • Forum-Beiträge: 3.401

03.01.2015, 20:49:54 via App

dann halt uns mal auf dem Laufenden...

Zl 2&3 sind keine Shell-Befehle. Einen Link der Befehlsmenge, die Busybox unterstützt, kann ich dir suchen.

— geändert am 03.01.2015, 20:52:57

Antworten
Marcus W
  • Forum-Beiträge: 3.584

03.01.2015, 21:03:46 via Website

Danke Reinold, die unterstützten Befehle lassen sich auch im Installer einsehen.
Die erste Lösung mit dem

-c "reboot"

als Argument funktioniert allerdings auf dem N5 zumindest wie gewollt, wenn man auch noch dran denkt, ein "su" davor zu setzen. XD
Danke an Ludy!

Warum der Launcher auf dem N7 aber dabei abschmiert ist wohl ein anderes Thema, was es zu lösen gilt.
Aber theoretisch funktioniert folgende Möglichkeit wie gewollt:

Uploaded with Directupload Image Sharer

— geändert am 03.01.2015, 21:06:01

Antworten
reinold p
  • Forum-Beiträge: 3.401

04.01.2015, 00:03:11 via App

su ist der Befehl, -c die Option, reboot der zugehörige Parameter

Bei mir gehts abschmierfrei. Aber die Engstelle bleibt: wenn ich als Parameter eine shell-Datei angebe, wird diese nicht auf der Superuser-Shell ausgeführt. Ich bin also begrenzt auf 1 Basisbefehl.

Ich nutze die Shell für Abläufe auf Systemebene. Nur im TerminalEmulator. Für elegante Einbindung in den Launcher ist sie nicht gedacht.

Antworten
Marcus W
  • Forum-Beiträge: 3.584

04.01.2015, 01:05:24 via App

Ja, das stimmt. Dennoch muss man doch via Skript erst eine Shell auf SU-Ebene starten und anschließend den gewünschten Befehl ausführen können.

Bei TE kann man die Start-Shell definieren. Könnte man so nicht bei jedem Start des TE eine SU-Shell starten lassen? Dann wäre dies auch möglich. Auch wenn das natürlich nur eine weitere Krücke wäre....

EDIT: ja, das geht. Wenn man als Startbefehl "su" wählt, wird dieser bei jedem Start zuerst ausgeführt.

— geändert am 04.01.2015, 01:11:07

Antworten
Klaus T.
  • Forum-Beiträge: 8.183

04.01.2015, 10:24:21 via Website

Wie gesagt, mit dem SManager geht das prima...und mehr. Ich habe damit seinerzeit z.B. Scripte beim/nach dem Booten ausführen lassen.

User uploaded photo User uploaded photo User uploaded photo

if all else fails, read the instructions.

Antworten
DougFieber
  • Forum-Beiträge: 18

21.02.2016, 11:00:32 via Website

Wie heisst die app womit mam die shortcuts erstellt ?

Antworten