- Hp Airprint Laser Printer
- Apple Airprint Compatible Hp Printers
- Hp Printers With Airprint
- Hp Airprint App
Updated Many Mac users today found, to their surprise, they are unable to print to their HP Inc printers.
This is due to a code-signing snafu affecting macOS Catalina (version 10.15) and Mojave (10.14), specifically. HP's printer driver software is cryptographically signed with a certificate that macOS uses to determine whether the application is legit and can be trusted. However, that certificate was today revoked through an XProtect update, causing the software to be rejected by Macs.
XProtect is the mechanism Apple uses to inform Macs to no longer trust and run certain programs, and it does this by revoking their code-signing certificates. There is no central database of certs cancelled by XProtect, there's one for each OS version it seems, and Catalina and Mojave were selected in particular. Apple chose to revoke the HP driver cert, or perhaps was asked to do so by HP.
Hewlett Packard has now explained the recent spate of Mac. Some older versions of Mac drivers,' said a HP spokesperson. To uninstall the HP driver and use the native AirPrint driver to. AirPrint is built into most popular printer models, if your HP printer is an AirPrint-enabled printer, you can Print wirelessly from your Mac to an AirPrint printer. With a document open on your Mac, choose File Print in the app you’re using. Click the Printer menu, then choose your AirPrint printer. Note: If you don’t see your AirPrint printer, you can choose Add Printer from the Printer menu and add it to your list of printers. See Add a Wi-Fi or network printer. Use AirPrint on your Mac You can use AirPrint to print wirelessly to: An AirPrint-enabled printer on your Wi-Fi network A network printer or printer shared by another Mac on your Wi-Fi network. HP printer setup (Apple AirPrint for Mac) AirPrint is a built-in printing solution for Mac computers. You can print from most apps that have a print feature.
'No questions asked' Windows code cert slingers 'fuel trade' in digitally signed malware
READ MOREIn any case, HP's driver software no longer works on those two particular operating system flavors. Users are told when trying to print, for instance, that HP's application 'will damage your computer,' and are given the option to run it anyway or send it to the trash. Trying to continue just loops you back round to the error message, with no work done. Punters are also encouraged to report this 'malware' to Apple.
Unofficial workarounds for now include using AirPrint to an HP printer, or uninstalling the HP software and using a generic PostScript driver.
A Reg reader who tipped us off about the blunder told us he was able to jerry rig some IPP connectivity to get an older device to print: 'We had a handful of printers where macOS would print into the ether. Windows had no problem. I found some IPP trickery on macOS Catalina worked on an older HP4650.'
We had a handful of printers where macOS would print into the ether. Windows had no problem
Complaints from punters are building up on the Apple and HP support forums.
'Trying to open Printer Utility on MacOS 10.15.7 and I get a crash dump every time saying 'Code Signature Invalid' for the binary /Library/Printers/hp/Utilities/HP Utility.app/Contents/MacOS/HP Utility,' said one netizen.
'Yes, my Deskjet F4140 abruptly stopped working with both my Mac mini desktop AND my partner's AirBook,' complained another. 'The AirBook keeps insisting it's malware (it's not), while my desktop says the certificate has expired. Suddenly, HP and Apple are NOT playing well together! I've redownloaded and reinstalled the printer software TWICE now but nothing has changed, just the same message about HP Utility now missing. Our jobs depend on this printer, HP.'
Thomas Reed, director of Mac and mobile at Malwarebytes, tweeted to say his users were up in arms at the tech breakdown: 'We're seeing a significant influx of support cases where users are seeing macOS identify what appear to be legit processes as malware.'
Mac blogger Howard Oakley has some more background, here. 'You’re seeing that [error] message because macOS is checking the signature on your HP printer software, and being told that its signing certificate has been revoked,' he observed.
Amazon's Music desktop app is also, weirdly enough, no longer working, either, it's reported.
Spokespeople for HP and Amazon were not available for immediate comment. Apple declined to comment. ®
Updated to add
The Register understands from sources familiar with the matter that HP Inc asked Apple to revoke its printer driver code-signing certificates. It appears this request backfired as it left users unable to print. A HP Inc spokesperson told us on Friday night:
We unintentionally revoked credentials on some older versions of Mac drivers. This caused a temporary disruption for those customers and we are working with Apple to restore the drivers. In the meantime, we recommend users experiencing this problem to uninstall the HP driver and use the native AirPrint driver to print to their printer.
Get ourTech Resources
Table of Contents
How to turn your Mac into an AirPrint server - for free
AirPrint is an Apple technology that enables iPhone and iPad users to print wirelessly without the need to download orinstall drivers. However, in order to be able to do this the printer needs to be AirPrint compatible. This is not alwaysthe case and especially not the case on older printer models. This article explains how you can enable AirPrint supportfor any old printer that is connected to a Mac - for free.
Introduction
AirPrint was originally intended for iOS devices which were connected to Wi-Finetworks only. However, with the introduction of AirPrint to the macOS desktop platform in 2012, Macs connected to thenetwork with Ethernet cable could also print using the AirPrint protocol.
Before we begin, there are a few other options that you might also want to consider.
Third-party applications
You can purchase a third-party application, such as Printopiaor handyPrint for Mac or Presto for Windows.These apps work by sharing the printers your Mac or PC has access to and allows iOS or iPadOS to see those printers asbeing AirPrint enabled. This is the recommended and most trouble-free solution for users who do not mind spendinga few bucks to enjoy a seamless AirPrint experience.
Linux
If your home network includes a Linux machine, you have access to everything you need to share your printers on thenetwork as AirPrint enabled devices as described in this Linux Magazineor Linux Babe article.If you own a Raspberry Pi you can also read the following in-house article forinstructions how to enable AirPrint.
For the tinkerer
If you enjoy tinkering then this article is for you. We will use an old Samsung ML-1915printer which lacks both Wi-Fi and AirPrint capabilities. This printer is no longer for sale, but has proven to be awork-horse here at GeekBitZone for the past ten years.
Disclaimer: We should point out that this process is not guaranteed to work with every printing device.However, there is a certain level of satisfaction if you manage to get an unsupported printer to work with youriOS device! :)
Requirements
![Mac Mac](https://9to5toys.com/wp-content/uploads/sites/5/2018/08/hp-officejet-4650.jpg?quality=82&strip=all&w=1600)
- You will need a Mac that is running a recent (2012 or later) version of macOS. We will use an IntelMac mini on macOS Big Sur.
- You will obviously need a printer that is already connected and installed on your system.
- You will also need an iPhone or iPad to test if AirPrint works.
Printer sharing
The first step that we will need to do on our Mac is to enable printer sharing.
Open System Preferences and select Printers & Scanners.
Select your printer and tick the checkbox Share this printer on the network.
Your printer is now discoverable on the network.
Discovery Browser
The next step is to go to the App Store and download the free Discovery - DNS-SD Browserapplication. Search for “discovery”, and it should appear first in the list of results.
Once downloaded, go to your Applications and launch Discovery.
Discovery will list all Bonjour services available on the local network (as well asWide-Area Bonjour domains).We are in this case interested in the _ipp._tcp. (IPP Internet Printing Protocol)section, which is where our printer is listed.
Let us now expand this section to reveal its parameters.
TXT Records
The highlighted parameters, also known as TXT Records, are a set of stringsthat can be parsed into a series of key/value pairs to provide basic important information about our printer.They are described in full detail in the Bonjour Printing Specification,and a partial list can be seen here.
Key | Usage | Default |
---|---|---|
adminurl † | The URL to access the printer’s embedded web interface. | ' |
air | The type of authentication information required by the printer. IPP/IPPS only. | “none” |
note | The textual location of the printer as a UTF-8 string. | ' |
pdl | A comma-delimited list of MIME media types supported by the printer. | “application/ postscript” |
priority † | The priority of the service compared to other print protocols from “0” (highest) to “100” (lowest). | “50” |
product † | The PostScript product string, including parenthesis. | “()” |
qtotal † | The number of different queues for this service. LPD only. | “1” |
rp | The queue name or resource path for the print service | ' |
TLS | The highest TLS encryption standard supported by the printer. IPP/IPPS only. | ' |
txtvers † | The TXT key version number. | “1” |
ty † | The printer make and model string. | ' |
usb_CMD † | The IEEE-1284 Device ID COMMAND SET/CMD string. | ' |
usb_MDL † | The IEEE-1284 Device ID MODEL/MDL string. | ' |
usb_MFG † | The IEEE-1284 Device ID MANUFACTURER/MFG string. | ' |
UUID | The Universally-Unique IDentifier (UUID) for the print service. | ' |
† Deprecated for IPP and IPPS, optional for LPD and Socket
Not every single TXT record is required. Many of them are in fact even deprecated and/or obsolete. So how dowe know which ones to use? Depending on the infrastructure, your mileage may vary, but let us assume for now that only asingle printer is connected to your Mac on the local network.
The only TXT records that we have found to be mandatory in order to make a printer AirPrint compatible are:
Hp Airprint Laser Printer
rp='your_printer_queue_name'
This record is used to specify the printer queue name. Without it the printer will not know where it should send the job.
pdl='image/urf'
A Page Description Language (PDL) specifiesthe arrangement of the printed page. Modern PDLs describe page elements as geometrical objects, independently of printertechnology. This means that they will appear consistent regardless of the specific printer used. The only required PDLvalue for the AirPrint protocol is “image/urf”.
URF='none'
Apple Raster (URF) is Apple’s own format forprinting from iOS and is not publicly documented at this time. In our tests it has been fine to set the value to “none”,although third-party applications, such as handyPrint, use “W8,CP1,RS300-600,DM3,SRGB24”. Camera viewer download. We have not found anyavailable documentation at this time.
Other recommended, but not mandatory TXT records are:
note='location_of_your_printer'
Will display a message underneath the printer’s name, such as “Joe’s Office”.
adminurl='url_to_cups_admin_page'
Provides a direct link to the CUPS printer’s admin page.
Any omitted TXT records will still be sent to the printer with their default value according to the table above.
We will now show how to announce our printer to Bonjour.
DNS-SD
Domain Name System Service Discovery (DNS-SD) is a specification that allows clients to browsethe network for services. DNS-SD is used by Apple products, most network printers, Linux distributions and a number ofthird-party products. The Multicast DNS (mDNS) & DNS Service Discovery (DNS-SD) Test Tool,also known as dns-sd, is a command line tool that we will use to register (advertise) our printer as an AirPrintservice to Bonjour.
The
dns-sd
command can be broken down into the following arguments:dns-sd | the command itself |
-R | register (advertise) the service |
name | arbitrary unicode text |
type | the application protocol name, which must be _ipp._tcp.,_universal (note: _universal is required by AirPrint) |
domain | the domain in which to register the service. The domain . (punctuation) is a synonym for local |
port | a number between 0 and 65535 (usually 631), which is the TCP port number upon which the service is listening |
key/value | additional attributes of the service described by key/value pairs, which are stored in the advertised service’s DNS TXT record |
Let us start by creating a new shell script under
/usr/local/bin/airprint.sh
.We will edit the file with nano, but feel free to use any other editor that you like.In a Terminal window, type the following command…
… to open a blank editor.
![Download Download](https://support.hp.com/doc-images/24/c03563592.gif)
Add a shebang on the first line to inform the OS of the interpreterlocation. We will use /bin/zsh, which is the default shell in macOS Big Sur.
On the next line, add the first part of the
dns-sd
command:A quick recap:
dns-sd
is the command itself.-R
registers the service.'AirPrint Samsung ML-191x 252x Series @ GeekBitZone'
is the printer name that will be shown to the iOS device._ipp._tcp.,_universal
is the application protocol type name..
(punctuation mark) is the local domain.631
is the default port number of the CUPS web interface.(backslash) marks a continuation of the same command over multiple lines.
We will now copy each key/value pair highlighted in red from the Discovery Browser and paste into our textdocument. As previously mentioned, not all TXT records are required for AirPrint to work. However, for the sake of easeand clarity we have decided to paste all records, because they do not seem to affect the functionality of the printerin any way*.
*based on our tests with the Samsung ML-1915 printer
Once each key/value pair has been added, make the following two amendments:
- Append
,image/urf
to the end of the existingpdl
TXT record. - Add
URF='none'
as a brand new TXT record on the last line.
The complete
airprint.sh
file for our Samsung ML-1915 printer should now look like this:Once you have saved and closed the document, make the file executable by typing:
Property Lists
With the
airprint.sh
file in place, we can now create a property list (plist)file, which we will attach to our script so that it can be run when the system starts up.In a Terminal, type the following command to create a new property list under,
/Library/LaunchDaemons/com.geekbitzone.airprint.plist
.You are obviously free to name the plist however you like, but the general guideline is to usereverse domain name notation.
Copy and paste the following text into the editor.
The XML tags in the plist are defined as follows:
Label | Uniquely identifies the job to launchd . |
ProgramArguments | Maps to the second argument of execvp , which is a family of functions that replace the current process image with a new process image. |
LowPriorityIO | Specifies whether the kernel should consider this daemon to be low priority when doing file system I/O. |
Nice | Specifies what nice (program scheduling priority) value should be applied to the daemon. |
UserName | Specifies which user to run the job as. This key is only applicable when launchd is running as root . |
RunAtLoad | Controls whether the job is launched once at the time the job is loaded. |
KeepAlive | Controls whether the job is to be kept continuously running or to let demand and conditions control the invocation. |
Launchctl
With the property list saved we would now like to install it so that it is run each time the operating systemstarts up. We will use the built-in command, launchctl, to achieve this task.
In a Terminal, type:
This will immediately launch the plist file, and if we go back to the Discovery tool we can now see a second _ipp._tcp.device listed. In our example this printer is listed as “AirPrint Samsung ML-191x 252x Series @ GeekBitZone”.
AirPrint is now up and running.
Testing
We have now reached the moment of truth when we will find out if AirPrint actually works on our iOS device.
Grab your iPhone or iPad, open a new Safari web page or any text document and tap the Share icon.
Then tap Print…
… and Select Printer.
Your printer should now appear under the list of AirPrint compatible devices.
Go ahead and select it.
Let’s print a test page!
Congratulations, you have successfully printed a page with the AirPrint protocol!
Troubleshooting
If you are unable to print from your iOS device, there are a few things that you can check.
Apple Airprint Compatible Hp Printers
In your
airprint.sh
file, confirm that:- Every new line, apart from the first two, contain a trailing backslash (
). This is because we are splitting the
dns-sd
command over several lines. - Any string value with blank spaces should be enclosed in “quotation” marks.
Ippfind
CUPS provides the ippfind tool which is used to find internet printingprotocol printers.
If you run the following command, your AirPrint compatible device should be listed below:
This is the quickest way to confirm if a printer will be visible on your iOS device.If you do not see a print-out, the AirPrint protocol has not been successfully registered. We suggest you re-tracethe steps above one more time to confirm that there is not a typo in your script.
Summary
AirPrint is an Apple technology that enables iPhone and iPad users to print wirelessly without the need to download orinstall drivers. This article has shown how you can enable AirPrint support for any old printer that is connected to a Mac,for free.
References
- AirPrint - The AirPrint protocol explained on Wikipedia
https://en.wikipedia.org/wiki/AirPrint - Printopia - Wireless printing to any printer
https://www.decisivetactics.com/products/printopia/ - handyPrint - Print from any iOS device
http://www.netputing.com - Presto - Enterprise Printing Made Easy
https://www.collobos.com - Linux Magazine - Printing on Air
https://www.linux-magazine.com/Online/Features/AirPrint - Linux Babe - Set Up CUPS Print Server on Ubuntu (Bonjour, IPP, Samba, AirPrint)
https://www.linuxbabe.com/ubuntu/set-up-cups-print-server-ubuntu-bonjour-ipp-samba-airprint - GeekBitZone - How to install a Samsung ML-191x 252x Series printer with AirPrint support on a Raspberry Pihttps://www.geekbitzone.com/posts/cups/samsung-ml-195x-252x/
- HP - Samsung ML-1915 Laser Printer
https://support.hp.com/gb-en/product/Samsung-ML-1915-Laser-Printer-series/17156956/model/17156957?jumpid=reg_r1002_uken_s-001_title_r0001 - Apple - Mac mini
https://www.apple.com/uk/mac-mini/ - Apple - macOS Big Sur
https://www.apple.com/uk/macos/big-sur/ - Discovery - DNS-SD Browser
http://www.tildesoft.com - Bonjour - Zero-configuration networking
https://developer.apple.com/bonjour/ - Wide-Area-Bonjour - Configuring clients to use Wide-Area Bonjour
http://www.dns-sd.org/clientsetup.html - Internet Printing Protocol (IPP) - The Internet Printing Protocol (IPP) explained on Wikipedia
https://en.wikipedia.org/wiki/Internet_Printing_Protocol - TXT Record - The TXT Record explained on Wikipedia
https://en.wikipedia.org/wiki/TXT_record - Bonjour Printing Specification - The official Apple Developer’s guide
https://developer.apple.com/bonjour/printing-specification/bonjourprinting-1.2.1.pdf - Page Description Language (PDL) - WhatIs.com explains what PDL is
https://whatis.techtarget.com/definition/page-description-language-PDL - Apple Raster (URF) - Driverless Printing Standards and their PDLs
https://openprinting.github.io/driverless/01-standards-and-their-pdls/ - CUPS - The open source printing system developed by Apple
https://www.cups.org - DNS Service Discovery (DNS-SD) - How to use standard DNS to browse the network for services
http://www.dns-sd.org - Multicast DNS (mDNS) & DNS Service Discovery (DNS-SD) Test Tool - A dns-sd manual
https://www.unix.com/man-page/osx/1/dns-sd/ - nano - The free text editor
https://www.nano-editor.org - Shebang - An interpreter directive
https://en.wikipedia.org/wiki/Shebang_(Unix) - Property list - plist files explained on Wikipedia
https://en.wikipedia.org/wiki/Property_list - Reverse domain name notation - A naming convention explained on Wikipedia
https://en.wikipedia.org/wiki/Reverse_domain_name_notation - plist - A property list man page on manpagez.com
https://www.manpagez.com/man/5/launchd.plist/ - launchctl - A launchctl manual page on ss64.com
https://ss64.com/osx/launchctl.html - ippfind - Find internet printing protocol printers
https://www.cups.org/doc/man-ippfind.html
See Also
How to schedule tasks with crontab on macOS
How to install and configure Syncthing on the Mac
How to restart the Samba (SMB) file sharing service on macOS
How to enable case-sensitive file system support in PyCharm for macOS
How to disable Adobe Creative Cloud during startup on the Mac
How to mount external volumes in Docker
Which components can be upgraded on my Mac?
How to hide external disk drives from the desktop in macOS
How to upgrade rsync in macOS
How to change the startup programs in macOS
Please enable JavaScript to view the comments powered by Disqus.comments powered by