adq

Sony Ericsson LiveView hacking: complete

Jan 04, 2011 02:06

This blog has moved I've just checked in the final piece of the LiveView protocol. If you look here, you'll find a complete re-implementation of the LiveView protocol in Python, allowing it to be completely controlled from a PC.

It shouldn't be hard to port this to Java and completely replace the Android LiveView application with something else ( Read more... )

liveview

Leave a comment

Comments 19

so, how does it work? anonymous January 9 2011, 17:08:54 UTC
I still haven´t got my LiveView, hopefully tomorrow.
The only other hack I've seen is a modified liveView apk which actually changes the icons shown on the watch.
So if I understand correctly, is the liveView just a simple terminal? Everything shown on the screen is sent from the phone?
even the animations?
That would be really cool.
dproldan

Reply

Re: so, how does it work? adq January 11 2011, 18:32:11 UTC
Yeah, its completely controlled from the phone. It has a few different modes of operation (menus, complete screen control, and a sort of input mode)

Reply


Thanks ext_386135 January 10 2011, 10:20:39 UTC
Thanks to your protocol analysis I was able to implement some of the protocol in Objective C on my Mac. I now have a tiny Mail.app icon on my LiveView. I was worried it wasn't going to like my PNGs - my first attempt used a PNG with a transparent background, but I reduced it to 256 colour indexed and put a black background in and it worked fine.

Just have to give it enough information now to stop it from going back to the clock showing 00:00 AM ---- -- -- all the time. I see the menu appear briefly when I press the right button but then it tries to sync again.

The long term plan is to have a module that can be added to a lockscreen/springboard replacement app in Cydia. I have a busy day job though so that's likely to be a month or two away.

Reply

Re: Thanks adq January 11 2011, 18:39:22 UTC
Cool!

Sounds like you're not replying to the GetTime message the liveview sends?

Reply

Re: Thanks ext_386135 January 13 2011, 09:42:09 UTC
I'm not seeing that message at all. I wonder if because the pairing was done in OSX and OSX "created a serial connection" for it that it isn't immediately saying hi on the channel I expect. I am going to change my code so that it listens for ANY RFComm connection. Given that whenever you power on, it is reset to 00:00 I expect it is trying to call out before I see anything from it.

Reply

Getting there ext_386135 January 14 2011, 21:29:35 UTC
OK, so LiveView doesn't necessarily look for a service named "LiveView". It appears to connect back on the first RFComm port it finds. In my case on a mac it's "Bluetooth-PDA-Sync". It still doesn't seem to go from powered off to anything better than 0:00AM ---- -- -- without a press of the right button ( ... )

Reply


Timezone? ext_386135 January 10 2011, 16:36:15 UTC
Curious if the device has any concept of timezones. The GetTimeResponse doesn't seem to include a timezone encoding. I have it setting the time now (just send a response without being asked) - I guess you send a time() with the adjustment already made if necessary and the device will show the wrong time until you sync next. Device still doesn't let me get into the menu however, preferring instead to ask for the object stream again.

Reply

Re: Timezone? adq January 11 2011, 18:42:13 UTC
Yeah, I just send the localtime output from time(); it doesn't have any concept of timezones that I could see. I couldn't figure out a way to force the device to a new time either; e.g. as you say if you change timezone you'd likely need to reset the device :(

Do you mean when you click on a menu item, it asks for the menu stream? Check out what STATUS code you're returning; it reacts different to a CANCEL than an OK and so on.

Reply


Lib in C# anonymous January 14 2011, 07:44:48 UTC
Hi,
thanks a lot for the protocoll reverse engineering.
Is it possible that you supply an C# version?

I tried to convert it, but i've big problems!

Greetings
timTom

Reply

Re: Lib in C# adq January 19 2011, 10:33:22 UTC
Hmm, I don't really have the time to do that, sorry.

Reply


Thanks ext_416147 February 4 2011, 01:27:47 UTC
Hi there,
your hacking saved my day - or my entire month :)

I bough a LiveView two days ago. Since the original software is completely broken, I found it hard to decide whether to return it, or try to reverse engineer the protocol. Now I don't have to do any of that and can start coding.

Since I plan to use the LiveView with my Android Phone, and the SE software is still completely useless, I'm gonna reimplement it in Java. There's still a week of work to be done before I can start that project, but then nothing can stop me.

I already update my LiveView Firmware, and I hope that the protocol has remained compatible. Also, I wonder if the device might support additional features that weren't there when you analysed it. We'll see.

Just out of couriosity, I'd like to know how much time it took you to do this. (Then I can multiply this by 10 and have an idea of how much time I would have spent...)

Thanks again for sharing your insights,
Brian

Reply

Re: Thanks adq February 9 2011, 10:05:58 UTC
Cool, I'm glad its been useful to people. I've not tried the new firmware yet.

It only took a couple of days really; the bluetooth protocol dumping tool made it fairly straightforward.

Reply


Leave a comment

Up