• [FAQ14551] 用 SN writer tool 写 Serial Num, 使移动设备系统关于界面 -> 序列号 显示所写内容.


    [DESCRIPTION]
    用 SN writer tool 写 Serial Num, 使移动设备系统关于界面 -> 序列号 显示所写内容.

    [SOLUTION]

    1. SN Writer Tool 工具端
      1.1 用 v1.1632.00 及其之后的版本
      1.2. SN Writer Tool 先关闭,修改程序目录下 SN_setup.ini 文件
      Enable Serial No = True
      Serial Num From IMEI = False

      1.3 打开 SN Writer Tool,进入 “System Config” 配置界面,勾选左上方的 “Serial No.”
      1.4 返回主界面点击 “Start” ,在号码输入界面中 “SerialNo” 中输入序列号
      注意:SerialNo 只能包含英文字母或数字

    2. 移动设备端
      2.1. 确认 proinfo 分区名称
      早期的 MBR 分区格式设备,proinfo分区的名字是"PRO_INFO", 请通过 Scatter File 进行确认。
      后续代码中涉及"proinfo"字符串判断的地方请对应修改。

      2.2. /app/mt_boot/mt_boot.c 打开宏定义
      打开默认关闭的 /* #define SERIAL_NUM_FROM_BARCODE */
      -> #define SERIAL_NUM_FROM_BARCODE

      2.3. /app/mt_boot/mt_boot.c 中 read_product_info 函数所做修改已绿色文字显示。

    static inline int read_product_info(char *buf)
    {
    #define PROINFO_OFFSET 116 // barcode:64 + imei:40 + bt:6 + wifi:6
        int tmp = 0;
        char * buf_blk = (char *)0;
    
        if (!buf) return 0;
    
        buf_blk = malloc(BLK_SIZE);
        if (!buf_blk)
        {
            dprintf(CRITICAL, "[error] alloc proinfo buffer fail.\n");
            return 0;
        }
        memset(buf_blk, 0, BLK_SIZE);
    
        dprintf(CRITICAL, "begin read proinfo\n");
        tmp = mboot_recovery_load_raw_part("proinfo", buf_blk, BLK_SIZE);
        if (tmp != BLK_SIZE)
        {
            dprintf(CRITICAL, "[error] read proinfo fail, only read size %d, block size %d.\n", tmp, BLK_SIZE);
            free(buf_blk);
            return 0;
        }
        memcpy(buf, buf_blk + PROINFO_OFFSET, SN_BUF_LEN);
        buf[SN_BUF_LEN] = '\0';
        dprintf(CRITICAL, "get serialno from proinfo: \"%s\"\n", buf);
        free(buf_blk);
    
        for (tmp = 0; tmp < SN_BUF_LEN; tmp++) {
            if ( (buf[tmp] == 0 || buf[tmp] == 0x20) && tmp > 0) {
                break;
            } else if ( !isalpha(buf[tmp]) && !isdigit(buf[tmp]))
                return 0;
        }
        return tmp;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    1. 编译LK,烧入机器,用 SN Writer tool写入 serial num。
  • 相关阅读:
    微信公众号授权成功重定向后点击返回最上一层时显示空白页
    Springboot 配置线程池创建线程和配置 @Async 异步操作线程池
    JAVA算法练习(10):绳圈
    【算法】算法题-20231117
    Python光速入门 - Flask轻量级框架
    vue、vuex状态管理
    一文总结现代 C++ 中的初始化
    GPT总设计师:大型语言模型的未来
    linux驱动工作原理
    [航海协会]逆天题
  • 原文地址:https://blog.csdn.net/yesdehua/article/details/133140385