mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-01 11:26:04 +08:00
coin: Add kTCCServiceScreenCapture permission to ssh/bootstrap-agent
The screen capture permission might be useful for Qt Multimedia, and
also allows us to do screen capturing of the state of the VM in case
of test failures.
For macOS 15 we need to work around the monthly nagging that an
app has permission to capture the screen, otherwise this popup
may interfere with test runs.
Change-Id: I0398488c78b19a85ba527b780b264e0b915b6024
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
(cherry picked from commit 3a5f7bb8d8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
committed by
Qt Cherry-pick Bot
parent
8f7410b202
commit
b0c5ad7082
@@ -36,6 +36,11 @@ SERVICES+=("kTCCServiceMicrophone|$HOME")
|
||||
# Qt Connectivity tests need Bluetooth access
|
||||
SERVICES+=("kTCCServiceBluetoothAlways|$HOME")
|
||||
|
||||
# Qt Multimedia might need screen capture, and it can
|
||||
# also be useful for capturing the state of the VM when
|
||||
# a test fails.
|
||||
SERVICES+=("kTCCServiceScreenCapture|/")
|
||||
|
||||
# ------ Implementation ------
|
||||
|
||||
function add_permission_for_client() {
|
||||
@@ -81,6 +86,21 @@ function add_permission_for_client() {
|
||||
0 -- flags
|
||||
);
|
||||
EOF
|
||||
|
||||
if [[ "$service" == "kTCCServiceScreenCapture" ]]; then
|
||||
# macOS 15 will nag the user every month about applications
|
||||
# that are permitted to capture the screen. We don't want this
|
||||
# popup to come in the way of tests, so we manually extend
|
||||
# the permission.
|
||||
replayd_dir="$HOME/Library/Group Containers/group.com.apple.replayd"
|
||||
mkdir -p "$replayd_dir"
|
||||
approvals_file="$replayd_dir/ScreenCaptureApprovals.plist"
|
||||
if [[ ! -f $approvals_file ]]; then
|
||||
plutil -create xml1 "$approvals_file"
|
||||
fi
|
||||
key=${executable//\./\\.}
|
||||
plutil -replace "$key" -date "2100-01-01T00:00:00Z" "$approvals_file"
|
||||
fi
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2043
|
||||
|
||||
Reference in New Issue
Block a user