Commit c9acdcfb2fa413a21f8ff21002050bc5e804c927

Authored by xiemeng
1 parent 228ff09c

恢复出厂设置

@@ -357,6 +357,7 @@ typedef enum @@ -357,6 +357,7 @@ typedef enum
357 SP_BACKUPNV_TO_PC_STAGE, 357 SP_BACKUPNV_TO_PC_STAGE,
358 SP_BACKUP_NVRAM_STAGE, 358 SP_BACKUP_NVRAM_STAGE,
359 SP_PRODINFO_STAGE, 359 SP_PRODINFO_STAGE,
  360 + SP_RESET_STAGE,
360 SP_END_STAGE = 256 361 SP_END_STAGE = 256
361 }SMART_PHONE_STAGE_e; 362 }SMART_PHONE_STAGE_e;
362 363
@@ -160,13 +160,16 @@ int SNBase::UpdateUIMsg(const char * strMsg, ...) @@ -160,13 +160,16 @@ int SNBase::UpdateUIMsg(const char * strMsg, ...)
160 { 160 {
161 int iRet = 0; 161 int iRet = 0;
162 char szBuf[256] = ""; 162 char szBuf[256] = "";
  163 + CString atime;
163 va_list varg; 164 va_list varg;
164 165
165 va_start(varg, strMsg); 166 va_start(varg, strMsg);
166 iRet = vsprintf(szBuf, strMsg, varg); 167 iRet = vsprintf(szBuf, strMsg, varg);
167 va_end(varg); 168 va_end(varg);
168 169
169 - g_pMainDlg->myloglist.SetCurSel(g_pMainDlg->myloglist.AddString(strMsg)); 170 + atime.Format("[%2dS]",g_pMainDlg->mytime_count);
  171 +
  172 + g_pMainDlg->myloglist.SetCurSel(g_pMainDlg->myloglist.AddString(atime+strMsg));
170 173
171 return iRet; 174 return iRet;
172 } 175 }
@@ -110,7 +110,8 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -110,7 +110,8 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
110 MULTIIMEI_OPTION_e multiIMEIOption = SINGLE_MD_SINGLE_IMEI; 110 MULTIIMEI_OPTION_e multiIMEIOption = SINGLE_MD_SINGLE_IMEI;
111 111
112 int iRet = 0; 112 int iRet = 0;
113 - int iRet2 = 0; 113 + int iRetimei1 = 0;
  114 + int iRetimei2 = 0;
114 int option = 0; 115 int option = 0;
115 double fBeginProcess = 0.25; 116 double fBeginProcess = 0.25;
116 double fStep = 0.04; 117 double fStep = 0.04;
@@ -123,7 +124,13 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -123,7 +124,13 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
123 int MDIndex = 0; 124 int MDIndex = 0;
124 int IMEI_index = 0; 125 int IMEI_index = 0;
125 bool bWriteModemFail = false; 126 bool bWriteModemFail = false;
126 - if (g_sMetaComm.eTargetType == SMART_PHONE_DUALMODEM || m_bDSDAProject) 127 + SPMETA_DLL::EMMC_CLEAR_CNF_S aclear_cnf;
  128 + SPMETA_DLL::EMMC_FORMAT_TCARD_CNF_S aformat_tcard;
  129 + SPMETA_DLL::META_RESULT SPMetaclear = SPMETA_DLL::META_FAILED;
  130 + SPMETA_DLL::META_RESULT SPMetaformat = SPMETA_DLL::META_FAILED;
  131 +
  132 +
  133 + if (g_sMetaComm.eTargetType == SMART_PHONE_DUALMODEM || m_bDSDAProject)
127 { 134 {
128 mdNums = 2; 135 mdNums = 2;
129 g_sMetaComm.sIMEIOption.iImeiNums = 2; 136 g_sMetaComm.sIMEIOption.iImeiNums = 2;
@@ -177,7 +184,6 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -177,7 +184,6 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
177 spNextStage = SP_END_STAGE; 184 spNextStage = SP_END_STAGE;
178 } 185 }
179 break; 186 break;
180 -  
181 case SP_IMEI_RD_STAGE: 187 case SP_IMEI_RD_STAGE:
182 { 188 {
183 CString str_imei; 189 CString str_imei;
@@ -185,9 +191,13 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -185,9 +191,13 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
185 char a_imei_ary2[16]; 191 char a_imei_ary2[16];
186 char tmpBuf1[20] = {0}; 192 char tmpBuf1[20] = {0};
187 char tmpBuf2[20] = {0}; 193 char tmpBuf2[20] = {0};
188 - iRet = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf1, 1);  
189 - iRet2 = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf2, 2);  
190 - if (iRet == META_SUCCESS || iRet2 == META_SUCCESS) 194 + META_RESULT calc_imei1 = META_SUCCESS;
  195 + META_RESULT calc_imei2 = META_SUCCESS;
  196 + unsigned short checksum_v;
  197 +
  198 + iRetimei1 = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf1, 1);
  199 + iRetimei2 = REQ_ReadModem_NVRAM_Start(WRITE_IMEI, tmpBuf2, 2);
  200 + if (iRetimei1 == META_SUCCESS || iRetimei2 == META_SUCCESS)
191 { 201 {
192 memset(a_imei_ary,0,16); 202 memset(a_imei_ary,0,16);
193 memset(a_imei_ary2,0,16); 203 memset(a_imei_ary2,0,16);
@@ -206,6 +216,8 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -206,6 +216,8 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
206 } 216 }
207 a_imei_ary[15] = 0; 217 a_imei_ary[15] = 0;
208 a_imei_ary2[15] = 0; 218 a_imei_ary2[15] = 0;
  219 + calc_imei1 = META_NVRAM_Calculate_IMEI_CD(a_imei_ary, &checksum_v);
  220 + calc_imei2 = META_NVRAM_Calculate_IMEI_CD(a_imei_ary2, &checksum_v);
209 g_pMainDlg->GetDlgItem(IDC_STATIC_IMEI1)->SetWindowText(a_imei_ary); 221 g_pMainDlg->GetDlgItem(IDC_STATIC_IMEI1)->SetWindowText(a_imei_ary);
210 g_pMainDlg->GetDlgItem(IDC_STATIC_IMEI2)->SetWindowText(a_imei_ary2); 222 g_pMainDlg->GetDlgItem(IDC_STATIC_IMEI2)->SetWindowText(a_imei_ary2);
211 if (g_pMainDlg->myscanimei1 == CString(a_imei_ary) && 223 if (g_pMainDlg->myscanimei1 == CString(a_imei_ary) &&
@@ -213,29 +225,61 @@ META_RESULT SmartPhoneSN::WriteNvramLoop() @@ -213,29 +225,61 @@ META_RESULT SmartPhoneSN::WriteNvramLoop()
213 { 225 {
214 UpdateUIMsg("IMEI matches successfully!!!"); 226 UpdateUIMsg("IMEI matches successfully!!!");
215 spNextStage = SP_END_STAGE; 227 spNextStage = SP_END_STAGE;
216 - iRet = META_SUCCESS; 228 + iRet = SP_MD2AP_STAGE;
217 } 229 }
218 else 230 else
219 { 231 {
220 UpdateUIMsg("IMEI wrong!!!"); 232 UpdateUIMsg("IMEI wrong!!!");
221 - spNextStage = SP_END_STAGE;  
222 - iRet = META_FAILED; 233 + spNextStage = SP_MD2AP_STAGE;
  234 + iRetimei1 = META_FAILED;
223 } 235 }
224 236
225 } 237 }
226 else 238 else
227 { 239 {
228 UpdateUIMsg("IMEI failed to read"); 240 UpdateUIMsg("IMEI failed to read");
229 - spNextStage = SP_END_STAGE; 241 + spNextStage = SP_MD2AP_STAGE;
230 iRet = META_FAILED; 242 iRet = META_FAILED;
231 } 243 }
232 } 244 }
233 break; 245 break;
  246 + case SP_MD2AP_STAGE:
  247 + iRet = ModemSwithToAPMeta();
  248 + if (iRet == META_SUCCESS)
  249 + {
  250 + UpdateUIMsg("Start to restore factory settings!!!");
  251 + spNextStage = SP_RESET_STAGE;
  252 + }
  253 + else
  254 + {
  255 + UpdateUIMsg("reset to factory fail");
  256 + spNextStage = SP_END_STAGE;
  257 + }
  258 + break;
  259 + case SP_RESET_STAGE:
  260 + {
  261 + if (g_pMainDlg->myflag_reset)
  262 + {
  263 + SPMetaclear = SPMETA_DLL::SP_META_ClearValue_r(m_hSPMetaHandle, 5000, &aclear_cnf);
  264 + SPMetaformat = SPMETA_DLL::SP_META_EMMC_FormatTCard_r(m_hSPMetaHandle, 20000, &aformat_tcard);
  265 + if (SPMetaclear)
  266 + {
  267 + UpdateUIMsg("reset to factory fail");
  268 + spNextStage = SP_END_STAGE;
  269 + }
  270 + else
  271 + {
  272 + UpdateUIMsg("reset to factory Sucess");
  273 + spNextStage = SP_END_STAGE;
  274 + }
  275 + }
  276 + }
  277 + break;
234 } 278 }
235 spStage = spNextStage; 279 spStage = spNextStage;
236 } 280 }
237 MTRACE (g_hEBOOT_DEBUG, "SmartPhoneSN::WriteNvramLoop() end..."); 281 MTRACE (g_hEBOOT_DEBUG, "SmartPhoneSN::WriteNvramLoop() end...");
238 - return (META_RESULT)iRet; 282 + return (META_RESULT)(iRet || SPMetaclear||iRetimei1||iRetimei2);
239 } 283 }
240 284
241 int SmartPhoneSN::GetSPModemInfo_Ex() 285 int SmartPhoneSN::GetSPModemInfo_Ex()
@@ -3704,8 +3748,6 @@ void SmartPhoneSN::ThreadMainEntryPoint() @@ -3704,8 +3748,6 @@ void SmartPhoneSN::ThreadMainEntryPoint()
3704 byte resultQC; 3748 byte resultQC;
3705 3749
3706 SPMETA_DLL::VerInfo_V2_Cnf a_v2cnf; 3750 SPMETA_DLL::VerInfo_V2_Cnf a_v2cnf;
3707 - SPMETA_DLL::EMMC_CLEAR_CNF_S aclear_cnf;  
3708 - SPMETA_DLL::EMMC_FORMAT_TCARD_CNF_S aformat_tcard;  
3709 3751
3710 3752
3711 short a_token; 3753 short a_token;
@@ -3943,19 +3985,6 @@ void SmartPhoneSN::ThreadMainEntryPoint() @@ -3943,19 +3985,6 @@ void SmartPhoneSN::ThreadMainEntryPoint()
3943 } 3985 }
3944 3986
3945 } 3987 }
3946 - if (g_pMainDlg->myflag_reset)  
3947 - {  
3948 - SPMETA_DLL::META_RESULT SPMetaclear = SPMETA_DLL::META_SUCCESS;  
3949 - SPMETA_DLL::META_RESULT SPMetaformat = SPMETA_DLL::META_SUCCESS;  
3950 - SPMetaclear = SPMETA_DLL::SP_META_ClearValue_r(m_hSPMetaHandle, 5000, &aclear_cnf);  
3951 - SPMetaformat = SPMETA_DLL::SP_META_EMMC_FormatTCard_r(m_hSPMetaHandle, 5000, &aformat_tcard);  
3952 - if (SPMetaclear || SPMetaformat)  
3953 - {  
3954 - UpdateUIMsg("reset to factory fail");  
3955 - bAnyOperationFail = true;  
3956 - }  
3957 - }  
3958 -  
3959 #endif 3988 #endif
3960 } 3989 }
3961 3990
@@ -80,7 +80,7 @@ BSC32=bscmake.exe @@ -80,7 +80,7 @@ BSC32=bscmake.exe
80 # ADD BSC32 /nologo 80 # ADD BSC32 /nologo
81 LINK32=link.exe 81 LINK32=link.exe
82 # ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept 82 # ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
83 -# ADD LINK32 shlwapi.lib "./mtklib/meta/lib/*.lib" "./mtklib/Eboot/lib/*.lib" "./mtklib/Security/lib/*.lib" "./mtklib/SNFstream/lib/*.lib" "./mtklib/DebugTrace/lib/*.lib" "./mtklib/usbswitchtool/lib/*.lib" /nologo /subsystem:windows /debug /machine:I386 /out:"Output/IMEI_Check_tool.exe" /pdbtype:sept 83 +# ADD LINK32 shlwapi.lib "./mtklib/meta/lib/*.lib" "./mtklib/Eboot/lib/*.lib" "./mtklib/Security/lib/*.lib" "./mtklib/SNFstream/lib/*.lib" "./mtklib/DebugTrace/lib/*.lib" "./mtklib/usbswitchtool/lib/*.lib" /nologo /subsystem:windows /debug /machine:I386 /out:"..\intex_tool\check_imei.exe" /pdbtype:sept
84 # SUBTRACT LINK32 /pdb:none /incremental:no 84 # SUBTRACT LINK32 /pdb:none /incremental:no
85 85
86 !ENDIF 86 !ENDIF
Please register or login to post a comment