mirror of
https://github.com/ninxsoft/Mist.git
synced 2025-05-25 04:24:49 -04:00
793 lines
30 KiB
Swift
793 lines
30 KiB
Swift
//
|
|
// Installer.swift
|
|
// Mist
|
|
//
|
|
// Created by Nindi Gill on 13/6/2022.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
// swiftlint:disable file_length
|
|
// swiftlint:disable:next type_body_length
|
|
struct Installer: Decodable, Hashable, Identifiable {
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case id = "Identifier"
|
|
case version = "Version"
|
|
case build = "Build"
|
|
case date = "PostDate"
|
|
case distributionURL = "DistributionURL"
|
|
case distributionSize = "DistributionSize"
|
|
case packages = "Packages"
|
|
case boardIDs = "BoardIDs"
|
|
case deviceIDs = "DeviceIDs"
|
|
case unsupportedModelIdentifiers = "UnsupportedModelIdentifiers"
|
|
}
|
|
|
|
static var example: Installer {
|
|
Installer(
|
|
id: "012-92138",
|
|
version: "13.0",
|
|
build: "22A380",
|
|
date: "2022-10-25",
|
|
distributionURL: "https://swdist.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/012-92138.English.dist",
|
|
distributionSize: 7_467,
|
|
packages: [
|
|
Package(
|
|
url: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/MajorOSInfo.pkg",
|
|
size: 1_334_737,
|
|
integrityDataURL: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/MajorOSInfo.pkg.integrityDataV1",
|
|
integrityDataSize: 104
|
|
),
|
|
Package(
|
|
url: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/InstallAssistant.pkg",
|
|
size: 12_151_608_300,
|
|
integrityDataURL: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/InstallAssistant.pkg.integrityDataV1",
|
|
integrityDataSize: 41_792
|
|
),
|
|
Package(
|
|
url: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/BuildManifest.plist",
|
|
size: 3_355_762,
|
|
integrityDataURL: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/BuildManifest.plist.integrityDataV1",
|
|
integrityDataSize: 104
|
|
),
|
|
Package(
|
|
url: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/InstallInfo.plist",
|
|
size: 181,
|
|
integrityDataURL: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/InstallInfo.plist.integrityDataV1",
|
|
integrityDataSize: 104
|
|
),
|
|
Package(
|
|
url: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/UpdateBrain.zip",
|
|
size: 3_450_528,
|
|
integrityDataURL: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/UpdateBrain.zip.integrityDataV1",
|
|
integrityDataSize: 104
|
|
),
|
|
Package(
|
|
url: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/Info.plist",
|
|
size: 5_042,
|
|
integrityDataURL: "https://swcdn.apple.com/content/downloads/25/16/012-92138-A_KGGGN26YQB/d0kr042ixfvkboeft8qt2i3aclr5bx1e6p/Info.plist.integrityDataV1",
|
|
integrityDataSize: 104
|
|
)
|
|
],
|
|
boardIDs: [
|
|
"Mac-0CFF9C7C2B63DF8D",
|
|
"Mac-112818653D3AABFC",
|
|
"Mac-1E7E29AD0135F9BC",
|
|
"Mac-226CB3C6A851A671",
|
|
"Mac-27AD2F918AE68F61",
|
|
"Mac-4B682C642B45593E",
|
|
"Mac-53FDB3D8DB8CA971",
|
|
"Mac-551B86E5744E2388",
|
|
"Mac-5F9802EFE386AA28",
|
|
"Mac-63001698E7A34814",
|
|
"Mac-77F17D7DA9285301",
|
|
"Mac-7BA5B2D9E42DDD94",
|
|
"Mac-7BA5B2DFE22DDD8C",
|
|
"Mac-827FAC58A8FDFA22",
|
|
"Mac-827FB448E656EC26",
|
|
"Mac-937A206F2EE63C01",
|
|
"Mac-A61BADE1FDAD7B05",
|
|
"Mac-AA95B1DDAB278B95",
|
|
"Mac-AF89B6D9451A490B",
|
|
"Mac-B4831CEBD52A0C4C",
|
|
"Mac-BE088AF8C5EB4FA2",
|
|
"Mac-CAD6701F7CEA0921",
|
|
"Mac-CFF7D910A743CAAF",
|
|
"Mac-E1008331FDC96864",
|
|
"Mac-E7203C0F68AA0004",
|
|
"Mac-EE2EBD4B90B839A8"
|
|
],
|
|
deviceIDs: [
|
|
"J132AP",
|
|
"J137AP",
|
|
"J140AAP",
|
|
"J140KAP",
|
|
"J152FAP",
|
|
"J160AP",
|
|
"J174AP",
|
|
"J185AP",
|
|
"J185FAP",
|
|
"J213AP",
|
|
"J214AP",
|
|
"J214KAP",
|
|
"J215AP",
|
|
"J223AP",
|
|
"J230AP",
|
|
"J230KAP",
|
|
"J274AP",
|
|
"J293AP",
|
|
"J313AP",
|
|
"J314CAP",
|
|
"J314SAP",
|
|
"J316CAP",
|
|
"J316SAP",
|
|
"J375CAP",
|
|
"J375DAP",
|
|
"J413AP",
|
|
"J456AP",
|
|
"J457AP",
|
|
"J493AP",
|
|
"J680AP",
|
|
"J780AP",
|
|
"VMA2MACOSAP",
|
|
"VMM-X86_64",
|
|
"X589AMLUAP",
|
|
"X86LEGACYAP"
|
|
],
|
|
unsupportedModelIdentifiers: []
|
|
)
|
|
}
|
|
|
|
static var legacyInstallers: [Installer] {
|
|
[
|
|
Installer(
|
|
id: "10.12.6-16G29",
|
|
version: "10.12.6",
|
|
build: "16G29",
|
|
date: "2017-07-15",
|
|
distributionURL: "",
|
|
distributionSize: 0,
|
|
packages: [
|
|
Package(
|
|
url: "http://updates-http.cdn-apple.com/2019/cert/061-39476-20191023-48f365f4-0015-4c41-9f44-39d3d2aca067/InstallOS.dmg",
|
|
size: 5_007_882_126,
|
|
integrityDataURL: nil,
|
|
integrityDataSize: nil
|
|
)
|
|
],
|
|
boardIDs: [
|
|
"Mac-00BE6ED71E35EB86",
|
|
"Mac-031AEE4D24BFF0B1",
|
|
"Mac-031B6874CF7F642A",
|
|
"Mac-06F11F11946D27C5",
|
|
"Mac-06F11FD93F0323C5",
|
|
"Mac-189A3D4F975D5FFC",
|
|
"Mac-27ADBB7B4CEE8E61",
|
|
"Mac-2BD1B31983FE1663",
|
|
"Mac-2E6FAB96566FE58C",
|
|
"Mac-35C1E88140C3E6CF",
|
|
"Mac-35C5E08120C7EEAF",
|
|
"Mac-3CBD00234E554E41",
|
|
"Mac-42FD25EABCABB274",
|
|
"Mac-473D31EABEB93F9B",
|
|
"Mac-4B682C642B45593E",
|
|
"Mac-4B7AC7E43945597E",
|
|
"Mac-4BC72D62AD45599E",
|
|
"Mac-50619A408DB004DA",
|
|
"Mac-551B86E5744E2388",
|
|
"Mac-65CE76090165799A",
|
|
"Mac-66E35819EE2D0D05",
|
|
"Mac-66F35F19FE2A0D05",
|
|
"Mac-6F01561E16C75D06",
|
|
"Mac-742912EFDBEE19B3",
|
|
"Mac-77EB7D7DAF985301",
|
|
"Mac-77F17D7DA9285301",
|
|
"Mac-7BA5B2794B2CDB12",
|
|
"Mac-7DF21CB3ED6977E5",
|
|
"Mac-7DF2A3B5E5D671ED",
|
|
"Mac-81E3E92DD6088272",
|
|
"Mac-8ED6AF5B48C039E1",
|
|
"Mac-937CB26E2E02BB01",
|
|
"Mac-942452F5819B1C1B",
|
|
"Mac-942459F5819B171B",
|
|
"Mac-94245A3940C91C80",
|
|
"Mac-94245B3640C91C81",
|
|
"Mac-942B59F58194171B",
|
|
"Mac-942B5BF58194151B",
|
|
"Mac-942C5DF58193131B",
|
|
"Mac-9AE82516C7C6B903",
|
|
"Mac-9F18E312C5C2BF0B",
|
|
"Mac-A369DDC4E67F1C45",
|
|
"Mac-A5C67F76ED83108C",
|
|
"Mac-AFD8A9D944EA4843",
|
|
"Mac-B4831CEBD52A0C4C",
|
|
"Mac-B809C3757DA9BB8D",
|
|
"Mac-BE088AF8C5EB4FA2",
|
|
"Mac-BE0E8AC46FE800CC",
|
|
"Mac-C08A6BB70A942AC2",
|
|
"Mac-C3EC7CD22292981F",
|
|
"Mac-CAD6701F7CEA0921",
|
|
"Mac-DB15BD556843C820",
|
|
"Mac-E43C1C25D4880AD6",
|
|
"Mac-EE2EBD4B90B839A8",
|
|
"Mac-F305150B0C7DEEEF",
|
|
"Mac-F60DEB81FF30ACF6",
|
|
"Mac-F65AE981FFA204ED",
|
|
"Mac-FA842E06C61E91C5",
|
|
"Mac-FC02E91DDD3FA6A4",
|
|
"Mac-FFE5EF870D7BA81A",
|
|
"Mac-F2208EC8",
|
|
"Mac-F221BEC8",
|
|
"Mac-F221DCC8",
|
|
"Mac-F222BEC8",
|
|
"Mac-F2238AC8",
|
|
"Mac-F2238BAE",
|
|
"Mac-F22586C8",
|
|
"Mac-F22589C8",
|
|
"Mac-F2268CC8",
|
|
"Mac-F2268DAE",
|
|
"Mac-F2268DC8",
|
|
"Mac-F22C89C8",
|
|
"Mac-F22C8AC8"
|
|
],
|
|
deviceIDs: [],
|
|
unsupportedModelIdentifiers: []
|
|
),
|
|
Installer(
|
|
id: "10.11.6-15G31",
|
|
version: "10.11.6",
|
|
build: "15G31",
|
|
date: "2016-05-18",
|
|
distributionURL: "",
|
|
distributionSize: 0,
|
|
packages: [
|
|
Package(
|
|
url: "http://updates-http.cdn-apple.com/2019/cert/061-41424-20191024-218af9ec-cf50-4516-9011-228c78eda3d2/InstallMacOSX.dmg",
|
|
size: 6_204_629_298,
|
|
integrityDataURL: nil,
|
|
integrityDataSize: nil
|
|
)
|
|
],
|
|
boardIDs: [
|
|
"Mac-00BE6ED71E35EB86",
|
|
"Mac-031AEE4D24BFF0B1",
|
|
"Mac-031B6874CF7F642A",
|
|
"Mac-06F11F11946D27C5",
|
|
"Mac-06F11FD93F0323C5",
|
|
"Mac-189A3D4F975D5FFC",
|
|
"Mac-27ADBB7B4CEE8E61",
|
|
"Mac-2BD1B31983FE1663",
|
|
"Mac-2E6FAB96566FE58C",
|
|
"Mac-35C1E88140C3E6CF",
|
|
"Mac-35C5E08120C7EEAF",
|
|
"Mac-3CBD00234E554E41",
|
|
"Mac-42FD25EABCABB274",
|
|
"Mac-4B7AC7E43945597E",
|
|
"Mac-4BC72D62AD45599E",
|
|
"Mac-50619A408DB004DA",
|
|
"Mac-65CE76090165799A",
|
|
"Mac-66F35F19FE2A0D05",
|
|
"Mac-6F01561E16C75D06",
|
|
"Mac-742912EFDBEE19B3",
|
|
"Mac-77EB7D7DAF985301",
|
|
"Mac-7BA5B2794B2CDB12",
|
|
"Mac-7DF21CB3ED6977E5",
|
|
"Mac-7DF2A3B5E5D671ED",
|
|
"Mac-81E3E92DD6088272",
|
|
"Mac-8ED6AF5B48C039E1",
|
|
"Mac-937CB26E2E02BB01",
|
|
"Mac-942452F5819B1C1B",
|
|
"Mac-942459F5819B171B",
|
|
"Mac-94245A3940C91C80",
|
|
"Mac-94245B3640C91C81",
|
|
"Mac-942B59F58194171B",
|
|
"Mac-942B5BF58194151B",
|
|
"Mac-942C5DF58193131B",
|
|
"Mac-9AE82516C7C6B903",
|
|
"Mac-9F18E312C5C2BF0B",
|
|
"Mac-A369DDC4E67F1C45",
|
|
"Mac-AFD8A9D944EA4843",
|
|
"Mac-B809C3757DA9BB8D",
|
|
"Mac-BE0E8AC46FE800CC",
|
|
"Mac-C08A6BB70A942AC2",
|
|
"Mac-C3EC7CD22292981F",
|
|
"Mac-DB15BD556843C820",
|
|
"Mac-E43C1C25D4880AD6",
|
|
"Mac-F305150B0C7DEEEF",
|
|
"Mac-F60DEB81FF30ACF6",
|
|
"Mac-F65AE981FFA204ED",
|
|
"Mac-FA842E06C61E91C5",
|
|
"Mac-FC02E91DDD3FA6A4",
|
|
"Mac-FFE5EF870D7BA81A",
|
|
"Mac-F2208EC8",
|
|
"Mac-F2218EA9",
|
|
"Mac-F2218EC8",
|
|
"Mac-F2218FA9",
|
|
"Mac-F2218FC8",
|
|
"Mac-F221BEC8",
|
|
"Mac-F221DCC8",
|
|
"Mac-F222BEC8",
|
|
"Mac-F2238AC8",
|
|
"Mac-F2238BAE",
|
|
"Mac-F223BEC8",
|
|
"Mac-F22586C8",
|
|
"Mac-F22587A1",
|
|
"Mac-F22587C8",
|
|
"Mac-F22589C8",
|
|
"Mac-F2268AC8",
|
|
"Mac-F2268CC8",
|
|
"Mac-F2268DAE",
|
|
"Mac-F2268DC8",
|
|
"Mac-F2268EC8",
|
|
"Mac-F226BEC8",
|
|
"Mac-F22788AA",
|
|
"Mac-F227BEC8",
|
|
"Mac-F22C86C8",
|
|
"Mac-F22C89C8",
|
|
"Mac-F22C8AC8",
|
|
"Mac-F42386C8",
|
|
"Mac-F42388C8",
|
|
"Mac-F4238BC8",
|
|
"Mac-F4238CC8",
|
|
"Mac-F42C86C8",
|
|
"Mac-F42C88C8",
|
|
"Mac-F42C89C8",
|
|
"Mac-F42D86A9",
|
|
"Mac-F42D86C8",
|
|
"Mac-F42D88C8",
|
|
"Mac-F42D89A9",
|
|
"Mac-F42D89C8"
|
|
],
|
|
deviceIDs: [],
|
|
unsupportedModelIdentifiers: []
|
|
),
|
|
Installer(
|
|
id: "10.10.5-14F27",
|
|
version: "10.10.5",
|
|
build: "14F27",
|
|
date: "2015-08-05",
|
|
distributionURL: "",
|
|
distributionSize: 0,
|
|
packages: [
|
|
Package(
|
|
url: "http://updates-http.cdn-apple.com/2019/cert/061-41343-20191023-02465f92-3ab5-4c92-bfe2-b725447a070d/InstallMacOSX.dmg",
|
|
size: 5_718_074_248,
|
|
integrityDataURL: nil,
|
|
integrityDataSize: nil
|
|
)
|
|
],
|
|
boardIDs: [
|
|
"Mac-00BE6ED71E35EB86",
|
|
"Mac-031AEE4D24BFF0B1",
|
|
"Mac-031B6874CF7F642A",
|
|
"Mac-06F11F11946D27C5",
|
|
"Mac-06F11FD93F0323C5",
|
|
"Mac-189A3D4F975D5FFC",
|
|
"Mac-27ADBB7B4CEE8E61",
|
|
"Mac-2BD1B31983FE1663",
|
|
"Mac-2E6FAB96566FE58C",
|
|
"Mac-35C1E88140C3E6CF",
|
|
"Mac-35C5E08120C7EEAF",
|
|
"Mac-3CBD00234E554E41",
|
|
"Mac-42FD25EABCABB274",
|
|
"Mac-4B7AC7E43945597E",
|
|
"Mac-4BC72D62AD45599E",
|
|
"Mac-50619A408DB004DA",
|
|
"Mac-66F35F19FE2A0D05",
|
|
"Mac-6F01561E16C75D06",
|
|
"Mac-742912EFDBEE19B3",
|
|
"Mac-77EB7D7DAF985301",
|
|
"Mac-7BA5B2794B2CDB12",
|
|
"Mac-7DF21CB3ED6977E5",
|
|
"Mac-7DF2A3B5E5D671ED",
|
|
"Mac-81E3E92DD6088272",
|
|
"Mac-8ED6AF5B48C039E1",
|
|
"Mac-937CB26E2E02BB01",
|
|
"Mac-942452F5819B1C1B",
|
|
"Mac-942459F5819B171B",
|
|
"Mac-94245A3940C91C80",
|
|
"Mac-94245B3640C91C81",
|
|
"Mac-942B59F58194171B",
|
|
"Mac-942B5BF58194151B",
|
|
"Mac-942C5DF58193131B",
|
|
"Mac-9F18E312C5C2BF0B",
|
|
"Mac-AFD8A9D944EA4843",
|
|
"Mac-BE0E8AC46FE800CC",
|
|
"Mac-C08A6BB70A942AC2",
|
|
"Mac-C3EC7CD22292981F",
|
|
"Mac-E43C1C25D4880AD6",
|
|
"Mac-F305150B0C7DEEEF",
|
|
"Mac-F60DEB81FF30ACF6",
|
|
"Mac-F65AE981FFA204ED",
|
|
"Mac-FA842E06C61E91C5",
|
|
"Mac-FC02E91DDD3FA6A4",
|
|
"Mac-F2208EC8",
|
|
"Mac-F2218EA9",
|
|
"Mac-F2218EC8",
|
|
"Mac-F2218FA9",
|
|
"Mac-F2218FC8",
|
|
"Mac-F221BEC8",
|
|
"Mac-F221DCC8",
|
|
"Mac-F222BEC8",
|
|
"Mac-F2238AC8",
|
|
"Mac-F2238BAE",
|
|
"Mac-F223BEC8",
|
|
"Mac-F22586C8",
|
|
"Mac-F22587A1",
|
|
"Mac-F22587C8",
|
|
"Mac-F22589C8",
|
|
"Mac-F2268AC8",
|
|
"Mac-F2268CC8",
|
|
"Mac-F2268DAE",
|
|
"Mac-F2268DC8",
|
|
"Mac-F2268EC8",
|
|
"Mac-F226BEC8",
|
|
"Mac-F22788AA",
|
|
"Mac-F227BEC8",
|
|
"Mac-F22C86C8",
|
|
"Mac-F22C89C8",
|
|
"Mac-F22C8AC8",
|
|
"Mac-F42386C8",
|
|
"Mac-F42388C8",
|
|
"Mac-F4238BC8",
|
|
"Mac-F4238CC8",
|
|
"Mac-F42C86C8",
|
|
"Mac-F42C88C8",
|
|
"Mac-F42C89C8",
|
|
"Mac-F42D86A9",
|
|
"Mac-F42D86C8",
|
|
"Mac-F42D88C8",
|
|
"Mac-F42D89A9",
|
|
"Mac-F42D89C8"
|
|
],
|
|
deviceIDs: [],
|
|
unsupportedModelIdentifiers: []
|
|
),
|
|
Installer(
|
|
id: "10.8.5-12F45",
|
|
version: "10.8.5",
|
|
build: "12F45",
|
|
date: "2013-09-27",
|
|
distributionURL: "",
|
|
distributionSize: 0,
|
|
packages: [
|
|
Package(
|
|
url: "https://updates.cdn-apple.com/2021/macos/031-0627-20210614-90D11F33-1A65-42DD-BBEA-E1D9F43A6B3F/InstallMacOSX.dmg",
|
|
size: 4_449_317_520,
|
|
integrityDataURL: nil,
|
|
integrityDataSize: nil
|
|
)
|
|
],
|
|
boardIDs: [
|
|
"Mac-00BE6ED71E35EB86",
|
|
"Mac-031AEE4D24BFF0B1",
|
|
"Mac-031B6874CF7F642A",
|
|
"Mac-27ADBB7B4CEE8E61",
|
|
"Mac-2E6FAB96566FE58C",
|
|
"Mac-35C1E88140C3E6CF",
|
|
"Mac-4B7AC7E43945597E",
|
|
"Mac-4BC72D62AD45599E",
|
|
"Mac-50619A408DB004DA",
|
|
"Mac-66F35F19FE2A0D05",
|
|
"Mac-6F01561E16C75D06",
|
|
"Mac-742912EFDBEE19B3",
|
|
"Mac-7BA5B2794B2CDB12",
|
|
"Mac-7DF21CB3ED6977E5",
|
|
"Mac-7DF2A3B5E5D671ED",
|
|
"Mac-8ED6AF5B48C039E1",
|
|
"Mac-942452F5819B1C1B",
|
|
"Mac-942459F5819B171B",
|
|
"Mac-94245A3940C91C80",
|
|
"Mac-94245B3640C91C81",
|
|
"Mac-942B59F58194171B",
|
|
"Mac-942B5BF58194151B",
|
|
"Mac-942C5DF58193131B",
|
|
"Mac-AFD8A9D944EA4843",
|
|
"Mac-C08A6BB70A942AC2",
|
|
"Mac-C3EC7CD22292981F",
|
|
"Mac-F65AE981FFA204ED",
|
|
"Mac-FC02E91DDD3FA6A4",
|
|
"Mac-F2208EC8",
|
|
"Mac-F2218EA9",
|
|
"Mac-F2218EC8",
|
|
"Mac-F2218FA9",
|
|
"Mac-F2218FC8",
|
|
"Mac-F221BEC8",
|
|
"Mac-F221DCC8",
|
|
"Mac-F222BEC8",
|
|
"Mac-F2238AC8",
|
|
"Mac-F2238BAE",
|
|
"Mac-F223BEC8",
|
|
"Mac-F22586C8",
|
|
"Mac-F22587A1",
|
|
"Mac-F22587C8",
|
|
"Mac-F22589C8",
|
|
"Mac-F2268AC8",
|
|
"Mac-F2268CC8",
|
|
"Mac-F2268DAE",
|
|
"Mac-F2268DC8",
|
|
"Mac-F2268EC8",
|
|
"Mac-F226BEC8",
|
|
"Mac-F22788AA",
|
|
"Mac-F227BEC8",
|
|
"Mac-F22C86C8",
|
|
"Mac-F22C89C8",
|
|
"Mac-F22C8AC8",
|
|
"Mac-F42386C8",
|
|
"Mac-F42388C8",
|
|
"Mac-F4238BC8",
|
|
"Mac-F4238CC8",
|
|
"Mac-F42C86C8",
|
|
"Mac-F42C88C8",
|
|
"Mac-F42C89C8",
|
|
"Mac-F42D86A9",
|
|
"Mac-F42D86C8",
|
|
"Mac-F42D88C8",
|
|
"Mac-F42D89A9",
|
|
"Mac-F42D89C8"
|
|
],
|
|
deviceIDs: [],
|
|
unsupportedModelIdentifiers: []
|
|
),
|
|
Installer(
|
|
id: "10.7.5-11G63",
|
|
version: "10.7.5",
|
|
build: "11G63",
|
|
date: "2012-09-28",
|
|
distributionURL: "",
|
|
distributionSize: 0,
|
|
packages: [
|
|
Package(
|
|
url: "https://updates.cdn-apple.com/2021/macos/041-7683-20210614-E610947E-C7CE-46EB-8860-D26D71F0D3EA/InstallMacOSX.dmg",
|
|
size: 4_720_237_409,
|
|
integrityDataURL: nil,
|
|
integrityDataSize: nil
|
|
)
|
|
],
|
|
boardIDs: [
|
|
"Mac-2E6FAB96566FE58C",
|
|
"Mac-4B7AC7E43945597E",
|
|
"Mac-4BC72D62AD45599E",
|
|
"Mac-66F35F19FE2A0D05",
|
|
"Mac-6F01561E16C75D06",
|
|
"Mac-742912EFDBEE19B3",
|
|
"Mac-7BA5B2794B2CDB12",
|
|
"Mac-8ED6AF5B48C039E1",
|
|
"Mac-942452F5819B1C1B",
|
|
"Mac-942459F5819B171B",
|
|
"Mac-94245A3940C91C80",
|
|
"Mac-94245B3640C91C81",
|
|
"Mac-942B59F58194171B",
|
|
"Mac-942B5BF58194151B",
|
|
"Mac-942C5DF58193131B",
|
|
"Mac-C08A6BB70A942AC2",
|
|
"Mac-C3EC7CD22292981F",
|
|
"Mac-F2208EC8",
|
|
"Mac-F2218EA9",
|
|
"Mac-F2218EC8",
|
|
"Mac-F2218FA9",
|
|
"Mac-F2218FC8",
|
|
"Mac-F221BEC8",
|
|
"Mac-F221DCC8",
|
|
"Mac-F222BEC8",
|
|
"Mac-F2238AC8",
|
|
"Mac-F2238BAE",
|
|
"Mac-F223BEC8",
|
|
"Mac-F22586C8",
|
|
"Mac-F22587A1",
|
|
"Mac-F22587C8",
|
|
"Mac-F22589C8",
|
|
"Mac-F2268AC8",
|
|
"Mac-F2268CC8",
|
|
"Mac-F2268DAE",
|
|
"Mac-F2268DC8",
|
|
"Mac-F2268EC8",
|
|
"Mac-F226BEC8",
|
|
"Mac-F22788A9",
|
|
"Mac-F22788AA",
|
|
"Mac-F22788C8",
|
|
"Mac-F227BEC8",
|
|
"Mac-F22C86C8",
|
|
"Mac-F22C89C8",
|
|
"Mac-F22C8AC8",
|
|
"Mac-F4208AC8",
|
|
"Mac-F4208CA9",
|
|
"Mac-F4208CAA",
|
|
"Mac-F4208DA9",
|
|
"Mac-F4208DC8",
|
|
"Mac-F4208EAA",
|
|
"Mac-F42187C8",
|
|
"Mac-F42189C8",
|
|
"Mac-F4218EC8",
|
|
"Mac-F4218FC8",
|
|
"Mac-F42289C8",
|
|
"Mac-F4228EC8",
|
|
"Mac-F42386C8",
|
|
"Mac-F42388C8",
|
|
"Mac-F4238BC8",
|
|
"Mac-F4238CC8",
|
|
"Mac-F42786A9",
|
|
"Mac-F42C86C8",
|
|
"Mac-F42C88C8",
|
|
"Mac-F42C89C8",
|
|
"Mac-F42C8CC8",
|
|
"Mac-F42D86A9",
|
|
"Mac-F42D86C8",
|
|
"Mac-F42D88C8",
|
|
"Mac-F42D89A9",
|
|
"Mac-F42D89C8"
|
|
],
|
|
deviceIDs: [],
|
|
unsupportedModelIdentifiers: []
|
|
)
|
|
]
|
|
}
|
|
|
|
static var filenameDescription: String {
|
|
"""
|
|
Use the following variables to set the filename dynamically. For example:
|
|
- **%NAME%** will be replaced with **'\(Installer.example.name)'**
|
|
- **%VERSION%** will be replaced with **'\(Installer.example.version)'**
|
|
- **%BUILD%** will be replaced with **'\(Installer.example.build)'**
|
|
"""
|
|
}
|
|
|
|
static var packageDescription: String {
|
|
"""
|
|
Use the following variables to set the identifier dynamically. For example:
|
|
- **%NAME%** will be replaced with **'\(Installer.example.name)'**
|
|
- **%VERSION%** will be replaced with **'\(Installer.example.version)'**
|
|
- **%BUILD%** will be replaced with **'\(Installer.example.build)'**
|
|
- Spaces will be replaced with hyphens **-**
|
|
"""
|
|
}
|
|
|
|
let id: String
|
|
let version: String
|
|
let build: String
|
|
let date: String
|
|
let distributionURL: String
|
|
let distributionSize: Int
|
|
let packages: [Package]
|
|
let boardIDs: [String]
|
|
let deviceIDs: [String]
|
|
let unsupportedModelIdentifiers: [String]
|
|
var name: String {
|
|
|
|
var name: String = ""
|
|
|
|
if version.range(of: "^14", options: .regularExpression) != nil {
|
|
name = "macOS Sonoma"
|
|
} else if version.range(of: "^13", options: .regularExpression) != nil {
|
|
name = "macOS Ventura"
|
|
} else if version.range(of: "^12", options: .regularExpression) != nil {
|
|
name = "macOS Monterey"
|
|
} else if version.range(of: "^11", options: .regularExpression) != nil {
|
|
name = "macOS Big Sur"
|
|
} else if version.range(of: "^10\\.15", options: .regularExpression) != nil {
|
|
name = "macOS Catalina"
|
|
} else if version.range(of: "^10\\.14", options: .regularExpression) != nil {
|
|
name = "macOS Mojave"
|
|
} else if version.range(of: "^10\\.13", options: .regularExpression) != nil {
|
|
name = "macOS High Sierra"
|
|
} else if version.range(of: "^10\\.12", options: .regularExpression) != nil {
|
|
name = "macOS Sierra"
|
|
} else if version.range(of: "^10\\.11", options: .regularExpression) != nil {
|
|
name = "OS X El Capitan"
|
|
} else if version.range(of: "^10\\.10", options: .regularExpression) != nil {
|
|
name = "OS X Yosemite"
|
|
} else if version.range(of: "^10\\.9", options: .regularExpression) != nil {
|
|
name = "OS X Mavericks"
|
|
} else if version.range(of: "^10\\.8", options: .regularExpression) != nil {
|
|
name = "OS X Mountain Lion"
|
|
} else if version.range(of: "^10\\.7", options: .regularExpression) != nil {
|
|
name = "Mac OS X Lion"
|
|
} else {
|
|
name = "macOS \(version)"
|
|
}
|
|
|
|
name = beta ? "\(name) beta" : name
|
|
return name
|
|
}
|
|
var compatible: Bool {
|
|
// Board ID (Intel)
|
|
if let boardID: String = Hardware.boardID,
|
|
!boardIDs.isEmpty,
|
|
!boardIDs.contains(boardID) {
|
|
return false
|
|
}
|
|
|
|
// Device ID (Apple Silicon or Intel T2)
|
|
// macOS Big Sur 11 or newer
|
|
if version.range(of: "^1[1-9]\\.", options: .regularExpression) != nil,
|
|
let deviceID: String = Hardware.deviceID,
|
|
!deviceIDs.isEmpty,
|
|
!deviceIDs.contains(deviceID) {
|
|
return false
|
|
}
|
|
|
|
// Model Identifier (Apple Silicon or Intel)
|
|
// macOS Catalina 10.15 or older
|
|
if version.range(of: "^10\\.", options: .regularExpression) != nil {
|
|
|
|
if let architecture: Architecture = Hardware.architecture,
|
|
architecture == .appleSilicon {
|
|
return false
|
|
}
|
|
|
|
if let modelIdentifier: String = Hardware.modelIdentifier,
|
|
!unsupportedModelIdentifiers.isEmpty,
|
|
unsupportedModelIdentifiers.contains(modelIdentifier) {
|
|
return false
|
|
}
|
|
}
|
|
|
|
return true
|
|
}
|
|
var allDownloads: [Package] {
|
|
(sierraOrOlder ? [] : [Package(url: distributionURL, size: distributionSize, integrityDataURL: nil, integrityDataSize: nil)]) + packages.sorted { $0.filename < $1.filename }
|
|
}
|
|
var temporaryDiskImageMountPointURL: URL {
|
|
URL(fileURLWithPath: "/Volumes/\(id)")
|
|
}
|
|
var temporaryInstallerURL: URL {
|
|
temporaryDiskImageMountPointURL.appendingPathComponent("/Applications/Install \(name).app")
|
|
}
|
|
var temporaryISOMountPointURL: URL {
|
|
URL(fileURLWithPath: "/Volumes/Install \(name)")
|
|
}
|
|
var dictionary: [String: Any] {
|
|
[
|
|
"identifier": id,
|
|
"name": name,
|
|
"version": version,
|
|
"build": build,
|
|
"size": size,
|
|
"date": date,
|
|
"compatible": compatible,
|
|
"distribution": distributionURL,
|
|
"packages": packages.map { $0.dictionary },
|
|
"beta": beta
|
|
]
|
|
}
|
|
var sierraOrOlder: Bool {
|
|
version.range(of: "^10\\.([7-9]|1[0-2])\\.", options: .regularExpression) != nil
|
|
}
|
|
var catalinaOrNewer: Bool {
|
|
bigSurOrNewer || version.range(of: "^10\\.15\\.", options: .regularExpression) != nil
|
|
}
|
|
var bigSurOrNewer: Bool {
|
|
version.range(of: "^1[1-9]\\.", options: .regularExpression) != nil
|
|
}
|
|
var beta: Bool {
|
|
build.range(of: "[a-z]$", options: .regularExpression) != nil
|
|
}
|
|
var imageName: String {
|
|
name.replacingOccurrences(of: " beta", with: "")
|
|
}
|
|
var size: UInt64 {
|
|
UInt64(packages.map { $0.size }.reduce(0, +))
|
|
}
|
|
var diskImageSize: Double {
|
|
ceil(Double(size) / Double(UInt64.gigabyte)) + 1.5
|
|
}
|
|
var isoSize: Double {
|
|
ceil(Double(size) / Double(UInt64.gigabyte)) + 1.5
|
|
}
|
|
var tooltip: String {
|
|
"""
|
|
Version: \(version)
|
|
Build Number: \(build)
|
|
Release Date: \(date)
|
|
Download Size: \(size.bytesString())
|
|
"""
|
|
}
|
|
}
|
|
|
|
extension Installer: Equatable {
|
|
|
|
static func == (lhs: Installer, rhs: Installer) -> Bool {
|
|
lhs.version == rhs.version && lhs.build == rhs.build
|
|
}
|
|
}
|