From 4f2e199a23defe502eb2c103581ae3ac2a532597 Mon Sep 17 00:00:00 2001 From: flb Date: Mon, 12 Apr 2021 18:53:12 +0200 Subject: [PATCH] proper AMS 0.19 support --- Makefile | 2 +- README.md | 2 ++ source/ams_tab.cpp | 20 +++++++++++--------- source/changelog_page.cpp | 2 ++ source/current_cfw.cpp | 2 +- source/main.cpp | 3 +-- source/payload_page.cpp | 2 +- 7 files changed, 19 insertions(+), 14 deletions(-) diff --git a/Makefile b/Makefile index 69895c2..be5b313 100644 --- a/Makefile +++ b/Makefile @@ -22,7 +22,7 @@ DATA := data INCLUDES := include lib/zipper/include /lib/borealis/library/include/borealis/extern/nlohmann APP_TITLE := All-in-One Switch Updater APP_AUTHOR := HamletDuFromage -APP_VERSION := 2.4.5-ams_fix +APP_VERSION := 2.4.6 TARGET := $(notdir $(CURDIR)) ROMFS := resources diff --git a/README.md b/README.md index c133200..430d46c 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,8 @@ $ sudo (dkp-)pacman -S switch-glfw \ ``` Use [`switch-ex-curl`](https://github.com/eXhumer/switch-ex-curl) instead of `switch-curl` to use this app with an invalid SSL certificate. +Compiling requires GLFW to be patched to support the latest Libnx hid API. Until this is merged upstream, use [my fork](https://github.com/HamletDuFromage/glfw) + Clone the repository ```bash $ git clone --recursive https://github.com/HamletDuFromage/aio-switch-updater diff --git a/source/ams_tab.cpp b/source/ams_tab.cpp index b6f49e8..29dce43 100644 --- a/source/ams_tab.cpp +++ b/source/ams_tab.cpp @@ -43,15 +43,17 @@ AmsTab::AmsTab() : stagedFrame->addStage( new WorkerPage(stagedFrame, "menus/common/extracting"_i18n, [](){util::extractArchive(archiveType::ams_cfw);}) ); - stagedFrame->addStage( - new DialoguePage(stagedFrame, text_hekate) - ); - stagedFrame->addStage( - new WorkerPage(stagedFrame, "menus/common/downloading"_i18n, [hekate_url](){util::downloadArchive(hekate_url, archiveType::cfw);}) - ); - stagedFrame->addStage( - new WorkerPage(stagedFrame, "menus/common/extracting"_i18n, [](){util::extractArchive(archiveType::cfw);}) - ); + if(url.find("DeepSea") == std::string::npos) { + stagedFrame->addStage( + new DialoguePage(stagedFrame, text_hekate) + ); + stagedFrame->addStage( + new WorkerPage(stagedFrame, "menus/common/downloading"_i18n, [hekate_url](){util::downloadArchive(hekate_url, archiveType::cfw);}) + ); + stagedFrame->addStage( + new WorkerPage(stagedFrame, "menus/common/extracting"_i18n, [](){util::extractArchive(archiveType::cfw);}) + ); + } stagedFrame->addStage( new ConfirmPage(stagedFrame, "menus/ams_update/reboot_rcm"_i18n, false, true) ); diff --git a/source/changelog_page.cpp b/source/changelog_page.cpp index 8db7dd0..93ec70c 100644 --- a/source/changelog_page.cpp +++ b/source/changelog_page.cpp @@ -133,6 +133,8 @@ ChangelogPage::ChangelogPage() : AppletFrame(true, true) verTitles.push_back("v2.4.5-fix_ams"); changes.push_back("\uE016 Atmosphère 0.19+ support. Note that this version assumes your switch is running Atmosphère. I should fix this soon, but if you're on SXOS, please stay on 2.4.4."); + verTitles.push_back("v2.4.6"); + changes.push_back("\uE016 Added back support for SXOS. \uE016 Removed dialogue asking to update Hekate if downloading DeepSea.\uE016 Fixed incorrect description in inject payload menu."); for(int i = verTitles.size() -1 ; i >= 0; i--){ listItem = new brls::ListItem(verTitles[i]); diff --git a/source/current_cfw.cpp b/source/current_cfw.cpp index e2bdd57..ea1ea4d 100644 --- a/source/current_cfw.cpp +++ b/source/current_cfw.cpp @@ -18,7 +18,7 @@ namespace CurrentCfw { Result smAtmosphereHasService(bool *out, SmServiceName name) { u8 tmp = 0; - Result rc = serviceDispatchInOut(smGetServiceSession(), 65100, name, tmp); + Result rc = tipcDispatchInOut(smGetServiceSessionTipc(), 65100, name, tmp); if (R_SUCCEEDED(rc) && out) *out = tmp; return rc; diff --git a/source/main.cpp b/source/main.cpp index 297a8c8..36ac225 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -14,8 +14,7 @@ using namespace i18n::literals; //TimeServiceType __nx_time_service_type = TimeServiceType_System; -//const CFW CurrentCfw::running_cfw = CurrentCfw::getCFW(); -const CFW CurrentCfw::running_cfw = CFW::ams; +const CFW CurrentCfw::running_cfw = CurrentCfw::getCFW(); int main(int argc, char* argv[]) { diff --git a/source/payload_page.cpp b/source/payload_page.cpp index 18116d9..ff9446e 100644 --- a/source/payload_page.cpp +++ b/source/payload_page.cpp @@ -46,7 +46,7 @@ PayloadPage::PayloadPage() : AppletFrame(true, true) return true; }); } - listItem->registerAction("menus/payloads/set_reboot_payload"_i18n, brls::Key::Y, [this, payload] { + listItem->registerAction("menus/payloads/set_update_bin"_i18n, brls::Key::Y, [this, payload] { std::string res2; if(fs::copyFile(payload.c_str(), UPDATE_BIN_PATH)){ res2 += "menus/payloads/copy_success"_i18n + payload + "menus/payloads/to"_i18n + std::string(UPDATE_BIN_PATH) + "'.";