|
|
|
@ -184,8 +184,8 @@ static void ApplyLayeredFS(VirtualFile& romfs, u64 title_id, ContentRecordType t
|
|
|
|
|
romfs = std::move(packed);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset,
|
|
|
|
|
ContentRecordType type) const {
|
|
|
|
|
VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset, ContentRecordType type,
|
|
|
|
|
VirtualFile update_raw) const {
|
|
|
|
|
LOG_INFO(Loader, "Patching RomFS for title_id={:016X}, type={:02X}", title_id,
|
|
|
|
|
static_cast<u8>(type));
|
|
|
|
|
|
|
|
|
@ -205,6 +205,13 @@ VirtualFile PatchManager::PatchRomFS(VirtualFile romfs, u64 ivfc_offset,
|
|
|
|
|
FormatTitleVersion(installed->GetEntryVersion(update_tid).get_value_or(0)));
|
|
|
|
|
romfs = new_nca->GetRomFS();
|
|
|
|
|
}
|
|
|
|
|
} else if (update_raw != nullptr) {
|
|
|
|
|
const auto new_nca = std::make_shared<NCA>(update, romfs, ivfc_offset);
|
|
|
|
|
if (new_nca->GetStatus() == Loader::ResultStatus::Success &&
|
|
|
|
|
new_nca->GetRomFS() != nullptr) {
|
|
|
|
|
LOG_INFO(Loader, " RomFS: Update (XCI) applied successfully");
|
|
|
|
|
romfs = new_nca->GetRomFS();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// LayeredFS
|
|
|
|
@ -224,7 +231,7 @@ static bool IsDirValidAndNonEmpty(const VirtualDir& dir) {
|
|
|
|
|
return dir != nullptr && (!dir->GetFiles().empty() || !dir->GetSubdirectories().empty());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::map<std::string, std::string, std::less<>> PatchManager::GetPatchVersionNames() const {
|
|
|
|
|
std::map<PatchType, std::string> PatchManager::GetPatchVersionNames(VirtualFile update_raw) const {
|
|
|
|
|
std::map<std::string, std::string, std::less<>> out;
|
|
|
|
|
const auto installed = Service::FileSystem::GetUnionContents();
|
|
|
|
|
|
|
|
|
@ -245,6 +252,8 @@ std::map<std::string, std::string, std::less<>> PatchManager::GetPatchVersionNam
|
|
|
|
|
"Update",
|
|
|
|
|
FormatTitleVersion(meta_ver.get(), TitleVersionFormat::ThreeElements));
|
|
|
|
|
}
|
|
|
|
|
} else if (update_raw != nullptr) {
|
|
|
|
|
out[PatchType::Update] = "XCI";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|