导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    硬核解决全志Melis系统只有LZMA解压缩的问题[工具自制]

    MR Series
    1
    4
    1467
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • aldfaaa
      whycan矿工-小叶 LV 7 最后由 编辑

      如题,

      • 端侧仅提供一系列(13年前纯酿的)LZMA解压缩方法:
        6661c680-ebea-4c5a-8d67-5d3a1cf5572d-image.png
        衍生的问题有:

      • 在端侧以外的缺乏工具对一些资源文件进行压缩, 无法很好地利用端侧现有解压API;

      • Melis里的一些已执行LZMA压缩的资源文件无法在端侧以外解压缩, 导致一些系统逻辑不好理解吃透.

      解决

      了解到LZMA其实系7z里用到的算法, 具体就不展开讨论; 以Melis引用的头文件作为线索, 遂在github找到分离的库源码:LzmaLib
      41b15072-b5eb-4cbf-8917-be7562b131b7-image.png
      经过数天魔改代码与验证, 实锤了上述库可用; 于是, 我把缺失的压缩打包方法以及解压方法整合成了在win下可用的工具:

      $ ./aw_lzma.exe
      aw_lzma (method) (args)
      1:convert png to yuyv. aw_lzma 1 xx.png => xx.yuyv
      2:convert png to opa. aw_lzma 2 xx.png => xx.bgd
      3:decompress bgd to fb_file_header and yuyv data.aw_lzma 3 xx.bgd => xx.bin
      4:test compress and decompress.aw_lzma 4 xx.png
      Author:YE 1004707812@qq.com
      

      建议配合rawviewer和winhex工具一起服用.
      7cc35e22-c9fd-482b-b574-1148e44c110f-image.png
      (解压出了开机画面资源图stalogo1.bin)
      工具代码整理后开源, 祝Melis开源之火不灭.

      工具

      aw_lzma_YE.zip

      1 条回复 最后回复 回复 引用 分享 1
      • aldfaaa
        whycan矿工-小叶 LV 7 最后由 编辑

        此回复已被删除!
        1 条回复 最后回复 回复 引用 分享 0
        • aldfaaa
          whycan矿工-小叶 LV 7 最后由 编辑

          发现melis里的解压缩过程的解析压缩参数方法里跟lzma官方不一致;
          实际留了5个参数字节只用了前4个....这样会导致某些较大的压缩包解压缩错误
          线索:
          43c5e243-e5a7-4eb4-a795-90420ab63cdc-image.png
          坑点:
          dbc388b2-6bd7-4619-b05d-28b68893e7ba-image.png

          1 条回复 最后回复 回复 引用 分享 0
          • aldfaaa
            whycan矿工-小叶 LV 7 最后由 编辑

            工具代码已开源:
            LzmaLib-aw-melis

            1 条回复 最后回复 回复 引用 分享 0
            • 1 / 1
            • First post
              Last post

            Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

            行为准则 | 用户协议 | 隐私权政策