macOS Sequoia and Tahoe HP Laserjet P1102 drivers

UPDATE 2026-07-17: Added a script to automate the download and patching. You can either trust it, ignore it, or read it and then decide if you trust it 🙂

UPDATE 2026-03-12: Added instructions for macOS Tahoe.

If you have an HP LaserJet P1102, HP LaserJet Pro P1102, HP LaserJet Pro P1102w or, if there exists one, an HP LaserJet Pro P1102w printer, and you are on an updated macOS Sequoia (> 15.0) or macOS Tahoe (> 26.0), HP official drivers won't install. As I am under no circumstance going to buy a new printer when this one works perfectly (on Windows 10/11), it turns out you can tweak the installer to bypass the operating version check, and the latest published drivers work fine.

Step-by-step guide (source):

Common steps:

  • Download the official HP Mac Printer Driver
  • Extract the HewlettPackardPrinterDrivers.pkg file from the HewlettPackardPrinterDrivers.dmg file.
  • From a terminal, and in the folder where you extracted the .pkg file: pkgutil --expand HewlettPackardPrinterDrivers.pkg drivers.

Then, for macOS Sequoia:

  • Open the drivers/Distribution file with any text editor, and change the fragment that says system.version.ProductVersion, '15.0' to system.version.ProductVersion, '16.0'. Save the changes.
  • From the terminal: pkgutil --flatten drivers HewlettPackardPrinterDrivers-sequoia.pkg.
  • Delete the drivers folder, and the HewlettPackardPrinterDrivers.dmg & HewlettPackardPrinterDrivers.pkg files.
  • The file HewlettPackardPrinterDrivers-sequoia.pkg is, from now on, your new and ready to use installer.

Alternatively, for macOS Tahoe:

  • Open the drivers/Distribution file with any text editor, and change the fragment that says system.version.ProductVersion, '15.0' to system.version.ProductVersion, '27.0'. Save the changes.
  • From the terminal: pkgutil --flatten drivers HewlettPackardPrinterDrivers-tahoe.pkg.
  • Delete the drivers folder, and the HewlettPackardPrinterDrivers.dmg & HewlettPackardPrinterDrivers.pkg files.
  • The file HewlettPackardPrinterDrivers-tahoe.pkg is, from now on, your new and ready to use installer.

If you want a simpler, automated version, here is a shell script that will patch for up to, and including, macOS Tahoe. Just follow the instructions mentioned at the beginning of the file contents. You can also download the patch file from this GitHub Gist:

#!/usr/bin/env bash
#
# Downloads the official HP Printer Driver installer and patches its OS version gate,
# so it installs on macOS releases newer than Sequoia (15.x), e.g. Tahoe (26.x).
#
# Instructions:
# 1. save the whole contents as a new file, e.g. patch-hp-printer-driver.sh
# 2. make it executable. From a terminal, in the same folder where you saved it: chmod +x patch-hp-printer-driver.sh
# 3. run it: ./patch-hp-printer-driver.sh
# 4. The script will notify about the the patched installer (saved in the same folder). You can then run it to install the drivers.
#
set -euo pipefail

readonly DOWNLOAD_URL="https://ftp.hp.com/pub/softlib/software12/HP_Quick_Start/osx/Applications/ASU/HewlettPackardPrinterDrivers.dmg"
readonly DMG_NAME="HewlettPackardPrinterDrivers.dmg"
readonly PKG_NAME="HewlettPackardPrinterDrivers.pkg"
readonly EXPANDED_DIR="drivers"
readonly PATCHED_PKG="HewlettPackardPrinterDrivers-patched.pkg"
readonly ORIGINAL_VERSION="15.0"
readonly PATCHED_VERSION="27.0"
readonly MAX_SUPPORTED_MAJOR=15

WORK_DIR="$(pwd)"
MOUNT_POINT=""

cleanup() {
    if [[ -n "$MOUNT_POINT" && -d "$MOUNT_POINT" ]]; then
        hdiutil detach "$MOUNT_POINT" -quiet -force >/dev/null 2>&1 || true
    fi
}
trap cleanup EXIT

check_os_version() {
    local os_version major
    os_version="$(sw_vers -productVersion)"
    major="${os_version%%.*}"

    echo "Detected macOS version: $os_version"

    if (( major < MAX_SUPPORTED_MAJOR )); then
        echo "This OS version is already supported by the official installer. Patch not needed."
        return 1
    fi

    echo "This OS version (macOS $major) is newer than the installer's supported version ($ORIGINAL_VERSION). Patch needed."

    local patched_major="${PATCHED_VERSION%%.*}"
    if (( major > patched_major )); then
        echo "Warning: macOS $major is newer than the patched version ceiling ($PATCHED_VERSION). The patched installer's version check may still reject this OS."
    fi

    return 0
}

download_dmg() {
    if [[ -f "$WORK_DIR/$DMG_NAME" ]]; then
        echo "$DMG_NAME already exists, skipping download."
        return
    fi

    echo "Downloading HP Printer Driver..."
    curl -fSL -o "$WORK_DIR/$DMG_NAME" "$DOWNLOAD_URL"
}

extract_pkg_from_dmg() {
    echo "Mounting $DMG_NAME..."
    MOUNT_POINT="$(mktemp -d /tmp/hp-driver-mount.XXXXXX)"
    hdiutil attach "$WORK_DIR/$DMG_NAME" -nobrowse -quiet -mountpoint "$MOUNT_POINT"

    local src_pkg
    src_pkg="$(find "$MOUNT_POINT" -maxdepth 2 -name "$PKG_NAME" -print -quit)"
    if [[ -z "$src_pkg" ]]; then
        echo "Error: could not find $PKG_NAME inside the mounted image." >&2
        exit 1
    fi

    echo "Extracting $PKG_NAME..."
    cp "$src_pkg" "$WORK_DIR/$PKG_NAME"

    hdiutil detach "$MOUNT_POINT" -quiet
    rmdir "$MOUNT_POINT"
    MOUNT_POINT=""
}

patch_pkg() {
    echo "Expanding $PKG_NAME..."
    rm -rf "$WORK_DIR/$EXPANDED_DIR"
    pkgutil --expand "$WORK_DIR/$PKG_NAME" "$WORK_DIR/$EXPANDED_DIR"

    local distribution_file="$WORK_DIR/$EXPANDED_DIR/Distribution"
    if [[ ! -f "$distribution_file" ]]; then
        echo "Error: Distribution file not found at $distribution_file" >&2
        exit 1
    fi

    echo "Patching version check ($ORIGINAL_VERSION -> $PATCHED_VERSION)..."
    sed -i '' "s/system\.version\.ProductVersion, '$ORIGINAL_VERSION'/system.version.ProductVersion, '$PATCHED_VERSION'/" "$distribution_file"

    echo "Flattening patched package..."
    rm -f "$WORK_DIR/$PATCHED_PKG"
    pkgutil --flatten "$WORK_DIR/$EXPANDED_DIR" "$WORK_DIR/$PATCHED_PKG"
}

cleanup_intermediate_files() {
    echo "Cleaning up intermediate files..."
    rm -rf "$WORK_DIR/$EXPANDED_DIR"
}

main() {
    local needs_patch=1
    check_os_version || needs_patch=0

    if [[ $needs_patch -eq 0 ]]; then
        echo "Nothing to do."
        exit 0
    fi

    download_dmg
    extract_pkg_from_dmg
    patch_pkg
    cleanup_intermediate_files

    echo "Done. Patched installer ready at: $WORK_DIR/$PATCHED_PKG"
}

main

This tiny hack will probably work with other printer models and installers, and probably future operating system releases, until Apple introduces an incompatible change.

Tags: macOS Operating Systems Systems-IT Tools

The macOS Sequoia and Tahoe HP Laserjet P1102 drivers article was written by Kartones, originally published on