WebOS

Tuesday, December 20. 2011

Generic Jabber (XMPP) with webOS

WebOS (The operating system of the Palm Pre and Palm Pixi phones) has a built-in messaging application but unfortunately it only supports Google Talk and AIM out of the box. It's a shame that Palm has not enabled more protocols and especially generic XMPP support. The used library (libpurple) supports everything so it's only missing in the GUI.

Google Talk uses XMPP so in theory it should work with any other XMPP server but unfortunately Palm has put this nasty code in the LibpurpleAdapter (which is used as a connector between the GUI and the low-level libpurple):

if (strcmp(prplProtocolId, "prpl-jabber") == 0
    && g_str_has_suffix(transportFriendlyUserName, "@gmail.com") == FALSE
    && g_str_has_suffix(transportFriendlyUserName, "@googlemail.com") == FALSE)
{
    // Special case for gmail... don't try to connect to mydomain.com if the
    // username is me@mydomain.com. They might not have
    // setup the SRV record. Always connect to gmail. 
    purple_account_set_string(account, "connect_server", "talk.google.com");
}

This code means: If the protocol is Jabber (XMPP) and the entered username does NOT end with @gmail.com or @googlemail.com then the XMPP server is hardcoded to talk.google.com. So if you enter a username like johndoe@jabber.org then the Messaging app does not connect to jabber.org but instead it connects to talk.google.com because of the above code. So we must get rid of this code somehow.

With some knowledge about assembler you might be able to toggle some logic in the binary so the above if statement always evaluates to false but there is a much easier solution. You just need to replace the string "connect_server" with some invalid string. I use "nonnect_server". The result is that the line simply sets some unused property and therefore simply does nothing.

Since WebOS 2 the LibpurpleAdapter program is renamed to imlibpurpletransport. In the following step-by-step instructions I will mention both variants for WebOS 1 and WebOS 2.

Continue reading "Generic Jabber (XMPP) with webOS"

Thursday, July 29. 2010

Palm Hot Apps Contest is over

The Palm Hot Apps Contest is finally over. According to the last available statistics Destroids reached rank #18 and won a $10000 reward in the Free Apps category. Thanks to all downloaders!

Now it's time for the third waiting phase. The first phase was waiting for the end of the contest (Which was delayed by one month). The second phase was waiting for the official results (Took another month). The third phase is waiting for the money. I wonder how much money will be left after thugs like Paypal and tax collectors opened their hands...

Saturday, July 17. 2010

Destroids on PC Mag

While I'm still waiting for the final results of the Palm Hot Apps Contest I just heard that Destroids is listed as number 2 in the Top 10 of free Palm webOS Apps 2010 of PC Mag. I'm not exactly sure what that means, probably nothing. Don't know how apps qualify for this Top 10...

Well, if you just came here because of this article then I guess you really want to go over here to read more about Destroids. There is also a forum if you have something to say.

Sunday, April 25. 2010

Destroids

Some months ago I published the first version of a little open source game called Destroids for webOS (The OS of the Palm Pre and the Palm Pixi smartphones) and I'm still improving it weekly. It's a simple Asteroid-like game where you fly a spaceship through an asteroid field and shoot asteroids and UFOs.

At the same time Palm started the Palm Hot Apps contest where app developers can win $100,000 (For the first rank), $10,000 (for rank 2-21) or $1,000 (for rank 22-221) in two categories (Free apps and paid apps). For the time the contest is running I placed a widget on the right side of my blog which shows the current position of Destroids. If you own a Palm Pre or Palm Pixi and you like the original Asteroids game then download Destroids now and make me rich.

More information about Destroids can be found on pre|central.net