View Single Post
Old 07-22-2024, 11:09 AM   #1
Renate
Onyx-maniac
Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.Renate ought to be getting tired of karma fortunes by now.
 
Posts: 3,938
Karma: 17500001
Join Date: Feb 2012
Device: Nook NST, Glow2, 3, 4, '21, Kobo Aura2, Poke3, Poke5, Go6
Full vs. incremental updates

Ok, most of you all know this stuff, but just to restate the obvious.

A full update has all (most) of the system stuff you need on your device to run.
It makes no presumptions of what system data you currently have on your device.
On the other hand, it can refuse to update to an older version.
On Onyx a full update is about 1.5 GB or so.

An incremental update contains modifications to existing sytem data on your device.
It presumes that it is modifying a specific, known, last installed, full version.
If you have modified anything by rooting or hacking there may be complications.
On Onyx an incremental update is about 0.5 GB or so.

To make things a bit more complicated, a single update may be partially full and partially incremental.

As an example, here is the last Poke5P full update:
Code:
Partition         New   Operations
--------------  ------  --------------------------------------
boot            96.0 M  REPLACE[3], REPLACE_XZ[6], REPLACE_BZ[39]
dtbo            8.00 M  REPLACE_XZ[1], REPLACE_BZ[3]
product          389 M  REPLACE[26], REPLACE_XZ[168], REPLACE_BZ[1]
system          2.09 G  REPLACE[59], REPLACE_XZ[992], REPLACE_BZ[21]
system_ext       286 M  REPLACE[13], REPLACE_XZ[127], REPLACE_BZ[3]
vbmeta          8.00 k  REPLACE_XZ[1]
vbmeta_system   4.00 k  REPLACE_XZ[1]
vendor           487 M  REPLACE[1], REPLACE_XZ[242], REPLACE_BZ[1]
xbl             3.01 M  REPLACE_XZ[2]
You can see that it does not contain every single partition.
But the ones that it does have, it fully overwrites.
If you replaced the boot image for Magisk you won't have root afterwards, but it won't explode.

Here is a Poke5P incremental update:
Code:
Partition         Old     New   Operations
--------------  ------  ------  --------------------------------------
abl                      148 k  REPLACE_XZ[1]
boot            96.0 M  96.0 M  ZERO[40], SOURCE_COPY[1], PUFFDIFF[1], BROTLI_BSDIFF[1]
dtbo            8.00 M  8.00 M  ZERO[4], BROTLI_BSDIFF[1]
product          389 M   637 M  ZERO[3], REPLACE_XZ[41], REPLACE_BZ[78], SOURCE_COPY[310], PUFFDIFF[6], BROTLI_BSDIFF[56]
recovery                96.0 M  ZERO[35], REPLACE[3], REPLACE_XZ[9], REPLACE_BZ[1]
system          2.09 G  1.92 G  ZERO[5], REPLACE_XZ[67], REPLACE_BZ[147], SOURCE_COPY[1876], PUFFDIFF[30], BROTLI_BSDIFF[293]
system_ext       286 M   284 M  ZERO[2], REPLACE_XZ[3], REPLACE_BZ[25], SOURCE_COPY[252], PUFFDIFF[6], BROTLI_BSDIFF[110]
vbmeta          8.00 k  8.00 k  BROTLI_BSDIFF[1]
vbmeta_system   4.00 k  4.00 k  BROTLI_BSDIFF[1]
vendor           487 M   487 M  ZERO[3], SOURCE_COPY[800], BROTLI_BSDIFF[203]
xbl             3.01 M  3.01 M  ZERO[4], REPLACE_XZ[1], SOURCE_COPY[5]
It modifies lots of things and if those things aren't how it expects there are going to be problems.
Note that abl is fully replaced. If you were looking just for that you could use a payload dumper and get a clean copy.
The other files, like boot, can not be extracted except in the context of a device updated to a specific full update.

(These printouts are from a work-in-progress utility.)

Last edited by Renate; 07-28-2024 at 09:40 AM.
Renate is online now   Reply With Quote