G
Gelöschtes Mitglied 342348
Gast
Wie vielleicht schon der Eine oder Andere mitbekommen hat, ist es nicht mehr so einfach möglich aus einem Tasker-Profil eine App zu starten.
Das wurde seit der 8.1 leider durch die Security-Beschränkungen in Android heraus genommen.
Wofür braucht man das?
Nun, es gibt Leute (so Honks wie ich halt einer bin), die haben gerne nach dem Booten (auch aus dem Standby heraus) ein paar Apps automatisch gestartet.
Die meisten PX5 haben nur leider das Problem, dass es nicht wirklich eine White-List gibt, die die laufenden Apps persistiert, also beim "Suspend to RAM" die laufenden Apps killt. Bei Joying gibt es eine Heilung, da kann man das einrichten, dass alle Apps aktiv bleiben. Das gibt es bei vielen anderen Anbietern leider nicht.
Hier muss also eine Alternative her... Zumindest nach dem Aufwecken ohne Zutun wieder die Apps starten, die man gerne im Hintergrund aktiv haben möchte. Ob das Blitzer.de, die Navigation, ein Communicator, oder was auch immer sein mag...
Was brauchen wir?
Als erstes mal was zur besseren Benutzung:
Wer mit ADB und Shell zurecht kommt, der kann den Spoiler zu lassen. Wichtig ist nur, dass ihr mit "top" die App-Namen ermittelt.
Tasker:
Das kann man auch am PC in der Shell testen.
Was wir natürlich nicht wollen ist, dass Apps doppelt gestartet werden, deshalb fragen wir das nun vorher ab:
Nehmen wir das Beispiel für TomTom.
Die benötigten Befehle in Tasker:
Wir haben nun alles was wir brauchen und gehen nun an Tasker:
Erstellt euch einen Task, wie zum Beispiel mit Namen "Startup".
Bei der Blitzer.plus gibt es eine Besonderheit:
Blitzer.plus ist komplett ausgeschaltet --> Rückgabewert = cat: /proc//oom_adj: No such file or directory
Blitzer.plus im Hintergrund aktiv --> Rückgabewert = 0
Blitzer.plus im Vordergrund --> Rückgabewert = 0
Man sollte hier also auf die Fehlermeldung prüfen, statt nach dem Zustand selber.
... also:
Mit dieser Lösung kann man bequem die Einschränkungen von Android "umgehen".
Viel Spaß damit.
Das wurde seit der 8.1 leider durch die Security-Beschränkungen in Android heraus genommen.
Wofür braucht man das?
Nun, es gibt Leute (so Honks wie ich halt einer bin), die haben gerne nach dem Booten (auch aus dem Standby heraus) ein paar Apps automatisch gestartet.
Die meisten PX5 haben nur leider das Problem, dass es nicht wirklich eine White-List gibt, die die laufenden Apps persistiert, also beim "Suspend to RAM" die laufenden Apps killt. Bei Joying gibt es eine Heilung, da kann man das einrichten, dass alle Apps aktiv bleiben. Das gibt es bei vielen anderen Anbietern leider nicht.
Hier muss also eine Alternative her... Zumindest nach dem Aufwecken ohne Zutun wieder die Apps starten, die man gerne im Hintergrund aktiv haben möchte. Ob das Blitzer.de, die Navigation, ein Communicator, oder was auch immer sein mag...
Was brauchen wir?
- gerootetes Android-Radio
- Laptop/Tablet
- ADB- Fastboot auf Windows im Root von C: installiert
- Tasker auf dem Android-Radio
- Ein paar Tricks...
- ...und ein wenig Zeit...
Als erstes mal was zur besseren Benutzung:
- Erstellt euch ein Textfile und schreibt da lediglich rein: cmd.exe
- Speichert dann dieses Textfile als CMD_Starter.bat ab. (nicht als .txt)
- Legt diese CMD_Starter.bat dann in den Ordner, in dem auch die adb.exe liegt.
- Somit müsst ihr nicht mehr in ADB erst einmal mit CD.... in den Ordner wechseln. Ist einfach eine Arbeitserleichterung.
- Laptop und Radio müssen im gleichen WLAN-Netzwerk verbunden sein, also vom Windows eine Tethering-Verbindung zum Radio aufbauen.
- Dann schauen wir mal in den Einstellungen --> Netzwerkdetails die IP-Adresse des Android-Radios auslesen und notieren. Die brauchen wir gleich.
- Startet jetzt mal die gewünschten Apps auf dem Radio, wir müssen nämlich die genauen Namen erst einmal ermitteln.
Wer mit ADB und Shell zurecht kommt, der kann den Spoiler zu lassen. Wichtig ist nur, dass ihr mit "top" die App-Namen ermittelt.
Als erstes nehmen wir Kontakt zum Radio auf mit:
Als Beispiel-IP benutze ich mal eine der IP´s von einem meiner Geräte... Die muss natürlich durch die ermittelte IP vom Radio ausgetauscht werden!
adb connect 192.168.178.37
Ihr bekommt dann eine Ausgabe wie diese hier:
Damit habt ihr schon einmal die Verbindung erfolgreich hergestellt.
Als nächstes wollen wir die aktiven Apps ermitteln. Das geht über die Shell.
Mit
Dann kommt so was raus:
Natürlich unterscheidet sich die Bezeichnung des Gerätes.
Der nächste Befehl in der Shell lautet
Damit listet man alle laufenden Applikationen des Radios auf. Achtung: "top" läuft kontinuierlich weiter. Stoppen geht über die Tastatur, indem man die "q" -Taste drückt --> q für quit.
Jetzt sucht man sich seine bevorzugten Apps in der Liste:
Ich würde zum Beispiel gerne folgende Apps immer laufen haben:
Als Beispiel-IP benutze ich mal eine der IP´s von einem meiner Geräte... Die muss natürlich durch die ermittelte IP vom Radio ausgetauscht werden!
adb connect 192.168.178.37
Ihr bekommt dann eine Ausgabe wie diese hier:
Code:
C:\ADB_Fastboot>adb connect 192.168.178.37
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to 192.168.178.37:5555
Damit habt ihr schon einmal die Verbindung erfolgreich hergestellt.
Als nächstes wollen wir die aktiven Apps ermitteln. Das geht über die Shell.
Mit
adb shell
wechselt ihr von der ADB-Konsole in die Shell des Radios.Dann kommt so was raus:
Code:
C:\ADB_Fastboot>adb shell
rk3368:/ #
Der nächste Befehl in der Shell lautet
top
Damit listet man alle laufenden Applikationen des Radios auf. Achtung: "top" läuft kontinuierlich weiter. Stoppen geht über die Tastatur, indem man die "q" -Taste drückt --> q für quit.
Jetzt sucht man sich seine bevorzugten Apps in der Liste:
Code:
[?25l[0m[H[JTasks: 290 total, 1 running, 288 sleeping, 0 stopped, 0 zombie
Mem: 4034844k total, 2857844k used, 1177000k free, 11168k buffers
Swap: 2017416k total, 0k used, 2017416k free, 1605164k cached
800%cpu 90%user 0%nice 65%sys 642%idle 3%iow 0%irq 0%sirq 0%host
[7m PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS [0m
719 u0_a87 20 0 3.6G 142M 120M S 67.7 3.6 90:21.12 com.zoulou.dab
11738 root 20 0 11M 3.9M 3.2M R 32.2 0.1 0:00.06 top
300 audioserver 20 0 111M 17M 14M S 19.3 0.4 18:24.17 audioserver
330 mediacodec 20 0 36M 14M 11M S 16.1 0.3 21:07.99 media.codec hw/android.hardware.media.o+
3236 u0_a110 20 0 1.4G 328M 172M S 6.4 8.3 13:00.10 com.tomtom.gplay.navapp.nds
280 audioserver 20 0 22M 10M 8.2M S 6.4 0.2 3:31.67 android.hardware.audio@2.0-service
915 root 20 0 0 0 0 S 3.2 0.0 0:15.92 [RTW_CMD_THREAD]
500 system 18 -2 4.4G 256M 211M S 3.2 6.5 20:51.81 system_server
298 root 20 0 5.5M 604K 528K S 3.2 0.0 0:02.30 ak_mcu_daemon
7 root 20 0 0 0 0 S 3.2 0.0 1:01.13 [rcu_preempt]
11506 root 20 0 0 0 0 S 0.0 0.0 0:00.07 [kworker/u16:3]
10860 root 20 0 9.0M 3.0M 2.5M S 0.0 0.0 0:00.02 sh -
9007 root 20 0 0 0 0 S 0.0 0.0 0:00.07 [kworker/7:2]
8961 u0_a22 20 0 4.2G 148M 127M S 0.0 3.7 0:04.27 com.google.android.googlequicksearchbox+
7227 root 20 0 0 0 0 S 0.0 0.0 0:00.99 [kworker/u16:2]
5590 root 20 0 0 0 0 S 0.0 0.0 0:03.88 [kworker/4:2]
5526 u0_a8 20 0 3.5G 81M 68M S 0.0 2.0 0:00.25 com.android.settings.intelligence
5490 system 10 -10 3.6G 150M 121M S 0.0 3.8 0:09.87 com.android.settings
5413 root 20 0 0 0 0 S 0.0 0.0 0:01.57 [kworker/u16:0]
27868 root 20 0 0 0 0 S 0.0 0.0 0:03.92 [kworker/u16:5]
22254 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kworker/3:2]
22103 u0_a26 20 0 3.5G 82M 69M S 0.0 2.0 0:00.23 com.google.android.partnersetup
16633 root 20 0 0 0 0 S 0.0 0.0 0:00.66 [kworker/7:0]
15634 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/3:1]
14745 root 20 0 0 0 0 S 0.0 0.0 0:00.04 [kworker/5:1]
14502 u0_a10 20 0 3.6G 166M 142M S 0.0 4.2 0:05.14 com.google.android.gms.ui
8463 root 20 0 0 0 0 S 0.0 0.0 0:05.96 [kworker/0:0]
8352 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kworker/5:0]
8251 u0_a11 20 0 3.5G 101M 87M S 0.0 2.5 0:00.33 com.android.launcher
8206 u0_a24 20 0 3.5G 82M 70M S 0.0 2.0 0:00.15 com.android.defcontainer
8181 u0_a36 20 0 1.0G 98M 88M S 0.0 2.4 0:04.09 com.android.vending:instant_app_install+
7922 u0_i2 20 0 0.9G 68M 58M S 0.0 1.7 0:00.06 com.android.webview:sandboxed_process0
7871 u0_a101 18 -2 1.1G 150M 126M S 0.0 3.8 1:48.79 de.blitzer.plus
5945 root 20 0 0 0 0 S 0.0 0.0 0:00.07 [kworker/1:0]
3547 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/2:2]
3479 u0_a110 20 0 1.0G 106M 94M S 0.0 2.6 0:13.67 com.tomtom.gplay.navapp.nds:servicescon+
3436 u0_a56 20 0 3.6G 149M 105M S 0.0 3.7 0:12.82 com.google.android.tts
2302 u0_a5 20 0 3.5G 99M 85M S 0.0 2.5 0:04.17 android.process.acore
2269 root 30 10 13M 1.4M 864K S 0.0 0.0 0:00.03 daemonsu:10116
1760 root 30 10 12M 1.5M 864K S 0.0 0.0 0:00.00 [7m[27m[7m[27m[7m[27m[7m[27m[7m[27m[7m[27m[7m[27m[7m[27mdaemonsu:0 [7m^T[27m[7m^T[27m[7m^T[27m[7m^T[27m
1706 root 30 10 11M 1.4M 864K S 0.0 0.0 0:00.02 daemonsu:10098
1610 u0_a36 20 0 1.2G 211M 145M S 0.0 5.3 3:57.55 com.android.vending
1417 u0_a111 20 0 3.6G 117M 99M S 0.0 2.9 0:13.60 robj.readit.tomefree
1388 u0_a91 20 0 4.2G 121M 105M S 0.0 3.0 0:15.29 ru.speedfire.flycontrolcenter:notificat+[?25h[0m[1000;1H[K[?25h[0m[1000;1H[Krk3368:/ #
- Blitzer.de
- TomTom
- ReadItToMe
Code:
7871 u0_a101 18 -2 1.1G 150M 126M S 0.0 3.8 1:48.79 de.blitzer.plus
3236 u0_a110 20 0 1.4G 328M 172M S 6.4 8.3 13:00.10 com.tomtom.gplay.navapp.nds
1417 u0_a111 20 0 3.6G 117M 99M S 0.0 2.9 0:13.60 robj.readit.tomefree
Tasker:
Das kann man auch am PC in der Shell testen.
Was wir natürlich nicht wollen ist, dass Apps doppelt gestartet werden, deshalb fragen wir das nun vorher ab:
Nehmen wir das Beispiel für TomTom.
Die benötigten Befehle in Tasker:
cat /proc/$(pidof -s [Name der App] 1)/oom_adj
Code:
Was macht dieser Befehl:
cat --> concatenate (das ist ein Verkettungs-Befehl aus Linux. Einer der meistgenutzten Befehle in Linux)
proc --> Process information (enthält unter Anderem auch Prozess-Informationen)
oom_adj --> gibt den Zustand der App her
cat /proc/$(pidof -s com.tomtom.gplay.navapp.nds 1)/oom_adj ermittelt also, ob TomTom läuft.
Es gibt mehrere Zustände:
TomTom ist komplett ausgeschaltet --> Rückgabewert = 15
TomTom im Hintergrund aktiv --> Rückgabewert = 3
TomTom im Vordergrund --> Rückgabewert = 0
monkey -p [Name der App] 1
Code:
Was macht dieser Befehl:
monkey ist ein mächtiges Commandline-Tool, mit dem man verschiedene Befehle auf der Unit ausführen kann. So auch das Starten einer App.
Wir haben nun alles was wir brauchen und gehen nun an Tasker:
Erstellt euch einen Task, wie zum Beispiel mit Namen "Startup".
- Man wählt mit dem "+" eine neue Aktionskategorie auf und wählt da:
- Code -->Shell ausführen.
- Befehl:
cat /proc/$(pidof -s [B]com.tomtom.gplay.navapp.nds[/B] 1)/oom_adj
- Benutze Root --> einschalten
- Output speichern in : %Status_Navi (oder ein anderer Name, wichtig nur, dass der erste Buchstabe ein Großbuchstabe ist)
- Fehler speichern in: %Status_Navi_fault (wie oben)
- Task weiter ausführen nach Fehler --> einschalten
- Das war der erste Schritt.
- Wait von 200-300ms stabilisiert das Ganze
- Jetzt kommt eine If-Schleife:
- Bedingungen:
- %Status_Navi UNGL 0
- AND
- %Status_Navi UNGL 3
- Shell auswählen:
- Befehle:
monkey -p [B]com.tomtom.gplay.navapp.nds[/B] 1
- Benutze Root --> einschalten
- Befehle:
- Wait einfügen --> ca. 15 Sek. also mal checken, wie lange die jeweilige App zum starten braucht.
- Else
- End If
Bei der Blitzer.plus gibt es eine Besonderheit:
Blitzer.plus ist komplett ausgeschaltet --> Rückgabewert = cat: /proc//oom_adj: No such file or directory
Blitzer.plus im Hintergrund aktiv --> Rückgabewert = 0
Blitzer.plus im Vordergrund --> Rückgabewert = 0
cat /proc/$(pidof -s de.blitzer.plus 1)/oom_adj
gibt hier wie man sieht eine Fehlermeldung aus.Man sollte hier also auf die Fehlermeldung prüfen, statt nach dem Zustand selber.
... also:
- If
- $Status_Blitzer_false UNGL cat: /proc//oom_adj: No such file or directory
- Shell ausführen
- Befehl monkey -p de.blitzer.plus 1
- Benutze Root
- Wait --> 1-2 Sek
- else
- End If
cat /proc/$(pidof -s [Name der App] 1)/oom_adj
liefert... man kann ja nie wissen.Mit dieser Lösung kann man bequem die Einschränkungen von Android "umgehen".
Viel Spaß damit.
Zuletzt bearbeitet von einem Moderator: