So I was curious about what the new BlackBerry Messenger 5.0 QRCodes actually contained. More than that, I was curious to find out if someone can inject weird characters and make the handhled do weird things. So the first thing I did was get a hold of my own QRCode. Then I grabbed a copy of the QRCode Library from SourceForge. I then ran it on my own QRCode to see what was inside. Here’s what I found:

So the output of my QRCode is
bbm:20fe2f6059cc5086Sheran Gunasekera
Okay, breaking it down, the first 4 characters, “bbm:” indicate the protocol (BlackBerry Messenger). The next 8 characters is my PIN. Still trying to figure out what the remaining 8 characters are, and then lastly, my name.
Then I thought I’d create my own QRCode and try to see what I can make the handheld. I visited Kaywa and generated my own QRCodes and had the BlackBerry Messenger read it in. Here are my results:

Changing the PIN:
I changed the PIN to various numbers, letters and characters. The BBM only read a QRCode where the PIN was a Hex number. It would then immediately send a Invite to the specific PIN number that I had entered.
Changing the remaining 8 Hex characters:
When I changed the 8 characters adjacent to the PIN, the invitation would go out normally. I tried with non Hex characters and it still went through. When I changed the characters to ones like “¡™£¢∞§¶•” made using the Alt key and numbers on my Mac, nothing happened; meaning the QRCode was not read by the BBM.
Changing the name:
I changed my name and nothing really happened. When I did the special characters like the ones from above, the QRCode was not read. I’m still wondering if this is as a result of the Kawaya QRCode generator or because the BBM is explicitly told to ignore these characters.
I tried to generate a long name by filling the name field with all A’s. The BBM read the code without much of an issue. I think as per QRCode standards, the amount of data you can store in one is limited anyway. The official QRCode site lists the Maximum amount of data you can store on a QRCode (Binary/Byte) is 2953 characters. I set out to find a generator that can build me a QRCode of that size. I downloaded the trial version of the Java Barcode generator from BarCodeLib.com. Using their tool to generate a QRCode, the maximum size I was successfully able to read was 106 characters. Granted I only tried a small percentage of the features available to me, but for this post, I’ll go with this amount. I will continue to test and post results whenever I feel like it. For now that’s as good as it gets.
So in summary: The BBM QRCode reader has a specific format for invites. It is not possible to alter these values to a certain extent. It is not possible to inject data long enough to cause any overflows. It is also not possible to inject unexpected characters. On a sort of related note, the new BBM 5.0 sucks. Its file transfer for photos is the worst thing RIM have ever done. Since I upgraded, I have not been able to successfully send my contacts a photo from my BB.