objective-c - OSX 系统完整性保护 (SIP) 删除应用程序
问题描述
我在 OSX 10.14、XCode 10、objective-c
我目前正在开发一个工作流来解释用户为什么他需要接受我的应用程序的自动化,解释如何手动激活它等等。
出于测试原因,最好在系统偏好设置中删除我列出的应用程序,以便我可以多次测试此过程。
例如在图片中:例如,我怎样才能完全删除谷歌浏览器?
编辑: 我无法打开存储此信息的 TCC 数据库:
解决方案
对于您当前的用户,这些权限存储在 TCC 数据库中:
~/Library/Application Support/com.apple.TCC/TCC.db
这是一个 SQLite 数据库,因此您可以使用您选择的编辑器对其进行编辑。
该表称为access
。自动化
中列出的应用程序将作为服务提供。kTCCServiceAppleEvents
您可以简单地删除它们并保存数据库。
编辑
这不是存储在 中的全局TCC 数据库/Library
,受 SIP 保护。
注意~
,表示它在您用户的文件夹中:/Users/xxx/Library/...
即使启用了 SIP,此文件夹也是可编辑的。
编辑 2
所以看起来本地 TCC 数据库也受到保护。
文件系统保护仅对针对 macOS 10.14 SDK 构建的应用程序有效——这就是我能够使用某些第三方客户端对其进行编辑的原因。
所以我想唯一的解决方案是不幸地禁用 SIP。
推荐阅读
- chart.js - Chart.js 在多个图表上同步图例切换
- chef-infra - 在资源 'yum_package [apache2] 上执行操作“安装”时出错
- java - 如何存储鼠标位置?
- .net - 无法在我的网页上显示 wwwroot/images 中的图像
- selenium - 我应该在 Android Studio 类中设置什么编码才能在输出中正确
- android - 项目不显示在 Android Studio 蓝图或设计中
- azure - 从 Azure Function 的实例禁用 Azure Function
- android-edittext - 我的代码有什么问题?我使用 ClassName 而不是变量名?顺便说一句,我想为我的测验创建一个带有答案的 EditText
- android - 即使提供了所有必要的权限,也无法以编程方式在 android 7 的 sd 卡中创建文件夹和文件
- postgresql - Postgres重新采样时间序列数据