Odin失败! LZ4无效

问题描述 投票:1回答:2

我有一个可以成功在Samsung S10 5G(Qualcomm)上闪烁的ROM。我的目标是检查是否可以修改ROM​​的system.img文件,但是在修改之前,我只想验证是否可以在解压缩和打包system.img之后刷新AP文件。为了检查这一点,我尝试了以下方法:

拆包AP文件:

A)tar闪烁:

  1. 使用tar -xf AP...tar.md5命令提取的AP文件。
  2. 使用tar -cvf AP...tar *压缩解压缩的文件
  3. 使用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元数据userdata.img.ext4.lz4carrier.img.ext4.lz4持久性。 img.ext4.lz4vbmeta.img.lz4dqmdbg.img.ext4.lz4recovery.img.lz4vendor.img.ext4.lz4] >,dtbo.img.lz4system.img.ext4.lz4“。
  2. 使用unlz4 system.img.ext4.lz4命令提取系统文件。这给了我system.img.ext4 Android稀疏图像。
  3. 尝试以下命令来压缩system.img.ext4,而不进行任何修改:
  4.     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无效”] >

LZ4命令详细信息:1.在Ubuntu 18上工作2.使用“ Yann Collet编写的LZ4命令行界面64位r128(2018年4月3日)”

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

[file system.img.ext4.lz4输出:

  • 原始文件:system.img.ext4.lz4: LZ4 compressed data (v1.4+)

  • 我的LZ4版本(r128和v1.9.2):

    1. 对于使用旧标记]压缩的文件>(-l):system.img.ext4.lz4: LZ4 compressed data (v0.1-v0.9)
    2. 对于压缩的文件无旧标记(-l):system.img.ext4.lz4: LZ4 compressed data (v1.4+)
  • 所以,我认为这意味着文件应该在没有旧标志的情况下进行压缩。

    大小

    1. 带有-9标志,即高压缩

    ,输出文件的大小为3.3 GB
  • -9标志,即默认压缩,输出文件为3.6 GB
  • 原始文件的大小为[[3.6 GB,因此,我认为不应使用高压缩率。但是奥丁仍然抛出相同的错误。

    任何建议为什么会发生?

    我有一个可以成功在Samsung S10 5G(Qualcomm)上闪烁的ROM。我的目标是检查是否可以修改ROM​​的system.img文件,但在修改之前,我只想验证...

    假设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:使用lz4的较新版本。 r128实际上是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找到此解决方案

    compression samsung-mobile lzw lossless-compression lz4
    2个回答
    1
    投票
    假设system.img.ext4未被修改,

    0
    投票
    使用此:

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

    © www.soinside.com 2019 - 2024. All rights reserved.