Author: SayyadN
Version: 2
Date: 25-6-2025
A comprehensive Python tool for downloading macOS recovery images, installers, and EFI folders for Hackintosh setups.
- Overview
- Features
- Prerequisites
- Installation
- Usage
- Command Line Arguments
- Actions
- Examples
- EFI Support
- Technical Details
- Credits
- Troubleshooting
This tool provides a complete solution for downloading and managing macOS recovery images and installers. It's particularly useful for:
- Creating macOS recovery media
- Downloading official macOS installers
- Validating MLB (Main Logic Board) serial numbers
- Finding compatible EFI configurations for Hackintosh setups
- Automated verification of downloaded images
- Recovery Image Download: Download official macOS recovery images from Apple servers
- Installer Download: Get full macOS installer applications
- MLB Validation: Verify and guess compatible Mac models for MLB serial numbers
- EFI Information: Get processor-specific EFI recommendations
- Image Verification: Automatic chunklist verification for downloaded images
- Progress Tracking: Real-time download progress with visual indicators
- Multiple macOS Versions: Support for macOS versions from Snow Leopard to Sequoia
The tool requires these files in the same directory:
macos.py(main script)boards.json(Mac board database)build-image.sh(build script)
pip install xattr cpuinfo plistlib- macOS: Required for full functionality (uses system tools like
hdiutil) - Python 3: Python 2 is not supported
- Root Access: Required for package installation operations
- Clone or download all required files to a directory
- Install dependencies:
pip install xattr cpuinfo
- Make executable (if needed):
chmod +x macos.py
sudo python3 macos.py [action] [options]Note: Root privileges are required for most operations.
download- Download recovery images or installersselfcheck- Verify MLB validation systemverify- Validate a specific MLB serial numberguess- Find compatible Mac models for an MLB
| Option | Description | Default |
|---|---|---|
-o, --outdir |
Output directory | com.apple.recovery.boot |
-n, --basename |
Base filename for downloads | (empty) |
-b, --board-id |
Mac board identifier | Mac-27AD2F918AE68F61 |
-m, --mlb |
Main Logic Board serial | 00000000000000000 |
-e, --code |
4-character EEEE code | (empty) |
-os, --os-type |
OS type (default or latest) |
default |
| Option | Description |
|---|---|
-diag, --diagnostics |
Download diagnostics instead of recovery |
-v, --verbose |
Enable verbose output |
-db, --board-db |
Path to boards database |
--efi |
Show EFI information and download links |
--seedprogram |
Use specific seed program |
--catalogurl |
Custom catalog URL |
--workdir |
Working directory |
--compress |
Create compressed disk image |
--raw |
Keep raw sparse image |
--ignore-cache |
Ignore cached downloads |
| Version | Command |
|---|---|
| 1. Lion (10.7) | python3 macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00 download |
python3 macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download |
|
| 2. Mountain Lion (10.8) | python3 macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download |
| 3. Mavericks (10.9) | python3 macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download |
| 4. Yosemite (10.10) | python3 macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download |
| 5. El Capitan (10.11) | python3 macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download |
| 6. Sierra (10.12) | python3 macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download |
| 7. High Sierra (10.13) | python3 macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download |
python3 macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300 download |
|
| 8. Mojave (10.14) | python3 macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download |
| 9. Catalina (10.15) | python3 macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download |
| 10. Big Sur (11) | python3 macrecovery.py -b Mac-42FD25EABCABB274 -m 00000000000000000 download |
| 11. Monterey (12) | python3 macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000000000 download |
| 12. Ventura (13) | python3 macrecovery.py -b Mac-4B682C642B45593E -m 00000000000000000 download |
| 13. Sonoma (14) | python3 macrecovery.py -b Mac-226CB3C6A851A671 -m 00000000000000000 download |
| 14. Sequoia (15) | python3 macrecovery.py -b Mac-937A206F2EE63C01 -m 00000000000000000 download |
Downloads macOS recovery images or full installers.
# Download latest recovery for default Mac
sudo python3 macos.py download
# Download with specific board ID
sudo python3 macos.py download -b Mac-E43C1C25D4880AD6
# Download latest version
sudo python3 macos.py download -os latest
# Download diagnostics
sudo python3 macos.py download -diagValidates the MLB validation system against Apple servers.
sudo python3 macos.py selfcheck -vChecks if a specific MLB serial number is valid.
# Verify specific MLB
sudo python3 macos.py verify -m F5K105303J9K3F71M
# Verify with board ID
sudo python3 macos.py verify -m F5K105303J9K3F71M -b Mac-E43C1C25D4880AD6Attempts to find compatible Mac models for an MLB.
# Guess compatible models
sudo python3 macos.py guess -m F5K105303J9K3F71M
# Anonymous lookup
sudo python3 macos.py guess -m 000000000F9K3F700sudo python3 macos.py downloadsudo python3 macos.py download -b Mac-7BA5B2D9E42DDD94 -o ~/Downloads/Recoverysudo python3 macos.py download -os latest -vsudo python3 macos.py verify -m 123456789ABCDEFGHpython3 macos.py --efiThe tool includes built-in EFI folder recommendations:
- Automatically detects your CPU model
- Provides generation-specific recommendations
- Shows Intel processor generations (Nehalem to Meteor Lake)
- Direct link to Olarila EFI collection
- Processor-specific configurations
- Hackintosh compatibility guides
- i5-1xxx (Nehalem)
- i5-2xxx (Sandy Bridge)
- i5-3xxx (Ivy Bridge)
- i5-4xxx (Haswell)
- i5-5xxx (Broadwell)
- i5-6xxx (Skylake)
- i5-7xxx (Kaby Lake)
- i5-8xxx (Coffee Lake)
- i5-9xxx (Coffee Lake Refresh)
- i5-10xxx (Comet Lake/Ice Lake)
- i5-11xxx (Tiger Lake/Rocket Lake)
- i5-12xxx (Alder Lake)
- i5-13xxx (Raptor Lake)
- i5-14xxx/Core 5xxx (Meteor Lake/Core Ultra)
The tool supports downloading from these macOS versions:
- macOS 10.13 High Sierra (17)
- macOS 10.14 Mojave (18)
- macOS 10.15 Catalina (19)
- macOS 11 Big Sur (20)
- macOS 12 Monterey (21)
- macOS 13 Ventura (22)
- macOS 14 Sonoma (23)
- macOS 15 Sequoia (24)
- Chunklist Verification: Automatic verification using Apple's chunklist system
- Digital Signatures: RSA signature validation with Apple's public key
- Hash Verification: SHA-256 chunk verification
- Progress Tracking: Real-time verification progress
- Standard Format: 17-character alphanumeric string
- EEEE Code: 4-character code conversion support
- Anonymous Format: Zero-padded anonymous MLB support
This tool builds upon excellent work from:
- macrecovery_open_core: OpenCore Team
- olarila_efis: Olarila EFI Collection
- Special Thanks: Tim Sutton, Greg Neagle, and vit9696
pip install xattrAlways run with sudo for download operations.
Ensure all required files are in the same directory:
macos.pyboards.jsonbuild-image.sh
- Check internet connection
- Try with
--ignore-cacheflag - Verify board ID is correct
- Re-download the files
- Check available disk space
- Verify network stability during download
Use -v or --verbose flag for detailed debug information:
sudo python3 macos.py download -vIf downloads fail, try:
# Ignore cache and retry
sudo python3 macos.py download --ignore-cache
# Use different working directory
sudo python3 macos.py download --workdir /tmp/macos_download- Apple Servers: This tool connects directly to Apple's official servers
- Authenticity: All downloads are verified against Apple's digital signatures
- Legal: Only downloads publicly available Apple software
- Compatibility: Designed for legitimate macOS recovery and installation needs
- OpenCore Guide: Dortania's OpenCore Install Guide
- EFI Files: Olarila EFI Repository
- macOS Compatibility: Apple Support - macOS Compatibility
For issues or contributions, please ensure you have the latest version of all required files and dependencies.