Skip to content

Commit 707812f

Browse files
danielbodartclaude
andcommitted
Add audio-input entitlement to Fulcio-signed binary
Hardened runtime requires the com.apple.security.device.audio-input entitlement for macOS TCC to show the microphone permission prompt. Without it, TCC silently denies — discovered via TCC system logs: "Prompting policy for hardened runtime; service: kTCCServiceMicrophone requires entitlement com.apple.security.device.audio-input but it is missing". This broke mic access when Fulcio signing was first added. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a4a087a commit 707812f

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

scripts/fulcio-codesign.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,11 +276,26 @@ RCODESIGN="${RCODESIGN:-rcodesign}"
276276
csreq -r="$DR" -b "$TMPDIR_WORK/requirements-set.bin"
277277
dd if="$TMPDIR_WORK/requirements-set.bin" of="$TMPDIR_WORK/requirements.bin" bs=1 skip=20 2>/dev/null
278278

279+
# Entitlements: hardened runtime requires explicit entitlements for mic access.
280+
# Without com.apple.security.device.audio-input, TCC silently denies the mic
281+
# permission prompt for hardened-runtime binaries.
282+
cat > "$TMPDIR_WORK/entitlements.plist" <<ENTITLEMENTS
283+
<?xml version="1.0" encoding="UTF-8"?>
284+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
285+
<plist version="1.0">
286+
<dict>
287+
<key>com.apple.security.device.audio-input</key>
288+
<true/>
289+
</dict>
290+
</plist>
291+
ENTITLEMENTS
292+
279293
"$RCODESIGN" sign \
280294
--pem-source "$TMPDIR_WORK/signing.pem" \
281295
--binary-identifier "$IDENTIFIER" \
282296
--code-signature-flags runtime \
283297
--code-requirements-file "$TMPDIR_WORK/requirements.bin" \
298+
--entitlements-xml-file "$TMPDIR_WORK/entitlements.plist" \
284299
"$BINARY"
285300

286301
echo "Binary signed successfully."

0 commit comments

Comments
 (0)