[Tool] Makroaufnahme mit Android mittels dem "geteventsendevent"-Script

  • 16 Antworten
  • Neuester Beitrag
Diskutiere [Tool] Makroaufnahme mit Android mittels dem "geteventsendevent"-Script im Allgemeine Tools und Scripte (geräteunabhängig) im Bereich Allgemeines zu Root, Kernel und Custom-ROMs.
MrSpiceGuy

MrSpiceGuy

Stammgast
Hallo zusammen,

mein Post hier stüzt sich auf dem "geteventsendevent" Script von GermainZ aus dem XDA-Forum

Funktionsweise

Hierbei handelt es sich um ein Script, dass man mit der Makro-Taste an einem PC vergleichen kann.
Man nimmt eine Hand voll Ereignisse (in einer vorher festgelegten Zeit) auf um sie später mit einem Klick oder ganz automatisch wiederholen zu können.

Was benötigt ihr?


Makro a
ufnehmen


Den SManager ausführen.
Beim ersten Start "Browse as root" anklicken.
geteventsendevent.sh suchen & öffnen, Dann noch den Superuser-Button klicken (wird grün)

2013-05-06 13.00.16.png > Dann oben "Run" > 2013-05-06 13.01.27.png

Wir beschäftigen uns nun nur mit Punkt 1
(habe Probleme mit Punkt 2, siehe Post #2)

Wie gesagt, 1, dann Enter.
Falls keine Tastatur erscheint, lang klicken -> toggle keyboard
Nun werden wir nach einer Anzahl an "Events" gefragt.
z.B. ein Druck auf den Power Button hat 4 Events.
Einmal über den Bildschirm wischen aber schon deutlich mehr.

Soll heißen: Wenn ihr etwas zeitlich kurzes aufzeichnen wollt reichen vielleicht 100 Events.
Bei einem langem Makro sind 1000 aber eventuell zu wenig.
Dies hängt auch von euren Smartphones/Tablets ab.

Also bin ich unter Punkt 1. und Hab einfach mal 500 "events" als Grenze eingegeben.
Dann kommt ein Countdown, nachdem alles aufgezeichnet wird was ihr macht!
Tipp: Startet immer mit dem Doppelklick auf den Homebutton, dann habt ihr immer die gleiche Ausgangssituation.
Nachdem ihr euer Makro aufgenommen habt, macht ihr nach dem letzten Schritt erstmal 10-20 Sekunden nichts!
Dann geht ihr zurück in den SManager.

Es steht "Done" dort? -> Wiederholt euer Script mit mehr Events
Er zeichnet noch events auf? -> Gut nun spamt euern Touchscreen zu bis er fertig ist.

Kopiert nun den kompletten Output (lange klicken -> alles kopieren)
und fügt es in dem Text Editor ein und speichert es als name.txt und schiebt die Text-Datei auf euren PC
(geht deutlich schneller wie auf dem Smartphone)

Bearbeiten der Text-Datei

1. Alles löschen was vor und nach dem sendevent kommt:

Code:
sendevent /dev/input/event1 0000 2 0
sendevent /dev/input/event1 0000 0 0
sendevent /dev/input/event1 0000 2 0
...
sendevent /dev/input/event1 0003 54 536
sendevent /dev/input/event1 0000 2 0
[COLOR=DimGray]sleep16
sendevent /dev/input/event1 0000 0 0
sendevent /dev/input/event1 0000 2 0
sendevent /dev/input/event1 0000 0 0
sendevent /dev/input/event1 0003 57 0
[/COLOR]
2. Nachdem ihr euer Makro aufgenommen habt, hattet ihr ja X sekunden gewartet (bei mir waren es 16 Sekunden).
Ihr sucht nun "sleep X" (hier: sleep 16) und löscht alles was danach kommt (grau markiert).

3: Folgendes dem Script hinzufügen:

Code:
[COLOR=Red]#!/system/bin/sh[/COLOR]

sendevent /dev/input/event1 3 57 1476
sendevent /dev/input/event1 3 48 11
sendevent /dev/input/event1 3 58 66
...
4. und dann als "name.sh" abspeichern und wieder aufs Smartphone zurückschieben.
Makro ausführen

SManager starten, name.sh öffnen, SuperUser vergeben, RUN.

Euer Script ist euch zu langsam?
Kein Problem, name.sh am PC öffnen und die "sleep x" werte verkleinern, bzw. viele sleep 1 einträge können komplett gelöscht werden.
Aber alles Step by Step.

Soweit alles klappt, könnt ihr ein Widget auf eurem Homescreen mit name.sh anlegen und das Script jederzeit mit einem Klick starten!
Optional mit "Tasker" (nicht kostenlos) in ein Profil einbauen, damit es automatisch bei bestimmten Aktionen gestartet wird.
Beispielvideo



ein weiteres (sinnvolleres) Beispiel wird bald folgen, mit CISCO AnyConnect + Tasker
Mein Ziel wird es dabei sein, dass sobald ich mich dem WLAN an meiner HS verbinde automatisch das Script ausgeführt wird, welches
dann wiederrum Zugangsdaten etc. von AnyConnect eingibt und ich ohne auch nur einen Finger zu krümmen verbunden bin.
Bin gespannt ob das so klappt wie ich mir das denke,denn deswegen hab ich das ganze hier überhaupt gemacht :D


Euch gefällt das Script? Dankt GermainZ!
Euch gefällt die Anleitung? Dann würde ich mich auch über ein Danke freuen :)
 
Zuletzt bearbeitet von einem Moderator:
MrSpiceGuy

MrSpiceGuy

Stammgast
Mein Problem liegt im Moment bei der Custom toolbox die man verwenden muss um Punkt 2. des Scripts auszuführen.

Die Custom toolbox (Link s. Originalpost) gedownloaded, in /system/tmp/* kopiert, Terminal aufgemacht:
Code:
su 
mount -o remount,rw /system 
chown 0.0 /system/tmp/toolbox 
chmod 0755 /system/tmp/toolbox 
exit 
exit
Script wieder ausgeführt, Punkt 2. gewählt, aber es sagt noch immer ich bräuchte eine custom toolbox?!
Wo liegt mein Fehler?

Danke
und LG

PS: Es handelt sich um ein Galaxy Nexus mehr s. Signatur

EDIT_1:
habe jetzt mal die original toolbox in /system/bin mit der custom toolbox ersetzt.
Hat zwar geklappt, das Script funzt aber immer noch nicht :/

EDIT_2:
bin mit der toolbox nicht weitergekommen, ich schätze mal die ist nicht mit meinem GNex kompatibel.
 
Zuletzt bearbeitet:
M

mizch

Dauergast
Laut der Beschreibung in xda gehört toolbox nach /tmp/, nicht nach /system/tmp.
 
MrSpiceGuy

MrSpiceGuy

Stammgast
mizch schrieb:
Laut der Beschreibung in xda gehört toolbox nach /tmp/, nicht nach /system/tmp.
Ups, das ist mir jetzt peinlich :rolleyes2:
Ordner /tmp erstellt, toolbox reingeworfen, Berechtigungen geändert und siehe da:
2013-05-06 19.25.55.png

Jetzt geht das ganze auch mit einem eigestellten Timer, sehr schön.
Erleichtert das ganze
 
santana81

santana81

Fortgeschrittenes Mitglied
Klasse anleitung, danke dafür!!!

Habe es zum laufen bekommen allerdings ist es soooo langsam.
Gibt es ne Möglichkeit es schneller ablaufen zu lassen?
 
MrSpiceGuy

MrSpiceGuy

Stammgast
Wie gesagt öffne dein script xxx.sh und verkleinere die "sleep x" werte.
Peu a peu. Wenn du die werte zu schnell verkleinerst verschluckt sich das Script.

Mit etwas geduld habe ich bei meinen Scripts bis jetzt immer gute Geschwindigkeiten erreicht.

Habe derzeit noch ein Problem bei der Tastatureingabe. Irgebdwie vertippt sich das script da :/

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
santana81

santana81

Fortgeschrittenes Mitglied
Bei mir steht immer sleep 1 egal wie lange ich auch warte...
:confused:
 
MrSpiceGuy

MrSpiceGuy

Stammgast
Nicht warten, ein paar Sleep Einträge löschen und die Datei neu abspeichern beispielsweise als xxx_test1.sh und neu testen.
Klappt nicht?
Dann die xxx.sh erneut öffnen und andere, bzw. weniger "sleep 1" entfernen.

Zur Erklärung:

"sleep x" bedeutet, dass er eine Pause von x Sekunden einlegt.
Verkürzt du diese bzw. entfernst du sie, läuft dein Script logischerweise schneller.
Löschst du allerdings zu viele, ist das Script schneller, als dein Handy reagiert und das wars dann mit einer erfolgreichen Eingabe.

Ich muss ehrlich zugeben, 100%ig stellt mich das hier auch nicht zufrieden.
Aber mit etwas Geduld kann man es ganz gut hinbiegen.
Vorallem ist dies im Moment die, meines Wissens, einzige Möglichkeit ein Makro aufzunehmen
 
santana81

santana81

Fortgeschrittenes Mitglied
Ich meite auch das wenn ich das Skript aufzeichne und dann zum schluss warte bleibt es immer bei sleep 1 egal wie lange ich jetzt gewartet habe!

Die ersten zwei Befehle führt er normal aus und dann wird es sehr langsam.
Ich sehe aber auch, dass er eine ganze menge an Befehlen aufgezeichnet hat und diese ja erst verarbeiten muss. Von daher wäre es richtig gut wenn ich sagen könnte: Spiel mir das Skript in der 2 fachen Geschwindigkeit ab.

Ich werde da noch etwas rumprobieren, aber schon mal cool das es überhapt geht!!
 
MrSpiceGuy

MrSpiceGuy

Stammgast
Habe hier mal was gefunden:

The reason why your replay takes a long time is because the sendevent binary opens the interface file, writes data to it and closes it for every call to sendevent. So in theory, if you have a bunch of sendevent commands, the binary is opening the interface file, writing data and closing it for every command. The way I've solved this issue is by re-writing the sendevent.c file under /system/core/toolbox to open the file only once during replay, writing all the data and closing it at the end of the replay. It works perfectly for me!

Musste mich für dieses Thema hier schon mit Linux auseinandersetzen, da ich ein blutiger Anfänger in dem Gebiet bin.
Kann mit der obigen Aussage eher weniger anfangen :huh:
 
santana81

santana81

Fortgeschrittenes Mitglied
Geht mir auch so, habe von Linux fast null Plan!
Aber das was er schribt macht schon sinn, mal sehen ob ich es so hin bekomme das er die Interface file offen lässt.
Mal schauen ob es dafür ne Anleitung im Inet gibt.
 
santana81

santana81

Fortgeschrittenes Mitglied
Hab es für mich zufriedenstellend gelöst.
Indem ich nur die Touchscreen befehle Speicher. Dadurch wird das Skript natürlich viel kürzer!!

Jetzt würde mich interessieren ob es einen Befehl gibt der das Skript automatisch wieder von vorne laufen lässt?

Gesendet von meinem GT-I9300 mit Tapatalk 2
 
F

fener3

Neues Mitglied
exec sh '/storage/emulated/legacy/Download/newtry.sh'
root@t03g:/ # exec sh '/storage/emulated/legacy/Download/newtry.sh'
/storage/emulated/legacy/Download/newtry.sh[2]: acct: not found

hallo,...
Bei mir funktioniert fast alles bis auf sScript ausführen,...

habe alles so gemacht wie du es erklärt hast...
Sogar Code eingefügt was du gesagt hast, aber beim ausführen des aufgenommenen script es kommt
Acc not found. ..

früher kam no permission trotz root rechte, irgendwie habe ich es gelöst , aber wie gesagt acc not found konnte ich nicht lösen


EDIT: GELÖST!!!
ES gibt ja schon etwas viel bequemeres,. "REPETITOUCH PRO" app, mit root rechte, geht alles von alleine...



mfg
fener3
 
Zuletzt bearbeitet:
J

jobal

Neues Mitglied
Hallo,
Ich habe folgendes Problem. Ich weiss nicht wie ich die Aufzeichnung beenden kann.
Egal wieviele Events ich eingebe. Nach 3211 go und den******* passiert nichts mehr.
Wer kann mir helfen?
Vielen Dank.
 
vetzki

vetzki

Philosoph
MrSpiceGuy schrieb:
Nicht warten, ein paar Sleep Einträge löschen und die Datei neu abspeichern beispielsweise als xxx_test1.sh und neu testen.
Klappt nicht?
Dann die xxx.sh erneut öffnen und andere, bzw. weniger "sleep 1" entfernen.

Zur Erklärung:

"sleep x" bedeutet, dass er eine Pause von x Sekunden einlegt.
Verkürzt du diese bzw. entfernst du sie, läuft dein Script logischerweise schneller.
Löschst du allerdings zu viele, ist das Script schneller, als dein Handy reagiert und das wars dann mit einer erfolgreichen Eingabe.

Ich muss ehrlich zugeben, 100%ig stellt mich das hier auch nicht zufrieden.
Aber mit etwas Geduld kann man es ganz gut hinbiegen.
Vorallem ist dies im Moment die, meines Wissens, einzige Möglichkeit ein Makro aufzunehmen
nur kurz zu sleep, vll. wäre es klüger statt welche rauszulöschen erst mal alle von 1 auf 0.5 zu setzen? (wenn noch alles passt mal 0.33 versuchen oder eine mischung und ggf. ein paar entfernen)
 
santana81

santana81

Fortgeschrittenes Mitglied
Ich habe inzwischen ein super zu bedienendes und einfach aufgebautes Tool im playstore gefunden.
Damit lassen sich Klicks auf dem Display simulieren und mit einem Button auch einfach beenden.

Es nennt sich android bot maker.
 
Ähnliche Themen - [Tool] Makroaufnahme mit Android mittels dem "geteventsendevent"-Script Antworten Datum
33