Android G1 broken Home button: software issue?

About 10 days ago my Android G1 (running on http://www.WINDmobile.ca) turned itself into a unitasking iPhone. The HOME key stopped working. I figured it was dirt in the case or something… until…

On the Android the HOME key, pushed once, brings you back to the main screen. If you hold it down, then it acts like a task bar (ALT+TAB for any windows readers) and lets you select a running app to switch to.

I realized that the screen would stop locking too! No pocket phone calls, but some actual pocket web surfing and the like. Very annoying.

I had been running http://www.cyanogenmod.com 4.2 on the phone since I started carrying a G1 in January. (I switched from the Rogers Dream to the T-Mobile Dream to get the right radio for WIND in April. I did that with a nandroid backup and restore…)

I was not running APPS2SD before, I had a 4G microSD card, which will plenty big for apps, since Meaghan’s new phone needed an uSD card for her MPs, we each got 8G uSD cards. I meant to partition the 8G, flash up to CM 5.0 and run apps2sd.

I started this yesterday with a wonder… since booting with HOME key down is how you get into the recovery image… was I screwed if my HOME key was broken? MIRACLE, it works.

Yesterday, I did a nandroid backup on the 4G uSD card, and then did a factory wipe/reset. SURPRISE. HOME key works. It was somehow a software issue!

I then took the 4G uSD card, inserted it into my laptop, did a tar.gz copy of the contents of the disk, and then inserted the 8G uSD. I partitioned it as 2G for /sdcard, 1.5G (advice from google/forums) for apps, and a 4.5G ext3 partition for… other stuff. Since these partitions can show up on a laptop/etc.

I’ll put some “away” SSH keys on it, and likely put some other stuff that never needs to be seen by a windows computer (which I don’t own). I’m thinking about putting a copy of QEMU on the windows drive, along with a live x86 image, and maybe I can mount the ext3fs there directly?
What happens if I put a copy of MSDOS.COM on it, or install grub on it… can I boot a random x86 PC from my phone right into Linux?

So I restored the /sdcard image from my tar.gz copy. I then discovered that my phone has already been DangerSPL’ed… nice. Thanks to the ebay guy that I bought it from… too bad he won’t return my emails, because I’d thank him directly again.

CM5.0.8 installed, mostly without a problem. First app I re-installed was NewsRob and ConnectBot.

I found that I couldn’t install apps however! I hooked up adb and found that the package manager couldn’t create directories. It died with:

Couldn't create temp file for downloaded package file

After some investigation (including grep’ing the source tree), I found that my /data/app was a symlink to /system/sd/app, which didn’t exist. I pointed the second place to /sd-ext, and commented on IRC. Nope, don’t do that. Instead, /data/app needs to be recreated:

rm /data/app /data/app-private mkdir /data/app /data/app-private chown system:system /data/app /data/app-private

Hurray for Cyanogen!