如何在MTK6757 Android N上禁用SIM卡

时间:2024-04-08 22:35:37

如何在MTK6757 AndroidN上禁用SIM卡

通过在设置中打开和关闭SIM卡开关,抓取系统log,抓取到关机时有关闭SIM卡的操作
如何在MTK6757 Android N上禁用SIM卡
然后找到packages\services\Telephony\src\com\android\phone\PhoneInterfaceManager.java
找到打印log的函数
如何在MTK6757 Android N上禁用SIM卡
然后在代码中搜索是哪里调用了shutdownMobileRadios()函数,找到在frameworks\base\services\core\java\com\android\server\power\ShutdownThread.java中有调用,
找到调用的函数shutdownRadios(final int timeout),调用代码如下:
final ITelephony phone =
ITelephony.Stub.asInterface(ServiceManager.checkService(“phone”));
boolean radioOff;
try {
radioOff = phone == null || !phone.needMobileRadioShutdown();
if (!radioOff) {
if (mShutdownFlow != IPO_SHUTDOWN_FLOW) {
//Log.w(TAG, “Turning off cellular radios…”);
phone.shutdownMobileRadios();
}
}
} catch (RemoteException ex) {
//Log.e(TAG, “RemoteException during radio shutdown”, ex);
radioOff = true;
}
就是在这里调用这个函数关闭了SIM卡,那接下来就是找一个地方来调用这段代码了,因为ShutdownThread.java在power路径下,于是就想到在开机完后就直接调用,于是就在power下找开机完成的地方,在PowerManagerService.java中搜索Completed,搜到了如何在MTK6757 Android N上禁用SIM卡
找到mBootCompleted = true的地方,于是找到了onBootPhase(int phase)函数,
如何在MTK6757 Android N上禁用SIM卡
至此大功告成,在设置里查看SIM开关,开关处于关闭状态,不能被打开,SIM信号栏显示是空信号。