1
0
Fork 0
mirror of https://github.com/suchmememanyskill/TegraExplorer.git synced 2024-11-13 23:46:42 +00:00
TegraExplorer/source/tegraexplorer/mainmenu.c

89 lines
2.1 KiB
C
Raw Normal View History

2020-12-23 23:31:17 +00:00
#include "mainmenu.h"
#include "../gfx/gfx.h"
#include "../gfx/gfxutils.h"
#include "../gfx/menu.h"
#include "tools.h"
2020-05-01 21:42:49 +01:00
#include "../hid/hid.h"
#include "../fs/menus/explorer.h"
#include <utils/btn.h>
#include <storage/nx_sd.h>
2020-12-25 20:16:24 +00:00
#include "tconf.h"
2020-12-26 21:24:41 +00:00
#include "../keys/keys.h"
2020-12-26 22:41:25 +00:00
#include "../storage/mountmanager.h"
MenuEntry_t mainMenuEntries[] = {
{.R = 255, .G = 255, .B = 255, .skip = 1, .name = "-- Main Menu --"},
{.G = 255, .name = "SD:/"},
2020-12-26 22:41:25 +00:00
{.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "emmc:/SYSTEM"},
{.B = 255, .G = 255, .name = "Test Controllers"},
2020-12-25 20:16:24 +00:00
{.R = 255, .name = "Cause an exception"},
2020-12-26 21:24:41 +00:00
{.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "View dumped keys"},
{.R = 255, .name = "Reboot to payload"}
};
2020-02-11 16:18:29 +00:00
void HandleSD(){
gfx_clearscreen();
2020-12-25 20:16:24 +00:00
TConf.curExplorerLoc = LOC_SD;
if (!sd_mount()){
gfx_printf("Sd is not mounted!");
hidWait();
2020-02-11 16:18:29 +00:00
}
else
FileExplorer("sd:/");
2020-02-11 16:18:29 +00:00
}
2020-12-26 22:41:25 +00:00
void HandleEMMC(){
if (connectMMC(MMC_CONN_EMMC))
return;
ErrCode_t err = mountMMCPart("SYSTEM");
if (err.err){
DrawError(err);
return;
}
FileExplorer("bis:/");
}
2020-12-25 20:16:24 +00:00
void CrashTE(){
gfx_printf("%d", *((int*)0));
}
2020-12-26 21:24:41 +00:00
void ViewKeys(){
gfx_clearscreen();
for (int i = 0; i < 3; i++){
gfx_printf("\nBis key 0%d: ", i);
PrintKey(dumpedKeys.bis_key[i], AES_128_KEY_SIZE * 2);
}
gfx_printf("\nMaster key 0: ");
PrintKey(dumpedKeys.master_key, AES_128_KEY_SIZE);
gfx_printf("\nHeader key: ");
PrintKey(dumpedKeys.header_key, AES_128_KEY_SIZE * 2);
gfx_printf("\nSave mac key: ");
PrintKey(dumpedKeys.save_mac_key, AES_128_KEY_SIZE);
2020-12-26 22:41:25 +00:00
gfx_printf("\n\nPkg1 ID: '%s', kb %d", TConf.pkg1ID, TConf.pkg1ver);
2020-12-26 21:24:41 +00:00
hidWait();
}
menuPaths mainMenuPaths[] = {
NULL,
HandleSD,
2020-12-26 22:41:25 +00:00
HandleEMMC,
TestControllers,
2020-12-25 20:16:24 +00:00
CrashTE,
2020-12-26 21:24:41 +00:00
ViewKeys,
RebootToPayload
2020-02-11 16:18:29 +00:00
};
void EnterMainMenu(){
while (1){
2020-12-26 22:41:25 +00:00
mainMenuEntries[2].hide = !TConf.keysDumped;
mainMenuEntries[5].hide = !TConf.keysDumped;
2020-12-26 21:24:41 +00:00
FunctionMenuHandler(mainMenuEntries, ARR_LEN(mainMenuEntries), mainMenuPaths, ALWAYSREDRAW);
}
}