diff options
Diffstat (limited to 'src/citron')
-rw-r--r-- | src/citron/main.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/citron/main.cpp b/src/citron/main.cpp index cb6cedd19..d4ff764a8 100644 --- a/src/citron/main.cpp +++ b/src/citron/main.cpp @@ -4787,19 +4787,24 @@ void GMainWindow::OnCheckFirmwareDecryption() { } bool GMainWindow::CheckFirmwarePresence() { - constexpr u64 MiiEditId = static_cast<u64>(Service::AM::AppletProgramId::MiiEdit); + constexpr u64 MiiEditId = 0x0100000000001009; // Mii Edit applet ID + constexpr u64 QLaunchId = 0x0100000000001000; // Home Menu applet ID auto bis_system = system->GetFileSystemController().GetSystemNANDContents(); if (!bis_system) { return false; } + // Check for essential system applets auto mii_applet_nca = bis_system->GetEntry(MiiEditId, FileSys::ContentRecordType::Program); - if (!mii_applet_nca) { + auto qlaunch_nca = bis_system->GetEntry(QLaunchId, FileSys::ContentRecordType::Program); + + if (!mii_applet_nca || !qlaunch_nca) { return false; } - return true; + // Also check for essential keys + return Core::Crypto::KeyManager::Instance().IsFirmwareAvailable(); } void GMainWindow::SetFirmwareVersion() { |