Merge branch 'master' of https://github.com/Team-Neptune/CommonProblemResolver
This commit is contained in:
6
Makefile
6
Makefile
@@ -10,12 +10,12 @@ include $(DEVKITARM)/base_rules
|
||||
|
||||
IPL_LOAD_ADDR := 0x40003000
|
||||
LPVERSION_MAJOR := 0
|
||||
LPVERSION_MINOR := 1
|
||||
LPVERSION_BUGFX := 0
|
||||
LPVERSION_MINOR := 0
|
||||
LPVERSION_BUGFX := 1
|
||||
|
||||
################################################################################
|
||||
|
||||
TARGET := CommonProblemResolver
|
||||
TARGET := CPR
|
||||
BUILDDIR := build
|
||||
OUTPUTDIR := output
|
||||
SOURCEDIR = source
|
||||
|
||||
@@ -18,59 +18,37 @@
|
||||
#include "../utils/utils.h"
|
||||
#include "../config.h"
|
||||
|
||||
#include "../fs/readers/folderReader.h"
|
||||
#include "../fs/fstypes.h"
|
||||
#include "../fs/fscopy.h"
|
||||
|
||||
extern hekate_config h_cfg;
|
||||
|
||||
enum {
|
||||
MainExplore = 0,
|
||||
DeleteBootFlags,
|
||||
DeleteThemes,
|
||||
FixClingWrap,
|
||||
FixAll,
|
||||
MainOther,
|
||||
// MainBrowseSd,
|
||||
// MainMountSd,
|
||||
// MainBrowseEmmc,
|
||||
// MainBrowseEmummc,
|
||||
// MainTools,
|
||||
// MainPartitionSd,
|
||||
// MainDumpFw,
|
||||
// MainViewKeys,
|
||||
MainBrowseSd,
|
||||
MainMountSd,
|
||||
MainBrowseEmmc,
|
||||
MainBrowseEmummc,
|
||||
MainTools,
|
||||
MainPartitionSd,
|
||||
MainDumpFw,
|
||||
MainViewKeys,
|
||||
MainViewCredits,
|
||||
MainExit,
|
||||
MainPowerOff,
|
||||
MainRebootRCM,
|
||||
// MainRebootNormal,
|
||||
MainRebootNormal,
|
||||
MainRebootHekate,
|
||||
// MainRebootAMS,
|
||||
MainRebootAMS
|
||||
};
|
||||
|
||||
MenuEntry_t mainMenuEntries[] = {
|
||||
[MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Tools --"},
|
||||
[DeleteBootFlags] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Delete boot2.flags"},
|
||||
[DeleteThemes] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Delete installed themes"},
|
||||
[FixClingWrap] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix ClingWrap"},
|
||||
[FixAll] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Try everything"},
|
||||
|
||||
// [MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Browse SD"},
|
||||
// [MainMountSd] = {.optionUnion = COLORTORGB(COLOR_YELLOW)}, // To mount/unmount the SD
|
||||
// [MainBrowseEmmc] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Browse EMMC"},
|
||||
// [MainBrowseEmummc] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Browse EMUMMC"},
|
||||
// [MainTools] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Tools --"},
|
||||
// [MainPartitionSd] = {.optionUnion = COLORTORGB(COLOR_ORANGE), .name = "Partition the sd"},
|
||||
// [MainDumpFw] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Dump Firmware"},
|
||||
// [MainViewKeys] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "View dumped keys"},
|
||||
[MainOther] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Other --"},
|
||||
[MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Main --"},
|
||||
[MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix common Issues"},
|
||||
[MainViewCredits] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Credits"},
|
||||
[MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Exit --"},
|
||||
[MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Power off"},
|
||||
[MainRebootRCM] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to RCM"},
|
||||
// [MainRebootNormal] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot normally"},
|
||||
[MainRebootNormal] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot normally"},
|
||||
[MainRebootHekate] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to bootloader/update.bin"},
|
||||
// [MainRebootAMS] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to atmosphere/reboot_payload.bin"}
|
||||
[MainRebootAMS] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Reboot to atmosphere/reboot_payload.bin"}
|
||||
};
|
||||
|
||||
void HandleSD(){
|
||||
@@ -81,7 +59,7 @@ void HandleSD(){
|
||||
hidWait();
|
||||
}
|
||||
else
|
||||
FileExplorer("sd:/");
|
||||
FileExplorer("sd:/atmosphere/contents");
|
||||
}
|
||||
|
||||
void HandleEMMC(){
|
||||
@@ -119,7 +97,10 @@ void ViewKeys(){
|
||||
|
||||
void ViewCredits(){
|
||||
gfx_clearscreen();
|
||||
gfx_printf("\nCommon Problem Resolver v%d.%d.%d\nBy Team Neptune\n\nBased on TegraExplorer by SuchMemeManySkill,\nLockpick_RCM & Hekate, from shchmue & CTCaer\n\n\n", LP_VER_MJ, LP_VER_MN, LP_VER_BF);
|
||||
gfx_printf("\nTegraexplorer v%d.%d.%d\nBy SuchMemeManySkill\n\nBased on Lockpick_RCM & Hekate, from shchmue & CTCaer\n\n\n", LP_VER_MJ, LP_VER_MN, LP_VER_BF);
|
||||
|
||||
if (hidRead()->r)
|
||||
gfx_printf("%k\"I'm not even sure if it works\" - meme", COLOR_ORANGE);
|
||||
hidWait();
|
||||
}
|
||||
|
||||
@@ -143,119 +124,20 @@ void MountOrUnmountSD(){
|
||||
hidWait();
|
||||
}
|
||||
|
||||
|
||||
void DeleteFileSimple(char *thing){
|
||||
//char *thing = CombinePaths(path, entry.name);
|
||||
int res = f_unlink(thing);
|
||||
if (res)
|
||||
DrawError(newErrCode(res));
|
||||
free(thing);
|
||||
}
|
||||
|
||||
void deleteBootFlags(){
|
||||
gfx_clearscreen();
|
||||
char *storedPath = CpyStr("sd:/atmosphere/contents");
|
||||
int readRes = 0;
|
||||
Vector_t fileVec = ReadFolder(storedPath, &readRes);
|
||||
if (readRes){
|
||||
clearFileVector(&fileVec);
|
||||
DrawError(newErrCode(readRes));
|
||||
} else {
|
||||
vecDefArray(FSEntry_t*, fsEntries, fileVec);
|
||||
for (int i = 0; i < fileVec.count; i++){
|
||||
|
||||
char *suf = "/flags/boot2.flag";
|
||||
char *flagPath = CombinePaths(storedPath, fsEntries[i].name);
|
||||
flagPath = CombinePaths(flagPath, suf);
|
||||
|
||||
if (FileExists(flagPath)) {
|
||||
gfx_printf("Deleting: %s\n", flagPath);
|
||||
DeleteFileSimple(flagPath);
|
||||
}
|
||||
free(flagPath);
|
||||
}
|
||||
}
|
||||
gfx_printf("\n\n Done, press a key to proceed.");
|
||||
hidWait();
|
||||
}
|
||||
|
||||
void deleteTheme(char* basePath, char* folderId){
|
||||
char *path = CombinePaths(basePath, folderId);
|
||||
if (FileExists(path)) {
|
||||
gfx_printf("-- Theme found: %s\n", path);
|
||||
FolderDelete(path);
|
||||
}
|
||||
free(path);
|
||||
}
|
||||
|
||||
void deleteInstalledThemes(){
|
||||
gfx_clearscreen();
|
||||
deleteTheme("sd:/atmosphere/contents", "0100000000001000");
|
||||
deleteTheme("sd:/atmosphere/contents", "0100000000001007");
|
||||
deleteTheme("sd:/atmosphere/contents", "0100000000001013");
|
||||
|
||||
gfx_printf("\n\n Done, press a key to proceed.");
|
||||
hidWait();
|
||||
}
|
||||
|
||||
void fixClingWrap(){
|
||||
gfx_clearscreen();
|
||||
char *bpath = CpyStr("sd:/_b0otloader");
|
||||
char *bopath = CpyStr("sd:/bootloader");
|
||||
char *kpath = CpyStr("sd:/atmosphere/_k1ps");
|
||||
char *kopath = CpyStr("sd:/atmosphere/kips");
|
||||
|
||||
if (FileExists(bpath)) {
|
||||
if (FileExists(bopath)) {
|
||||
FolderDelete(bopath);
|
||||
}
|
||||
int res = f_rename(bpath, bopath);
|
||||
if (res){
|
||||
DrawError(newErrCode(res));
|
||||
}
|
||||
gfx_printf("-- Fixed Bootloader\n");
|
||||
}
|
||||
|
||||
if (FileExists(kpath)) {
|
||||
if (FileExists(kopath)) {
|
||||
FolderDelete(kopath);
|
||||
}
|
||||
int res = f_rename(bpath, kopath);
|
||||
if (res){
|
||||
DrawError(newErrCode(res));
|
||||
}
|
||||
gfx_printf("-- Fixed kips\n");
|
||||
}
|
||||
|
||||
gfx_printf("\n\n Done, press a key to proceed.");
|
||||
hidWait();
|
||||
}
|
||||
|
||||
void fixAll(){
|
||||
gfx_clearscreen();
|
||||
deleteBootFlags();
|
||||
deleteInstalledThemes();
|
||||
fixClingWrap();
|
||||
}
|
||||
|
||||
menuPaths mainMenuPaths[] = {
|
||||
[DeleteBootFlags] = deleteBootFlags,
|
||||
[DeleteThemes] = deleteInstalledThemes,
|
||||
[FixClingWrap] = fixClingWrap,
|
||||
[FixAll] = fixAll,
|
||||
// [MainBrowseSd] = HandleSD,
|
||||
// [MainMountSd] = MountOrUnmountSD,
|
||||
// [MainBrowseEmmc] = HandleEMMC,
|
||||
// [MainBrowseEmummc] = HandleEMUMMC,
|
||||
// [MainPartitionSd] = FormatSD,
|
||||
// [MainDumpFw] = DumpSysFw,
|
||||
// [MainViewKeys] = ViewKeys,
|
||||
// [MainRebootAMS] = RebootToAMS,
|
||||
[MainBrowseSd] = HandleSD,
|
||||
[MainMountSd] = MountOrUnmountSD,
|
||||
[MainBrowseEmmc] = HandleEMMC,
|
||||
[MainBrowseEmummc] = HandleEMUMMC,
|
||||
[MainPartitionSd] = FormatSD,
|
||||
[MainDumpFw] = DumpSysFw,
|
||||
[MainViewKeys] = ViewKeys,
|
||||
[MainRebootAMS] = RebootToAMS,
|
||||
[MainRebootHekate] = RebootToHekate,
|
||||
[MainRebootRCM] = reboot_rcm,
|
||||
[MainPowerOff] = power_off,
|
||||
[MainViewCredits] = ViewCredits,
|
||||
// [MainRebootNormal] = reboot_normal
|
||||
[MainRebootNormal] = reboot_normal,
|
||||
};
|
||||
|
||||
void EnterMainMenu(){
|
||||
@@ -264,18 +146,18 @@ void EnterMainMenu(){
|
||||
if (sd_get_card_removed())
|
||||
sd_unmount();
|
||||
|
||||
// // -- Explore --
|
||||
// mainMenuEntries[MainBrowseSd].hide = !sd_mounted;
|
||||
// mainMenuEntries[MainMountSd].name = (sd_mounted) ? "Unmount SD" : "Mount SD";
|
||||
// mainMenuEntries[MainBrowseEmummc].hide = (!emu_cfg.enabled || !sd_mounted);
|
||||
// -- Explore --
|
||||
mainMenuEntries[MainBrowseSd].hide = !sd_mounted;
|
||||
mainMenuEntries[MainMountSd].name = (sd_mounted) ? "Unmount SD" : "Mount SD";
|
||||
mainMenuEntries[MainBrowseEmummc].hide = (!emu_cfg.enabled || !sd_mounted);
|
||||
|
||||
// // -- Tools --
|
||||
// mainMenuEntries[MainPartitionSd].hide = (!is_sd_inited || sd_get_card_removed());
|
||||
// mainMenuEntries[MainDumpFw].hide = (!TConf.keysDumped || !sd_mounted);
|
||||
// mainMenuEntries[MainViewKeys].hide = !TConf.keysDumped;
|
||||
// -- Tools --
|
||||
mainMenuEntries[MainPartitionSd].hide = (!is_sd_inited || sd_get_card_removed());
|
||||
mainMenuEntries[MainDumpFw].hide = (!TConf.keysDumped || !sd_mounted);
|
||||
mainMenuEntries[MainViewKeys].hide = !TConf.keysDumped;
|
||||
|
||||
// // -- Exit --
|
||||
// mainMenuEntries[MainRebootAMS].hide = (!sd_mounted || !FileExists("sd:/atmosphere/reboot_payload.bin"));
|
||||
// -- Exit --
|
||||
mainMenuEntries[MainRebootAMS].hide = (!sd_mounted || !FileExists("sd:/atmosphere/reboot_payload.bin"));
|
||||
mainMenuEntries[MainRebootHekate].hide = (!sd_mounted || !FileExists("sd:/bootloader/update.bin"));
|
||||
mainMenuEntries[MainRebootRCM].hide = h_cfg.t210b01;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user