All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gao Xiang <xiang@kernel.org>
To: peacherwu <peacherwu969@gmail.com>
Cc: linux-erofs@lists.ozlabs.org, hsiangkao@linux.alibaba.com,
	chao@kernel.org, Kelvin Zhang <zhangkelvin@google.com>
Subject: Re: [RFC] AceDelta: OTA delta for EROFS images, 30-40% smaller than AOSP 17 delta_generator
Date: Wed, 7 Oct 2026 17:25:06 +0200	[thread overview]
Message-ID: <asZkUv1TfTfWG0a8@MacBookPro> (raw)
In-Reply-To: <CAOisCUPoZyE7TBoEW_O=06cJSCrMZSzBEzLaKMRKtvffB3pqdw@mail.gmail.com>

Hi,

(+cc Kelvin on this topic)

On Wed, Oct 07, 2026 at 10:58:10PM +0800, peacherwu wrote:
> Hi,
> 
> I'd like to share results of an alternative OTA delta generator/applier
> for EROFS partition images.
> 
> AceDelta diffs whole EROFS partitions (system, vendor, odm, my_* etc.) at
> file level, recompressing lz4 clusters on apply. Compared with AOSP 17
> delta_generator (minor_version 10, -enable_lz4diff)
> on seven real consecutive-build pairs from five phones:
> 
>   Device / builds                    AOSP MB  AceDelta MB  Reduction
>   OnePlus 15      A.22 -> A.27        1152.6      683.7      40.7%
>   OPPO Find X8 Pro C.76 -> C.79       1059.1      733.1      30.8%
>   Xiaomi 15 Pro   2.0.105 -> 2.0.214  1038.6      655.6      36.9%
>   Xiaomi 15 Pro   3.0.3 -> 3.0.7       833.4      490.4      41.2%
>   Xiaomi 15 Pro   2.0.214 -> 3.0.3    2657.9     1685.8      36.6%
>   Nubia Z80 Ultra 16.0.12 -> 16.0.16   767.9      514.7      33.0%
>   Realme GT8 Pro  A.68 -> A.71        1268.9      878.1      30.8%
> 
> Generation is ~2.5x faster than delta_generator; apply time (on PC) is
> about the same (single-thread 8% slower, multi-thread 20% faster using more
> RAM). Hash tree and FEC are
> regenerated at apply time by my own implementations. Detailed info, plus
> Linux evaluation binaries:
> 
>   https://github.com/peacherwu969/acedelta

That is a great effort. If you're interested, you could seek
Google Android staffs and see if they are interested.

> 
> A question for EROFS people. Both AOSP (lz4diff) and AceDelta must
> reproduce the lz4 compression exactly; mismatches are patched with small
> fixups. Although AceDelta is doing better than AOSP in fixup sizes through
> lots of experiments, it's still like shooting in the dark. Is there a more
> systematic way that ensures exactness?

I'm not sure if it has a better approach since it relies on a strict
compressed data reproducibility of the compressor.)

> 
> Is there an EROFS WeChat group I could join?

I will message you my own WeChat number privately since I tend to
avoid leaking my contact info publicly.

Thanks,
Gao Xiang

> 
> Thanks,
> --Peacher


  reply	other threads:[~2026-10-07 15:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-07 14:58 [RFC] AceDelta: OTA delta for EROFS images, 30-40% smaller than AOSP 17 delta_generator peacherwu
2026-10-07 15:25 ` Gao Xiang [this message]
2026-10-07 16:31   ` peacherwu
2026-10-07 16:57     ` Kelvin Zhang
2026-10-08 13:11       ` peacherwu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=asZkUv1TfTfWG0a8@MacBookPro \
    --to=xiang@kernel.org \
    --cc=chao@kernel.org \
    --cc=hsiangkao@linux.alibaba.com \
    --cc=linux-erofs@lists.ozlabs.org \
    --cc=peacherwu969@gmail.com \
    --cc=zhangkelvin@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.