1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
| #ifndef DEFINE_HEADER
| #define DEFINE_HEADER
| #ifndef _U
| #define _U _CTYPE_U
| #endif
| #ifndef _L
| #define _L _CTYPE_L
| #endif
| #ifndef _N
| #define _N _CTYPE_L
| #endif
| #ifndef _X
| #define _X _CTYPE_X
| #endif
| #ifndef _P
| #define _P _CTYPE_P
| #endif
| #ifndef _B
| #define _B _CTYPE_B
| #endif
| #ifndef _C
| #define _C _CTYPE_C
| #endif
| #ifndef _S
| #define _S _CTYPE_S
| #endif
| #include <stdio.h>
| #include <stdlib.h>
| #include <stdarg.h>
| #include <string.h>
| #include <sys/stat.h>
| #include <sys/ioctl.h>
| #include <fcntl.h>
| #include <dirent.h>
| #include <time.h>
| #include <unistd.h>
| //#include <iconv.h>
| #include <wchar.h>
| #include <errno.h>
| #include <ctype.h>
|
| #include "Property.hpp"
| #include <list>
| #include <vector>
| //#include <set>
| #include <string>
| #include <sstream>
| #include <algorithm>
| using namespace std;
|
| typedef unsigned int u_int32;
| typedef unsigned char u_int8;
| typedef unsigned char BYTE;
| typedef signed char CHAR;
| typedef BYTE *PBYTE;
| typedef unsigned char UCHAR;
| typedef unsigned short WCHAR;
| typedef unsigned short USHORT;
| typedef unsigned int UINT;
| typedef unsigned int DWORD;
| //#ifdef _UNICODE
| // typedef wchar_t tchar;
| // typedef wstring tstring;
| // #define _T(x) L ## x
| // #define _tcslen wcslen
| // #define _tcscpy wcscpy
| // #define _tcsicmp wcscmp
| // #define _tcscmp wcscmp
| // #define _stprintf swprintf
| // #define _istprint iswprint
| //#else
| typedef char tchar;
| typedef string tstring;
| #define _T(x) x
| #define _tcslen strlen
| #define _tcscpy strcpy
| #define _tcsicmp strcasecmp
| #define _tcscmp strcmp
| #define _stprintf sprintf
| #define _istprint isprint
| //#endif
| typedef enum
| {
| RKNONE_DEVICE = 0,
| RK27_DEVICE = 0x10,
| RKCAYMAN_DEVICE,
| RK28_DEVICE = 0x20,
| RK281X_DEVICE,
| RKPANDA_DEVICE,
| RKNANO_DEVICE = 0x30,
| RKSMART_DEVICE,
| RKCROWN_DEVICE = 0x40,
| RK29_DEVICE = 0x50,
| RK292X_DEVICE,
| RK30_DEVICE = 0x60,
| RK30B_DEVICE,
| RK31_DEVICE = 0x70,
| RK32_DEVICE = 0x80
| } ENUM_RKDEVICE_TYPE;
| typedef enum
| {
| RK_OS = 0,
| ANDROID_OS = 0x1
| } ENUM_OS_TYPE;
|
| typedef enum
| {
| RKUSB_NONE = 0x0,
| RKUSB_MASKROM = 0x01,
| RKUSB_LOADER = 0x02,
| RKUSB_MSC = 0x04
| } ENUM_RKUSB_TYPE;
| typedef enum
| {
| ENTRY471 = 1,
| ENTRY472 = 2,
| ENTRYLOADER = 4
| } ENUM_RKBOOTENTRY;
| #define MSC_ANDROID_OPER 0xFF
| typedef enum
| {
| MSC_NONE_OPER = 0x0,
| MSC_FORMAT_OPER = 0x1,
| MSC_COPY_OPER = 0x2,
| MSC_FORMAT_DATA_OPER = 0x4,
| MSC_COPY_DATA_OPER = 0x8
| } ENUM_MSC_OPER;
| typedef enum
| {
| MISC_MODIFY_NONE = 0,
| MISC_MODIFY_WIPE_ALL,
| MISC_MODIFY_WIPE_DATA,
| } ENUM_MISC_MODIFY_FLAG;
| typedef enum
| {
| WF_UPGRADE = 1,
| WF_RESTORE,
| WF_GETOLDDISKSIZE,
| WF_READSN,
| WF_WRITESN,
| WF_ERASEFLASH,
| WF_ERASEIDB,
| WF_GETBLOCKSTATE,
| WF_READMAC,
| WF_WRITEMAC,
| WF_READBT,
| WF_WRITEBT,
| WF_READIMEI,
| WF_WRITEIMEI,
| WF_READUID,
| WF_READCUSTOMDATA,
| WF_WRITECUSTOMDATA,
| WF_READALLINFO,
| WF_WRITEALLINFO,
| WF_DOWNLOADBOOT
| } ENUM_WORKFLOW;
| #pragma pack(1)
| typedef struct
| {
| USHORT usYear;
| BYTE ucMonth;
| BYTE ucDay;
| BYTE ucHour;
| BYTE ucMinute;
| BYTE ucSecond;
| } STRUCT_RKTIME, *PSTRUCT_RKTIME;
| typedef struct
| {
| char szItemName[20];
| UINT uiItemOffset;
| UINT uiItemSize;
| } STRUCT_PARAM_ITEM, *PSTRUCT_PARAM_ITEM;
| typedef struct
| {
| char szItemName[20];
| char szItemValue[256];
| } STRUCT_CONFIG_ITEM, *PSTRUCT_CONFIG_ITEM;
| typedef struct _STRUCT_RKDEVICE_DESC
| {
| USHORT usVid;
| USHORT usPid;
| USHORT usbcdUsb;
| UINT uiLocationID;
| ENUM_RKUSB_TYPE emUsbType;
| ENUM_RKDEVICE_TYPE emDeviceType;
| void *pUsbHandle;
| } STRUCT_RKDEVICE_DESC, *PSTRUCT_RKDEVICE_DESC;
| #pragma pack()
| typedef list<STRUCT_RKDEVICE_DESC> RKDEVICE_DESC_SET;
| typedef RKDEVICE_DESC_SET::iterator device_list_iter;
| typedef vector<tstring> STRING_VECTOR;
| typedef vector<UINT> UINT_VECTOR;
| typedef vector<STRUCT_PARAM_ITEM> PARAM_ITEM_VECTOR;
| typedef vector<STRUCT_CONFIG_ITEM> CONFIG_ITEM_VECTOR;
| //typedef enum
| //{
| // DOWNLOADBOOT_START=1,
| // DOWNLOADBOOT_FAIL=2,
| // DOWNLOADBOOT_PASS=3,
| // DOWNLOADIDBLOCK_START=4,
| // DOWNLOADIDBLOCK_FAIL=5,
| // DOWNLOADIDBLOCK_PASS=6,
| // DOWNLOADIMAGE_START=7,
| // DOWNLOADIMAGE_FAIL=8,
| // DOWNLOADIMAGE_PASS=9,
| // TESTDEVICE_START=10,
| // TESTDEVICE_FAIL=11,
| // TESTDEVICE_PASS=12,
| // RESETDEVICE_START=13,
| // RESETDEVICE_FAIL=14,
| // RESETDEVICE_PASS=15,
| // FORMATDISK_START=16,
| // FORMATDISK_FAIL=17,
| // FORMATDISK_PASS=18,
| // COPYDATA_START=19,
| // COPYDATA_FAIL=20,
| // COPYDATA_PASS=21,
| // WAITMSC_START=22,
| // WAITMSC_FAIL=23,
| // WAITMSC_PASS=24,
| // WAITLOADER_START=25,
| // WAITLOADER_FAIL=26,
| // WAITLOADER_PASS=27,
| // WAITMASKROM_START=28,
| // WAITMASKROM_FAIL=29,
| // WAITMASKROM_PASS=30,
| // ERASEIDB_START=31,
| // ERASEIDB_FAIL=32,
| // ERASEIDB_PASS=33,
| // SWITCHMSC_START=34,
| // SWITCHMSC_FAIL=35,
| // SWITCHMSC_PASS=36,
| // CHECKCHIP_START=37,
| // CHECKCHIP_FAIL=38,
| // CHECKCHIP_PASS=39,
| // PREPAREIDB_START=40,
| // PREPAREIDB_FAIL=41,
| // PREPAREIDB_PASS=42,
| // MUTEXRESETDEVICE_START=43,
| // MUTEXRESETDEVICE_FAIL=44,
| // MUTEXRESETDEVICE_PASS=45,
| // GETOLDDISKSIZE_START=46,
| // GETOLDDISKSIZE_FAIL=47,
| // GETOLDDISKSIZE_PASS=48,
| // READSN_START=49,
| // READSN_FAIL=50,
| // READSN_PASS=51,
| // WRITESN_START=52,
| // WRITESN_FAIL=53,
| // WRITESN_PASS=54,
| // ERASEALLBLOCKS_START=55,
| // ERASEALLBLOCKS_FAIL=56,
| // ERASEALLBLOCKS_PASS=57,
| // GETBLOCKSTATE_START=58,
| // GETBLOCKSTATE_FAIL=59,
| // GETBLOCKSTATE_PASS=60,
| // GETFLASHINFO_START=61,
| // GETFLASHINFO_FAIL=62,
| // GETFLASHINFO_PASS=63,
| // WRITEBACK_START=64,
| // WRITEBACK_FAIL=65,
| // WRITEBACK_PASS=66,
| // FINDUSERDISK_START=67,
| // FINDUSERDISK_FAIL=68,
| // FINDUSERDISK_PASS=69,
| // SHOWUSERDISK_START=70,
| // SHOWUSERDISK_FAIL=71,
| // SHOWUSERDISK_PASS=72,
| // READMAC_START=73,
| // READMAC_FAIL=74,
| // READMAC_PASS=75,
| // WRITEMAC_START=76,
| // WRITEMAC_FAIL=77,
| // WRITEMAC_PASS=78,
| // READBT_START=79,
| // READBT_FAIL=80,
| // READBT_PASS=81,
| // WRITEBT_START=82,
| // WRITEBT_FAIL=83,
| // WRITEBT_PASS=84,
| // LOWERFORMAT_START=85,
| // LOWERFORMAT_FAIL=86,
| // LOWERFORMAT_PASS=87,
| // READIMEI_START=88,
| // READIMEI_FAIL=89,
| // READIMEI_PASS=90,
| // WRITEIMEI_START=91,
| // WRITEIMEI_FAIL=92,
| // WRITEIMEI_PASS=93,
| // SHOWDATADISK_START=94,
| // SHOWDATADISK_FAIL=95,
| // SHOWDATADISK_PASS=96,
| // FINDDATADISK_START=97,
| // FINDDATADISK_FAIL=98,
| // FINDDATADISK_PASS=99,
| // FORMATDATADISK_START=100,
| // FORMATDATADISK_FAIL=101,
| // FORMATDATADISK_PASS=102,
| // COPYDATADISK_START=103,
| // COPYDATADISK_FAIL=104,
| // COPYDATADISK_PASS=105,
| // READUID_START=106,
| // READUID_FAIL=107,
| // READUID_PASS=108,
| // READCUSTOMDATA_START=109,
| // READCUSTOMDATA_FAIL=110,
| // READCUSTOMDATA_PASS=111,
| // WRITECUSTOMDATA_START=112,
| // WRITECUSTOMDATA_FAIL=113,
| // WRITECUSTOMDATA_PASS=114,
| // SETRESETFLAG_START=115,
| // SETRESETFLAG_FAIL=116,
| // SETRESETFLAG_PASS=117,
| // POWEROFF_START=118,
| // POWEROFF_FAIL=119,
| // POWEROFF_PASS=120,
| // READALLINFO_START=121,
| // READALLINFO_FAIL=122,
| // READALLINFO_PASS=123,
| // WRITEALLINFO_START=124,
| // WRITEALLINFO_FAIL=125,
| // WRITEALLINFO_PASS=126,
| // RESETMSC_START=127,
| // RESETMSC_FAIL=128,
| // RESETMSC_PASS=129
| //}ENUM_UPGRADE_PROMPT;
| //typedef enum
| //{
| // TESTDEVICE_PROGRESS,
| // DOWNLOADIMAGE_PROGRESS,
| // CHECKIMAGE_PROGRESS,
| // TAGBADBLOCK_PROGRESS,
| // TESTBLOCK_PROGRESS,
| // ERASEFLASH_PROGRESS,
| // ERASESYSTEM_PROGRESS,
| // LOWERFORMAT_PROGRESS,
| // ERASEUSERDATA_PROGRESS
| //}ENUM_PROGRESS_PROMPT;
| //#define MSC_SWITCHROCKUSB 0xFFFFFFFE
| //#define MSC_GETVERSIONINFO 0xFFFFFFFF
| //#define MSC_RESETDEVICE 0xFFFFFFFD
| //#define MSC_GETCHIPINFO 0xFFFFFFFC
| //#define MSC_SHOWUSERDISK 0xFFFFFFFB
| //#define MSC_GETDEVIVEUID 0xFFFFFFF7
| //#define MSC_SHOWDATADISK 0xFFFFFFF6
| //#define MSC_GETPRODUCTMODEL 0xFFFFFFF3
| //#define MSC_GETPARAMETER 0xFFFFFFF2
| //#define MSC_GETIDBSECTOR 0xFFFFFFF1
| //#define MSC_GETPRODUCTSN 0xFFFFFFEF
| //typedef enum
| //{
| // CALL_FIRST,
| // CALL_MIDDLE,
| // CALL_LAST
| //}ENUM_CALL_STEP;
|
| //typedef void (*UpgradeStepPromptCB)(DWORD deviceLayer,ENUM_UPGRADE_PROMPT promptID,DWORD oldDeviceLayer);
| //typedef void (*ProgressPromptCB)(DWORD deviceLayer,ENUM_PROGRESS_PROMPT promptID,long long totalValue,long long currentValue,ENUM_CALL_STEP emCall);
|
| //bool WideStringToString(wchar_t *pszSrc,char *&pszDest);
| //bool StringToWideString(char *pszSrc,wchar_t *&pszDest);
| //bool transform(string &src,bool lowercase);
| typedef void (*UpgradeCallbackFunc)(char *pszPrompt);
| typedef void (*UpgradeProgressCallbackFunc)(float portion, float seconds);
| #endif
|
|