由于HTC将图像存储在专有m10文件中的方法
目前,使用HTC Sense ROM的用户面临一个重大问题。由于HTC将图像存储在专有m10文件中的方式,他们无法修改Sense 3.5及更高版本使用的大多数图像。不幸的是,该图像没有存储为JPG或巴布亚新几内亚。但是使用未知的算法进行编码。
此前,M10Tools获得了XDA开发者的认可,佛兰德语和响尾蛇语将被用来解码这些图像。但是,随着Sense 3.5的发布,这不再是一个选项,因为HTC添加了一个与软件包不兼容的新图像格式。
在尝试解码新的图像格式失败后,公认的开发者和论坛主持人Diamondback决定向社区中的其他开发者寻求帮助,以找到M10图像格式问题的解决方案。幸运的是,正在找到解决办法。首先,响尾蛇整理了一份我们目前所知的清单:
关于这些图像类型,我们没有任何确凿的事实,但是看看“旧”的图像类型,我们可以猜测以下事情:
图像是GPU可以直接渲染的格式(如s3tc、ATC、QTC等)。)(至少以前是这样,而且可能已经改变了)
图像最有可能被压缩。假设大小(基于元数据)和实际数据大小之间的比率表明有一定的压缩。数据本身显然是压缩的。
没有标题或任何其他帮助。这只是原始数据。
我们不完全了解解码图像的实际外观,因此无法判断图像是如何显示的。但是,由于最新的档案,如果有必要,我们“可能”知道Sense 3.5和3.6中的图像。
处理软件都在几个库中,不是smali/java,所以我们在这里找不到内容,但是我们有库,所以如果有人是汇编专业的,他可能会发现一些东西。
那么,哪些图像类型有问题呢?由响尾蛇编译:
这是我们已经知道的图像类型的列表(记住,我们不知道数字的来源,它可能是本机代码中的一些枚举)
类型4:原始RGB
类型6:原始RGBA(仍经常使用)
类型8: ATC RGB(好像已经不用了)
类型9: ATC rgba显式(似乎不再使用)
如您所见,我们得到了WITH和WITH类型的alpha编码。
这是一个未知格式的列表:
13型(用的比14型少,所以可能没有alpha?)
类型14(这是最常用的类型,所以我假设这个类型支持alpha编码)
在考虑数据可能是什么的时候,不要丢掉“数据是S3TC/ATC/任何数据,但是被一些‘常规’压缩算法再次压缩”这样疯狂的想法。也许他们只是用这些类型之上的额外压缩替换了类型8和9。
响尾蛇正在文件格式、图像压缩、OpenGL或逆向工程方面寻求所有有经验的人的帮助。由于这些努力已经持续了几个月,请投入更多的努力。那些希望加入项目的人应该直接进入开发主线,伸出援助之手。