关于MTK平台SIM-ME Lock的配置方案

针对一些运营商的锁网需求,MTK平台已经对其有很好的支持。绝大多数的海外需求可以通过直接配置相关文件来完成。这里简单描述一下配置方法,不做原理分析。

相关数据结构分析:

Modem中与SML锁网配置相关的数据结构有:

Sml_context_struct:SML上下文,

cat:SML种类,目前MTK平台共支持7种锁网方式(Network Lock,Network Subset Lock,Service Provider Lock,Corporate Lock,IMSI Lock,Linked NS-SP Lock,Linked SIM-C Lock)

key:modem侧解锁密钥配置

Code_cat_n:Network Lock锁网参数配置

Code_cat_ns:Network Subset Lock锁网参数配置

……

Sml_category_meta_struct:锁网种类

State:锁定状态,枚举值:

Typedef enum{

SML_STATE_NULL,

SML_STATE_LOCK,

SML_STATE_UNLOCK,

SML_STATE_AUTOLOCK,

SML_STATE_DISABLE

} sml_state_enum;

通常,锁定该类别配置SML_STATE_LOCK(0x01),否则选择SML_STATE_UNLOCK(0x02)即可。

Retry_count:可以retry的次数。

Autolock_count:

Num:锁网参数表有效集合个数。

Sml_control_key_struct:解锁密钥

State:SML_KEY_EMPTY/SML_KEY_SET,

这里我们一致取值SML_KEY_SET(0x01),

Key:解锁密钥值。

如何完成锁网功能(配置相关值)

  • 通过代码配置:

主要涉及到的文件有:

图表 1  modem 中与锁网配置相关的文件

通过前面对SIM-ME Lock主要数据结构的分析,我们可以来简单配置一个锁网需求,如mexico Telcel需求:配置334020/00101的Network锁。

l  配置cat:

图表 2  SML配置(一)

四个参数分别为:锁定状态(SML_STATE_LOCK),retry次数(根据需求来定),autolock(目前统一为0),有效锁网个数(如果锁46000/46002,就写2即可)

l  配置key:

图表 3 SML配置(二)

参数:KEY状态(目前统一配置为SML_KEY_SET),解密密钥(目前同意配置为35574126)

l  配置锁网列表:把需求表中需要锁定的MCC/MNC值写入即可。

图表 4 SML配置(三)

对于两位的MNC,最后一位直接补充F就可以了。

至此,modem代码端的配置工作已经做完。So easy!

  • 通过meta工具来配置锁网

终端连接上meta工具之后,读取NVRAM_EF_SML_LID

图表 5 meta读取SML参数

通过工具,我们可以直接修改相关参数。主要有:

Cat[0]:state -- 0x01(锁网),0x02(不锁网);Retry_count -- 可以解锁的次数;Num -- code_cat_n中有效集合个数

Code_cat_n:配置锁网列表

在产线通过生产工具来配置锁网参数

  • 初步配置文件设计:

基于上述的分析,初步设计的锁网配置文件格式如下:

<WindSmlConf>

<WindCateIndex>0</WindCateIndex> // 锁网类别取值0-6,分别对应7种锁网方式,如锁定Network则取值0

<WindCategory>       // 根据前面的index来确定配置哪个cat

<state>0x01/0x02</state>     // 锁定状态(01锁定,02不锁)

<retry-count></retry-count>  // 解锁次数

<autolock-count>0x00</autolock-count>  // 固定为0

<num></num>   // 有效结合个数

</WindCategory>

<WindCode>

<item>XX</item>      // 详述所有的锁定列表

……

</WindCode>

</WindSmlConf>

例子:(mexico telcel的锁网需求)

<WindSmlConf>

<WindCateIndex>0</WindCateIndex>

<WindCategory>

<state>1</state>

<retry-count>5</retry-count>

<autolock-count>0</autolock-count>

<num>2</num>

</WindCategory>

<WindCode>

<item>334020</item>

<item>00101F</item>

</WindCode>

</WindSmlConf>

  • 更新配置文件设计:

由于在进行数据擦除的时候,会将所有的数据清0,这样会导致一些使用默认值的参数也变得没有意义。

经最后与生产部同仁讨论,现将所有的锁网参数全部写进配置文件中;并且为了后续扩展需要,将code_cat_n扩充到15个元素。如下:

[SIMLOCKCFG]

Magic_head = 0x000000CC // magic_head

WindCateIndex = 0 // 锁网类别取值0-6,分别对应7种锁网方式,如锁定Network则取值0

State = 1                    // 锁定状态(01锁定,02不锁)

Retry-count = 5         // 解锁次数

Autolock-count = 0   // 固定为0

Num = 4                            // 有效集合个数

Key_state = 1             // modem端密钥状态,固定为1

Key = 0x53751462FFFFFFFF // modem端密钥,固定为该值

Item1 = 334020         // 详述所有的锁定列表

……

Magic_tail= 0x26598088 // magic_tail

Simlockmodel = 1 // 1表示普通算法,2代表Yoigo解锁算法

Meta截图:

时间: 2024-12-26 18:07:39

关于MTK平台SIM-ME Lock的配置方案的相关文章

MTK 平台上查询当前使用的摄像头模组及所支持预览分辨率

1,MTK 平台如何查询当前使用的是哪颗摄像头及相关的模组信息? 在该目录下可以查到当前平台及相关项目的配置文件 ProjectConfig.mk \ALPS.JB.MP.V1_W_20120919\mediatek\config\project**\ 该文件中配置了当前项目中使用的硬件芯片等信息 //如这个是指收音机所使用的芯片信息 CUSTOM_HAL_FMRADIO = mt6628 //下面这个是指当前项目所采用的 ROM 芯片CUSTOM_HAL_EEPROM=IMX111OTP_EE

android SIM Switch功能和配置

SIM Switch feature是Smart 3G switch feature在LTE版本上发展演变而来的功能: MTK双卡双待单通版本只有一个3/4 G Protocol,所以同一时刻只有一个卡可以camp on 3/4G,默认在卡槽1: 与Smart 3G switch功能对应的,LTE版本上面,MTK有SIM Switch feature,可以在某些case下自动将3/4G protocol切给sim2用. 配置: 1.开关SIM Switch功能的配置 在ProjectConfig

MTK平台LCD驱动框架详解(一)

许多学习嵌入式的进入MTK开发平台,很多东西都会感到很陌生.在MTK平台上你可以简简单单几分钟就点亮一块屏.加上MTK快速开发的节奏,也很少有时间自己整理学习.如果不思进取,不加班加点学习.很容易就慢慢--.这也难怪有些人说MTK造就了一批懒人,毁掉了一批工程师.但其实都是基于linux开发,核心的东西都是一样一样的.我刚入行业,在迷茫之际,自己整理跟踪源码.想慢慢找回自己熟悉的感觉,掌握MTK的整体框架.也希望能给有需要的人带来些帮助.好吧!前话说到这,开始正题. 本文肯定有不少地方会出现错误

MTK平台LCD驱动框架详解(二)

前篇博客链接:http://blog.csdn.net/xuan_h/article/details/38519975 上篇博文说到了mtkfb_probe函数,本文在说mtkfb_probe函数之前.我还是打算在从应用程序的调用开始分析下具体的调用过程.这是我们理解驱动框架的核心,而并不是简单的接受. 一.驱动核心Fbmem.c(alps\kernel\drivers\video\Fbmem.c)分析 下面先摘取一部分源码,源码包括:入口函数.fb_fops.fb_fops中的open函数.用

Android 普通APP APK 如何确认系统是MTK 平台

前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net 雨季o莫忧离:http://blog.csdn.net/luckkof 正文 [Description] 普通APP APK 如何确认系统是MTK 平台 [Keyword] APP APK MTK 平台 System Property [Solution] 有一些APP 厂商,可能针对MTK 平台进行优化设计,那么普通APP 如何确认系统是MTK 平台呢? 目前在

MTK平台手机刷机工具分享

这是一款专门为MTK平台量身打造的刷机工具--下载助手_V2.2.4(Mini_AD_MTK). 软件主界面如下图所示: 简单介绍一下这个软件:       下载助手_V2.2.4(Mini_AD_MTK)从属于下载助手_V2.2.4系列烧录工具,该系列工具还包含有Whole_AD.Mini_AD_Coolpad.Mini_AD_EDL.Mini_AD_Fastboot等适用于特定范围的烧录软件.其中Mini_AD_MTK是专门为MTK平台手机量身打造的便捷.安全.高速的烧录工具. 大家可以在这

展讯7731平台驱动调试总结-驱动配置部分

转载至:http://blog.csdn.net/bmw7bmw7/article/details/46126223 展讯7731平台驱动调试总结-驱动配置部分 1. 关键配置文件路径 1). 项目板级配置:idh.code/device/sprd/scx35_sp7731geaplus_pad_qhd/文件夹内各文件 ⑴.BoardConfig.mk---板级宏配置文件.包括设置该板(项目)所使用的uboot/kerenl全局配置宏文件,摄像头接口类型.分辨率等参数,所使用的重力加速度.光线传

微信公众平台开发视频教程-02-基本配置/ 填写服务器配置

前言 微信公众平台开发,是服务器和服务器之间的通讯,为了完成两个不同系统的之间的通讯,则需要进行一些验证,所以我们在公众平台后台测试账号哪里配置我们这边的接口信息,在进行着一些开发之前,需要我们先做一些准备工作 微信是服务器和服务器之间的交换,所以我们需要一台服务器(虚拟空间,VPS都可以)搭建一个web测试站,需要注册一个域名(80端口的)可以是子域名 比如weixin.bamn.cn 必须是80端口,否则无法使用 配置域名 80端口 我还需要为填写的URL进行一些操作如果你的接口是PHP的可

andorid之摄像头驱动流程--MTK平台

原文地址:andorid之摄像头驱动流程--MTK平台 作者:守候心田 camera成像原理: 景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过DSP加工出来,然后在通过IO接口传输到CPU处理.  由于摄像头满足总线.驱动.设备模型,那么看看andorid是怎么去实现摄像头的流程. 1.  注册Camera的platform平台设备 点击(此处)折叠或打开 CAMERA_HW_i2C_init platform_driver_registe