开发初期IMEI号的写入

Posted 遇逆境、处之泰然

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发初期IMEI号的写入相关的知识,希望对你有一定的参考价值。

1. 为什么要写入IMEI

项目初期,板子中可能不包含IMEI号,但是又需要读取IMEI来验证某些功能。

2. 如何修改

通过修改NV550,其中ue_imei[0]表示的序列号的长度,这一位设置错误会导致设置的nv不生效,nv550如下图所示

 

ue_imei[1]~ue_imei[8]为IMEI序列号,写入的值是反的,举例如下:

IMEI:1 23 45 67 89 87 65 43

写入的值为:1A 32 54 76 98 78 56 34

其中第一个值很特殊,A是可以用其他数字代替,在QMI消息读取IMEI号时,会将第一位排除,见下面的代码:

modem_proc\\datamodem\\interface\\qmidata\\src\\ds_qmi_dms.c

static qmi_error_type_v01 qmi_dmsi_get_device_serial_numbers_ext
(
  boolean                   is_encrypted,
  void*                     resp_msg,
  qmi_dmsi_client_info_type *clnt_info
  
)
{
...
      /* Skip the first byte because it is just the ID */
      memscpy( (uint8*)dev_serial_num_info, 
               (NV_UE_IMEI_SIZE-1)*2-1,
               imei_ascii + 1, 
               (NV_UE_IMEI_SIZE-1)*2-1 );
...

3. 验证是否写入成功 

利用AT+CGSN命令,来查询IMEI,若出现下面结果,则代表IMEI写入成功。

 

以上是关于开发初期IMEI号的写入的主要内容,如果未能解决你的问题,请参考以下文章

手机串号是如何运行的技术原理

如何将这个 Objective-C 代码片段写入 Swift?

有没有人懂破解一台设备只能注册一个号的方法,换了IP还是不行

如何在 PhoneGap 中获取 IMEI 号码?

手机串号开发思路运行原理解剖

从 Android Studio 中的片段将数据写入 Firebase