我正在尝试覆盖OS X中的默认登录/锁定屏幕,以允许用户以其他方式登录以外的其他方式(想想指纹扫描仪或如何"敲门以解锁"作品),我正在寻找一种数小时的方法 - 我发现看起来有用的只是授权插件ADC参考和此示例:https://developer.apple.com/library/mac/mac/samplecode/nameandpassword/present/intro.html#//apple_ref/doc/uid/dts10004022
这个nameandpassword xcode项目有点过时,但是我通过指定基本SDK(有一个硬编码的错误路径)来构建它,然后我将结果.bundle文件放入/Library/Security/SecurityAgentPlugins
目录中。锁定屏幕后什么都没有改变,但是我知道我需要将授权角色添加到/etc/authorization
文件中,我知道该文件不再存在于Mavericks中(有此auth.db文件和整个auth api),但是我因此我因此卡在这里 - 我不知道如何将nameandpassword放入此数据库中。
请让我知道我该怎么做,或者如果您知道其他实现目标的方法。
我找到了一种编辑数据库的方法 - 首先,我尝试了直接的/var/private/db/auth.db
SQLITE修改,但是它不起作用,所以一段时间后,我设法比我想象的要容易了我将:
-
security authorizationdb read system.login.console > outfile.plist
-
之后,您需要修改所得的
outfile.plist
,如nullauthplugin readme中所述:<key>mechanisms</key> <array> <string>NameAndPassword:invoke</string>
(最后一行是您需要添加到文件中的一行)。
-
然后,将其保存到数据库:
security authorizationdb write system.login.console < outfile.plist
然后,应该在系统的任何登录/锁定屏幕上可见更改,但是请小心!
您将无法使用NameandPassword的当前版本进行身份验证!
请确保在之前与您的Mac 连接进行工作,您可以修改数据库,以便您可以使用其他设备来重新恢复更改(只需重复DB修改过程,但是此时间删除删除您之前添加的行)。