Full vs Incremental OTA



2016-11-11 11:10

Show all posts
Hello folks,

I just came across an article with a clean explaination, differences between the full and incremental OTA (Over The Air) update packages and thought of sharing with you all.



There are two types of OTA. Each with its own advantages and usages. But there is only one type typical customer would see (the other one you probably never heard off). Let take a look at them in details.
As you can see on the graph above those two types of OTA are: incremental and full.
Differences:1. Usage
The most significant difference between those OTA types is its ‘start point’ (the build we can upgrade from using the OTA). When Full OTA can be used across the entire firmware line [∞ -> B], the Incremental can be only used between specific points [A->B].
2. Size
The typical size of the full OTA is close to the  size of the firmware image, while incremental is varied can be as small as few KB and as big as Full OTA, there is not rule here (however usually much smaller than Full).
3. Content
Reason why full OTA size is so close to original firmware image is not coincidental as it practically contain the entire image within – just in a form allowing update via recovery mode. Incremental OTA on the other hand contains only the binary differences (parts of files that have been altered) between two stages [A->B], thus it carries less data.
Regardless of type of OTA selected both will update device to the same endpoint. Both will verify if devices is ‘signed’ (certificates are matching) with correct keys. And as an updates they will not erase user data (of a contrary when flashing ROM).
Advantages – Full OTA:
  • not error prone -> ignores any changes made on the device (alterations in system partition) – good way of recovering device from ‘unknown’ (heavily modified) state
  • no need to find specific build to update -> can be used on all builds (except  for downgrading)
Drawbacks – Full OTA:
  • its size -> can be size of the firmware image (longer to download)
  • possible security breach -> releasing it is similar to release firmware image (same content only in different format)
Advantages – Incremental OTA:
  • size -> can be much smaller than full
  • security -> contain only binary differences for files so full content is not revealed to end users
  • control -> possible to control end user update path as can only be successfully applied to particular build
Drawbacks – Incremental OTA:
  • not error prone -> any change to ‘system’ might result in error during update (which could be good for ODM – ensure only original FW provided by them is being used)

I hope this answers all your doubts.