Added AiO-Updater fixed & styling
This commit is contained in:
@@ -21,6 +21,7 @@
|
|||||||
#include "../fs/readers/folderReader.h"
|
#include "../fs/readers/folderReader.h"
|
||||||
#include "../fs/fstypes.h"
|
#include "../fs/fstypes.h"
|
||||||
#include "../fs/fscopy.h"
|
#include "../fs/fscopy.h"
|
||||||
|
#include <utils/sprintf.h>
|
||||||
|
|
||||||
extern hekate_config h_cfg;
|
extern hekate_config h_cfg;
|
||||||
|
|
||||||
@@ -29,8 +30,10 @@ enum {
|
|||||||
DeleteBootFlags,
|
DeleteBootFlags,
|
||||||
DeleteThemes,
|
DeleteThemes,
|
||||||
FixClingWrap,
|
FixClingWrap,
|
||||||
|
FixAIOUpdaterBoot,
|
||||||
FixAll,
|
FixAll,
|
||||||
MainOther,
|
MainOther,
|
||||||
|
MainViewStillNoBootInfo,
|
||||||
// MainBrowseSd,
|
// MainBrowseSd,
|
||||||
// MainMountSd,
|
// MainMountSd,
|
||||||
// MainBrowseEmmc,
|
// MainBrowseEmmc,
|
||||||
@@ -50,9 +53,10 @@ enum {
|
|||||||
|
|
||||||
MenuEntry_t mainMenuEntries[] = {
|
MenuEntry_t mainMenuEntries[] = {
|
||||||
[MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Tools --"},
|
[MainExplore] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "-- Tools --"},
|
||||||
[DeleteBootFlags] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Delete boot2.flags"},
|
[DeleteBootFlags] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Disable automatic sysmodule startup"},
|
||||||
[DeleteThemes] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Delete installed themes"},
|
[DeleteThemes] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Delete installed themes"},
|
||||||
[FixClingWrap] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix ClingWrap"},
|
[FixClingWrap] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix ClingWrap"},
|
||||||
|
[FixAIOUpdaterBoot] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Fix Switch-AiO-Updater update"},
|
||||||
[FixAll] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Try everything"},
|
[FixAll] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Try everything"},
|
||||||
|
|
||||||
// [MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Browse SD"},
|
// [MainBrowseSd] = {.optionUnion = COLORTORGB(COLOR_GREEN), .name = "Browse SD"},
|
||||||
@@ -64,6 +68,7 @@ MenuEntry_t mainMenuEntries[] = {
|
|||||||
// [MainDumpFw] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Dump Firmware"},
|
// [MainDumpFw] = {.optionUnion = COLORTORGB(COLOR_BLUE), .name = "Dump Firmware"},
|
||||||
// [MainViewKeys] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "View dumped keys"},
|
// [MainViewKeys] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "View dumped keys"},
|
||||||
[MainOther] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Other --"},
|
[MainOther] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Other --"},
|
||||||
|
[MainViewStillNoBootInfo] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "My switch still does not boot"},
|
||||||
[MainViewCredits] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Credits"},
|
[MainViewCredits] = {.optionUnion = COLORTORGB(COLOR_YELLOW), .name = "Credits"},
|
||||||
[MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Exit --"},
|
[MainExit] = {.optionUnion = COLORTORGB(COLOR_WHITE) | SKIPBIT, .name = "\n-- Exit --"},
|
||||||
[MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Power off"},
|
[MainPowerOff] = {.optionUnion = COLORTORGB(COLOR_VIOLET), .name = "Power off"},
|
||||||
@@ -151,9 +156,16 @@ void DeleteFileSimple(char *thing){
|
|||||||
DrawError(newErrCode(res));
|
DrawError(newErrCode(res));
|
||||||
free(thing);
|
free(thing);
|
||||||
}
|
}
|
||||||
|
void RenameFileSimple(char *sourcePath, char *destPath){
|
||||||
|
int res = f_rename(sourcePath, destPath);
|
||||||
|
if (res){
|
||||||
|
DrawError(newErrCode(res));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void deleteBootFlags(){
|
void deleteBootFlags(){
|
||||||
gfx_clearscreen();
|
gfx_clearscreen();
|
||||||
|
gfx_printf("\n\n-- Disabling automatic sysmodule startup.\n\n");
|
||||||
char *storedPath = CpyStr("sd:/atmosphere/contents");
|
char *storedPath = CpyStr("sd:/atmosphere/contents");
|
||||||
int readRes = 0;
|
int readRes = 0;
|
||||||
Vector_t fileVec = ReadFolder(storedPath, &readRes);
|
Vector_t fileVec = ReadFolder(storedPath, &readRes);
|
||||||
@@ -190,6 +202,7 @@ void deleteTheme(char* basePath, char* folderId){
|
|||||||
|
|
||||||
void deleteInstalledThemes(){
|
void deleteInstalledThemes(){
|
||||||
gfx_clearscreen();
|
gfx_clearscreen();
|
||||||
|
gfx_printf("\n\n-- Deleting installed themes.\n\n");
|
||||||
deleteTheme("sd:/atmosphere/contents", "0100000000001000");
|
deleteTheme("sd:/atmosphere/contents", "0100000000001000");
|
||||||
deleteTheme("sd:/atmosphere/contents", "0100000000001007");
|
deleteTheme("sd:/atmosphere/contents", "0100000000001007");
|
||||||
deleteTheme("sd:/atmosphere/contents", "0100000000001013");
|
deleteTheme("sd:/atmosphere/contents", "0100000000001013");
|
||||||
@@ -200,6 +213,7 @@ void deleteInstalledThemes(){
|
|||||||
|
|
||||||
void fixClingWrap(){
|
void fixClingWrap(){
|
||||||
gfx_clearscreen();
|
gfx_clearscreen();
|
||||||
|
gfx_printf("\n\n-- Fixing ClingWrap.\n\n");
|
||||||
char *bpath = CpyStr("sd:/_b0otloader");
|
char *bpath = CpyStr("sd:/_b0otloader");
|
||||||
char *bopath = CpyStr("sd:/bootloader");
|
char *bopath = CpyStr("sd:/bootloader");
|
||||||
char *kpath = CpyStr("sd:/atmosphere/_k1ps");
|
char *kpath = CpyStr("sd:/atmosphere/_k1ps");
|
||||||
@@ -227,6 +241,76 @@ void fixClingWrap(){
|
|||||||
gfx_printf("-- Fixed kips\n");
|
gfx_printf("-- Fixed kips\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(bpath);
|
||||||
|
free(bopath);
|
||||||
|
free(kpath);
|
||||||
|
free(kopath);
|
||||||
|
|
||||||
|
gfx_printf("\n\n Done, press a key to proceed.");
|
||||||
|
hidWait();
|
||||||
|
}
|
||||||
|
|
||||||
|
void fixAIOUpdate(){
|
||||||
|
gfx_clearscreen();
|
||||||
|
gfx_printf("\n\n-- Fix broken Switch-AiO-Updater update.\n\n");
|
||||||
|
|
||||||
|
char *aio_fs_path = CpyStr("sd:/atmosphere/fusee-secondary.bin.aio");
|
||||||
|
char *aio_p_path = CpyStr("sd:/sept/payload.bin.aio");
|
||||||
|
char *aio_strt_path = CpyStr("sd:/atmosphere/stratosphere.romfs.aio");
|
||||||
|
|
||||||
|
char *o_fs_path = CpyStr("sd:/atmosphere/fusee-secondary.bin");
|
||||||
|
char *o_p_path = CpyStr("sd:/sept/payload.bin");
|
||||||
|
char *o_strt_path = CpyStr("sd:/atmosphere/stratosphere.romfs");
|
||||||
|
|
||||||
|
if (FileExists(aio_fs_path)) {
|
||||||
|
gfx_printf("Detected aio updated fusee-secondary file -> replacing original\n\n");
|
||||||
|
if (FileExists(o_fs_path)) {
|
||||||
|
DeleteFileSimple(o_fs_path);
|
||||||
|
}
|
||||||
|
RenameFileSimple(aio_fs_path, o_fs_path);
|
||||||
|
}
|
||||||
|
free(aio_fs_path);
|
||||||
|
free(o_fs_path);
|
||||||
|
|
||||||
|
if (FileExists(aio_p_path)) {
|
||||||
|
gfx_printf("Detected aio updated paload file -> replacing original\n\n");
|
||||||
|
if (FileExists(o_p_path)) {
|
||||||
|
DeleteFileSimple(o_p_path);
|
||||||
|
}
|
||||||
|
RenameFileSimple(aio_p_path, o_p_path);
|
||||||
|
}
|
||||||
|
free(aio_p_path);
|
||||||
|
free(o_p_path);
|
||||||
|
|
||||||
|
if (FileExists(aio_strt_path)) {
|
||||||
|
gfx_printf("Detected aio updated stratosphere file -> replacing original\n\n");
|
||||||
|
if (FileExists(o_strt_path)) {
|
||||||
|
DeleteFileSimple(o_strt_path);
|
||||||
|
}
|
||||||
|
RenameFileSimple(aio_strt_path, o_strt_path);
|
||||||
|
}
|
||||||
|
free(aio_strt_path);
|
||||||
|
free(o_strt_path);
|
||||||
|
|
||||||
|
|
||||||
|
gfx_printf("\n\n Done, press a key to proceed.");
|
||||||
|
hidWait();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void stillNoBootInfo(){
|
||||||
|
gfx_clearscreen();
|
||||||
|
gfx_printf("\n\n-- My switch still does not boot.\n\n");
|
||||||
|
|
||||||
|
gfx_printf("%kDo you have a gamecard inserted?\n", COLOR_WHITE);
|
||||||
|
gfx_printf("Try taking it out and reboot.\n\n");
|
||||||
|
|
||||||
|
gfx_printf("%kDid you recently update Atmosphere/DeepSea?\n", COLOR_WHITE);
|
||||||
|
gfx_printf("Insert your sdcard into a computer, delete 'atmosphere', 'bootloader' & 'sept', download your preffered CFW and put the files back on your switch.\n\n");
|
||||||
|
|
||||||
|
gfx_printf("%kDid you just buy a new SD-card?\n", COLOR_WHITE);
|
||||||
|
gfx_printf("Make sure its not a fake card.\n\n");
|
||||||
|
|
||||||
gfx_printf("\n\n Done, press a key to proceed.");
|
gfx_printf("\n\n Done, press a key to proceed.");
|
||||||
hidWait();
|
hidWait();
|
||||||
}
|
}
|
||||||
@@ -236,13 +320,16 @@ void fixAll(){
|
|||||||
deleteBootFlags();
|
deleteBootFlags();
|
||||||
deleteInstalledThemes();
|
deleteInstalledThemes();
|
||||||
fixClingWrap();
|
fixClingWrap();
|
||||||
|
stillNoBootInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
menuPaths mainMenuPaths[] = {
|
menuPaths mainMenuPaths[] = {
|
||||||
[DeleteBootFlags] = deleteBootFlags,
|
[DeleteBootFlags] = deleteBootFlags,
|
||||||
[DeleteThemes] = deleteInstalledThemes,
|
[DeleteThemes] = deleteInstalledThemes,
|
||||||
[FixClingWrap] = fixClingWrap,
|
[FixClingWrap] = fixClingWrap,
|
||||||
|
[FixAIOUpdaterBoot] = fixAIOUpdate,
|
||||||
[FixAll] = fixAll,
|
[FixAll] = fixAll,
|
||||||
|
[MainViewStillNoBootInfo] = stillNoBootInfo,
|
||||||
// [MainBrowseSd] = HandleSD,
|
// [MainBrowseSd] = HandleSD,
|
||||||
// [MainMountSd] = MountOrUnmountSD,
|
// [MainMountSd] = MountOrUnmountSD,
|
||||||
// [MainBrowseEmmc] = HandleEMMC,
|
// [MainBrowseEmmc] = HandleEMMC,
|
||||||
|
|||||||
Reference in New Issue
Block a user