|
@@ -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
|
|