AdGuardHome icon indicating copy to clipboard operation
AdGuardHome copied to clipboard

Adguard Home is not signed on Mac after installation

Open TNOTA opened this issue 1 year ago • 1 comments

Prerequisites

Platform (OS and CPU architecture)

Darwin (aka macOS), AMD64 (aka x86_64)

Installation

GitHub releases or script from README

Setup

On one machine

AdGuard Home version

v0.107.56

Action

Adguard Home failing to work behind Mac firewall on Sequoia despite being in the list of Allowed apps. macOS will not allow apps that are not signed to pass data through the firewall even if in the list.

I solved it by code signing the app and then adding the app back into the list of allowed apps in the firewall.

codesign --force --deep --sign - /Applications/AdGuardHome/AdGuardHome

Expected result

DNS resolution should continue, access to the UI should continue to work

Actual result

Once the firewall is activated Adguard Home no longer functions. DNS stops, UI is not reachable.

Additional information and/or screenshots

Can Adguard Home be signed during the install or update process? Each update requires the app to be signed again.

TNOTA avatar Feb 15 '25 22:02 TNOTA

I’m hitting the same problem on macOS. After installing AdGuard Home with -s install, trying to start the service via -s start fails with:

Failed to start AdGuard Home service: "launchctl" failed with stderr: Load failed: 5: Input/output error
Try running `launchctl bootstrap` as root for richer errors.

Running launchctl bootstrap system /Library/LaunchDaemons/AdGuardHome.plist directly gives the same Bootstrap failed: 5: Input/output error.

Logs suggest this is a code signing issue:

(AppleMobileFileIntegrity) AMFI: '/Applications/AdGuardHome/AdGuardHome' has no CMS blob?
(AppleMobileFileIntegrity) AMFI: '/Applications/AdGuardHome/AdGuardHome': Unrecoverable CT signature issue, bailing out.

Plist validation passes (plutil -lint says OK), and file paths and permissions are correct. The binary just appears unsigned and macOS refuses to load it via launchd.

Temporarily resolved by signing it manually:

sudo codesign --force --deep --sign - /Applications/AdGuardHome/AdGuardHome

After that, launchctl bootstrap works fine.

Seems like the distributed binary for macOS needs to be signed to be compatible with launchd on newer macOS versions.

geofflittle avatar May 19 '25 20:05 geofflittle