system.img.ext4
未被修改,我有一个可以成功在Samsung S10 5G(Qualcomm)上闪烁的ROM。我的目标是检查是否可以修改ROM的system.img
文件,但是在修改之前,我只想验证是否可以在解压缩和打包system.img
之后刷新AP文件。为了检查这一点,我尝试了以下方法:
拆包AP文件:
A)tar
闪烁:
tar -xf AP...tar.md5
命令提取的AP文件。tar -cvf AP...tar *
压缩解压缩的文件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,元数据,userdata.img.ext4.lz4,carrier.img.ext4.lz4,持久性。 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
并通过上述命令中的压缩文件替换原始 LZ4命令详细信息:1.在Ubuntu 18上工作2.使用“ Yann Collet编写的LZ4命令行界面64位r128(2018年4月3日)” 尝试使用“ LZ4命令行界面64位v1.9.2,由Yann Collet编写”,但得到的结果相同。 [system.img.ext4.lz4
文件来制作AP文件(一次一个),并尝试将其刷新,但每次失败均以“ Odin FAIL!LZ4无效”] >file system.img.ext4.lz4
输出:system.img.ext4.lz4: LZ4 compressed data (v1.4+)
。
我的LZ4版本(r128和v1.9.2):
system.img.ext4.lz4: LZ4 compressed data (v0.1-v0.9)
system.img.ext4.lz4: LZ4 compressed data (v1.4+)
所以,我认为这意味着文件应该在没有旧标志的情况下进行压缩。
大小-9
标志,即高压缩
-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找到此解决方案
system.img.ext4
未被修改,lz4 -B6 --content-size in.img out.img.lz4