Thoughts after building Replicant for the Nexus S
- The system image took a really long time—a couple of hours.
- The number of warnings during build was startling. I should look into fixing some of them.
- I don't understand the point of the checksum—why is it necessary, and why does mine (created from
md5sum system.img boot.img > checksum.md5) not match that of the native Nexus S (http://ftp.osuosl.org/pub/replicant/images/replicant-4.0/0005/images/crespo/crespo.md5)?
- I do not want to lose my data, so I can't test these images.
The system image took a really long time—a couple of hours.
That's normal -- keep in mind you are building a full operating system from source!
And well, with a 48-core CPU and 150Gb RAM, it only takes down to 13 minutes :) (You can probably imagine how that will reveal very useful when building images for the 10+ devices we support.)
The number of warnings during build was startling. I should look into fixing some of them.
Well, warnings are ok, nothing to worry about. It's purely about having a good-looking build log with no warning. Though you have to understand that making a change to something in the tree means forking it from CyanogenMod and pushing it to our gitorious, which takes time and disk space. So I prefer not to do it until actual changes are made (and not simply correcting a typo or a warning).
I don't understand the point of the checksum
People that use the Heimdall/recovery installation method need it (else it fails because recovery needs it to install) and it also makes it possible for people did receive the image properly.
and why does mine (created from md5sum system.img boot.img > checksum.md5) not match that of the native Nexus S
md5sum checksums are unique and the image you created cannot be 100% the same as ones we distribute, for simple reasons like the fact that the build date is not the same, the build host changed, etc.
I do not want to lose my data, so I can't test these images.
You can only reflash system and boot, and keep userdata. That way, you won't lose your installed apps and data. That is only valid when you do this with the same Android version.
Also when working on replacing parts, we do not build full images all the time (except for the kernel), but rather use
mm in the source directory to build only that module. Then we adb push it to the device and reboot or killall zygote or surfaceflinger or rild, depending on what we work on.