No, not a Watch. Actually, not even a watch… more like a clock. 🙂
I had an old and unused iPhone 3GS lying around and I didn’t feel like throwing it away just yet. On the other hand, I did need a nice looking clock to place near my TV set, so why not use the iPhone?
The major issues were the following:
- the iPhone battery is very old and it doesn’t last long when the display is always on (waaay less than 24 hours, pretty much like the other Watch! 🙂 )
- I didn’t want to have to fiddle with the iPhone everytime I turned it on: it should just work! It’s not continuosly powered, so the battery will eventually drain. When it gets power again (i.e. I turn the TV on), it should start and display the time.
The first problem is easily solved: I can either leave the phone always plugged to its charger, or I can connect it to one of the USB ports of my TV set. I chose the latter option, to save a power outlet.
The second issue required jailbreaking the phone and performing some custom configuration. DISCLAIMER: if you attempt to do something like this, it’s at your own risk!
Using Cydia, I’ve installed OpenSSH and a bunch of command line utils (including vim and open) and SkipLock. To start the clock application automatically, I’ve created a simple script and saved it as /usr/bin/startup.sh:
# (and the lock screen has been bypassed)
# the parameter is the bundle ID of the application you want to start
…and I’ve added a launchd plist in /Library/LaunchDaemons/startup.plist:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
Then, I’ve disabled many apps and processes that are not useful in my case, just to try and squeeze more time out of the battery. What I did was renaming the following apps in /Applications/:
and the following services in /System/Library/LaunchDaemons/:
Appending .disabled (or anything else) to their name is enough to prevent the system from loading them.