解析iOS syscfgdata

syscfgdata的数据分为两部分一部分是头,另一个是一个一个的数据。

struct syscfg_hdr {
		char magic[4];//"固定gfCS"
		uint32_t unk_0; /*  */
		uint32_t size;
		uint32_t version;
		uint32_t unk_1; /* 0 */
		uint32_t nkeys;
	};
	struct syscfg_key {
		char name[4];
		union {
			char value[16];
			struct {
				char name[4];
				uint32_t size;
				uint32_t offset;
				uint32_t rsvd; /* -1 */
			} jumbo;
		};
	};

如上,通过头可以校验是否是合法的数据文件。经过头偏移以后就是一个一个的数据。这个数据分为两类一类为固定大小即16字节的数据,另一类非固定长度。判断非固定长度时,只需要判断第一个name是否为“BTNC“。如果是则为变长数据,就需要能过下一结构来解析数据。

下面是名称和数据对应关系。当然得到数据通常和需要展示的数据还需要变换一下。

//电池序列号
	const char *const ID_BATT ="Batt";
	//前摄像头序列号
	const char * const ID_FCMS = "FCMS";
	//液晶屏序列号
	const char * const ID_LCM = "LCM#";
	//后摄像头序列号
	const char * const ID_BCMS = "BCMS";
	//主板序列号--字符串
	const char * const ID_MBSN = "MLB#";
	//销售型号
	const char* const ID_MOD = "Mod#";
	//监管型号
	const char* const ID_RMD = "RMd#";
	//整机序列号
	const char* const ID_SN = "SrNm";
	//区域
	const char* const ID_LOC = "Regn";
	//WIFI地址
	const char* const ID_WIFI = "WMac";
	//蓝牙地址
	const char* const ID_BMAC = "BMac";
	//蜂窝地址
	const char* const ID_EMAC = "EMac";
	//指纹
	const char* const ID_FPSN = "NSrN";
	//前色
	const char* const ID_FCOLOR = "CLCG";
	//后色
	const char* const ID_BCOLOR = "CLHS";

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值