Per modificare il testo della finestra di sblocco in Mac OS X 10.6 Snow Leopard
Il testo predefinito della finestra di sblocco, "Per accedere al computer, è necessario inserire la password.", È contenuto in uno dei file .nib in loginwindow.app e può essere modificato con alcune limitazioni.
Primo, cd nella directory corretta:
cd /System/Library/CoreServices/loginwindow.app/\
Contents/Resources/English.lproj/BuiltInAuth.nib
Il .nib che vogliamo modificare è keyedobjects.nib. Esistono due modi per modificare il file.
Modifica del file .nib con un editor di testo in chiaro
Per prima cosa dobbiamo convertire il file .nib codificato in binario in XML:
sudo plutil -convert xml1 keyedobjects.nib
Ora modifica keyedobjects.nib con qualsiasi editor di testo in chiaro; Ho usato vi. Ricorda di avere i permessi di root durante la modifica, tramite sudo o qualsiasi altra cosa:
sudo vi keyedobjects.nib
Sfortunatamente, non c'è un ottimo modo per andare direttamente alla voce corretta. Ci interessa l'articolo 40, ma gli oggetti sono inseriti in modo sequenziale senza indici. Fortunatamente, quello che stiamo cercando sembra essere la prima occorrenza della stringa "password". Quindi cerca solo "password". Troverai il testo corrente all'interno <string> tag.
In realtà, se vuoi essere un geek vi, puoi inserire la seguente sequenza di comandi vi:
1G41/^\t\t<[^/]
(Non premere return ovunque ma alla fine.)
Ciò che fa è andare all'inizio del documento e quindi cercare la quarantunesima occorrenza di una riga che inizia con due schede e una parentesi angolare sinistra che non è seguita da una barra. Funziona solo perché plutil formattato l'xml in un modo particolare. Stiamo cercando il 41 ° invece del 40 perché è un array a base zero.
Modifica del file .nib con Xcode
Puoi anche modificare i file .nib direttamente con Xcode, ma, in questo caso, IMO non è molto più semplice in questo caso, e più difficile da eseguire con i permessi di root, anche se è fattibile se hai paura di vi:
sudo /Developer/Applications/Xcode.app/Contents/MacOS/Xcode \
/System/Library/CoreServices/loginwindow.app/Contents/Resources/\
English.lproj/BuiltInAuth.nib/keyedobjects.nib
Come detto sopra, siamo interessati all'articolo 40, e Xcode ti mostra gli indici degli articoli, quindi puoi semplicemente scorrere fino all'elemento 40 e lo hai trovato.
Xcode richiede che il file .nib sia in formato binario1, tuttavia, per poterlo interpretare come .nib e fornire l'interfaccia di fantasia, quindi se vuoi farlo in quel modo, ometti tutti i " plutil -convert " indicazioni.
Modifica del file senza ottenere i permessi di root
Bene, devi ancora avere i permessi di root, ma puoi cambiare i permessi del file e non devi dare i permessi di root al tuo editor, se lo trovi più facile da gestire.
Cambiare (e successivamente modificare) i permessi del file dalla riga di comando:
chmod o+w keyedobjects.nib
chmod o-w keyedobjects.nib
Oppure modificali con il pannello Ottieni informazioni del Finder. Dovrai fare clic con il tasto destro del mouse e "Mostra contenuti" sulla finestra di login e su BuiltInAuth.nib per arrivare al file attraverso il Finder, comunque.
Quindi puoi utilizzare un editor, Xcode, vi o qualsiasi altra cosa, senza che sia necessario disporre dei permessi di root.
Cambiare il testo
Cambiare il testo stesso è abbastanza ovvio. Basta cambiarlo.
Sembra esserci un limite alla quantità di testo che verrà visualizzata nella finestra di sblocco - non andrà oltre le due linee che vedi con il default, anche se tu può riempire la seconda riga - quindi essere conciso.
Inoltre, se la stringa di testo è troppo lunga, sembra che interrompa del tutto lo sblocco; non visualizzerà affatto la finestra di sblocco. Ad esempio, una stringa di 447 caratteri mi ha fatto questo. Non so dove inizia la rottura, però.
Se si desidera iniziare una nuova riga in un punto particolare, non esiste alcun codice di escape o altro; metti una newline direttamente qui:
<string>line1
line2</string>
La prova è nel budino, o alcuni di questi:

Modifica del carattere (facoltativo)
È anche possibile modificare il carattere e la dimensione del punto dal valore predefinito di 13pt LucidaGrande-Bold. Cambia l'elemento 42 (per un editor di testo, cerca "LucidaGrande-Bold") per nominare qualsiasi font che desideri. (L'applicazione Libro Font mostrerà i caratteri disponibili, il formato sembra essere TypeFace-Weight con spazi spogliati.) La dimensione del punto è contenuta nella chiave NSSize appena prima della dichiarazione del font, nella voce 41.
Ecco un esempio in 8pt Futura-CondensedMedium:

Questa immagine tende a implicare che il limite di altezza non è in realtà due linee, ma una particolare altezza del pixel. (Sembra circa 34 pixel.) Quindi, se si riesce a trovare un font con un'altezza minore e un lead più piccolo, si potrebbe essere in grado di inserire più linee piene. (Potrebbe anche esserci una chiave nel file .nib per modificare l'altezza dell'area di visualizzazione.
Pensieri finali
Questo è tutto; hai finito. Non è obbligatorio, ma se lo hai convertito in xml e lo vuoi veramente, puoi convertire il .nib in formato binario:
sudo plutil -convert binary1 keyedobject.nib
Dovrai disconnetterti e rientrare per farlo diventare effettivo.
codesign verifica
Questa modifica influisce sulla verifica del codesign, tuttavia:
% codesign -vvvv /System/Library/CoreServices/loginwindow.app
/[...]/loginwindow.app: a sealed resource is missing or invalid
/[...]/loginwindow.app/[...]/keyedobjects.nib: resource modified
Non so quale effetto avrà, in definitiva, ma duplicherò il collegamento di Arjan con possibili effetti della mancata verifica dell'applicazione .