一直对群联的序列号比较困惑,因为群联普通的MPALL量产工具无法指定序列号,只能用UPTOOL黑片工具才可以指定序列号。今天正好有时间,花了将近一上午时间将我手里的PS2307 3.0U盘反复量产了N次,结合其他坛友已经获得的信息,经过比对分析大致了解了群联序列号与新版(V3.xx)量产工具序列号设置的一些信息。 先上一个chipgenius的检测结果: 设备描述: [H:]USB 大容量存储设备(USB DISK 3.0) 设备类型: 大容量存储设备 协议版本: USB 2.10 <- 提醒:该设备支持USB3.0规范,将其连接到USB3.0接口可提高其性能 当前速度: 高速(HighSpeed) 电力消耗: 300mA USB设备ID: VID = 13FE PID = 5500设备序列号: 900065BD8C9C5103 设备名称: USB DISK 3.0设备修订版: 0100 产品型号: USB DISK 3.0产品修订版: PMAP 主控厂商: Phison(群联) 主控型号: PS2251-07(PS2307) - F/W 01.02.10 [2013-09-27]闪存识别码: 8988244B - Intel(英特尔) JS29F64G08AAME1 [MLC-8K] 在线资料: http://dl.mydigit.net/special/up/phison.html 可能的闪存型号------------------[1CE]JS29F64G08AAME1(25nm)[2CE]JS29F16B08CAME1(25nm)[4CE]JS29F32B08JAME1(25nm) 闪存识别码映射表------------------[通道 0] [通道 1]
用量产工具自带的getinfo检测结果如下:
我们由此可以得知,这是刚刚量产过的一个PS2307 USB3.0的U盘,它的序列号是:90 00 65BD8C 9C51 03。
群联量产工具和序列号有关的设置如下:
那么,问题来了,这个16位序列号有什么具体含义呢?量产工具如何设置序列号呢?
根据我个人猜测、分析和判断,以及综合可以查询到的相关信息,得出的以下结果(如果有不正确的地方欢迎各位坛友指正):
90:2位,十六进制,用普通工具自动生成序列号此2位均为“90”,目前无法更改(即使更换VID和PID也无效,始终不变)。品牌U盘序列号可以是7F等等其他,估计和所用量产工具版本有关。 00:2位,十六进制,就是量产设置中”Test PC Number"的内容,若无内容时,此2位为“00” 65BD8C:6位,十六进制,量产日期和时间,具体定义后文分析。 9C51:4位,十六进制,量产工具根据所使用的PC的信息自动生成的号码,应该是每一台PC有唯一的号码,无法修改,我的PC生成的都是"9C51"
03:2位,十进制,量产成功的U盘序号,最大99,通过量产设置中“Start Serial Number”设置起始序号,“Count”设置数量,“End Serial Number”设置结束序号,每量产成功一次后下次量产时就会根据上次的LOG文件计数,序号就会加1,直到达到设定的“Count”数量为止;“StartSerial Number” 和“End SerialNumber”不能设为一样,如果设为一样,量产就会报错;可以“Count”设为1,“End Serial Number”会自动在“StartSerial Number”上加1,“End Serial Number”不影响,因为只量产1个U盘的话,所量产的U盘的“SerialNumber”段就是“Start Serial Number”。要确保量产完是“Start SerialNumber”的值,要清除量产后生成的记录文件。另外,此序号和日期有关,日期变更,序号则会归零从起始序号开始计数。 量产工具设置中还有“Prefix“和”Prefix 26“两项,这两个都是设置序列号前缀,默认情况(auto)下是关闭的,也可以自行定义修改:Prefix:前缀,16进制,最长8位,为空时则不在序列号中显示Prefix 26:前缀的前缀,16进制,最长26位,为空时则不在序列号中显示
所以,群联的完整序列号格式是:“Prefix 26” + “Prefix“ + 16位自动生成的序列号,一般都只有16位自动生成的序列号。
最后,重点讲解下16位序列号的第5位至第10位(量产时间)的具体定义,仍以上面序列号中的 65BD8C 为例来分析: 第5位 “6”:十进制,就是“年”个位数字,比如“2016”年,此位就是“6”,2006、2026等等同样也是“6”。
第6位 “5”:十六进制,就是”月“的16进制数字,比如“5”月,此位就是“5”,10月则为“A”。
第7位 “B”:十六进制,就是”日“的16进制数的低位数字,比如“6”日,十六进制为0x06,此位就是“6”,而“27”日,十六进制为0x1B,此位则为“B”。第8位 “D”:十六进制,就是”时“的16进制数的低位数字,比如“13”时,十六进制为0x0D,此位就是“D”,而“22”时,十六进制为0x16,此位则为“6”。
第9位 “8”:十六进制,此位由第7位、第8位和第10位综合计算而来。计算公式:第7位“日”16进制的高位数 × 8 + 第8位“分”16进制的高位数× 4 + 第10位“分”16进制的高位数 × 1 之和的十六进制数值 。比如此例,“27”日、“13”时、“12”分,十六进制分别为0x1B、0x0D、0x0C,根据计算公式1×8 + 0×4 + 0×1 = 8,十六进制为0x8,故此位就是“8”;又如“6”日、“22”时、“30”分,十六进制分别为0x06、0x16、0x1E,根据计算公式0×8 + 1×4 + 1×1 = 5,十六进制为0x05,故此位就是“5”;再如“27”日、“22”时、“40”分,十六进制分别为0x1B、0x16、0x28,根据计算公式1×8 + 1×4 + 2×1 = 14,十六进制为0xE,故此位就是“E”。 第10位 “C”:十六进制,就是”分“的16进制数的低位数字,比如“12”分,十六进制为0x0C,此位就是“C”,如“30”分,十六进制为0x1E,此位则为“E”,或“40”分,十六进制为0x28,此位则为“8”,又“55”分,十六进制为0x37,此位则为“7”。 由此可以得知,65BD8C 的具体含义: 2016年5月27日13时12分, 与工具侦测出来的结果一致。
知道这个规则,就可以通过修改电脑时间来生成符合要求的序列号以及根据序列号来判断U盘量产的具体时间了。
PS:此贴光编辑贴时间就花了足足2个小时,非常不易。请各位有群联主控U盘的坛友据此测试验证下,看结果是否与推断的一致,也请各位坛友不吝赐教,多多砸M。 [ 此帖被aping365在2016-05-27 21:11重新编辑 ]