new/external/rkupdate/DefineHeader.h
2025-05-10 21:58:58 +08:00

366 lines
9.3 KiB
C++

#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