Both Android and iOS seem to support their application having a binary delta update. But how does it work? I build a binary program, neither of the distribution sites have the source code - how does the update process know what is changed?
Just as you can create a patch for a text (source) file, you can create a patch for a binary file as well.
You are effectively just noting what changed between two files (that's called delta encoding).
For example, if the app contains many resources, then those don't usually change for smaller updates, and only the executable code itself needs to be transferred.