I gave a taste of jellybean to the marquee and now I'm back looking at the spectrum. Been looking at the hang/reboot all day with no luck.
I downloaded the spectrum kernel source and compiled a fresh kernel. Then I tossed in all the vendor libs from my phone (instead of the ones d2a was using). Still had the same reboot issue.
Then I removed pretty much everything from the init rc-files that I could. I only left the basic stuff -- mkdirs, mounts, and such -- and the following services: ueventd, adbd, servicemanager, surfaceflinger, zygote. Still rebooted. But when I took out servicemanager, it stopped rebooting and continuously complained "Waiting for service SurfaceFlinger".
Hmm ok, maybe that's a clue. So next I ran servicemanager under strace and looked at the output. Nothing really obvious, it doesn't get a chance to do much except open /dev/binder and issue a bunch of ioctls. But of course the reboot may not allow all of the strace output to be written, so perhaps the real issue is not showing up.
Tomorrow I think I'll run surfaceflinger under strace to see if that has any clues...
What a PITA.