Compression 奥丁失败了!LZ4无效

Compression 奥丁失败了!LZ4无效,compression,samsung-mobile,lzw,lossless-compression,lz4,Compression,Samsung Mobile,Lzw,Lossless Compression,Lz4,我有一个可以在三星S10 5G(高通公司)上成功闪存的ROM。我的目标是检查我是否可以修改ROM的system.img文件,但在修改之前,我只想验证在解压缩和打包system.img后是否可以刷新AP文件。为了检查这一点,我尝试了以下方法: 解压缩包AP文件: A) tar闪烁: 使用tar-xfap…tar.md5命令提取AP文件 使用tar-cvf AP…tar* 用Odin3 v3.13刷新它 B) tar.md5闪烁: -按照A)中的步骤获取tar,然后运行md5sum-tap…tar>

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

解压缩包AP文件:

A)
tar
闪烁:

  • 使用
    tar-xfap…tar.md5
    命令提取AP文件
  • 使用
    tar-cvf AP…tar*
  • 用Odin3 v3.13刷新它
  • B)
    tar.md5
    闪烁: -按照A)中的步骤获取tar,然后运行
    md5sum-tap…tar>>AP…tar
    mv AP…tar AP…tar.md5

    Ap…tar
    Ap…tar.md5
    都成功闪烁

    打开包装
    system.img.ext4.lz4

  • 使用
    tar-xfap…tar.md5
    命令提取AP文件。提取的文件是“boot.img.lz4、元数据、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”
  • 使用
    unlz4 system.img.ext4.lz4
    命令提取系统文件。这给了我一个
    system.img.ext4
    Android稀疏图像
  • 已尝试使用以下命令压缩
    system.img.ext4
    ,但未做任何修改:
  • 并通过使用上述命令中的压缩文件(一次一个)替换原始的
    system.img.ext4.lz4
    文件来制作AP文件,并尝试刷新它,但每次都失败,并显示“Odin FAIL!lz4无效”

    LZ4命令详细信息: 1.在Ubuntu18上工作 2.使用Yann Collet的“LZ4命令行接口64位r128(2018年4月3日)”

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

    文件系统.img.ext4.lz4
    输出:

    • 原始文件:
      system.img.ext4.lz4:lz4压缩数据(v1.4+)
    • 我的LZ4(r128和v1.9.2)版本:

    • 对于使用传统标志压缩的文件(-l):
      system.img.ext4.lz4:lz4压缩数据(v0.1-v0.9)
    • 对于不带旧标志的压缩文件(-l):
      system.img.ext4.lz4:lz4压缩数据(v1.4+)
    因此,我认为这意味着文件应该在没有遗留标志的情况下进行压缩

    大小

  • 使用
    -9
    标志,即高压缩时,输出文件的大小为3.3 GB
  • 没有
    -9
    标志,即默认压缩时,输出文件的大小为3.6 GB
  • 原始文件的大小为3.6GB,因此,我认为不应使用高压缩

    但奥丁还是犯了同样的错误


    有什么建议说明为什么会这样吗?

    假设
    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实际上是。您可以在本地编译一个较新的版本,如
    v1.9.2
    ,它包含ultra模式,能够压缩到-9以上(压缩级别可以升级到-12)。

    假设
    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实际上是。您可以在本地编译一个较新的版本,如
    v1.9.2
    ,它包含ultra模式,能够压缩到-9以上(压缩级别可以升级到-12)。

    使用以下方法:

    lz4 -B6 --content-size in.img out.img.lz4
    
    有关更多信息:

    从以下位置找到此解决方案:

    使用此:

    lz4 -B6 --content-size in.img out.img.lz4
    
    有关更多信息:


    从以下内容中找到此解决方案:

    更正了说明中的命令,上次我在说明中使用了
    unlz4 system.img.ext4.lz4 system.img
    so
    system.img
    。刚才我使用了
    unlz4 system.img.ext4.lz4
    并尝试了
    lz4-l-9 system.img.ext4 system.img.ext4.lz4
    ,但得到了相同的结果。新的东西,我注意到了原来的
    system.img.ext4.lz4
    system.img.ext4.lz4:lz4压缩数据(v1.4+)
    和另一个
    system.img.ext4.lz4
    system.img.ext4.lz4:lz4压缩数据(v0.1-v0.9)
    。编译'lz4命令行界面64位v1.9.2,由Yann Collet `从源代码中运行
    /lz4-l-9 system.img.ext4../system.img.ext4.lz4
    命令。输出为3.3 GB
    system.img。