- zip包存储着两种数据:概述、依赖于概述中类型(type字段)指定的的数据。
为直观,本文用一个示例来描述素材rsp。

图1中高亮部分是80字节的trsp_material80bytes。
一、第一部分:rsp头(48字节)
Tag3-H4=7(zipt_material)
zip包中数据版本:0.0.1-20250916(0x01350124)。0.0.1是zip包中版本格式,可认为是素材包的存储格式版本。目前是0.0.1。20250915是此素材包的最后修改日期。精确到秒文件生成时间是在trsp_material80bytes的ts。没要求这里填的四字节必须是生成日期。
rose版本:1.0.1。
bundleid:matl.leagor.courseware。对素材,bundleid的第一段建议用materia的缩写“matl”。
zip包字节数:0x98030e = 9,962,254。可算出该rsp文件字节数:48 + 9962254 + 20 = 9962322。9,962,254由两部分组成。
| 次序 | 内容 | 字节数 | 描述 |
| #1 | 概述 | 80 | 固定字节数。sizeof(trsp_material80bytes) |
| #2 | 素材数据 | 9,962,174 | 可变字节数。type相关的素材数据 |
二、zip包
2.1 概述
概述存储着描述信息,它是一个trsp_material80bytes结构。
#define RSP_MAXDESCBYTES 55
struct trsp_material80bytes {
int64_t ts;
int32_t type;
char desc[RSP_MAXDESCBYTES + 1];
uint32_t reserve0;
uint32_t reserve1;
uint32_t reserve2;
};针对示例,它从0x30开始,占80字节。
- ts:指示该文件的生成时间。值用C函数time(nullptr)生成。
- type:素材类型。目前就容许出现1,指示后面的数据,类型是课件。
- desc:描述字符串,utf-8格式。有效字符结束时,后面会补'\0'。最多56字节。图1中该值是“2025-09-15物理作业”。
- reserve0、reserve1、reserve2。保留将来使用。目前应该都填0,在图1,reserve0值是0x12345678,是为让直观看到”desc“是哪部分。
| 整型type值 | 字符型type值 | 描述 |
| 1 | courseware | 课件。素材数据部分是个zip压缩包 |
2.2 素材数据
type相关的素材数据。课件类型的话,这是个zip压缩包