Bug 1853891 - Port bug 1593072: Use different entitlement files for child processes and other resources. r=darktrojan

Differential Revision: https://phabricator.services.mozilla.com/D188680

--HG--
rename : build/macosx/hardenedruntime/developer.entitlements.xml => build/macosx/hardenedruntime/v1/developer/browser.xml
rename : build/macosx/hardenedruntime/production.entitlements.xml => build/macosx/hardenedruntime/v1/production/browser.xml
extra : amend_source : 93cf7e9e69132659ba67a944171c658fabe3e907
This commit is contained in:
Daniel Darnell 2023-09-20 06:12:41 +00:00
Родитель 3732f51563
Коммит 2820fab618
11 изменённых файлов: 236 добавлений и 8 удалений

Просмотреть файл

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
Entitlements to apply to the main browser process executable during
codesigning of developer builds.
-->
<plist version="1.0">
<dict>
<!-- Thunderbird needs to create executable pages without MAP_JIT on x64 -->
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
<!-- Thunderbird needs to create executable pages with MAP_JIT on aarch64 -->
<key>com.apple.security.cs.allow-jit</key><true/>
<!-- For dev builds only, allow loading third party libraries as a
workaround enabling self-signed builds to launch. -->
<key>com.apple.security.cs.disable-library-validation</key><true/>
<!-- Allow dyld environment variables for gtests and debugging -->
<key>com.apple.security.cs.allow-dyld-environment-variables</key><true/>
<!-- Allow debuggers to attach to running executables -->
<key>com.apple.security.get-task-allow</key><true/>
<!-- Thunderbird needs to access the microphone on sites the user allows -->
<key>com.apple.security.device.audio-input</key><true/>
<!-- Thunderbird needs to access the camera on sites the user allows -->
<key>com.apple.security.device.camera</key><true/>
<!-- Thunderbird needs to access the location on sites the user allows -->
<key>com.apple.security.personal-information.location</key><true/>
<!-- For SmartCardServices(7) -->
<key>com.apple.security.smartcard</key><true/>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
Entitlements to apply to the media-plugin-helper.app bundle during
codesigning of developer builds.
-->
<plist version="1.0">
<dict>
<!-- Allow loading third party CDM libraries -->
<key>com.apple.security.cs.disable-library-validation</key><true/>
<!-- Allow dyld environment variables for debugging -->
<key>com.apple.security.cs.allow-dyld-environment-variables</key><true/>
<!-- Allow debuggers to attach to running executables -->
<key>com.apple.security.get-task-allow</key><true/>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
Entitlements to apply to the plugin-container.app bundle during
codesigning of developer builds.
-->
<plist version="1.0">
<dict>
<!-- Thunderbird needs to create executable pages without MAP_JIT on x64 -->
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
<!-- Thunderbird needs to create executable pages with MAP_JIT on aarch64 -->
<key>com.apple.security.cs.allow-jit</key><true/>
<!-- Allow dyld environment variables for debugging -->
<key>com.apple.security.cs.allow-dyld-environment-variables</key><true/>
<!-- Allow debuggers to attach to running executables -->
<key>com.apple.security.get-task-allow</key><true/>
<!-- For dev builds only, allow loading third party libraries as a
workaround enabling self-signed builds to launch. -->
<key>com.apple.security.cs.disable-library-validation</key><true/>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
Entitlements to apply to non-browser executables such as updater,
pingsender, minidump-analyzer, and crashreporter during codesigning of
developer builds.
-->
<plist version="1.0">
<dict>
<!-- Allow dyld environment variables for debugging -->
<key>com.apple.security.cs.allow-dyld-environment-variables</key><true/>
<!-- Allow debuggers to attach to running executables -->
<key>com.apple.security.get-task-allow</key><true/>
<!-- For dev builds only, allow loading third party libraries as a
workaround enabling self-signed builds to launch. -->
<key>com.apple.security.cs.disable-library-validation</key><true/>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
Entitlements to apply to the main browser process executable during
codesigning of production channel builds.
-->
<plist version="1.0">
<dict>
<!-- Thunderbird needs to create executable pages (without MAP_JIT) -->
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
<!-- Thunderbird needs to create executable pages with MAP_JIT on aarch64 -->
<key>com.apple.security.cs.allow-jit</key><true/>
<!-- Thunderbird needs to access the microphone on sites the user allows -->
<key>com.apple.security.device.audio-input</key><true/>
<!-- Thunderbird needs to access the camera on sites the user allows -->
<key>com.apple.security.device.camera</key><true/>
<!-- Thunderbird needs to access the location on sites the user allows -->
<key>com.apple.security.personal-information.location</key><true/>
<!-- For SmartCardServices(7) -->
<key>com.apple.security.smartcard</key><true/>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
Entitlements to apply to the media-plugin-helper.app bundle during
codesigning of production channel builds.
-->
<plist version="1.0">
<dict>
<!-- Allow loading third party CDM libraries -->
<key>com.apple.security.cs.disable-library-validation</key><true/>
</dict>
</plist>

Просмотреть файл

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<!--
Entitlements to apply to the plugin-container.app bundle during
codesigning of production channel builds.
-->
<plist version="1.0">
<dict>
<!-- Thunderbird needs to create executable pages without MAP_JIT on x64 -->
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
<!-- Thunderbird needs to create executable pages with MAP_JIT on aarch64 -->
<key>com.apple.security.cs.allow-jit</key><true/>
</dict>
</plist>

Просмотреть файл

@ -295,8 +295,8 @@ mac-notarization:
by-platform:
macosx64.*:
by-release-level:
production: comm/build/macosx/hardenedruntime/production.entitlements.xml
default: comm/build/macosx/hardenedruntime/developer.entitlements.xml
production: comm/build/macosx/hardenedruntime/v1/production/browser.xml
default: comm/build/macosx/hardenedruntime/v1/developer/browser.xml
default: ''
mac-requirements:
by-platform:
@ -310,18 +310,85 @@ mac-signing:
- deep: false
runtime: true
force: true
entitlements: comm/build/macosx/hardenedruntime/production.entitlements.xml
entitlements: comm/build/macosx/hardenedruntime/v2/production/plugin-container.xml
globs:
- "/Contents/MacOS/plugin-container.app"
- deep: false
runtime: true
force: true
entitlements: comm/build/macosx/hardenedruntime/v2/production/media-plugin-helper.xml
globs:
- "/Contents/MacOS/media-plugin-helper.app"
- deep: false
runtime: true
force: true
# These files are signed without entitlements
globs:
- "/Contents/MacOS/crashreporter.app"
- "/Contents/MacOS/updater.app"
- "/Contents/Library/LaunchServices/org.mozilla.updater"
- "/Contents/Library/Spotlight/thunderbird.mdimporter"
- "/Contents/MacOS/XUL"
- "/Contents/MacOS/pingsender"
- "/Contents/MacOS/minidump-analyzer"
- "/Contents/MacOS/*.dylib"
- "/Contents/MacOS/rnp-cli"
- "/Contents/MacOS/rnpkeys"
- deep: false
runtime: true
force: true
entitlements: comm/build/macosx/hardenedruntime/v2/production/browser.xml
globs:
- "/Contents/MacOS/thunderbird-bin"
- "/"
- "/" # The .app
default:
- deep: false
runtime: true
force: true
entitlements: comm/build/macosx/hardenedruntime/developer.entitlements.xml
entitlements: comm/build/macosx/hardenedruntime/v2/developer/plugin-container.xml
globs:
- "/Contents/MacOS/plugin-container.app"
- deep: false
runtime: true
force: true
entitlements: comm/build/macosx/hardenedruntime/v2/developer/media-plugin-helper.xml
globs:
- "/Contents/MacOS/media-plugin-helper.app"
- deep: false
runtime: true
force: true
entitlements: comm/build/macosx/hardenedruntime/v2/developer/utility.xml
globs:
- "/Contents/MacOS/crashreporter.app"
- "/Contents/MacOS/updater.app"
- "/Contents/Library/LaunchServices/org.mozilla.updater"
- "/Contents/Library/Spotlight/thunderbird.mdimporter"
- "/Contents/MacOS/pingsender"
- "/Contents/MacOS/minidump-analyzer"
- "/Contents/MacOS/rnp-cli"
- "/Contents/MacOS/rnpkeys"
- deep: false
runtime: true
force: true
# These files are signed without entitlements
globs:
- "/Contents/MacOS/XUL"
- "/Contents/MacOS/*.dylib"
- deep: false
runtime: true
force: true
entitlements: comm/build/macosx/hardenedruntime/v2/developer/browser.xml
globs:
- "/Contents/MacOS/thunderbird-bin"
- "/"
- "/" # The .app
expiration-policy:
by-project:

Просмотреть файл

@ -5,8 +5,15 @@ license:
- comm/
exclude:
# By design
- comm/build/macosx/hardenedruntime/developer.entitlements.xml
- comm/build/macosx/hardenedruntime/production.entitlements.xml
- comm/build/macosx/hardenedruntime/v1/developer/browser.xml
- comm/build/macosx/hardenedruntime/v1/production/browser.xml
- comm/build/macosx/hardenedruntime/v2/developer/browser.xml
- comm/build/macosx/hardenedruntime/v2/developer/media-plugin-helper.xml
- comm/build/macosx/hardenedruntime/v2/developer/plugin-container.xml
- comm/build/macosx/hardenedruntime/v2/developer/utility.xml
- comm/build/macosx/hardenedruntime/v2/production/browser.xml
- comm/build/macosx/hardenedruntime/v2/production/media-plugin-helper.xml
- comm/build/macosx/hardenedruntime/v2/production/plugin-container.xml
# License not super clear, Firefox excludes its branding
- comm/mail/branding/
# Mostly empty file