Browse Source
Merge pull request #1510 from lioncash/xci
XCI: Add function for checking the existence of the program NCA
pull/15/merge
bunnei
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
8 additions and
7 deletions
-
src/core/file_sys/card_image.cpp
-
src/core/file_sys/card_image.h
-
src/core/loader/xci.cpp
|
|
|
@ -122,14 +122,16 @@ u64 XCI::GetProgramTitleID() const { |
|
|
|
return secure_partition->GetProgramTitleID(); |
|
|
|
} |
|
|
|
|
|
|
|
std::shared_ptr<NCA> XCI::GetProgramNCA() const { |
|
|
|
return program; |
|
|
|
bool XCI::HasProgramNCA() const { |
|
|
|
return program != nullptr; |
|
|
|
} |
|
|
|
|
|
|
|
VirtualFile XCI::GetProgramNCAFile() const { |
|
|
|
if (GetProgramNCA() == nullptr) |
|
|
|
if (!HasProgramNCA()) { |
|
|
|
return nullptr; |
|
|
|
return GetProgramNCA()->GetBaseFile(); |
|
|
|
} |
|
|
|
|
|
|
|
return program->GetBaseFile(); |
|
|
|
} |
|
|
|
|
|
|
|
const std::vector<std::shared_ptr<NCA>>& XCI::GetNCAs() const { |
|
|
|
|
|
|
|
@ -80,7 +80,7 @@ public: |
|
|
|
|
|
|
|
u64 GetProgramTitleID() const; |
|
|
|
|
|
|
|
std::shared_ptr<NCA> GetProgramNCA() const; |
|
|
|
bool HasProgramNCA() const; |
|
|
|
VirtualFile GetProgramNCAFile() const; |
|
|
|
const std::vector<std::shared_ptr<NCA>>& GetNCAs() const; |
|
|
|
std::shared_ptr<NCA> GetNCAByType(NCAContentType type) const; |
|
|
|
|
|
|
|
@ -59,8 +59,7 @@ ResultStatus AppLoader_XCI::Load(Kernel::Process& process) { |
|
|
|
if (xci->GetProgramNCAStatus() != ResultStatus::Success) |
|
|
|
return xci->GetProgramNCAStatus(); |
|
|
|
|
|
|
|
const auto nca = xci->GetProgramNCA(); |
|
|
|
if (nca == nullptr && !Core::Crypto::KeyManager::KeyFileExists(false)) |
|
|
|
if (!xci->HasProgramNCA() && !Core::Crypto::KeyManager::KeyFileExists(false)) |
|
|
|
return ResultStatus::ErrorMissingProductionKeyFile; |
|
|
|
|
|
|
|
const auto result = nca_loader->Load(process); |
|
|
|
|