Win 下 打开 EROFS img 工具

2022-06-22 23:25:12 +08:00
 Ljcbaby
一直有习惯手动制作 Magisk 模块屏蔽部分 MIUI 的系统应用,但这次解 K50 的包出问题了,7zip 打不开 system.img

在群友的帮助下确定了问题大概是 EROFS ,但找到的两个解包工具都要 Linux 环境,有无 Win 下可用的工具?
3711 次点击
所在节点    Windows
44 条回复
Buges
2022-06-23 06:45:06 +08:00
搜了一下,这个似乎是华为出品,upstream 到 Linux 内核的文件系统,应该还没有其他实现。没看到这个 fs 比起广泛应用的 squash fs 有什么特别的优势,造这种轮子纯属制造问题而非解决问题,污染开源生态。
Ljcbaby
2022-06-23 07:07:34 +08:00
@Buges #1 华为和阿里主导的,应该有优势在的,不然不会被选为 Android 13 的强制特性的。
anguiao
2022-06-23 14:03:24 +08:00
试试 WSL ?

题外话:既然 EROFS 是只读的话,是不是以后 root 的可玩性就降低了🤔
Ljcbaby
2022-06-23 14:09:17 +08:00
@anguiao #3 已经准备上了

早就习惯 system 只读了,反正全靠 magisk 修改内容
nevin47
2022-06-23 14:12:43 +08:00
@Buges #1 哇,我一般 V 站上看到吐槽华为的,都会觉得萝卜青菜各有所爱,但你这个太扯了吧兄弟

EROFS 现在都是 Android13 的默认系统分区选型了,如果有兴趣,推荐读一下 usenix 19 的这篇 Paper 《 EROFS: A Compression-friendly Readonly File System for Resource-scarce Devices 》。如果学术能力不强,也可以读一下进行了简化处理的新闻: https://pocketnow.com/erofs-android-13-explained

这种为了黑而黑才是在污染社区生态吧
anguiao
2022-06-23 14:23:40 +08:00
@Ljcbaby 很多年没折腾过 root 了,搜了下才知道 Magisk 的基本原理,受教了。
Buges
2022-06-23 14:47:28 +08:00
@nevin47 这篇文章说半天也没说出来什么比起 squash fs 的显著优势或 squash fs 不能实现的特性。明明有广泛支持的方案,为什么非要放着不用重新造轮子?再者说国产开源项目什么质量心里都有数,国产项目进入核心 infra 只会制造坑让人踩,lz 这个帖子就是现成的例子,用 7z 释放 squashfs 的镜像是完全没问题的。
Ljcbaby
2022-06-23 15:07:40 +08:00
@Buges #7 同等压缩下更快读(相对于 ext4 ,毕竟之前的 system 使用的是 只读的 ext4 )
squashfs 似乎缺乏压缩
Ljcbaby
2022-06-23 15:12:30 +08:00
@Buges #7 自我纠正
> 其实 Linux 压缩文件系统也早就有了:Squashfs ,但这个文件系统并未在手机系统中流行起来,甚至低端设备也未采用。原因在于:
>
>> 我们为何不使用 SquashFS ?
>> 我们尝试过 SquashFS ,但无法实现高端设备所需的性能。我们不会为手持设备使用 SquashFS ,也不推荐这么做。
>> 更具体地说,使用 SquashFS 时,系统分区上节省了约 50% 的大小,但绝大多数压缩率较高的文件都是预编译的 .odex 文件。这些文件都具有非常高的压缩比(接近 80%),但系统分区其余部分的压缩比要低得多。另外,SquashFS 在 Android 7.0 中引发了以下性能问题:
>> 1. 与以往的设备相比,Pixel 具有非常快的闪存,但并没有大量的空闲 CPU 周期,因此虽然从闪存读取的字节数更少,但却需要更多的 CPU 来处理 I/O ,这是一个潜在的制约因素。
>> 2. 在没有任何负载的系统上,有些 I/O 变化在人为基准条件下不会出现任何问题,但在具有真实负载(如 Nexus 6 上的加密)的实际用例中有时则会出现问题。
>> 3. 在某些方面,基准化分析显示回归率达到 85%。
>> 随着 SquashFS 日趋成熟并且增加了旨在降低 CPU 影响的功能(例如,将不应压缩且经常访问的文件列入白名单),我们将继续对其进行评估并向设备制造商提供建议。
>> 链接:[常见问题解答  |  Android 开源项目  |  Android Open Source Project]( https://source.android.google.cn/devices/tech/ota/ab/ab_faqs)
> 如果压缩是以性能急剧下降为代价的,那其实还是得不偿失的,所以对于性能的测试就是关键点。

ref: https://zhuanlan.zhihu.com/p/264923041
nevin47
2022-06-23 15:12:47 +08:00
@Buges #7 请问你有认真看吗? USENIX 19 这篇 paper 是有 Microbenchmark 的,你看一下自己就明白为什么 EROFS 用来做 System 分区的时候有优势了。这篇文章里面有非常多的 compare with Squashfs 。EROFS 在非常多的场景是有明显性能优势的

而且你后半段 "再者说国产开源项目什么质量心里都有数,国产项目进入核心 infra 只会制造坑让人踩"
真的,都不想作出任何评论

另外,img 文件的解包问题,EROFS 可以直接解包的,windows 的解包只是当前没人做而已
Ljcbaby
2022-06-23 15:27:38 +08:00
@anguiao #3 https://github.com/microsoft/WSL/issues/7257 似乎 WSL 还不支持 erofs


@nevin47 #10 确实希望有人做解包,要往虚拟机里丢一次还是挺麻烦的
Buges
2022-06-23 16:18:22 +08:00
@nevin47 不用翻什么 paper ,你发的文章、patch 邮件、hernel 文档里都没有比 squash fs 有什么显著性的优势。像是可选压缩、访问缓存这些,也完全不是 squash fs 很难实现的。另起炉灶重新造轮子,可以,但没必要。

另外我可没说什么中立,出于个人立场当然不希望核心环境依赖国产代码。哪个公司不审查供应链,fastjson 用的还开心吗?

最后一点显然任何格式都能解包,但重新造轮子生态不支持本身就是坑。
nevin47
2022-06-23 16:34:49 +08:00
@Buges #12 我觉得我们无法交流了,你这种态度就和民科一样,不看数据不读书,守着自己的小天地认为自己就是正确的。EROFS 几乎每周都有各种和 squashfs/ext4 的讨论和对比,不管是功能差别和性能优势 /劣势,都在被充分讨论着。我觉得你可能并没有 trace EROFS 和 squashfs 的 MailList ,纯属在臆想?

至于立场问题,只能说你开心就好,现在连 Andriod 13 都把 EROFS 作为默认系统分区文件系统了,你如果觉得不满意,你也可以参与到社区讨论中。另外商业软件开源没有原罪,例如 xfs 、btrfs 这些影响深远的文件系统,都是商业开源项目,国产的商业项目凭啥就不能开源然后成为主干版本了??
nevin47
2022-06-23 16:42:29 +08:00
@Ljcbaby 这个解包工具主要是要在 windows 上实现一个解码,而且还要再实现一个重压缩。我估计后面应该会有舅舅党做一个出来。不过确实现阶段 wsl 最方便了
singerll
2022-06-23 16:46:35 +08:00
@nevin47 “造这种轮子纯属制造问题而非解决问题,污染开源生态。”

1 楼都这样说了,你还跟他在认真科普。。。。。。

按照他的逻辑,谷歌都是傻子,随便找了个国产垃圾就往安卓里面塞。那么多文件系统,偏偏选了国产,这其中一定有 py 交易。
Ljcbaby
2022-06-23 16:48:28 +08:00
@nevin47 #14 github.com/microsoft/WSL/issues/7257 似乎 WSL 还不支持 erofs ,内核参数不对
Buges
2022-06-23 16:52:56 +08:00
@nevin47 看了文档、介绍,没有什么 innovative 的变化,我就知道它比起 squash fs 没有质的提升(后者由于已有设计无法实现或难以实现的特性),具体细节我为什么要去关心呢?

商业软件当然没有原罪,我说了,立场问题。有开源软件作者给 Ru 用户投毒,Ru 用户会希望继续依赖他的代码?阿里又搞了个 fastjson2 ,还有谁现在愿意用?国内经济条件差,开源项目大多功利性严重,为了 KPI 、为了话语权,为了不被“卡脖子”、自主可控,缺乏自由软件原本的精神。自由软件 provide as is,without liability ,而国内法律会因为诈骗网站用了宝塔面板请宝塔团队喝茶;国内的价值观就是 clearly against the Free software movement ,这就是我不希望看到核心 infra 依赖国产代码的原因,仅仅开源代码并没有太多意义,reputation 和后续支持都不行。
Buges
2022-06-23 16:57:53 +08:00
@singerll 开始稻草人了是吧,我一直说的都是“没有特别优势”,不知道你从哪句读出来“国产垃圾”、“py 交易”的意思。
Ljcbaby
2022-06-23 17:09:54 +08:00
@Buges 建议你自己开帖批判这一问题,我希望的是寻求工具来解包 img 。

另外,没有特别优势不代表没有优势,在任何情况下我们都希望有更好的的东西出现的。
nevin47
2022-06-23 17:15:29 +08:00
@Ljcbaby wsl 可以自己替换一下内核,我看了一下 Ubuntu 貌似是不支持,不知道另外几个发行版情况如何

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861502

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX