Project Icon

BLEUnlock

便捷安全的Mac蓝牙近场解锁工具

BLEUnlock是一款Mac菜单栏工具,利用iPhone、Apple Watch或其他蓝牙低功耗设备的接近程度来控制Mac的锁定状态。无需安装额外应用,支持任何定期发送信号的BLE设备。它能根据设备距离自动解锁或锁定Mac,还提供自定义脚本执行、显示器唤醒和媒体播放控制等功能。密码安全存储于钥匙串中,适用于macOS 10.13及更高版本,为Mac用户提供了一种便捷的安全管理方案。

BLEUnlock

请注意,我不在 Mac App Store 上分发此应用程序。您可以在这里免费获取!

CI Github All Releases 给我买杯咖啡

BLEUnlock 是一个小型菜单栏工具,可以通过 iPhone、Apple Watch 或任何其他蓝牙低功耗设备的接近程度来锁定和解锁您的 Mac。

本文档也有日语版本(日本語版はこちら)

功能

  • 无需 iPhone 应用程序
  • 适用于任何定期从静态 MAC 地址发送信号的 BLE 设备
  • 当 BLE 设备靠近您的 Mac 时,无需输入密码即可为您解锁 Mac
  • 当 BLE 设备远离您的 Mac 时锁定您的 Mac
  • 可选择在锁定/解锁时运行您自己的脚本
  • 可选择从显示器睡眠状态唤醒
  • 可选择在您离开和返回时暂停和恢复音乐/视频播放
  • 密码安全存储在钥匙串中

要求

  • 支持蓝牙低功耗的 Mac
  • macOS 10.13 (High Sierra) 或更高版本
  • iPhone 5s 或更新型号、Apple Watch(所有型号),或其他具有静态 MAC 地址并定期发送信号的 BLE 设备

安装

使用 Homebrew Cask

brew install bleunlock

手动安装

Releases 下载 zip 文件,解压并移动到应用程序文件夹。

设置

首次启动时,它会要求以下权限,您必须授予:

权限描述
蓝牙显然,需要蓝牙访问权限。选择
辅助功能这是解锁锁定屏幕所必需的。点击打开系统偏好设置,点击左下角的锁图标解锁,然后打开 BLEUnlock。
钥匙串(不总是询问)如果被询问,您必须选择始终允许,因为在屏幕锁定时需要此权限。
通知(可选)BLEUnlock 在锁定屏幕时会在锁定屏幕上显示消息。这有助于了解它是否正常工作。此外,要在锁定屏幕上看到消息,您需要在通知偏好设置面板中将显示预览设置为始终

注意:随着 macOS 版本的每次更新,所需的权限数量都会增加,因此如果您使用的是较旧的操作系统,可能不会被要求一个或多个权限。

然后它会要求您输入登录密码以解锁锁定屏幕。 密码将安全地存储在钥匙串中。

最后,从菜单栏图标中选择设备。 它开始扫描附近的 BLE 设备。 选择您的设备,就完成了!

选项

选项描述
立即锁定屏幕无论 BLE 设备是否在附近,它都会锁定屏幕;一旦 BLE 设备移开然后再次靠近,它就会解锁。这在您离开座位前确保屏幕锁定时很有用。
解锁 RSSI解锁的蓝牙信号强度。较大的值表示 BLE 设备需要更靠近 Mac 才能解锁。选择禁用以禁用解锁。
锁定 RSSI锁定的蓝牙信号强度。较小的值表示 BLE 设备需要离 Mac 更远才能锁定。选择禁用以禁用锁定。
锁定延迟检测到 BLE 设备离开后锁定 Mac 的时间。如果 BLE 设备在该时间内靠近,则不会发生锁定。
无信号超时最后一次接收信号到锁定之间的时间。如果您经常遇到"信号丢失"锁定,请增加此值。
接近时唤醒当 BLE 设备在锁定时接近,从睡眠状态唤醒显示器。
唤醒但不解锁当显示器从睡眠状态唤醒时(无论是通过"接近时唤醒"自动唤醒还是手动唤醒),BLEUnlock 不会解锁 Mac。这允许与 macOS 内置的 Apple Watch 解锁功能兼容(可以在 BLEUnlock 唤醒屏幕后立即操作),或者如果您只是希望锁定屏幕更快出现但不想自动解锁。
锁定时暂停"正在播放"在锁定/解锁时,BLEUnlock 暂停/恢复由正在播放小部件或键盘上的 ⏯ 键控制的音乐或视频播放(包括 Apple Music、QuickTime Player 和 Spotify)。
使用屏幕保护程序锁定如果设置此选项,BLEUnlock 将启动屏幕保护程序而不是锁定。要使此选项正常工作,您需要在安全性与隐私偏好设置面板中设置进入睡眠或开始屏幕保护程序立即要求输入密码选项。
锁定时关闭屏幕锁定时立即关闭显示器。
设置密码...如果您更改了登录密码,请使用此选项。
被动模式默认情况下,它会主动尝试连接到 BLE 设备并读取 RSSI。大多数情况下,建议使用默认设置,这样可以稳定工作。但是,如果您正在使用其他蓝牙设备,如键盘、鼠标、触控板或最明显的蓝牙个人热点,默认模式可能会相互干扰。2.4GHz WiFi 也可能会干扰。如果您遇到蓝牙不稳定的情况,请打开被动模式。
登录时启动当您登录时启动 BLEUnlock。
设置最小 RSSIRSSI 低于此值的设备将不会显示在设备扫描列表中。

故障排除

在列表中找不到我的设备

如果您的 BLE 设备不是来自 Apple,BLEUnlock 可能无法找到设备名称。 在这种情况下,您的设备会显示为 UUID(长的十六进制数字和连字符)。 要识别设备,请尝试将设备靠近或远离 Mac,看看 RSSI(dB 值)是否相应变化。

如果您在列表中看不到任何设备,请尝试按照下面的说明重置蓝牙模块。

无法解锁

确保在系统偏好设置 > 安全性与隐私 > 隐私 > 辅助功能中打开了 BLEUnlock。 如果已经打开,请尝试关闭然后重新打开。

如果它要求访问其自己在钥匙串中的密码的权限,您必须选择始终允许,因为在屏幕锁定时需要此权限。

频繁出现"信号丢失"

增加无信号超时。 或者尝试被动模式

我的蓝牙键盘、鼠标、个人热点或其他蓝牙设备出现故障!

首先,按住 Shift + Option 键点击菜单栏或控制中心的蓝牙图标,然后点击"重置蓝牙模块"。

在 macOS 12 Monterey 中,此选项不再可用。 作为替代,在终端中输入以下命令来重置蓝牙模块:

sudo pkill bluetoothd

此命令将要求输入您的登录密码。

如果问题仍然存在,请开启"被动模式"。

MAC 地址说明

与经典蓝牙不同,蓝牙低功耗设备可以使用"私有" MAC 地址。 这个私有地址可以是随机的,并且可以不时更改。

最新的智能设备,包括 iOS 和 Android,倾向于使用每 15 分钟左右就会更改的私有地址。这可能是为了防止被追踪。

另一方面,为了让 BLEUnlock 能够追踪您的设备,其 MAC 地址必须是静态的。

幸运的是,在 Apple 设备上,如果您使用与 Mac 相同的 Apple ID 登录,MAC 地址会被解析为真实(公共)地址。

对于其他设备,包括 Android,解析地址的方法尚不清楚。 如果您的非 Apple 设备随时间变更其 MAC 地址,很遗憾 BLEUnlock 无法支持它。

要检查 MAC 地址是否正确解析,请比较 BLEUnlock 的"设备"扫描列表中显示的 MAC 地址与您设备上显示的地址。

在锁定/解锁时运行脚本

在锁定和解锁时,BLEUnlock 会运行位于以下位置的脚本:

~/Library/Application Scripts/jp.sone.BLEUnlock/event

根据事件类型,会传递不同的参数:

事件参数
由于 RSSI 低而被 BLEUnlock 锁定away
由于无信号而被 BLEUnlock 锁定lost
被 BLEUnlock 解锁unlocked
手动解锁intruded

注意:为了使 intruded 事件正常工作,您需要在"安全性与隐私"偏好设置中设置"睡眠或屏幕保护程序开始立即要求输入密码"。

示例

以下是一个示例脚本,当 Mac 被手动解锁时,它会发送一条 LINE Notify 消息,并附带一张 Mac 前方人员的照片。

#!/bin/bash

set -eo pipefail

LINE_TOKEN=xxxxx

notify() {
    local message=$1
    local image=$2
    if [ "$image" ]; then
        img_arg="-F imageFile=@$image"
    else
        img_arg=""
    fi
    curl -X POST -H "Authorization: Bearer $LINE_TOKEN" -F "message=$message" \
        $img_arg https://notify-api.line.me/api/notify
}

capture() {
    open -Wa SnapshotUnlocker
    ls -t /tmp/unlock-*.jpg | head -1
}

case $1 in
    away)
        notify "$(hostname -s) 因 iPhone 远离而被 BLEUnlock 锁定。"
        ;;
    lost)
        notify "$(hostname -s) 因信号丢失而被 BLEUnlock 锁定。"
        ;;
    unlocked)
        #notify "$(hostname -s) 被 BLEUnlock 解锁。"
        ;;
    intruded)
        notify "$(hostname -s) 被手动解锁。" $(capture)
        ;;
esac

SnapshotUnlocker 是使用脚本编辑器创建的 .app,其脚本如下:

do shell script "/usr/local/bin/ffmpeg -f avfoundation -r 30 -i 0 -frames:v 1 -y /tmp/unlock-$(date +%Y%m%d_%H%M%S).jpg"

需要这个应用程序是因为 BLEUnlock 没有相机权限。 给予此应用权限可以解决这个问题。

资金支持

年度 Apple 开发者计划费用由捐赠资助。

如果您喜欢这个应用,我将非常感谢您能通过 Buy Me a CoffeePayPal Me 进行捐赠,以便我能继续维护。

致谢

图标基于从 materialdesignicons.com 下载的 SVG。 它们最初由 Google LLC 设计,并根据 Apache License 2.0 版授权。

许可

MIT

版权所有 © 2019-2022 Takeshi Sone。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号