|
发表于 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。
|
|
|
|
|
|
|
登录或注册
|