我需要为OS X登录机制创建一个插件,以便我可以通过键入密码来解锁屏幕。我知道这样的事情已经存在 - 敲门解锁或Rohos USB密钥登录都是例子。
我在ADC上找到了名为“NameAndPassword”(https://developer.apple.com/library/mac/samplecode/NameAndPassword/Introduction/Intro.html)的示例代码,经过一番努力(Custom login/lock screen in OS X Mavericks)后,我设法在Mavericks上构建并安装它。问题是整个插件显然有点过时,并且在我输入密码后不会登录(我需要通过SSH重启机器)。我是一个xcode / objective-c初学者,不能自己解决这个问题。
基本上,我的问题是:如何修改示例NameAndPassword代码,以便我可以使用键盘以外的输入登录?我想创建一个提供密码的应用程序,但不是通过键盘 - 这就是我相信Knock解锁工作的方式。
答案 0 :(得分:7)
Apple官方代码中存在一些错误。我打了补丁,穿上了我的Github:https://github.com/skycocker/NameAndPassword
只要您替换
,此版本的插件就可以正常运行<string>loginwindow:login</string>
使用在授权策略数据库中行
<string>NameAndPassword:invoke</string>
否则它不会让你登录。
答案 1 :(得分:0)
我正在研究同样的问题,我也是Obj-C的初学者。我已经对Knock进行了一些分析以解锁应用程序并且它没有授权system.login.console正确,它正在定义自己的规则并锁定计算机,它调用屏幕保护程序并锁定权限它的自我。它不是NameAndPassword示例之类的授权插件。它未安装到SecurityAuthorizationPlugins系统文件夹,它被注册为用户的loginAgent。
我也坚持使用NameAndPassword插件解决问题。您是否成功使用(甚至使用键盘)NameAndPassword插件登录?