While upgrading my G1 to the new 1.5 JF image, the system wouldn’t come back up after applying the update.zip file (yes, it’s normal that the first reboot takes a while, but this was too long).
adb logcat was usuable at that point, and kept looping messages like:
D/AndroidRuntime( 66): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
D/AndroidRuntime( 66): CheckJNI is OFF
D/dalvikvm( 66): DexOpt: incorrect opt magic number (0xff ff ff ff)
D/dalvikvm( 66): Stale deps in cache file; removing and retrying
W/dalvikvm( 66): partial write in inflate (8152 vs 32768)
E/dalvikvm( 66): Unable to extract+optimize DEX from ‘/system/framework/framework.jar’
D/dalvikvm( 66): Failed on ‘/system/framework/framework.jar’ (boot=1)
D/dalvikvm( 66): VM cleaning up
D/dalvikvm( 66): LinearAlloc 0x0 used 4100 of 4194304 (0%)
W/dalvikvm( 66): JNI_CreateJavaVM failed
E/AndroidRuntime( 66): JNI_CreateJavaVM failed
Turns out that the 8MB free space I had on my data partition were not enough for the update. Removing a couple larger apps through the shell let the boot process continue (though in the end, I used a backup to start a new, “clean” update). All in all, the update needed an additional 22 MB on my phone. I’m not sure if this is JF specific and the actual 1.5 image is smaller, but, if you run into trouble, this might be the reason.