Wie ADB commands durch Script automatisieren

sonoftobit

sonoftobit

Neues Mitglied
2
Wenn ich ein neues Update für CM flashe, lösche ich erst die ungewollten Apps aus der .zip Datei und muss danach umständlichen mit ADB rumhantieren.

Wie kann ich ein Script basteln (sodass ich nur noch eine zusätzliche .zip Datei flashen muss beim aktualisieren) das mir die folgenden ADB commands automatisch ausführt:

"adb shell

mount /system
mount /data

mv /system/etc/hosts /system/etc/hosts.bak
mv /system/media/bootanimation.zip /system/media/bootanimation.bak
ln -s /data/data/hosts /system/etc/hosts
ln -s /data/data/bootanimation.zip /system/media/bootanimation.zip

exit"

Danke!
 
Jetzt mal unabhängig von einer flashbaren ZIP-Datei, kannst du dir einfach ein solches Skript anlegen und einfach starten:
Code:
adb shell mount /system
adb shell mount /data

adb shell mv /system/etc/hosts /system/etc/hosts.bak
adb shell mv /system/media/bootanimation.zip /system/media/bootanimation.bak
adb shell ln -s /data/data/hosts /system/etc/hosts
adb shell ln -s /data/data/bootanimation.zip /system/media/bootanimation.zip
Wie das ganze als flashbares ZIP aussehen müsste, kann ich heute Nachmittag mal erbasteln. Das Problem mit dem sym. Link der Hosts-Datei habe ich auch jedesmal. Hab da schon was probiert, aber das klappte irgendwie nicht so wie ich wollte.


EDIT: Evtl. musst du die einzelnen adb-Befehle (unter Win soweit ich weiß auf jeden Fall) auch in Anführungszeichen fassen, also
Code:
adb shell "mount /system"
adb shell "mount /data"

adb shell "mv /system/etc/hosts /system/etc/hosts.bak"
adb shell "mv /system/media/bootanimation.zip  /system/media/bootanimation.bak"
adb shell "ln -s /data/data/hosts /system/etc/hosts"
adb shell "ln -s /data/data/bootanimation.zip  /system/media/bootanimation.zip"
 
  • Danke
Reaktionen: sonoftobit
Also ich habe zwar eine flashbare ZIP hinbekommen (auch signiert), die auch ohne Fehlermeldung alle Befehle abarbeitet. Aber das was sie machen soll, klappt noch nicht. Bin daher erstmal wieder zur "manuellen Methode" zurück, aber ich versuch's weiter.
 
Vorab vielen Dank für deine Hilfe!

Konnte mich selbst leider kaum weiter damit beschäftigen. Habe dummerweise noch paar andere Dinge, um die ich mich momentan kümmern muss.

Ich fand aber deine Idee eines cmd scripts gut und habe das mal probiert. Sieht bei mir so aus (Datei heißt "fix_links.cmd"):
"cd c:\adb

adb shell "mount /system"
adb shell "mount /data"

adb shell "mv /system/etc/hosts /system/etc/hosts.bak"
adb shell "mv /system/media/bootanimation.zip /system/media/bootanimation.bak"
adb shell "ln -s /data/data/hosts /system/etc/hosts"
adb shell "ln -s /data/data/bootanimation.zip /system/media/bootanimation.zip"

taskkill /F /IM adb.exe

pause"

Läuft fehlerlos durch... aber die symlinks erzeugt er einfach nicht. Dateien pushen etc. geht aber ohne Probleme.
Woran kann das liegen?
 
Du brauchst keinen Taskkill.

adb kill-server macht das für dich ;)

Es kann sein, dass er die Links nur erstellt, wenn auch die Dateien bei /data/data/hosts und /data/data/bootanimation.zip vorhanden sind. Aber das müsste Fehlermeldungen erzeugen.
Aber wenn du die nie löschst (außer bei Wipes), sollten die ja da sein - oder eben vorher noch pushen.
 
Thyrion schrieb:

Wieder etwas gelernt. :)

Thyrion schrieb:
Es kann sein, dass er die Links nur erstellt, wenn auch die Dateien bei /data/data/hosts und /data/data/bootanimation.zip vorhanden sind.

Die Dateien sind auf jeden Fall vorhanden. Fehlermeldungen gibt's auch keine.
 
Laß mal die Anführungszeichen bei den Befehlen weg.
 

Ähnliche Themen

jungermann
Antworten
31
Aufrufe
5.369
Maysi2k
Maysi2k
D
Antworten
10
Aufrufe
3.337
sobo84
S
A
Antworten
2
Aufrufe
1.119
Claus3006
Claus3006
Zurück
Oben Unten