奥丁失败! LZ4无效

Odin FAIL! LZ4 is invalid

我有一个可以在三星S10 5G(高通)上成功刷入的ROM。我的目标是检查是否可以修改ROM​​的system.img文件,但在修改之前,我只是想验证system.img解包和打包后AP文件是否可以刷入。为了检查这一点,我尝试了以下操作:

解压-打包 AP 文件:

A) tar 闪烁:

  1. 使用 tar -xf AP...tar.md5 命令提取 AP 文件。
  2. 使用tar -cvf AP...tar *
  3. 压缩提取的文件
  4. 使用 Odin3 v3.13 刷写。

B) tar.md5 闪烁: - 按照 A) 中的步骤获取 tar,然后获取 运行 md5sum -t AP...tar >> AP...tarmv AP...tar AP...tar.md5

Ap...tarAP...tar.md5都刷机成功

解包-打包system.img.ext4.lz4

  1. 使用 tar -xf AP...tar.md5 命令提取 AP 文件。提取的文件是“boot.img.lz4, meta-data, userdata.img.ext4.lz4 , carrier.img.ext4.lz4, persist.img.ext4.lz4, vbmeta.img.lz4, dqmdbg.img.ext4.lz4, recovery.img.lz4, vendor.img.ext4.lz4, dtbo.img.lz4, system.img .ext4.lz4".
  2. 使用unlz4 system.img.ext4.lz4 命令提取系统文件。这给了我一个 system.img.ext4 Android 稀疏图像。
  3. 尝试了以下命令来压缩 system.img.ext4 而不做任何修改:
    lz4 system.img.ext4 system.img.ext4.lz4                     - Default Compression
    lz4 -9 system.img.ext4 system.img.ext4.lz4              - High Compression 
    lz4 -l system.img.ext4 system.img.ext4.lz4              - Default Compression in Legacy format
    lz4 -l -9 system.img.ext4 system.img.ext4.lz4           - High Compression in Legacy format
    lz4 -0 -l system.img.ext4 system.img.ext4.lz4           - No Compression in Legacy format
    lz4 -B4 system.img.ext4 system.img.ext4.lz4             - Default Compression with Block size 4
    lz4 -B5 system.img.ext4 system.img.ext4.lz4             - Default Compression with Block size 5
    lz4 -B6 system.img.ext4 system.img.ext4.lz4             - Default Compression with Block size 6
    lz4 --no-frame-crc system.img.ext4 system.img.ext4.lz4   - Default Compression with no crc frame

并通过用上述命令中的压缩文件替换原始 system.img.ext4.lz4 文件来制作 AP 文件(一次一个)并尝试刷新它但每次都失败 "Odin FAIL! LZ4 is invalid"

LZ4 命令详情: 1. 正在 Ubuntu 18 2. 使用 "LZ4 command line interface 64-bits r128, by Yann Collet (Apr 3 2018)"

尝试使用“LZ4 命令行界面 64 位 v1.9.2,作者 Yann Collet”但得到相同的结果。

file system.img.ext4.lz4 输出:

所以,我认为这意味着应该在没有遗留标志的情况下压缩文件。

尺码

  1. 带有 -9 标志,即 高压缩 输出文件为 3.3 GB
  2. 没有 -9 标志,即 默认压缩 输出文件为 3.6 GB.

原始文件大小为3.6 GB所以,我认为不应该使用高压缩。

但 Odin 仍然抛出相同的错误。

有什么建议吗?

假设 system.img.ext4 没有被修改,

lz4 -l -9 system.img.ext4 system.img.ext4.lz4

应该可以。 奇怪的是它没有,虽然我在你的例子中注意到你正在压缩 system.img,而不是 system.img.ext4,所以不清楚它是否是同一个文件。

建议 1:某处可能存在校验和,不允许使用 lz4 有效负载。那部分是系统特定的,所以很难知道。你得四处看看。

建议 2:将您的原始 system.img.ext4.lz4 与使用 lz4 重新压缩生成的进行比较。试着找出差异(特别是,更小,更大?)

建议 3:使用更新版本的 lz4r128 实际上是 very old。您可以在本地编译更新的版本,例如 v1.9.2,它包含超级模式,能够压缩超过 -9(压缩级别可以升级到 -12)。

使用这个:

lz4 -B6 --content-size in.img out.img.lz4

更多信息:https://www.mankier.com/1/lz4

从以下位置找到此解决方案:https://forum.xda-developers.com/galaxy-s9/help/how-to-compress-samsung-images-lz4-t3844760