diff --git a/opencore_legacy_patcher/constants.py b/opencore_legacy_patcher/constants.py index ec23afa60..1351bbdf9 100644 --- a/opencore_legacy_patcher/constants.py +++ b/opencore_legacy_patcher/constants.py @@ -806,6 +806,10 @@ class Constants: def icon_path_macos_sequoia(self): return self.icns_resource_path / Path("Sequoia.icns") + @property + def icon_path_macos_tahoe(self): + return self.icns_resource_path / Path("Tahoe.icns") + @property def gui_path(self): return self.payload_path / Path("Icon/Resources.zip") @@ -840,6 +844,7 @@ class Constants: str(self.icon_path_macos_ventura), str(self.icon_path_macos_sonoma), str(self.icon_path_macos_sequoia), + str(self.icon_path_macos_tahoe), ] sbm_values = [ diff --git a/opencore_legacy_patcher/sucatalog/products.py b/opencore_legacy_patcher/sucatalog/products.py index 4e6d18630..e4b2d3acf 100644 --- a/opencore_legacy_patcher/sucatalog/products.py +++ b/opencore_legacy_patcher/sucatalog/products.py @@ -249,6 +249,17 @@ class CatalogProducts: if installer in products_copy: products_copy.pop(products_copy.index(installer)) + # Remove duplicates of the same version (i.e. multiple betas still in catalog), keep only latest + version_map = {} + for installer in products_copy: + version = installer.get("Version") + post_date = installer.get("PostDate") + if version is None: + continue + if version not in version_map or post_date > version_map[version].get("PostDate", ""): + version_map[version] = installer + + products_copy = list(version_map.values()) # Remove EOL versions (older than n-3) for installer in products: diff --git a/payloads/Icon/AppIcons/Tahoe.icns b/payloads/Icon/AppIcons/Tahoe.icns new file mode 100644 index 000000000..ecf27b900 Binary files /dev/null and b/payloads/Icon/AppIcons/Tahoe.icns differ