前记:
因为别人疑问和期望,而对Sim Lock发生兴趣,期望可以帮别人解Sim Lock 锁。·未有发现,不知何时会再拿起,故作整理。
问题:
对于手机Network锁——Sim Lock,指定的运营商的Sim Card有效,其它运营商的Sim Card无效。那各种手机水货是怎么解决Sim Lock问题,使得可以在大陆流行?
有一种说法为:找到手机Sim Lock写入位置,然后擦除。
条件:Android 4.0.4 定制后的framework code. 非原始code.
研究过程:
一. Sim Lock 界面
1. Sim Lock界面是一个Dialog, 由 IccDepersonalizationPanel 产生。
IccDepersonalizationPanel.java 位于 packages/apps/phone 中。
用Eclipse 观察 Sim Lock 界面,查看这个界面是谁产生的,布局如何。 通过 Hierarchy View 发现有一个id为perso_subtype_text的Text View. 对frameworks 和 Phone 的code 搜索,发现Sim Lock界面由 Sim_ndp.xml定义,由 IccDepersonalizationPanel.java 产生。
2. 对Unlock Button进行监听
//调用IccCard中supplyDepersonalization,检验输入的PIN,通过mHandler的handleMessage处理检验结果
mPhone.getIccCard().supplyDepersonalization(pin, mPersoSubtype, Message.obtain(mHandler,EVENT_ICC_DEPERSONALIZATION_RESULT));
//显示IN_PROGRESS过程信息
displayStatus(IN_PROGRESS);
3. mHandler
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == EVENT_ICC_DEPERSONALIZATION_RESULT) {