mrp信息头说明:


type MRPHeader struct {
    Magic          [4]byte  // [0:4]     固定标识'MRPG'
    FileStart      uint32   // [4:8]     文件头的长度+文件列表的长度-8
    MrpTotalLen    uint32   // [8:12]    mrp文件的总长度
    MRPHeaderSize  uint32   // [12:16]   文件头的长度,通常是240,如果有额外数据则需要加上额外数据的长度
    FileName       [12]byte // [16:28]   GB2312编码带'\0'
    DisplayName    [24]byte // [28:52]   GB2312编码带'\0'
    AuthStr        [16]byte // [52:68]   编译器的授权字符串的第2、4、8、9、11、12、1、7、6位字符重新组合的一个字符串
    Appid          uint32   // [68:72]
    Version        uint32   // [72:76]
    Flag           uint32   // [76:80]   第0位是显示标志, 1-2位是cpu性能要求,所以cpu取值范围是0-3只对展讯有效, 第3位是否是shell启动的标志,0表示start启动,1表示shell启动
    BuilderVersion uint32   // [80:84]   应该是编译器的版本,从几个mrpbuilder看都是10002
    Crc32          uint32   // [84:88]   整个文件计算crc后写回,计算时此字段的值为0
    Vendor         [40]byte // [88:128]  GB2312编码带'\0'
    Desc           [64]byte // [128:192] GB2312编码带'\0'
    AppidBE        uint32   // [192:196] 大端appid
    VersionBE      uint32   // [196:200] 大端version
    Reserve2       uint32   // [200:204] 保留字段
    ScreenWidth    uint16   // [204:206] 在反编译的mrpbuilder中能看到有屏幕信息的字段,但是在斯凯提供的文档中并没有说明
    ScreenHeight   uint16   // [206:208]
    Plat           uint8    // [208:209] mtk/mstar填1,spr填2,其它填0
    Reserve3       [31]byte // [209:240]
    // ...       额外的数据,通常情况下没有
}

民间mrp编译器:

发表评论

邮箱地址不会被公开。 必填项已用*标注