Stellen Sie Datum/Uhrzeit mit der ADB-Shell ein

Lesezeit: 5 Minuten

Benutzer-Avatar
Abraão Caldas

Ich versuche, das Datum/die Uhrzeit mit der ADB-Shell einzustellen, aber die Shell gibt nur die aktuelle Uhrzeit zurück.

Ich habe es versucht:

adb shell date -s YYYYMMDD.HHmmss

und Unix-Zeit wie:

adb shell date 1318349236

irgendwelche Ideen?

  • Erstmal sollte es funktionieren. Können Sie den tatsächlichen Befehl schreiben (mit ersetzten YYYYMMDD.HHmmss-Werten), den Sie an das Gerät gesendet haben?

    – Srđan Tot

    22. Oktober 2013 um 21:19 Uhr

  • Mögliches Duplikat von Cannot run adb shell “date `date +%m%d%H%M%Y.%S`”

    – iegik

    26. Juni 2017 um 20:57 Uhr

Benutzer-Avatar
Alex P.

Um Speicherplatz zu sparen, nutzt Android wie viele andere eingebettete Systeme Multi-Call-Binärdateien um seine grundlegenden Befehlszeilentools wie zu implementieren date.

Android-Gerät kann beide enthalten toolbox oder toybox (oder beides) binär, je nach Version. Sie können überprüfen, welche Implementierung der date Tool, das auf Ihrem Gerät verfügbar ist, indem Sie es ausführen toolbox date und toybox date Befehle. Dann können Sie diejenige verwenden, die das aktuelle Datum ausdruckt. Für ein Gerät mit Android 6.0+ könnte es beispielsweise so aussehen:

$ adb shell toybox date
Mon Jul 31 21:09:28 CDT 2017

$ adb shell toolbox date
date: no such tool

Zum Einstellen von Datum und Uhrzeit mit toolbox date benutzen YYYYMMDD.HHmmss Format:

adb shell "su 0 toolbox date -s 20161231.235959"

Im Falle von toybox date benutzen MMDDhhmm[[CC]YY][.ss] Format:

adb shell "su 0 toybox date 123123592016.59"

  • Stell sicher dass du hast root

    – Alex P.

    22. Oktober 2013 um 20:41 Uhr

  • Funktioniert für mich … Heute war 20140222.014100

    – Kevin Parker

    22. Februar 2014 um 6:42 Uhr

  • Wenn Sie das Datum auf das aktuelle Datum setzen möchten, dann: adb shell “su 0 date -s `date +%Y%m%d.%H%M%S`”

    – Gavriel

    12. August 2014 um 22:23 Uhr


  • Dank Root funktioniert es perfekt (stellen Sie sicher, dass Sie der ersten Shell erlaubt haben, Root zu werden, zum Beispiel unter SuperSU- oder Superuser-Apps).

    – Smeterlink

    22. November 2015 um 12:00 Uhr


  • adb shell "su 0 toybox date $(date +%m%d%H%M%Y.%S)" funktioniert gut für mich

    – Robel Robel Lingstuyl

    16. Juni 2021 um 0:20 Uhr


Benutzer-Avatar
Amir Uwal

Android 6.0 hat ein neues Datumsformat:

Default SET format is "MMDDhhmm[[CC]YY][.ss]", that's (2 digits each)
month, day, hour (0-23), and minute. Optionally century, year, and second.

Und Einstellung mit -s funktioniert nicht mehr. Dies ist der aktualisierte Set-Befehl:

Beispiel für den aktualisierten Befehl:

(während innerhalb einer Adb-Shell)

date 060910002016.00                              

wird darin enden, dass:

Thu Jun  9 10:00:00 GMT 2016

Notiz: Der Befehl wird nicht sofort auf dem Gerät sichtbar sein, da er keine Zeitumstellung auslöst, aber er wird innerhalb einer Minute sichtbar sein.

Um dies zu umgehen, können Sie diese Sendung folgendermaßen manuell anhängen:

date 060910002016.00 ; am broadcast -a android.intent.action.TIME_SET

Um dies mit an zu nennen adb Befehl:

adb shell 'date 060910002016.00 ; am broadcast -a android.intent.action.TIME_SET'

  • -u bedeutet, immer UTC zu verwenden. Um die Zeit im Kontext der aktuellen Zeitzone einzustellen, verwenden Sie einfach “date 060910002016.00” auf Marshmallow.

    – tristan2468

    3. August 2016 um 9:03 Uhr

  • @ tristan2468 – danke! korrigiert (das nicht benötigte -u entfernt)

    – Amir Uwal

    3. August 2016 um 9:15 Uhr

  • Danke @uval, genau das was ich brauchte!

    – Luis

    21. September 2016 um 16:54 Uhr

  • Ich kann bestätigen, dass dies auf Android Things devpreview 4.1 funktioniert, das auf Nougat basiert date 081812242017.40 mit Root-Berechtigung, sonst Fehlermeldung date: cannot set date: Operation not permitted Fri Aug 18 12:24:10 GMT 2017

    – Ergänzung

    18. August 2017 um 5:28 Uhr

  • Entschuldigung, aber das neue Datumsformat ist etwas seltsam, besonders wenn das ISO-Format YYYY-MM-DD HH:MM:SS allgegenwärtig ist. Ich frage mich, wann sie anfangen, seit der EPOCH Sekunden zu benötigen …

    – Roffez

    8. November 2017 um 9:02 Uhr

Benutzer-Avatar
Ivan Kovtun

Sie müssen den Datumswert eingeben, wenn Sie ihn ändern möchten.

-s ändert das SET-Format. Das Standard-SET-Format ist MMDDhhmm[[CC]YY][.ss].

Folgende Befehle habe ich erfolgreich getestet:

adb root
adb shell "date `date +%m%d%H%M%Y.%S`"

  • Danke, genau was ich brauchte!

    – Rotäugig

    22. März 2017 um 13:34 Uhr


  • Ich habe darauf basierend einen Alias ​​​​mit su 0 anstelle von root erstellt: alias adb-set-time='adb shell su 0 "date `date +%m%d%H%M%Y.%S`"'

    – Liebe

    14. Juli 2017 um 10:06 Uhr

  • stattdessen eine Funktion erstellt: function adb-set-time { adb [email protected] shell su 0 "date `date +%m%d%H%M%Y.%S`"; }. Verwendungszweck: adb-set-time oder adb-set-time -e etc

    – Liebe

    14. Juli 2017 um 16:15 Uhr

  • Dies sollte als Antwort eingestellt werden.

    – HyperionX

    31. Mai 2018 um 5:47 Uhr

  • Datum: Datum kann nicht eingestellt werden: Betrieb nicht erlaubt

    – Josef Vancura

    9. Januar um 17:18 Uhr

adb shell date -s `date +%G%m%d.%H%M%S`

Zuerst wird das aktuelle Datum Ihres Computers abgerufen und auf dem Android-Ziel festgelegt. Dieser Ansatz sollte unter Linux/Mac/Cygwin funktionieren.

Damit das bei mir funktioniert Xperia Smusste ich die Befehle wie folgt brechen:

> adb shell
# su -
# date /* see current date */
# date -s YYYYmmdd

Motiv: Mein Gerät war auf den Beginn der Linux-Zeit zurückgesetzt, und ich war nicht besonders besorgt über die Zeit, alles, was ich wollte, war, das richtige Datum einzustellen – was ich übrigens nicht über die Systemeinstellungen tun konnte, weil mein benutzerdefiniertes MIUI-ROM stürzte weiter ab…

Benutzer-Avatar
Hpsaturn

Auf manchen Geräten wie z RTAndroid vielleicht funktioniert es auch:

adb shell "su 0 date `date +%m%d%H%M%Y.%S`"

Benutzer-Avatar
KEIN_EIN_PROGRAMMIERER

Ich hatte kein Problem mit Android 5, die meisten Antworten, die ich ohne su im Befehl gefunden habe, funktionieren.

Android 6 hat meine Aufmerksamkeit erregt. Unter Android 6 hat es mir keinen Fehler gegeben, es hat es einfach nicht richtig eingestellt, es wird es auf das zurücksetzen, was es vor dem Befehl war. Ich bin auch reingelaufen /system/bin/sh: su: not found errors als ich dieses https://stackoverflow.com/a/43481982/3922705 und dieses https://stackoverflow.com/a/19497572/3922705 ausprobierte

Nach all den Try-and-Error-Sitzungen habe ich es herausgefunden.

Dies ist das Datumsformat, das ich MMDDhhmm verwende[[CC]JJ][.ss]

adb shell date '0739010002017.00'

Dieser Befehl funktionierte zunächst nicht, um zu funktionieren, er funktionierte nicht von selbst.

Ich habe diese 3 Schritte verwendet und es funktioniert für mich.

Zuerst, adb shell settings put global auto_time 1

(Automatisches Datum & Uhrzeit einschalten)

Zweite, adb shell date '0739010002017.00'

(Stellen Sie die gewünschte Zeit ein)

Dritter, adb shell settings put global auto_time 0

(Automatisches Datum und Uhrzeit deaktivieren)

Hinweis: Für mein spezifisches Projekt kann ich mich nicht auf die vom Netzwerk bereitgestellte und vom GPS bereitgestellte Zeit verlassen. Deshalb habe ich den dritten Befehl. die die Funktion ausschalten.

1013920cookie-checkStellen Sie Datum/Uhrzeit mit der ADB-Shell ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy