![Mac 解鎖面板上的聯絡資訊](https://rvso.com/image/1213757/Mac%20%E8%A7%A3%E9%8E%96%E9%9D%A2%E6%9D%BF%E4%B8%8A%E7%9A%84%E8%81%AF%E7%B5%A1%E8%B3%87%E8%A8%8A.png)
有人可以在 Mac 解鎖面板上添加聯絡資訊嗎?就像是:
如果找到,請致電 (555) 555-555 聯絡我的名字或[電子郵件受保護]
因此,如果我的筆記型電腦丟失了,打開時就會顯示出來。
我的底部也貼了一張名片,但這將是額外的措施。
賞金用於決定如何編輯解鎖 .nib 檔案以新增聯絡資訊
答案1
在 Mac OS X 10.6 Snow Leopard 中編輯解鎖視窗的文本
解鎖視窗的預設文字「要存取此計算機,您需要輸入密碼。」包含在 loginwindow.app 的 .nib 檔案之一中,並且可以在一定限制下進行修改。
首先,cd
到正確的目錄:
cd /System/Library/CoreServices/loginwindow.app/\
Contents/Resources/English.lproj/BuiltInAuth.nib
我們要編輯的 .nib 是 .nib keyedobjects.nib
。有兩種方法可以編輯該文件。
使用純文字編輯器編輯 .nib 文件
首先我們必須將二進位編碼的 .nib 檔案轉換為 XML:
sudo plutil -convert xml1 keyedobjects.nib
現在使用任何純文字編輯器編輯 keyedobjects.nib;我用的是vi。請記住在編輯時具有 root 權限,透過 sudo 或其他方式:
sudo vi keyedobjects.nib
不幸的是,沒有一個很好的方法可以明確地直接進入正確的條目。我們對第 40 項感興趣,但物件只是按順序輸入,沒有索引。幸運的是,我們正在尋找的恰好是字串“password”的第一次出現。所以只需搜尋“密碼”即可。您將在<string>
標籤內找到目前文字。
實際上,如果您想成為 vi 極客,您可以輸入以下 vi 命令序列:
1G41/^\t\t<[^/]
(除了最後不要按回車鍵。)
其作用是轉到文件頂部,然後搜尋第 41 次出現的以兩個製表符和一個左尖括號開頭且後面沒有斜線的行。這僅plutil
在以特定方式格式化 xml時才有效。我們正在搜尋第 41 個而不是第 40 個,因為它是一個從零開始的陣列。
使用 Xcode 編輯 .nib 文件
您也可以直接使用 Xcode 編輯 .nib 文件,但是,在我看來,在這種情況下,它並不是那麼容易,並且更難以 root 權限運行,儘管如果您害怕 vi,這是可行的:
sudo /Developer/Applications/Xcode.app/Contents/MacOS/Xcode \
/System/Library/CoreServices/loginwindow.app/Contents/Resources/\
English.lproj/BuiltInAuth.nib/keyedobjects.nib
如上所述,我們對第 40 項感興趣,Xcode 確實向您顯示了項目索引,因此您只需直接向下捲動到第 40 項即可找到它。
不過,Xcode 確實要求 .nib 為 binary1 格式,以便將其解釋為 .nib 並為您提供精美的介面,因此如果您想這樣做,請省略所有「 」plutil -convert
指示。
無需獲得 root 權限即可編輯文件
好吧,你仍然需要擁有 root 權限,但是你可以更改檔案的權限,而不需要向你的編輯器授予 root 權限,如果你覺得這樣比較容易處理的話。
從命令列更改(然後再改回)檔案權限:
chmod o+w keyedobjects.nib
chmod o-w keyedobjects.nib
或使用 Finder 的「獲取資訊」窗格更改它們。不過,您必須在登入視窗和BuiltInAuth.nib 上右鍵單擊並“顯示內容”,才能透過Finder 存取該檔案。
然後您可以使用編輯器、Xcode、vi 或其他任何工具,而無需具有 root 權限。
更改文字
更改文字本身是非常明顯的。只要改變它。
解鎖視窗將顯示的文字量似乎確實存在限制 - 它不會超出您在預設情況下看到的兩行,儘管您能填寫第二行——所以要簡潔。
另外,如果文字字串太長,似乎會完全破壞解鎖;它根本不會顯示解鎖視窗。例如,一個 447 個字元的字串就對我造成了這種影響。但我不知道破損從哪裡開始。
如果您想在特定位置開始新行,則沒有轉義碼或任何其他內容;只需直接在其中添加換行符即可:
<string>line1
line2</string>
證據就在布丁中,或類似的東西:
更改字體(可選)
您甚至可以更改預設的 13pt LucidaGrande-Bold 字體和磅值。更改第 42 項(對於文字編輯器,搜尋“LucidaGrande-Bold”)以命名您想要的任何字體。 (Font Book 應用程式將向您顯示可用的字體;格式似乎是 TypeFace-Weight 並刪除了空格。)點大小包含在字體聲明之前的 NSSize 鍵中,位於第 41 項中。
這是 8pt Futura-CondensedMedium 中的範例:
該圖像往往意味著高度限制實際上不是兩條線,而是特定的像素高度。 (看起來大約 34 像素。)因此,從理論上講,如果您能找到高度較小且行距較小的字體,則可能能夠容納更完整的行。 (.nib 檔案中甚至可能有一個用於更改顯示區域高度的鍵。不過我還沒看過。)
最後的想法
就是這樣;你完成了。這不是必需的,但如果您將其轉換為 xml 並且確實需要,則可以將 .nib 轉換回二進位形式:
sudo plutil -convert binary1 keyedobject.nib
您必須登出並重新登入才能使其生效。
codesign
確認
不過,此編輯確實會影響協同設計驗證:
% codesign -vvvv /System/Library/CoreServices/loginwindow.app
/[...]/loginwindow.app: a sealed resource is missing or invalid
/[...]/loginwindow.app/[...]/keyedobjects.nib: resource modified
我不知道最終會產生什麼效果,但我會將 Arjan 的連結複製到應用程式驗證失敗可能產生的影響。
答案2
對於 10.6,更改解鎖面板的唯一方法似乎是透過更改筆尖,就像描述得很好的那樣在wfaulk的回答中。
因此,這個答案僅對使用 10.5 的人有用,或者對想要更改登入視窗(而不是解鎖面板)上的消息的人有用。登入視窗也用於快速用戶切換,但是不是受密碼保護的螢幕保護程式。
以10.5來說,其實很簡單。 如何在登入視窗中加入簡訊(從睡眠中醒來後)macosxhints.com 上的解釋是:
您可以透過編輯位於 /System/Library/CoreServices/loginwindow.app/Contents/Resources/English.lproj 中的檔案「loginwindow.strings」來編輯該對話方塊的
最後一個[first, AvB] 句子。您需要按住 Control 鍵並點擊 loginwindow.app 來「顯示套件內容」(「.app」通常是隱藏的)。要編輯的區域如下所示:
/************ 螢幕鎖定密碼 **********/ /* 解鎖螢幕鎖定模態對話框的訊息 */ /* 它不應該提及任何有關身份驗證方法的內容 */ /* 例如輸入密碼。有關*/方法的說明 /* 用於身份驗證將由 SecurityAgent 附加 */ "輸入您的密碼以解鎖螢幕。"="您必須 [..] 螢幕。";藍色文字 [“您必須進行身份驗證才能解鎖螢幕。”,AvB] 是您要更改的內容。請注意僅使用登入視窗應用程式的副本,以便在出現錯誤時可以輕鬆恢復。
事實上,這在 10.5.8 上運行得很好。 (確保已儲存為 big-endian UTF-16。進行更改後需要登出,並且 OS X 將始終添加文字「Mac OS X 要求您輸入密碼」或任何適用的行。)
10.6 中沒有那麼多。
該字串仍然存在,但未使用,因為對話方塊現在僅顯示“要存取此計算機,您需要輸入密碼”。大膽添加如下一行即可不是工作:
"要存取這台計算機,您需要輸入密碼。"="打電話給我!道格。";
使用strings
或hexdump -C
,可以在 /System/Library/CoreServices/loginwindow.app/Contents/Resources/English.lproj/BuiltInAuth.nib/ 內的(編譯的) nib 中找到文本keyedobjects.nib
,使用上面的行創建一個全新的文件BuiltInAuth.strings
沒有幫助。對於其他本地化,編譯的筆尖也不同:
cd /System/Library/CoreServices/loginwindow.app/Contents/Resources/ grep -iR \ “U moet uw wachtwoord opgeven om toegang te krijgen tot deze 計算機。” * 二進位檔案 Dutch.lproj/BuiltInAuth.nib/keyedobjects.nib 匹配
就像上面提到的:參見沃克的回答更改筆尖中的文字。
對於 10.6,可以更改圖像Security.icns
在同一個資源資料夾中。 (在 10.6.1 中進行了測試。同樣,進行更改後需要註銷。)不幸的是,圖標被縮放以適應其原始位置,從而留下了很小的空間:
然而,這打破了程式碼簽名, 哪個可能影響防火牆設定, 和或許還有軟體更新。我不知道這是否真的是一個問題;查看更多詳細信息如果 Mac 程式碼簽章被竄改,可能會失敗?
codesign -vvv /System/Library/CoreServices/loginwindow.app /[..]/loginwindow.app:密封資源遺失或無效 /[..]/Contents/Resources/Security.icns:資源已修改
當習慣手動鎖定螢幕時,則在 10.6 中,解決方法可能是使用快速使用者切換。對於 10.5 和 10.6,文字可以輕鬆新增到登入視窗(與解鎖面板不同):
sudo defaults write /Library/Preferences/com.apple.loginwindow \
LoginwindowText -string \
'If found, please contact My Name at (555) 555-555 or [email protected]'
而且,在 10.6 中,可以輕鬆實現快速用戶切換新增至服務選單,並指派一個鍵盤快速鍵。儘管如此,這還是會僅有的手動鎖定電腦時工作。
答案3
您最好將該資訊貼在機器本身上(將卡片貼在底部或其他地方)。解鎖螢幕可能對找到它的人不可見,這取決於筆記型電腦的最後狀態。如果電池沒電了,他們將無法在螢幕上看到任何內容。即使他們將其插入,它也可能只是啟動到登入畫面(取決於它是否成功休眠,這並不總是發生)。
如果您在軟體中執行此操作,則必須將資訊放在多個位置。制定「硬體」解決方案會更加可靠。
答案4
是的,這絕對是可行的(也就是說,如果我們正在考慮同樣的事情)。
您可以使用Visage登入自訂登入畫面的許多不同方面,包括顯示的文字。