adb shell service call alarm 2 i64 {current unix epoch * 1000}
My quest 2's system date was suddenly off by a large amount today. Now the device can't make HTTPS connections, because TLS verification fails. Everything is HTTPS now, so I'm left with a device without Internet. I went through the built in settings app, looking for that date and time setting every device manufactured on Earth comes with. Found nothing. So I googled. After extensive googling, I can't believe the only way to do such a trivial thing is to factory reset the device. This is so ridiculous, and apparently Meta just doesn't care. So I did some research, and here are my findings:
-
Install SideQuest, follow its instructions to connect your device.
-
Go to https://www.epochconverter.com, copy the number after The current Unix epoch time is.
-
Multiply the number by 1000.
-
From SideQuest, go to
Run ADB commands
>CUSTOM COMMAND
, click onCommand To Run...
, enter the following (without brackets):adb shell service call alarm 2 i64 <Number from step 3>
e.g.
adb shell service call alarm 2 i64 1642846249000
-
Click
RUN COMMAND
. -
Done. You shoud see something like
Result: Parcel(00000000 00000001 '........')
Tested on quest 2, persists after reboot.
Meta should stop shipping devices that neither do NTP nor allow user to manually adjust date and time. In 2022.
http://v-kompany.blogspot.com/2014/07/how-to-call-system-service-in-adb.html https://sclarkso.com/tech/2021/10/05/quest-2-timezone-change-without-factory-reset.html https://gist.github.com/tniessen/ea3d68e7d572ed7c607b81d715798800
Thank you for saved my day 💖