Skip to main content

AppleCatalog download agent

Project description

Python application Pypi version

Description

Simple library for automating downloads of updates from Apple's servers. Use this simply tool for downloads macOS images, CommandLineTools, XProtect database and just everything you can think of :).

Installation

You can either install using pip:

python3 -m pip install -U applecatalog

Or install locally from git:

git clone git@github.com:doronz88/applecatalog.git
cd applecatalog
python3 -m pip install -U -e .

Usage

Usage: python -m applecatalog [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  date      last update date
  download  download a single product packages
  info      query info for a single product
  list      list all products

Snippets

# List CommandLineTools
python3 -m applecatalog list -q | grep CLTools

# List macOS
python3 -m applecatalog list --macos

# Download single component (by given PRODUCT_ID)
python3 -m applecatalog download PRODUCT_ID /tmp

Example output

➜  dev applecatalog products list
Product(id='031-17335', version='11.0.0.0', title='Photo Content Catalogs', date=datetime.datetime(2015, 2, 23, 18, 1, 41), basename='PhotoContentCatalogs.smd')
Product(id='031-17334', version='11.0.0.0', title='Photo Content Themes', date=datetime.datetime(2015, 2, 23, 18, 1, 41), basename='PhotoContentThemes.smd')
Product(id='031-18981', version='17.0.0.0', title='Photo Content Catalogs', date=datetime.datetime(2015, 3, 25, 17, 12, 1), basename='PhotoContentCatalogs.smd')
Product(id='091-76740', version='1.0.0.0', title='Noticeboard Removal Tool', date=datetime.datetime(2018, 4, 5, 17, 17, 49), basename='NRT.smd')
Product(id='041-91737', version='1.0', title='BootCamp', date=datetime.datetime(2019, 10, 9, 19, 40, 56), basename='BootCampESD.smd')
Product(id='041-91736', version='1.0', title='BootCamp', date=datetime.datetime(2019, 10, 9, 19, 43, 9), basename='BootCampESD.smd')
Product(id='041-88235', version='31.0.0.0', title='Photo Content Catalogs', date=datetime.datetime(2019, 10, 9, 21, 33, 35), basename='PhotoContentCatalogs.smd')
Product(id='041-88237', version='31.0.0.0', title='Photo Content Themes', date=datetime.datetime(2019, 10, 9, 21, 34, 21), basename='PhotoContentThemes.smd')
Product(id='041-88232', version='1.8', title='Mac mini EFI Firmware Update', date=datetime.datetime(2019, 10, 9, 21, 35, 34), basename='MacminiEFIUpdate1.8.smd')
Product(id='041-88233', version='3.7.2', title='Remote Desktop Admin Update', date=datetime.datetime(2019, 10, 9, 21, 37, 47), basename='RemoteDesktopAdmin372.smd')
Product(id='041-88177', version='2.0.1', title='Dictation Language Update - Italian (Italy)', date=datetime.datetime(2019, 10, 9, 23, 10, 48), basename='SRCLUpdate_it_IT.smd')
Product(id='041-94866', version='2.0.1', title='Dictation Language Update - English (Australia)', date=datetime.datetime(2019, 10, 9, 23, 11, 3), basename='SRCLUpdate_en_AU.smd')
Product(id='041-88170', version='2.0.3', title='Dictation Language Update - French (France)', date=datetime.datetime(2019, 10, 9, 23, 12, 27), basename='SRCLUpdate_fr_FR.smd')
Product(id='041-88171', version='2.0.1', title='Dictation Language Update - Spanish (United States)', date=datetime.datetime(2019, 10, 9, 23, 12, 28), basename='SRCLUpdate_es_US.smd')
Product(id='041-88172', version='2.0.1', title='Dictation Language Update - Chinese (China)', date=datetime.datetime(2019, 10, 9, 23, 12, 28), basename='SRCLUpdate_zh_CN.smd')
...

Downloading macOS Images

Listing macOS images can be done as follows:

➜  apple-catalog git:(master) ✗ applecatalog products list --macos
MacOsProduct(product='061-26578', name=None, build='18F2059', version='10.14.5')
MacOsProduct(product='061-26589', name=None, build='18G103', version='10.14.6')
MacOsProduct(product='041-91758', name=None, build='17G66', version='10.13.6')
MacOsProduct(product='041-88800', name=None, build='18E2034', version='10.14.4')
MacOsProduct(product='041-90855', name=None, build='17F66a', version='10.13.5')
MacOsProduct(product='061-86291', name=None, build='19D2064', version='10.15.3')
MacOsProduct(product='001-04366', name=None, build='19E2269', version='10.15.4')
MacOsProduct(product='001-15219', name=None, build='19F2200', version='10.15.5')
MacOsProduct(product='001-36735', name=None, build='19G2006', version='10.15.6')
MacOsProduct(product='001-36801', name=None, build='19G2021', version='10.15.6')
MacOsProduct(product='001-51042', name=None, build='19H2', version='10.15.7')
MacOsProduct(product='001-57224', name=None, build='19H4', version='10.15.7')
MacOsProduct(product='001-68446', name=None, build='19H15', version='10.15.7')
MacOsProduct(product='071-14766', name='macOS Big Sur', build='20D91', version='11.2.3')
MacOsProduct(product='071-29172', name='macOS Big Sur', build='20E232', version='11.3')
MacOsProduct(product='071-32414', name='macOS Big Sur', build='20E241', version='11.3.1')
MacOsProduct(product='071-00696', name='macOS Big Sur', build='20F71', version='11.4')
MacOsProduct(product='071-52235', name='macOS Big Sur Beta', build='20G5042c', version='11.5')
MacOsProduct(product='071-59953', name='macOS Monterey beta', build='21A5268h', version='12.0')

For Downloading each one you just download their packages as you would for any other product:

➜  apple-catalog git:(master) ✗ applecatalog products download 071-59953 ~/Downloads/macos
2021-07-08 10:48:27 DoronZ.local root[21530] DEBUG downloading: UpdateBrain.zip
100%|██████████████████████████████████████████████████████████████████████████████████████████| 2.75M/2.75M [00:00<00:00, 44.7MiB/s]
2021-07-08 10:48:27 DoronZ.local root[21530] DEBUG downloading: Info.plist
...

For creating an installation from these files you can now simply:

sudo installer -pkg /path/to/InstallAssistant.pkg -target /

This should create an Install macOS XXXXXX.app application at your /Applications folder. If you wish to make a bootable device from this installation you can use the following official guidelines:

https://support.apple.com/en-us/HT201372

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

applecatalog-2.0.2.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

applecatalog-2.0.2-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file applecatalog-2.0.2.tar.gz.

File metadata

  • Download URL: applecatalog-2.0.2.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for applecatalog-2.0.2.tar.gz
Algorithm Hash digest
SHA256 fbffbd0151c9d074cc51128e95bc14b9da4b0091d668b46ca2ade3d673ed9ab4
MD5 01135ff544e5edac2b4c52fe4c0095ab
BLAKE2b-256 4b6e13c3192a401d64ac9d8d2b2ecaddd43ad7794becba83eee456e1c8855513

See more details on using hashes here.

File details

Details for the file applecatalog-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for applecatalog-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5a9c6bf426c9d026366e2d8db44816bfc0fb27ff43444e00ceb89542e9dad29f
MD5 13517aaf1ce475840587b44af307d93f
BLAKE2b-256 b294969506c4bcb79a963aa5c21a9667367bcd17ff389dde6c73f50c5a573c2a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page