iPhone Crash – Lessons Learned

A couple of days ago my phone locked up on the Apple screen after rebooting, and the only way out was to put it into DFU mode and do a full restore. But all is working now, here’s what happened.

It all started when I used the HomeBudget app for the first time. When entering the dollar amount for expenses, pressing a digit on the keypad (see photo below) resulted in the digit being entered twice.

I hadn’t seen this happen in other apps, but this app is unique in that it uses a phone dialer style of keypad rather than the usual alphanumeric keyboard. That seemed to explain why I only had the problem in this app and no others. As I remember all too well from the Hackmaster days on the Palm Pilot, there must have been a conflict at the system level, most likely due to one of the apps that can only be loaded on jailbroken phones.

So I went in and turned off ALL of the mobile substrate toggles, all at once. Bad idea, because that’s when the phone rebooted and got stuck on the Apple logo. Yeah, I know the drill by heart – put the phone into DFU mode and do a restore to OS 3.1.2, repeat a couple of times, shut down iTunes, run blackra1n, unplug the iPhone from the PC, set up WiFi to my home network, install Cydia (alternate app store) and sn0w (unlock) from the blackra1n icon, run Cydia and perform its updates, install AptBackup from Cydia, and THEN AND ONLY THEN plug the iPhone back into the PC to do a full restore – waiting a couple of hours for all of the apps and the music to reinstall. Are we done yet? No, because then it’s time to run AptBackup and select “restore” so that all of the Cydia jailbreak apps can be redownloaded and reinstalled. Then reenter the registration codes for a couple of apps that aren’t smart enough to remember them. Whew!

Anyway, after I got up and running again, it was time to take a more systematic approach to determining the system conflict. This time I turned off the Mobile Subtrate toggles one at a time, then checking to see if the HomeBudget app worked normally. After some trial and error, I found out that I only had to turn off the Mobile Substrate item “KeyboardSupport” to solve the problem.

Then I had to check to see what plugin was associated with “KeyboardSupport” – it was from the new BTstack Keyboard app that I use for my Bluetooth keyboard that I described in my previous post. Luckily I don’t need to use the keyboard at the same time as the HomeBudget app, so I can leave the toggle turned off until needed. But hopefully one of the software developers can fix the conflict.

UPDATE 3 FEB 2010: After finding out that my emails to the developers never got sent out on the date of this post, I resent them last night. This morning I got a pleasant response from Matthias at BTStack who indicated to me that the problem has been fixed! I reinstalled the latest versions of BT Stack and BT Stack Keyboard, and now all is well!