三大部分

1.在NVram里面设置记录IMEI 的两个数据,一个是 手动写的816 ,831,一个记录上次工具写的866,851,另外NVram里面还有个工具写的占用了64 -72  和74-82 这个位置。 一会,我们要读取这三个数据进行IMEI 进行比较。

2.在3646633 里面的GPRS 里面写 IMEI的地方进行 存储 手动写的816 ,831 的IMEI号。

3.在设置里面接收广播可以是开机广播,并且对IMEI 进行处理。

遗留问题 手写IMEI 号之后,需要过个2分钟 才可以在 *#06# 里面查到 --规避办法 ,直接查询 816 ,831 的号

5.1系统代码上处理的

1.\alps\frameworks\base\core\java\android\os\NvRAMPROINFOUtils.java

package android.os;/** pro_info cyrus start */
public final class NvRAMPROINFOUtils {public static final String TAG = "NvRAMPROINFOUtils";/*** key: 104-->1024 */public static final int key_logo = 104;public static final int key_storagetype = 105;public static final int key_bluetooth = 106;public static final int key_wifi = 107;public static final int key_ramtype = 108;public static final int key_wifissid = 109;//add  by wst start  public static final int key_fontcamera_value = 668;public static final int key_backcamera_value = 669;//add  by wst endpublic static final int key_fingerprint_keyguard = 808;public static final int ADDRESS_OFFSET = 0;public static final int   ADDRESS_IMEI = 65;public static final int   ADDRESS_IMEI_2 = 81;public static final int key_save_imei1_1 = 816;public static final int key_save_imei1_2 = 817;public static final int key_save_imei1_3 = 818;public static final int key_save_imei1_4 = 819;public static final int key_save_imei1_5 = 820;public static final int key_save_imei1_6 = 821;public static final int key_save_imei1_7 = 822;public static final int key_save_imei1_8 = 823;public static final int key_save_imei1_9 = 824;public static final int key_save_imei1_10 = 825;public static final int key_save_imei1_11 = 826;public static final int key_save_imei1_12 = 827;public static final int key_save_imei1_13= 828;public static final int key_save_imei1_14 = 829;public static final int key_save_imei1_15 = 830;public static final int key_save_imei2_1 = 831;public static final int key_save_imei2_2 = 832;public static final int key_save_imei2_3 = 833;public static final int key_save_imei2_4 = 834;public static final int key_save_imei2_5 = 835;public static final int key_save_imei2_6 = 836;public static final int key_save_imei2_7 = 837;public static final int key_save_imei2_8 = 838;public static final int key_save_imei2_9 = 839;public static final int key_save_imei2_10 = 840;public static final int key_save_imei2_11 = 841;public static final int key_save_imei2_12 = 842;public static final int key_save_imei2_13= 843;public static final int key_save_imei2_14 = 844;public static final int key_save_imei2_15 = 845;public static final int imie_flag = 847;public static final int key_imei1_1 = 866;public static final int key_imei1_2 = 867;public static final int key_imei1_3 = 868;public static final int key_imei1_4 = 869;public static final int key_imei1_5 = 870;public static final int key_imei1_6 = 871;public static final int key_imei1_7 = 872;public static final int key_imei1_8 = 873;public static final int key_imei1_9 = 874;public static final int key_imei1_10 = 875;public static final int key_imei1_11 = 876;public static final int key_imei1_12 = 877;public static final int key_imei1_13= 878;public static final int key_imei1_14 = 879;public static final int key_imei1_15 = 880;public static final int key_imei2_1 = 881;public static final int key_imei2_2 = 882;public static final int key_imei2_3 = 883;public static final int key_imei2_4 = 884;public static final int key_imei2_5 = 885;public static final int key_imei2_6 = 886;public static final int key_imei2_7 = 887;public static final int key_imei2_8 = 888;public static final int key_imei2_9 = 889;public static final int key_imei2_10 = 890;public static final int key_imei2_11 = 891;public static final int key_imei2_12 = 892;public static final int key_imei2_13= 893;public static final int key_imei2_14 = 894;public static final int key_imei2_15 = 895;public static final int key_imei1_front = 896;public static final int key_imei1_back = 897;public static final int key_imei2_front = 898;public static final int key_imei2_back = 899 ;//add by yanzhiwei start for sale message support/*KST_SYSTEM_SALE_MESSEGE_SUPPORTpublic static final int key_sale = 918;public static final int key_sms_dialog_show = 1010;KST_SYSTEM_SALE_MESSEGE_SUPPORT*///add by yanzhiwei end for sale message support public static final int read(int key){int result = 0;try{result = android.os.NvRAMAgent.Stub.asInterface (android.os.ServiceManager.getService("NvRAMAgent")).readFileByName("/data/nvram/APCFG/APRDEB/PRODUCT_INFO")[key];}catch(Exception e){android.util.Log.i(TAG, "logstart:\n" + e.getMessage());}return result;}public static final boolean write(int key, int value){int result = 0;if(key == key_logo){if(!android.os.KSTHandleCharsCheck.handleChars()){return false;}}try{android.os.NvRAMAgent agent = android.os.NvRAMAgent.Stub.asInterface (android.os.ServiceManager.getService("NvRAMAgent"));byte[] buff = agent.readFileByName("/data/nvram/APCFG/APRDEB/PRODUCT_INFO");buff[key] = (byte) value;result = agent.writeFileByName("/data/nvram/APCFG/APRDEB/PRODUCT_INFO",buff);}catch(Exception e){android.util.Log.i(TAG, "logstart:\n" + e.getMessage());}return result == 1;}}

2.alps\packages\apps\Settings\src\com\android\settings\MyReceiver.java

public class MyReceiver extends BroadcastReceiver {private static final int EVENT_WRITE_IMEI = 7;private static final int EVENT_WRITE_IMEI2 = 8;public int key_imei1_1 =  android.os.NvRAMPROINFOUtils.key_imei1_1;public int key_save_imei1_1 =  android.os.NvRAMPROINFOUtils.key_save_imei1_1;public int key_imei2_1 =  android.os.NvRAMPROINFOUtils.key_imei2_1;public int key_save_imei2_1 =  android.os.NvRAMPROINFOUtils.key_save_imei2_1;public int ADDRESS_IMEI =  android.os.NvRAMPROINFOUtils.ADDRESS_IMEI;public int ADDRESS_IMEI_2 =  android.os.NvRAMPROINFOUtils.ADDRESS_IMEI_2;private Phone mPhone = null;private final boolean KST_SYSTEM_SMARTWAKE_DEFAULT_ON = false;@Overridepublic void onReceive(Context context, Intent intent) {if(intent.getAction().equals("wzsd.intent.action.WRITE_IMIE") ){setImei(context) ; android.util.Log.e("odlimie","- getAction = " + intent.getAction() );}}private void setImei(Context context) {android.util.Log.e("odlimie"," MyReceiver setImei() ----" );      Phone  mPhone2 = PhoneFactory.getPhone(PhoneConstants.SIM_ID_2);      String nv_imei = readIMEIBySIM(true) ; //phone imei 1 String nv_imei2 = readIMEIBySIM(false) ; //phone imei 2String imei = TelephonyManager.getDefault().getDeviceId();  //get imei 1 String imei2 = mPhone2.getDeviceId(); //get imei 2 String tool_imei = readToolIMEIBySIM(true) ; //tool imeiString tool_imei2 = readToolIMEIBySIM(false) ;//tool  imei 2String save_imie1=readSaveIMEIBySIM(true);//tool last  imei 1String save_imie2=readSaveIMEIBySIM(false);//tool last imei 2String imeiString[] = { "AT+EGMR=1,", "" };android.util.Log.e("odlimie"," MyReceiver  nv_imei  == " + nv_imei );android.util.Log.e("odlimie"," MyReceiver  nv_imei2  == " + nv_imei2 );android.util.Log.e("odlimie"," MyReceiver  imei  == " + imei );android.util.Log.e("odlimie"," MyReceiver  imei22  == " + imei2);android.util.Log.e("odlimie"," MyReceiver  save_imie1  == " + save_imie1 );android.util.Log.e("odlimie"," MyReceiver  save_imie2  == " + save_imie2 );android.util.Log.e("odlimie"," MyReceiver  tool_imei  == " + tool_imei );android.util.Log.e("odlimie"," MyReceiver  tool_imei2  == " + tool_imei2 );//   int flag = android.os.NvRAMPROINFOUtils.read(847);//   android.util.Log.e("odlimie","if  flag = " + flag );if(!TextUtils.isEmpty(nv_imei)){android.util.Log.e("qxp"," MyReceiver 000 158 write imei1 ---" );if("0000000000000000".equals(tool_imei) &&"0000000000000000".equals(tool_imei2) ) {if(!TextUtils.isEmpty(nv_imei)){imeiString[0] = "AT+EGMR=1,7,\"" + nv_imei+ "\"";mPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1) ; mPhone.invokeOemRilRequestStrings(imeiString, mResponseHander.obtainMessage(EVENT_WRITE_IMEI));android.util.Log.e("qxp"," MyReceiver 000 write imei1 ---" );SubscriptionManager.from(context).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_1)[0]);//modify by tangxiaoyong beginPhone  mPhone1 = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1);String imei1 = mPhone1.getDeviceId();  android.util.Log.e("qxp"," MyReceiver get imei1 ---"+imei1 );}if(!TextUtils.isEmpty(nv_imei2)){imeiString[0] = "AT+EGMR=1,10,\"" + nv_imei2 + "\"";mPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_2) ; android.util.Log.e("qxp"," MyReceiver000 mPhone =" + mPhone );mPhone.invokeOemRilRequestStrings(imeiString, mResponseHander.obtainMessage(EVENT_WRITE_IMEI2));android.util.Log.e("qxp"," MyReceiver00 write imei2 ---" );SubscriptionManager.from(context).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_2)[0]);//modify by tangxiaoyong beginimei2 = mPhone2.getDeviceId();android.util.Log.e("qxp"," MyReceiver00 get imei2 ---"+imei2 );  }}}if( !(save_imie1.equals(tool_imei)) && !(save_imie2.equals(tool_imei2))){saveIMEIByphone(tool_imei2,false);saveIMEIByphone(tool_imei,true);saveIMEIByhand(tool_imei,true);saveIMEIByhand(tool_imei2,false);}else{imeiString[0] = "AT+EGMR=1,7,\"" + nv_imei+ "\"";mPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1); mPhone.invokeOemRilRequestStrings(imeiString, mResponseHander.obtainMessage(EVENT_WRITE_IMEI));android.util.Log.e("odlimie"," MyReceiver write imei1 ---" );SubscriptionManager.from(context).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_1)[0]);Phone  mPhone1 = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1);String imei1 = mPhone1.getDeviceId();android.util.Log.e("odlimie"," MyReceiver get imei1 ---"+imei1 );imeiString[0] = "AT+EGMR=1,10,\""+ nv_imei2 + "\"";mPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_2);mPhone.invokeOemRilRequestStrings(imeiString, mResponseHander.obtainMessage(EVENT_WRITE_IMEI2));android.util.Log.e("odlimie"," MyReceiver write imei2 ---" );SubscriptionManager.from(context).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_2)[0]);imei2 = mPhone2.getDeviceId();android.util.Log.e("odlimie"," MyReceiver get imei2 ---"+imei2 );//android.os.NvRAMPROINFOUtils.write(847,1);//  android.util.Log.e("odlimie","else flag = " + flag  );android.util.Log.e("odlimie"," MyReceiver 171 saveimi1 not equals  imei1 ---"+imei );}if(!TextUtils.isEmpty(nv_imei)){if(nv_imei.equals(imei)){ android.util.Log.e("odlimie"," MyReceiver write nv_imei == imei" );}else {if(TextUtils.isEmpty(imei)){android.util.Log.e("odlimie"," MyReceiver  write by hand reset factory" ); //String imeiString[] = { "AT+EGMR=1,", "" };if(!TextUtils.isEmpty(nv_imei)){imeiString[0] = "AT+EGMR=1,7,\"" + nv_imei+ "\"";mPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1) ; mPhone.invokeOemRilRequestStrings(imeiString, mResponseHander.obtainMessage(EVENT_WRITE_IMEI));android.util.Log.e("odlimie"," MyReceiver write imei1 ---" );SubscriptionManager.from(context).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_1)[0]);//modify by tangxiaoyong beginPhone  mPhone1 = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1);String imei1 = mPhone1.getDeviceId();    android.util.Log.e("odlimie"," MyReceiver get imei1 ---"+imei1 );}if(!TextUtils.isEmpty(nv_imei2)){imeiString[0] = "AT+EGMR=1,10,\"" + nv_imei2 + "\"";mPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_2) ; android.util.Log.e("odlimie"," MyReceiver mPhone =" + mPhone );mPhone.invokeOemRilRequestStrings(imeiString, mResponseHander.obtainMessage(EVENT_WRITE_IMEI2));android.util.Log.e("odlimie"," MyReceiver write imei2 ---" );SubscriptionManager.from(context).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_2)[0]);//modify by tangxiaoyong beginimei2 = mPhone2.getDeviceId();android.util.Log.e("odlimie"," MyReceiver get imei2 ---"+imei2 ); }}}  }}private String readIMEIBySIM(boolean isSIM1) {android.util.Log.e("odlimie","readIMEIBySIM  isSIM1  = " + isSIM1 );String result = "" ; if(isSIM1){StringBuffer sb = new StringBuffer() ; key_imei1_1 = 866 ;for(int i = 0 ; i < 15 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_imei1_1);sb.append(a) ; key_imei1_1 += 1 ; }result =  sb.toString() ; }else {StringBuffer sb = new StringBuffer() ; key_imei2_1 = 881 ;for(int i = 0 ; i < 15 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_imei2_1);sb.append(a) ; key_imei2_1 += 1 ; }result =  sb.toString() ; }//    android.util.Log.e("odlimie","readIMEIBySIM  result  = " + result );if(result.equals("000000000000000")){result = "" ; }return result ;  }private String readToolIMEIBySIM(boolean isSIM1) {android.util.Log.e("odlimie","readToolIMEIBySIM ---  isSIM1  = " + isSIM1 );String result = "" ; if(isSIM1){StringBuffer sb = new StringBuffer() ; key_save_imei1_1 = 64 ;for(int i = 0 ; i < 8 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_save_imei1_1);// String h = Integer.toHexString(a); // 68// String h = IntToHex(a); // 68String h = Integer.toHexString((a & 0x000000FF) | 0xFFFFFF00).substring(6);android.util.Log.e("odlimie","readToolIMEIBySIM3  h = " + h );String b=h.substring(0,1);String c=h.substring(1,h.length());if(!("f".equals(c))){sb.append(c); }if(!("f".equals(b))){sb.append(b); }             key_save_imei1_1 += 1 ; }result =  sb.toString() ; android.util.Log.e("odlimie","readToolIMEIBySIM  result  = " + result );}else {StringBuffer sb = new StringBuffer() ; key_save_imei2_1 = 74 ;for(int i = 0 ; i < 8 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_save_imei2_1);// String h = Integer.toHexString(a); // 68String h = Integer.toHexString((a & 0x000000FF) | 0xFFFFFF00).substring(6);// String h = IntToHex(a); // 68String b=h.substring(0,1);String c=h.substring(1,h.length());android.util.Log.e("odlimie","readToolIMEIBySIM  b = " + b );android.util.Log.e("odlimie","readToolIMEIBySIM  c = " + c );if(!("f".equals(c))){sb.append(c); }if(!("f".equals(b))){sb.append(b); }           key_save_imei2_1 += 1 ; }result =  sb.toString() ; android.util.Log.e("odlimie","readToolIMEIBySIM4  result  = " + result );}return result ; }    private String readSaveIMEIBySIM(boolean isSIM1) {//   android.util.Log.e("odlimie","readIMEIBySIM  isSIM1  = " + isSIM1 );String result = "" ; if(isSIM1){StringBuffer sb = new StringBuffer() ; key_save_imei1_1 = 816 ;for(int i = 0 ; i < 15 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_save_imei1_1);sb.append(a) ; key_save_imei1_1 += 1 ; }result =  sb.toString() ; }else {StringBuffer sb = new StringBuffer() ; key_save_imei2_1 = 831 ;for(int i = 0 ; i < 15 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_save_imei2_1);sb.append(a) ; key_save_imei2_1 += 1 ; }result =  sb.toString() ; }//    android.util.Log.e("odlimie","readIMEIBySIM  result  = " + result );if(result.equals("000000000000000")){result = "" ; }return result ;  }private void saveIMEIByphone(String sss,boolean isSIM1) {android.util.Log.e("odlimie","saveIMEIByphone sss = " + sss + ", isSIM1 = " + isSIM1 );if (!TextUtils.isEmpty(sss) && sss.length() == 15 ) {String [] ch = sss.split("")  ;if(isSIM1){key_save_imei1_1 = 816 ;for(int i = 1 ; i <= 15 ; i++){int a = Integer.valueOf(ch[i]) ; //  android.util.Log.e("odlimie","saveIMEIByphone = " + a );android.os.NvRAMPROINFOUtils.write(key_save_imei1_1, a);key_save_imei1_1 += 1 ; }//    android.util.Log.e("odlimie","saveIMEIByphone  = " + readSaveIMEIBySIM(true) + ", isSIM1 = " + isSIM1 );}else {key_save_imei2_1 = 831 ;for(int i = 1 ; i <= 15 ; i++){int a = Integer.valueOf(ch[i]) ; //        android.util.Log.e("odlimie","saveIMEIByphone = " + a );android.os.NvRAMPROINFOUtils.write(key_save_imei2_1, a);key_save_imei2_1 += 1 ; }//      android.util.Log.e("odlimie","saveIMEIByphone2   = " + readSaveIMEIBySIM(false) + ", isSIM2 = " + isSIM1 );}}}private void saveIMEIByhand(String sss,boolean isSIM1) {android.util.Log.e("odlimie","saveIMEIByhand sss = " + sss + ", isSIM1 = " + isSIM1 );if (!TextUtils.isEmpty(sss) && sss.length() == 15 ) {String [] ch = sss.split("")  ;if(isSIM1){key_imei1_1 = 866 ;for(int i = 1 ; i <= 15 ; i++){int a = Integer.valueOf(ch[i]) ; //   android.util.Log.e("odlimie","saveIMEIByhand = " + a );android.os.NvRAMPROINFOUtils.write(key_imei1_1, a);key_imei1_1 += 1 ; }//     android.util.Log.e("odlimie","saveIMEIByhand readIMEIBySIM = " + readIMEIBySIM(true) + ", isSIM1 = " + isSIM1 );}else {key_imei2_1 = 881 ;for(int i = 1 ; i <= 15 ; i++){int a = Integer.valueOf(ch[i]) ; //       android.util.Log.e("odlimie","saveIMEIByhand = " + a );android.os.NvRAMPROINFOUtils.write(key_imei2_1, a);key_imei2_1 += 1 ; }//  android.util.Log.e("odlimie","saveIMEIByhand readIMEIBySIM = " + readIMEIBySIM(false) + ", isSIM1 = " + isSIM1 );}}}private Handler mResponseHander = new Handler() {@Overridepublic void handleMessage(Message msg) {AsyncResult ar;switch (msg.what) {case EVENT_WRITE_IMEI:ar = (AsyncResult) msg.obj;if (ar.exception == null) {android.util.Log.e("odlimie","The IMEI is writen successfully.");} else {android.util.Log.e("odlimie","Fail to write IMEI due to radio unavailable or something else.");}break;case EVENT_WRITE_IMEI2:ar = (AsyncResult) msg.obj;if (ar.exception == null) {android.util.Log.e("odlimie","The IMEI2 is writen successfully.");} else {android.util.Log.e("odlimie","Fail to write IMEI2 due to radio unavailable or something else.");}break;}}};

3. \alps\vendor\mediatek\proprietary\packages\apps\EngineerMode\src\com\mediatek\engineermode\GPRS.java

private String readIMEIBySIM(boolean isSIM1) {String result = "" ; if(isSIM1){StringBuffer sb = new StringBuffer() ; key_imei1_1 = 866 ;for(int i = 0 ; i < 15 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_imei1_1);sb.append(a) ; key_imei1_1 += 1 ; }result =  sb.toString() ; }else {StringBuffer sb = new StringBuffer() ; key_imei2_1 = 881 ;for(int i = 0 ; i < 15 ; i++){int a = android.os.NvRAMPROINFOUtils.read(key_imei2_1);sb.append(a) ; key_imei2_1 += 1 ; }result =  sb.toString() ; }android.util.Log.e("111","readIMEIBySIM  0-- ---result = " + result + ", isSIM1 = " + isSIM1 );return result ; }private void saveIMEIByhand(String sss,boolean isSIM1) {android.util.Log.e("11","saveIMEIByhand2 sss = " + sss + ", isSIM1 = " + isSIM1 );if (!TextUtils.isEmpty(sss) && sss.length() == 15) {String [] ch = sss.split("")  ;if(isSIM1){key_imei1_1 = 866 ;for(int i = 1 ; i <= 15 ; i++){int a = Integer.valueOf(ch[i]) ; android.util.Log.e("111","saveIMEIByhand3 = " + a );android.os.NvRAMPROINFOUtils.write(key_imei1_1, a);key_imei1_1 += 1 ; }android.util.Log.e("qxp","---saveIMEIByhand4 sss readIMEIBySIM = " + readIMEIBySIM(true) + ", isSIM1 = " + isSIM1 );}else {key_imei2_1 = 881 ;for(int i = 1 ; i <= 15 ; i++){int a = Integer.valueOf(ch[i]) ; android.util.Log.e("111","saveIMEIByhand = " + a );android.os.NvRAMPROINFOUtils.write(key_imei2_1, a);key_imei2_1 += 1 ; }android.util.Log.e("111","---saveIMEIByhand5 sss readIMEIBySIM = " + readIMEIBySIM(false) + ", isSIM1 = " + isSIM1 );}}}String editimei1 ;String editimei2;private int mSimId = PhoneConstants.SIM_ID_1; //add by @Overridepublic void onClick(View arg0) {Log.v(LOG_TAG, "onClick:" + arg0.getId());Log.v(LOG_TAG, "onClick: mPhone = " + mPhone + " mContext = " + mContext);if (arg0.getId() == mBtnImei.getId()) {String imeiString[] = { "AT+EGMR=1,", "" };if (MTK_GEMINI_SUPPORT) {//modify by tangxiaoyong begin//int simId = getDefaultDataPhoneId();if (mSimId == PhoneConstants.SIM_ID_1) {imeiString[0] = "AT+EGMR=1,7,\"" + mEditImeiValue.getText()+ "\"";saveIMEIByhand(mEditImeiValue.getText().toString(),true) ;    SubscriptionManager.from(mContext).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_1)[0]);//modify by beginPhone   mPhone1 = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1);String imei1 = mPhone1.getDeviceId();  android.util.Log.e("111"," MyReceiver ggg 111 get imei1 ---"+imei1 );//modify by end} else if (mSimId == PhoneConstants.SIM_ID_2) {imeiString[0] = "AT+EGMR=1,10,\""+ mEditImeiValue.getText() + "\"";saveIMEIByhand(mEditImeiValue.getText().toString(),false) ;SubscriptionManager.from(mContext).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_1)[0]);//modify by beginPhone   mPhone2 = PhoneFactory.getPhone(PhoneConstants.SIM_ID_2);String imei2 = mPhone2.getDeviceId();   android.util.Log.e("111"," MyReceiver ggggg get imei2 ---"+imei2 );//modify by tangxiaoyong end    }android.os.NvRAMPROINFOUtils.write(847,0);} else {imeiString[0] = "AT+EGMR=1,7,\"" + mEditImeiValue.getText()+ "\"";}Log.v(LOG_TAG, "IMEI String:" + imeiString[0]);mPhone.invokeOemRilRequestStrings(imeiString, mResponseHander.obtainMessage(EVENT_WRITE_IMEI));}if (arg0.getId() == mBtnSim1.getId()) {if (MTK_GEMINI_SUPPORT) {Log.v(LOG_TAG, "mContext = " + mContext);SubscriptionManager.from(mContext).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_1)[0]);//modify by tangxiaoyong beginmPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_1);mSimId = PhoneConstants.SIM_ID_1;}else{mPhone = PhoneFactory.getPhone(getDefaultDataPhoneId());}//showDefaultSim();//modify by endString imei = mPhone.getDeviceId();mEditImeiValue.setText(imei);}if (arg0.getId() == mBtnSim2.getId()) {SubscriptionManager.from(mContext).setDefaultDataSubId(SubscriptionManager.getSubId(PhoneConstants.SIM_ID_2)[0]);//modify by beginmPhone = PhoneFactory.getPhone(PhoneConstants.SIM_ID_2);mSimId = PhoneConstants.SIM_ID_2;Log.v(LOG_TAG, "SIM 2");//showDefaultSim();//modify by tangxiaoyong endString imei = mPhone.getDeviceId();mEditImeiValue.setText(imei);}if (arg0.getId() == mBtnAttached.getId()) {String attachedAT[] = { "AT+CGATT=1", "" };mPhone.invokeOemRilRequestStrings(attachedAT, mResponseHander.obtainMessage(EVENT_GPRS_ATTACHED));}

MTK平台手动修改IMEI号,恢复出厂设置后无法保留最新修改的IMEI号,要求做成保留的相关推荐

  1. android系统恢复出厂设置和升级界面的修改方法

    最近需要定制恢复出厂设置和升级的画面,将原生的绿色机器人改成其他的图片. 基于的android版本是4.4.4,改起来挺简单的,但是遇到了几个坑,特地记录下. android 4.4.4的升级机器人图 ...

  2. bios设置对计算机系统的影响吗,bios如何恢复出厂设置_bios恢复出厂设置后对操作系统有影响吗...

    BIOS概况 BIOS是基本输入输出系统的简称,BIOS是固化在主板ROM芯片上的程序,电脑启动时会第一个加载BIOS设置信息,如果BIOS设置被篡改或者设置不当,就会导致电脑无法开机,很多时候可以通 ...

  3. 恢复出厂设置后HOME键失效问题

    在将系统修改了多处后,今天恢复了下出厂设置,结果悲剧了,HOME键失效,POWER键也不对劲,恢复了刚才改动的部分,结果情况没有任何好转, 这可愁怀我了,这几天改动的地方不少,怎么找?跟踪吧.... ...

  4. 修复计算机用户名密码,win7恢复出厂设置后用户名密码是多少

    类型:图像处理大小:150KB语言:中文 评分:10.0 标签: 立即下载 不少小伙伴用的win7,电脑出现卡顿等情况的时候有小伙伴会进行恢复出厂设置,有小伙伴之前是没有设置密码的,但恢复出厂设置后开 ...

  5. android 恢复出厂设置 时间,Android 恢复出厂设置后,时间不能恢复替:2013年1月1日...

    Android 恢复出厂设置后,时间不能恢复为:2013年1月1日 前言         欢迎大家我分享和推荐好用的代码段~~声明         欢迎转载,但请保留文章原始出处: CSDN:http ...

  6. 安卓强制恢复出厂_手机“恢复出厂设置”后能变得流畅如初吗?内行人偷偷告诉你答案...

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注.   手机"恢复出 ...

  7. 安卓强制恢复出厂_手机“恢复出厂设置”后能变得流畅如初吗?内行人偷偷告诉你!...

    手机"恢复出厂设置"后能变得流畅如初吗?内行人偷偷告诉你! 手机"恢复出厂设置"后能变得流畅如初吗?如果是苹果手机,可能不常遇到这样一个问题,但一般安卓手机用了 ...

  8. Android7.x 通过Recovery保留特定文件实现恢复出厂设置后保留系统语言设置

    Android7.x 通过Recovery保留特定文件实现恢复出厂设置后保留系统语言设置 最近有一个需求,要求在恢复出厂设置之后不还原语言设置,由于我们知道语言设置可以在Properties Syst ...

  9. 恢复出厂设置后itms注册失败_手机恢复出厂设置后,与新手机的区别已被确认,望大家相互转告!...

    手机是大家每日的常用物件,有一个笑话很搞笑,如果你给朋友发微信,5分钟不回复你的话,说明朋友不想理你!大家想想,基本上每个人都会每5分钟看一次手机.目前常用手机分两类,苹果手机与安卓手机,苹果手机使用 ...

  10. 乐视手机恢复出厂设置后卡账户登录页面,刷入miui系统后妥妥的开发手机

    乐视手机恢复出厂设置后卡账户登录页面 众所周知,乐视破产了很久了,乐视手机的eui系统服务也没有了,如果你和我一样,没注意把手机给恢复出厂设置了,那手机就处于了半砖状态. 在网络上查询了很多逃过乐视账 ...

最新文章

  1. Gartner公布2018十大技术发展趋势 2025年AI重塑商业模式
  2. GET POST 区别详解
  3. Android-处理EditText中的“ Enter”
  4. 【Python】matplotlib基础:数据可视化
  5. tomcat启动成功 未加载项目_欣冠精密eHR系统项目成功启动
  6. 和为S的连续正数序列(双指针详解)
  7. mac上投屏android_win10不支持miracast,怎么无线投屏
  8. Prometheus 监控服务端口、网站状态等(黑盒监测)
  9. 系统表空间数据文件损坏
  10. zipkin实战(python)
  11. 细说进程、应用程序域与上下文之间的关系(三)—— 深入了解.NET上下文
  12. 电磁学matlab仿真实验报告,利用MATLAB语言处理电磁学实验.doc
  13. JS_js和jq获取屏幕高度、宽度的方法
  14. EXCEL中的定位条件(含快速删除空行,定位图片、文本框等对象)
  15. 谷歌翻译失效,解决网页谷歌翻译的问题-只能解决页面翻译
  16. BZOJ3083遥远的国度
  17. echarts 省市区联动地图
  18. VC程序里判断系统是64位还是32位的正确方法
  19. Unable to negotiate with 192.168.XX.XX port XXXX: no matching key exchange method found.
  20. ios图片放大之后如何不模糊_如何放大图片而不模糊

热门文章

  1. 谷歌(Chrome)浏览器插件开发教程
  2. 抓取域名百度收录的全部收录链接工具
  3. 父与子python 百度云_《父与子的编程之旅:与小卡特一起学Python第2版》pdf电子书百度网盘下载地址...
  4. android 11.0 屏蔽所有电话来电功能
  5. java中各个进制转换
  6. SQL 优化工具 Explain
  7. @pip pip配置国内的豆瓣源--一次配置永久使用
  8. 计算机考研学校教育部排名,-计算机科学与技术专业考研学校排名【教育部】...
  9. JavaJSON处理工具类JSONUtils
  10. 读《神奇的手帐整理魔法》