[Android Software Development] Chainfire:
OTA / Update ZIP files

Mobile ODIN Pro v3.25 and newer have the ability to flash official OTA ZIPs as well as Update ("CWM") ZIPs (on a technical level, they're the same thing) on most devices that Mobile ODIN has support for, but not all. The new-ish devices are all supported, though.

Format

Mobile ODIN tries to detect if a flashable ZIP will attempt to format one of the partitions, and in light of the known issues (hard-bricking) this may cause on some devices, it will warn you of this fact.

Update ZIPs

Support for this means you can flash complete custom ROMs, or simple updates (like SuperSU's distribution ZIP file). This doesn't automatically mean all Update ZIPs are compatible. The environment in Mobile ODIN's temporary recovery is slightly different from CWM or TWRP, this can cause problems in some cases.

OTA ZIPs

This functionality was built with official OTA update ZIPs in mind, and specifically to make it easier to flash them. Mobile ODIN performs many checks and can automatically patch the OTA before flashing to get around a number of issues.

Mobile ODIN will attempt to detect if the OTA wants to flash kernels, recoveries, and modems, and if so will compare the signatures to your currently installed kernel, recovery, and modem. Should the comparison fail, it will offer you the choice to disable the check and the patch inside the OTA. This will allow you to flash the OTA without switching away from your current custom kernel or switching to whichever modem the OTA expects. Of course, if you have selected a kernel, recovery, or modem to flash, it will compare against the selected image instead of the currently installed one.

Mobile ODIN will also compare the OTA's fingerprint checks against the current system fingerprint. If the fingerprint does not match, Mobile ODIN will offer you the choice to disable the check inside the OTA. If you have selected a system image to flash, it will try to find out the image's fingerprint instead. It is not generally recommend to patch out the fingerprint, but sometimes it is needed.

It will also go through all the file signature checks inside the OTA, and compare to the current system files. If files are found to differ Mobile ODIN will offer you the choice to disable the checks and patches inside the OTA. When you have the wrong CSC flashed, it is common for a small number of files (30 or so) to differ. These files usually don't really matter for the firmware's operation. Note that this check will not be performed if you have selected a system image to flash - all files must match signatures in that case, or the OTA will fail.

Altogether, this makes Mobile ODIN the easiest way to flash OTAs, as your setup does not need to be absolutely perfect for it to work. Having most of the correct base ROM installed is usually enough!

Important note: While it is certainly possible to flash a lot of partitions (for example a full stock ROM) together with an OTA in one go, this will usually not work. The Cache / CSC partition usually needs an additional reboot to install additional files, but with Mobile ODIN this will only happen after the OTA is installed. The OTA will thus fail because some files are not correct, and the file check mentioned above does not work when you are also flashing the system partition. As such, the advised method is to first flash the full stock ROM (and use EverRoot to inject SuperSU and Mobile ODIN), then after booting up using Mobile ODIN to flash the OTA. I am working on additional code to make this possible in a single go, but it is a few versions away.