Обычно можно увидеть, существуют ли для приложения разрешения на использование песочницы с помощью вызова командной строки codesign. Например, вызов этого
codesign --display --entitlements :- /Applications/Notes.app/ | grep sandbox
Приведет к этому результату
Executable=/Applications/Notes.app/Contents/MacOS/Notes
<key>com.apple.security.app-sandbox</key>
Где ключ com.apple.security.app-sandbox означает, что приложение работает в песочнице.
В Mavericks некоторые вспомогательные приложения XPC отображаются в Activity Monitor как работающие в песочнице, но вызов кода для них ничего не показывает. Пример для одного из вспомогательных приложений Safari XPC:
codesign -display --entitlements :- /System/Library/PrivateFrameworks/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent | grep sandbox
Просто возвращает это: -
Executable=/System/Library/PrivateFrameworks/WebKit2.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent
Я также пытался программно проверить, изолирован ли пакет в песочнице, с помощью кода, описанного в эта статья, но опять же, возвращается как не изолированная программная среда, хотя в Мониторе активности четко указано, что это так.
Можно ли проверить такой пакет xpc, чтобы увидеть, будет ли он выполняться в песочнице и использовать права песочницы?