From 83b771a1860e8e5ead8bffcbb18f84742450c112 Mon Sep 17 00:00:00 2001 From: eliboa Date: Sat, 2 Feb 2019 23:25:26 +0100 Subject: [PATCH] V2.5 : - TegraRcmSmash updated to v1.2.1-3 - memloader updated to v3 - Added rajkosto's UMS samples to mount eMMC partitions - biskeydump v7 added : dump BIS keys for eMMC content decryption - Added logging console - Fixed #22 : enter problem --- TegraRcmGUI.sln | 40 ++++ TegraRcmGUI/DialogTab01.cpp | 13 ++ TegraRcmGUI/DialogTab01.h | 1 + TegraRcmGUI/DialogTab02.cpp | 191 +++++++++++++++-- TegraRcmGUI/DialogTab02.h | 3 + TegraRcmGUI/DialogTab03.cpp | 15 +- TegraRcmGUI/TegraRcm.cpp | 193 +++++++++++++++--- TegraRcmGUI/TegraRcm.h | 38 +++- TegraRcmGUI/TegraRcmGUI.rc | Bin 21984 -> 23450 bytes TegraRcmGUI/TegraRcmGUI.vcxproj | 1 + TegraRcmGUI/TegraRcmGUI.vcxproj.filters | 3 + TegraRcmGUI/TegraRcmGUIDlg.cpp | 34 ++- TegraRcmGUI/TegraRcmGUIDlg.h | 2 + TegraRcmGUI/memloader/memloader_usb.bin | Bin 66760 -> 0 bytes TegraRcmGUI/resource.h | Bin 10312 -> 11320 bytes TegraRcmGUI/shofel2/imx_usb.bat | 3 + TegraRcmGUI/tools/biskeydump_usb.bin | Bin 0 -> 66216 bytes TegraRcmGUI/tools/memloader/memloader_usb.bin | Bin 0 -> 124088 bytes TegraRcmGUI/{ => tools}/memloader/u-boot.elf | Bin TegraRcmGUI/tools/memloader/ums_boot0.ini | 14 ++ TegraRcmGUI/tools/memloader/ums_boot1.ini | 14 ++ TegraRcmGUI/tools/memloader/ums_emmc.ini | 13 ++ TegraRcmGUI/tools/memloader/ums_emmc.scr | 1 + TegraRcmGUI/tools/memloader/ums_emmc.scr.img | Bin 0 -> 86 bytes .../tools/memloader/ums_emmc_boot0.scr | 1 + .../tools/memloader/ums_emmc_boot0.scr.img | Bin 0 -> 86 bytes .../tools/memloader/ums_emmc_boot1.scr | 1 + .../tools/memloader/ums_emmc_boot1.scr.img | Bin 0 -> 86 bytes TegraRcmGUI/{ => tools}/memloader/ums_sd.ini | 0 TegraRcmGUI/{ => tools}/memloader/ums_sd.scr | 0 .../{ => tools}/memloader/ums_sd.scr.img | Bin 31 files changed, 528 insertions(+), 53 deletions(-) create mode 100644 TegraRcmGUI.sln delete mode 100644 TegraRcmGUI/memloader/memloader_usb.bin create mode 100644 TegraRcmGUI/shofel2/imx_usb.bat create mode 100644 TegraRcmGUI/tools/biskeydump_usb.bin create mode 100644 TegraRcmGUI/tools/memloader/memloader_usb.bin rename TegraRcmGUI/{ => tools}/memloader/u-boot.elf (100%) create mode 100644 TegraRcmGUI/tools/memloader/ums_boot0.ini create mode 100644 TegraRcmGUI/tools/memloader/ums_boot1.ini create mode 100644 TegraRcmGUI/tools/memloader/ums_emmc.ini create mode 100644 TegraRcmGUI/tools/memloader/ums_emmc.scr create mode 100644 TegraRcmGUI/tools/memloader/ums_emmc.scr.img create mode 100644 TegraRcmGUI/tools/memloader/ums_emmc_boot0.scr create mode 100644 TegraRcmGUI/tools/memloader/ums_emmc_boot0.scr.img create mode 100644 TegraRcmGUI/tools/memloader/ums_emmc_boot1.scr create mode 100644 TegraRcmGUI/tools/memloader/ums_emmc_boot1.scr.img rename TegraRcmGUI/{ => tools}/memloader/ums_sd.ini (100%) rename TegraRcmGUI/{ => tools}/memloader/ums_sd.scr (100%) rename TegraRcmGUI/{ => tools}/memloader/ums_sd.scr.img (100%) diff --git a/TegraRcmGUI.sln b/TegraRcmGUI.sln new file mode 100644 index 0000000..9427233 --- /dev/null +++ b/TegraRcmGUI.sln @@ -0,0 +1,40 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.24720.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TegraRcmGUI", "TegraRcmGUI\TegraRcmGUI.vcxproj", "{2C091C5B-378F-44D0-91F2-53489BA7B83C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + Static Debug|x64 = Static Debug|x64 + Static Debug|x86 = Static Debug|x86 + Static Release|x64 = Static Release|x64 + Static Release|x86 = Static Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Debug|x64.ActiveCfg = Debug|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Debug|x64.Build.0 = Debug|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Debug|x86.ActiveCfg = Debug|Win32 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Debug|x86.Build.0 = Debug|Win32 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Release|x64.ActiveCfg = Release|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Release|x64.Build.0 = Release|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Release|x86.ActiveCfg = Release|Win32 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Release|x86.Build.0 = Release|Win32 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Debug|x64.ActiveCfg = Debug|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Debug|x64.Build.0 = Debug|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Debug|x86.ActiveCfg = Debug|Win32 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Debug|x86.Build.0 = Debug|Win32 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Release|x64.ActiveCfg = Release|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Release|x64.Build.0 = Release|x64 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Release|x86.ActiveCfg = Release|Win32 + {2C091C5B-378F-44D0-91F2-53489BA7B83C}.Static Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TegraRcmGUI/DialogTab01.cpp b/TegraRcmGUI/DialogTab01.cpp index f360e9c..0a2a6f4 100644 --- a/TegraRcmGUI/DialogTab01.cpp +++ b/TegraRcmGUI/DialogTab01.cpp @@ -147,6 +147,7 @@ BEGIN_MESSAGE_MAP(DialogTab01, CDialog) ON_BN_CLICKED(ID_DEL_FAV, &DialogTab01::OnBnClickedDelFav) ON_LBN_DBLCLK(IDC_LIST1, &DialogTab01::OnDblclkList1) ON_LBN_SELCHANGE(IDC_LIST1, &DialogTab01::OnLbnSelchangeList1) + ON_MESSAGE(DM_GETDEFID, OnGetDefID) ON_WM_CTLCOLOR() END_MESSAGE_MAP() @@ -245,6 +246,7 @@ void DialogTab01::InjectPayload() { m_TegraRcm->BitmapDisplay(LOADED); m_TegraRcm->SendUserMessage("Payload injected !", VALID); + m_TegraRcm->AppendLogBox(TEXT("Payload successfully injected\r\n")); m_TegraRcm->WAITING_RECONNECT = TRUE; if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Payload injected"), TEXT(" "), 1000, NIIF_INFO); } @@ -254,6 +256,10 @@ void DialogTab01::InjectPayload() string s = "Error while injecting payload (RC=" + std::to_string(rc) + ")"; if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Error"), TEXT("Error while injecting payload"), 1000, NIIF_ERROR); m_TegraRcm->SendUserMessage(s.c_str(), INVALID); + CString rc_str; + rc_str.Format(L"%d", rc); + m_TegraRcm->AppendLogBox(TEXT("Error while injecting payload (RC=") + rc_str + TEXT(")\r\n")); + } } @@ -294,6 +300,7 @@ void DialogTab01::OnBnClickedAddFav() m_TegraRcm->SaveFavorites(); m_TegraRcm->SendUserMessage("Favorite added", VALID); + m_TegraRcm->AppendLogBox(TEXT("New favorite added\r\n")); return; } @@ -309,6 +316,8 @@ void DialogTab01::OnBnClickedDelFav() m_TegraRcm->Favorites.RemoveAt(i); m_TegraRcm->SaveFavorites(); m_TegraRcm->SendUserMessage("Favorite removed", VALID); + m_TegraRcm->AppendLogBox(TEXT("Favorite removed\r\n")); + } return; } @@ -356,3 +365,7 @@ HBRUSH DialogTab01::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) } return hbr; } +LRESULT DialogTab01::OnGetDefID(WPARAM wp, LPARAM lp) +{ + return MAKELONG(0, DC_HASDEFID); +} \ No newline at end of file diff --git a/TegraRcmGUI/DialogTab01.h b/TegraRcmGUI/DialogTab01.h index a0e685b..6086685 100644 --- a/TegraRcmGUI/DialogTab01.h +++ b/TegraRcmGUI/DialogTab01.h @@ -40,4 +40,5 @@ public: afx_msg void OnLbnSelchangeList1(); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); COleDropTarget FileDropTarget; + afx_msg LRESULT OnGetDefID(WPARAM wp, LPARAM lp); }; diff --git a/TegraRcmGUI/DialogTab02.cpp b/TegraRcmGUI/DialogTab02.cpp index 9f7fbdc..5141d69 100644 --- a/TegraRcmGUI/DialogTab02.cpp +++ b/TegraRcmGUI/DialogTab02.cpp @@ -29,7 +29,8 @@ SOFTWARE. #include "TegraRcmGUI.h" #include "afxdialogex.h" #include "DialogTab02.h" - +#include +#include using namespace std; @@ -58,6 +59,7 @@ BEGIN_MESSAGE_MAP(DialogTab02, CDialogEx) ON_BN_CLICKED(IDC_SHOFEL2, &DialogTab02::OnBnClickedShofel2) // ON_WM_CTLCOLOR() ON_WM_CTLCOLOR() +ON_BN_CLICKED(IDC_DUMP_BISKEY, &DialogTab02::OnBnClickedDumpBiskey) END_MESSAGE_MAP() @@ -92,6 +94,16 @@ BOOL DialogTab02::OnInitDialog() ); pBtn->SetIcon(hIcn); + pBtn = (CButton*)GetDlgItem(IDC_DUMP_BISKEY); + pBtn->ModifyStyle(0, BS_ICON); + hIcn = (HICON)LoadImage( + AfxGetApp()->m_hInstance, + MAKEINTRESOURCE(ID_KEYS_ICON), + IMAGE_ICON, + height, height, // use actual size + LR_DEFAULTCOLOR + ); + pBtn->SetIcon(hIcn); CFont* pFont = GetFont(); LOGFONT lf; @@ -99,21 +111,57 @@ BOOL DialogTab02::OnInitDialog() lf.lfWeight = FW_BOLD; m_BoldFont.CreateFontIndirect(&lf); + CComboBox* pmyComboBox = (CComboBox*)GetDlgItem(ID_UMS_COMBO); + pmyComboBox->AddString(TEXT("eMMC BOOT0 (DANGEROUS)")); + pmyComboBox->AddString(TEXT("eMMC BOOT1 (DANGEROUS)")); + pmyComboBox->AddString(TEXT("eMMC rawNAND (DANGEROUS)")); + pmyComboBox->AddString(TEXT("MMC - SD Card")); + pmyComboBox->SetCurSel(3); + + return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DialogTab02::OnBnClickedMountSd() { + CComboBox* pmyComboBox = (CComboBox*)GetDlgItem(ID_UMS_COMBO); + if (pmyComboBox->GetCurSel() < 3) { + CString message = _T("-----> WARNING <-----\nYou are about to mount internal storage of your Nintendo Switch\nBE VERY CAREFUL ! Do not format or write to your NAND partitions if you don't know what you're doing.\nTHIS COULD BRICK YOUR CONSOLE !!!\n\nAre you really sure you want to continue ?"); + const int result = MessageBox(message, _T("BEWARE & WARNING"), MB_YESNO | MB_ICONWARNING); + if (result != IDYES) { + m_TegraRcm->AppendLogBox(TEXT("Mount NAND partition ABORTED\r\n")); + return; + } + } + m_TegraRcm->BitmapDisplay(LOADING); GetParent()->UpdateWindow(); string s; - TCHAR args[] = TEXT("memloader\\memloader_usb.bin -r --dataini=memloader\\ums_sd.ini"); - int rc = m_TegraRcm->Smasher(args); - if (rc < 0) + + + TCHAR args[256]; + switch (pmyComboBox->GetCurSel()) + { + case 0: + _tcscpy(args, TEXT(".\\tools\\memloader\\memloader_usb.bin -r --dataini=.\\tools\\memloader\\ums_boot0.ini")); + break; + case 1: + _tcscpy(args, TEXT(".\\tools\\memloader\\memloader_usb.bin -r --dataini=.\\tools\\memloader\\ums_boot1.ini")); + break; + case 2: + _tcscpy(args, TEXT(".\\tools\\memloader\\memloader_usb.bin -r --dataini=.\\tools\\memloader\\ums_emmc.ini")); + break; + default: + _tcscpy(args, TEXT(".\\tools\\memloader\\memloader_usb.bin -r --dataini=.\\tools\\memloader\\ums_sd.ini")); + break; + } + + int rc = m_TegraRcm->Smasher(args, FALSE); + if (rc < -10) { m_TegraRcm->BitmapDisplay(LOAD_ERROR); - s = "Error while injecting payload (RC=" + std::to_string(rc) + ")"; + s = "Error while injecting UMS Tool (RC=" + std::to_string(rc) + ")"; if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Error"), TEXT("Error while injecting payload"), 1000, NIIF_ERROR); } else @@ -122,8 +170,10 @@ void DialogTab02::OnBnClickedMountSd() s = "UMS Tool injected"; if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("UMS Tool injected"), TEXT(" "), 1000, NIIF_INFO); } - CA2T wt(s.c_str()); - GetParent()->SetDlgItemText(INFO_LABEL, wt); + //CA2T wt(s.c_str()); + //GetParent()->SetDlgItemText(INFO_LABEL, wt); + CString ss(s.c_str()); + m_TegraRcm->AppendLogBox(ss + TEXT("\r\n")); } @@ -132,8 +182,8 @@ void DialogTab02::OnBnClickedShofel2() TCHAR *exe_dir = m_TegraRcm->GetAbsolutePath(TEXT(""), CSIDL_APPDATA); string s; - TCHAR *COREBOOT_FILE = m_TegraRcm->GetAbsolutePath(TEXT("shofel2\\coreboot\\coreboot.rom"), CSIDL_APPDATA); - TCHAR *PAYLOAD = m_TegraRcm->GetAbsolutePath(TEXT("shofel2\\coreboot\\cbfs.bin"), CSIDL_APPDATA); + TCHAR *COREBOOT_FILE = m_TegraRcm->GetAbsolutePath(TEXT("tools\\shofel2\\coreboot\\coreboot.rom"), CSIDL_APPDATA); + TCHAR *PAYLOAD = m_TegraRcm->GetAbsolutePath(TEXT("tools\\shofel2\\coreboot\\cbfs.bin"), CSIDL_APPDATA); CString COREBOOT_FILE2 = COREBOOT_FILE; CString COREBOOT = _T("CBFS+") + COREBOOT_FILE2; @@ -143,7 +193,9 @@ void DialogTab02::OnBnClickedShofel2() BOOL payload_exists = infile2.good(); if (!coreboot_exists || !payload_exists) { - GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Linux coreboot not found in \\shofel2 dir")); + //GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Linux coreboot not found in \\shofel2 dir")); + m_TegraRcm->AppendLogBox(TEXT("Linux coreboot not found in \\shofel2 di\r\n")); + CString message = _T("Kernel not found in shofel2 directory. Do you want to automatically download arch linux kernel from SoulCipher repo ?"); const int result = MessageBox(message, _T("Kernel not found"), MB_YESNOCANCEL | MB_ICONQUESTION); if (result == IDYES) @@ -159,27 +211,32 @@ void DialogTab02::OnBnClickedShofel2() } m_TegraRcm->BitmapDisplay(LOADING); GetParent()->UpdateWindow(); - GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Loading coreboot. Please wait.")); + //GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Loading coreboot. Please wait.")); + m_TegraRcm->AppendLogBox(TEXT("Linux coreboot not found in \\shofel2 di\r\n")); + //int rc = device.SmashMain(5, args); - TCHAR cmd[MAX_PATH] = TEXT("--relocator= \""); + TCHAR cmd[4096] = TEXT("--relocator= \""); lstrcat(cmd, _tcsdup(PAYLOAD)); lstrcat(cmd, TEXT("\" \"CBFS:")); lstrcat(cmd, _tcsdup(COREBOOT_FILE)); lstrcat(cmd, TEXT("\"")); - int rc = m_TegraRcm->Smasher(cmd); - + int rc = m_TegraRcm->Smasher(cmd, FALSE); + int test = 1; if (rc >= 0 || rc < -7) { - GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Coreboot injected. Waiting 5s for device...")); + //GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Coreboot injected. Waiting 5s for device...")); + m_TegraRcm->AppendLogBox(TEXT("Coreboot injected. Waiting 5s for device...\r\n")); Sleep(5000); PROCESS_INFORMATION pif; STARTUPINFO si; ZeroMemory(&si, sizeof(si)); si.cb = sizeof(si); - TCHAR *imx_script = m_TegraRcm->GetAbsolutePath(TEXT("shofel2\\imx_usb.bat"), CSIDL_APPDATA); - GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Loading coreboot... Please wait.")); + TCHAR *imx_script = m_TegraRcm->GetAbsolutePath(TEXT("tools\\shofel2\\imx_usb.bat"), CSIDL_APPDATA); + //GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Loading coreboot... Please wait.")); + m_TegraRcm->AppendLogBox(TEXT("Loading coreboot... Please wait\r\n")); + BOOL ret = CreateProcess(imx_script, NULL, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, exe_dir, &si, &pif); int rc = -50; if (NULL != ret) @@ -200,21 +257,27 @@ void DialogTab02::OnBnClickedShofel2() m_TegraRcm->BitmapDisplay(LOADED); s = "\nCoreboot loaded !"; if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Coreboot loaded "), TEXT(" "), 1000, NIIF_INFO); + } else { m_TegraRcm->BitmapDisplay(LOAD_ERROR); s = "Error while loading imx_usb.exe"; if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Error"), TEXT("Error while loading imx_usb.exe"), 1000, NIIF_ERROR); + } } else { s = "Error while injecting payload. (RC=" + std::to_string(rc) + ")"; if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Error"), TEXT("Error while injecting payload"), 1000, NIIF_ERROR); + } - CA2T wt2(s.c_str()); - GetParent()->SetDlgItemText(INFO_LABEL, wt2); + //CA2T wt2(s.c_str()); + //GetParent()->SetDlgItemText(INFO_LABEL, wt2); + CString ss(s.c_str()); + m_TegraRcm->AppendLogBox(ss + TEXT("\r\n")); + } HBRUSH DialogTab02::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) @@ -225,8 +288,98 @@ HBRUSH DialogTab02::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { case ID_UMSTOOL_TITLE: case ID_LINUX_TITLE: + case ID_BISKEY_TITLE: pDC->SelectObject(&m_BoldFont); break; } return hbr; } + + +void DialogTab02::OnBnClickedDumpBiskey() +{ + + + m_TegraRcm->BitmapDisplay(LOADING); + GetParent()->UpdateWindow(); + TCHAR args[] = TEXT("-w tools\\biskeydump_usb.bin BOOT:0x0"); + int rc = m_TegraRcm->Smasher(args); + + BOOL keyFound = FALSE; + TCHAR *rfile = m_TegraRcm->GetAbsolutePath(TEXT("out.log"), CSIDL_APPDATA); + CString Cline; + std::wifstream fin(rfile, std::ios::binary); + fin.imbue(std::locale(fin.getloc(), new std::codecvt_utf8_utf16)); + CString Filename; + for (wchar_t c; fin.get(c); ) { + CString Cchar(c); + if (Cchar == TEXT("\n")) { + + if (Cline.Find(TEXT("HWI")) != -1 || + Cline.Find(TEXT("SBK")) != -1 || + Cline.Find(TEXT("TSEC KEY")) != -1 || + Cline.Find(TEXT("BIS KEY")) != -1) { + + if (!keyFound) + { + keyFound = TRUE; + + CString szFilter; + szFilter = "TXT files (*.txt)|*.txt|All files (*.*)|*.*||"; + + CFileDialog FileOpenDialog( + FALSE, + NULL, + TEXT("BIS_keys.txt"), + OFN_HIDEREADONLY, + szFilter, + AfxGetMainWnd()); + + if (FileOpenDialog.DoModal() == IDOK) + { + CFile File; + Filename = FileOpenDialog.GetPathName(); + remove(CT2A(Filename)); + } + else { + return; + } + + } + CT2CA pszConvertedAnsiString(Cline + _T('\n')); + std::string outLine = pszConvertedAnsiString; + fstream outFile; + outFile.open(Filename, fstream::in | fstream::out | fstream::app); + outFile << outLine; + outFile.close(); + + } + Cline.Empty(); + } + else if (Cchar != TEXT("\r") && Cchar != TEXT("")) { + Cline.Append(Cchar); + } + } + fin.close(); + + + CString s; + if (!keyFound) + { + m_TegraRcm->BitmapDisplay(LOAD_ERROR); + s.Append(TEXT("Error while retrieving BIS keys")); + if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Error"), s, 1000, NIIF_ERROR); + s.Append(TEXT("\r\n")); + } + else + { + m_TegraRcm->BitmapDisplay(LOADED); + CString loc(Filename); + s.Append(TEXT("BIS keys saved to : ")); + s.Append(loc); + if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(s, TEXT(" "), 1000, NIIF_INFO); + s.Append(TEXT("\r\n")); + + } + m_TegraRcm->AppendLogBox(s); +} diff --git a/TegraRcmGUI/DialogTab02.h b/TegraRcmGUI/DialogTab02.h index 637001c..346dd8e 100644 --- a/TegraRcmGUI/DialogTab02.h +++ b/TegraRcmGUI/DialogTab02.h @@ -4,6 +4,8 @@ #include "TegraRcm.h" + + // DialogTab02 dialog class DialogTab02 : @@ -33,4 +35,5 @@ public: // HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + afx_msg void OnBnClickedDumpBiskey(); }; diff --git a/TegraRcmGUI/DialogTab03.cpp b/TegraRcmGUI/DialogTab03.cpp index de3adca..2e40db7 100644 --- a/TegraRcmGUI/DialogTab03.cpp +++ b/TegraRcmGUI/DialogTab03.cpp @@ -66,6 +66,7 @@ BEGIN_MESSAGE_MAP(DialogTab03, CDialogEx) ON_BN_CLICKED(MIN_TO_TRAY, &DialogTab03::OnClickedMinToTray) ON_BN_CLICKED(ID_INSTALL_DRIVER, &DialogTab03::OnBnClickedInstallDriver) ON_BN_CLICKED(RUN_WINSTART, &DialogTab03::OnBnClickedWinstart) + ON_BN_CLICKED(IDC_BUTTON2, &DialogTab03::OnBnClickedButton2) END_MESSAGE_MAP() @@ -136,11 +137,14 @@ void DialogTab03::OnBnClickedWinstart() { // Remove shortcut PathAppend(szPath, _T("\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\TegraRcmGUI.lnk")); - remove(CW2A(szPath)); + if(remove(CW2A(szPath)) == 0) m_TegraRcm->AppendLogBox(TEXT("Winstart shortcut REMOVED\r\n")); } // Create new shortcut - if (IsCheckChecked) CreateLink(); + if (IsCheckChecked) { + CreateLink(); + m_TegraRcm->AppendLogBox(TEXT("Winstart shortcut ADDED\r\n")); + } } @@ -218,4 +222,9 @@ void DialogTab03::CleanRegestry() { } } } -} \ No newline at end of file +} + +void DialogTab03::OnBnClickedButton2() +{ + m_TegraRcm->SetLocale(); +} diff --git a/TegraRcmGUI/TegraRcm.cpp b/TegraRcmGUI/TegraRcm.cpp index 0b1765a..891355a 100644 --- a/TegraRcmGUI/TegraRcm.cpp +++ b/TegraRcmGUI/TegraRcm.cpp @@ -27,6 +27,9 @@ SOFTWARE. #include #include "stdafx.h" #include "TegraRcm.h" +#include +#include +#include using namespace std; @@ -35,7 +38,7 @@ TegraRcm::TegraRcm(CDialog* pParent /*=NULL*/) m_Parent = pParent; m_hWnd = AfxGetMainWnd()->GetSafeHwnd(); GetFavorites(); - SendUserMessage("Waiting for device in RCM mode"); + //SendUserMessage("Waiting for device in RCM mode"); } TegraRcm::~TegraRcm() @@ -303,6 +306,89 @@ LRESULT TegraRcm::OnTrayIconEvent(UINT wParam, LPARAM lParam) return ERROR_SUCCESS; } +void TegraRcm::SetLocale() +{ + TCHAR *rfile = GetAbsolutePath(TEXT("locale\\french.txt"), CSIDL_APPDATA); + std::wifstream wif(rfile); + wif.imbue(std::locale(std::locale::empty(), new std::codecvt_utf8)); + if (wif.is_open()) + { + wif.seekg(0, std::ios::beg); + std::wstring wline; + std::wstring stringName; + std::wstring value; + std::wstring delimiter = L"="; + + while (wif.good()) + { + std::getline(wif, wline); + if (!wif.eof()) + { + if (wline.find(delimiter) != std::string::npos) { + stringName = wline.substr(0, wline.find(delimiter)); + value = wline.substr(wline.find(delimiter) + 1, wline.length() + 1); + CString value2 = value.c_str(); + value2.Replace(_T('#'), '\n'); + int intValue = stoi(stringName.c_str());; + if (intValue > 0) { + + //TCITEM tcItem1; + //tcItem1.mask = TCIF_TEXT; + //tcItem1.pszText = _T("Test"); + + //AfxGetMainWnd()->m_tbCtrl-> + //m_tbCtrl.InsertItem(0, &tcItem1); + //m_Ctrltb1->SetWindowText(_T("test")); + + + if (m_Ctrltb1->GetDlgItem(intValue)) { + m_Ctrltb1->SetDlgItemText(intValue, value2); + } + if (m_Ctrltb2->GetDlgItem(intValue)) { + m_Ctrltb2->SetDlgItemText(intValue, value2); + } + if (m_Ctrltb3->GetDlgItem(intValue)) { + m_Ctrltb3->SetDlgItemText(intValue, value2); + + } + } + } + } + } + wif.close(); + } +} + +void TegraRcm::AppendLogBox(CString line) { + CEdit* pBox = (CEdit*)AfxGetMainWnd()->GetDlgItem(IDC_LOG_BOX); + CString Content; + pBox->GetWindowText(Content); + Content.Append(line); + AfxGetMainWnd()->SetDlgItemText(IDC_LOG_BOX, Content); + pBox->LineScroll(pBox->GetLineCount()); + AfxGetMainWnd()->UpdateWindow(); + +} +void TegraRcm::UpdateLogBox() { + TCHAR *rfile = GetAbsolutePath(TEXT("out.log"), CSIDL_APPDATA); + CString Cline; + std::wifstream fin(rfile, std::ios::binary); + fin.imbue(std::locale(fin.getloc(), new std::codecvt_utf8_utf16)); + for (wchar_t c; fin.get(c); ) { + CString Cchar(c); + if (Cchar == TEXT("\n")) { + Cline.Append(TEXT("\r\n")); + AppendLogBox(Cline); + Cline.Empty(); + } + else if(Cchar != TEXT("\r")) { + Cline.Append(Cchar); + } + } + fin.close(); + +} + // // Presets functions @@ -356,6 +442,10 @@ void TegraRcm::SetPreset(string param, string value) readFile.close(); remove(CT2A(rfile)); rename(CT2A(wfile), CT2A(rfile)); + + CString paramStr(param.c_str()), valueStr(value.c_str()); + AppendLogBox(TEXT("Preset \"") + paramStr + TEXT("\" set to : ") + valueStr + TEXT("\r\n")); + } void TegraRcm::GetFavorites() { @@ -436,6 +526,7 @@ void TegraRcm::AddFavorite(CString value) outFile.open(GetAbsolutePath(TEXT("favorites.conf"), CSIDL_APPDATA), fstream::in | fstream::out | fstream::app); outFile << outLine; outFile.close(); + } void TegraRcm::SaveFavorites() { @@ -492,8 +583,13 @@ void TegraRcm::SendUserMessage(string message, int type) LabelColor = RGB(0, 0, 0); break; } - AfxGetMainWnd()->SetDlgItemText(INFO_LABEL, wmessage); + //AfxGetMainWnd()->SetDlgItemText(INFO_LABEL, wmessage); AppendLog(message); + /* + CString msgStr(message.c_str()); + msgStr.Append(TEXT("\r\n")); + AppendLogBox(msgStr); + */ } @@ -622,7 +718,9 @@ void TegraRcm::LookUp() m_Ctrltb1->GetDlgItem(IDC_INJECT)->EnableWindow(TRUE); m_Ctrltb2->GetDlgItem(IDC_SHOFEL2)->EnableWindow(TRUE); m_Ctrltb2->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(TRUE); + m_Ctrltb2->GetDlgItem(IDC_DUMP_BISKEY)->EnableWindow(TRUE); m_Ctrltb3->GetDlgItem(ID_INSTALL_DRIVER)->EnableWindow(FALSE); + } // RCM Status = "USB Driver KO" @@ -631,6 +729,7 @@ void TegraRcm::LookUp() m_Ctrltb1->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); m_Ctrltb2->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); m_Ctrltb2->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(FALSE); + m_Ctrltb2->GetDlgItem(IDC_DUMP_BISKEY)->EnableWindow(FALSE); m_Ctrltb3->GetDlgItem(ID_INSTALL_DRIVER)->EnableWindow(TRUE); } // RCM Status = "RCM not detected" @@ -639,6 +738,7 @@ void TegraRcm::LookUp() m_Ctrltb1->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); m_Ctrltb2->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); m_Ctrltb2->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(FALSE); + m_Ctrltb2->GetDlgItem(IDC_DUMP_BISKEY)->EnableWindow(FALSE); m_Ctrltb3->GetDlgItem(ID_INSTALL_DRIVER)->EnableWindow(TRUE); // Delay Auto inject if needed if (AUTOINJECT_CURR) DELAY_AUTOINJECT = TRUE; @@ -654,6 +754,8 @@ void TegraRcm::LookUp() // Status changed to "RCM Detected" if (rc == 0) { + AppendLogBox(TEXT("RCM Device detected\r\n")); + BitmapDisplay(RCM_DETECTED); CString file; @@ -665,7 +767,7 @@ void TegraRcm::LookUp() if(AUTOINJECT_CURR) DELAY_AUTOINJECT = TRUE; else DELAY_AUTOINJECT = FALSE; } - if (DELAY_AUTOINJECT && file.GetLength() > 0) + if (DELAY_AUTOINJECT && file.GetLength() > 0 && AUTOINJECT_CURR) { BitmapDisplay(LOADING); @@ -678,7 +780,8 @@ void TegraRcm::LookUp() if (rc >= 0) { BitmapDisplay(LOADED); - SendUserMessage("Payload injected !", VALID); + //SendUserMessage("Payload injected !", VALID); + AppendLogBox(TEXT("Payload successfully injected\r\n")); if (!CmdShow) ShowTrayIconBalloon(TEXT("Payload injected"), TEXT(" "), 1000, NIIF_INFO); WAITING_RECONNECT = TRUE; } @@ -686,15 +789,19 @@ void TegraRcm::LookUp() { BitmapDisplay(LOAD_ERROR); string s = "Error while injecting payload (RC=" + std::to_string(rc) + ")"; - CString error = TEXT("Error while injecting payload"); + CString rc_str; + rc_str.Format(L"%d", rc); + CString error = TEXT("Error while injecting payload (RC=") + rc_str + TEXT(")"); if (!CmdShow) ShowTrayIconBalloon(TEXT("Error"), error, 1000, NIIF_ERROR); - SendUserMessage(s.c_str(), INVALID); + //SendUserMessage(s.c_str(), INVALID); + AppendLogBox(error); + } DELAY_AUTOINJECT = FALSE; } else { - SendUserMessage("Waiting for user action"); + SendUserMessage(labels[20].name); } } // Status changed to "RCM not detected" or "USB driver KO" @@ -704,6 +811,7 @@ void TegraRcm::LookUp() if (rc > -5) { BitmapDisplay(DRIVER_KO); + AppendLogBox(TEXT("RCM device detected but APX driver is not installed\r\n")); InstallDriver(); } else @@ -711,12 +819,15 @@ void TegraRcm::LookUp() if (LookForAPXDevice()) { BitmapDisplay(DRIVER_KO); + AppendLogBox(TEXT("RCM device detected but APX driver is not installed\r\n")); InstallDriver(); } else { BitmapDisplay(RCM_NOT_DETECTED); - if (FIRST_LOOKUP) SendUserMessage("Waiting for device in RCM mode");; + if (!FIRST_LOOKUP) AppendLogBox(TEXT("RCM device disconnected\r\n")); + else AppendLogBox(TEXT("No RCM device detected\r\n")); + if (FIRST_LOOKUP) SendUserMessage(labels[21].name); } } } @@ -733,7 +844,7 @@ void TegraRcm::LookUp() // // Smasher => TegraRcmSmash.exe calls // -int TegraRcm::Smasher(TCHAR args[]) +int TegraRcm::Smasher(TCHAR args[4096], BOOL bInheritHandles) { if (WAITING_RECONNECT) { @@ -747,11 +858,29 @@ int TegraRcm::Smasher(TCHAR args[]) } WAITING_RECONNECT = FALSE; } - + + // This should fix RC-50 issue, ! At last. + TCHAR szPath[_MAX_PATH]; + VERIFY(::GetModuleFileName(AfxGetApp()->m_hInstance, szPath, _MAX_PATH)); + CString csPathf(szPath); + int nIndex = csPathf.ReverseFind(_T('\\')); + if (nIndex > 0) csPath = csPathf.Left(nIndex); + else csPath.Empty(); + CString csPath2(csPath); + csPath.Append(TEXT(".\\TegraRcmSmash.exe ")); + TCHAR cmd[4096]; + _tcscpy_s(cmd, csPath); + lstrcat(cmd, args); + + SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(sa); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = TRUE; + + TCHAR *rfile = GetAbsolutePath(TEXT("out.log"), CSIDL_APPDATA); + remove(CT2A(rfile)); + PROCESS_INFORMATION pi; STARTUPINFO si; BOOL ret = FALSE; @@ -761,20 +890,24 @@ int TegraRcm::Smasher(TCHAR args[]) si.cb = sizeof(STARTUPINFO); si.dwFlags |= STARTF_USESTDHANDLES; si.hStdInput = NULL; + if (bInheritHandles) { + HANDLE h = CreateFile(rfile, + GENERIC_WRITE, + FILE_SHARE_WRITE | FILE_SHARE_READ, + &sa, + OPEN_ALWAYS, + FILE_ATTRIBUTE_NORMAL, + NULL); + si.hStdError = h; + si.hStdOutput = h; + } - // This should fix RC-50 issue, ! At last. - TCHAR szPath[_MAX_PATH]; - VERIFY(::GetModuleFileName(AfxGetApp()->m_hInstance, szPath, _MAX_PATH)); - CString csPathf(szPath); - int nIndex = csPathf.ReverseFind(_T('\\')); - if (nIndex > 0) csPath = csPathf.Left(nIndex); - else csPath.Empty(); - csPath.Append(TEXT(".\\TegraRcmSmash.exe ")); - TCHAR cmd[MAX_PATH]; - _tcscpy_s(cmd, csPath); - lstrcat(cmd, args); - - ret = CreateProcess(NULL, cmd, NULL, NULL, FALSE, flags, NULL, NULL, &si, &pi); + CString argsStr(args); + CString msgStr(TEXT("Invoking TegraRcmSmash.exe with args : ") + argsStr + TEXT("\r\n")); + AppendLogBox(msgStr); + + + ret = CreateProcess(NULL, cmd, NULL, NULL, bInheritHandles, flags, NULL, NULL, &si, &pi); int rc = -50; if (NULL != ret) { @@ -802,8 +935,7 @@ int TegraRcm::Smasher(TCHAR args[]) CloseHandle(pi.hThread); } else { - - int lastErrorCode = GetLastError(); + int lastErrorCode = GetLastError(); LPWSTR lpMsgBuf = NULL; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, @@ -814,9 +946,14 @@ int TegraRcm::Smasher(TCHAR args[]) NULL); std::string MyString = CW2A(lpMsgBuf); std::string intStr = std::to_string(lastErrorCode); - AppendLog(intStr); - AppendLog(MyString); + //AppendLog(intStr); + //AppendLog(MyString); + CString CLogBuf(lpMsgBuf); + msgStr = TEXT("Error : ") + CLogBuf + TEXT("\r\n"); + } + if (bInheritHandles) { + UpdateLogBox(); } return rc; } @@ -919,7 +1056,7 @@ TCHAR* TegraRcm::GetAbsolutePath(TCHAR* relative_path, DWORD dwFlags) { // // - BOOL PORTABLE = FALSE; + BOOL PORTABLE = TRUE; // // diff --git a/TegraRcmGUI/TegraRcm.h b/TegraRcmGUI/TegraRcm.h index 403f76e..a82cc4b 100644 --- a/TegraRcmGUI/TegraRcm.h +++ b/TegraRcmGUI/TegraRcm.h @@ -17,6 +17,7 @@ #include #include "afxcmn.h" #include + #pragma comment (lib, "setupapi.lib") class TegraRcm @@ -30,6 +31,9 @@ public: int GetRcmStatus(); ULONGLONG GetDllVersion(LPCTSTR lpszDllName); TCHAR* GetAbsolutePath(TCHAR* relative_path, DWORD dwFlags); + void SetLocale(); + void AppendLogBox(CString line); + void UpdateLogBox(); string GetPreset(string param); void InstallDriver(); BOOL LookForAPXDevice(); @@ -41,7 +45,7 @@ public: void SaveFavorites(); void BitmapDisplay(int IMG); void LookUp(); - int Smasher(TCHAR args[]); + int Smasher(TCHAR args[], BOOL bInheritHandles = TRUE); char* GetRelativeFilename(char *currentDirectory, char *absoluteFilename); @@ -82,6 +86,38 @@ public: CDialog* m_Ctrltb1; CDialog* m_Ctrltb2; CDialog* m_Ctrltb3; + + struct Label { + int uid; + string name; + }; + + Label labels[23] = { + { 0, "TegraRcmGUI"}, + { 1, "No file selected" }, + { 2, "File doesn't exist" }, + { 3, "Injecting payload..." }, + { 4, "Payload injected !" }, + { 5, "Error while injecting payload" }, + { 6, "Favorite already exists" }, + { 7, "Favorite added" }, + { 8, "Favorite removed" }, + { 9, "UMS Tool injected" }, + { 10, "Linux coreboot not found in \\shofel2 dir" }, + { 11, "Kernel not found in shofel2 directory. Do you want to automatically download arch linux kernel from SoulCipher repo ?" }, + { 12, "Kernel not found" }, + { 13, "Loading coreboot. Please wait." }, + { 14, "Coreboot injected. Waiting 5s for device..." }, + { 15, "Coreboot loaded " }, + { 16, "Error" }, + { 17, "Error while loading imx_usb.exe" }, + { 18, "APX device driver is missing. Do you want to install it now ?" }, + { 19, "APX driver not found !" }, + { 20, "Waiting for user action" }, + { 21, "Waiting for device in RCM mode" }, + { 22, "Payload already injected. Are you sure you want to overwrite the stack again ?" } + }; + private: HWND m_hWnd; TegraRcmSmash m_Device; diff --git a/TegraRcmGUI/TegraRcmGUI.rc b/TegraRcmGUI/TegraRcmGUI.rc index 16c3c6229d0580b6834f4132796f4a91202ac7f5..15eb8dc28ade369f8f75afc7f68df2dd7ebf6fc5 100644 GIT binary patch delta 1614 zcmZ`(O=weD6h5z^)g-hQV{I#HUy^p(YJc)x{&f`6B>pBwn`jlp_*)f!T5YOUl#aO5 z%?t+yMi_A13Q~Ow5iH_n@Mq;>U|=>~4dRRoH*N&+JNLdwT}XKEzT9)pcfRwTbML}^ z&l`P7x3mq`1lxL!JT3QyHE`+Diqh0Hc6s7j{j$hDTd7 zuvUPz4Zc|##a98p#U7*Z%z#4)u?0H7&%!}|>u=$A1Fc14?y5O{yX=w?=W443DSv7GuK~;TfENp24|MUn4xcmE_Gd$*$d%>~fj0iRqhO@@ zq1DclD}B!Aju%ay1f`spU3(08MJUE=g7fW=9<30ewVaR-2r+&iWKRm~&CoQ$Z2lBF z=K(gK3IFAn9*a~Eil24&^P%1l|JuD4sMzNx-M@PUU)quq`p#s}T_d0a64=zek5ZJM z^bYca&=CLB+pX-D3W};3(e?}BBAuXfbe1OQ2pz}wMJRg-7$yzl*^AzkIo?$KbPW-gL)dQaVxSqOnM+~H75Fv3r-E^Lf;Q*k>dODa&1|t zLPkKx)*BX6m&s($YUks+1D1QS ztmLcKD_&(q8buhpzH7L4YpwIQJ-&kHMw+~ObfFsG$Od^~imM@b60W(!Qr|q)Dzcc(_F8jiWSgRQm$fVZe)h51CgkB|CnNXX~rX z)MEB!TxI?SXF1%A6tyD7*ICUv>sbLS!4S{>Pl;slW0nIYY#v>x + diff --git a/TegraRcmGUI/TegraRcmGUI.vcxproj.filters b/TegraRcmGUI/TegraRcmGUI.vcxproj.filters index 6d3a9e4..7426139 100644 --- a/TegraRcmGUI/TegraRcmGUI.vcxproj.filters +++ b/TegraRcmGUI/TegraRcmGUI.vcxproj.filters @@ -194,5 +194,8 @@ Resource Files + + Resource Files + \ No newline at end of file diff --git a/TegraRcmGUI/TegraRcmGUIDlg.cpp b/TegraRcmGUI/TegraRcmGUIDlg.cpp index 24bf8bf..b75794f 100644 --- a/TegraRcmGUI/TegraRcmGUIDlg.cpp +++ b/TegraRcmGUI/TegraRcmGUIDlg.cpp @@ -123,7 +123,7 @@ BOOL CTegraRcmGUIDlg::OnInitDialog() CRect rc; AfxGetMainWnd()->GetWindowRect(rc); int width = rc.Width(); - + int fontSize = width * 0.031; if (width < 400) { RCM_BITMAP0.SetBitmap(INIT_LOGO_2); @@ -144,6 +144,26 @@ BOOL CTegraRcmGUIDlg::OnInitDialog() RCM_BITMAP5.SetBitmap(LOADED); RCM_BITMAP6.SetBitmap(LOAD_ERROR); } + + // Log Box + LOGFONT lf; + /* + CEdit* pBox = (CEdit*)AfxGetMainWnd()->GetDlgItem(IDC_LOG_BOX); + CFont* old = pBox->GetFont(); + old->GetLogFont(&lf); + CFont newfont; + newfont.CreateFont(lf.lfHeight + 30, 0, lf.lfEscapement, lf.lfOrientation, lf.lfWeight, lf.lfItalic, lf.lfUnderline, lf.lfStrikeOut, lf.lfCharSet, lf.lfOutPrecision, lf.lfClipPrecision, lf.lfQuality, lf.lfPitchAndFamily, lf.lfFaceName); + pBox->SetFont(&newfont); + */ + + CEdit* pBox = (CEdit*)AfxGetMainWnd()->GetDlgItem(IDC_LOG_BOX); + + CFont *myFont = new CFont(); + myFont->CreateFont(fontSize, 0, 0, 0, FW_NORMAL, false, false, + 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, + FIXED_PITCH | FF_MODERN, _T("Verdana")); + + pBox->SetFont(myFont); // Menu @@ -168,7 +188,6 @@ BOOL CTegraRcmGUIDlg::OnInitDialog() SetIcon(m_hIcon, FALSE); // Set small icon m_TegraRcm = new TegraRcm(this); - m_TegraRcm->AppendLog("new TegraRcm()"); // Kill other running process of app @@ -204,6 +223,8 @@ BOOL CTegraRcmGUIDlg::OnInitDialog() // Start timer to check RCM status every second CTegraRcmGUIDlg::StartTimer(); + + return TRUE; } void CTegraRcmGUIDlg::OnSysCommand(UINT nID, LPARAM lParam) @@ -220,18 +241,25 @@ HBRUSH CTegraRcmGUIDlg::OnCtlColor(CDC* pDC, CWnd *pWnd, UINT nCtlColor) switch (nCtlColor) { case CTLCOLOR_STATIC: + /* if (GetDlgItem(IDC_RAJKOSTO)->GetSafeHwnd() == pWnd->GetSafeHwnd() || GetDlgItem(SEPARATOR)->GetSafeHwnd() == pWnd->GetSafeHwnd()) { pDC->SetTextColor(RGB(192, 192, 192)); pDC->SetBkMode(TRANSPARENT); return (HBRUSH)GetStockObject(NULL_BRUSH); } + */ if (GetDlgItem(INFO_LABEL)->GetSafeHwnd() == pWnd->GetSafeHwnd()) { pDC->SetBkMode(TRANSPARENT); pDC->SetTextColor(m_TegraRcm->LabelColor); return (HBRUSH) CreateSolidBrush( WhiteRGB ); } + if (GetDlgItem(IDC_LOG_BOX)->GetSafeHwnd() == pWnd->GetSafeHwnd()) + { + pDC->SetBkMode(TRANSPARENT); + return (HBRUSH)CreateSolidBrush(WhiteRGB); + } if (GetDlgItem(IDC_STATUS_BG)->GetSafeHwnd() == pWnd->GetSafeHwnd()) { return (HBRUSH)CreateSolidBrush(WhiteRGB); @@ -350,6 +378,8 @@ void CTegraRcmGUIDlg::MountCommand() if (m_TegraRcm != NULL) { DialogTab02 *pt = (DialogTab02*)m_TegraRcm->m_Ctrltb2; + CComboBox* pmyComboBox = (CComboBox*)pt->GetDlgItem(ID_UMS_COMBO); + pmyComboBox->SetCurSel(3); pt->OnBnClickedMountSd(); } } diff --git a/TegraRcmGUI/TegraRcmGUIDlg.h b/TegraRcmGUI/TegraRcmGUIDlg.h index 00108e9..ef55ac9 100644 --- a/TegraRcmGUI/TegraRcmGUIDlg.h +++ b/TegraRcmGUI/TegraRcmGUIDlg.h @@ -125,4 +125,6 @@ public: private: MyTabCtrl m_tbCtrl; TegraRcm *m_TegraRcm; +public: + afx_msg void OnEnChangeLogBox(); }; diff --git a/TegraRcmGUI/memloader/memloader_usb.bin b/TegraRcmGUI/memloader/memloader_usb.bin deleted file mode 100644 index 915354012f186b761887c10ce5b639b3cf26405a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66760 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%0AhBL!m&xrcKuzWc=I`EQfGJ3w@ zt{tK)aC35UU?XOrwE;HP*zCG%&0RM~79`Vn5bSCySHRRSl|I1kS}TT9g=82w^GA5t zRmSEZWI5jXhBT)c4Hp)Q=TT>KfyXTPZTud+pr6~Aq;%~Le*;eZkYrK_{%jcDigpEj zuF|#bA`IV&Q(>FKu*NX#p)jnO!whJ}JcZiw7XIth@Qeu_U2dWO!WkNGEQ)#QJ9DwP zZ}5DV^G8Fn$@6{E$iNlZ`W7Q(O4g71*7IFSKh|e|_kOs%EMvjSJwdm@s&rNM2^c|2 z*Wdcgwps8!eRp~8${pe-*XXz__h#b||F01a+JEhdazejG=uXI%J3YAh6~Ch(tNthV z1Y-S9?kejLKg!!1pDM6b*5_PG*M{Ez2F)$K0{d_N{9tbdo*%|@1%D3q2Jw6!o`d}P z&fYb6{tcej@aL7if?aPj0ruLDq0kY8Ox6UZbe;OqiZbu*5%5JXigS!V{{hdDwqbaF z4l&ix%LwT>?C_7wu1m}Jp;&;yN8GN^$_JsP%`jT zJAa&sx?Izfp2^DAA~D|0S+o~q3DWarMbrT8DSnlO7_ ztx#Jm>ABu>JxNf1{5V6)IQvZZMC5vZk1p*x&u;5Df13Y%*ZiL89ts(pLy=-`&oKK` zcRFJIvPW;vblVUr>zV9{vXAml=1(O(QHYn>6JgJAX8^mn$Ih;Ck3^`jC*FRwdmKVH z@i_LLU)aaF6Y-qiqxOX0{6r{3f?&ZoBfZ1`XN4pEo^x=Ua)WA#U8?7utmEt1O6K_e7V)Wg^5uWy>5uP`bVp$_I3&zd|dV>x~_|!Ix zo{GsSVv^W>o!#&Ef9_xAf69N$iWtvC)|q7N{AI5mS`fbI=sMrE^}OKt!k@b2=_RR4 zZ&~{E($8;E>riY%UVhZiq$qt>b{vaEp07!<(2s-Gj6E^Vhm!EBMEHAV3s)HNoyM3u zqbBHEM)^Ze!o(}^1;NIg5G{+{4sCOjD}@>OEPsz}v}ZJC+0h;=ey!RsY1|1c*3NZL z$gLw-Rgo4t5*h)%wg(xQ>`vjjLeR0*K-xmQV}yG|ZnS^I+#vxy^xffe^?~8JBP}C= z)%%C#4#Nx|v=8I@gU%7nb`{bN*hA;twtB=$ zL42Jp8KF|n6@~6TAMLrpHp)K%;V9tac}W(Yw=*>q1Z6c;az37G)T^S|O8TZCtw;o{ zW+F8GFy3L*G`*EK)*FV^d=Rca0X|%PB7C^|A@Jeqhr);JwpbUe zXPFD0MLLFb8{iKGt$4T$ELW1?GhL_751h#)28-eMGOHLwykI207z@7}aeCqEfop(U zz{gL;=($S}2d*CS7vsjMbXl+z{qRQtJ?Xh0ySo7{O^>#GabV-8lje0`)T{Ncw_ zHY;;OyI*sGo-@xYU2kAkRJwNkNTcBSAECSaI0;(G&j9W2`mWc2mie|<9bx%Bck*%R z?zz_HLhKuQX4vMypN;1m;LqxzS$1BJ1-~B5kP7A}0pS~ZXryNMT;V2|zbEJz6_!CM zZW^aQ?@`C=Lp>vMleE<~)*^kw-NU(r8t$RiVx5-r5HFom&J%A|rMv6wh3>B5ecfFm zoF8rj+y@ubkpg+i*vbWMm_x=Uuy%}z`oc+U4vh`$kdw@L@IghHJQ=eS>d(j?cmYd5 zhNaK5Y_rgLuR>4wmT7>(kuPL$9T}PLiD3zdo5Czx%`oDbEo_tSS-}xg8@o;D3@FT@ zdoG1ti&O|-HLO{180=&C^HY87YF+a<=%?fS;{uVnL$V`U1Z(_wL-Ps4$hg{USVgRn z_`a(8ZQfx0`3s$Uw!AQmrPPdu`X0G4(SgtZHYYnq8b(?oHZeLG>dbCs4%4Qn$;M60 z5n01FMN|uuqn;Hyoyrxtv5${qTkxIMAuN6qBs`1Tl(IEpli-MbK5^5KO;OL8exCs@ zhbe|DBb!ZIBWpTRjwIczi>y+Tn$MUwn4cqTS)alF%YaZd(qNuseonWUZO%Xo{zfTA zuZZe1ZWXRW&f^+etZbOZIra)Mry8(cK_5a57@DntF-+)ux=*mKN0p*k~%QA-f~6| z6+OcdTkJg;^y+!)H*KsS`qTeV~(O0gQ-kRdCMw~DBX}BqdFFg}1 z3q^em+gj(X)N(1j(B}CiPV=_SqZ#}3{7t@Axw~ur1;pW@+zWrAE?vEqz2(K4uPggP z(7Mkd*pB6n2m}q+x=ye*>FLsVe|+FXEan!Raa<7>`IxE7FoxDW&5+?o1RZ4Kd%5q; zO$Z30V5P4Mu0gza=BF5jxn}v_&OKF{;9nXrRP6{DtCp^asM@ij0H>Ja?Wa~mxt8Rl zu4oNBQyS$$iEyfU9^}Byy2&oxrdK`t=Uw5S@sd0sY`Z6Y)vr+ z9SN>6I3uafQ{7!(^akzY0*S^U*+eA+x@&jW$=(<9O?v4N5yubQ>=Xn<2V7|*&3)pGtJ$$FP$16CZ ztbbkF-Sx-b-#c{nt%y5Bd>*UU9nuijU;VYHz8T7l|ChqI=RPUD ziT$Hj_^Hqx(u(|F`&Q)MI(LUO1N&oD?62Nucnvj9?(z1}SH-1Q@Z95Ff_{5iTH;ya z?(r^_48R5^pOzMTdc2D<8j7#$@h;MQf)@c^6n<`#3UmMJed;#zV^Le8H&`~t@cw@K zwiLgEy=FgzuZ&Z^4)*5cl)xW(ZVvVi!heHA>+vp|yrf*2eBP_y`egZe?_S5L@)PX5 z*Kx&(@*CWDA(d(JiSju-MBgjV=Al2^)+1cW2>&c7T@QX7Y$rm8dCNQ43&2mGdmW&= z0lk*vUj}R{hdnX*R_upnVj`k%fPM)#6X6ALK_;*w`0a3zgF*c6FGe^IE^ODuyh9dq zvh@~Y?tTK#wQw8Y7>m0{U`$8rtvu)+>;++ErbWG*P4x0J#CU<)88D1Cr+?#?~ADW)4ZLVCM#&sZnXFhJci+k?>*h#AFgYY zzC)^)9N*>pWlGTvNGBkjJl1ZF4nfZXdX_`?^n-o{=vU|?M$pGtME}A!(gFKI%jI+A z@{Yrwa|k1|+j|-#FHv~eyF_}$TW5d6dIV!F$Yyx|ZvSN7C+=tPz0HZ@D_(kYbGh^Z z-hjEsdu-mZxzEVgd$*^ZWA*Y!^IrCSG_PKMJ#DJ+vhPX2o{^8vz1~~TL+>N>{=D~j z{2e_08$4d~yl3Qle0NV-F1O=M-#xy+=l^}~GI^G_0Z+^2&pGU^{I@vlX%72>!w%;k z=CEfu>`M+ilz)iBp5w5uIP5_F0SIC6V z-^)C_GyhKCD?GHHL;u3V&jR{a9(o3$S9z$BQ`nF2GI__`S>8qt#dqmJ_W+010eX-_ z>16kvzSlUk8qh-=dWb_`=g`f7zF`frROxkVBb(*jICqIO-TNla*83$o-*Tt73E?Hu z`nl7+LiG~qy!S1Rdz0hd=D7QTJ0&%t*Pi!2C9Q*8d6)Opx47JR58*bc0?=j-eTPF^ zIP@++k8tSUIrM!FT@C0_4tq9&4lM=rV-9WM&|@6B0?^|edW1ty zaA+~0Cpq*ehknALen3Cv&<{BDGY-8O&{hupkV8*#=zjrvnnOS4&^8V&0JNP$k8$Yd z96ArsFF5ohho0e3H=ti~=qDWd6^B-~&Vd|ghio_mS+N<8&Vg-)t3|jLegpgl_&ee6 zgufg9KKT3KAA)}r{#m#ReDL@O_%lIo0bDP_#qf*Z42XwMX|SR2N5MIvXF1{1p8I(C zwBJ4lKJ9(y!Ow%g0R95_Mes>4D~5kN+&YBYu|NI;Iiig{JPX`VI49hAxJeRU@AvzTx3+NXWCi*3JRn!9)K- z=pP(=fXDonhY#{_Cy&vQf0yr{JVcUDxAhy$Nw?(0K4!n|>v@rzcIW7}d^Im_gMn)f zx7MuNhS^7o(X=&!jvlewR`trGb*X~nWX0{;KC_b%W~7HR+RJWrk+o3`lzNRv{YCT;175?UyQ zR!I|xlp>acZUofyND2i46bQm%QC3+`Zz1TmO+^%R5p?BM*;P@uii^0iy9oy^2Ymxb zv{+7+;g~R=AM~*?m0fwO6yCtr^_m>U)R$6 znw8e9I(ZAi>gY|!O6$q#FV&@5zpi`UnqB)RA?4}$FI9M^dxcbJKScc5e}%qnOO-SB zioe6hX8i;?eFDD_egi!>3q6;Hyf09FH2sJW|D5%s@~=_abJoMav{#<9(z^M&;!ru; za>1HY@d^AcSYumqD*jl0&iY4C(O!DadPtyp2il)?u`OcvR~59MUa(3)`DXc>(`nqN zrtiY<@2Bs&JE!7r2t98-j9A}Pyk7pg5Ken5Mlr5pa5^a`21 zvme3emrovZ&g70S7E`)s_g#AImm)hu8Cp6wkjG%jGZxsAD!vA8} ze*^3r1mE?rb%lLD6{wwp|62I_!~UybUoH4j+gD-V&jjifg8vHme;xK;4*PP!cNuKo zgnb)eZxDPNX64&n5BnbXT|&R-pig7~B_Iuu39tiZB8=(|C4k-=aLPmaCK>L{u%`iU z0j6`T4S>f1x$rvyzZ&SPJ-`jXyMasKKNXOObk%@lz&yC=9fMrhYk(U7RF6{KxdC>n zM>kV{;KzaK9FET4s1Dlz+zz}O@Hp&L&%O-%%fM8xy#f3t;2qfC0sav9L*OHTqp%+Z zJ^_3JxD#*|_Orly0AIp>9T<PTHULit&@rhQb>D|p>qGnH zRm?657V*~JS@w$FvYmI!YzG7lbhYf-ESc?^;PZRIr>Cq3K0SiZ9|WH(WdZmE1fMqr zpP$Npg3nKa&s&1ek7Y7j2W*wrA7;HY`-fRS2w`svVciJpD7v@ zODEO6lImGXXQj*})w19uX9XUbSmvzQx@=snciD>CxaI#@8`D~`+*u)OukY(yI>#m zf8Hu>nOyN_A=czYM+JQUqQ45U=`GLzlmG5)b}pbDElIXr)^}#mQzN?fCTb;ZbHlrhfq=gE z0`}D;-X^_nxtk=IUjiQoD_+Cg;Vq;O4PqDN$h?+>B7mM7-E3F#)ucguE z4P|#4qm6eON80puCPxfTJCW8ALm;sI8ucNbUf=7em*=dHN)ya0XE0k6Y&%gS7p#uk zb8OGSM$5YKT94qDW4jjiS$&Ph+GTZ1WhbuQ6t?KvHo@oh>aF1rmw5rBkUv-atypId7Ppz1Y^C=yC_*h1X{iX-FRfY{ zN{_Z(blXlV$y9kBGQQ5!)w+nkbp})XiZsriY1XnLbMf?Yqe$4}eqBfrCytT?b8*%0 z1Xq@@pL2__pOcRfVzstbG_xQ~Rs|1$JI4X_9;aGQUyErzz*d21HNuAAHKDWNX(s1>(h)4}$%VB=wH z6>Otm`weWE@1xAuD%u2li~e9bb@@sP}xD-KC8A?0(>eV5%Uw7e7CCW$F`*bgWuJ`F0UxNEqBKz2aBqweYI7D_aaX%3V z^z>WWWc1z&&H#BrqV%kN z>yuGt*TcB~VfQ{6EQm56f0(r=Jeh#sxlhi0*l`;zJtvfTBg(;GJ@hBF-mZC4#ohfR zHZ)G&{V)&y8-j!v`SML1N|y3)=-ew1sO{Nf`s&noep(kajTjOLETE~NHfSmf78m1I z7RgiMT#(ks?V$hh6isg`(hJo`AYeiaHk|K*#RaCXP}4;{zcK}meeK5>l1fu=djd_B zuE0&zwkIAnxBZHl(5=_uMyc0IvgBu)QayOLhB14gr5T>KUrEmo89PC-hHSlCD?ts+ zj)aWu2?XRl3ImR#?e4ot&WO{20Mqjba)bMcYG_5NH?~YAoYFq1U%=3F+8=bO_BrG+ zD^B2yk5zPsT?@zp*<%%C4CmpH)7B@D%dbM`?D&?#@y=NEI(*!KTU_=m$PnQZOfrum zRYjsqoHsh3s1r=YD=Ko_W;h@w%9J<{SxnMeOwnGZh|5%TlC&#D+3cx( zi=%AJc%FpLZDX^q3O?U1F1O_@dCazC$tSjdpdF^wb0n6KFlD^BHG$V<$s72jN5#EYB)+k-7&hC2R zF_bPdEWkK2$PfNDT~3^rOJ&l{m25aiT6Y@fUZH0i z(LQ~FZ+kD=NM53+#!hnMyp)r>`a`!%`U10Yzk}Wy3Ec+ba1!4a*c$E|k@ND0Y{bnp znQVt}+o$`$Bl|@zvruQl2!oT~TRdhvfdq)^Ne<@;;!K|A@Gfq?hT52IPQsn&P<^8G zsLx&D`aF5{N`S%5TGqv+k}<6Js=Yj=wUowo^pnitUZQ7QyX;SfYxg}+f78!mgdSSI zOiSdvoQ#?3S!O4B1)ksG*ML*@`O-<=2WC8t^Y7t=&=#rH*}b*6b1HJH&nVAu)m1+I zV%)}0Fl#xTU8{686$tovQ+B;x|0rZlSNsibjWS+Ueu8;%Jw3_ebOY3zD5w5DM)#&& zoT=@+g8N@lV++TR9ZNF4_tUUbeR(*p|A(L8)SmJ1h^e!$vv0Lc-V%=+IH5d`3#okC z$28+woc9UeLDc0ikG|@l-I}7abD6P7cllN2G^J8WdhK_oJXWeH_{`7hPx|HhVshqwA8BWvVTy^a(zLe}zKJ5&7(M=` z{5H8uf%d^oZnsRJR%H|K8Xr>}qCwxp43~KB_Zf6dM)W?7L+XCr#GWod3R0J}P2_fK z;&kFxN*!ksdt>uMG0BP2bMiKlE%Qj)-ZpWk7F*I%=cwbIlO4=N1^nX#f98}yH`yU; zy+2u%MLc=uB&}ObqEl8~RI9>#zk{79ZaXF+C(_OtQl)LoWPIJ1DBXr0cQ)r-KAA+K z_b`*miJWuYW?t7Z!eA^?NAk`*H!6HvMBFw%gx(JhlX<-48K;lI7k-jO(CMfxBQBBKjAEggYm;jYqS8m!$PAv?ryx?5EO7PECUSPhFDs$4$(s#Dz)+ zGwx$hZ9)j^U<{vhJ^L_2x-e(o2^=`UxMcfC`aSo__r($p-${|wyYEGx^CrzQ;PTzc zKE}=K&Paxx#Ca6e3ip-|j3m$OH>+_gYU>Chb;UHdpwAsL zN8>iu0u$9CG8gAUPj`u35?8U41;o*cf`1TnvvmNBXP(5hROMb zmxIhpPg_kQ@X5Jw1GG&84HM_qIP-8*?4XY+h;y;sm#@X`C~$T_*UdrC+T)Ac6AU=} zM9D07>j_#ynJdnn;`%xCy_;h+9}!HmKDz>t&dh1NAQKCxS57P}O{1?FphnNAGtam8;Os3%&s1y%_dHm{gx;+Sv;jIQ+*GabBpL5ESAmq`QbHYP8O)$#are}-1^HW@< zQ3W3hS@8J(Ev797bf~Vz!ChOJ_)1>74K5K8`H&MY$I^@61W`+?8`5XqW;fcI{tSPoGiY9#I-tSv5`fO<8PVZU^%s#2|6J4oPvly<^A-%a`_k0Xbhi7Go+!5#8pZ6)fkudZM(Ix#N+?Tx0%c(e zqFk2*d0-Ert*Slie=QXmwXl#KlNsFu~Dsx=tPXYG2#E_@uGqMeN21A}yFP-p= zIfrQM3+%E9vR2VnT3?D*W-G=7LblSjnApoI5b#)&HcDfBeq z9k)?%9Ec$!Ng}jPT7LnCid51U*nQ1xvX+Kc@`K@t1L5sM!VftgbkckFCgGRhS8aCO zW?Cm&hcDjD53SR38uOubbYJWPXHpEM)WpcyIJ1U*$T?^?J4x83MHo#1_mnY*WhP%* zcw`~3X+wK61tc@z39WGt)w7e@QV7;A+$qzq6G*w4EYYg*b;@n{rVR6WrAI^Job!@L zWvNc-$mFaZZ<13<3?=eh_7uY#O%iDJHq%wFAuHfzZG=||V;Gt{@RZE^*%rBm;*<||a*mF)c>!LSaJ&xF%!9ZOwhy0h{ zalpJpShuD>W>R6b=naZfl-^WOF#3E_G!A#fv93m`GMEW#Om)?n;rxgmT%g~YtLZmy zXM>!cWRCM{%e6BuEPQ^U7ImsAqq9#D%AW2`Cq)yYbi>Q&K2jZcBbi!Hw)0zzYwCQw zbrEw$&1A=S@_{UB^XWYsy2V3+T5!;rrMVSwac{ zckT@aQy?qZfIKQQ`tAc!w#W8Ixuv_l&nkQlwg<_HGf?icAlkanLSV;PTG`t6C( z&cnJOo0*BZB1sS8P1YPnLkQoC6QbuAJ_vc}#h@Rt*`$EP ztIJF2I*QKGy$E?6Axr!9gs*zBAjSEjgULJWrK#;O7IKBkx=nvXTWkl-f_`1Ol(d-s z(D_g@PcBr}RyD)7qTigv6Mgj-1M9*!IsJ?~iA*Ld&C`skD4I!3rOt9qT{j7UE<~>-O$lYpjn_De%wP5C&=s!>Fvj zN_QKg{WHtqdrIyvFBgr*e6(}M9gmp)So(m8naH_CZ4W0eNSc$>g*x9=rK=W=U4*u+ z9$H4vr7lz+<|kiu@uUXaZ0_?_{hmxJzoKT{YZN<>_L(j^KiXAUUAd`1zd|&20@A1- zk_MBL>#ax21_M9zk<1J)zappn{KA~_3k#`SWzV3qQ-4YC(=;QW>^e>gY?gJS!U%=r+40H?wEhWbn9{2R`T35A>O3MX| zC)i!OA7AyGxoz^7#JZ?Gq`S07oFeliO()$Q*o{+{KQpyk&}31qk7GU|c2!T+5PI(K zGREW0jQAM~Nc?n{$={ie(Jpph4Ax96W~g_nf{X5H)9+wnU5D%v*F$#3Wwwi4B6~DeO)*>r6QM0&tj!E32ZQp6iJpOcfn<=`Jb+?*49&U`x`{NTsCuxbg#e8jEix9 ztci7t+whKpoA4UjyMFuy7wkl_ZCFibvz-bjGwzRm?&Aq0VVlnQwqMmQZsCoaEut2} z*rpmuRC83jq=h7L&FiN>Xi{{tEt^bjo_Ln>KG&15#|Z94X0C+@(c1&64QR~^v$${$d!1pK4F<=nlte>`x0KRLEd^Z({k&U4;4K6 z5=S0F-Y#DgPnagHF|JU3YttNPVUosaA2un&e8u|> zVZJgw3BOwdt_r|a#+Hv1Mc_&bu5ynJ@?^7QfGd*up%*XXXMghf2#L5&+%hj&(>5h$ z#5_@(D4U#hUyx@{IxCti+V)H4buW{w6`J_N9=yI z!Q?~!25kA`jD#>PqG#hZT8&MfhW(k2iCmKtHN`+8BuU3050M(!+7*%r;>|i2kqN_= z6N=H~HZ%8|gJ_kp=LCt+%!zAKi`ooLl5Fz1{v6SLFkQ3_t*@51D4Jz0@@8p^teI;+ zIHc99yRgIxw|e&ZNa|e6@GTt*4)Vin--YzYoToLsS!=V@#1$rS3^#sw6O}2Ve1T4~Z^2eAa%u6IZWU6hmMO?(~m`ZjhNp_4+dT0Iy9UgkfQdCEuSe$P)b_H@#kqBZbPs7y_#to-lQW&!lc!hc2BLb zklbTlV-ZG!%xRx9qd8Jy+-+gg7FjH+5_5DW`FzxQ=GHfiZ&()1;x$dk-AD{-Wi!Jw z+qq_C`)%aQB>1#uXrNZ4?P*&+RZJv{%(O*I1a3loT#7zE8QgH~ z=pEY!dGdOh7RDeIP964K6tzeVqGo1W6y#mn&gSpLT%qxzriExXTWT!g7V(bJ3#TS) zTA0a?+)1)mc(g6z?K@51dmDbH|NgaWu>T(E66sENaqaP1t#+!MXbnxw4oQo;@ZqE^ z$Y@l!mre_n2W#&6FGG?UH&E(G&C$L+{Mca6HZ&dm z8UCK+$)h_R-S#MY*Ew-u3W)6>KZMGa5 z;CN7m&-;Vvw8k@yw~(`bQCceHuDxbp$wcai97zT~jJf2h~42#sM=(Xa5`y8h_G53y@5%em&28D!%gH2u^W`g)t5y)n)5 zt&(j~F2cuTm7ikT8220}U2|&8jN9#`yC{tNjFax8JTt>(n(SrV+I3TONo1?pm{s5v z;ly#1X)IpknzPPfc+e~(Bs^b7XC5db)SW!{xt^Rhu@6 zb1f;4c_j<`4!$G4_bJ$p*xnz$2dmbC%1iam?X~nsL`!SQaGm3~>A2Yd2 zg_DG5MXjv+Ez`YTCYSXNTSvwm##iO9_~{;25!P9j;3{W+XjiK3jpXk%*sVSF8(*wW z{OkzhZ*Wr2wap&&IQ*XQ@y@E`De7S6D$mzRiG=QxKIG#j{v(O#q&Z7E^PSm_mCnVE z*PMGDKRDgw8^`dMV)ou`bz85f#alB+jw757f48Vd?7pIrxn&a$n(jF!a!c{GxX3Lo ze%5qPr`Y|BNp?&_#$hoU3|zyv?5%O#eVkylGOd zw#~WB*)xo@j27F|_G5OPafa~&TdXd@sAW#ytuywjXBgSa z`GUWxvdwpojVE5hsLMrIu4L@=}bM|S6~YCwqdqAa=6dM$Tt}91k-H}p*<)arKf33JP?KY zT4GV$o@+lnQss~{KAi924VYlA?Y>;@bG)g6_YpbV*PD1l+-~6wE(zX6yDx`1OHW`! zdW+|Sfs?@>{51W910o_T5@+7hc{%V{k8ZfUqy$GDDM%|pNDDidcI`|WSC9Q!#uE(e z#D1k7H9dQBFP$emYr0j zr|-&rOp=VUf+TY(WO!l^(P_$5c)7uen3n?&Tob3@76ZyD^)RWB@qQ*n?M*=HPxLbg zzi|Cpz}&CDpX4NXZT4${)xlo+rV=08e^u&RN0rIAaewxIi6=TT!TGBG3;t?5>6Z3< zND*S!KAN?8z)+a5p8hjGlUoE~~C*UHW>)b-_+t=`(iO z(~-ZSAL-<1z2|Y;N91|V&exOf-}P1Dt%3(l;#2zicpNcxs7d$aehsLT`oFXX18k7T zZSBwwO;tTfrE#*64wIws%EreY?GL2mT@8tcAu)&(?7Qe^aWbid{c0ac`@&CY=sRbZ z{NisIqXG~INCJ!k=mE0<3jucmx(~dM{U7$#-hiTy>W5!l>kW*(+8cP{S};)Ce-No& z=_B3OuU!i~+Q+883HRZ?Kj8OJ9|P)T*LeMtx*qj5oP5)AeA*WbOz!8%eo(xIczClY zQ{jCDu6=#Icu9rHTo#9Nct~vV=3Faelbax3*z_=+{@_n-cYZl)pqiwo<>+t38z@(}-HUfAOQ>Zvi-;*1s9Hoyg1B|EZtm z-3I&Q{@4BM>zRV}mDyzd;&t^+pqbhy(>+i|)A{InnqHcEO-=1tSH&ssc}Vv})Zd@` zn9SdM*V~`5T*f^)!oO>wH>M*yWlZ{hKb!tLzbO4>|Hj26?cbJA9qjhx9-m1mR8B8n2b{=)7vnSqbu}I79lqXI84SGI*NZz{#AEXJ)z9#!5(BN%>+2U^Q6H?oYVX#N z?s(iTEUw>Y`rGMZ#QLeP7cLIB^ zI;(xaN3XtFO=bVcRbD64zpd`6_F(sQO8;R$m#6WL4#$4$>NtI`I>o{0d#cn%g~y7;XL+zCHUGi_hCOn=;XkLOo zu?N6?%NU0PGBLIgUoa?D5wa6H;4S#o0)Bu_H~{y4KnoxWZVR9aa0lYkzV;IAO*(OT z(iZHu@VMXPZE-S1!dc&KiQ|Y7@9N+N32qd5nZ2U&1t_beN3=imMh^|A`sPL&?c$%K z!5Lin0)&WrLgPdvZo+{mj8^o^1G@8jIk5IB-e`5tVO;ceAncy&ZM=QBuyd;w_dtjD zK!*noU>_J~ALoK3iW51|a**C!;yv!ulch6WP%oV!E7sV)(ag6slq+>UHAJ!dOmCCE zzN{bbzt&fh)CJ79wr?xz%3rF?wl&ytsj4^@9tiPn*Z6}!`508^Ra;n8wslndF=i7Zu{$krk9ar$JTGKd1_fgvE zMulSjYK5|GwIb&9YL$*;EaBT5lga!wS^1i^>67QLT{XFF?Q8kg#-!CLYj&*pV$JEb zs__obQgu^m8B?z&TmREk?=hA=pkIu=-36uuM?%3|jL^Fa8q_X_v-r4UmnKOudqt9R z>xzkG2`jWQ$5+_ZO5Hffd37(Z*RL8?tY7iV0{!Z;f?cb(6kk})>8sb~m4B^f^h@|# zbqh?k)pe_0T-CKo=cseM=;(6Pt$1-o*NTiab!%Q+)3qjJ?Tc%>)_$^9S2nMxUVUV3 zYFU#!bh&VZE#`9yqQy^!j{<a6cnSdPC>`#Z@;FE74@no+R;jE+6mz6B!OUVeRb@U>N>7kGEZqn0 zuvjdgS~@VkKZsMyt(F$cW2Uj4xt>zXbj(^W_GV%Gm1;^~Z-J)W!WXw$$VsQK+%m`F zGL9nUmMY*B%+s?wM|OP|04J>}C=N{T5ZacO)Hnmnf>p>(~&c<{EN zjowIO_b0#8Y-zPTZ|Q!Adq;KKF4M^Y%4!SA@q2ouEtXQtN}0mEURGy`@$JJbknV@= z);v?n@M%d)OEKcynx?+Jl;lY~`%K@Rf{Xg*^?2u6XdWb~9vte=xe3 zCUY&raH>7#Oa}RdTp)>3*yZZCG^dA(aR!*UvbuP1?+ERPyTkWuE1 zVgGDWXK6F)$&bba^9jL^q`EaICGKo8y3!PMjZF|e#xK1=aWq0vHUXs-4K=5Y~t z6LzYHAP3!_Uo$U3dwALMOS%?oXohmRpUxqEVfn%`%QDU4!!7R37RIG|mSkBxB>Ogx zaCg$HI#+CGai=@iL-a-KL@tt<>v zSog*iH1-odQG5J7)yavZsboqnIo0eVX(hJnX+-*a6qP75j1uz{UWMNno0{yx9g||4 z%*OCL{1VcAE0^aC^S5xIW)`0kxj$V<%Svy!cW2gmE@#T1&s!}2k%!d+u-T%OEc6cL z=uV_U`T2#1d8Q$me&w>qvQsD{+9hYU=is^)3$5i+tZ+}F&U1u1pWOKn=i`kck?}fj zvNW-UB8jn?xsDxam2rx$z$`LnLqel4hu}%EZJIyQc1bsIXv5y*Ki6x!XXCn^epYC0 z%%43={4DN?=>7kZ_x#yMA=?a}U^AMu0~G)8h}x@@TP+FqB%>xXtEb{Pkb8s&KS@lx>myKHG2Y&)WR< z|FWqHRO4Sa{pgKNVA8~KGG_d4qA`w1 zk|)vkp6Tw=CG0M_OxL_&`NAI1kKP`?m~`WQ107Gh4{R|hPd%o_4Ul7VQ|Jod&kH}8 z#}xM-3&n`dmUoH~D{y0K{z2}u!rYH#rl?gDGwdn0I{Ur07wtQ2UG^^o?hpPG_i_J{ zd&;}Uco-ZW28SQ`yAM1ho#B}W&Zc^zC1YY({55;lry)#9$?>_#!yE*VsnR|8ckGFrpRw)-ms()4N(==O&w;t)Ap3@q)nCo8sfz2n2A%EGpJ2b zZp^8SQNNe{fxKhUkWnKSP31p$8?VrcbWGvzi5nEy>+;AY$w~4UoLU#On|i~wiSupT z5uAGIZW7=sG;iCBAVxvK2A+GUP1;r5(?wMUhQTr$BW3%kDe z5FcZpF?+p48`4~azlQXK{r&w-Ff1WiN+B1yr&Jxv1-FF^TaZhWhTh$}?uQP{%Jw{v zt;f5E88e%TcbN)LrI%;SJg(kl;$ce{Y?C@w`ex+<6TTC4OyQgKiBStooH5xv)3II7 z8Clp8%#S-haTFIZK89B~2D#z&D$t6|Q_`CFD2Gdq{$SJ@MP`+Gi=*5j;=jiI(q?%$ zWoW)89o{!J&v3B(S^uMY5wwQU^cl+Z0M5$sc_Ciu1g58Y80aPC3zmR?tP~0M&O&)& zpTti0JFa8iXCthj=X(xd9{7&zogEgGnVODgFD3`ao}2Jj%p=0~Ngpsq=WQL9CyoZc ziTK^k4u(@Z4PS$Bik}@q_p2j=bkTnf(WTJve_^nbKo|hpN5IrQ6yO{%w4~G#p%+m{ z2i_0<5b!6!M*t7NOB}bG?=zRqxog@Tch2Ld&6#t@oXLFcvKqdA6`#JEuV1#Rv9_{? zUtY(LH%ux_#lAAlRYou|VmL;|C>g?Xtc+En%WxtYJ`E!r$H_P)N5q_1CRU1xgpAm&@_uG;yXl zSIkS&B$<+22`^2PW=f}{633!rf*J&iXWK;snxCIE^669JO|lL5tm62L8hTLDu5 zMnEaR1TX_`&V!bPnq7DwA9wZ131rwYT2Ac0mXnT!!^rTFQw&_w9gLI;5X^5uHv%|9 z=fgXk^u5;+DGwMpV+CQLys6m-IyG>F?#RSM;%G&ijS3n#el{bf!VB{%=x9Ae=!|Q% zghCPzI@KJ4&kF_FeI0a^eorNSCMXGgE1iNqZAyoPSVXjYQx@O6iLP0!A{5dyDBW!X zbnk}gDh`Fxqj}QzYDZ^My6FRSAKXM|yL~L7kd;m8$_D5@3e(YYQ2r|L_zH!bTuL{C z(E6kN9la^NNO{NPQM&Sh^t?CG@kU51V61`C%^aZn^d`DUdB^2by4x8pTz_Z&1zo{- zN;gYLZ)v4-;>5yy!+k4j7p-onY+SzbzE!o2_pMpp&{(;sb~3-Va#>?-4Ig$>rBJtg zB|kt+J(jO-TvcCF%U3O5y{u*xpSiSt*<|XEq$$qIb*h>7cg|b_pPoz7yea4!AeKP30{Te<$3uPek(T zfE)h@+^`C|dKR^yOVWPK>@-ZL{g?;PKD<{khJIlRLY{shD`46$SWr+ML2YldESl|)B9O_#QObtzkr1dJsr%>hrT#QuivK6_y}6!wqJWyJhp_Mts^AlLmr@6W ziDD{Kly92faMUj*1x%#=hPsVI!s(bpO(b4~k4U_sZX+cOw;LPgkB(c^+{}kj@FkcQ zge>&$QqUeF1)dHp6R@1ffjzh&f~zHD3#57+FoS<|OrQo=wS+zqsgFFksrjGan@2hV z-%JPt5hH;1!3aOpP0h`8)Q<`CNb$|#MoIuf`K2sJ+BL$rkp{xt9M25Dc|YSHX`e{D zP;3M=h3i8U##|Uvy>ll9YFZ}xlL;gT7V;Y+FGd;;6G=bPz7hA&^$#jvk?{YC{=riQ z{#PH+S`g~hNG;*|h{#Pu{{R1~4$}?n9k3s!8ag+85727VVn`hv>#BD9YReSGFM-3hCsktMBggHASkxJ;iT^ys}=-gcn#X;xqiHam)&W=?aKaJA! zwNeYkFm(MvO%wpx-+&|j6#u(?)c-Ocb3!B^I(CS7l`wWt9d&blwERXur2KRaMopw1 zX!}lr?xFat;6vLf9SflDVef|GMck7x>7o9ed-v|8_}ehvyZ2kc4d>7MgZ9RBnH$`b zAPhpfSPxT7*Tw&b_=fa{z02On_N8|tS0fx1KT{Z~Q0pT|>b zRKA-bh*Z8QrgB3KrDHl&H_Ug*^)W*EXn3Sw(f%X>MEX-i&S-ePK_#SD5T=i~F}w=? zv@EnQQbT2lknevSj$hg@BK{Ps;6vx?1Q8?kS3%t{vjOz)lgtrZ|EzCK@aJh*SpQPD zzm0oECDt~5wV=Q(aprb!n}vNl|+K;wt|VGlRs)g zxI+?l%Od_^x(FYUeE%CaPGLgjDy3)gxHs^aSN^;;NAQQJ(#R1i6Ks>(2xP>K83uofl6212 z>?EWDQ>?YfiaGw`i?6<3vIAL*eD8Bew}d2(V(2Ky$t>g-&%r0ZhVHZ^;E*l>lbp{e zL$u@dCBA#JVG$tOc3Rg1WrXpun3kJNrD*fTUe2hnsB(g zy_X!IGD!6pWJpPvg^Z|{B)mV5jF25gdT-bXwgD^`eLjgqZg8KdOM2QpbS$`h?jOdKxD#Y01~C9Go@ zISP$au#(ySqgaMN#}^yK-=A%Q8gS4OC`pHGDp6qyC`pi#CKY*pC&o91cGafoC z5oo{>q8btV9AnpU!QiWRI7M6$DSRv_-ATSDkQ&u(`L(L?YtotVi_#OZ$Xs2M&#b&_ zyh`7A7c(t?Q6d>vwk-{xwu5yoP&;WFTbeK`5v*?}O;Gg@M13YPK1yDbL9da8D4a@F zDT><3B}}}ZiB~B@g$>ViiXtr^dV=i*Np z{iA~+zc>q{fQ08VsUj>}z8B#yLIugxUo0b;D<=_EdpS|rnAc>ODKzma1s?GGidAl4 zI2i;7Qpa5ueTm&tmSM3+Dn7I#Hg>mo*r*@zDzGS#`J5y+{hkc#J}a`D554{6@swj^ zY<34e05g9Qh#mMa;TKZV?%KiIgzX*hcBqQPGXknWFocQB93f)XOhNv5nF{j1t4~RP0wVbX25fHAtTt z72haTj}lS3-zUVQrKs(95oHN=Ip^Gk@HTPX>Q%L4R?_X^s^yg{YwlZBv$AsOef5#O zHejallih`)yr3|tgUY3S2dzo zODQXk+LevS5`Jw+Z`x;RSxX zbVHF7`-DrER^PV@+mqOpypNtx&~3=Do3F2N(hWyTY1zzaQ_&7WqIb@kIUhF`?wnOV z>yBT{0-ia4Jegy@ousc4lIItM(#{Q`d-yT8-t3i^mq+d>PbGrHr&24QiF~ToHP)`e zN8bOfftWWeucQLACLP^m9lx@2@sj1>T0s2P$?eYgetU zhj7)_rTY0$FDTKmei5XW48)$*mayrXhu<0`(fa!KtnzHa66r96bUwrcru zTn8d|&NacgbZI53X({AY5h?(W!t*q2+44pl?bJ8cqley4vvD9#BxXml%aI3PwYsqp zjezdhxO(L>9RJh_fveWxIA|$4Lv(2)ERIGhl!ODI2crj<^;JCEGCY{|0aYnKgF1==0myS9E!ZB2;HRVe)c2f36vA!`(n3M3zr zix7WQIKrZ+_!&+G`kKnd%1~SUD>kc8q9x!o4~-OkGkaC5>rf|yEaK3u0gao!Iu|9t zCj7F-RoG599}Q9ywh zc`c%yt-2CzysTjzUscP~W?h%dueC!V^FjrIkMxFy)%+?)ZFPNJeQgao81}IMGjVo! z$IO|f^RP&z_IY<#z$Vylzhl<4d8Kpirv9_;ynWi7GPB@6uk7||)bI9bbLW=cHf=5$ z>_wT>{BxJuf?<28!TDm?gndf|!~Bd15tszS{*0mFJZ1R*V{=l>7+(NTHWp&8QUjod z?tx&+C#+>oVCE}_#*ECxbD=y(Aq?I>V>WJjVbi8}TQ_am7z*4NJQEBa^5fcDgt!6c z{rww?gryAiQx$C(>QtAM`2BvhnjS4uqb}Kq$b)Xdt0cV0g3gEWAEFshBg81FGnwi_ z(FM;#t?$0udMF&85~Im?9))oVw4|gCrbLYlLhdOAQw%VUZePg#K=lLFFpK$xu3^!SxHRFt^K#A#7O8W1_tb_)#{BAh6&9M1~?S{z?m~= z*5kV`ZD`wR!(m%d!{NgXMash)LIlDut+J4FAiZ#XhTO;^%s;ik3}y%xl>N$ZsE~%i z)^9TmNt|?a;1z*EliASUkU8j76%}pR5Xm0iXuJ(YgUvTcDA>?^CCHzI`9V?BZlq{H z>H<)2wR*$h4>~qTBo80n5Glb2hm~rB?eN2)XhjVTMQhHYz19eBG>t735dH_^;@;tK4c*63D9$bj=O^VDslVYI}dK%}ok=|ZVcFL-?M z#TREg!u+Xdh4fQ~LiE=m0UM~qUk|xU>OMdTJ3a_^P}0*t1MBJ zuCK7$X6qgj|BJ(i>n4ZXG$$duaDG(y1XB_UPZ6YHu)lX9E2k5gc7?*bZGsud@9=m1 z{b){@aQaI|1xC?8EC%wIVC(=RqCg$-pPoR%@1AHr=#O36U{jT`6R zz%NZ&FyZvWu7*g5qwY^X{j~qPhDiAv&>J_P(nD@qmqHzc%in+aVcK{fMC7j|)LjgQ za5#Yma}*^H=&O=Y_faZ^aN3%obbscTYFh}$KZQ7z8wUC-@!4#&wjl%qbQ=ys03!95 zjGP)k9`4_iXv1N2f`M?{5O7kS2jrQoq2xz5CIUUQ zhz|*f#8(*%*J<$zlMxa!Lh**w2hD9jzknnp0O9th?uMeGq3tBlLkTD&UFs;+r{Vq- zgQ7ZU1qsqAC_d_f31v>hD2>`7xYwKwc@Oy&dUzx`jGvMI9Ex!io3(-o>1)W|4eg1@ z_+v&xMfOtg66_EuwL80x0< zL*0ilJqar`nl;#=?g9OVaW$l%2J{DrE)^DT?Ce}d>2Wiv;powRS|NWGoFRT`3x(xJ z;CIj+;&;$(a2~y(K54j6y%G69d`eA~K2`aLQQD9RrGGda8p)3ixI*s>w|7xPjZIL2 zUDpNvFfXB#Av$Lf+&xE+_I!Bs3uK9mU}Cfgp`o22`Jm&%(DtG2J+%I4c!;AAKh%8# z{}8Yt{R^(c5rr${M@ky-=FpJgh|UK{xb7&0!GQm^j!5~0NOTPC5Nx5Je%k#*R-3P? zt^rJ(g;u;3USW6LU)!dHNKkH+j!t3*5-4owY$zOX;jpLyJ|TD9)EocZx%b9@pRc{~ zACmq#({qDok9xpe7&2GFIKoB$4ep!iuSf>yBXkigaNU1X_!UW5H{i@LWCq*8W*qzcAl)IUty@J2VfEcw#Fl>>oj+B9<`80DUBWBwWCw)C2Tk{w7AsBjAaKDT7(T zHpOsbcz|9%8DfGYa8vvNdVvaCRuO7}E-*+h@N;u`Vc`IMBz}bda5}*o@+&MH;5Smf zNPYqyQr@utl$+uYq!;2xeRKWZ++G9qCoF=7{6zSRcy-@oVsA2Gx*OOfYtD9dcAgFC zdqUS%okyX9pxCK_s-(RUhPnhp=l?Ka$6=^6bjX1L1(Q!C*BRC?lqfX(VtnloqO3U^ zs$Ich^d(D%>UTEA*)h~D%+C+g?7kD|NeX5xx6%|#LT>zS#1d>!!-yns|F|)n8A&$S zY{=SXNDk9S^y}eBd~}x3|FB1Rc@ar5JbfO}VbG8$u`=S0(Nc~2PiANZs6jiZjR@+S z{tp>J9Y#1Az>&c`;xQOIR+!#hYG^14m8U_FtOy+rz3P-|*HQ?#R>B_TyVTJD}Rup?qa3lF;|Lp*~ggY)Em9>d8CWZ5S3s7p-Vz{$qy&EU!qIe8-oTy%2-&kW|t z4Lls8E)1azz6=3CjZQ$V!3EglkcgNllATD}68ZEQjVA|+h=Y8^53}AGXoW9>(_}$r?MZTMlMjiC z;c;0bw>n5sk)W6~Oh1P6feyRKtPXUb$>fhRvYT(onQ%-_VilWwPhDiPh57`LW*|EY E09h|tZU6uP delta 55 zcmdlHaUx(t3(w>PewNKPyc3u=YY496-E1V!$2fTdC)?&zN+ukW<#@#=pVJnZtf4(& KvX%mfodp0MqY}6P diff --git a/TegraRcmGUI/shofel2/imx_usb.bat b/TegraRcmGUI/shofel2/imx_usb.bat new file mode 100644 index 0000000..1c39f94 --- /dev/null +++ b/TegraRcmGUI/shofel2/imx_usb.bat @@ -0,0 +1,3 @@ +cd shofel2 +imx_usb.exe -c conf/ +ping 127.0.0.1 -n 6 > nul diff --git a/TegraRcmGUI/tools/biskeydump_usb.bin b/TegraRcmGUI/tools/biskeydump_usb.bin new file mode 100644 index 0000000000000000000000000000000000000000..4e40938295966330486e1e30e19061412971d3a4 GIT binary patch literal 66216 zcmbrn34ByVwm)9C`*wOsXC*)qw(i>-31LYHL1KVQE=D>V-H|ubH%4qVkOm24Mjy{{ z=1m$zB@PONpd5M~1jPjhHN<5AmuVn~3vuEyNeChR`&Qjf2*}KP@Bh!| zbGlBQs#|sHRMn|dr|RAi(sYXa|A4=DOgyuTY&+|UoqL)iu2Tj=41Uwv(~Xn1on0rc zJ*{qTI>ozc+j!S~Z9FMCbuko5US-;LmY8ybBSRBU-Q5CwPt%zyltE&f&MXP1eV9SM zI|2Z2XDFSR0FwYBzy0$qiXMO@|-#+(U&>NBePWps%~t~Q!|=K zKrN+IHK?4)eR_0gB9}!-Hf_5=NP~*Row7g%(Wqg|r*fYm#GTH? zH>ImHn$mkhp==eW&{o7YrQbJ6q0x5IvN$4|)TWi@?ZCGKe*(CfbDc7CqRC!axsJlt$&X(iD~#q4K)v6gNpSsfZu)y6Mz*;Ew}0b2ptbr%NV*10DEw;Ew|*aa;@OFm%Tr;0_S9Z-+`HQlMEA5!cPpJN3ymv44$`6Jz%|WB)hL#O~7-TJ9m^ z^v6P7M?$m?Rf}d036g`H#Zslz)L+N!^PCs~Zpb)wi^dtja)r7Mhx+-UeCz^0G@s3~ zW>VEYo+Q{fyV^U6kdCjqExyUQsupfK8Q*!VinW1|yY`JD#KMzk!tID7sf62L?BFiM z6$D6|hugfIEcBl7Mi;avHd!jkW^R;Z^O{Jgt0m;O2)@l^h-C5lEjN?Xi;{DDj|CSI zt(5DTwfunUfDZC-9p%JOC{!I=;3rl44trt>&MdT$n0(#jlNIPUd#Gzy$Y9Ij5=^9{ zy8DTx;O>~horSEPJi_PrCLckWoZSdA8`DNgUl zI59;E*BlKQbiU|+-HaqTb-%k@#MmY zr9bHW_D+&6`t1hkeLO{L&EkHiOGhd1IpajXZ~~MPu9{?v?-Uu(62Fb++0FHlDdJGc zFTClD62AbYmHVA4PHfJPl7_N)w!T#xZ%mc^wgYpsS-F*}->Fl?SLPZd8rLjc#QSZ# zRZ-&pxkIJtcqT%Ak#Dy9%~|RUaQq_USR*^t7Nl6Jk>TT`eZg0H4HL+rK35y886N~&)^ zAFs&(ueDq)a;Nz8h8pBnk)T6|C#nmpi_E?h(d=!^7)s)OA@wlL3^C~VeSWkwOtgDb zeFynt>S^LVbJL}1$Th+DqAF-#&Pr@0tvXg>v{M@==~3FU!X>OUtO1Ax%}uEPh#I_# zq~0JcM2{1+DAjjN9TaLIQ_>K}N=?Q5qC8$%q5)-;Ie%Sf@ChPMf;O(!;0XIB1E;Ktkd zj8z_eM&WHCgrsiGZSAB?CUpV{Ss#~5-4ilHnOZrncv^IvlrG9{t(Mh>>3}(^?(5=4SEGD7vK3D@xQ~$8o^rn2m>`|WPY@g3xt`O`5}iRD zN^DZ}#x3qQZTrniuaq0h`7(D6xzW?3ZjBVA6NLh}p6#(lmGcQwOkJ7#lfop~5EHLW zcF$U7;EtN(^-coZqsQz_cJrAul_NC$K)S(qTiza9JQuG|cIy`_Io`(e?-^QE$?n}` zmh99xqvE7DpdXUlH_C^K@6}~s*87F#xziY>mOrQ)F1}VABTW^@xM#@=@@isgB4VVO z+)Vu#_ikT`HbxqQT1Ux?jr(jRyi)2B^^wRp>4k8qdy0Ed>aJosn!ste41=Wb)s8Zr zv{Bxl&TsT=kE~JGyV}WYIlu?z28>22M{IP>k{>UwfwnbEdQPvecWo==WvkXK)w|v{ zA0cHJ)lWtm$!_&6u7>;-o*KT!n1cD~AW803o-sl|mnj;h*t*Z%8wy9s8>Lb138c1Y zmK-O>koC@~QVeTZv98ao=c2_K(!+CSh<%RHZZo(DsRFtjF;nWZub!JDmVuM~{1L{< zJ?Q!B!X!61jR{1UrGWJhMN|vQZaPCT+x2y*H4Z(-Pbrh@Br_>i2|m4(5Q? ze|$eT$sMLQutDjN@sTkvp)RwyXgxPW{ z+KxO83Fw0|*Nt*WH$%LBu3efT&Ii|>wrU4$d8TCLtokxnCCQUBqT;m)5_z=D#iy5f z4oGFLjwyCXF-H_ghIBohfp~Hu>I-mo@w&oclAV?HG$`e2hd5QrES@UfiadR`Hr;ql znwTR^g4{bDWv*)Sj@+XTIzpOkQGm4R8dmC3WF64AX$7g&RV}>auwi_!m&p2q=>0?J zm{21Fh-p~j#v%S-<@rQu4c6M!x(u-thJm{|B3uI zqHxe>J}f_ul*>G{LBl9q#7P0+7<5B3_^2hTJO?#`I$J#AFi4%|S`vcpJn42q+ieFI zr0yj6c*Q|A&U%UVhr$P}2aRw-njMcv9K?ut5*+L*q`EtqwRd|osjJaGjVGxrs3cORQdxwiDm=UgSu|cHi}wa( z@#s~uc<-9BSj#wh+(CP-*&G5lT;1al?^$cYb_3;xO71YU!FE09kO_@f3o9WJ_e{pm z%zl~NgHiDZr!w~rV_fvh#7OSSU+z@qD(x9671C(H9Qcis&ZoojSGpa#1#HmQt6)_ms6d1~QjgxmJCts}0(&Jc7M->uD*` ztYzllWt|YB#>*)1<+Cu)2wg(? zUA{CuqSwA(Ls!W1yc$vip39e7Vbf5a>H4!h@@H#}nyw5Ha+YepF^ocxcu zHR@^NKMK=f!^rOMi&x2xh-O%%RI=Yevd!jO(f)o3eN9(E_k;2@O*5=N+BT&&NGMXN zt=1fbd>qj;BW}eQgI%IJUZ^)rW2N&m2ABTvFG_Dg>CFx*|AS%qUtKzFi#b{!A-msk z(z5C3c$-=S7#p(tFlts(H<%AvmD*_zI!2Wo{m+v++5HNAPGvP1r6E|Q{{q{9Y#bjs zUTr6%+^@mT=FsXt&(%j!TcY00%P$mJ^=VkW6Y4TaLOq{Z4-4UdeI#A$BdzK(*M71B zPw1n}Qj2w(*am&~pgdDQU7YE_Zg1n`&QVx}Uz2WerIFpXcGzCiutVPJv}0$y**V|U zYo0AD^CMGwEIi+Pt-7d@g}KXF>WPnzk0^ER%n9Wvl1z|p&+Bt! z!dhru6w<^;(3M(Qr*Dv#80Z?^Y9$*>U0MOs!I}_5675Ou+nFskO?mzXob+pEUFOQ&wi5k#>}unr*M*{@6fwzN0xQ1H z_M)h8uk3ay_czEpjg)t?G1;xP&T-!2c@n*mO17alZj>Ej4oQ%xM!Zp`R&at86zUMm zm4_KZ!g6kyI4$3fz2$sYw=}$yFj}ecq8yXAcXxBg8f5Q0cZLpqz)}np7XB( zt(WeVVEj-c2)0b94z$ma-d9-a8YRC5%Q=-iH!yaGNf+{miQU3z^iwPJWSp2T_1gcL zPsiCTdAZ7|Pe-r(81AQDTdTfZohoX`>y9|dsd5^U+#OTK``R@r=y$q<_}3 z9`z#gN>Dk`x?U)XmL`b1uhEic|5Zz(m6lLDM%lZ~n?m<)jm6G^cF>aJq^+!kEk(I< zZP?R7`$7*-3zfv1)=fpS3@g!aL`ByE6=b1Eq7*BEQo``{vioo5!!~LkoW?%!a@z&$ z->Cgwjx{wwdH`$qaX}fUtBPu&DXzB4+rne~kIphro1slr=CYHwpjVYzGo(tkAAt41 z%KI(KQ;{-PH@q3wD$N>wdB*gY_V%FCP zwwJl$mv(AONX9QXE)Ul+ZxF}t45~vMR7YO1z_dX=d|tJhp%|Y5+j6p8H=m7_C!^c7 z6Qp--q;5Xj3n?5cqi-Tc-(Xn^QWkby=b=T)nae?f5|zm zArP*iV?Z{ISJcoin>U2Bg;X*n*v|}>&8ct=xpK3O)V6C{p}hjO%hH)GxBa3GO#?N& zZKbnCsUuZ-AANac|NgabsALm6u^!&y^4rP@>~PrZHj*^(x`RfG`UfmNQN1iK22 zAHA>a(3N$BwU4c+rLI>8+UJ}S8mRwr?L(!*!tQIduoHe^WnWQ=9^vY4=lxdbFy;qf zdj`yPjIihc+go4mr=qKB>DLH92phn4pRLSAy~ULpWfpf@KeSQ*sM3GvmFRL--XjBC zE3@M25xY!%e*b@Y48qkzvmitxLM!c;`%i_vX@6x(N#5^=C4&lAW~_CbD)O3 z*QjAyxQ1C*)bOM&Gu)$ey~4OrU#kY|AlpNkc`sd2Lw|q1B#a67C-sXe{rM!uztWqu z2J~i>(wn9MZVy~hmNNdM!rTtOg4;+Y4=V2)|TTjojKPwrh3d6gj^A6$-JDd!mYxw@S929=X4y;HmZt75M`*9H}dTrx16L3QK5UkbF zXlKw2YZX44C(Ier=XRy7M@WCKuDk}1_k?-u@74cgz1q3BzgNE)%;Uf5)rD7;bB9vS zo&Du}Ik=o~uiknMe&$_Oj+>RUzp}razYi|Q@ULZ-%gRwCHcS#BpB7lxCFFijudrJa z536R1Br+>J&-0_&&(6<+D4S{kWqee!5q#Y>cpMkzQ5nH0;ILJoBbe@Ml%72`h|Biy z2)WisOS+<@VJPX#t4caOxTNqHNw@}25h&?nn=(cQ>z9$x9n`LY4bx$zcqp_s4PhoA zM~VMqHo`&x9b5D)33CV@?_S$}jWW7=21Zv28(kUFnef>9r?Y=-U8{Bd8bguO*J$0R zSGBHfQ0w}2#_4Oc?n<5U2}=6>s*(oj9yYqZgDjMDC$q~J`Rc^4-_1*mnd@)L?U!l}~ zn{;0xEwSJ7`d-+DHGWSa9TlrE<^mXV)GpnHmEoBpti>qrwAybi53j>)<)Nox@W#

nwvb2gkLF%;*V>`9b607Dl?4=we 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

d4vfFe@2*tup417U^Z|bAGxC6YAId1 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

lHN1yXVoEwn6$ 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 S^-=WohEF#la3cad0{;b{;dK!J literal 0 HcmV?d00001 diff --git a/TegraRcmGUI/tools/memloader/memloader_usb.bin b/TegraRcmGUI/tools/memloader/memloader_usb.bin new file mode 100644 index 0000000000000000000000000000000000000000..0fbe61599e9e4cc9f5e4e1cc87c609e40958da93 GIT binary patch literal 124088 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

ufhrImMRT@WJ;ma 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 z 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%0D7jkBWo^IQL;RzE*=zWkY5%h8xYYRmPt^R) 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∾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 b?ZTBaD#!if|9QFnH%I@Lz`rFxCGdX$L4)1( literal 0 HcmV?d00001 diff --git a/TegraRcmGUI/memloader/u-boot.elf b/TegraRcmGUI/tools/memloader/u-boot.elf similarity index 100% rename from TegraRcmGUI/memloader/u-boot.elf rename to TegraRcmGUI/tools/memloader/u-boot.elf diff --git a/TegraRcmGUI/tools/memloader/ums_boot0.ini b/TegraRcmGUI/tools/memloader/ums_boot0.ini new file mode 100644 index 0000000..7061035 --- /dev/null +++ b/TegraRcmGUI/tools/memloader/ums_boot0.ini @@ -0,0 +1,14 @@ +[load:PH_0] +if=/u-boot.elf +skip=0x00010000 +count=0x0006e13f +dst=0x80110000 + +[load:script] +if=ums_emmc_boot0.scr.img +dst=0x80100000 + +[boot:ENTRY] +pc=0x80110000 +maxMemoryFreq=200 +pwroffHoldTime=4 diff --git a/TegraRcmGUI/tools/memloader/ums_boot1.ini b/TegraRcmGUI/tools/memloader/ums_boot1.ini new file mode 100644 index 0000000..6c93341 --- /dev/null +++ b/TegraRcmGUI/tools/memloader/ums_boot1.ini @@ -0,0 +1,14 @@ +[load:PH_0] +if=/u-boot.elf +skip=0x00010000 +count=0x0006e13f +dst=0x80110000 + +[load:script] +if=ums_emmc_boot1.scr.img +dst=0x80100000 + +[boot:ENTRY] +pc=0x80110000 +maxMemoryFreq=-1600 +pwroffHoldTime=4 diff --git a/TegraRcmGUI/tools/memloader/ums_emmc.ini b/TegraRcmGUI/tools/memloader/ums_emmc.ini new file mode 100644 index 0000000..38d6705 --- /dev/null +++ b/TegraRcmGUI/tools/memloader/ums_emmc.ini @@ -0,0 +1,13 @@ +[load:PH_0] +if=/u-boot.elf +skip=0x00010000 +count=0x0006e13f +dst=0x80110000 + +[load:script] +if=ums_emmc.scr.img +dst=0x80100000 + +[boot:ENTRY] +pc=0x80110000 +pwroffHoldTime=4 diff --git a/TegraRcmGUI/tools/memloader/ums_emmc.scr b/TegraRcmGUI/tools/memloader/ums_emmc.scr new file mode 100644 index 0000000..e444e78 --- /dev/null +++ b/TegraRcmGUI/tools/memloader/ums_emmc.scr @@ -0,0 +1 @@ +ums 1 mmc 0.0 diff --git a/TegraRcmGUI/tools/memloader/ums_emmc.scr.img b/TegraRcmGUI/tools/memloader/ums_emmc.scr.img new file mode 100644 index 0000000000000000000000000000000000000000..83b717d008f452bd43bf99c9a935f3b4c79078a2 GIT binary patch literal 86 zcmY#ql?>Z(r9wYis^K{U1A`b4gTalikAkdXYz(QszRn7zxy1^(`6;O|NmQB-#04oa ORLIRuRxr>r-~s>!t`CC% literal 0 HcmV?d00001 diff --git a/TegraRcmGUI/tools/memloader/ums_emmc_boot0.scr b/TegraRcmGUI/tools/memloader/ums_emmc_boot0.scr new file mode 100644 index 0000000..577d402 --- /dev/null +++ b/TegraRcmGUI/tools/memloader/ums_emmc_boot0.scr @@ -0,0 +1 @@ +ums 1 mmc 0.1 diff --git a/TegraRcmGUI/tools/memloader/ums_emmc_boot0.scr.img b/TegraRcmGUI/tools/memloader/ums_emmc_boot0.scr.img new file mode 100644 index 0000000000000000000000000000000000000000..e6266e52e3e5398117d53eed291613e892579f42 GIT binary patch literal 86 zcmY#ql?+q!$SsJLYWTsxz#s<1U~q8afdE!9HilGRUuT7+{QMFFh0@$&h1~pd*ceiMeVrAO^7Bg!6-sl96>{@aQejG9 UG#`iok~CDv%}rJ?&@