Mac 解鎖面板上的聯絡資訊

Mac 解鎖面板上的聯絡資訊

有人可以在 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 中沒有那麼多。

該字串仍然存在,但未使用,因為對話方塊現在僅顯示“要存取此計算機,您需要輸入密碼”。大膽添加如下一行即可不是工作:

"要存取這台計算機,您需要輸入密碼。"="打電話給我!道格。";

使用stringshexdump -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登入自訂登入畫面的許多不同方面,包括顯示的文字。

相關內容