Understand your Mac and iPhone more deeply by tracing the evolution of Mac OS X from prelease to Swift. John Siracusa delivers the details.
You've got two main options:
[ | |
{ | |
"url": "https://updates.cdn-apple.com/2023SummerSeed/patches/042-21091/60572AF0-9BC3-465F-89ED-77117194CB26/com_apple_MobileAsset_SoftwareUpdate/3df121022bd578846478faa25a4dcf3055396954.zip", | |
"build": "21N5207g", | |
"filename": "iBEC.n301.RELEASE.im4p", | |
"kbag": "AB7893B981E44BFF298328C89C826F8BA6EF1A7ADC80DB156C9D55D9F4E27E8AD2CC21AFA42A41E1392B57E9FE90D992", | |
"key": "34b218667cd03eb93e073b9b3bca4a865b20f130550a800b2aa2c1c2348041865cee47db7e3bcda739d05adde9f9f716" | |
}, | |
{ | |
"url": "https://updates.cdn-apple.com/2023SummerSeed/patches/042-21091/60572AF0-9BC3-465F-89ED-77117194CB26/com_apple_MobileAsset_SoftwareUpdate/3df121022bd578846478faa25a4dcf3055396954.zip", |
[ | |
{ | |
"fw": "UniversalMac_11.0.1_20B28_Restore.ipsw", | |
"file": "LLB.j274.RELEASE.im4p", | |
"kbag": "3267519BE210D18C937A7180542EE2D66F5FBE37A0EB6BFE632B86B75C14392F2001BC3F383A7FF966F968BAB2EE484F", | |
"key": "44a6f8571fa811690914ba053f1740400cc0931c70bd8c5a1374dd12783d84db61e89fa68a6ac4349c04b319138e7bc9" | |
}, | |
{ | |
"fw": "UniversalMac_11.0.1_20B28_Restore.ipsw", |
// Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved. | |
// | |
// Permission is hereby granted, free of charge, to any person obtaining a copy | |
// of this software and associated documentation files (the "Software"), to deal | |
// in the Software without restriction, including without limitation the rights | |
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
// copies of the Software, and to permit persons to whom the Software is | |
// furnished to do so, subject to the following conditions: | |
// | |
// The above copyright notice and this permission notice shall be included in |
aback | |
abase | |
abate | |
abbey | |
abbot | |
abhor | |
abide | |
abled | |
abode | |
abort |
#include <stdio.h> | |
#include <stdint.h> | |
#include <stdlib.h> | |
#include <mach/mach.h> | |
#include <CommonCrypto/CommonCrypto.h> | |
#include <ctype.h> | |
void hexdump(void *ptr, int buflen) { | |
unsigned char *buf = (unsigned char*)ptr; | |
int i, j; |
/* | |
This file contains definitions used in the Hex-Rays decompiler output. | |
It has type definitions and convenience macros to make the | |
output more readable. | |
Copyright (c) 2007-2022 Hex-Rays | |
*/ |
#include <IOKit/IOKitLib.h> | |
#include <mach/mach.h> | |
#include <stdio.h> | |
#include <stdint.h> | |
#include <stdlib.h> | |
#include <ctype.h> | |
void hexdump(void *ptr, int buflen) { | |
unsigned char *buf = (unsigned char*)ptr; | |
int i, j; |
# copied from https://github.com/tulir/mautrix-telegram/blob/master/mautrix_telegram/util/parallel_file_transfer.py | |
# Copyright (C) 2021 Tulir Asokan | |
import asyncio | |
import hashlib | |
import inspect | |
import logging | |
import math | |
import os | |
from collections import defaultdict | |
from typing import Optional, List, AsyncGenerator, Union, Awaitable, DefaultDict, Tuple, BinaryIO |
History