Mac ロック解除パネルの連絡先情報

Mac ロック解除パネルの連絡先情報

Mac のロック解除パネルに連絡先情報を含める方法はありますか? たとえば次のようになります:

見つかった場合は、(555)555-555までご連絡ください。[メールアドレス]

したがって、ラップトップを紛失した場合、開いたときにこれが表示されます。

スクリーンセーバー後にロック解除

下部に名刺もテープで貼り付けてありますが、これは追加対策になります。

賞金ロック解除.nibファイルを編集して連絡先情報を追加する方法を確認する

答え1

Mac OS X 10.6 Snow Leopardのロック解除ウィンドウのテキストを編集するには

ロック解除ウィンドウのデフォルトのテキスト「このコンピューターにアクセスするには、パスワードを入力する必要があります。」は、loginwindow.app の .nib ファイルの 1 つに含まれており、一定の制限付きで変更できます。

まず、cd適切なディレクトリに移動します。

cd /System/Library/CoreServices/loginwindow.app/\
Contents/Resources/English.lproj/BuiltInAuth.nib

編集したい .nib は ですkeyedobjects.nib。ファイルを編集する方法は 2 つあります。

プレーンテキストエディタで.nibファイルを編集する

まず、バイナリエンコードされた .nib ファイルを XML に変換する必要があります。

sudo plutil -convert xml1 keyedobjects.nib

次に、任意のプレーンテキスト エディターで keyedobjects.nib を編集します。私は vi を使用しました。編集するときは、sudo などを使用してルート権限を持っていることを忘れないでください。

sudo vi keyedobjects.nib

残念ながら、適切なエントリに直接移動する優れた方法はありません。項目 40 に関心がありますが、オブジェクトはインデックスなしで順番に入力されています。幸い、探しているのは、文字列「password」の最初の出現です。したがって、「password」を検索するだけです。<string>タグ内の現在のテキストが見つかります。

実際、vi オタクになりたい場合は、次の vi コマンドのシーケンスを入力できます。

1G41/^\t\t<[^/]

(最後以外ではリターンキーを押さないでください。)

これは、ドキュメントの先頭に移動し、2 つのタブと左山括弧で始まり、その後にスラッシュが続かない行の 41 番目の出現を検索します。これは、plutilxml を特定の方法でフォーマットした場合にのみ機能します。ゼロベースの配列であるため、40 番目ではなく 41 番目を検索します。

Xcode で .nib ファイルを編集する

Xcode で .nib ファイルを直接編集することもできますが、私の意見では、この場合はそれほど簡単ではなく、ルート権限で実行するのが難しくなります。ただし、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 を .nib として解釈して高度なインターフェイスを提供するために、.nib が binary1 形式である必要があります。そのため、そのように実行する場合は、すべての " plutil -convert" 指示を省略します。

ルート権限を取得せずにファイルを編集する

そうですね、依然としてルート権限が必要ですが、ファイルの権限を変更して、エディターにルート権限を与える必要がないようにすることもできます。その方が扱いやすいと思うなら。

コマンドラインからファイルの権限を変更し(後で元に戻します)、

chmod o+w keyedobjects.nib
chmod o-w keyedobjects.nib

または、Finder の [情報を見る] パネルで変更します。ただし、Finder からファイルにアクセスするには、loginwindow と BuiltInAuth.nib を右クリックして [内容を表示] を選択する必要があります。

そうすれば、ルート権限を必要とせずに、エディター、Xcode、vi などを使用できるようになります。

テキストの変更

テキスト自体を変更するのは非常に明白です。変更するだけです。

ロック解除ウィンドウに表示されるテキストの長さには制限があるようです。デフォルトでは2行を超えることはありませんが、できる2 行目を埋めてください。簡潔にしてください。

また、テキスト文字列が長すぎると、ロック解除がまったく機能しなくなるようです。ロック解除ウィンドウがまったく表示されません。たとえば、447 文字の文字列ではこの問題が発生しました。ただし、どこで問題が発生するのかはわかりません。

特定の場所で新しい行を開始したい場合は、エスケープ コードなどはなく、そこに直接改行を入力するだけです。

        <string>line1
line2</string>

証拠は実績を見ればわかる、といったところでしょうか。

ここに画像の説明を入力してください

フォントの変更(オプション)

フォントとポイント サイズを、デフォルトの 13pt LucidaGrande-Bold から変更することもできます。項目 42 (テキスト エディターの場合は、「LucidaGrande-Bold」を検索) を変更して、任意のフォント名を入力します。(Font Book アプリケーションでは、使用可能なフォントが表示されます。形式は、スペースが削除された TypeFace-Weight のようです。) ポイント サイズは、項目 41 のフォント宣言の直前の NSSize キーに含まれています。

以下は 8pt Futura-CondensedMedium の例です。

ここに画像の説明を入力してください

この画像から、高さの制限は実際には 2 行ではなく、特定のピクセルの高さであることが示唆されます (約 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を使用しているユーザー、またはログインウィンドウ(ロック解除パネルではなく)のメッセージを変更したいユーザーのみに役立ちます。ログインウィンドウはFast User Switchingでも使用されますが、ないパスワードで保護されたスクリーンセーバー用。

10.5 の場合は、実は非常に簡単です。 ログインウィンドウにテキストメッセージを追加する方法(スリープ解除後)macosxhints.com では次のように説明されています:

/System/Library/CoreServices/loginwindow.app/Contents/Resources/English.lproj にあるファイル「loginwindow.strings」を編集することで、ダイアログの最後の[first, AvB] 文を編集できます。loginwindow.app をコントロール キーを押しながらクリックして、「パッケージの内容を表示」する必要があります (「.app」は通常非表示になっています)。

編集する領域は次のようになります。

/********** 画面ロックパスワード **********/
/* 画面ロックのロックを解除するためのモーダルダイアログのメッセージ */
/* 認証の方法については一切言及しない */
/* パスワードとして入力するなど。方法に関する説明 */
/* 認証用は SecurityAgent によって追加されます */
「画面のロックを解除するにはパスワードを入力してください。」="[..] 画面を開く必要があります。";

青色のテキスト ["画面のロックを解除するには認証が必要です。"、AvB] が変更する部分です。間違えた場合でも簡単に復元できるように、loginwindow アプリケーションのコピーのみで作業するように注意してください。

実際、これは 10.5.8 でも問題なく動作します。(必ずビッグ エンディアン UTF-16 として保存してください。変更を行った後はログアウトする必要があり、OS X は常に「Mac OS X ではパスワードの入力が必要です」というテキスト、または該当する行を追加します。)

10.6 ではそれほどではありません。

文字列はまだ残っていますが、ダイアログには「このコンピュータにアクセスするには、パスワードを入力する必要があります」とだけ表示されるため、使用されません。次のような行を大胆に追加すると、ない仕事:

「このコンピュータにアクセスするには、パスワードを入力する必要があります。」="電話してください!ダグ。";

stringsまたは を使用するとhexdump -C、テキストは (コンパイルされた) nib の /System/Library/CoreServices/loginwindow.app/Contents/Resources/English.lproj/BuiltInAuth.nib/ 内にあります。上記の行を含むkeyedobjects.nib新しいファイルを作成してBuiltInAuth.stringsも役に立ちません。また、他のローカリゼーションでは、コンパイルされた nib も異なります。

cd /System/Library/CoreServices/loginwindow.app/Contents/Resources/

grep -iR \
  「このコンピューターに問題が発生した場合、このメッセージは表示されません。」 *
バイナリファイルDutch.lproj/BuiltInAuth.nib/keyedobjects.nibが一致する

上で述べたように:wfaulk の回答ペン先のテキストを変更します。

10.6では、画像を変更することができますSecurity.icns同じリソース フォルダー内にあります。(10.6.1 でテスト済み。繰り返しますが、変更後はログアウトする必要があります。) 残念ながら、アイコンは元の場所に収まるように拡大縮小されるため、使用できる余地が非常に小さくなります。

      カスタムアイテムで画面のロックを解除

しかし、これはコード署名、 どれのかもしれない影響するファイアウォール設定、 そして多分ソフトウェアアップデートも必要です。これが本当に問題かどうかは分かりませんが、詳細はMac のコード署名が改ざんされた場合、何が問題になるでしょうか?

codesign -vvv /System/Library/CoreServices/loginwindow.app

/[..]/loginwindow.app: シールされたリソースが見つからないか無効です
/[..]/Contents/Resources/Security.icns: リソースが変更されました

手動で画面をロックすることに慣れている場合は、10.6では、回避策としてFast User Switchingを使用するのがよいかもしれない。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

その情報をマシン自体に書き込んでおくほうがよいかもしれません (カードを底にテープで貼るなど)。 ノート PC の最後の状態によっては、ロック解除画面が発見者に表示されない場合があります。 バッテリーが切れている場合は、画面に何も表示されません。 プラグを差し込んでも、ログイン画面が起動するだけかもしれません (正常に休止状態になったかどうかによって異なりますが、常にそうなるとは限りません)。

ソフトウェアで行う場合は、情報を複数の場所に置く必要があります。 「ハードウェア」ソリューションを作成する方がはるかに信頼性が高くなります。

答え4

はい、これは間違いなく実行可能です(つまり、私たちが同じことを考えている場合)。

使用できますVisageログイン表示されるテキストなど、ログイン画面のさまざまな側面をカスタマイズできます。

関連情報