[Droid Eris Android Development] bftb0:
There are small differences between the OTA-2.1 and the Leak-V3. Tiny might be a better adjective.

This involves two files which are present (post install) in the OTA-2.1 which are not present in the Leak-V3 PB00IMG.ZIP file, and two files which are in the Leak-V3 PB00IMG.ZIP ROM file not present in OTA-2.1.

After a short background, I give my results. (For those with a high tolerance for boredom a complete description of the methodology I used follows that.)

Background

Back in mid-May, thenestor compared a significant fraction of the files in the OTA-2.1 http: download to the files unpacked from the Leak-V3 PB00IMG.ZIP.

Two days ago I extended that check to include all files, including those which undergo binary patching on the phone during the OTA-2.1 install. (This patching is performed by the HTC recovery boot as part of the OTA-2.1 install).

Summary of Results

The essential result is the strengthening of the conclusion that OTA-2.1 and Leak-V3 are identical. By file count, there are 4 differences among 813 files - a 99.5% match. There are no instances where there are two versions of the same file between the two installs.

The "system" partition of OTA-2.1 is essentially identical to Leak-V3, with the exception of 2 files which are present in OTA-2.1, and missing in Leak-V3.

The boot and recovery partitions are 100% identical.

The Leak-V3 install wipes clean the pre-existing /data mount point, and installs only two files into /data; these two files are not found post-install in the OTA-2.1.

Detailed Results

system partition ( /system mount point )

100% of files in the Leak-V3 /system partition identically match files in the post-install OTA-2.1 /system.

There are 2 files present in the /system folder of the OTA-2.1 which are not present in the Leak-V3 release:

/system/app/UpgradeSetup.apk

/system/xbin/modem_link

Based on name alone (rather than trying to decipher classs.dex within UpgradeSetup.apk by de-odexing) it seems reasonable that the OTA-2.1 upgrade only needs "partial" setup because it is an overlay rather than a wipe. Perhaps that is why this "app" is not present in Leak-V3.

The latter file - /system/xbin/modem_link ? I don't know what it does; it has some rather curious string data in it.

data partition ( /data mount point )

The OTA-2.1 process contains no files which are loaded into the /data partition, and only deletes unneeded cache and application parameter settings within the pre-existing /data partition; this is done under control of the update-script.

The leak-V3 ROM, which is a "wipe" or "factory reset" type of operation, drops only two files into the /data partition:

/data/app/PingTool.apk

/data/local/dmdata/00004

Neither of these files are found in a (clean MR2 to) OTA-2.1 phone's /data partition following completion of the OTA-2.1 upgrade. I do not know what role these files play - the classes.dex files and some of the .xml files in the .apk suggest an IP-layer network diagnostic capability (ping, traceroute), as well as IP route manipulation.

boot, recovery partitions

As mentioned previously - bit-by-bit identical between Leak-V3 and OTA-2.1

Conclusion

Are OTA-2.1 and Leak-V3 identical? Technically, NO. But as far as all the system executables, libraries, and pre-installed applications are concerned, YES. There are four small differences - which appear to be in areas where phone owners typically do not venture.

Methodology (Read at peril of boredom)

1) Write scriptware (*nix) to compare two complete filesystem trees, looking for match/mismatch in MD5 hashes, as well as reporting missing files. For completeness, the script works bijectively - it first examines all files found in TreeA relative to TreeB, and then reverses this (all files in TreeB relative to TreeA). This catches all missing files (which are in A, but not B; or alternatively are in B but not A). This script does not (presently) examine file modes, ownership, or timestamps, nor does it look at symlinks or directories; so differences of that nature are unexamined here.

2) Unpack partitions from the Leak-V3 PB00IMG.ZIP file using appropriate tools into separate directory (subtrees).

3) Perform a 1.5 full factory rollback on the phone, including bootloader and radio, followed by an OTA-2.1 update. Install 1.49 S-OFF bootloader (only, via battery pull trick), and then soft-load Amon_RA v1.6.2 via a fastboot "boot" operation ("fastboot boot recovery-RA-eris-v1.6.2.img")

4) Via adb (to the Amon_RA recovery soft-boot), perform:

- mkyaffs2image on system and data partitions (output goes to SD card)

- dump_image on recovery and boot partitions (again, output goes to SD card)

5) Pull all images to the PC and

- unpack the system and data images via "unyaffs"

- **unpack the boot and recovery images with split_bootimg.pl and then

- **unpack the ramdisk (gunzip -c bootimg-ramdisk.gz | cpio -i)

** For Leak-V3 vs. OTA-2.1, this step is superfluous, as both ship the contents of these partitions as monolithic ".img" files, which have the same MD5 has in both. (I did this step to set up comparisons against Leak-V2 and Leak-V1, which I am not reporting on here)

6) Run the analysis script to compare trees

bftb0