微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 修改SIM ME lock解锁码与IMEI号保持对应关系

修改SIM ME lock解锁码与IMEI号保持对应关系

时间:10-02 整理:3721RD 点击:
[DESCRIPTION]
有运营商需求,SIM ME LOCK的解锁码由手机的IMEI根据一个算法动态计算而来.
[SOLUTION]
默认SIM ME LOCK的解锁码是由Modem 配置固定的。
无法根据IMEI来动态设置modem的密码,那么这个部分就需要客制化。
建议客制化的做法如下:
Modem 端原始密码继续按照文档SIM_ME_Lock_User_Guide.doc进行锁网配置。
AP 端用户密码需要用IMEI 经过一个算法计算后得到一个新密码。
AP 端用户输入这个新密码后,再通过算法解密,判断密码是否有效,有效则用原始密码发给Modem进行解锁。
相当于AP 端解锁密码界面处理多了一步算法处理。
AP端处理密码的部分:
1. 这个和IMEI 有关系的解密部分,还是要贵司自行完成
a. 如何获取对应卡槽的IMEI,请参考FAQ02913 如何获取IMEI号
b. 解密的code可以添加在如下位置
L 版本:
alps\php?mod=tag&id=6090" target="_blank" class="relatedlink">Frameworks\base\packages\keyguard\src\com\mediatek\keyguard\telephony
\KeyguardSimPinPukMeView.java
CheckSimMe 就是对SIM ME Lock 的情况进行处理。
run()
mResult =
ITelephonyEx.Stub.asInterface(ServiceManager.getService("phoneEx"))
.supplyNetworkDepersonalization(subId, mPasswd);
其中的mPasswd 就是从界面上输入的数字
JB3.MP以及之后 L之前版本
alps\frameworks\base\policy\src\com\android\internal\policy\impl\keyguard\
KeyguardSimPinPukView.java
CheckSimMe 就是对SIM ME Lock 的情况进行处理。
run()
mResult =
ITelephonyEx.Stub.asInterface(ServiceManager.checkService("phoneEx")).supp
lyNetworkDepersonalization(
mPasswd, mSimId);
其中的mPasswd 就是从界面上输入的数字
JB3.MP之前版本
alps\packages\apps\Phone\src\com\android\phone\UnlockSIMLock.java
public void onCLIck(View v) {
单卡
phone.getIccCard().supplyNetworkDepersonalization(
mPwdDisplay.getText().toString(),callback);
双卡
mGeminiPhone.getIccCardGemini(Phone.GEMINI_SIM_1).supplyNetworkDepersonali
zation(mPwdDisplay.getText().toString(),callback);
mGeminiPhone.getIccCardGemini(Phone.GEMINI_SIM_2).supplyNetworkDepersonali
zation(mPwdDisplay.getText().toString(),callback);
其中的mPwdDisplay.getText().toString()就是从界面上输入的数字
解密的code 请在执行supplyNetworkDepersonalization() 之前进行
解密完之后确认密码正确,则将原始密码作为参数mPasswd 传入
2. 另外对输入的数字有一个判断函数,目前只允许输入8个,而贵司输入IMEI计算后的密码如果超过8个数字则不符合
spec要求
请参考如下FAQ12171 [SEC]锁网密码允许输入超过8个数字

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top