flipperdevices / flipperzero-firmware

Flipper Zero firmware source code
https://flipperzero.one
GNU General Public License v3.0
11.69k stars 2.59k forks source link

Updater: resource compression #3716

Open hedger opened 1 week ago

hedger commented 1 week ago

What's new

Verification

Checklist (For Reviewer)

github-actions[bot] commented 1 week ago

Compiled f7 firmware for commit 70c95e5e:

github-actions[bot] commented 1 week ago

PVS-Studio report for commit e8a2a4b2:

CookiePLMonster commented 1 week ago

Will the use case here be that the users are expected to compress files off-site and e.g. include compressed assets inside the FAP, or is this in preparation for FAPs compressing assets internally and decompressing during the first-time extraction step?

hedger commented 1 week ago

Will the use case here be that the users are expected to compress files off-site and e.g. include compressed assets inside the FAP, or is this in preparation for FAPs compressing assets internally and decompressing during the first-time extraction step?

Primary objective for this PR is to reduce resource bundle size in update package, improving update speeds.

However, with improved compression APIs, it may be reused in other subsystems.

CookiePLMonster commented 1 week ago

However, with improved compression APIs, it may be reused in other subsystems.

Yeah - considering that FAP asset unpacking is IO bound (as far as I can tell), and those assets can never be referenced directly without unpacking, feels like storing them compressed is a win - less IO reads, and faster FAP installation times.