首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >奥丁失败了!LZ4无效

奥丁失败了!LZ4无效
EN

Stack Overflow用户
提问于 2019-10-23 07:35:45
回答 2查看 2.7K关注 0票数 1

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

解包- 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 解包-Pack

  1. 使用tar -xf AP...tar.md5命令提取AP文件。解压缩的文件是"boot.img.lz4、meta、userdata.img.ext4.lz4、carer.img.ext4.lz 4、持久化.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安卓稀疏图像。
  3. 尝试使用以下命令压缩system.img.ext4而不进行任何修改:
代码语言:javascript
运行
复制
    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文件替换为上述命令中的压缩文件(一次一次),并试图将其闪存,但每次使用失败时,都会使用“Odin!LZ4是无效的”来创建一个AP文件。

LZ4命令详细信息: 1. Ubuntu 18 2.使用"LZ4命令行接口64位r128,由Yann Collet编写(2018年4月3日)“

用"LZ4命令行接口64位v1.9.2,由Yann “进行了尝试,但得到了同样的结果。

file system.img.ext4.lz4 输出:

  • 原始文件:system.img.ext4.lz4: LZ4 compressed data (v1.4+)
  • 我的LZ4版本(r128和v1.9.2):
代码语言:javascript
运行
复制
1. For file compressed with **legacy flag**(-l): `system.img.ext4.lz4: LZ4 compressed data (v0.1-v0.9)`
2. For file compressed **without legacy flag**(-l): `system.img.ext4.lz4: LZ4 compressed data (v1.4+)`

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

尺寸

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

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

但是奥丁抛出的错误还是一样的。

有什么好的建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-10-26 06:54:31

用这个:

代码语言:javascript
运行
复制
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找到此解决方案

票数 4
EN

Stack Overflow用户

发布于 2019-10-23 16:36:52

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

代码语言:javascript
运行
复制
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实际上是很老。您可以在本地编译一个更新的版本,如v1.9.2,它包含超模式,能够压缩更多的-9 (压缩级别可以升级到-12)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58517762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档