[Samsung Galaxy Nexus] clacton:
yakju 4.1.2 Vs. takju 4.1.2

did a comparison of the two factory images: takju-jzo54k-factory-92830c0b.tgz and yakju-jzo54k-factory-92ff9457.tgz

Their contents:

flash-base.sh
flash-all.sh
radio-maguro-i9250xxlf1.img
image-*akju-*.zip
bootloader-maguro-primelc03.img
flash-all.bat

Of the images above only image-*akju-*.zip differs (image-yakju-jzo54k.zip Vs. image-takju-jzo54k.zip), bootloader and radio are exactly the same.

Comparing the .img files of the two release (after extraction of the zip):

a51c8b814b996ecf120e1af1fe2c6870 takju-jzo54k/radio-maguro-i9250xxlf1.img
a51c8b814b996ecf120e1af1fe2c6870 yakju-jzo54k/radio-maguro-i9250xxlf1.img
d003ab084270edd22483ce8f1f8b05c9 takju-jzo54k/userdata.img
d003ab084270edd22483ce8f1f8b05c9 yakju-jzo54k/userdata.img
4c134d5db71d754547fa8cde7847fd08 takju-jzo54k/boot.img
4c134d5db71d754547fa8cde7847fd08 yakju-jzo54k/boot.img
35c167479ae7e277730722b659a8a6c4 takju-jzo54k/bootloader-maguro-primelc03.img
35c167479ae7e277730722b659a8a6c4 yakju-jzo54k/bootloader-maguro-primelc03.img

b7be3c1e5d8e891921d822e43ac565df yakju-jzo54k/system.img
ba46d9d13d2919eac0895335ba906c08 takju-jzo54k/system.img
ddd1fbc164b0b0a2ae9a14c640661b60 yakju-jzo54k/recovery.img
3a2c6c94453d6078a7402b9b6999f7b3 takju-jzo54k/recovery.img

So system.img and recovery.img differes in the yakju and takju releases.

The contens of system.img can be found by converting (skipping header stuff?) the image to a raw ext4 filesystem using http://xdaforums.com/showpost.php?p=15333542

Of the entire system.img filesyste, only Video.apk, Wallet.apk and build.prop differs. Wallet.apk is not present in yakjo. build.prop differences:

--- takju-jzo54k/system/build.prop
+++ yakju-jzo54k/system/build.prop
@@ -6,15 +6,15 @@
-ro.build.date=Tue Oct 2 21:43:05 UTC 2012
-ro.build.date.utc=1349214185
+ro.build.date=Tue Oct 2 22:02:38 UTC 2012
+ro.build.date.utc=1349215358

-ro.product.name=takju
+ro.product.name=yakju

-ro.build.description=takju-user 4.1.2 JZO54K 485486 release-keys
-ro.build.fingerprint=google/takju/maguro:4.1.2/JZO54K/485486:user/release-keys
+ro.build.description=yakju-user 4.1.2 JZO54K 485486 release-keys
+ro.build.fingerprint=google/yakju/maguro:4.1.2/JZO54K/485486:user/release-keys

Nothing interesting there

Unpacking Videos.apk and looking at the difference:

--- yakju-jzo54k-Videos.apk/res/raw/wv.properties
+++ takju-jzo54k-Videos.apk/res/raw/wv.properties
@@ -1,5 +1,5 @@
#Widevine properties
-#Tue Oct 02 22:02:49 UTC 2012
+#Tue Oct 02 21:43:18 UTC 2012

Apparently the wv.properties in the Video.apk contains the same time as in build.prop resulting in a Videos.apk with a different signature, but same binary code.

So yes the only difference in the system.img file is the Wallet.apk

Difference in recovery.img:

Extracting the uncompressed linux image and the uncompressed cpio init ram file system:

od -A d -t x1 recovery.img | grep '1f 8b 08 00'
0020240 6e 20 65 72 72 6f 72 00 1f 8b 08 00 00 00 00 00
4147200 1f 8b 08 00 00 00 00 00 00 03 a4 bd 0d 78 54 d5
# From the above vmlinux.gz starts at 0020240+8 and cpio.gz starts at 4147200+0
dd if=recovery.img bs=1 skip=0020248 | zcat > recovery.img.vmlinux
dd if=recovery.img bs=1 skip=4147200 | zcat > recovery.img.cpio

The two Linux kernels are the same:

6ce22e31d15629b5b448d350a09d220d yakju-jzo54k/recovery.img.vmlinux
6ce22e31d15629b5b448d350a09d220d takju-jzo54k/recovery.img.vmlinux

Extracting the cpio from yakju and takju:

cpio -idv < recovery.img.cpio

And the diff between the two:

--- yakju-jzo54k/recovery/default.prop
+++ takju-jzo54k/recovery/default.prop
@@ -13,15 +13,15 @@
-ro.build.date=Tue Oct 2 22:02:38 UTC 2012
-ro.build.date.utc=1349215358
+ro.build.date=Tue Oct 2 21:43:05 UTC 2012
+ro.build.date.utc=1349214185

-ro.product.name=yakju
+ro.product.name=takju

-ro.build.description=yakju-user 4.1.2 JZO54K 485486 release-keys
-ro.build.fingerprint=google/yakju/maguro:4.1.2/JZO54K/485486:user/release-keys
+ro.build.description=takju-user 4.1.2 JZO54K 485486 release-keys
+ro.build.fingerprint=google/takju/maguro:4.1.2/JZO54K/485486:user/release-keys

So to conclude the only real difference is the Wallet.apk, the remaining difference comes from different build time stamp and therefor different signatures.

Of course nothing prevents Google to put code like the following inside these seemingly equal systems:

if ( product.name == takju) {
system.nice_features.enable();
system.spam.user.with.adds();
} else if ( product.name=yakju ) {
system.nothing();
}