A while back, I installed the Bitcoin Android app and moved 5 BTC on it. Fast forward to now, new phone, new ROM, and the app seems completely unwilling to update its blockchain, meaning I have no way to move my BTCs elsewhere.
Looking at the source, it's built on an early version of BitcoinJ, where the wallet file is essentially a serialized Wallet class.
A look at the wallet file itself isn't too friendly, although I'm sure the private key is somewhere in there in a relatively straightforward form.
So, that leaves me with the following possibilities:
write a little Java app that links against the same version of BitcoinJ, load the Wallet file, grab the private key and print it.
write a really dumb script that extracts every 32 bytes sequence from the wallet file, treat it as a private key, map it to a public key, check blockexplorer.com for any activity associated with it. Or just import every one of those sequences into a bitcoin client and let it suffer.
Before I embark on my Quest For Five Bitcoins, is there already something out there that can parse BitcoinJ wallet files and export keys from them?