奥丁失败! LZ4无效
Odin FAIL! LZ4 is invalid
我有一个可以在三星S10 5G(高通)上成功刷入的ROM。我的目标是检查是否可以修改ROM的system.img
文件,但在修改之前,我只是想验证system.img
解包和打包后AP文件是否可以刷入。为了检查这一点,我尝试了以下操作:
解压-打包 AP 文件:
A) tar
闪烁:
- 使用
tar -xf AP...tar.md5
命令提取 AP 文件。
- 使用
tar -cvf AP...tar *
压缩提取的文件
- 使用 Odin3 v3.13 刷写。
B) tar.md5
闪烁:
- 按照 A) 中的步骤获取 tar,然后获取 运行 md5sum -t AP...tar >> AP...tar
和 mv AP...tar AP...tar.md5
Ap...tar
和AP...tar.md5
都刷机成功
解包-打包system.img.ext4.lz4
- 使用
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".
- 使用
unlz4 system.img.ext4.lz4
命令提取系统文件。这给了我一个 system.img.ext4
Android 稀疏图像。
- 尝试了以下命令来压缩
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
输出:
- 原文件:
system.img.ext4.lz4: LZ4 compressed data (v1.4+)
.
我的 LZ4 版本(r128 和 v1.9.2):
- 对于使用 legacy flag(-l) 压缩的文件:
system.img.ext4.lz4: LZ4 compressed data (v0.1-v0.9)
- 对于没有遗留标志压缩的文件(-l):
system.img.ext4.lz4: LZ4 compressed data (v1.4+)
所以,我认为这意味着应该在没有遗留标志的情况下压缩文件。
尺码
- 带有
-9
标志,即 高压缩 输出文件为 3.3 GB。
- 没有
-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:使用更新版本的 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
我有一个可以在三星S10 5G(高通)上成功刷入的ROM。我的目标是检查是否可以修改ROM的system.img
文件,但在修改之前,我只是想验证system.img
解包和打包后AP文件是否可以刷入。为了检查这一点,我尝试了以下操作:
解压-打包 AP 文件:
A) tar
闪烁:
- 使用
tar -xf AP...tar.md5
命令提取 AP 文件。 - 使用
tar -cvf AP...tar *
压缩提取的文件
- 使用 Odin3 v3.13 刷写。
B) tar.md5
闪烁:
- 按照 A) 中的步骤获取 tar,然后获取 运行 md5sum -t AP...tar >> AP...tar
和 mv AP...tar AP...tar.md5
Ap...tar
和AP...tar.md5
都刷机成功
解包-打包system.img.ext4.lz4
- 使用
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". - 使用
unlz4 system.img.ext4.lz4
命令提取系统文件。这给了我一个system.img.ext4
Android 稀疏图像。 - 尝试了以下命令来压缩
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
输出:
- 原文件:
system.img.ext4.lz4: LZ4 compressed data (v1.4+)
. 我的 LZ4 版本(r128 和 v1.9.2):
- 对于使用 legacy flag(-l) 压缩的文件:
system.img.ext4.lz4: LZ4 compressed data (v0.1-v0.9)
- 对于没有遗留标志压缩的文件(-l):
system.img.ext4.lz4: LZ4 compressed data (v1.4+)
- 对于使用 legacy flag(-l) 压缩的文件:
所以,我认为这意味着应该在没有遗留标志的情况下压缩文件。
尺码
- 带有
-9
标志,即 高压缩 输出文件为 3.3 GB。 - 没有
-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:使用更新版本的 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