搜索

245

主题

290

帖子

2165

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2165
发表于 2021-5-11 09:40:24 9097 浏览 0 回复

[FAQ24939] 关于Serial No问题

[backcolor=rgba(255, 255, 255, 0.85)][DESCRIPTION]
[backcolor=rgba(255, 255, 255, 0.85)]
[backcolor=rgba(255, 255, 255, 0.85)]
使用SN Write工具写Serial No,使移动设备系统关于界面->序列号显示所写内容



[backcolor=rgba(255, 255, 255, 0.85)][SOLUTION]

[backcolor=rgba(255, 255, 255, 0.85)]
[backcolor=rgba(255, 255, 255, 0.85)]
有两种方案:
方案一:
在/vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c
中,将 #define SERIAL_NUM_FROM_BARCODE  宏定义打开
这时SN Write工具写Barcode即可,其他无需修改。
这是最简单的方式,相当于serial no取Barcode空间的值。
方案二:
完全按照[FAQ14551] 怎样客制化写入机器设置上显示的序列号操作。将mt_boot.c宏定义打开的同时需要修改read_product_info函数的偏移量,同时需要修改SN Write工具的ini文件,并在主界面System config中勾选Serial No.
注意:[FAQ14551] 修改完若提示为定义BLK_SIZE 需要在上方加一个宏定义:#define BLK_SIZE 512
两个方案存储的位置:
以下是读出的proinfo分区的数据,在SN Write工具写Barcode写入的地址是0x0开始的位置(方案一存储的位置),在SN Write工具写Serial No.写入的地址是0x74开始的位置(方案二存储的位置)。
两个方案的区别:
方案二FAQ14551 是增强的做法。
原本方案一只解注那个宏定义是从 proinfo 分区 offset 0 开始读取内容作为 serialno;
FAQ14551中实现了指定 offset 来读取内容,是因为有些厂商 barcode 已经用于主板编号,出厂用的 serialno 就需要另找个位置存储(偏移64+10*4+6+6=116 十六进制0x74
另外,FAQ14551 中还有增强从 eMMC、NAND 存储器读取数据的方式,原本是按需要内容的长度读取。后来发现有些平台的只能按 block 读取,所以 FAQ14551 是按 block 读取。

其他
注意serialno中只能包含字母和数字,否则可能出现截断或其它错误。
如果写入失败,请参考FAQ12641抓取写号过程的ap log(mainlog),与 同一次的SN Writer工具log(C:\SNWriter_LOG中子目录) 一起打包提供一下; 如果确认nvram中确实写成功了,但Android系统关于界面的序列号仍然不是所写内容,请提供开机过程的uart log。


回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表