From 10cfa4632855e78154876a79dd5ec4dec7ba6cfe Mon Sep 17 00:00:00 2001 From: eliboa Date: Sun, 10 Jun 2018 16:21:59 +0200 Subject: [PATCH] v2.0 --- README.md | 23 - TegraRcmGUI.sln | 40 - TegraRcmGUI.vcxproj.filters | 120 --- TegraRcmGUI.vcxproj.user | 4 - TegraRcmGUI/DialogTab01.cpp | 325 ++++++++ TegraRcmGUI/DialogTab01.h | 41 + TegraRcmGUI/DialogTab02.cpp | 229 ++++++ TegraRcmGUI/DialogTab02.h | 36 + TegraRcmGUI/DialogTab03.cpp | 132 +++ TegraRcmGUI/DialogTab03.h | 33 + TegraRcmGUI/MyTabCtrl.cpp | 72 ++ TegraRcmGUI/MyTabCtrl.h | 25 + ScopeGuard.h => TegraRcmGUI/ScopeGuard.h | 0 TegraRcmGUI/TegraRcm.cpp | 698 ++++++++++++++++ TegraRcmGUI/TegraRcm.h | 85 ++ .../TegraRcmGUI.cpp | 29 +- TegraRcmGUI.h => TegraRcmGUI/TegraRcmGUI.h | 0 TegraRcmGUI.rc => TegraRcmGUI/TegraRcmGUI.rc | Bin 16696 -> 20776 bytes .../TegraRcmGUI.vcxproj | 19 + TegraRcmGUI/TegraRcmGUIDlg.cpp | 340 ++++++++ .../TegraRcmGUIDlg.h | 71 +- .../TegraRcmSmash.cpp | 95 ++- .../TegraRcmSmash.h | 2 + Types.h => TegraRcmGUI/Types.h | 0 Win32Def.h => TegraRcmGUI/Win32Def.h | 0 WinHandle.h => TegraRcmGUI/WinHandle.h | 0 libusbk_int.h => TegraRcmGUI/libusbk_int.h | 0 TegraRcmGUI/memloader/memloader_usb.bin | Bin 0 -> 66232 bytes TegraRcmGUI/memloader/u-boot.elf | Bin 0 -> 574680 bytes TegraRcmGUI/memloader/ums_sd.ini | 12 + TegraRcmGUI/memloader/ums_sd.scr | 2 + TegraRcmGUI/memloader/ums_sd.scr.img | Bin 0 -> 85 bytes {res => TegraRcmGUI/res}/BitmapPicture.cpp | 0 {res => TegraRcmGUI/res}/BitmapPicture.h | 0 TegraRcmGUI/res/TegraRcmGUI.ico | Bin 0 -> 23245 bytes {res => TegraRcmGUI/res}/TegraRcmGUI.rc2 | Bin .../res/TegraRcmGUI_bck.ico | Bin {res => TegraRcmGUI/res}/Thumbs.db | Bin TegraRcmGUI/res/add.ico | Bin 0 -> 2462 bytes TegraRcmGUI/res/browse.ico | Bin 0 -> 2462 bytes TegraRcmGUI/res/delete.ico | Bin 0 -> 2462 bytes {res => TegraRcmGUI/res}/driver_ko.bmp | Bin {res => TegraRcmGUI/res}/error.bmp | Bin TegraRcmGUI/res/icon1.ico | Bin 0 -> 45451 bytes {res => TegraRcmGUI/res}/init_logo.bmp | Bin TegraRcmGUI/res/linux_icon.ico | Bin 0 -> 21238 bytes {res => TegraRcmGUI/res}/loaded.bmp | Bin {res => TegraRcmGUI/res}/loading.bmp | Bin {res => TegraRcmGUI/res}/rcm_detected.bmp | Bin {res => TegraRcmGUI/res}/rcm_undetected.bmp | Bin TegraRcmGUI/res/status.ico | Bin 0 -> 4286 bytes TegraRcmGUI/res/tray_ico_connected.ico | Bin 0 -> 25776 bytes TegraRcmGUI/res/tray_ico_not_connected.ico | Bin 0 -> 25132 bytes TegraRcmGUI/res/usb_icon.ico | Bin 0 -> 21238 bytes resource.h => TegraRcmGUI/resource.h | Bin 4294 -> 8164 bytes {shofel2 => TegraRcmGUI/shofel2}/download.bat | 0 stdafx.cpp => TegraRcmGUI/stdafx.cpp | 0 stdafx.h => TegraRcmGUI/stdafx.h | 0 targetver.h => TegraRcmGUI/targetver.h | 0 TegraRcmGUIDlg.cpp | 749 ------------------ presets.conf | 0 res/bitmap2.bmp | Bin 1270 -> 0 bytes res/driver_ko2.bmp | Bin 21654 -> 0 bytes res/init_logo_2.bmp | Bin 8278 -> 0 bytes res/rcm_detected2.bmp | Bin 21654 -> 0 bytes res/rcm_undetected2.bmp | Bin 21654 -> 0 bytes 66 files changed, 2223 insertions(+), 959 deletions(-) delete mode 100644 README.md delete mode 100644 TegraRcmGUI.sln delete mode 100644 TegraRcmGUI.vcxproj.filters delete mode 100644 TegraRcmGUI.vcxproj.user create mode 100644 TegraRcmGUI/DialogTab01.cpp create mode 100644 TegraRcmGUI/DialogTab01.h create mode 100644 TegraRcmGUI/DialogTab02.cpp create mode 100644 TegraRcmGUI/DialogTab02.h create mode 100644 TegraRcmGUI/DialogTab03.cpp create mode 100644 TegraRcmGUI/DialogTab03.h create mode 100644 TegraRcmGUI/MyTabCtrl.cpp create mode 100644 TegraRcmGUI/MyTabCtrl.h rename ScopeGuard.h => TegraRcmGUI/ScopeGuard.h (100%) create mode 100644 TegraRcmGUI/TegraRcm.cpp create mode 100644 TegraRcmGUI/TegraRcm.h rename TegraRcmGUI.cpp => TegraRcmGUI/TegraRcmGUI.cpp (68%) rename TegraRcmGUI.h => TegraRcmGUI/TegraRcmGUI.h (100%) rename TegraRcmGUI.rc => TegraRcmGUI/TegraRcmGUI.rc (57%) rename TegraRcmGUI.vcxproj => TegraRcmGUI/TegraRcmGUI.vcxproj (94%) create mode 100644 TegraRcmGUI/TegraRcmGUIDlg.cpp rename TegraRcmGUIDlg.h => TegraRcmGUI/TegraRcmGUIDlg.h (54%) rename TegraRcmSmash.cpp => TegraRcmGUI/TegraRcmSmash.cpp (78%) rename TegraRcmSmash.h => TegraRcmGUI/TegraRcmSmash.h (94%) rename Types.h => TegraRcmGUI/Types.h (100%) rename Win32Def.h => TegraRcmGUI/Win32Def.h (100%) rename WinHandle.h => TegraRcmGUI/WinHandle.h (100%) rename libusbk_int.h => TegraRcmGUI/libusbk_int.h (100%) create mode 100644 TegraRcmGUI/memloader/memloader_usb.bin create mode 100644 TegraRcmGUI/memloader/u-boot.elf create mode 100644 TegraRcmGUI/memloader/ums_sd.ini create mode 100644 TegraRcmGUI/memloader/ums_sd.scr create mode 100644 TegraRcmGUI/memloader/ums_sd.scr.img rename {res => TegraRcmGUI/res}/BitmapPicture.cpp (100%) rename {res => TegraRcmGUI/res}/BitmapPicture.h (100%) create mode 100644 TegraRcmGUI/res/TegraRcmGUI.ico rename {res => TegraRcmGUI/res}/TegraRcmGUI.rc2 (100%) rename res/TegraRcmGUI.ico => TegraRcmGUI/res/TegraRcmGUI_bck.ico (100%) rename {res => TegraRcmGUI/res}/Thumbs.db (100%) create mode 100644 TegraRcmGUI/res/add.ico create mode 100644 TegraRcmGUI/res/browse.ico create mode 100644 TegraRcmGUI/res/delete.ico rename {res => TegraRcmGUI/res}/driver_ko.bmp (100%) rename {res => TegraRcmGUI/res}/error.bmp (100%) create mode 100644 TegraRcmGUI/res/icon1.ico rename {res => TegraRcmGUI/res}/init_logo.bmp (100%) create mode 100644 TegraRcmGUI/res/linux_icon.ico rename {res => TegraRcmGUI/res}/loaded.bmp (100%) rename {res => TegraRcmGUI/res}/loading.bmp (100%) rename {res => TegraRcmGUI/res}/rcm_detected.bmp (100%) rename {res => TegraRcmGUI/res}/rcm_undetected.bmp (100%) create mode 100644 TegraRcmGUI/res/status.ico create mode 100644 TegraRcmGUI/res/tray_ico_connected.ico create mode 100644 TegraRcmGUI/res/tray_ico_not_connected.ico create mode 100644 TegraRcmGUI/res/usb_icon.ico rename resource.h => TegraRcmGUI/resource.h (51%) rename {shofel2 => TegraRcmGUI/shofel2}/download.bat (100%) rename stdafx.cpp => TegraRcmGUI/stdafx.cpp (100%) rename stdafx.h => TegraRcmGUI/stdafx.h (100%) rename targetver.h => TegraRcmGUI/targetver.h (100%) delete mode 100644 TegraRcmGUIDlg.cpp delete mode 100644 presets.conf delete mode 100644 res/bitmap2.bmp delete mode 100644 res/driver_ko2.bmp delete mode 100644 res/init_logo_2.bmp delete mode 100644 res/rcm_detected2.bmp delete mode 100644 res/rcm_undetected2.bmp diff --git a/README.md b/README.md deleted file mode 100644 index 841dcac..0000000 --- a/README.md +++ /dev/null @@ -1,23 +0,0 @@ -# TegraRcmGUI -A simple C++ GUI for [TegraRcmSmash](https://github.com/rajkosto/TegraRcmSmash) by [rajkosto](https://github.com/rajkosto). - -## Important notice -This application is just a GUI for the command line program ["TegraRcmSmash"](https://github.com/rajkosto/TegraRcmSmash) (all credits goes to @rajkosto & @ktemkin). -Please, *DO NOT* report issue on TegraRcmSmash GitHub if you're using this application => Report issue [here](https://github.com/eliboa/TegraRcmGUI/issues) *FIRST*. - -## Features -- Inject payloads, such as CFW loader -- Run Linux on your switch -- Mount SD as USB mass storage (hard reboot needed after unmounting device, hold power button down for 15sec) -- Auto inject option : automatically inject payload after selection or/and when the Switch is plugged in RCM mode (does not apply at startup) -- Install APX device driver (if needed) - -![Png](http://splatoon.eu/tuto_switch/TegraRcmGUI_v1.4.png) - -## Download -[Latest release](https://github.com/eliboa/TegraRcmGUI/releases) (Windows) - -## Credits -- [Kate Temkin](https://github.com/ktemkin) / Fusée Launcher -- [Rajkosto](https://github.com/rajkosto) / TegraRcmSmash (Fusée Launcher reimplementation for Windows), momeloader, SD tool -- [fail0verflow](https://github.com/fail0verflow) / ShofEL2 (Boot stack for no-modification, universal code execution and Linux on the Nintendo Switch) diff --git a/TegraRcmGUI.sln b/TegraRcmGUI.sln deleted file mode 100644 index e8a6474..0000000 --- a/TegraRcmGUI.sln +++ /dev/null @@ -1,40 +0,0 @@ - -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.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.vcxproj.filters b/TegraRcmGUI.vcxproj.filters deleted file mode 100644 index e9bacd8..0000000 --- a/TegraRcmGUI.vcxproj.filters +++ /dev/null @@ -1,120 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hh;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Resource Files - - - - - Resource Files - - - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - Resource Files - - - \ No newline at end of file diff --git a/TegraRcmGUI.vcxproj.user b/TegraRcmGUI.vcxproj.user deleted file mode 100644 index abe8dd8..0000000 --- a/TegraRcmGUI.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/TegraRcmGUI/DialogTab01.cpp b/TegraRcmGUI/DialogTab01.cpp new file mode 100644 index 0000000..09f7862 --- /dev/null +++ b/TegraRcmGUI/DialogTab01.cpp @@ -0,0 +1,325 @@ +/* +DialogTab01.cpp + +MIT License + +Copyright(c) 2018 eliboa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +// + +#include "stdafx.h" +#include "TegraRcmGUI.h" +#include "DialogTab01.h" +#include "afxdialogex.h" + +using namespace std; + + +// DialogTab01 dialog + +IMPLEMENT_DYNAMIC(DialogTab01, CDialog) + +DialogTab01::DialogTab01(TegraRcm *pTegraRcm, CWnd* Parent /*=NULL*/) + : CDialog(ID_DIALOGTAB_01, Parent) +{ + m_TegraRcm = pTegraRcm; +} + +DialogTab01::~DialogTab01() +{ +} + + +BOOL DialogTab01::OnInitDialog() +{ + CDialog::OnInitDialog(); + + string pfile = m_TegraRcm->GetPreset("PAYLOAD_FILE"); + CString file(pfile.c_str()); + this->GetDlgItem(PAYLOAD_PATH)->SetWindowTextW(file); + + CButton* pBtn = (CButton*)GetDlgItem(IDC_BROWSE); + pBtn->ModifyStyle(0, BS_ICON); + HICON hIcn = (HICON)LoadImage( + AfxGetApp()->m_hInstance, + MAKEINTRESOURCE(ID_BROWSE_ICON), + IMAGE_ICON, + 24, 24, // use actual size + LR_DEFAULTCOLOR + ); + + pBtn->SetIcon(hIcn); + + pBtn = (CButton*)GetDlgItem(ID_ADD_FAV); + pBtn->ModifyStyle(0, BS_ICON); + hIcn = (HICON)LoadImage( + AfxGetApp()->m_hInstance, + MAKEINTRESOURCE(ID_ADD_ICON), + IMAGE_ICON, + 24, 24, // use actual size + LR_DEFAULTCOLOR + ); + pBtn->SetIcon(hIcn); + + pBtn = (CButton*)GetDlgItem(ID_DEL_FAV); + pBtn->ModifyStyle(0, BS_ICON); + hIcn = (HICON)LoadImage( + AfxGetApp()->m_hInstance, + MAKEINTRESOURCE(ID_DELETE_ICON), + IMAGE_ICON, + 24, 24, // use actual size + LR_DEFAULTCOLOR + ); + pBtn->SetIcon(hIcn); + + PREVENT_AUTOINJECT = FALSE; + + for (int i = 0; i < m_TegraRcm->Favorites.GetCount(); i++) + { + CListBox*pListBox = (CListBox*)GetDlgItem(IDC_LIST1); + + int nIndex = m_TegraRcm->Favorites[i].ReverseFind(_T('\\')); + if (nIndex > 0) + { + CString csFilename, csPath, Item; + csFilename = m_TegraRcm->Favorites[i].Right(m_TegraRcm->Favorites[i].GetLength() - nIndex - 1); + csPath = m_TegraRcm->Favorites[i].Left(nIndex); + Item = csFilename + _T(" (") + csPath + _T(")"); + pListBox->AddString(_tcsdup(Item)); + } + } + + CFont* pFont = GetFont(); + LOGFONT lf; + pFont->GetLogFont(&lf); + lf.lfWeight = FW_BOLD; + m_BoldFont.CreateFontIndirect(&lf); + + GetDlgItem(IDC_INJECT)->SendMessage(WM_SETFONT, WPARAM(HFONT(m_BoldFont)), 0); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +BEGIN_MESSAGE_MAP(DialogTab01, CDialog) + ON_BN_CLICKED(IDC_BROWSE, &DialogTab01::OnBnClickedBrowse) + ON_EN_CHANGE(PAYLOAD_PATH, &CTegraRcmGUIDlg::OnEnChangePath) + ON_BN_CLICKED(IDC_INJECT, &DialogTab01::InjectPayload) + ON_BN_CLICKED(ID_ADD_FAV, &DialogTab01::OnBnClickedAddFav) + ON_BN_CLICKED(ID_DEL_FAV, &DialogTab01::OnBnClickedDelFav) + ON_LBN_DBLCLK(IDC_LIST1, &DialogTab01::OnDblclkList1) + ON_LBN_SELCHANGE(IDC_LIST1, &DialogTab01::OnLbnSelchangeList1) + ON_WM_CTLCOLOR() +END_MESSAGE_MAP() + +// +// Auto-inject on change path +// +void DialogTab01::OnEnChangePath() +{ + CString file; + GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); + PAYLOAD_FILE = _tcsdup(file); + + if (!PREVENT_AUTOINJECT) + { + // Save payload path + CT2CA pszConvertedAnsiString(file); + std::string file_c(pszConvertedAnsiString); + m_TegraRcm->SetPreset("PAYLOAD_FILE", file_c); + } + + string value = m_TegraRcm->GetPreset("AUTO_INJECT"); + TegraRcmSmash device; + int RCM_STATUS = device.RcmStatus(); + // If Auto inject option enabled + if (value == "TRUE" && !PREVENT_AUTOINJECT) + { + // Delay auto inject if RCM not detected + if (RCM_STATUS != 0) + { + DELAY_AUTOINJECT = TRUE; + m_TegraRcm->SendUserMessage("Injection scheduled. Waiting for device", VALID); + } + // Inject payload if RCM detected + else { + InjectPayload(); + } + } + PREVENT_AUTOINJECT = FALSE; +} +void DialogTab01::OnBnClickedBrowse() +{ + CString szFilter; + szFilter = "Bin files (*.bin)|*.bin|All files (*.*)|*.*||"; + + CFileDialog FileOpenDialog( + TRUE, + NULL, + NULL, + OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, + szFilter, // filter + AfxGetMainWnd()); // the parent window + + CString file; + this->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); + FileOpenDialog.m_ofn.lpstrInitialDir = file; + + if (FileOpenDialog.DoModal() == IDOK) + { + CFile File; + VERIFY(File.Open(FileOpenDialog.GetPathName(), CFile::modeRead)); + CString Filename; + Filename = File.GetFilePath(); + this->GetDlgItem(PAYLOAD_PATH)->SetWindowTextW(Filename); + OnEnChangePath(); + } +} +void DialogTab01::InjectPayload() +{ + CString file; + this->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); + PAYLOAD_FILE = _tcsdup(file); + + if (PAYLOAD_FILE == nullptr) { + m_TegraRcm->BitmapDisplay(LOAD_ERROR); + m_TegraRcm->SendUserMessage("No file selected", INVALID); + return; + } + + std::ifstream infile(file); + if (!infile.good()) + { + m_TegraRcm->SendUserMessage("File doesn't exist", INVALID); + return; + } + + m_TegraRcm->BitmapDisplay(LOADING); + GetParent()->UpdateWindow(); + + TCHAR cmd[MAX_PATH] = TEXT("\""); + lstrcat(cmd, PAYLOAD_FILE); + lstrcat(cmd, TEXT("\"")); + + m_TegraRcm->SendUserMessage("Injecting payload..."); + int rc = m_TegraRcm->Smasher(cmd); + if (rc >= 0) + { + m_TegraRcm->BitmapDisplay(LOADED); + m_TegraRcm->SendUserMessage("Payload injected !", VALID); + m_TegraRcm->WAITING_RECONNECT = TRUE; + if (!m_TegraRcm->CmdShow) m_TegraRcm->ShowTrayIconBalloon(TEXT("Payload injected"), TEXT(" "), 1000, NIIF_INFO); + } + else + { + m_TegraRcm->BitmapDisplay(LOAD_ERROR); + 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); + + } +} + + +void DialogTab01::OnBnClickedAddFav() +{ + + CString csPath; + GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(csPath); + std::ifstream infile(csPath); + if (!infile.good()) + { + m_TegraRcm->SendUserMessage("File doesn't exist", INVALID); + return; + } + + CListBox*pListBox = (CListBox*) GetDlgItem(IDC_LIST1); + CString csPathf(csPath), csFilename, Item; + int nIndex = csPathf.ReverseFind(_T('\\')); + if (nIndex > 0) csFilename = csPathf.Right(csPathf.GetLength() - nIndex - 1); + else return; + csPath = csPathf.Left(nIndex); + Item = csFilename + _T(" (") + csPath + _T(")"); + pListBox->AddString(_tcsdup(Item)); + m_ListBox.Add(csPathf); + m_TegraRcm->Favorites.Add(csPathf); + m_TegraRcm->SaveFavorites(); +} + + +void DialogTab01::OnBnClickedDelFav() +{ + + CListBox*pListBox = (CListBox*)GetDlgItem(IDC_LIST1); + int i = pListBox->GetCurSel(); + if (i >= 0) + { + pListBox->DeleteString(i); + m_TegraRcm->Favorites.RemoveAt(i); + m_TegraRcm->SaveFavorites(); + } +} + + +void DialogTab01::OnDblclkList1() +{ + if (m_SelectedItem >= 0) + { + CString fav = m_TegraRcm->Favorites.GetAt(m_SelectedItem); + GetDlgItem(PAYLOAD_PATH)->SetWindowTextW(fav); + GetDlgItem(PAYLOAD_PATH)->GetFocus(); + if (m_TegraRcm->GetPreset("AUTO_INJECT") != "TRUE" && m_TegraRcm->GetRcmStatus() == 0) + { + InjectPayload(); + } + else + { + OnEnChangePath(); + } + } +} + + +void DialogTab01::OnLbnSelchangeList1() +{ + CListBox*pListBox = (CListBox*)GetDlgItem(IDC_LIST1); + int i = pListBox->GetCurSel(); + if (i >= 0) + { + m_SelectedItem = i; + } +} + +HBRUSH DialogTab01::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) +{ + HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); + + switch (pWnd->GetDlgCtrlID()) + { + case ID_SELECT_PAYLOAD: + case ID_FAVORITES_TITLE: + pDC->SelectObject(&m_BoldFont); + break; + } + return hbr; +} diff --git a/TegraRcmGUI/DialogTab01.h b/TegraRcmGUI/DialogTab01.h new file mode 100644 index 0000000..404709f --- /dev/null +++ b/TegraRcmGUI/DialogTab01.h @@ -0,0 +1,41 @@ +#pragma once +#include +#include "TegraRcmGUIDlg.h" +#include "TegraRcm.h" + +// DialogTab01 dialog + +class DialogTab01 : + public CDialog +{ + DECLARE_DYNAMIC(DialogTab01) +public: + DialogTab01(TegraRcm *pTegraRcm, CWnd* Parent = NULL); // standard constructor + virtual ~DialogTab01(); + +// Dialog Data +#ifdef AFX_DESIGN_TIME + enum { IDD = ID_DIALOGTAB_01 }; +#endif + TCHAR* PAYLOAD_FILE; + BOOL PREVENT_AUTOINJECT = TRUE; + BOOL DELAY_AUTOINJECT = FALSE; + CArray m_ListBox; + int m_SelectedItem = -1; + CFont m_BoldFont; + virtual BOOL OnInitDialog(); + DECLARE_MESSAGE_MAP() + + afx_msg void OnEnChangePath(); + +private: + TegraRcm *m_TegraRcm; +public: + afx_msg void InjectPayload(); + afx_msg void OnBnClickedBrowse(); + afx_msg void OnBnClickedAddFav(); + afx_msg void OnBnClickedDelFav(); + afx_msg void OnDblclkList1(); + afx_msg void OnLbnSelchangeList1(); + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); +}; diff --git a/TegraRcmGUI/DialogTab02.cpp b/TegraRcmGUI/DialogTab02.cpp new file mode 100644 index 0000000..ca54d9b --- /dev/null +++ b/TegraRcmGUI/DialogTab02.cpp @@ -0,0 +1,229 @@ +/* +DialogTab02.cpp + +MIT License + +Copyright(c) 2018 eliboa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ +// +#include "stdafx.h" +#include "TegraRcmGUI.h" +#include "afxdialogex.h" +#include "DialogTab02.h" + + +using namespace std; + +// DialogTab02 dialog + +IMPLEMENT_DYNAMIC(DialogTab02, CDialogEx) + +DialogTab02::DialogTab02(TegraRcm *pTegraRcm, CWnd* Parent /*=NULL*/) + : CDialogEx(ID_DIALOGTAB_02, Parent) +{ + m_TegraRcm = pTegraRcm; +} + +DialogTab02::~DialogTab02() +{ +} + +void DialogTab02::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); +} + + +BEGIN_MESSAGE_MAP(DialogTab02, CDialogEx) + ON_BN_CLICKED(IDC_MOUNT_SD, &DialogTab02::OnBnClickedMountSd) + ON_BN_CLICKED(IDC_SHOFEL2, &DialogTab02::OnBnClickedShofel2) +// ON_WM_CTLCOLOR() +ON_WM_CTLCOLOR() +END_MESSAGE_MAP() + + +// DialogTab02 message handlers + +BOOL DialogTab02::OnInitDialog() +{ + CDialogEx::OnInitDialog(); + + CButton* pBtn = (CButton*)GetDlgItem(IDC_MOUNT_SD); + pBtn->ModifyStyle(0, BS_ICON); + HICON hIcn = (HICON)LoadImage( + AfxGetApp()->m_hInstance, + MAKEINTRESOURCE(ID_UMSTOOL_ICON), + IMAGE_ICON, + 32, 32, // use actual size + LR_DEFAULTCOLOR + ); + pBtn->SetIcon(hIcn); + + pBtn = (CButton*)GetDlgItem(IDC_SHOFEL2); + pBtn->ModifyStyle(0, BS_ICON); + hIcn = (HICON)LoadImage( + AfxGetApp()->m_hInstance, + MAKEINTRESOURCE(ID_LINUX_ICON), + IMAGE_ICON, + 32, 32, // use actual size + LR_DEFAULTCOLOR + ); + pBtn->SetIcon(hIcn); + + + CFont* pFont = GetFont(); + LOGFONT lf; + pFont->GetLogFont(&lf); + lf.lfWeight = FW_BOLD; + m_BoldFont.CreateFontIndirect(&lf); + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +void DialogTab02::OnBnClickedMountSd() +{ + 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) + { + m_TegraRcm->BitmapDisplay(LOAD_ERROR); + 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); + } + else + { + m_TegraRcm->BitmapDisplay(LOADED); + 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); +} + + +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); + CString COREBOOT_FILE2 = COREBOOT_FILE; + CString COREBOOT = _T("CBFS+") + COREBOOT_FILE2; + + std::ifstream infile(COREBOOT_FILE); + BOOL coreboot_exists = infile.good(); + std::ifstream infile2(PAYLOAD); + BOOL payload_exists = infile2.good(); + + if (!coreboot_exists || !payload_exists) { + GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Linux coreboot not found in \\shofel2 dir")); + 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) + { + PROCESS_INFORMATION pif; + STARTUPINFO si; + ZeroMemory(&si, sizeof(si)); + si.cb = sizeof(si); + TCHAR *download_script = m_TegraRcm->GetAbsolutePath(TEXT("shofel2\\download.bat"), CSIDL_APPDATA); + BOOL bRet = CreateProcess(download_script, NULL, NULL, NULL, FALSE, 0, NULL, exe_dir, &si, &pif); + } + return; // TO-DO : Remove return for coreboot injection after download + } + m_TegraRcm->BitmapDisplay(LOADING); + GetParent()->UpdateWindow(); + GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Loading coreboot. Please wait.")); + + //int rc = device.SmashMain(5, args); + TCHAR cmd[MAX_PATH] = TEXT("--relocator= \""); + lstrcat(cmd, _tcsdup(PAYLOAD)); + lstrcat(cmd, TEXT("\" \"CBFS:")); + lstrcat(cmd, _tcsdup(COREBOOT_FILE)); + lstrcat(cmd, TEXT("\"")); + int rc = m_TegraRcm->Smasher(cmd); + + if (rc >= 0 || rc < -7) + { + GetParent()->SetDlgItemText(INFO_LABEL, TEXT("Coreboot injected. Waiting 5s for device...")); + 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.")); + BOOL ret = CreateProcess(imx_script, NULL, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, exe_dir, &si, &pif); + int rc = -50; + if (NULL != ret) + { + WaitForSingleObject(pif.hProcess, INFINITE); + DWORD exit_code; + if (FALSE != GetExitCodeProcess(pif.hProcess, &exit_code)) + { + if (STILL_ACTIVE != exit_code) rc = exit_code; + } + else rc = -51; + CloseHandle(pif.hProcess); + CloseHandle(pif.hThread); + } + + if (rc == 0) + { + 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); +} + +HBRUSH DialogTab02::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) +{ + HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); + + switch (pWnd->GetDlgCtrlID()) + { + case ID_UMSTOOL_TITLE: + case ID_LINUX_TITLE: + pDC->SelectObject(&m_BoldFont); + break; + } + return hbr; +} diff --git a/TegraRcmGUI/DialogTab02.h b/TegraRcmGUI/DialogTab02.h new file mode 100644 index 0000000..637001c --- /dev/null +++ b/TegraRcmGUI/DialogTab02.h @@ -0,0 +1,36 @@ +#pragma once +#include +#include "TegraRcmGUIDlg.h" +#include "TegraRcm.h" + + +// DialogTab02 dialog + +class DialogTab02 : + public CDialogEx +{ + DECLARE_DYNAMIC(DialogTab02) +public: + DialogTab02(TegraRcm *pTegraRcm, CWnd* pParent = NULL); // standard constructor + virtual ~DialogTab02(); + +// Dialog Data +#ifdef AFX_DESIGN_TIME + enum { IDD = ID_DIALOGTAB_02 }; +#endif + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + CFont m_BoldFont; + DECLARE_MESSAGE_MAP() +public: + afx_msg void OnBnClickedMountSd(); + afx_msg void OnBnClickedShofel2(); +private: + TegraRcm *m_TegraRcm; +public: + virtual BOOL OnInitDialog(); +// HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); + + afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); +}; diff --git a/TegraRcmGUI/DialogTab03.cpp b/TegraRcmGUI/DialogTab03.cpp new file mode 100644 index 0000000..504f624 --- /dev/null +++ b/TegraRcmGUI/DialogTab03.cpp @@ -0,0 +1,132 @@ +/* +DialogTab03.cpp + +MIT License + +Copyright(c) 2018 eliboa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ +// + +#include "stdafx.h" +#include "TegraRcmGUI.h" +#include "DialogTab03.h" +#include "afxdialogex.h" + + +// DialogTab03 dialog + +IMPLEMENT_DYNAMIC(DialogTab03, CDialogEx) + +DialogTab03::DialogTab03(TegraRcm *pTegraRcm, CWnd* Parent /*=NULL*/) + : CDialogEx(ID_DIALOGTAB_03, Parent) +{ + m_TegraRcm = pTegraRcm; +} + +DialogTab03::~DialogTab03() +{ +} + +void DialogTab03::DoDataExchange(CDataExchange* pDX) +{ + CDialogEx::DoDataExchange(pDX); +} + + +BOOL DialogTab03::OnInitDialog() +{ + CDialog::OnInitDialog(); + + string value = m_TegraRcm->GetPreset("AUTO_INJECT"); + if (value == "TRUE") + { + m_TegraRcm->AUTOINJECT_CURR = TRUE; + CMFCButton*checkbox = (CMFCButton*)GetDlgItem(AUTO_INJECT); + checkbox->SetCheck(BST_CHECKED); + } + + value = m_TegraRcm->GetPreset("MIN_TO_TRAY"); + if (value == "TRUE") + { + m_TegraRcm->MIN_TO_TRAY_CURR = TRUE; + CMFCButton*checkbox = (CMFCButton*)GetDlgItem(MIN_TO_TRAY); + checkbox->SetCheck(BST_CHECKED); + } + + return TRUE; // return TRUE unless you set the focus to a control + // EXCEPTION: OCX Property Pages should return FALSE +} + +BEGIN_MESSAGE_MAP(DialogTab03, CDialogEx) + ON_BN_CLICKED(AUTO_INJECT, &DialogTab03::OnClickedAutoInject) + ON_BN_CLICKED(MIN_TO_TRAY, &DialogTab03::OnClickedMinToTray) + ON_BN_CLICKED(ID_INSTALL_DRIVER, &DialogTab03::OnBnClickedInstallDriver) +END_MESSAGE_MAP() + + +// DialogTab03 message handlers + + +void DialogTab03::OnClickedAutoInject() +{ + // Get Auto inject checkbox value (checked, unchecked) + CButton *m_ctlCheck = (CButton*)GetDlgItem(AUTO_INJECT); + BOOL IsCheckChecked = (m_ctlCheck->GetCheck() == 1) ? true : false; + + if (m_TegraRcm->AUTOINJECT_CURR != IsCheckChecked) + { + // Auto inject option enabled + if (IsCheckChecked) + { + m_TegraRcm->SetPreset("AUTO_INJECT", "TRUE"); + m_TegraRcm->DELAY_AUTOINJECT = TRUE; + } + // Auto inject option disabled + else + { + m_TegraRcm->SetPreset("AUTO_INJECT", "FALSE"); + m_TegraRcm->DELAY_AUTOINJECT = FALSE; + } + // Save current checkbox value + m_TegraRcm->AUTOINJECT_CURR = IsCheckChecked; + } +} + + +void DialogTab03::OnClickedMinToTray() +{ + // Get Minimize to tray checkbox value (checked, unchecked) + CButton *m_ctlCheck = (CButton*)GetDlgItem(MIN_TO_TRAY); + BOOL IsCheckChecked = (m_ctlCheck->GetCheck() == 1) ? true : false; + if (m_TegraRcm->MIN_TO_TRAY_CURR != IsCheckChecked) + { + if (IsCheckChecked) m_TegraRcm->SetPreset("MIN_TO_TRAY", "TRUE"); + else m_TegraRcm->SetPreset("MIN_TO_TRAY", "FALSE"); + m_TegraRcm->MIN_TO_TRAY_CURR = IsCheckChecked; + } +} + + +void DialogTab03::OnBnClickedInstallDriver() +{ + m_TegraRcm->InstallDriver(); +} diff --git a/TegraRcmGUI/DialogTab03.h b/TegraRcmGUI/DialogTab03.h new file mode 100644 index 0000000..067efec --- /dev/null +++ b/TegraRcmGUI/DialogTab03.h @@ -0,0 +1,33 @@ +#pragma once +#include +#include "TegraRcmGUIDlg.h" +#include "TegraRcm.h" + +// DialogTab03 dialog + +class DialogTab03 : public CDialogEx +{ + DECLARE_DYNAMIC(DialogTab03) + +public: + DialogTab03(TegraRcm *pTegraRcm, CWnd* Parent = NULL); // standard constructor + virtual ~DialogTab03(); + +// Dialog Data +#ifdef AFX_DESIGN_TIME + enum { IDD = ID_DIALOGTAB_03 }; +#endif + +protected: + virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support + + virtual BOOL OnInitDialog(); + DECLARE_MESSAGE_MAP() + +private: + TegraRcm *m_TegraRcm; +public: + afx_msg void OnClickedAutoInject(); + afx_msg void OnClickedMinToTray(); + afx_msg void OnBnClickedInstallDriver(); +}; diff --git a/TegraRcmGUI/MyTabCtrl.cpp b/TegraRcmGUI/MyTabCtrl.cpp new file mode 100644 index 0000000..79fe265 --- /dev/null +++ b/TegraRcmGUI/MyTabCtrl.cpp @@ -0,0 +1,72 @@ +#include "stdafx.h" +#include "MyTabCtrl.h" +#include "DialogTab01.h" +#include "DialogTab02.h" +#include "DialogTab03.h" +#include "resource.h" +using namespace std; + + +MyTabCtrl::MyTabCtrl() +{ + + m_DialogID[0] = ID_DIALOGTAB_01; + m_DialogID[1] = ID_DIALOGTAB_02; + m_DialogID[2] = ID_DIALOGTAB_03; + + m_nPageCount = 3; +} + + +MyTabCtrl::~MyTabCtrl() +{ +} + +BEGIN_MESSAGE_MAP(MyTabCtrl, CTabCtrl) + ON_NOTIFY_REFLECT(TCN_SELCHANGE, &MyTabCtrl::OnTcnSelchange) +END_MESSAGE_MAP() + +//This function creates the Dialog boxes once +void MyTabCtrl::InitDialogs(TegraRcm *parent) +{ + m_TegraRcm = parent; + m_Dialog[0] = new DialogTab01(m_TegraRcm); + m_Dialog[1] = new DialogTab02(m_TegraRcm); + m_Dialog[2] = new DialogTab03(m_TegraRcm); + m_Dialog[0]->Create(m_DialogID[0], GetParent()); + m_Dialog[1]->Create(m_DialogID[1], GetParent()); + m_Dialog[2]->Create(m_DialogID[2], GetParent()); +} + +void MyTabCtrl::OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult) +{ + // TODO: Add your control notification handler code here + ActivateTabDialogs(); + *pResult = 0; +} + +void MyTabCtrl::ActivateTabDialogs() +{ + //ASSERT(MyParentDlg); + //.OnPaint(); + + int nSel = GetCurSel(); + if (m_Dialog[nSel]->m_hWnd) + m_Dialog[nSel]->ShowWindow(SW_HIDE); + + CRect l_rectClient; + CRect l_rectWnd; + + GetClientRect(l_rectClient); + AdjustRect(FALSE, l_rectClient); + GetWindowRect(l_rectWnd); + GetParent()->ScreenToClient(l_rectWnd); + l_rectClient.OffsetRect(l_rectWnd.left, l_rectWnd.top); + for (int nCount = 0; nCount < m_nPageCount; nCount++) { + m_Dialog[nCount]->SetWindowPos(&wndTop, l_rectClient.left, l_rectClient.top, l_rectClient.Width(), l_rectClient.Height(), SWP_HIDEWINDOW); + } + m_Dialog[nSel]->SetWindowPos(&wndTop, l_rectClient.left, l_rectClient.top, l_rectClient.Width(), l_rectClient.Height(), SWP_SHOWWINDOW); + + m_Dialog[nSel]->ShowWindow(SW_SHOW); + +} \ No newline at end of file diff --git a/TegraRcmGUI/MyTabCtrl.h b/TegraRcmGUI/MyTabCtrl.h new file mode 100644 index 0000000..bc1ddac --- /dev/null +++ b/TegraRcmGUI/MyTabCtrl.h @@ -0,0 +1,25 @@ +#pragma once +#include "afxcmn.h" +#include "TegraRcm.h" + +class MyTabCtrl : + public CTabCtrl +{ +public: + MyTabCtrl(); + ~MyTabCtrl(); + + //Array to hold the list of dialog boxes/tab pages for CTabCtrl + int m_DialogID[3]; + //CDialog Array Variable to hold the dialogs + CDialog *m_Dialog[3]; + int m_nPageCount; + //Function to Create the dialog boxes during startup + void InitDialogs(TegraRcm *parent); + + //Function to activate the tab dialog boxes + void ActivateTabDialogs(); + DECLARE_MESSAGE_MAP() + afx_msg void OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult); + TegraRcm *m_TegraRcm; +}; diff --git a/ScopeGuard.h b/TegraRcmGUI/ScopeGuard.h similarity index 100% rename from ScopeGuard.h rename to TegraRcmGUI/ScopeGuard.h diff --git a/TegraRcmGUI/TegraRcm.cpp b/TegraRcmGUI/TegraRcm.cpp new file mode 100644 index 0000000..20f7900 --- /dev/null +++ b/TegraRcmGUI/TegraRcm.cpp @@ -0,0 +1,698 @@ +/* +TegraRcm.cpp + +MIT License + +Copyright(c) 2018 eliboa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +#include "stdafx.h" +#include "TegraRcm.h" + +using namespace std; + +TegraRcm::TegraRcm(CDialog* pParent /*=NULL*/) +{ + m_Parent = pParent; + m_hWnd = AfxGetMainWnd()->GetSafeHwnd(); + GetFavorites(); + SendUserMessage("Waiting for device in RCM mode"); +} + +TegraRcm::~TegraRcm() +{ +} + +void TegraRcm::InitCtrltbDlgs(CDialog* pCtrltb1, CDialog* pCtrltb2, CDialog* pCtrltb3) +{ + m_Ctrltb1 = pCtrltb1; + m_Ctrltb2 = pCtrltb2; + m_Ctrltb3 = pCtrltb3; +} + +int TegraRcm::GetRcmStatus() +{ + return m_Device.RcmStatus(); +} + + +// +// Tray icon +// +BOOL TegraRcm::CreateTrayIcon() +{ + memset(&m_NID, 0, sizeof(m_NID)); + ULONGLONG ullVersion = GetDllVersion(_T("Shell32.dll")); + if (ullVersion >= MAKEDLLVERULL(5, 0, 0, 0)) + m_NID.cbSize = sizeof(NOTIFYICONDATA); + else m_NID.cbSize = NOTIFYICONDATA_V2_SIZE; + + // set tray icon ID + m_NID.uID = ID_SYSTEMTRAY; + + // set handle to the window that receives tray icon notifications + m_NID.hWnd = m_hWnd; + + // set message that will be sent from tray icon to the window + m_NID.uCallbackMessage = WM_SYSICON; + + // fields that are being set when adding tray icon + m_NID.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; + + // set image + if (m_RC >= 0) m_NID.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(ID_TRAYICON_RCM)); + else m_NID.hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(ID_TRAYICON_NO_RCM)); + + if (!m_NID.hIcon) + return FALSE; + + if (!Shell_NotifyIcon(NIM_ADD, &m_NID)) + return FALSE; + + return Shell_NotifyIcon(NIM_SETVERSION, &m_NID); +} +BOOL TegraRcm::DestroyTrayIcon() +{ + return Shell_NotifyIcon(NIM_DELETE, &m_NID); +} +BOOL TegraRcm::SetTrayIconTipText(LPCTSTR pszText) +{ + if (StringCchCopy(m_NID.szTip, sizeof(m_NID.szTip), pszText) != S_OK) + return FALSE; + + m_NID.uFlags |= NIF_TIP; + return Shell_NotifyIcon(NIM_MODIFY, &m_NID); +} +BOOL TegraRcm::ShowTrayIconBalloon(LPCTSTR pszTitle, LPCTSTR pszText, UINT unTimeout, DWORD dwInfoFlags) +{ + m_NID.uFlags |= NIF_INFO; + m_NID.uTimeout = unTimeout; + m_NID.dwInfoFlags = dwInfoFlags; + + if (StringCchCopy(m_NID.szInfoTitle, sizeof(m_NID.szInfoTitle), pszTitle) != S_OK) + return FALSE; + + if (StringCchCopy(m_NID.szInfo, sizeof(m_NID.szInfo), pszText) != S_OK) + return FALSE; + + return Shell_NotifyIcon(NIM_MODIFY, &m_NID); +} +BOOL TegraRcm::SetTrayIcon(HICON hIcon) +{ + m_NID.hIcon = hIcon; + m_NID.uFlags |= NIF_ICON; + + return Shell_NotifyIcon(NIM_MODIFY, &m_NID); +} +BOOL TegraRcm::SetTrayIcon(WORD wIconID) +{ + HICON hIcon = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(wIconID)); + + if (!hIcon) + return FALSE; + + return SetTrayIcon(hIcon); +} +void TegraRcm::ShowContextMenu(HWND hWnd) +{ + POINT pt; + GetCursorPos(&pt); + HMENU hMenu = CreatePopupMenu(); + if (hMenu) + { + if (m_RC == 0) + { + CString csPathf, csFilename, payload; + m_Ctrltb1->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(csPathf); + int nIndex = csPathf.ReverseFind(_T('\\')); + if (nIndex > 0) + { + csFilename = csPathf.Right(csPathf.GetLength() - nIndex - 1); + payload = _T("Inject ") + csFilename; + InsertMenu(hMenu, -1, MF_BYPOSITION, SWM_INJECT, payload); + } + InsertMenu(hMenu, -1, MF_BYPOSITION, SWM_MOUNT, _T("Mount SD")); + InsertMenu(hMenu, -1, MF_BYPOSITION, SWM_LINUX, _T("Linux")); + InsertMenu(hMenu, -1, MF_BYPOSITION, SWM_BROWSE, _T("Browse...")); + } + if (IsWindowVisible(hWnd)) + InsertMenu(hMenu, -1, MF_BYPOSITION, SWM_HIDE, _T("Hide")); + else + InsertMenu(hMenu, -1, MF_BYPOSITION, SWM_SHOW, _T("Show")); + InsertMenu(hMenu, -1, MF_BYPOSITION, SWM_EXIT, _T("Exit")); + + // note: must set window to the foreground or the + // menu won't disappear when it should + SetForegroundWindow(hWnd); + + TrackPopupMenu(hMenu, TPM_BOTTOMALIGN, + pt.x, pt.y, 0, hWnd, NULL); + DestroyMenu(hMenu); + } +} +LRESULT TegraRcm::OnTrayIconEvent(UINT wParam, LPARAM lParam) +{ + if ((UINT)wParam != ID_SYSTEMTRAY) + { + int t = 1; + } + if ((UINT)wParam != ID_SYSTEMTRAY) + return ERROR_SUCCESS; + + switch ((UINT)lParam) + { + case WM_LBUTTONDOWN: + { + if (CmdShow) + { + AfxGetMainWnd()->ShowWindow(SW_HIDE); + CmdShow = FALSE; + } + else + { + AfxGetMainWnd()->ShowWindow(SW_RESTORE); + AfxGetMainWnd()->SetForegroundWindow(); + AfxGetMainWnd()->SetFocus(); + AfxGetMainWnd()->SetActiveWindow(); + CmdShow = TRUE; + } + break; + } + case WM_LBUTTONUP: + { + //ShowTrayIconBalloon(TEXT("Baloon message title"), TEXT("Left click!"), 1000, NIIF_INFO); + break; + } + case WM_RBUTTONUP: + { + ShowContextMenu(m_Parent->GetSafeHwnd()); + // e.g. show context menu or disable tip and display baloon: + //SetTrayIconTipText((LPCTSTR)TEXT("Salut")); + //ShowTrayIconBalloon(TEXT("Baloon message title"), TEXT("Right click!"), 1000, NIIF_INFO); + break; + } + + } + + return ERROR_SUCCESS; +} + + +// +// Presets functions +// +string TegraRcm::GetPreset(string param) +{ + TCHAR *rfile = GetAbsolutePath(TEXT("presets.conf"), CSIDL_APPDATA); + CT2A rfile_c(rfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); + + ifstream readFile(rfile_c); + string readout; + string search = param + "="; + std::string value = ""; + if (readFile.is_open()) + { + while (getline(readFile, readout)) { + if (readout.find(search) != std::string::npos) { + std::string delimiter = "="; + value = readout.substr(readout.find(delimiter) + 1, readout.length() + 1); + } + } + } + readFile.close(); + return value; +} +void TegraRcm::SetPreset(string param, string value) +{ + TCHAR *rfile = GetAbsolutePath(TEXT("presets.conf"), CSIDL_APPDATA); + TCHAR *wfile = GetAbsolutePath(TEXT("presets.conf.tmp"), CSIDL_APPDATA); + CT2A rfile_c(rfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); + CT2A wfile_c(wfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), wfile_c.m_psz); + + // Replace or create preset in file + ofstream outFile(wfile_c); + ifstream readFile(rfile_c); + string readout; + string search = param + "="; + string replace = search + value + "\n"; + BOOL found = FALSE; + while (getline(readFile, readout)) { + if (readout.find(search) != std::string::npos) { + outFile << replace; + found = TRUE; + } + else if(sizeof(readout)>0) { + outFile << readout + "\n"; + } + } + if (!found) { + outFile << replace; + } + outFile.close(); + readFile.close(); + remove(rfile_c); + rename(wfile_c, rfile_c); +} +void TegraRcm::GetFavorites() +{ + Favorites.RemoveAll(); + TCHAR *rfile = GetAbsolutePath(TEXT("favorites.conf"), CSIDL_APPDATA); + CT2A rfile_c(rfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); + string readout; + ifstream readFile(rfile_c); + if (readFile.is_open()) { + while (getline(readFile, readout)) { + CString fav(readout.c_str(), readout.length()); + Favorites.Add(fav); + } + } +} +void TegraRcm::AddFavorite(CString value) +{ + CString CoutLine(value + _T('\n')); + CT2CA pszConvertedAnsiString(CoutLine); + std::string outLine = pszConvertedAnsiString; + fstream outFile; + outFile.open(GetAbsolutePath(TEXT("favorites.conf"), CSIDL_APPDATA), fstream::in | fstream::out | fstream::app); + outFile << outLine; + outFile.close(); +} +void TegraRcm::SaveFavorites() +{ + TCHAR *rfile = GetAbsolutePath(TEXT("favorites.conf"), CSIDL_APPDATA); + CT2A rfile_c(rfile, CP_UTF8); + TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); + remove(rfile_c); + for (int i = 0; i < Favorites.GetCount(); i++) + { + AddFavorite(Favorites[i]); + } +} +// +// User message & log +// +void TegraRcm::AppendLog(string message) +{ + // Get time + char str[32]; + struct tm time_info; + time_t a = time(nullptr); + if (localtime_s(&time_info, &a) == 0) { + //strftime(str, sizeof(str), "%d-%m-%Y %I:%M:%S", &time_info); + strftime(str, sizeof(str), "%I:%M:%S", &time_info); + } + std::string current_time(str); + + // Format line + string outline; + outline = current_time + " : "; + outline += message; + outline += "\n"; + + // Append line in log file + fstream outFile; + outFile.open(GetAbsolutePath(TEXT("output_log.txt"), CSIDL_APPDATA), fstream::in | fstream::out | fstream::app); + outFile << outline; + outFile.close(); +} +void TegraRcm::SendUserMessage(string message, int type) +{ + CA2T wmessage(message.c_str()); + switch (type) { + case INVALID: + LabelColor = RGB(255, 0, 0); + break; + case VALID: + LabelColor = RGB(0, 150, 0); + break; + default: + LabelColor = RGB(0, 0, 0); + break; + } + AfxGetMainWnd()->SetDlgItemText(INFO_LABEL, wmessage); + AppendLog(message); +} + + +// +// Driver detection & installation +// +void TegraRcm::InstallDriver() +{ + if (ASK_FOR_DRIVER) return; + CString message = _T("APX device driver is missing. Do you want to install it now ?"); + const int result = MessageBox(m_hWnd, message, _T("APX driver not found !"), MB_YESNOCANCEL | MB_ICONQUESTION); + if (result == IDYES) + { + SHELLEXECUTEINFO shExInfo = { 0 }; + shExInfo.cbSize = sizeof(shExInfo); + shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS; + shExInfo.hwnd = 0; + shExInfo.lpVerb = _T("runas"); + CString csPath; + 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 exe_file = csPath + _T("\\apx_driver\\InstallDriver.exe"); + shExInfo.lpFile = exe_file; + shExInfo.lpDirectory = 0; + shExInfo.nShow = SW_SHOW; + shExInfo.hInstApp = 0; + + if (ShellExecuteEx(&shExInfo)) + { + CloseHandle(shExInfo.hProcess); + } + } + ASK_FOR_DRIVER = TRUE; +} +typedef int(__cdecl *MYPROC)(LPWSTR); +BOOL TegraRcm::LookForAPXDevice() +{ + unsigned index; + HDEVINFO hDevInfo; + SP_DEVINFO_DATA DeviceInfoData; + TCHAR HardwareID[1024]; + // List all connected USB devices + hDevInfo = SetupDiGetClassDevs(NULL, TEXT("USB"), NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES); + for (index = 0; ; index++) { + DeviceInfoData.cbSize = sizeof(DeviceInfoData); + if (!SetupDiEnumDeviceInfo(hDevInfo, index, &DeviceInfoData)) { + return FALSE; // no match + } + SetupDiGetDeviceRegistryProperty(hDevInfo, &DeviceInfoData, SPDRP_HARDWAREID, NULL, (BYTE*)HardwareID, sizeof(HardwareID), NULL); + if (_tcsstr(HardwareID, _T("VID_0955&PID_7321"))) { + return TRUE; // match + } + } + return FALSE; +} + +void TegraRcm::BitmapDisplay(int IMG) +{ + // Init & bitmap pointers + CStatic*pRcm_not_detected = (CStatic*)AfxGetMainWnd()->GetDlgItem(RCM_PIC_1); + CStatic*pDriverKO = (CStatic*)AfxGetMainWnd()->GetDlgItem(RCM_PIC_2); + CStatic*pRcm_detected = (CStatic*)AfxGetMainWnd()->GetDlgItem(RCM_PIC_3); + CStatic*pInitLogo = (CStatic*)AfxGetMainWnd()->GetDlgItem(RCM_PIC_4); + CStatic*pLoading = (CStatic*)AfxGetMainWnd()->GetDlgItem(RCM_PIC_5); + CStatic*pLoaded = (CStatic*)AfxGetMainWnd()->GetDlgItem(RCM_PIC_6); + CStatic*pError = (CStatic*)AfxGetMainWnd()->GetDlgItem(RCM_PIC_7); + + pRcm_not_detected->ShowWindow(SW_HIDE); + pDriverKO->ShowWindow(SW_HIDE); + pRcm_detected->ShowWindow(SW_HIDE); + pInitLogo->ShowWindow(SW_HIDE); + pLoading->ShowWindow(SW_HIDE); + pLoaded->ShowWindow(SW_HIDE); + pError->ShowWindow(SW_HIDE); + + switch (IMG) + { + case INIT_LOGO: + pInitLogo->ShowWindow(SW_SHOW); + break; + case RCM_NOT_DETECTED: + pRcm_not_detected->ShowWindow(SW_SHOW); + break; + case DRIVER_KO: + pDriverKO->ShowWindow(SW_SHOW); + break; + case RCM_DETECTED: + pRcm_detected->ShowWindow(SW_SHOW); + break; + case LOADING: + pLoading->ShowWindow(SW_SHOW); + AfxGetMainWnd()->UpdateWindow(); + break; + case LOADED: + pLoaded->ShowWindow(SW_SHOW); + break; + case LOAD_ERROR: + pError->ShowWindow(SW_SHOW); + break; + default: + break; + } +} + +// +// Lookup +// +void TegraRcm::LookUp() +{ + + // Exit when PAUSE_LKP_DEVICE flag is TRUE + if (PAUSE_LKP_DEVICE) return; + + // Get RCM device Status + // This feature has been developped by Rajkosto (copied from TegraRcmSmash) + TegraRcmSmash device; + int rc = device.RcmStatus(); + + // RCM Status = "RCM detected" + if (rc >= 0) + { + m_Ctrltb1->GetDlgItem(IDC_INJECT)->EnableWindow(TRUE); + m_Ctrltb2->GetDlgItem(IDC_SHOFEL2)->EnableWindow(TRUE); + m_Ctrltb2->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(TRUE); + m_Ctrltb3->GetDlgItem(ID_INSTALL_DRIVER)->EnableWindow(FALSE); + + } + // RCM Status = "USB Driver KO" + else if (rc > -5) + { + m_Ctrltb1->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); + m_Ctrltb2->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); + m_Ctrltb2->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(FALSE); + m_Ctrltb3->GetDlgItem(ID_INSTALL_DRIVER)->EnableWindow(TRUE); + } + // RCM Status = "RCM not detected" + else + { + m_Ctrltb1->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); + m_Ctrltb2->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); + m_Ctrltb2->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(FALSE); + m_Ctrltb3->GetDlgItem(ID_INSTALL_DRIVER)->EnableWindow(TRUE); + // Delay Auto inject if needed + if (AUTOINJECT_CURR) DELAY_AUTOINJECT = TRUE; + } + + // On change RCM status + if (rc != m_RC) + { + m_RC = rc; + CStatic*pCtrl0 = (CStatic*) m_Parent->GetDlgItem(RCM_PIC_4); + pCtrl0->ShowWindow(SW_HIDE); + + // Status changed to "RCM Detected" + if (rc == 0) + { + BitmapDisplay(RCM_DETECTED); + + CString file; + m_Ctrltb1->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); + + // Trigger auto inject if payload injection scheduled + if (!FIRST_LOOKUP && DELAY_AUTOINJECT && file.GetLength() > 0) + { + + BitmapDisplay(LOADING); + PAYLOAD_FILE = _tcsdup(file); + TCHAR cmd[MAX_PATH] = TEXT("\""); + lstrcat(cmd, PAYLOAD_FILE); + lstrcat(cmd, TEXT("\"")); + + int rc = Smasher(cmd); + if (rc >= 0) + { + BitmapDisplay(LOADED); + SendUserMessage("Payload injected !", VALID); + if (!CmdShow) ShowTrayIconBalloon(TEXT("Payload injected"), TEXT(" "), 1000, NIIF_INFO); + WAITING_RECONNECT = TRUE; + } + else + { + BitmapDisplay(LOAD_ERROR); + string s = "Error while injecting payload (RC=" + std::to_string(rc) + ")"; + CString error = TEXT("Error while injecting payload"); + if (!CmdShow) ShowTrayIconBalloon(TEXT("Error"), error, 1000, NIIF_ERROR); + SendUserMessage(s.c_str(), INVALID); + } + DELAY_AUTOINJECT = FALSE; + } + else + { + SendUserMessage("Waiting for user action"); + } + } + // Status changed to "RCM not detected" or "USB driver KO" + else + { + // Ask for driver install + if (rc > -5) + { + BitmapDisplay(DRIVER_KO); + InstallDriver(); + } + else + { + if (LookForAPXDevice()) + { + BitmapDisplay(DRIVER_KO); + InstallDriver(); + } + else + { + BitmapDisplay(RCM_NOT_DETECTED); + if (FIRST_LOOKUP) SendUserMessage("Waiting for device in RCM mode");; + } + } + } + // Status changed to "RCM not detected" -> Disable WAITING_RECONNECT flag + if (rc <= -5) WAITING_RECONNECT = FALSE; + + DestroyTrayIcon(); + CreateTrayIcon(); + } + m_RC = rc; + FIRST_LOOKUP = FALSE; +} + +// +// Smasher => TegraRcmSmash.exe calls +// +int TegraRcm::Smasher(TCHAR args[]) +{ + if (WAITING_RECONNECT) + { + CString message = _T("Payload already injected. Are you sure you want to overwrite the stack again ?"); + const int result = MessageBox(m_hWnd, message, _T("WARNING !"), MB_YESNOCANCEL | MB_ICONQUESTION); + if (result != IDYES) + { + DELAY_AUTOINJECT = FALSE; + m_RC = -99; + return -99; + } + WAITING_RECONNECT = FALSE; + } + + SECURITY_ATTRIBUTES sa; + sa.nLength = sizeof(sa); + sa.lpSecurityDescriptor = NULL; + sa.bInheritHandle = TRUE; + PROCESS_INFORMATION pi; + STARTUPINFO si; + BOOL ret = FALSE; + DWORD flags = CREATE_NO_WINDOW; + ZeroMemory(&pi, sizeof(PROCESS_INFORMATION)); + ZeroMemory(&si, sizeof(STARTUPINFO)); + si.cb = sizeof(STARTUPINFO); + si.dwFlags |= STARTF_USESTDHANDLES; + si.hStdInput = NULL; + TCHAR cmd[MAX_PATH] = TEXT(".\\TegraRcmSmash.exe "); + lstrcat(cmd, args); + ret = CreateProcess(NULL, cmd, NULL, NULL, TRUE, flags, NULL, NULL, &si, &pi); + int rc = -50; + if (NULL != ret) + { + WaitForSingleObject(pi.hProcess, INFINITE); + DWORD exit_code; + if (FALSE != GetExitCodeProcess(pi.hProcess, &exit_code)) + { + if (STILL_ACTIVE != exit_code) + { + rc = exit_code; + } + } + else + { + rc = -51; + } + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); + } + return rc; +} +// +// System functions +// +ULONGLONG TegraRcm::GetDllVersion(LPCTSTR lpszDllName) +{ + ULONGLONG ullVersion = 0; + HINSTANCE hinstDll; + hinstDll = LoadLibrary(lpszDllName); + if (hinstDll) + { + DLLGETVERSIONPROC pDllGetVersion; + pDllGetVersion = (DLLGETVERSIONPROC)GetProcAddress(hinstDll, "DllGetVersion"); + if (pDllGetVersion) + { + DLLVERSIONINFO dvi; + HRESULT hr; + ZeroMemory(&dvi, sizeof(dvi)); + dvi.cbSize = sizeof(dvi); + hr = (*pDllGetVersion)(&dvi); + if (SUCCEEDED(hr)) + ullVersion = MAKEDLLVERULL(dvi.dwMajorVersion, dvi.dwMinorVersion, 0, 0); + } + FreeLibrary(hinstDll); + } + return ullVersion; +} +TCHAR* TegraRcm::GetAbsolutePath(TCHAR* relative_path, DWORD dwFlags) +{ + /* + // Get current directory + CString csPath; + 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; + csPath2 = csPath; + csPath2 += TEXT("\\"); + csPath2 += relative_path; + return _tcsdup(csPath2); + + */ + // USE THIS INSTEAD TO BUILD FOR MSI PACKAGER + + TCHAR szPath[MAX_PATH]; + + if (SUCCEEDED(SHGetFolderPath(NULL, dwFlags, NULL, SHGFP_TYPE_CURRENT, szPath))) + { + if (dwFlags == CSIDL_APPDATA) PathAppend(szPath, _T("\\TegraRcmGUI")); + PathAppend(szPath, relative_path); + return _tcsdup(szPath); + } + return _T(""); +} diff --git a/TegraRcmGUI/TegraRcm.h b/TegraRcmGUI/TegraRcm.h new file mode 100644 index 0000000..9a2a70f --- /dev/null +++ b/TegraRcmGUI/TegraRcm.h @@ -0,0 +1,85 @@ +#pragma once +#include +#include +#include +#include +#include +#pragma once +#include +#include +#include +#include +#include +#include "resource.h" +#include "TegraRcmSmash.h" +#include +#include +#include +#include "afxcmn.h" +#pragma comment (lib, "setupapi.lib") + +class TegraRcm +{ +public: + TegraRcm(CDialog* pParent = NULL); + ~TegraRcm(); +public: + void InitCtrltbDlgs(CDialog* pCtrltb1, CDialog* pCtrltb2, CDialog* pCtrltb3); + int GetRcmStatus(); + ULONGLONG GetDllVersion(LPCTSTR lpszDllName); + TCHAR* GetAbsolutePath(TCHAR* relative_path, DWORD dwFlags); + string GetPreset(string param); + void InstallDriver(); + BOOL LookForAPXDevice(); + void AppendLog(string message); + void SendUserMessage(string message, int type = NEUTRAL); + void SetPreset(string param, string value); + void GetFavorites(); + void AddFavorite(CString value); + void SaveFavorites(); + void BitmapDisplay(int IMG); + void LookUp(); + int Smasher(TCHAR args[]); + + BOOL CmdShow = TRUE; + // Notify Icon + NOTIFYICONDATA m_NID; + CPoint m_ptMouseHoverEvent; + + BOOL CreateTrayIcon(); + BOOL SetTrayIconTipText(LPCTSTR pszText); + BOOL ShowTrayIconBalloon(LPCTSTR pszTitle, LPCTSTR pszText, UINT unTimeout, DWORD dwInfoFlags); + BOOL SetTrayIcon(HICON hIcon); + BOOL SetTrayIcon(WORD wIconID); + void ShowContextMenu(HWND hWnd); + BOOL DestroyTrayIcon(); + LRESULT OnTrayIconEvent(UINT wParam, LPARAM lParam); + + BOOL PAUSE_LKP_DEVICE = FALSE; + BOOL AUTOINJECT_CURR = FALSE; + BOOL DELAY_AUTOINJECT = FALSE; + BOOL WAITING_RECONNECT = FALSE; + BOOL ASK_FOR_DRIVER = FALSE; + BOOL MIN_TO_TRAY_CURR = FALSE; + + CString csPath; + COLORREF LabelColor = RGB(0, 0, 0); + COLORREF WhiteRGB = RGB(255, 255, 255); + COLORREF BlackRGB = RGB(0, 0, 0); + COLORREF RedRGB = RGB(255, 0, 0); + COLORREF GreenRGB = RGB(0, 100, 0); + + TCHAR* PAYLOAD_FILE; + CArray Favorites; + CDialog* m_Parent; + CDialog* m_Ctrltb1; + CDialog* m_Ctrltb2; + CDialog* m_Ctrltb3; +private: + HWND m_hWnd; + TegraRcmSmash m_Device; + int m_RC = -99;; + BOOL FIRST_LOOKUP = TRUE; + +}; + diff --git a/TegraRcmGUI.cpp b/TegraRcmGUI/TegraRcmGUI.cpp similarity index 68% rename from TegraRcmGUI.cpp rename to TegraRcmGUI/TegraRcmGUI.cpp index 8c0e014..ba7c014 100644 --- a/TegraRcmGUI.cpp +++ b/TegraRcmGUI/TegraRcmGUI.cpp @@ -1,15 +1,38 @@ +/* +TegraRcmGUI.cpp -// TegraRcmGUI.cpp : Defines the class behaviors for the application. -// +MIT License + +Copyright(c) 2018 eliboa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ #include "stdafx.h" #include "TegraRcmGUI.h" +#include "MyTabCtrl.h" #include "TegraRcmGUIDlg.h" #include "TegraRcmSmash.h" #include #include #include - using namespace std; diff --git a/TegraRcmGUI.h b/TegraRcmGUI/TegraRcmGUI.h similarity index 100% rename from TegraRcmGUI.h rename to TegraRcmGUI/TegraRcmGUI.h diff --git a/TegraRcmGUI.rc b/TegraRcmGUI/TegraRcmGUI.rc similarity index 57% rename from TegraRcmGUI.rc rename to TegraRcmGUI/TegraRcmGUI.rc index 6597c5921df4321906e01ecfe2233a0d560fc4f1..a4be1d3b612fa40ab42088d16d130898fea89403 100644 GIT binary patch delta 3757 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 + + + + + @@ -216,6 +221,10 @@ + + + + Create @@ -223,6 +232,7 @@ Create Create + @@ -237,16 +247,25 @@ + + + + + + + + + diff --git a/TegraRcmGUI/TegraRcmGUIDlg.cpp b/TegraRcmGUI/TegraRcmGUIDlg.cpp new file mode 100644 index 0000000..2bcf314 --- /dev/null +++ b/TegraRcmGUI/TegraRcmGUIDlg.cpp @@ -0,0 +1,340 @@ +/* +TegraRcmGUIDlg.cpp + +MIT License + +Copyright(c) 2018 eliboa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files(the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions : + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +*/ + +#include "stdafx.h" +#include "afxdialogex.h" +#include "TegraRcmGUI.h" +#include "TegraRcmGUIDlg.h" +#include +#include + +using namespace std; + +#ifdef _DEBUG +#define new DEBUG_NEW +#endif + +#define ARRAY_SIZE 1024 + +CString csPath; +CString csPath2; +ULONGLONG GetDllVersion(LPCTSTR lpszDllName); + +// +// dialog +// +CTegraRcmGUIDlg::CTegraRcmGUIDlg(CWnd* pParent /*=NULL*/) + : CDialog(IDD_TEGRARCMGUI_DIALOG, pParent) + , STATUS(0) +{ + m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); +} +void CTegraRcmGUIDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + DDX_Control(pDX, RCM_PIC_1, RCM_BITMAP1); + DDX_Control(pDX, RCM_PIC_2, RCM_BITMAP2); + DDX_Control(pDX, RCM_PIC_3, RCM_BITMAP3); + DDX_Control(pDX, RCM_PIC_4, RCM_BITMAP0); + DDX_Control(pDX, RCM_PIC_5, RCM_BITMAP4); + DDX_Control(pDX, RCM_PIC_6, RCM_BITMAP5); + DDX_Control(pDX, RCM_PIC_7, RCM_BITMAP6); + DDX_Control(pDX, IDC_TAB_CONTROL, m_tbCtrl); +} +BEGIN_MESSAGE_MAP(CTegraRcmGUIDlg, CDialog) + ON_WM_CTLCOLOR() + ON_WM_TIMER() + ON_WM_SIZE() + ON_WM_SYSCOMMAND() + ON_WM_PAINT() + ON_WM_QUERYDRAGICON() + ON_WM_SHOWWINDOW() + ON_WM_CLOSE() + ON_MESSAGE(WM_SYSICON, OnTrayIconEvent) + ON_COMMAND(SWM_EXIT, OnClose) + ON_COMMAND(SWM_SHOW, ShowWindowCommand) + ON_COMMAND(SWM_HIDE, HideWindowCommand) + ON_COMMAND(SWM_INJECT, InjectCommand) + ON_COMMAND(SWM_BROWSE, BrowseCommand) + ON_COMMAND(SWM_LINUX, LinuxCommand) + ON_COMMAND(SWM_MOUNT, MountCommand) +END_MESSAGE_MAP() + +// +// message handlers +// +BOOL CTegraRcmGUIDlg::OnInitDialog() +{ + CDialog::OnInitDialog(); + + // Accessibility + EnableActiveAccessibility(); + + // Get current directory + 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(); + + // Initialize bitmap + RCM_BITMAP0.SetBitmap(INIT_LOGO); + RCM_BITMAP1.SetBitmap(RCM_NOT_DETECTED); + RCM_BITMAP2.SetBitmap(DRIVER_KO); + RCM_BITMAP3.SetBitmap(RCM_DETECTED); + RCM_BITMAP4.SetBitmap(LOADING); + RCM_BITMAP5.SetBitmap(LOADED); + RCM_BITMAP6.SetBitmap(LOAD_ERROR); + + // Menu + ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); + ASSERT(IDM_ABOUTBOX < 0xF000); + CMenu* pSysMenu = GetSystemMenu(FALSE); + if (pSysMenu != NULL) + { + BOOL bNameValid; + CString strAboutMenu; + bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); + ASSERT(bNameValid); + if (!strAboutMenu.IsEmpty()) + { + pSysMenu->AppendMenu(MF_SEPARATOR); + pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); + } + } + + // Set icons + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon + + m_TegraRcm = new TegraRcm(this); + m_tbCtrl.InitDialogs(m_TegraRcm); + + TCITEM tcItem1; + tcItem1.mask = TCIF_TEXT; + tcItem1.pszText = _T("Payload"); + m_tbCtrl.InsertItem(0, &tcItem1); + + TCITEM tcItem2; + tcItem2.mask = TCIF_TEXT; + tcItem2.pszText = _T("Tools"); + m_tbCtrl.InsertItem(1, &tcItem2); + + TCITEM tcItem3; + tcItem3.mask = TCIF_TEXT; + tcItem3.pszText = _T("Settings"); + + m_tbCtrl.InsertItem(2, &tcItem3); + m_tbCtrl.ActivateTabDialogs(); + + m_TegraRcm->InitCtrltbDlgs(m_tbCtrl.m_Dialog[0], m_tbCtrl.m_Dialog[1], m_tbCtrl.m_Dialog[2]); + + m_TegraRcm->BitmapDisplay(INIT_LOGO); + + // Tray icon + m_TegraRcm->CreateTrayIcon(); + m_TegraRcm->SetTrayIconTipText(TEXT("TegraRcmGUI")); + + // Start timer to check RCM status every second + CTegraRcmGUIDlg::StartTimer(); + + + + return TRUE; +} +void CTegraRcmGUIDlg::OnSysCommand(UINT nID, LPARAM lParam) +{ + CDialog::OnSysCommand(nID, lParam); +} +void CTegraRcmGUIDlg::OnShowWindow(BOOL bShow, UINT nStatus) +{ + //CmdShow = bShow; + //CDialog::OnShowWindow(bShow, nStatus); +} +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_STATUS_BG)->GetSafeHwnd() == pWnd->GetSafeHwnd()) + { + return (HBRUSH)CreateSolidBrush(WhiteRGB); + } + default: + return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); + } +} +void CTegraRcmGUIDlg::OnPaint() +{ + + if (IsIconic()) + { + CPaintDC dc(this); // device context for painting + + SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); + + // Center icon in client rectangle + int cxIcon = GetSystemMetrics(SM_CXICON); + int cyIcon = GetSystemMetrics(SM_CYICON); + CRect rect; + GetClientRect(&rect); + int x = (rect.Width() - cxIcon + 1) / 2; + int y = (rect.Height() - cyIcon + 1) / 2; + + // Draw the icon + dc.DrawIcon(x, y, m_hIcon); + } + else + { + CDialog::OnPaint(); + } +} +HCURSOR CTegraRcmGUIDlg::OnQueryDragIcon() +{ + return static_cast(m_hIcon); +} +void CTegraRcmGUIDlg::OnSize(UINT nType, int cx, int cy) +{ + if (nType == SIZE_MINIMIZED) + { + if (m_TegraRcm->MIN_TO_TRAY_CURR) + { + ShowWindow(SW_HIDE); + } + if (m_TegraRcm != NULL) + { + m_TegraRcm->CmdShow = FALSE; + } + } + else + { + if (m_TegraRcm != NULL) m_TegraRcm->CmdShow = TRUE; + //ShowWindow(SW_RESTORE); + } +} +void CTegraRcmGUIDlg::OnClose() +{ + m_TegraRcm->DestroyTrayIcon(); + PostQuitMessage(0); +} + +LRESULT CTegraRcmGUIDlg::OnTrayIconEvent(UINT wParam, LPARAM lParam) +{ + return m_TegraRcm->OnTrayIconEvent(wParam, lParam); +} +void CTegraRcmGUIDlg::ShowWindowCommand() +{ + ShowWindow(SW_RESTORE); + SetForegroundWindow(); + SetFocus(); + SetActiveWindow(); + if (m_TegraRcm != NULL) + { + m_TegraRcm->CmdShow = TRUE; + } +} +void CTegraRcmGUIDlg::HideWindowCommand() +{ + ShowWindow(SW_HIDE); + if (m_TegraRcm != NULL) + { + m_TegraRcm->CmdShow = FALSE; + } +} +void CTegraRcmGUIDlg::InjectCommand() +{ + if (m_TegraRcm != NULL) + { + DialogTab01 *pt = (DialogTab01*) m_TegraRcm->m_Ctrltb1; + pt->InjectPayload(); + } +} +void CTegraRcmGUIDlg::BrowseCommand() +{ + if (m_TegraRcm != NULL) + { + DialogTab01 *pt = (DialogTab01*)m_TegraRcm->m_Ctrltb1; + pt->OnBnClickedBrowse(); + } +} +void CTegraRcmGUIDlg::LinuxCommand() +{ + if (m_TegraRcm != NULL) + { + DialogTab02 *pt = (DialogTab02*)m_TegraRcm->m_Ctrltb2; + pt->OnBnClickedShofel2(); + } +} +void CTegraRcmGUIDlg::MountCommand() +{ + if (m_TegraRcm != NULL) + { + DialogTab02 *pt = (DialogTab02*)m_TegraRcm->m_Ctrltb2; + pt->OnBnClickedMountSd(); + } +} + + +void CTegraRcmGUIDlg::StartTimer() +{ + // Set timer for Minutes. + //SetTimer(ID_TIMER_MINUTE, 60 * 1000, 0); + // Set timer for Seconds. + SetTimer(ID_TIMER_SECONDS, 1000, 0); +} +void CTegraRcmGUIDlg::StopTimer() +{ + // Stop both timers. + KillTimer(ID_TIMER_MINUTE); + KillTimer(ID_TIMER_SECONDS); +} +void CTegraRcmGUIDlg::OnTimer(UINT nIDEvent) +{ + // Each second + if (nIDEvent == ID_TIMER_SECONDS) + { + m_TegraRcm->LookUp(); + } +} + +void CTegraRcmGUIDlg::OnEnChangePath() +{ + int test = 1; +} diff --git a/TegraRcmGUIDlg.h b/TegraRcmGUI/TegraRcmGUIDlg.h similarity index 54% rename from TegraRcmGUIDlg.h rename to TegraRcmGUI/TegraRcmGUIDlg.h index b322cd7..da96cdc 100644 --- a/TegraRcmGUIDlg.h +++ b/TegraRcmGUI/TegraRcmGUIDlg.h @@ -1,13 +1,14 @@ - // TegraRcmGUIDlg.h : header file // #pragma once #include "res/BitmapPicture.h" +#include "resource.h" #include #include "TegraRcmSmash.h" #include "res/BitmapPicture.h" #include #include +#include #include #include #include @@ -17,19 +18,27 @@ #include #include #include - - -#include -#pragma comment (lib, "setupapi.lib") +#include #include +#include +#include "afxcmn.h" +#include "MyTabCtrl.h" +#include "TegraRcm.h" +#include "DialogTab01.h" +#include "DialogTab02.h" + +#pragma comment (lib, "setupapi.lib") + // CTegraRcmGUIDlg dialog -class CTegraRcmGUIDlg : public CDialog +class CTegraRcmGUIDlg : + public CDialog { // Construction public: CTegraRcmGUIDlg(CWnd* pParent = NULL); // standard constructor + CBitmapPicture RCM_BITMAP0; CBitmapPicture RCM_BITMAP1; CBitmapPicture RCM_BITMAP2; @@ -37,7 +46,27 @@ public: CBitmapPicture RCM_BITMAP4; CBitmapPicture RCM_BITMAP5; CBitmapPicture RCM_BITMAP6; + HICON StatusIcon; CMFCEditBrowseCtrl m_EditBrowse; + + BOOL AUTOINJECT_CURR = FALSE; + TCHAR* PAYLOAD_FILE; + int RCM_STATUS = -10; + BOOL WAITING_RECONNECT = FALSE; + BOOL PREVENT_AUTOINJECT = TRUE; + BOOL DELAY_AUTOINJECT = FALSE; + BOOL ASK_FOR_DRIVER = FALSE; + BOOL PAUSE_LKP_DEVICE = FALSE; + BOOL CmdShow; + COLORREF LabelColor = RGB(0, 0, 0); + COLORREF WhiteRGB = RGB(255, 255, 255); + COLORREF BlackRGB = RGB(0, 0, 0); + COLORREF RedRGB = RGB(255, 0, 0); + COLORREF GreenRGB = RGB(0, 100, 0); + + const UINT ID_TIMER_MINUTE = 0x1001; + const UINT ID_TIMER_SECONDS = 0x1000; + // Dialog Data #ifdef AFX_DESIGN_TIME enum { IDD = IDD_TEGRARCMGUI_DIALOG }; @@ -46,18 +75,23 @@ public: protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - // Implementation -protected: + HICON m_hIcon; + // Generated message map functions virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnIdle(); - afx_msg void OnShowWindow(); + afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); afx_msg void OnPaint(); + afx_msg void OnClose(); + afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg HCURSOR OnQueryDragIcon(); + afx_msg void OnDestroy(); + afx_msg LRESULT OnTrayIconEvent(UINT wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() + public: void StartTimer(); void StopTimer(); @@ -65,14 +99,15 @@ public: int STATUS; afx_msg void BitmapDisplay(int IMG); afx_msg void OnEnChangePath(); - afx_msg void InjectPayload(); - afx_msg void OnBnClickedShofel2(); - afx_msg string GetPreset(string param); - afx_msg void SetPreset(string param, string value); - afx_msg void InstallDriver(); - afx_msg BOOL LookForAPXDevice(); - afx_msg void OnBnClickedMountSd(); - afx_msg int Smasher(TCHAR args[]); - afx_msg TCHAR* GetAbsolutePath(TCHAR *relative_path, DWORD dwFlags); afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd *pWnd, UINT nCtlColor); + void ShowWindowCommand(); + void HideWindowCommand(); + void InjectCommand(); + void BrowseCommand(); + void LinuxCommand(); + void MountCommand(); + CTegraRcmGUIDlg *m_pMainWnd = this; +private: + MyTabCtrl m_tbCtrl; + TegraRcm *m_TegraRcm; }; diff --git a/TegraRcmSmash.cpp b/TegraRcmGUI/TegraRcmSmash.cpp similarity index 78% rename from TegraRcmSmash.cpp rename to TegraRcmGUI/TegraRcmSmash.cpp index 74d2373..7c275b8 100644 --- a/TegraRcmSmash.cpp +++ b/TegraRcmGUI/TegraRcmSmash.cpp @@ -225,6 +225,98 @@ TegraRcmSmash::~TegraRcmSmash() { } +int TegraRcmSmash::Test() +{ + KLST_DEVINFO_HANDLE deviceInfo = nullptr; + + KLST_HANDLE deviceList = nullptr; + if (!LstK_Init(&deviceList, KLST_FLAG_NONE)) + { + const auto errorCode = GetLastError(); + // Win32 error trying to list USB devices + return -6; + } + auto lstKgrd = MakeScopeGuard([&deviceList]() + { + if (deviceList != nullptr) + { + LstK_Free(deviceList); + deviceList = nullptr; + } + }); + + // Get the number of devices contained in the device list. + UINT deviceCount = 0; + LstK_Count(deviceList, &deviceCount); + + if (deviceCount == 0 || LstK_FindByVidPid(deviceList, deviceVid, devicePid, &deviceInfo) == FALSE) + { + // No device found in RCM Mode + return -5; + } + + if (deviceInfo != nullptr) + { + if (deviceInfo->DriverID != KUSB_DRVID_LIBUSBK) + { + /* + Wrong driver => need to install libusbK driver + */ + return -4; + } + + KUSB_DRIVER_API Usb; + LibK_LoadDriverAPI(&Usb, deviceInfo->DriverID); + + // Initialize the device + KUSB_HANDLE handle = nullptr; + if (!Usb.Init(&handle, deviceInfo)) + { + const auto errorCode = GetLastError(); + // Failed to handle device + return -3; + } + + RCMDeviceHacker rcmDev(Usb, handle); handle = nullptr; + + libusbk::version_t usbkVersion; + memset(&usbkVersion, 0, sizeof(usbkVersion)); + const auto versRetVal = rcmDev.getDriverVersion(usbkVersion); + if (versRetVal <= 0) + { + // Failed to get USB driver version + return -2; + } + else if (usbkVersion.major != 3 || usbkVersion.minor != 0 || usbkVersion.micro != 7) + { + + // Wrong USB driver version + return -1; + } + + ByteVector readBuffer(32768, 0); + for (int i = 0; i <= 100; i++) + { + int bytesRead = 0; + if ((bytesRead = rcmDev.read(&readBuffer[0], readBuffer.size())) > 0) + { + static const char READY_INDICATOR[] = "READY.\n"; + if (bytesRead == array_countof(READY_INDICATOR) - 1 && memcmp(&readBuffer[0], READY_INDICATOR, array_countof(READY_INDICATOR) - 1) == 0) + { + int bytesSent = rcmDev.write((const u8*)"RECV", strlen("RECV")); + if (bytesSent == strlen("RECV")) + { + return 0; + } + } + } + } + + } + + return 0; +} + int TegraRcmSmash::RcmStatus() { @@ -294,8 +386,7 @@ int TegraRcmSmash::RcmStatus() // Wrong USB driver version return -1; } - } - + } return 0; } \ No newline at end of file diff --git a/TegraRcmSmash.h b/TegraRcmGUI/TegraRcmSmash.h similarity index 94% rename from TegraRcmSmash.h rename to TegraRcmGUI/TegraRcmSmash.h index c5b3de6..3902adf 100644 --- a/TegraRcmSmash.h +++ b/TegraRcmGUI/TegraRcmSmash.h @@ -18,5 +18,7 @@ public: TegraRcmSmash(); ~TegraRcmSmash(); static int RcmStatus(); + static int Test(); + }; diff --git a/Types.h b/TegraRcmGUI/Types.h similarity index 100% rename from Types.h rename to TegraRcmGUI/Types.h diff --git a/Win32Def.h b/TegraRcmGUI/Win32Def.h similarity index 100% rename from Win32Def.h rename to TegraRcmGUI/Win32Def.h diff --git a/WinHandle.h b/TegraRcmGUI/WinHandle.h similarity index 100% rename from WinHandle.h rename to TegraRcmGUI/WinHandle.h diff --git a/libusbk_int.h b/TegraRcmGUI/libusbk_int.h similarity index 100% rename from libusbk_int.h rename to TegraRcmGUI/libusbk_int.h diff --git a/TegraRcmGUI/memloader/memloader_usb.bin b/TegraRcmGUI/memloader/memloader_usb.bin new file mode 100644 index 0000000000000000000000000000000000000000..54d08e33f009b459768eb6fe73ace958686acba6 GIT binary patch literal 66232 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

B@Ku&hQps^+vlc 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 F?1=7N1Y@pVVJ zQ?QM1$r<4bypHH+&4*~LcoeoNkDEHH_8%o>}Z&ZRwOf+E2TylHqu% z__f`_;jg#8Ox*qm$z_H-Wq2r{Z~ZvFTe60#ZbvV0uVLbw3x-hWa}&tt#D$kyU(>sH{M6bS*rivy!^5S9{Fh%x zu4%213?*`{%z`iUe|Wvw8=YRbq}UXX)fv85kWVk82ZLCW!xIv@JHe;+EOYQ_$!?w% z$%!>VN7yVq4trF@8Q$zTPV716PIs@-rYBqs?>cR-?j?v)Co?x{*LK}68tQD}?p4L2 z$o`YhR6K;uxT(lYUVaaDiPlkZ{28*1ptJjQ-uF)SIHXU5e5YEI(vR&=HnwbAmAzlO zarQahD#}YhKhFO+|BGBdhTwO|!J-IpDA?H!IywO?(KoZm)pMcuDPTze zS0403oWx?=Ca~1ezT}9`rY7l=vo9;6&`+Fq@=Itf*ap1|7KeJ$yYeL&;<_?pfCQ&# zU%VXQoBX9cqCuD6#L6+(&fY4GH6179#|CLF5$-I7_KwwOb$-%}o1_?_W6;4==9aUk zu?Ff-WsV(223m2rH&FBvHB+r@g8rCKv*Jd0 z1bSSd*ze5y`GR-_V6$^5S^9F(30YbKT%r}}Owoz-r*D_$$6ip|%+m|tYyo}xd!w>h zZMibV@5QX`P_AWoDLKZTCIIdXzZSV(jp$WNw zQ9oBQ0h+ROQHkx82=rlwT_ZWM1Amm{#CrHb=kkRQ@o@2?PwWe^pHPdubD!osG0)sJ zZqIw7r?9g(xGypb{L7CN&{k*}=jGWGoMWcu{)N4fxwPXTKLqz9p}bfnbh7SD`JKp7 z!+ny))a}Lx)QhhToxDOagYz;EMI*nMb}$@`CB~TM&`RQB&;g;9rYCfxa<-xmZuG}C zLQ|}Bb(f>yeD{v6${!z_3EwbpBluC#J zO1wiJIQI7>UZW1WqwFv_p|2ZnY|L5}ZN0+T-8295t;h&$5wO@S$?MW)4(#dYv$3wSn<&GQ=R zQ-0ny$<&#CjHAk!7eQYfEH;xWpuO(~@1CCH-7(&@Oyyng80edO*qO(gm0wy= z-pV=re-6sklz1yBmtu?wV2J};0zE0;vc_hv=-O;<%JObxYzgJc0hi{AX`81aABtMC z%AE(Z%6oxZId!(~ENhnUv6XXVapZ=|tE_`Oh@!t#R<>cqbj2=Sx;hcS@N@}xRN!mE zFDP8xz;nfPDNaFc)!P53r_jq&f;J0V=)b}rhXX7YA2*hIw^7F7PIL#@Bum$?y>Rm( zXko^ zq(7UrT!GF7H0J@&Kda5~7;KFkcrq{bTk=+1Hi~(1pb6;wT=1I1|K&%++yg#5WeoEn zf5$D%RpWafI0yge(OT%_HsVr3a*Y}s&MQxFTL8= z%fA1a`+3ql4a{?I!xthrFQvWOY|bcSYu<|8B015I-jSS$=4UVQ{q_ag*IwMtCy)=1 zrt^-t$hlhNf`z5zB5xJ2$ez;pu3&t`s2znKYCZ|f>hJwvyr0-OWL%$kAZq*1OTCqD zKaTI}-_#z@Wn-NBEjumKM$6l>z{cNbFIao~>T~*R=8`o=1-fhpbZ5Y6FZN!d%Gzq> zV~_>$Gu)voC|8v4*t=isc;=n$eU$MWpzL-&r`oG(dlYpVsLOn$w9hMBLVEoqoeu1Q zT_L?Moo{tKI1hAuJ@HRhGv-X2;r-ew{vWn=$@{eR3OLdF@l|xA<`sS$flF)3tilE5 z0er3C>Sba>H*7JJGGX1o+Er`M!{k*z^OQb(8_++WX7H&Ee%QxnKY0{_GhDJ^UtwN^ zBf;`jV2~{v;AcJU3KrqW=Y>#8wyp3hyLJ(_(K_%ZJ63Rns2c_j{Gi1Bus(lu!4N)) zO}f(}ik+31hCI}~V|&Dr$IyDY^j$ohSd4xcQ)w2Jl7HxeikyO*D@7YwQ!Zfc%O&69 z*;*4!j{ODuB(Qf+*t*}dbf>k_R%|T!8}?&Ul_1aMCzD^67#wT^#i8cMb^?>u*Rrej zh1^vkYolo0G&yw_?;5l5eb9d%`6-sL)+v_m3M(dIa_XbOc;KU_hQr=A#(a#vzR4PU z9l!nc*W^@fx{vF?k6vVU8gF&1R_rh~Ly$20j8+WA&)gQ7xoC~LO;{2s3U zz=+(GZD)Pq@W1FL)6Sa!9VVlSCo-w6!&#o@X`SuM-$#Ccv##^fxJynSEc+#Nl0ZjF z{|u9>=~!Q4n&tsK#?DWdi=RGNb_hMLG6{6b4F^oij`8H5L~i!xk{b(Mc@Ui@eVI7l zr>DdP$ec@zS4~;HQ`y8qeAxU?#N6^7XSn4iLN4q}D8DA0r}b$Zn%Gh7mgBcA-*Fc9 z3btRDPHs?n8 zpSZv&k7u8rD?dmtarTQQU|&oiuMhU3_%dmI4h1R63h}6TKE$`i)&vipwjo~_-MEf%4Bn{x8t|gm)|8=7+2pgnG!(P0=l@#p*|^bJAs8Fl zo2HrGInDAxC6uc=Il)VeH$zFEuj29P1H}w7w^vY=H@IM+Ri>-1iQQEuFnlxn16k)&6iVN zZ}xW88RAs^vf3ZU=Uub)OD<={xSxS@EuR4PT6_iAdjr+*Pdj^T+#$w3mt;Xf>Tz(E z95;x}!q2L*>|3hrVd$YL>e z&WbkT_|26~%rAaqXeM%GxWruot`?gf{OD5>k0P7-?j7>|T$(rGvHMIyeq(C5_;l%WvmT)l6@iD!mdBidF$SH{V_T94RU8#dHLsI;-2Jx zJYm-aKCE{d7Iq>7?7C4g0sGOz?DI@P_Du@;{0q*eq;y}?mw2u+^54sk|4E)T^2{O6 ze*}0+C)jN_Uf<)9P9(@)51>@__UA*xx{gAN^nw&<{tKP99(h%5RtcW3 zLhsij{~zU@WVP_8adiFAhw*)IwYZynH+D>{f7M1l;}tIQ8T0#&%jCxnfZt&Jf2+)X z%4obA_Zv&tFG%|bHO`MQ&clpTw(Xg$ZvuJne*R3^fY#ni&#`=A#kBcV;8y#zk@h>L zM%Dm|;gd~f?Jw-GT4b$atD@Xl4(*hOrdRJXIVQIhA94Hms`B1g@3f_^Sy8|}I?p4+ zYQaNSBkN%1SNkP}oCzxj4g+mWjZBS2z-hT`%^U7n>@IukW@LGf*>^=x`RLFE_z8L( z**6P`B^hISdh4bxkNJVome}05zw*toU>x$6^%V=TBdDTANG_l zE`cqm{?tx%a6+kQQso6t<;13GD`*cJu=EGC7dbXub_l)F#(Y#ROWnK_KS>k0f*t1M z5bN3~@k$l=Ar6wG>mdA5flYNczdH^mdfLH5Bk{(I_^;>05nLOr@nq}zabf$dy*pfe z;=H%yk$-02_a_cwR|Y=Cb%Gl@TLOM(LTlCFxDFbug8rh=UHo%}ORAP#H?NX=EovQ8 zDtjkyKKCGl|AtUFX25?#$i)5wym5wZ@k8L|Jm&m<#;$TI(~upyV34s-=FHw?a!e=a zvld%)`sMD>5qM+tjnkLhLJs0#_VpGrS8wfkU|M&m;Bu7{t{*M>z&Tsq5UuIFyw33E z#dcBe9j#9&^JvkP=S%_jWur}3S#}Qlf!v|ad%ZhGKT}$=hLW6jlbwYAs}Y=fXXR}; zQd-V>LOwM;dxgFI(G#l5#ou>=|3EH@{FQJFIt%-1sI4)c7 z#rfVGe9Pqd?4kZ&?R)j(Q<9%bJ}UU6MtuD4uQ|UCEb%IAetewLBfYFkw3f{(T)bNL zTRi5j67ThgTd$QKvHzjtBy%F$U-{3FbyvU4I|JN@?ARV1S+{m0L$q$~Mvf>)rF`U~ z>(h;6b6tw>6(^`z)Z6*|9X7+Y>3vJD~<$X*nbj$n6>&SX8rRR_Hoc=%3CLCmp z*YeazeBQ4tUy=7Xrr5)`!qa2g*Jxr)wWUsZG3QO{Sf4a0Hi(ble~tIk*)K|@X)S4T z%9^nGWYa}V#eVr;1dAchmUJg;1H0yV^*@n)$X>xmjAMCEF6*nD)0ZS!-)o(h93LwG z!D~64vYE3p#+0C6e@yu7dHyi6IOy9QnowFlrm`FxeJ*EWR~ho*_hT0h7jQlkpS9-w z`qIks>n^A)Hw!Mok6KxdZYj@`{LYw1<*k-~tC4x*Y;sK_^QN`gUIvWMRqE@SW2(sh8BOrM$bD>c$c(q~1=>HCugSthOb#+v^6Q9M;COe^ zP9A0L|2G}Zu712H!LvBu+C#VcXIJaBC(b$iaKsk3yo}E_JQ2S#{(r^H15-@U)Qr%Xk_p2cgRM?!|M#P{CS}dveXvcM3$h({|y<~aB+-LSo z@#4k!P?UG`rc1mg`Ra&k>t5ToncsZ}7dxA0B-p!?yd(cwGL_{$VDD%%#JP2Bp3D7T z@&P%lC)n5O3o-6vi_K>1dsw}o{AKbvGhea9vEjLK>_6q`(0aq@8~qiR&b!1dC-%Ff z7X2TYXs*^d3+eRVTN|6XnHToX0A|T~!`;Fr5F0C)KgzFI;ULL#u>c+irb!`{eerFuOvBbk~}l<)0V_HnpJbb>HQnChHeDz z1o}w6g?H~bu?`H*I%xft7cQ~!Z(CW{8Q_y%kq=mU1v*0CnW3j>&z)(?v2PZ;v)uB{ zte+odpD#WpR37L7$=w(KBd{eVr&eQ2+<_hp^kSy|Ye%lHK{rYV4l&npY!c3}tZ0LN zp}9TU3pY6x-aq5RQw*ngwGf|89GgP(Ye&Cn_oF;p4S%dd=j>RA z&+{I~+bmm)=dH|r>#a_C>qE{-xcv(6?!bPqaRbgmazqiRy!Ypy-HmbJG}|x5ST*FZv++ zB1JEUZr1)t(F<8O7iWdW+Gh{v++3C8_`l~*yxBmTmE)YT{ow?DZf9(w*z|lIx*rZ_ zjqHPHZF*9i%N#TG>sh{j(A?eeMf3qa+;8$s>lu7!BWD6V=r2hekaUsZa}#C3ckG=x zC-%So@|kMvvjxP^d=$SsuZ6Ji(hh?`3+ z-o+k*)^Y1thx&fIoLDiufYZzR5q<_OuY&$=BX0d|bkOa5AKQPvSNP}iz0ZW_dCE^q z>?-TlDXB{4R_D9^5ueh6@W*?;)8Tj;oAocd#5hp4o%gx}WIFm!{$$pc_UzkDj6Z)C z@{PV7_+EI>UXJ)su}tEZTFD)Jo*T-Dy9O_D@|GFq54*1izuBaUaQ^ZXdr@7?0sOpJ zGFRo##OJBL`q{hw7b}-ea z93lOBl5uhFM0snpZ9kQ?d-zjQU*La)I!s!A3H*ja;4ZrS<{|K;c1&XFU=Hn2zN;wT z%!{us83cY$F?5o-4tTuvG@DnLb6$R2z+&1|j4XQ0?uRc27u(4z{~`2`c-L+cqgC1705IH{p6UF&G?Y_5B;iCciv9Q zVGN(4zO`2wGyKsU1^x;%Z6FHY>Hdm}aN+WC$Wiq_%l6M&fbadR!Ip4dqM`0|@0aPj zW8$lC8C=KM;;ZKl_LAcx?YBy;1t0h*_L$kHdj+@8-6lLtrVU^mS*wiL*5``;{j=t> zpW~c|4DxVbpcj`G|+Vc^X4Kq2^5nINNNB2 z7S`Hbz_vY9I1q&nY75Z$+$UCt%u`u=o_Aa?d!F6+=j!so=ueL)1~3h;-8n zXLzsSle|bejrYnqW3sfrX6$-Sc&^RGmj+Ifp{0Z4)9_5@oBQ2UEx_>`;fVWpBIpD0 zMt&NXJ`GPzm50d#&2#lR8=S?tA4l_C0#4PJV-BE2<>_7I3ofOc&UHo^Gb%{X@?IK^A$v_zlA_EtD6HH05u_pc~c z{x9KCDe|Jmo&;vmbuY3L9vCXjF+EcYP0y5T@M#p9p*MN1v7IKoqH`0L$MS4Gl&RDe zZOhLatVhK2!I}g+Y$$%nc(Uwn57gCU>Ta|s&mMuuVZoem|y20@uPr}h(=P=QFNH{9ZGJA!a$dRSI$?#3jsdy$~*O&`o9&StF2OZR9Gi29TC zKS5piuSM~^5ygSu^g%B-sF&{JKX`X?te2lFrGRyjV)7fndlTy>*Wy2KAj;Su0Uz5< z-oQ?HPvhzb_ZpAz9?mlP=vS`+n%RM`ya_yW{(5&K{}F{c@O`2#iPNqrmij z?S1Ez_M{Ipa|p;MT?tW2QpSFYE~st;(|jlS8Lq!QqC4)r)@8->imqZW zl(k|6_#@9}_uP_}DO(tucxwA_cIUglur^1@%Bl!=X6B_tXAZeHWgkxgf8VsUIW>0d z55!xpn{92oM()## z;#t-yJ6O+458cc2F7~G7(`>wgw(|1} z^cJ}DMwzBQ<(uxnHdWpR(ZHqX*KN%4!Og>)xKnW8dH;?Y8~0s9TtD%?b`5{vMrTF; zY2;y@=&r8BzmPoac-haF%#%I(ed@PjqwNs?ffw^E=h#0>9!vD@L5Eyl6GwZIYvQ+~ zizY@Mi!>X~qb6TvjY*q|FK;F1a~pLJ3_2@n`A!btyH*>-CI61G+cx(6bsOIS2Aywz zB@IVw82Lwe+3NSwZvV11e>G;sDLjlVHeM{hpA1rO`t zM4qXc72`K{d6HP5Q*r3WJ!Hp@VY_pNbIJi?k`>c5gZ2*KOG=O*^MGU%He~Xv3p*7v zvy=N7`+*T2XsJ`38rtR@1$wgPz1?nhFY-*eVq zG2D)EE?YR*emwY-y*w?irHpScg3Q zg8F3r{w?0A479QrdC}53+I+u>aVKdvz{MNHmOOgcDQE4o_z1sMo`h^I8ka4j+^QNQ zcFJdfHJJYp_Y1{ui0hugpsbD4TC6gv`v>eq+F}hFyx%Lio!lq-$sY)DKNNhow*_Bc z96EK7joQ1{_%zlB7@t2b#a{a3`bc_Q^|YzBRiCmg@b_PhYjy^#Rln3ca<+s@%h|MfJl#Hd>qqdZ_A6+A zC1YzL$Krf`H=Ilzi*-K?G4x)tlvIG+xS127w++4tx^c=Z_;LA!w0>scbJ|@z~~@D zE6^?d$fNW4$Ukb}oeIelWbZ-N_iYW>JZ~1Q7{^(ZDU=^R3mH1b<}T7%#yuU#Hu)f; z6X$vA>ubP@j4A1ANc5}>S0 zP~PRlhE1tJuEzxve0LBZL=rgS>}g9Lyv&}e)h+ZbUEDxCm+a}?!mZlF2H?(7*8YX5 zZM2!Z!?)#uMZ>7Z3;GZe)&{zeV4A9>q3{68G9h|C@kM_MzGW7n73o|4-_la!++Q<$AXLJ5ITU zwZrl5rVZ(iesK5=esAQr@Q$6cxMJeGa^d}ncNK4R>RQ;36Os>1w$o(OWcRv%u-@_H z7ykJ^=ASmOGpzr9^Vr1Vrza%1C(o?dGL5@`nWJ0An-byk{nm)OE08|zI`JjO^CI|| z0`G{1dZCY{H#s&Qy7gvf#RBdXPSBoVuYMDEK)p1E^4Wf@N)kCO|9wAnp?z|VOFk0# zZv`^IzKig#_1ng_vjh98b>oTO@Krf`T35@~)p$NYUA5EN4*f8m4Y}^>UUXgpS&JMh z->$t!+6~J4dp1+>x8<`(Uzq9zzbn}T?jA#%z&XHw+uoyQ#fIF^u5Plv=&8HutB<+5 z8XdI!UfL7hOtN*_(%s_iX{kNGB4-A%MLJuobA&pVuCvC!q`l(hwezZ$N9RS6r}BAR z$9W_D&RSMGuRY{kUXOg;0Pj_?o|m6Qed(-^#ewK)ilnd9EWyIRKnCS&{=zoYyX zFAOoBN`61j@5a}Q=6!>2?S)n3yRQd(VOrZcS*A0@TF@nzwqkzc_-yNoIg^h3Tgv`~ zWdA|R>5QQDXR*fZMVHqWlk3Tt(pv0%d?Z5$p{Y1Fdo6p*=;P*(Ve1+C&peA7C+1Xf zAA%zj1`~06h<7N>tY1of{*yD&4DPCJj>ya9FtTr4;~AH}I4pXYrBt zC05@GJbyb^c5?NtgXZ>z!4R>^b*xVmXX^r&Xj^Bl|EK*am+JqjzsN{`sgwIV*>516 z`#EiORw=A}Wk;efWP5k^nHK1$ME~Wxh`yZd!A;l;8PCjU?+%_Zza^Rn@pXjnO6aR; zctR=b*cG%N50bN5s)i#-zb zNKEmm!{IYWe2R~SBcASFa=tdPvyI;#rA{ zXPlR~c;@WH#b=fzE&hjMhtsC}Z(Q8S2DTPWED9x?Cntif7_$tB0IfvMnn1H?9ra zHZpm+l6D>Z-Y)$niDP@e`U(0B>d2R7=(CVDk>uGV`qh8IsJ3=cR&B+BPtV6wW_(5& zwU52!-(kqSEx}^I3441=EAvwILn7JVNo5) zia;KzUIe{2fG*Kq==b<`fd?63?U)ETwMEmqXUHK}8v3d$!W{IoKPj3HVi6+Lk!>Jc zX$;XwkyrB4oWVSJM*M-jTT^|5azC-&ik#=QX^q@J&#N0}>@&Tqy6;@CZlW2g;&)}f zvHngycT|V(XyQX&Z5BMh|LEiAdzCq6NP8jlY40YAN)M`ke24*l7~2uE;e&pBA@d|! z`V?cUeFb_7?rGWbLGNmw*|LRacpv9?ytv3?PhaOvy6y9MXLzguH#P9w{(t-oZ-Lqw zW9hD2IM#EUuXN8D-o?NbjTn{PW42B7#=}3Nxy)y$@l5_k)zx#=4a$dJ(w${bceZJ) z_Z4A}oBK3p!h_i}%f=E)rb&lXf)kaqI66{f@iOv1a)w77!io0@{)6L6+KGT;SNK5= z{^TV;@2mZf4BW+k#oF5c$iMCU*M6Dgn&z6=1)CFH`+Y9||DOM{dljFh|9{7SXv>z@ zoJ=E*RBHg0SN#J1@8`UBP(GLc*uv+^{{IF0VwJ$9a#44(w=msTOP1;W6wmipO~#i* z-cjDOp0WKlFqgrz3)6k0jJukOnFGqbO}y*<{IBJ|>b=GP2l(H{f5ZRR`M;8SEkW2j89kJSIJ<>e`J*pCpLYEN)ZPxmW-tNf?pgMiNz>pAD)>LJA(O*VPW z#F}qKw#s(1ag*QLYxl^wlc^eC!sLNv=o4fEc{=?6hp{=dzIfon_&kN211kLUdd|y$W21cjGs`FK$Nnyv(?gln0mhwS@9^ zw}jj$@+lWFAM438d6!3kXAb55lX8{Joik=pX+Qg0+3aIx;p=A|zvpAg+1`%9#*IHV z?#4U8&+l?r=Q7UiCTF1j&9xih@tP<(vR;Aiv_H7PnB7spl`%qi2y5!PGx0j&bA~SlxAY<<$*Jn0u z_o^Mn@F@NN7?`M6CRjQsYq+mqA$|UYHX5nd1aCY$G1RFsuOH`h&H$$M^wqR1I_MI+ zR&jjv(cft-$E)`VR+XEvCX^Rt9T$%5nijpiXo*W7;5X$`uj++pvzxVaFp=YQYCKtj z2fd)@UCj%FOcbYJ5{b5#DU$nk~yOh4_?w)(24?dlh1G+$49jb_vU zb6I25H*G~Dz0>@D9oz4nzZzKNgWzbgqMrV@bVdGWK(YyH{Iex`Hv(1_G zs(m&p{p=I_%&(nEhjnk&R{WJ?VxDyOX+DK}=%(3RFnss&u zW77Ix_DPjlRQ8#$%_X0*^9S!GnYV!NTswz;9H)VH0~;>bs}AXi#;e$7 zjs`q0`7Hhl_6xqq{FQLOXzOoAA6>-nruVA%wZnT6aA?3^)eDj4YG_utDl*{#WO$7W zyiszpECqh%tj4+5?F{J|W0LOF+NK&@7E`ARdMIXIIoOb&uRTb{nRxHgeF@GM6fti) zbJO(R!hKQZO?|5Gpx-L>OS|f)pMJx%C*HW;L8f+qOY0j3?mc4vO5v+Z8f*#X?y%ZdjLZG0CPwZEbHcbNZQ z+5i6hH@$boz9{pLy+j#*{+r(W#J(u=uXSeAdyDrKG5=BKznA%s&Q47GDbEj*2j_Xd zl~4CMGx(GPJX-oLc zVIKJY!w$wAU3o@s)nMbk=tP^t;}1z_^byL=pbv5g#Kcz}@KrtY^D1lhe#SIR89^Wfzl-Q^=Op&{X@4p>nKRlQx)oW!GnBu3 zDRcHhfiK5aBj56nWo}W`(EXvjX31}ChMI7PUgt%aBFY$f9~^`a1CODE)5$XV1Pcv-wWuqZK&- z&DPX27sbp)HF8jMwu?STO>{aF%vF-PdVu+EP1E6e=+N%bq~%aGa;P3U6hF15>9G3v zC-&7thtl=c$e~u~upT;m7CNk-y|q;JGeOW_yEp)Jg#~b9|uR^=jul0&%A~&hi9Ti(G2ro=@HwG zc!}(od?o$ib$t!^+hrGgh5uF1$WrKF2mJo&qR>$Pc=z=L<8_EpjG*_9QT7eyn)%<| z@Lt-U;F)Zhr|@Nph9ZpFu{1ITy_+}Iflk^OH~QVuNJZEgC{ve8e#cwjBEj5-nU z6h$sOqI1fNmI66c1wKX7SN09p2#3OFa*R8qvJSY!Z#>im9uBe(Enl~2b1&nGz!UrG z%-)9A)@+R0I7fG5BmDt?DniUfB%Igm+-nBa&OiKtJ=tp3$c*DE>IOaz$^FS|oXv_! z5}#l%?2(_PVEV!#`K9qU4#nZ2r?Lm1l8ubcv1{SV@S?Kq#mGL!w*A}Y=s$qdqBW*- z`)|zAMc7Yq=3D<2DE8DA2tQ?zFubq2TMgYQ$k!{5@U!imP+U3EsYgam1-38cUEr zA`VQ60^*367wMh^^d?&{POMr3zlqEpN^l-ZxNc(2FL^4uQmmTxtn_>7&+%39U$}qa z6x_?-*F+zo4A~gq;BIVsjr$z&-TRH3w*I?uzfJph({~H&%x&ObFnkdns%74^7t;Ic zaF<{Yx#X!8-Gv?WXlTHpZPB0javtX!ZljI=4lnY9{4Kn^#5>_*I=B$824j>xXy=yi zV2r)Q(`ascnUA{}du^5RdifL+>x1vc+LX7nAkyNR~gToG%vW|#Xv(YFkthH z$Xv-+D`$|o4l+h^=x@nL`6(n{TC30_z&9dePWNL)hmNBkksb0yx3b?XyS}A3@sMo$ zQsm11or#AM=rCgnnqOn=tm9Ms@0KtA5B#5;^WsC2VcqNUH~;0G;jU|W#+jAf{hV7l zlrC?0?ock8$lu(A4%!}a2I_$26TFuma(TA|x-fU=Z%z;g2d!TI0Q=XUgdVit+8r|Y zp#S$KSra3lkIJ^|W{=ZFwm-=;t$Cz#9dMNd);8wT5l!)5yr**DaU(i5wFJ5H26)Eb znEEjN*E0X2y{IX$Yjox0jE4%ERabJzp}Z|a{Zd1$KW#^;Cw}Mv_R4jdBjt-(-&c8; z8CrS|bIrQ4@*eeXn%%p!Zg2)Tr&QxoHaeX=J$iTKD;p~*%lfog(+QbnDg ztBq;z*Tzn(r&V9$D_-Dkt0I=p!ppv!Y^;}|JI+g|$Q_mna(kf1iP_H@I1SnG9CeZF z``UDOoqn6_=2wW(jM8r{JStsqfU*an2}7I79MNjHxu17IZm=EntMbutx^6iceUjbdc3Ioe;uZGIi`<>S=r zrJndq_2lQ&+_6WOUm3zT&S%a7a$+okZqogAP$z<26!f#7Ic|Wy zYr^mM{`Z0PISXt12&`JOxZo)JXa3%VV24ipJjDK-#(;-AD$n-5&HfL4jrjGWiVxvF zfY1GeeAoEe>+pwbJ~fX^p_g84d=uwhPGCFCdK0eEnpXQ|JIXq8BJ?RJ8WZ?v~&faX` zqYxi3fITg%Ps690@5cf2U$(1xw!(`uZo4sqhB_?s^4qfa`f;f;x9S(l1(n+(fEQ#rNHMA;pMW-b{{t0LbVI;7-;g_)T<*u z(@4Ml_`P|4F=fyfC!WvaUIU(&sV;pxx1W()K`fhttx`Zg`+w|s?5SHlFq1ZAi;uK< zpW~fFz2VU0fgRAm$vWUUJ0Bf0h$jg<;Kk1;IgK{b`MIraF_rqs%iW%vd9MD+m$pJY z_Y3B>oj7NW)%KSa^2Sq^*Z}Wk<^g%Vq6s^o?ykyn4!^NJ*W%>5kiD-_tgcb$ZP|@sJ|JzflKEaDU-=74Rywo{V#o03H@3+ zd%VKZnd~Y(hpr#D&!^9@bawF6^0!}X=}dNn%8$_NET7Kgs|nUYRwt)@%v;W?!dCO| znG`>W?%EIQ4vDPP&xr|4aOS6tGRl>&=i+PVtEHE51TsL+>V$LddfmdAU5!nC9NoPU z_~rv#wIkEps*SfDK3;ln(V*xukQw6FgIn+y?ecS&MACXiIG+72|K2BG-tTx!{xR`p z1lew7^epKvb5wh}`mY?wtYKH2oHt1E(&5fq;b-N>BPKjmMZIIte=D+eJD>K(>`v)b z`P=iEH{spxKQGAl`hUt^K!KUNy>V1$g1KE+V7lXHv0syCx_gOZJKX2*S>AF!er)z* z+o4mRM)Om5q;c8Naq{!~{|cA+sR_d6*{q#8>-j_Q!`Ygc#^PerYcDW~-z$FtYg7Db zf~^m@u=z)1vO%}J$G%09`wZ1a@?0}iBi|!Dr&yIXp7oPp(){sE@8gt<0DBj(cj-C! zkAVM%3oCn?pi^Y=@+A0x7uW+C<$aO;7|Q29MtRoEf0dIAyxToz!Ii^WT6ALTa&PtL zsOwT!aR+=a-elY0egw+B!M?sN_v~n|hH|Q}Twx>iXXkhy=XpGxkIa@`mg8OOKU=(k zwi3v{BF;zG0&fEOrx>mzd@r0ymK?a&KU12JOkkf^^u<~v_6_=x9b$3v!dc#F;3Ppm zKLO4bn_I^5gu_Hy4hpYroQJ9$Wx5p`^h_G3$$H1@XI+@A<~wYLUIjnd_?@n&jEzTI z&)hTr;+GWXtdg7!Y6It-J+`r`oHZW8H(>8&u&|JObrR#7Avy98Fe5{E{E;{}aJPu@ z)}o(nxyR1-e!T}-%l{5wXs7=ubNwRg8GCkyyPX~2QM_3{>xg~88^3^cz#oRY^D?vHuTa<*FXcSLt&oZZ0hKa|8~raXIZ%1bI8G9~rf zwsedTW6SKLls+Vbp@+o-jG->T`Bmq7JBiT^(T?U}O&b3}o7kXzKL>szzJX3#fk|tr zdvi>_i_D4JJuP2$4TrLgkob6koSJ8AE zca=BAWUEY05f^+PdxQ5iRL%5=<$U~y>&cDv)=aOHGc-DT-OKZ*>q8zs!rh!tT->mB z%|_0m_Hh@XJx9ttgE6&J@Gx}wY1SeB9t$?%-^e*g?o!Fw<6kzNAEUkOe9pdNL%vMj zzx7q3bKPer+~%kL%o!ujh?TW{+J|)=@mMbZWz)4U4Z#mO<3qpP!?|T?RrxMpePr{c zy5FcTj{kot=T~asU(P*F675!U4|IjeS}r~xjhw~@N9Ea+EV^8^aJH7FsKc=>^3oPwDhkw%lO&&@3gxE2=9~i(?ZA7o>bw2zrew5 z`^@q4J?(A%kTto^M}C8E_R|T|mrV0v98DjRH~rj;nIMsMv7LfZz9s4$k?bK)z$UF5rK{Ax&QMh#KLXqJ&2UyKflQJN ze+xd63_k`>4b3n^tB^Uei;~zy2l)OXH1x?Fcj$qs@~dDIBI87J$th-T0$ZrRz;q?j zx~hqNtEP~h)BDVM#oip?P4K_tF!EuS<5e=J=YoSIc|#+UO_$CqSv<|0f$YdnolSZ5 z@%?WyZ+U4PLN6bNUKmT?9OjvvaK5coFI!7EpPY&~^aC$gTPx%FJf8QSWVaGGPao3f z+t87U1z(yTkL;~D@WX;8b#Iyj9$8%H$KlaDbf^57ZK|(1F8QE0gg>v# zwwIs!8sp>n5rbWG26Z)_o#e%YzvtTWIcIpfYh-)K9HqTnV_K(Sx1g&H_j4m7BtO#U z4~JO01b4Kmoo8t$!FX&tw{w;_W6s0$W$l~@ar(@eEyH@IQ#Z zR^$H^xE^_TQ<0}VgA#mViJw=V6WrCRyZ5fkz2@yU@bjc>p7H-gt=bb=XS>nRE3QeYVJJr|ly2 zt?Z=)_7Zk&nd*j?^x!(HU49$K7kOM3KV9h8y36B+-O_Lq^NOZsI) zv9`o!Gg)CzK6Gq)tyA|LBR1W9c9eH5&&oiqaQ2^+PiQTw@`cAO%7n4t4Yvj+h`ez2z z#%r{P9T&r=T9(9**pEz3egi!4jVznwQa+B1+e$lC_)dNPEl91SjkYmYqkHmF^BIG_ zx5D$-pe5L9vG?0wQ*6HIKZv1{K9XH38>)l*4L^@gGuWTZdymep{2qE^JdayHz-PyJ z;~0|xm#2ZdD0|YfJ>;*8a&N4B|2tHkd9P3NWDqZ$wXAMi6?f}y_&=n*dwkT@o&SGk zCWJ^(LlTk@(98siGFopyU{IUMK*fq%6=>^Px6CBgQnB4)P!X(|0JZL7TRsxSg1bxt zS~F`~S`#F_WdhdPYIhMVwbs@EUW?s=q9hc}_xU=X`6L5s+u#2Fn8(a~KIi&A@B4Y5 z_hBw8ljy-GjNx!rH`cyF9sE=GF*Na=z}Iu#FW_syLi`$^^;1>YufL|BA-lRPeK+F* zUOG!_F_1O0ya|I)A3XAnv{1I!`7X5HFNYG-(|+LiV>yJK30W`qx_P zEO<4#aBS&B=QZ>VaJW-z%QzzX);PQ|Y=VbopU-vumG5tBANo`*e!laYzth%z|3F)e z>tJm2xz6^#)7HQJqit23>wN$3v~~LlZRw6M3!jTFa;AVc`fu0kr4i0~@53WM>k_c< z1>4xp5zborOR}b!EL`E?7AHNJrp`@vY0ZU~C&E-~qjqe6;|iT5ZK>=B<45jUffL3t zZj7_|{p09z@xsNg6tqs;T|?t=bI`bY4(&;24UkI#eMj~t_aI{rmT_lAz}3r(%A9=m zA=<1C;ofVGeue+T`YN{I&2-*-I;-Ok<_K_eq)5I5W&3rEa^9wlcnS7USo4;=h&^29 z)G>ZN7vAf+-p6{&to)k6JH`1v3U4&T`b2 z?@g0k`(JITpYJnX@nGr8v_l_dX)~qV*-6=Fy?HDxw|6Y1@M-uKF3~w^#z5XY%A~H) zdA8C;#IVd)AKEX+zBnjfQs*E2q^ouH$st|RpBB9Ao*!@(d}R-4j_)ATWs6vz%UH~H z#m@KW>Gzk++DaK5ia;CC-;7IAdR@9IdzdgoLK+LQs-a1F?_`=z7!u}hJ60Uw7scuWHgRVL+$vOvtX!s+c`d5>iiS+ z_Y@4x`4idkR52&n*tzu&F%IZ{s?PKd!sT$ObCEX(VwUV2(3_uB-5o=Hze3&P`i_rw z&Y|9YrMf7t$xNG%2;oe1~okE^{jb}PP+W?&ZUGKB=)cXMM zf23#FDR#U(dk>$!^hvE*0@!QZ(j6qP*4%4-FUYR)^zxs}E)@RC&Kr~d4F6NuC;|Fz z$UxVui8tpx7EYs~S^2rpeY5j?f_|j`E~KvXVzsBXX7NACeO5CEMq6Eu{p2p~AEMjbwpjg5_PQ>oLT6V znyZT&^m10ltzXF1{@=XVL=p40@nL(U$c3 z6y+Wgj&gUfg~w6l92tVe6X3VtLcduWC{6e9O#U0!pNj0$Sf8$Rsx@x#?l>B^cCmZ^ zv~9m;j3ZyG{k>w0wR!FD{~hDVZn3}btgw5p`mM9)jo&MGe$Trgzuj|~Lwevmcye1e zHUz!_bjhiyZhY~k#Ks=v>XI6l;sge55cE;6?hUF7?zd96mbw|%q={T3vMXxioMR@A zA-An2?Numt7(S}KYPBs{tMR!p0Pi2)b^kxcx9}gX`!iw%%o^z}((f(pFi-q*b0y

j~~hA(wOq0uU_awaX6`3^h4s46}z+d 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%0D(O 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�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 KZ L%}rJ?fC8Qx)8D*ss6={kRkticG zWLH-7{NC5Y>G#O^_>Ax8_kI0e|MPm??$bHvzOL)O?rXg7>zoI}a2R1mR+d4p#!MGt z7-xoI+O_-gcZfK{oW?aZwJ(3~$8$qkF^rzx*S|Fw=7kCd;Gpq+6&Yr$CBt;X-*^;P zzFbGgFrbrzvDEmF<;#~dn>TM3c5-s+Zi&O(+8+VDV}|_b(W9BGSFZ|T>;^eGxepo|8v6_k45k_y8jkJMsZ$o{ zTpu%Lj4|##04pxr#Kgp!KqIuawpMV|s8PD$`><=*u6rXRBPC|eoJnFanwpx?7=Huf z2g=LKKVrwSJ;?#twFV9xI282jz}HntNr?#z48$W016kPdrWjv?OU?Z0oaQok@L)@f zx5NGV-o1M}tE;R3a=fIZAMI|>TCPo5!SAxDOX+3B>TJw15oZ)i09LV?0 z{K3Bl&%f2u(u#$Q2Sh|f8u2$zep6FZ-uQm~`i+4uMnQ(1(8~z)F<hA${hP!+2|2Kj_61@}GijaItnLbaZs~ ze;sdv``@iUtsmL*$dMy^Dkvz_bnDhF4tA^sIYv&OK3xU#jDn4j{gC}VWcji^Xy0>m zbks>tPZtKSEwZw*?=a_R=)s9}(xpq6EQ}}n9f0xo*>TiEe_YHjyriT=$ll(bnKETc zThQ2w=bzA8qHloze1ING;6HufKR2N7518{?+<&C2tGjvX)TxS)9po6s$H#{W2?-Ge zEq(B|Lvy5NWo2ane`qxn2lV6!TeBZAVuar6)vHD4&!5j5n=QyNfxH!G7%5y)ZqeHC zp8EbD8bf0#&LC7V2uBRXAKrnO^`kiR<>r@vA3b`+ynOjmps=t|?DXl=;#pZ);+dJ5 zyms>BNfFo~bLh|^!BeMBHDAxq&lh|8^r^u8`=rkA4;n-BTEBk16!bo_fB*hbJ$v>{ zhi)^pwY4)~ztpmzhs_BI3F6SjSm-jVd-v|V`&g57jM;{<_F-XRlD@va^Yu#p6;(R(2wA+E5nFmF9+P3asDb31qLT()=bURlsu$zG%D91e#|V_TkvSbMp5fLE`J3fFI!G(`ELbd`t7mgMTp8iHgM#n@&MY(Ef zYGpfj?v%r`>-p&u54OQxxEQlLDk@5H>C&YP&Kbn+(XiVOty;DEgqXe_bCk#P%(G|D z80dvTyq`t9RaI5XcI?<8hcRJ4qfdNj9*E%%&?o6h0Ja}b^MlTFFc(;Gbh~wXu^tW%{{)hBwJ!s8~ zii*T`@7^s1|2<3VhaC92`6l+wZj0579>sY1R*9Vz4G+ z{{H?d!NI}uq%YR~e`G(z2RWpXe3O5DS^e|V$NKugcU!{`wj&nYMSMFyVZwx=tpEOq zKI!5|?I-ko?dVrCr0H{d@8 z^PdP=8({|@VZ#B0*N|^`Ify?#v+*BsYQwMMC&haB^BCj_26o7VhK9-^o*pNifXDk@ zy?UjS{6mHe@rUdS5SN)kTZGSym?(*TwItJFJ9o*mpnx|c*Tkp^6+(6 z=xjfHE*I;5fqd_4yNG%0K>n2&K76<5R-Vhk4K#EAFKy2 z_FuesQ3&fSO}@KrNzV9CB0Q)Q|dQ6`%a zWCDSdRscYW1~QDycg+>os4Z*+ zt~juxwsYppF~|B&fL~2PJez`i#A~pDDQHu%cNrWT8!Ldlr#NuasIgX)I_o!2U0Trti9S>lD1ayqGs{-h3lRYHBKj_{1z* zwyZm#c?NRDXEvWuPd-3-lWiEx^Be4WOMp|P7cX9n6s_^yo`!vnXdvf)hEJyj1qEr) zp188IvRMYggNOy~;rCf=9!B12LaciL-^oNwID#C!2j?-^%cVlTPedCzkmaup{!dwc zKkI>ExxkreSPup0jK?2-$Lq1SLC_a(UfAb+05*t*tlbeu#NNJrD?~Pd{TKuN4MH8^ z9q~X8Dk1$N-spgT?a%n~Uxyx=Xnlz(@g|&&y^=EGz;$|#))%-qGASuZ64&Xm<^#14 z1~xee^0nlzhy5W1C7%4h>S--tTUTLc9Z2uA?yzGU)EYj}IIQWNl`B_j@?&LIfM4*} z2mhD9;>&*z`g=QT)+|f#Wnga%aEu$xo9qnhoOrB2$_>XcC`Wdh{o_zz$#Iy0Xneo??e~Lf(F2x7nP6l-v+6T=g{*<3!>#@Wx@N3mrQj&+2fuBG2SY&?z#GkOm-{nsA!jYf0sY$ z88~O>`}gmK!^6XA?##xG8&!af%73JPs!{%v{D}v!`)gn+U*r^3#Bd#8v)#y_yuCxq z`Qusgzkh80M4w_TZ2u$j!(Cv!$Lzl4NAm~v@u%`1;BJ zje%XclT5?|`R6EXPZ;@WVW&==KF}J_J_&J(Y9>>?y}g^)pKt!Uh$GMV<^9z;_JLf) z#mQ73p*;_9l^trzA88EsfR$_3tWm>WQw(-L0r+4S@ z2kIXA$VnYZ@9c5>_;CicZ>k9x!2ZvZEwbauC&~V(Q4FA-;w#<9n(_EUkLuw6)BOiM zOEh8I=YSP^LAMO*A-Md%M_yhYL;irhTqop%jnM5~nkV5h@=a|?g!F6_CChV#WSNYr_R~g*@8s-zwLm1bMXRF^%Y7F)eIw= z%`k%5vW#HRD~7Y;Yg>)}+r|l6{Ynsx`Y-o_Wf=~PniKeg7Nm#k-k=NG#DjPdPvT8= z3VK)Miq>4GQ2+0*Q$XDRe|*(Id3iYxXCq!qqSn<1IdU>^%5v;6Hz3Y$KZs#B_|+Kp9`T|Wi`vP1tj$r#uZwkJ zXy5UxgXT$lf5gQhh?!NSXO`w4^)2T|`3bozCoL_FCqJ-@HspWuM|4`=@6e$G<>jl$ z5vIUcR1?A@-ye{f>U0chG<^~0Z&J+@Aw*ChQ3; z-h}nI1dP29^D~An^BT9I8tcdp{oxr1ru)vSx2X6!D|1Zf;^vE}0L&@Zm zBrE?xbAqiiz!0;M(|H((#*pl=|3>VOqA)jQ8iO3pKa_V);}0A-Acb|y<(D70s#*V# zzYpX`iu&I*{j=xTJA4GbawR(=p6o&A+qP|!1HLU}-$xQ{iUo7$&fS9dgHq5r`}lYL z&*TR-Y?dGK0Om8Gp6LG7Mi>e;(rjRxR{Zjl-2=0lqn_PNpD-8j+&%hHtPnu=OUNPL9Y6tztA}L_&4Q84B^5L z-N}a7gK8y|56RDQjn`%>0avj3UmC+xjOz#(rrfVR|}iI{jFIkU@uoBWig32R`F(=0!oK>ldTc{t@Y$bSRx|Jwbx$xm2=@Dl1@&GG|o zb0Ggt!U-fl`ym@A%m*yiEI+;v6U06%kzan)r2cE= zCts!d9v!6LSFc`uCqMT0*AZv`75!75Bpi!8Pv4C3_R0{g*_Qdw3Ad8`s6mnVJo#_k zx+MhtALiFT>R11Y{FG;4tFPdb@%RS99pClMLypQv{BC|%`Xl)<>=9)Lil!y>PQUww%E(;fsVgh16Kbn<%j;iksoyb+*Jw`h)}Q?{}4V=OLx(LZWD!v7cY1CM=x?ydN-04o#C2{q8& z{4pK(c<=hj{{KjR)JFf~@dq{8kHGS_gunO?iYbs^0P^qs9r^LS?05SAH{{3rW-hS# z`sdG|3-IGx!uPPBZrK0a{2lu#C@2s{{`$uL{|)(RuZBGH9BbeT{}rM4dcZgIy-!Er z#w30`Nw)Jd`(fp0zpgw3@^hAz~!#jgY$u_Khi&c{)O!Ns4bM!+R|FndXn!^enj3VpgF+*BwFs@{}cNcR{wt_Ka1b6 z{zB0EUaBMU+aY^Sb3o4Dn39t6UH#!dAwS{gmiUwWm*OYC|C0RphE9R(9lm^%)jKOU z+f$todHxdWKWfl_4uAdRKP5lmf7*?Q`gz1HMtfurJ4t>L%hhz>>KicUDSRQ zfB5D9yY){<%F`Xy#PPm+9ep3i9wbo@kjB$Mg8+{)o)q3DBeLPUR{lqpWe4ahGD?tyzeLJS;DQ5`wVKI z@>D+rmSFJx1?AuNlz(wufqwV3fB$|O`>)B5Z$0X;zcJ;<+{7PpwZ*%O%WV9hIpAIO zC)5y^9X@pfh=p+6-r+a^;QQU{0=3!scj%00l z&^sCEpK8t4$eWL8t@!!ScM`Ct56Elx;KLQLjq8x_I&v?y3gmzr@awnieu;WqZe=sW$Zu;*nMrv$u4@3($O z^lzTQZ?zcwPKE;<(E&C!67LO`!}qr!FC?L*5$2!I)UZ}JE%xy3b8>Px|KzthuV25Wx(vO`7bMI|`+maSwEw|x zOPd@0O}`I%^5h9ajmFULU#?xd#-V#(@6$89#{P}pJ9F?Y9`E^Y6#4(~AJ7e{hvxjH z4`j^fD>M`@%$NX%!OLJX#*|_3U6C21$}mVkW{eEOR8udCUNxK7XPcrI#BbFDzV_T- z_kmyU|Eg~XdUW6TYrmvL&t7MrBmT|ws=x3L%r@i61rz?#lic*&Px|by*R#JqpZ#@w zw(A#q>^#|dvwC3l!t0?YR$r_hxkMNLaNl#P>B|OI-)lzL4V9MYAi*$hbc!+RtCu4xC?6Upz4(@l@i+UgJtto?lB^l#$r@xxDc-TwGXjZNA&FF*@ILE>Yvl z6uf;tGTvv}N~z8cOm=WSJYh${B5B5bMB>W!^74UK_BAYDH6{DWmV-08>-y@O7Yhtq zd3R~(**TXE6u9iZzEU=Z(VS&9&8TR`MV}3mhqQCwJW|VX|A@WTTO^#~pDy+K)b+Hz zW$J=OMlZGPmFA>eDf%$Jc>W3JpqiJClS3xNP6?LNTDPcA>pP#PtUqLP_{IB$b01`N zn19Kx>-J(-O_LP+`6C{xDa4Hts;=KSr(xRr*wX8z%j^o~#Z4Jg;CCz9O1xUKsbqx7 z++q)o)57%&9R%T zaD88+S-W1y z4Liczy#L(2=dJOj<@47}+8R5swNcOl&eg6<3U3sQ3w>dzGIjf@D)TM2r{^xOxlthE zDciYQKc~;j%o3TWRZX&0{w7-rM4ciE!Ub)MWqTgq9&^&Uo%Le9bG21luJkOPG+C5e ztbL%*nS)jlSyPO18JW6p?%GWiK8JQURgZN&nYcSRnkiF{JmDXFBu`XYKBODNO?WA-a^Et!Vo1<4 z38vMXkR9?{W1FTgUaQVbZj$(H99dnmssEE+2ebwmU*xWlSvg%kM2!i5xAB$K5sjt8 z+Y}{>de5pKH&MPJR6XdDfUIc8M>Ux-^$jC5XPpRY{rXOQqrBL5$>27D-c7m2;Zb=# zji0n(GB3Wgyk)U(#mGqZO(*vO9dABWw6WW7p3q51?M0)uvC^>yzoXmoi)$=A^oNhz_h5lIXMecI z$;=!n!&CY4uf@!6zB_a7@TKy&0`o`*uj=l($B|$r?T(%{`@uNhIg?E6`wTK% zcQ8ln%)KKw6%WaZ>@f*E*Ti+05$rX=++?$-;Ln1Rb&E6Qe znXzmPSka}->B%F`qfi;~+b@O>(O$&_c2u4(xyhvST$OmC7sCR^o_c)W;>fcHWz(9j z?Y-B?956PsVBCgQ?Y(oLWM0p@{7L&XpU>LkWWr?j?7wQShhg|@Mk8>Z#O`GhI(61F z`UK4CVw}28ChWBI%}%$PDw53|)$$*eIwv|$IdQIBeTi8-GhV@IPgQ`-ILl+(>Q`PG zd@XO3dq#cQS#Uo(x)-<9XSIK%uiC8xldi2hSWqP;*sJe~O`WP`Hi=HG85*$o&JML{ z{-wG?x1~hHvYjrqza80scGsA^JA3a4h(k!NmhrX`fw)%VrI9hCyXqAC3I=C87Ee; zOG$KDm$*;bDFFw}Z))tb)Kcv_Ey!LYZANG2orv3+JUiDdk+$bL9K8JA$!>1Qlvt0= z#x*{iy2pp@?WOD^D-SBWsvlk1w~@O%qjh^{>p2h09>0}&Wtd^q-!m~vr)KWf3j4^J zQxk04CwJ&Eq~AG<_!}2G2X(4WjF%3aq2nVd&xt?%{N?1TJ)Te12V6gEYv{c_JxeEe z;k!A#l4m;h8PB;i)Ssg)UCE4j{CtS}=k-0?g@uglx-h&VePv>1MUk!T*2?q#Jzp6V zr3x$-a8K~#uA1r_{9$$b>cUaoC9=CO%eDW!X!`c9$IHc4a^IIO9ju~<+@?VXD2r9;8fkDO`UQ#bgLl>ORc;&Q!%4ulH| zZM?tDk@1v_C}PxKXh<@u#|Pzhe?GcHy>e8&&fNB)Vglac8# zn-$v^k}u2TVL?0PQNh!GW%8_XgvMKD52_ zmUU`@;Fb53qgf!$4E?aX;7SLD8{_>ia9cH=p_iv^}XTw=aLH0;8widprXzH9vC zo{taa($^@ zeo6J!As3mzEWu0WIvvgZpH$kO?&y(*}=Q zXEcl73HpcV9bNu1cuBwc(tc~7y1YBGKHY-3>hiqT=}F^84%^x)?Pz}AGrru)kVC3W zY;st(a?>g=E#;4HD)&0PJ{vtLXtS|&oA>h5r?n0!>>&QSxTebZvFWGsG{#-~-HQXV zy4^*uiYzg5Kkv3H-RNd+r-@T4)Q`)~PhQ@TsxXWhFl9eSKuB%c_|&^9c1KK|9*p;# z)_aFfNNXwmVljoe^DpOi?lChd*7x&}kQ;*O{oK!=7OOlNY!l55>T_D(t%UQ`=e(WW zQ_s_nA8axV(5{i}U~J|en>=7w;gj87H*F>w-Y&H0+{snPLTu}MD;=RRW#;QTnr}65 zGcmJ?NRBhJ`6wnExNh-@PHGp%$mr!CQ*jOL?QUX5a>qZM95#5Rr=tE2m4qwiTjs@9 zi%m+lpF7dxmU^Xvad~=}@A!+E;#{v_)8w^&8eJb(tX43y9iKN`$Lrq6s<8#VBr=N< zkJ$z8?Id(vPtH;%E2#swmUI5n`*ukY>&KT|$ka3%;4nW)G)&DU$6q09{c-g^18eHf zH@y$B^PD1G8j|lLRdG`@XvmBylC_^V4i`x?XtilR0lYCavAM!I>$TUNf+Vf@)}TqRIgGW9~|R$=CdK`_v1$Xg*pHV0rxBW6iEL zr){EY?0WPXZ&S;W^3fd~;udmtj@=RMpan0&$8YPab4{?_WWy6{+|C_aZy|7Nw!Vu) zEoa@)u{!&dCQnZs*1qSoy=S9cWLyJnX3pDbseI$vExFmfri+4>cf>mf!@3<(`<|@| zI_c(YAUK9IecA^9Qmb6`1)Zg4>p7285=c3IF=J-*?P*#9Iv!hhR=UW3w=%}+RJFZTyCELbyz435!cvfWwQxdC}awl}BNtLWxkah1%XOgn6$av?SlfP*w zG`+^=<(5|a?5lc6GL2H@75KHVl(@r|`e*iHMOOz1faHGiTWmbr&BoW3GPolS>(5X?Hd^FdoNaM#jlS zWVOk$GJC&ad*+;!1VeFyywRU5>TfAH3I<*2+T><>Mt{70j8KRBUE&T6ufON`@TJ(N z8J%0z^}auE^^Dhyvq0;*R`!h|Iz=l5_GuLdgmFVApW0s}tY(ssA004vLEZiU$R&PPV zCCh#nU++n*p1ecY)@QbTb(_M|?XQ+uF6%JeOK@CA-Hj{mM_1k6Wo@gHEfSO>AHgJv zp6lVv=&o;IT+VrFDGz4cKR9^#a;8RZ6ItoP*`uH&kkIe!^8u>9qOQVW6W!i09tk~; zT6RsQfrjCO%xWJoH?mS4IwdG)uL?|Y6V}ULqs9z9*=5-Mlwpd)Q-nRkH=Ytas-l)< zsTe5Dxlynvu)E!>_?Jtrb~Kx_d}@r~o(#=uQJ z`^KKqE4{=!2&qMgM8|ZwBftJ|wywa-IuC2*M~S$lcVnq%wXQ+=)U-%5&UiJSZA;rf zlPo?w(&<&SSHxf)L1Deo_w=TH$kCl1-TBt8wRM6g#M)%<%AUY1*<2sxqM0{g-c9i* zoKVJQPb+ng76!rQt>iG`lj-L11pR#nT$%&=~yQ=HHCR|2w0;r*-4Z`WBLTG%tJ&o%2g z3hIHJ!17IVsx|Zt)O)`ZICMcrF=M4$-E#q`2>bc$xhLemujfjL5Q6~i{PT3+*Eyz;<&`EwH!w@%|krVFoe znlx2tgiybYv(#lw&qt&l2)m-g>At7!MXT0*7nx3Yc}rQGBi1)Lyj77zZ1tMTerJnq z0+SZ5J(;vXa@4&olAOVTQR90~So7I@gYo%qxX`?Y4vn*_=~pEQce5xv>1VfuCV zutKA*O%o@VXQodtKU}>x3EPdcHiqIl0`q;=S~$IZ;}9UedDKVsOQ8>LJlpc1@=OX7 zER!C(Qlk7r?9hJd12>l`NVr@Pob7sgT$tU&hc)6lr((QDM!UQc+jvz)Zm)KmlwFL+ z>uD3M(mrd8Wp~dw=rSgwDD1wD{p<0%O7WXDD?_|!`iuBL&>~Utp($v)h z-#GfOFg?1ewu5NY@RUu5&$$&E^;URyZC$;RQ=GBimHUdKjz>0r%n2X-&iv(^B~Gdp zdk?&7^-?cVdrZl*qQ2VeK8($^s@9)ZnLld(`kPxzn}p9_$sgceQIz7dF}+6WY^RCU zJN&nC?+vokOnx+?a=lim^z2vGGcVuK$SXT$cjL)!X2O!yLybD@d@5>mE-`yyv4;q6 zmpEJpV$sR0 z1xAKbyLEExePC;9gMp8@X}zGQ{=pBau`yS)`+G*d8gxy=Z%&(Y?!AOkj;+~c>NDw_ z(wQL^4T9_PpZI>f+3H@87jDvL4oOSeYmcpGByYG>yz7uqQCfY{$o-6k_J_ru!xj#V zUr<>j86P2V=Us_u{Dn_0r6omcE}pZK_@t|SFJoYVU6pTgk%U_5qNX6FPcG9#J`HrS z2+Z#8pg731#@lqq>&`2VjaPSiV{NWx1tFiYFIg`})%(b+ayUKZJ&+d%>rZd5fM#T#jB+Rt)Nxfp|9WJo#?4rYS zV)u=;xu{xo(kQEXZMB8r@in)eJ&4$x)Jv-|;kZq#z++dV+A)_O`%1OH^Xg=u(D)U; zN%svh7VbEk*EZ^jLAvi45AW{U>9e0*mg=CoZf(^Q;mboAz3qu7qbCo1*jmIW?E0c9 zx2(tcZR%|}vwNwIV)C}V#T|EqwKp7?cfIIgqri^I8|JQah`pn;`H3qaJ%Oz zz1Q1$l;tWvvQ^%YGOaN}Zk+!-`~4$DIu<9E`rIEnSJr7mZ@$E)ghEC8tma|n5@lgM?sje N8f<5I*ur)B{{WuBa*_Z5 literal 0 HcmV?d00001 diff --git a/res/TegraRcmGUI.rc2 b/TegraRcmGUI/res/TegraRcmGUI.rc2 similarity index 100% rename from res/TegraRcmGUI.rc2 rename to TegraRcmGUI/res/TegraRcmGUI.rc2 diff --git a/res/TegraRcmGUI.ico b/TegraRcmGUI/res/TegraRcmGUI_bck.ico similarity index 100% rename from res/TegraRcmGUI.ico rename to TegraRcmGUI/res/TegraRcmGUI_bck.ico diff --git a/res/Thumbs.db b/TegraRcmGUI/res/Thumbs.db similarity index 100% rename from res/Thumbs.db rename to TegraRcmGUI/res/Thumbs.db diff --git a/TegraRcmGUI/res/add.ico b/TegraRcmGUI/res/add.ico new file mode 100644 index 0000000000000000000000000000000000000000..d8306c74e244b8efef3554b909d066bbd9dbe05e GIT binary patch literal 2462 zcmcJRJx;?w5JopjAcBStr2w=gCA3g*4*DE|k}@2EyHFs(EwZ8l(SWETA;No!H?ktz z`2kP#;_>XvxAv}g?GQTr27`dbFxm^@5bqQWok55A%xK&1&6x)p|NFFF!W}%rJ4_1n zjoD_7x$9boL@(IT=G;je6H`T%h07hgxcCyWsrPX&X-vAzQ>r&{U(Q+86M; zA~(?r(4?=X&+ceN-nQ3oo$KSNLf^4X1uq;Q;Rv$n8?!AHRLzIluEp|wn&;z@43FlIdnG<1Cixea%YpLD#_&5jUKK1`| ze%pRN+g@L7?+*<3Y%dyD%tM}+ye78U-_+NJ(ANH}e%tSt+=us(Adk(uM{BIDdUp|C zSO>4I_xqv~oId>d`{X-Zg^zH+fb_#d=+3we+=3rZOLV7Xz;fJkYjV9>YO4JUdi6;gKK@0U4+SFgM7a6Rd5QYxNh*e0S}2zkBaFd++Z% z=iYS*VbNp83_@crIcq?O8Oy|UyTwG3lvchql$y77r#Yds=QJ_ax9&ta(HJbJ4mk$je;+O^Bg zSIe*OaER!dyBZmAMfau%9${8q2j<0BPiN{c5B8H?%7?vgCXJI&w9X^w{naF)y2(P=4b#*H zIEd9)_R|n-gbFOURDszcnfSmX5mxSe>nLx-1=5D!;(e_-ZJ8whXRYcGEP*z<=)XCs9Ex+!`yF|w?)oaepmRGAKV^~t$ zgPAE3I7vpZt&zc|1_n+IW7tqE13&c|N{b88QZ2yHlQ^j4S1_vlf%29>(^m=2^J^NfO&V;g=|wpI z3T|cJKvSgvs>XN>%Tp%2GtWdA>#xD9fuAwhQiKdaRN<<1E>rbB+Dlk^D<>PBE-C!9 zW)QAY1}@aIlURihQyyVyNjp5GBiP%@U{9+C`-K&_$m8LDz5u^Gj-&j^7*%9b|Ao-> zlwnv=jC(n}=8(W6|454ElF1vR2y0FF+?j$0tvee>;nmE*y@|nYip>vyflVf@Bdr0p zxpJ(!*98}GKm6|0;!Ij5{+-W5Z_OpTCzI*^`5x^x=}5bAbzuLoi0yoljM&+)BqqUm zM1N1Rv-OY7qx%&MK5JvJk9zfOVc<=*JZW!SCBxWI(Fb;c5;j>fSm(B2+k+kiSJdNT zVG+`A=OU#bPZe>eqTQps^|2*aYt+G;o)xv99bH7T=I!)58I9l%qH#8yx4z2IYaBnwp~>Os#WnV~){Q z{*3p1{zb@imv=3A)uPXuM{vALjgU??f;!YV`c#d>RO=8$fRe$1Kh&mO2UqbRmj2L$ zPw#fZr+$zLQjSQ!?qS3ydNnnNrGvE&apfGkHCZN}i7VL!ZGEBL48DG*##h~Hgi>g= zj!~^(ia@G&gzEjVHm%+s*$A9Po%lQdfz!Trb#7jG(OS^nPYKAhcfG4UDXH;a>DH#cbFQ=@%d-wu`?w`j}m0;woK+}#@@8yNF{*ww!-wfcgo zn_v!^e$>$XK>GZT&y~7uNU!C2l(y9R*Y&&zX&pjvn+ncZk8Tn3Lk0#;=icW1_1b3Q z{Fh~sMi#+2HXp~7?ywBKwTxJQp*ML|^zU;j<6O;vrt;u1UoX}y ztB>3PyulZIHb867umxRUTMGn#pk~QCxmmES4T83A<^EvVR!(jg()g9#OyNIq@b6jr zGvuxu{HN^kEP9NPxpVMev!}53riOMZAZU)=zp11M+B60p^zZgGwQ<8t@9iw_y<|PZNY!Z-tHzn^aR(lLHAma z674yJPH0vGEKb5yO0=gR8r3ihIZ$rGk?>4%MN8vzc!8%Dk>d=8AS|7`47vx}fm}HV zYmAF~Xop*lBFGu7RR$#pV!Sfe`!C*Gb6N{xJTP8?cej+^;#k)0Ocf t$RSsnS||JgVGmtvF0rb#k5l2NZ$`j+U@~=-yD=SRha-n*ENX?C`3JIEO`-q* literal 0 HcmV?d00001 diff --git a/res/driver_ko.bmp b/TegraRcmGUI/res/driver_ko.bmp similarity index 100% rename from res/driver_ko.bmp rename to TegraRcmGUI/res/driver_ko.bmp diff --git a/res/error.bmp b/TegraRcmGUI/res/error.bmp similarity index 100% rename from res/error.bmp rename to TegraRcmGUI/res/error.bmp diff --git a/TegraRcmGUI/res/icon1.ico b/TegraRcmGUI/res/icon1.ico new file mode 100644 index 0000000000000000000000000000000000000000..5d06b9f2857b39f0b5d3395e3e7999ba6bcc3a38 GIT binary patch literal 45451 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 literal 0 HcmV?d00001 diff --git a/res/init_logo.bmp b/TegraRcmGUI/res/init_logo.bmp similarity index 100% rename from res/init_logo.bmp rename to TegraRcmGUI/res/init_logo.bmp diff --git a/TegraRcmGUI/res/linux_icon.ico b/TegraRcmGUI/res/linux_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..01f776d0549355242faa57038e241ea7c34a806d GIT binary patch literal 21238 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 Dvv3oM literal 0 HcmV?d00001 diff --git a/res/loaded.bmp b/TegraRcmGUI/res/loaded.bmp similarity index 100% rename from res/loaded.bmp rename to TegraRcmGUI/res/loaded.bmp diff --git a/res/loading.bmp b/TegraRcmGUI/res/loading.bmp similarity index 100% rename from res/loading.bmp rename to TegraRcmGUI/res/loading.bmp diff --git a/res/rcm_detected.bmp b/TegraRcmGUI/res/rcm_detected.bmp similarity index 100% rename from res/rcm_detected.bmp rename to TegraRcmGUI/res/rcm_detected.bmp diff --git a/res/rcm_undetected.bmp b/TegraRcmGUI/res/rcm_undetected.bmp similarity index 100% rename from res/rcm_undetected.bmp rename to TegraRcmGUI/res/rcm_undetected.bmp diff --git a/TegraRcmGUI/res/status.ico b/TegraRcmGUI/res/status.ico new file mode 100644 index 0000000000000000000000000000000000000000..2f96b795e094afdb10baab33bafbf6a1907e0645 GIT binary patch literal 4286 zcmeH}J&z4h9EZ=f%dP@jAl_$0L84Y{r}0wIXhbAJuM$yc_7jLNpphsP5+6V%3N*VB zjd;nN1PKZuLcBz-=dpK^lQHMIlG$kHck|r&pYwm4IWyUbtRt*tO>2+S6wU?s2;V!#n%1^QPFrz2 zf#C{a?QM`#fg{37^|!V?a?)49B>mqI_Y8hc7;nu8_Q*+J1;&o!3;t8E7nc4Ko7RcM z7Lb#^3euc5dyyFbX4GY9i)ovS#1@c~z6fo(>D-m1z<%tP6Xcj5!5%s7z;Pd5gEdoL zF?QYMD5!Pde!2$Me-Gvu`x(-6o}~XYIXhu@hKtNUfQ_&RF2Mkfz#}*eC3uY&z~7Mc z93o?VIe9JKSNEvD1vOi+SC8h;a8#$^IrysKIvfJ?dBX_CpND_#znz@B@B*w|^A!6e zs5M}p>)^Gy2DLno8&JU~NUvQxLIFAHi_pw-d>dv#mEhiY{vm7vbpqP%dtEQ$FCZs< z71Z(R@g4IAMv3nIAEUUh9M6IG?9ON|%}ecwzkrfpHrHX z+L4$7a?)2pnv>eDtlly7` z{@445=T*Odb@lF5*O?#Hwnwji1^N|W1%?@Y2w_7EVdf78%uT^6&_4}xXJ_JU3D_+; J*2=UQ{sInnzBB*; literal 0 HcmV?d00001 diff --git a/TegraRcmGUI/res/tray_ico_connected.ico b/TegraRcmGUI/res/tray_ico_connected.ico new file mode 100644 index 0000000000000000000000000000000000000000..f2dd069ed3c386e8679f043249a539ffbd45a28a GIT binary patch literal 25776 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 literal 0 HcmV?d00001 diff --git a/TegraRcmGUI/res/tray_ico_not_connected.ico b/TegraRcmGUI/res/tray_ico_not_connected.ico new file mode 100644 index 0000000000000000000000000000000000000000..4c9abfdb1c3eb6013ab31cf718c4d1a3bc775f0c GIT binary patch literal 25132 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 literal 0 HcmV?d00001 diff --git a/TegraRcmGUI/res/usb_icon.ico b/TegraRcmGUI/res/usb_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6051cf0c26d88886d017d9921ab93a235f12dfce GIT binary patch literal 21238 zcmeHPX-ri|7#*~&B{8)&sftk{rdq^(K@nwf-**ua4et9cptvCFpBimUZQaFPM2-8t z)Y$Y#lcqLJZR=KB+v*RM04=t-Ak%ZM@6wmYz3}b=k88Qf$=rAEeDlruX1O!p%se6d zL=_PfBya_Z%y)%ojJxRQSHFY13h^zT1uJjy9HAfLDHoobxw>@eBBG+AYV_;ZZ}Xr* zgKhyo0zY_S;J|^``}Xa-EG#VSO~f~&N>gU!$dMv8Ha2qX*s*sfPMmml(xgdwfYd@l zLc(vuhYxQU6BDDEmYIjpBcQkcpEGpdTogoK0$DWw=S zYSd7q`Dom@abF|M2c#D8J`4QAkdPl`&0dssp&`Q0TC`|!vwi#ag@7yxp`oEKnl)>7 z9WtAMMy@mrXTv2|9pO1*k@d|2ugr|Xb0JHjALN*If^m~TPPjGOs<~vv19E72O zS^XU$`VsUfW{uptcdzW!sgqJJ8u|PO z&!R2pkAUnGjdT^hXp1s6HC485-CB=-K4iOF&>yL%pXJ`ae}6f6@Zgf_z*ETgu%KU) zKkHrBu3hEy>C@%Vp+n1Ef6JCFCHiF9vu95^XU-hiv13QQ^0%Eoxrc{`%b7E0DmI9V zi<3m#wr#cYP$v4>?qSB-1GLSo=;-LUfPjE%W_7C>K7IPM075QYxbX1e#f#D#Anx6hCr{P` z)MQMDOallxckbN7^XJb?Z-BUWj~_o?4=}A)6|6}5!Rt@({}p(wVTWwKL!6wmXV2Qs z|IC>)Ss57_pCIiz&@%&g3AmTXD%6eI7!NHub?VeFu$!&+r~X~LcCEN_<%)pbSPlL2 zS>D^WZJSmW`oa70{{8zu-?3vy(vc%a4nTjQJO5+Hj-A=Lb7vy>pFn&0<-~~-w(@8F z2PE<#8M^D{z56@d+gkqMVyOMuS^u_d*&;S?-rQ*G)~z>y93ZSH{Y3~UF| zO=2U`iA9?JOw$P$cnajV7RGQV;kS9oahzFj4uWrV9=^HBnEO|8f(jU6Z;4qL6yte!~A0qDGzc1h`PSf(Cn|%g*=EcXyccH&p)l*R#f-67t ziPI;Y1Z2Qxbeq0Qy8ypb0eoX$A?-|n^X4XiB|p3!_Cp?69-PaM0B!<>fZ{`--^5O+ z>AJ$Z2or!e06VA{PJ?<~=!@_X;H~e(u6Wtd83QQ!FigOrfJ<);gqH!kI2lccZQ_0A zrMxfd1h|fp3mDC}UGeFMG_?+4)n3p`{=OuPuL;H`mzVPgDH98#iv09XfO{YXe7? z|H_ps<)urPBz)QuelUqSv(`G3H+5i!59|Lp=q?)b;NF}3D&>qhvOIe9sN!#2w{D%p z{syzlu??M}Joy0^va0Gwy;@-0K^mK(Y>pJT8xz~|C0h~ur#>T3hya>7GP~Pqz`hJLbz_kAh`vYW3N{Z4Ks%?UHL7GM|i+L&U zi#h>I{x5#-GBY#H^m*>~aisr;<&8BxWe(J?T{|=59@Pep_0HDyN+aKXdKsnFA_FR^L9@>j-?qh)G_KCE z;e2X=UHd*f)4~47{N~M@^XwtlU1|5CeE9N)`8aUkfWSWO@Ph{r=Hg!34UUtrPyT24 zivlr6@L8SLvorRo3#{jK!2CXkYg%Oi?Ek)f=+L3MfL=Cy_8i;=_V1H_uICM5?|Us?W@^}n+HSN4Ce`hR?@UceR)(D(o5hCDC61y_L(eLL| z&Po0MzJ2@tz!|IX%aN3jq>;G*>hW!LmD^H z2R@;kQ`&!N9L>J3__XM zPtCSF5rvb5@~IGknqivjxf*)JOT!-w rP>xx03-Lz>_`3tiKRtM@Lr>l^&1H{!LR6zYYzwbeeU+YPXi3k%=!H_y literal 0 HcmV?d00001 diff --git a/resource.h b/TegraRcmGUI/resource.h similarity index 51% rename from resource.h rename to TegraRcmGUI/resource.h index 86044d24e5dbd4dc93bd102e922b25d92bf1b7ef..236558f10ec9e1058cba2f5892e1866f19b99ea2 100644 GIT binary patch literal 8164 zcmbuETW{Pp5QXQtK>x!6eJl`Xy}spfZ*jJc_-WBN*}z4b0CwD_DEimip2IPt zONSJxVj<|V(#NCG%y3Bl^Y?)q$e;L?aw$8R$y}D$N_SMsR2Dc}%U}3?FW=$b0~tsm zcXBKD@>w3R?d1!uUE$h;Jj&1V5oc5R5x;?akoWQl+dZy-!Tuet-QmhD?s~-8dz|la z~im#^|1zah2|fBirBE4O(D6 z$k84q(^JRJYs-Mg#=j`ZcBC}PIsT?Cl59tcC(offuFn3qo4j)#y@G94SuKz}3i<}K z1~bMDJbMaui7%;N*4A0SO7d|QS$mFdKFKE$@&p<$%;+Jd)%7^J%|1*ZdN#?nKgTquw9t>7l9@=3`SThcJ;t_$ zcjWrUX~Z{}_1On*Q4{2GnMF?{{ooGF0%|w#=}WYdLnk?$`B}}VSLeitddCoo<|gjD{l6g?=&RdiFJXlnaJ6>Y;T@O-UnSc`b=&I>F-gtonL+ZtG=?!%2VW% z&CSYHZFWvfR%|vh6(R*_?GzKjeJV2Jw?Jw$YeB z4CKLzJx1Taxg4#M?1k)rOk7DHf7s+Fr+&*r*yF^|6mog#4o)9 zSGJvFy>34~)foZ$BF80_T|-A*?7Hqb#!>W>5UYJ%+41~M&!&f@d0y2*jD3v?mX+%b zw)|0)_iwvz@b<3ftV&h)k?OYDSMUtlBfa8owx{fPzf;%EQJX!#+~o2s&Mr~S_t&m$ zyKg8F^PJgd%%}KsTe-5sIrhIJ`Hk~&j+5K0_Bq+3NFHp?KcsWLy+?sONDrZZ>u8?U zw~igEu|!*G^IUa@^PnH+FvBw5Ihti2;Bl8-lpW4hJ}yZuz|)z`roPY_*K4>wF%mnc za2%+S&zkVM^ZT{isrYt$dj2aHquu@y=G!sq`MG)4w^Ql2W6AUTRfhw3y0^a_Po7`R zA9!VH`-*SZEuLS^>ZNi0U7mjwh*{6C&sFlfBAx~5uUz4EJDN#&~O9_yu# zSQX{U>ThmM^$}MeaJI*a>pk{d-~1i>&+=A&!SOBbeQ-6A^0Yd-!~Mz|xSE2weT&?% zfcNVd;0i|}U{$Y#bwk0{YXy*%y%=)IlZ;aNM1;g9{sE3$q4b7K_=$!Y`>M2gwOlM~z di_Ln3>#$v_X&LoadIcon(IDR_MAINFRAME); -} - -void CTegraRcmGUIDlg::DoDataExchange(CDataExchange* pDX) -{ - CDialog::DoDataExchange(pDX); - DDX_Control(pDX, RCM_PIC_1, RCM_BITMAP1); - DDX_Control(pDX, RCM_PIC_2, RCM_BITMAP2); - DDX_Control(pDX, RCM_PIC_3, RCM_BITMAP3); - DDX_Control(pDX, RCM_PIC_4, RCM_BITMAP0); - DDX_Control(pDX, RCM_PIC_5, RCM_BITMAP4); - DDX_Control(pDX, RCM_PIC_6, RCM_BITMAP5); - DDX_Control(pDX, RCM_PIC_7, RCM_BITMAP6); - DDX_Control(pDX, PAYLOAD_PATH, m_EditBrowse); -} - -BEGIN_MESSAGE_MAP(CTegraRcmGUIDlg, CDialog) - ON_WM_CTLCOLOR() - ON_WM_TIMER() - ON_WM_SYSCOMMAND() - ON_WM_PAINT() - ON_WM_QUERYDRAGICON() - ON_EN_CHANGE(PAYLOAD_PATH, &CTegraRcmGUIDlg::OnEnChangePath) - ON_BN_CLICKED(IDC_INJECT, &CTegraRcmGUIDlg::InjectPayload) - ON_BN_CLICKED(IDC_SHOFEL2, &CTegraRcmGUIDlg::OnBnClickedShofel2) - ON_BN_CLICKED(IDC_MOUNT_SD, &CTegraRcmGUIDlg::OnBnClickedMountSd) -END_MESSAGE_MAP() - - - -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); - } - default: - return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); - } -} -// CTegraRcmGUIDlg message handlers - -BOOL CTegraRcmGUIDlg::OnInitDialog() -{ - CDialog::OnInitDialog(); - - // Accessibility - EnableActiveAccessibility(); - - // Get current directory - 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(); - - // Initialize bitmap - RCM_BITMAP0.SetBitmap(INIT_LOGO); - RCM_BITMAP1.SetBitmap(RCM_NOT_DETECTED); - RCM_BITMAP2.SetBitmap(DRIVER_KO); - RCM_BITMAP3.SetBitmap(RCM_DETECTED); - RCM_BITMAP4.SetBitmap(LOADING); - RCM_BITMAP5.SetBitmap(LOADED); - RCM_BITMAP6.SetBitmap(LOAD_ERROR); - - BitmapDisplay(INIT_LOGO); - - // Check for APX driver at startup - //BOOL isDriverInstalled = LookForAPXDevice(); - //if (!isDriverInstalled) InstallDriver(); - - // Read & apply presets - string value = GetPreset("AUTO_INJECT"); - if (value == "TRUE") - { - AUTOINJECT_CURR = TRUE; - CMFCButton*checkbox = (CMFCButton*)GetDlgItem(AUTO_INJECT); - checkbox->SetCheck(BST_CHECKED); - - } - - string pfile = GetPreset("PAYLOAD_FILE"); - CString file(pfile.c_str()); - this->GetDlgItem(PAYLOAD_PATH)->SetWindowTextW(file); - //PREVENT_AUTOINJECT = TRUE; - - // Menu - ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); - ASSERT(IDM_ABOUTBOX < 0xF000); - CMenu* pSysMenu = GetSystemMenu(FALSE); - if (pSysMenu != NULL) - { - BOOL bNameValid; - CString strAboutMenu; - bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); - ASSERT(bNameValid); - if (!strAboutMenu.IsEmpty()) - { - pSysMenu->AppendMenu(MF_SEPARATOR); - pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); - } - } - - // Set icons - SetIcon(m_hIcon, TRUE); // Set big icon - SetIcon(m_hIcon, FALSE); // Set small icon - - // Start timer to check RCM status every second - CTegraRcmGUIDlg::StartTimer(); - - return TRUE; -} - -void CTegraRcmGUIDlg::OnSysCommand(UINT nID, LPARAM lParam) -{ - CDialog::OnSysCommand(nID, lParam); -} - - -void CTegraRcmGUIDlg::OnPaint() -{ - - if (IsIconic()) - { - CPaintDC dc(this); // device context for painting - - SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); - - // Center icon in client rectangle - int cxIcon = GetSystemMetrics(SM_CXICON); - int cyIcon = GetSystemMetrics(SM_CYICON); - CRect rect; - GetClientRect(&rect); - int x = (rect.Width() - cxIcon + 1) / 2; - int y = (rect.Height() - cyIcon + 1) / 2; - - // Draw the icon - dc.DrawIcon(x, y, m_hIcon); - } - else - { - CDialog::OnPaint(); - } -} -// The system calls this function to obtain the cursor to display while the user drags -// the minimized window. -HCURSOR CTegraRcmGUIDlg::OnQueryDragIcon() -{ - return static_cast(m_hIcon); -} -const UINT ID_TIMER_MINUTE = 0x1001; -const UINT ID_TIMER_SECONDS = 0x1000; -// Start the timers. -void CTegraRcmGUIDlg::StartTimer() -{ - // Set timer for Minutes. - //SetTimer(ID_TIMER_MINUTE, 60 * 1000, 0); - // Set timer for Seconds. - SetTimer(ID_TIMER_SECONDS, 1000, 0); -} - -// Stop the timers. -void CTegraRcmGUIDlg::StopTimer() -{ - // Stop both timers. - KillTimer(ID_TIMER_MINUTE); - KillTimer(ID_TIMER_SECONDS); -} - -void CTegraRcmGUIDlg::BitmapDisplay(int IMG) -{ - // Init & bitmap pointers - CStatic*pRcm_not_detected = (CStatic*)GetDlgItem(RCM_PIC_1); - CStatic*pDriverKO = (CStatic*)GetDlgItem(RCM_PIC_2); - CStatic*pRcm_detected = (CStatic*)GetDlgItem(RCM_PIC_3); - CStatic*pInitLogo = (CStatic*)GetDlgItem(RCM_PIC_4); - CStatic*pLoading = (CStatic*)GetDlgItem(RCM_PIC_5); - CStatic*pLoaded = (CStatic*)GetDlgItem(RCM_PIC_6); - CStatic*pError = (CStatic*)GetDlgItem(RCM_PIC_7); - - pRcm_not_detected->ShowWindow(SW_HIDE); - pDriverKO->ShowWindow(SW_HIDE); - pRcm_detected->ShowWindow(SW_HIDE); - pInitLogo->ShowWindow(SW_HIDE); - pLoading->ShowWindow(SW_HIDE); - pLoaded->ShowWindow(SW_HIDE); - pError->ShowWindow(SW_HIDE); - - switch (IMG) - { - case INIT_LOGO: - pInitLogo->ShowWindow(SW_SHOW); - break; - case RCM_NOT_DETECTED: - pRcm_not_detected->ShowWindow(SW_SHOW); - break; - case DRIVER_KO: - pDriverKO->ShowWindow(SW_SHOW); - break; - case RCM_DETECTED: - pRcm_detected->ShowWindow(SW_SHOW); - break; - case LOADING: - pLoading->ShowWindow(SW_SHOW); - UpdateWindow(); - break; - case LOADED: - pLoaded->ShowWindow(SW_SHOW); - break; - case LOAD_ERROR: - pError->ShowWindow(SW_SHOW); - break; - default: - break; - } -} - -// -// Timer Handler. -void CTegraRcmGUIDlg::OnTimer(UINT nIDEvent) -{ - // Each second - if (nIDEvent == ID_TIMER_SECONDS) - { - // Exit when PAUSE_LKP_DEVICE flag is TRUE - if (PAUSE_LKP_DEVICE) return; - - // Get Auto inject checkbox value (checked, unchecked) - CButton *m_ctlCheck = (CButton*)GetDlgItem(AUTO_INJECT); - BOOL IsCheckChecked = (m_ctlCheck->GetCheck() == 1) ? true : false; - - if (AUTOINJECT_CURR != IsCheckChecked) - { - // Auto inject option enabled - if (IsCheckChecked) - { - SetPreset("AUTO_INJECT", "TRUE"); - DELAY_AUTOINJECT = TRUE; - } - // Auto inject option disabled - else - { - SetPreset("AUTO_INJECT", "FALSE"); - DELAY_AUTOINJECT = FALSE; - } - // Save current checkbox value - AUTOINJECT_CURR = IsCheckChecked; - } - - // Get RCM device Status - // This feature has been developped by Rajkosto (copied from TegraRcmSmash) - TegraRcmSmash device; - int rc = device.RcmStatus(); - - std::string s = ""; - - // RCM Status = "RCM detected" - if (rc >= 0) - { - this->GetDlgItem(IDC_INJECT)->EnableWindow(TRUE); - this->GetDlgItem(IDC_SHOFEL2)->EnableWindow(TRUE); - this->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(TRUE); - - } - // RCM Status = "USB Driver KO" - else if (rc > -5) - { - this->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); - this->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); - this->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(FALSE); - s = "lbusbK driver is needed !"; - } - // RCM Status = "RCM not detected" - else - { - this->GetDlgItem(IDC_INJECT)->EnableWindow(FALSE); - this->GetDlgItem(IDC_SHOFEL2)->EnableWindow(FALSE); - this->GetDlgItem(IDC_MOUNT_SD)->EnableWindow(FALSE); - s = "Waiting for Switch in RCM mode."; - - // Delay Auto inject if needed - if (AUTOINJECT_CURR) DELAY_AUTOINJECT = TRUE; - } - - // On change RCM status - if (rc != RCM_STATUS) - { - RCM_STATUS = rc; - CStatic*pCtrl0 = (CStatic*)GetDlgItem(RCM_PIC_4); - pCtrl0->ShowWindow(SW_HIDE); - - // Status changed to "RCM Detected" - if (rc == 0) - { - BitmapDisplay(RCM_DETECTED); - - CString file; - this->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); - - // Trigger auto inject if payload injection scheduled - if (DELAY_AUTOINJECT && file.GetLength() > 0) - { - InjectPayload(); - DELAY_AUTOINJECT = FALSE; - } - else - { - SetDlgItemText(INFO_LABEL, TEXT("\nSelect a payload :")); - } - } - // Status changed to "RCM not detected" or "USB driver KO" - else - { - // Ask for driver install - if (rc > -5) - { - BitmapDisplay(DRIVER_KO); - InstallDriver(); - } - else - { - if (LookForAPXDevice()) - { - BitmapDisplay(DRIVER_KO); - InstallDriver(); - } - else - { - BitmapDisplay(RCM_NOT_DETECTED); - } - } - } - // Status changed to "RCM not detected" -> Disable WAITING_RECONNECT flag - if (rc <= -5) WAITING_RECONNECT = FALSE; - } - RCM_STATUS = rc; - } -} - -// -// On change payload path -void CTegraRcmGUIDlg::OnEnChangePath() -{ - CString file; - this->GetDlgItem(PAYLOAD_PATH)->GetWindowTextW(file); - PAYLOAD_FILE = _tcsdup(file); - - if (!PREVENT_AUTOINJECT) - { - // Save payload path - CT2CA pszConvertedAnsiString(file); - std::string file_c(pszConvertedAnsiString); - SetPreset("PAYLOAD_FILE", file_c); - } - - std::string s = "\nSelect a payload :"; - - CButton *m_ctlCheck = (CButton*)GetDlgItem(AUTO_INJECT); - BOOL IsCheckChecked = (m_ctlCheck->GetCheck() == 1) ? true : false; - // If Auto inject option enabled - if (IsCheckChecked && !PREVENT_AUTOINJECT) - { - // Delay auto inject if RCM not detected - if (RCM_STATUS != 0) - { - DELAY_AUTOINJECT = TRUE; - s = "Payload injection scheduled.\nWaiting for RCM mode."; - } - // Inject payload if RCM detected - else InjectPayload(); - } - PREVENT_AUTOINJECT = FALSE; - CA2T wt(s.c_str()); - SetDlgItemText(INFO_LABEL, wt); -} - - -// -// User payload injection -void CTegraRcmGUIDlg::InjectPayload() -{ - string s; - if (PAYLOAD_FILE == nullptr) { - BitmapDisplay(LOAD_ERROR); - SetDlgItemText(INFO_LABEL, TEXT("\nNo file selected !")); - return; - } - BitmapDisplay(LOADING); - - TCHAR cmd[MAX_PATH] = TEXT("\""); - lstrcat(cmd, PAYLOAD_FILE); - lstrcat(cmd, TEXT("\"")); - - int rc = Smasher(cmd); - if (rc >= 0) - { - BitmapDisplay(LOADED); - s = "\nPayload injected !"; - WAITING_RECONNECT = TRUE; - } - else - { - BitmapDisplay(LOAD_ERROR); - s = "Error while injecting payload (RC=" + std::to_string(rc) + ")"; - } - CA2T wt(s.c_str()); - CTegraRcmGUIDlg::SetDlgItemText(INFO_LABEL, wt); -} - -void CTegraRcmGUIDlg::OnBnClickedShofel2() -{ - TCHAR *exe_dir = GetAbsolutePath(TEXT(""), CSIDL_APPDATA); - - string s; - TCHAR *COREBOOT_FILE = GetAbsolutePath(TEXT("shofel2\\coreboot\\coreboot.rom"), CSIDL_APPDATA); - TCHAR *PAYLOAD = GetAbsolutePath(TEXT("shofel2\\coreboot\\cbfs.bin"), CSIDL_APPDATA); - CString COREBOOT_FILE2 = COREBOOT_FILE; - CString COREBOOT = _T("CBFS+") + COREBOOT_FILE2; - - std::ifstream infile(COREBOOT_FILE); - BOOL coreboot_exists = infile.good(); - std::ifstream infile2(PAYLOAD); - BOOL payload_exists = infile2.good(); - - if (!coreboot_exists || !payload_exists) { - SetDlgItemText(INFO_LABEL, TEXT("Linux coreboot not found in \\shofel2 dir")); - 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) - { - PROCESS_INFORMATION pif; - STARTUPINFO si; - ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - TCHAR *download_script = GetAbsolutePath(TEXT("shofel2\\download.bat"), CSIDL_APPDATA); - BOOL bRet = CreateProcess(download_script, NULL, NULL, NULL, FALSE, 0, NULL, exe_dir, &si, &pif); - } - return; // TO-DO : Remove return for coreboot injection after download - } - BitmapDisplay(LOADING); - SetDlgItemText(INFO_LABEL, TEXT("Loading coreboot. Please wait.")); - - //int rc = device.SmashMain(5, args); - TCHAR cmd[MAX_PATH] = TEXT("--relocator= \""); - lstrcat(cmd, _tcsdup(PAYLOAD)); - lstrcat(cmd, TEXT("\" \"CBFS:")); - lstrcat(cmd, _tcsdup(COREBOOT_FILE)); - lstrcat(cmd, TEXT("\"")); - int rc = Smasher(cmd); - - if (rc >= 0 || rc < -7) - { - SetDlgItemText(INFO_LABEL, TEXT("Coreboot injected. Waiting 5s for device...")); - Sleep(5000); - - PROCESS_INFORMATION pif; - STARTUPINFO si; - ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - TCHAR *imx_script = GetAbsolutePath(TEXT("shofel2\\imx_usb.bat"), CSIDL_APPDATA); - SetDlgItemText(INFO_LABEL, TEXT("Loading coreboot... Please wait.")); - BOOL ret = CreateProcess(imx_script, NULL, NULL, NULL, FALSE, CREATE_NO_WINDOW, NULL, exe_dir, &si, &pif); - int rc = -50; - if (NULL != ret) - { - WaitForSingleObject(pif.hProcess, INFINITE); - DWORD exit_code; - if (FALSE != GetExitCodeProcess(pif.hProcess, &exit_code)) - { - if (STILL_ACTIVE != exit_code) rc = exit_code; - } - else rc = -51; - CloseHandle(pif.hProcess); - CloseHandle(pif.hThread); - } - - if (rc == 0) - { - BitmapDisplay(LOADED); - s = "\nCoreboot loaded !"; - } - else - { - BitmapDisplay(LOAD_ERROR); - s = "Error while loading imx_usb.exe"; - } - } - else - { - s = "Error while injecting payload. (RC=" + std::to_string(rc) + ")"; - } - CA2T wt2(s.c_str()); - SetDlgItemText(INFO_LABEL, wt2); - -} - - -string CTegraRcmGUIDlg::GetPreset(string param) -{ - TCHAR *rfile = GetAbsolutePath(TEXT("presets.conf"), CSIDL_APPDATA); - CT2A rfile_c(rfile, CP_UTF8); - TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); - - ifstream readFile(rfile_c); - string readout; - string search = param + "="; - std::string value = ""; - if (readFile.is_open()) - { - while (getline(readFile, readout)) { - if (readout.find(search) != std::string::npos) { - std::string delimiter = "="; - value = readout.substr(readout.find(delimiter) + 1, readout.length() + 1); - } - } - } - readFile.close(); - return value; -} - -void CTegraRcmGUIDlg::SetPreset(string param, string value) -{ - TCHAR *rfile = GetAbsolutePath(TEXT("presets.conf"), CSIDL_APPDATA); - TCHAR *wfile = GetAbsolutePath(TEXT("presets.conf.tmp"), CSIDL_APPDATA); - CT2A rfile_c(rfile, CP_UTF8); - TRACE(_T("UTF8: %S\n"), rfile_c.m_psz); - CT2A wfile_c(wfile, CP_UTF8); - TRACE(_T("UTF8: %S\n"), wfile_c.m_psz); - - // Replace or create preset in file - ofstream outFile(wfile_c); - ifstream readFile(rfile_c); - string readout; - string search = param + "="; - string replace = "\n" + search + value + "\n"; - BOOL found = FALSE; - while (getline(readFile, readout)) { - if (readout.find(search) != std::string::npos) { - outFile << replace; - found = TRUE; - } - else { - outFile << readout; - } - } - if (!found) { - outFile << replace; - } - outFile.close(); - readFile.close(); - remove(rfile_c); - rename(wfile_c, rfile_c); -} - - -void CTegraRcmGUIDlg::InstallDriver() -{ - if (ASK_FOR_DRIVER) return; - CString message = _T("APX device driver is missing. Do you want to install it now ?"); - const int result = MessageBox(message, _T("APX driver not found !"), MB_YESNOCANCEL | MB_ICONQUESTION); - if (result == IDYES) - { - SHELLEXECUTEINFO shExInfo = { 0 }; - shExInfo.cbSize = sizeof(shExInfo); - shExInfo.fMask = SEE_MASK_NOCLOSEPROCESS; - shExInfo.hwnd = 0; - shExInfo.lpVerb = _T("runas"); - CString exe_file = csPath + _T("\\apx_driver\\InstallDriver.exe"); - shExInfo.lpFile = exe_file; - shExInfo.lpDirectory = 0; - shExInfo.nShow = SW_SHOW; - shExInfo.hInstApp = 0; - - if (ShellExecuteEx(&shExInfo)) - { - CloseHandle(shExInfo.hProcess); - } - } - ASK_FOR_DRIVER = TRUE; -} -typedef int(__cdecl *MYPROC)(LPWSTR); - - -BOOL CTegraRcmGUIDlg::LookForAPXDevice() -{ - unsigned index; - HDEVINFO hDevInfo; - SP_DEVINFO_DATA DeviceInfoData; - TCHAR HardwareID[1024]; - // List all connected USB devices - hDevInfo = SetupDiGetClassDevs(NULL, TEXT("USB"), NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES); - for (index = 0; ; index++) { - DeviceInfoData.cbSize = sizeof(DeviceInfoData); - if (!SetupDiEnumDeviceInfo(hDevInfo, index, &DeviceInfoData)) { - return FALSE; // no match - } - SetupDiGetDeviceRegistryProperty(hDevInfo, &DeviceInfoData, SPDRP_HARDWAREID, NULL, (BYTE*)HardwareID, sizeof(HardwareID), NULL); - if (_tcsstr(HardwareID, _T("VID_0955&PID_7321"))) { - return TRUE; // match - } - } - return FALSE; -} - - -void CTegraRcmGUIDlg::OnBnClickedMountSd() -{ - BitmapDisplay(LOADING); - string s; - TCHAR args[] = TEXT("memloader\\memloader_usb.bin -r --dataini=memloader\\ums_sd.ini"); - int rc = Smasher(args); - if (rc < 0) - { - - BitmapDisplay(LOAD_ERROR); - s = "Error while loading payload (RC=" + std::to_string(rc) + ")"; - } - else - { - BitmapDisplay(LOADING); - s = "SD tool (by rajkosto) injected"; - } - CA2T wt(s.c_str()); - CTegraRcmGUIDlg::SetDlgItemText(INFO_LABEL, wt); -} - -int CTegraRcmGUIDlg::Smasher(TCHAR args[]) -{ - if (WAITING_RECONNECT) - { - CString message = _T("Payload already injected. Are you sure you want to overwrite the stack again ?"); - const int result = MessageBox(message, _T("WARNING !"), MB_YESNOCANCEL | MB_ICONQUESTION); - if (result != IDYES) - { - DELAY_AUTOINJECT = FALSE; - RCM_STATUS = -99; - return -99; - } - WAITING_RECONNECT = FALSE; - } - - SECURITY_ATTRIBUTES sa; - sa.nLength = sizeof(sa); - sa.lpSecurityDescriptor = NULL; - sa.bInheritHandle = TRUE; - PROCESS_INFORMATION pi; - STARTUPINFO si; - BOOL ret = FALSE; - DWORD flags = CREATE_NO_WINDOW; - ZeroMemory(&pi, sizeof(PROCESS_INFORMATION)); - ZeroMemory(&si, sizeof(STARTUPINFO)); - si.cb = sizeof(STARTUPINFO); - si.dwFlags |= STARTF_USESTDHANDLES; - si.hStdInput = NULL; - TCHAR cmd[MAX_PATH] = TEXT(".\\TegraRcmSmash.exe "); - lstrcat(cmd, args); - ret = CreateProcess(NULL, cmd, NULL, NULL, TRUE, flags, NULL, NULL, &si, &pi); - int rc = -50; - if (NULL != ret) - { - WaitForSingleObject(pi.hProcess, INFINITE); - DWORD exit_code; - if (FALSE != GetExitCodeProcess(pi.hProcess, &exit_code)) - { - if (STILL_ACTIVE != exit_code) - { - rc = exit_code; - } - } - else - { - rc = -51; - } - CloseHandle(pi.hProcess); - CloseHandle(pi.hThread); - } - return rc; -} - -TCHAR* CTegraRcmGUIDlg::GetAbsolutePath(TCHAR* relative_path, DWORD dwFlags) -{ - - // Get current directory - 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(); - - csPath2 = csPath; - csPath2 += TEXT("\\"); - csPath2 += relative_path; - return _tcsdup(csPath2); - /* - TCHAR szPath[MAX_PATH]; - - if (SUCCEEDED(SHGetFolderPath(NULL, dwFlags, NULL, SHGFP_TYPE_CURRENT, szPath))) - { - if (dwFlags == CSIDL_APPDATA) PathAppend(szPath, _T("\\TegraRcmGUI")); - PathAppend(szPath, relative_path); - return _tcsdup(szPath); - } - return _T(""); - */ -} - diff --git a/presets.conf b/presets.conf deleted file mode 100644 index e69de29..0000000 diff --git a/res/bitmap2.bmp b/res/bitmap2.bmp deleted file mode 100644 index 6e8e840620a27fb2fa28f68c860a5eaa5714167a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1270 zcmZ?r{l>xo24z4}1BeZvn2`Y@(EybPD?%X}7#M(vp`ign0ZAZ};lP0dKpG_RAB-6O a{|B*v7zjZ^ApR&A4S~@R7!82|3IPD0SCat% diff --git a/res/driver_ko2.bmp b/res/driver_ko2.bmp deleted file mode 100644 index 7b2e5f475b0bac5664dd40b7bf2084e94303c3aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21654 zcmeI22~bs47{|qZ#eJDE$4OI53B?f1g#?l;7j%-QX>zn;&>78j9CslQR3sL~m848D zCzo+cEl>y@q{-1rR4N5W*-Vf{F!rzi;XIFb?&a~`eNTGt$vtzqoOABE=Y8MrerNf< zdp)M^nAxl@x#0XN{(SK_34eCY`rypd#(vG3vA?H@w4@Qx2xtT}0vZ90fJQ(gpb^jr zXaqC@8Uc-fMnEHAl?2Mm%hS@*5)u+lo;-QNHdA_fdSjz4C@6@Ch!`|zP^V6vTDENY zH0Wh}{{sR78kJRYa`M1|1MTeWj6u`7b?cX`GC?rN->9sP9Xr;cLkD9h@irqyjCg33 z$dyROJ`?i82PPRw=k_)Ny^B`fJh@pj%++uRaI3kE-YlPDsfhR zetx*CWryDF`?^~2fB+DKkGn=?g@sNPCEi%DYGvQ=6~Esc)>K;XfB+DKvvPBDgM=O) z9vc)XBqU__?%kM{b8>P_oB3zX)V&T;MNF{j_Qt%|*OSE$h{0J+nKGqeMOw6I(Wg%z zUteE7W>rD!)vH&-o!5I+u}<( z3i@J$5fv3>BrA+uRft667lRelY15`ne0;nyxU#deh5D*8=CE=PrDPaD0(xP z9Q|2wQUv+!qp4A*%zh?}L80%EAw%HS8N_7~R@)NjW)698qkk(Y-~@g4H8};);_oQ0 zn9_6E8I@}1Kyz3DT3lS5)v~&qPpNn4r?h8G{ANm?x z2ZcFFGq}rYSv~%j%B$$T$Y-o_3TgTGtmw0Yur#@Dcy`GcVrJS^w{G1GE{OWZAQp(A zpr8vEF1Wk9OZkhuIrA09V0IxLze*Qw(TD&YlQVzN`J3b!MtgpyKl9Xq0!%YmK`(3x z8a6F`tY*!c#czD{=n?na1tp#_ht;MZ*Z_Ppgzo%9tB>licx<7|x9P7ux}HTJ?y>-@ zyu3WqSk0e5pWlcDqJ8`JGEgX*!^%03#)L2$IJ-#38f?sM6OH^rHK^xeSGl>ls#qbu zH+}l_rAwC%7%<@U>C>5+nRDmPMfhdSnl(5}iJ8O7nE6L-8}rAYT2^!B%&DoV0bV$m z&6_uG+qP~0{{2fzN>GF0+^^rW4+J$<2q1GiEG;eNR^;jFDJ)Yu&)Xa;JbDB(>z#YK zrfThK`0(NIdWwpQ5YHGobm)v3GkW*#eevQ&m=-JzW+sNA4Y5L0eDvtiXV0F!apT67 zD_0gRS|n9OXrz`EZtT&c2PUiWe)9hP=tFh7B8* zpP!En16~o<`({VU3LAhK(QMI&BRndI?a5K(+i&chaJ;pd`F(tW8y(DQCWPu54EJY6 zoZkp!8Qg_Syyb+=x(xp`oGAixv98syAxXDA~{x z{mWRnZ=swbx>rDtO6l`B3O>#D-Z!$@Zqw-tCL=bV4@>B)WF3KBN%W+GG9J?359pIv z^7@js0n8X|+H;xjTv*0hf`sxNSl0%w;={)@D~7d4<6SQN{||!TH6bk3LU{>C9De4x$BdR8vccz#st#oENl#UO2!C%^cTL z_>YV#XN69RpV0f;*=C-z@;^?$X42zwniQ^M<-L{0hUi$q%g%pHZ-+I+s#U92%IG>K z7H@BFnNt57t8M2gDV@n2c#3|%&-@oSEJaUf^BGo&biaTFTRzyyii}kvV};B|d#JjG z-mTlJT)W3~$H*0|V2zv3Ft;({Cmky^`1wyAEBp{VZg56F`s@lo;ICCyRx%-;rgP`c zDc`D_#tQSHlatf-?c0wWIkIfovMyb^$Q}WTGP~N5sAC1yU_46>vB3xen3tdk(%f&^ zFqDqL?zsAC2H2=T7Sx=2m~ ztRU^=$&;^My;@jU2pbCw48#`*N{viowS4*Vii(P-4}tF9y^9%A*13#TR6HfzWLUuJ zw|g{x6J_R8S{Bn0m8IoODNHpy>Vg`C8UPdX)$M=i;}|xM(B|(vdQd{X-_VM~ED*8b zlE_A83XeSO^wPUc=jP#~D|#ScpE+z_YH1 zN`7FyKzkS-GW_<2?Mfzmy+spPA#5cBg(4=yzJ2>je?rEJ3v9u&K~~S*#{rG#=x8M? z)Hpae*fc9lQ;1Ndq@>`rpi~i&H)vPbaEit}GjHBJB`f#{vW=E)*%g+j>gsB)*ODbm zWGeHbK~{*s$RJ<>lsN?$fN-T{{o4vFOzGGjAiTg)Kwo^5fY|G6mlYl!j=dJ5Oi4*e`}gmceMV)_uD}X0 zD;X;kfgSq<0O{GYr}8Rl1gp-k`8ceretli71rG=SF_hmkKu8P<=!i4_)(Dd06$2lP zYuB!os%8u;M62{ochat8dBMuAMeB|)d)g22w%`E)Acm5atE;PE1%Y`GKrq4kM5$7u zo|Dvfj*X4w{YdX^IL}$Zs$tSrlJ@P}2L+|?QlZr9)vNJM^{Q2?#*7(r`0!!8N|-ot zA|ieV4<3~HBSx|U`~?dZsKUir>4R^L-wz6~@wG-%!=mY{5zq)|1T+E~0gZr0z#0hr2d_v5 A0{{R3 diff --git a/res/init_logo_2.bmp b/res/init_logo_2.bmp deleted file mode 100644 index cd196ec1a816a133c3c8cbf32012248b9b62996d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8278 zcmeI1cTf~p9LK-F9qmARm3EXM<>081&|46q1R~fHibR0~LMT!aNFWqVOej(;fVA7c z9LE_Q|8)FAozcJa51p}$Z7ev}vGf{>69gocJfDwQHEEDYh{;fRckL{wB1qNAe`6BC2j*jU8H#UVaE z9tjBvNK8ybQc@Cl7iIKRHUV)Aw4}E85tSK%*;eqRu+~oUykhTY~-R23sF>5gyQ02l$4a9w6qjuWo0NYFGod11u82mQB_ri>gsCL)YPE1 zwib1Db*QheM?*scnwpx>+}wv1_m%VIEbO4A&iWSV03g8V`F0&A0NlW!~`ZMC$VSG9_-z_7yI_@!~XsIap1rK z96WdshYlUW;lqb<(jV#;|6Ztyou@QY23PX3%76I z#+^HNaQE(A+`D%V_wV1wg9i`r@Zm!|dh`g7A3w&ECr|M7=~Fy=_6*OTKgWv~FYxl^ zOT2pZ3a?+k#+x^9@b>LnynFW!@87@2hYuf=ZqkL~d`Ey(X^);eRxB&pQWjG=~6Bbt$C3X*MFTaX&YZx&nx zq*NP86}7O6M$(F2>&=h_6fwg?bS5s7@p{d6XYCFB$q8COW zpRs|Wb^&punjUw(Fa+ZtAxx}-yNA~Mr#m+7Xrxz<^uoY49s_pb=wa$tk*^s+=!wz8 zXMi3fnKezAN5+!=-F5QpMC(}b<`TB2D*S+37!#=Z^n-;nTdn<=nXd$1so{!5N|hfU zAv!ZeKa(_|J%Ux5%`glpuU=)vw(89Ik-3%n>=>EZjMa1^@~0ousw=}<{@8t^njx8B zy3jZ$hD82El&WSFv&}MBx>;90oTgZnwW=9q@-76-g@H|s%BUxw(a%(T%`%4PHkUZH zOi{9(8H^&7#(avAwcJ8OWb2t`U1J59CFN(jvj}Ad6~)x~Hjj-Dmk1S%rL13?ZI{kG zgK~Lhr{o7ke-$8R=qI&jOZ1qFw~~cr4Q;DfEn~=5Er`52+4F<*8>5#~Ql{OuL$!l-ckApQ9zl1t$rH9c6=MRhI`iz=y+82S=EgQ9-_ zVP)1b-OYxGCX&u30AzCAsG6Z1Tph}xMAfcW)@$n^td&hB&l>}->8_R3X5SPV2yjz( z9s13`gq4L2sb9?yV5G&HF<(vfv7BMlPRU|f#%HQeoI|ag0q5+`Sp@Rtpr-m#1w#%X z)1TV)EY(7vsGY^g{=~^THt`ujythsrWjUAe7{T3~R{b1s7=o3%^rOmEnPC`OM;0;v M+uZhrBMl<(FO@%xcmMzZ diff --git a/res/rcm_detected2.bmp b/res/rcm_detected2.bmp deleted file mode 100644 index 1f01c7aa06e78043e16131b80b362afa12f230fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21654 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 diff --git a/res/rcm_undetected2.bmp b/res/rcm_undetected2.bmp deleted file mode 100644 index b8774e513242e69a964a3eb119d9130b5e011bd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21654 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 kXyf