Skip to content
Snippets Groups Projects
Commit 77f9ecd3 authored by Zach Hilman's avatar Zach Hilman
Browse files

card_image: Add functions to query gamecard update partition

Includes version and meta title ID, used by fsp-srv/IDeviceOperator
parent e018a484
No related branches found
No related tags found
No related merge requests found
...@@ -175,6 +175,26 @@ VirtualDir XCI::GetParentDirectory() const { ...@@ -175,6 +175,26 @@ VirtualDir XCI::GetParentDirectory() const {
return file->GetContainingDirectory(); return file->GetContainingDirectory();
} }
VirtualDir XCI::ConcatenatedPseudoDirectory() {
const auto out = std::make_shared<VectorVfsDirectory>();
for (const auto& part_id : {XCIPartition::Normal, XCIPartition::Logo, XCIPartition::Secure}) {
const auto& part = GetPartition(part_id);
if (part == nullptr)
continue;
for (const auto& file : part->GetFiles())
out->AddFile(file);
}
return out;
}
std::array<u8, 0x200> XCI::GetCertificate() const {
std::array<u8, 0x200> out;
file->Read(out.data(), out.size(), GAMECARD_CERTIFICATE_OFFSET);
return out;
}
Loader::ResultStatus XCI::AddNCAFromPartition(XCIPartition part) { Loader::ResultStatus XCI::AddNCAFromPartition(XCIPartition part) {
const auto partition_index = static_cast<std::size_t>(part); const auto partition_index = static_cast<std::size_t>(part);
const auto& partition = partitions[partition_index]; const auto& partition = partitions[partition_index];
......
...@@ -91,6 +91,8 @@ public: ...@@ -91,6 +91,8 @@ public:
VirtualDir GetLogoPartition() const; VirtualDir GetLogoPartition() const;
u64 GetProgramTitleID() const; u64 GetProgramTitleID() const;
u32 GetSystemUpdateVersion();
u64 GetSystemUpdateTitleID() const;
bool HasProgramNCA() const; bool HasProgramNCA() const;
VirtualFile GetProgramNCAFile() const; VirtualFile GetProgramNCAFile() const;
...@@ -120,6 +122,8 @@ private: ...@@ -120,6 +122,8 @@ private:
std::shared_ptr<NCA> program; std::shared_ptr<NCA> program;
std::vector<std::shared_ptr<NCA>> ncas; std::vector<std::shared_ptr<NCA>> ncas;
u64 update_normal_partition_end;
Core::Crypto::KeyManager keys; Core::Crypto::KeyManager keys;
}; };
} // namespace FileSys } // namespace FileSys
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment