/* (C) 2003 XDA Developers * Author: Willem Jan Hengeveld * Web: http://www.xda-developers.com/ * * $Header$ */ #include #include void error(char *msg, ...) { DWORD dwErrorCode= GetLastError(); char buf[512]; TCHAR tbuf[1024]; va_list ap; va_start(ap, msg); _vsnprintf(buf, 1024, msg, ap); va_end(ap); TCHAR *msgbuf; int rc= FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwErrorCode, 0, (LPTSTR) &msgbuf, 0, NULL); if (rc) _sntprintf(tbuf, 1024, L"%hs: %ls", buf, msgbuf); else _sntprintf(tbuf, 1024, L"%hs: ERROR: 0x%08lx\n", buf, dwErrorCode); LocalFree(msgbuf); MessageBox(0, tbuf, L"savebootloader", 0); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { FILE *f= fopen("\\bootloader.nb0", "w+b"); if (f==NULL) { error("opening \\bootloader.nb0"); return 1; } if (fwrite((BYTE*)0x80000000, 0x40000, 1, f)!=1) { error("saving \\bootloader.nb0"); fclose(f); return 1; } fclose(f); MessageBox(0, L"bootloader saved to \\bootloader.nb0 in the root of your device", L"savebootloader", 0); return 0; }