Bleunlock是一個小型菜單欄實用程序,可通過iPhone,Apple Watch或任何其他藍牙低能設備鎖定和解鎖Mac。
該文檔也可以在日語(日本語版はこちら)中獲得。
brew install bleunlock
從版本,解壓縮並移至應用程序文件夾中下載zip文件。
在第一次發佈時,它要求提供以下權限,您必須授予:
| 允許 | 描述 |
|---|---|
| 藍牙 | 顯然,需要藍牙訪問。選擇確定。 |
| 可訪問性 | 這是解鎖鎖定屏幕所需的。單擊“打開系統首選項” ,單擊左下方的鎖定圖標以解鎖,然後打開Bleunlock。 |
| 鑰匙鏈 | (並非總是問),如果詢問,您必須選擇始終允許,因為屏幕鎖定時需要它。 |
| 通知 | (可選)Bleunlock鎖定屏幕時在鎖定屏幕上顯示一條消息。知道它是否正常工作是有幫助的。此外,要查看鎖定屏幕上的消息,您需要將顯示預覽設置為始終在“通知”偏好窗格中。 |
注意:每個版本的MACOS所需的權限數量都會增加,因此,如果您使用的是較舊的操作系統,則可能不會要求您提供一個或多個權限。
然後,它要求您的登錄密碼解鎖鎖定屏幕。它將安全存儲在鑰匙串中。
最後,從菜單欄圖標中選擇設備。它開始掃描附近的BLE設備。選擇您的設備,您就完成了!
| 選項 | 描述 |
|---|---|
| 鎖定屏幕 | 它鎖定屏幕,無論BLE設備是否在附近,它都會鎖定屏幕;一旦BLE設備移開,它將解鎖,然後再次移動。這對於確保在離開座位之前鎖定屏幕很有用。 |
| 解鎖RSSI | 藍牙信號強度要解鎖。較大的值表明BLE設備需要更靠近MAC才能解鎖。選擇禁用以禁用解鎖。 |
| 鎖定RSSI | 藍牙信號強度要鎖定。較小的值表明BLE設備需要離MAC到鎖定。選擇禁用以禁用鎖定。 |
| 鎖定延遲 | 當Mac檢測到BLE設備不在時,它會鎖定Mac之前的持續時間。如果BLE設備在那個時候越來越近,則不會發生鎖定。 |
| 無信號超時 | 最後一個信號接收和鎖定之間的時間。如果您遇到頻繁的“信號丟失”鎖定,請增加此值。 |
| 喚醒接近 | 鎖定時BLE設備接近時,從睡眠中醒來。 |
| 醒來而無需解鎖 | 當顯示屏從睡眠中醒來時,Bleunlock不會解鎖Mac,無論是通過“靠近喚醒”或手動自動。這允許與Apple Watch功能內置的MACOS解鎖功能(可以在Bleunlock喚醒屏幕之後立即運行),或者如果您只希望鎖定屏幕更快地出現,但不希望它自動使用。 |
| 鎖定時暫停“現在玩” | 在鎖定/解鎖上,Bleunlock停頓/Untauses播放音樂或視頻(包括Apple Music,Quicktime Player和Spotify),這些播放由現在播放Widget或鍵盤上的⏯鍵控制。 |
| 使用屏幕保護程序鎖定 | 如果設置了此選項,則Bleunlock會啟動屏幕保護程序而不是鎖定。為了使此選項正常工作,您需要在睡眠或屏幕保護程序開始後立即設置“安全與隱私偏好窗格”選項。 |
| 關閉鎖鎖 | 鎖定時立即關閉顯示屏。 |
| 設置密碼... | 如果更改了登錄密碼,請使用此。 |
| 被動模式 | 默認情況下,它積極嘗試連接到BLE設備並讀取RSSI。在大多數情況下,建議使用默認值並穩定工作。但是,如果您使用的是其他藍牙事物,例如鍵盤,鼠標,軌道墊或最著名的藍牙個人熱點,則默認模式可能會相互干擾。 2.4GHz WiFi也可能會干擾。如果您遇到藍牙不穩定,請打開被動模式。 |
| 在登錄處啟動 | 登錄時啟動Bleunlock。 |
| 設置最小RSSI | RSSI低於此值的設備將不會在設備掃描列表中顯示。 |
如果您的BLE設備不是來自Apple,則Bleunlock可能無法找到設備名稱。如果是這種情況,則將您的設備顯示為UUID(長六核數字和連字符)。要識別設備,請嘗試將設備移離MAC或更遠的位置,然後查看RSSI(DB值)是否會發生相應的變化。
如果您在列表中看不到任何設備,請嘗試重置藍牙模塊,如下所述。
確保在系統偏好>安全與隱私>隱私>可訪問性中打開Bleunlock。如果已經打開,請嘗試再次將其關閉。
如果它要求在鑰匙扣中訪問自己的密碼許可,則必須始終選擇允許,因為在屏幕鎖定時需要它。
增加無信號超時。或嘗試被動模式。
首先,Shift + Option +單擊Menubar或Control Center中的藍牙圖標,然後單擊“重置藍牙模塊” 。
在MacOS 12蒙特雷中,此選項不再可用。而是在終端中鍵入以下命令以重置藍牙模塊:
sudo pkill bluetoothd
此命令將詢問您的登錄密碼。
如果問題仍然存在,請打開被動模式。
與經典的藍牙不同,藍牙低能設備可以使用私人MAC地址。該私人地址可以是隨機的,並且可以不時更改。
iOS和Android的近期智能設備傾向於使用每15分鐘左右更改一次的私人地址。這可能是為了防止跟踪。
另一方面,為了使Bleunlock跟踪您的設備,其MAC地址必須是靜態的。
幸運的是,在Apple設備上,如果您使用與Mac相同的Apple ID簽名,則MAC地址已解決到True(公共)地址。
對於包括Android在內的其他設備,解決地址的方法是未知的。如果您的非應用設備隨著時間的推移更改其MAC地址,則不幸的是Bleunlock無法支持它。
要檢查MAC地址是否正確解析,請將Bleunlock設備掃描列表中顯示的MAC地址與設備上顯示的MAC地址進行比較。
在鎖定和解鎖時,Bleunlock在此處運行一個腳本:
~/Library/Application Scripts/jp.sone.BLEUnlock/event
根據事件的類型傳遞參數:
| 事件 | 爭論 |
|---|---|
| 由於RSSI低而被Bleunlock鎖定 | away |
| 由於沒有信號而被bleunlock鎖定 | lost |
| 由Bleunlock解鎖 | unlocked |
| 手動解鎖 | intruded |
注意:對於
intruded事件的工作正常,您必須在睡眠安全與隱私偏好窗格中立即設置“要求密碼”。
這是一個示例腳本,該腳本在手動解鎖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 ) is locked by BLEUnlock because iPhone is away. "
;;
lost)
notify " $( hostname -s ) is locked by BLEUnlock because signal is lost. "
;;
unlocked)
# notify "$(hostname -s) is unlocked by BLEUnlock."
;;
intruded)
notify " $( hostname -s ) is manually unlocked. " $( 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開發人員計劃費用由捐款資助。
如果您喜歡此應用程序,如果您可以通過給我買咖啡或Paypal我捐款,我將不勝感激。
圖標基於從Materialldesignicons.com下載的SVG。它們最初是由Google LLC設計的,並根據Apache許可證2.0版獲得許可。
麻省理工學院
版權所有©2019-2022 Takeshi Sone。