Informações de contato no painel de desbloqueio do Mac

Informações de contato no painel de desbloqueio do Mac

Alguém tem uma maneira de incluir informações de contato no painel de desbloqueio do Mac? Algo como:

Se encontrado, entre em contato com Meu Nome pelo telefone (555) 555-555 ou[e-mail protegido]

Portanto, se eu perdesse meu laptop, ele seria apresentado quando aberto.

Desbloquear após protetor de tela

Também tenho um cartão de visita colado na parte inferior, mas isso seria uma medida adicional.

Recompensapara identificar como editar o arquivo .nib de desbloqueio para adicionar as informações de contato

Responder1

Para editar o texto da janela de desbloqueio no Mac OS X 10.6 Snow Leopard

O texto padrão da janela de desbloqueio, "Para acessar este computador, você precisa digitar sua senha.", está contido em um dos arquivos .nib em loginwindow.app e pode ser modificado com certas limitações.

Primeiro, cdpara o diretório apropriado:

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

O .nib que queremos editar é keyedobjects.nib. Existem duas maneiras de editar o arquivo.

Editando o arquivo .nib com um editor de texto simples

Primeiro temos que converter o arquivo .nib codificado em binário para XML:

sudo plutil -convert xml1 keyedobjects.nib

Agora edite keyedobjects.nib com qualquer editor de texto simples; Eu usei vi. Lembre-se de ter permissões de root ao editá-lo, via sudo ou qualquer outra coisa:

sudo vi keyedobjects.nib

Infelizmente, não há uma ótima maneira de ir diretamente para a entrada adequada. Estamos interessados ​​no item 40, mas os objetos são inseridos sequencialmente sem índices. Felizmente, o que procuramos é a primeira ocorrência da string “senha”. Então basta procurar por “senha”. Você encontrará o texto atual dentro <string>das tags.

Na verdade, se você quer ser um geek do vi, você pode inserir a seguinte sequência de comandos do vi:

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

(Não pressione Enter em nenhum lugar, exceto no final.)

O que isso faz é ir até o topo do documento e procurar a 41ª ocorrência de uma linha que começa com duas tabulações e um colchete angular esquerdo que não é seguido por uma barra. Isso só funciona porque plutilformatou o xml de uma maneira específica. Estamos procurando o 41º em vez do 40º porque é um array baseado em zero.

Editando o arquivo .nib com Xcode

Você também pode editar arquivos .nib diretamente com o Xcode, mas, na IMO, não é muito mais fácil neste caso e é mais difícil de executar com permissão de root, embora seja possível se você tiver medo do vi:

sudo /Developer/Applications/Xcode.app/Contents/MacOS/Xcode \
/System/Library/CoreServices/loginwindow.app/Contents/Resources/\
English.lproj/BuiltInAuth.nib/keyedobjects.nib

Como afirmado acima, estamos interessados ​​no item 40, e o Xcode mostra os índices dos itens, então você pode simplesmente rolar para baixo até o item 40 e você o encontrou.

O Xcode exige que o .nib esteja no formato binary1, para que ele possa interpretá-lo como um .nib e fornecer uma interface sofisticada; portanto, se você quiser fazer dessa maneira, omita todas as " plutil -convert" instruções.

Editando o arquivo sem obter permissões de root

Bem, você ainda precisa ter permissões de root, mas pode alterar as permissões do arquivo e não precisa conceder permissões de root ao seu editor, se achar isso mais fácil de lidar.

Altere (e depois altere novamente) as permissões do arquivo na linha de comando:

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

Ou altere-os com o painel Obter informações do Finder. Você terá que clicar com o botão direito e "Mostrar conteúdo" em loginwindow e BuiltInAuth.nib para acessar o arquivo por meio do Finder.

Então você pode usar um editor, Xcode, vi ou qualquer outro, sem precisar ter permissões de root.

Mudando o texto

Alterar o texto em si é bastante óbvio. Apenas mude.

Parece haver um limite para a quantidade de texto que a janela de desbloqueio exibirá - ela não irá além das duas linhas que você vê no padrão, embora vocêpodepreencha a segunda linha – então seja conciso.

Além disso, se a sequência de texto for muito longa, parece interromper completamente o desbloqueio; ele não exibirá a janela de desbloqueio. Por exemplo, uma string de 447 caracteres fez isso comigo. Não sei onde começa a ruptura, no entanto.

Se você deseja iniciar uma nova linha em um local específico, não há código de escape nem nada; basta colocar uma nova linha ali:

        <string>line1
line2</string>

A prova está no pudim, ou algo assim:

insira a descrição da imagem aqui

Alterando a fonte (opcional)

Você pode até alterar a fonte e o tamanho dos pontos do padrão LucidaGrande-Bold de 13 pontos. Altere o item 42 (para um editor de texto, procure por "LucidaGrande-Bold") para nomear a fonte desejada. (O aplicativo Font Book mostrará as fontes disponíveis; o formato parece ser TypeFace-Weight sem espaços.) O tamanho do ponto está contido na chave NSSize logo antes da declaração da fonte, no item 41.

Aqui está um exemplo em 8pt Futura-CondensedMedium:

insira a descrição da imagem aqui

Esta imagem tenderia a implicar que o limite de altura não é na verdade duas linhas, mas uma altura específica de pixel. (Parece cerca de 34 pixels.) Portanto, teoricamente, se você puder encontrar uma fonte com altura menor e entrelinha menor, poderá caber mais linhas completas. (Pode até haver uma chave no arquivo .nib para alterar a altura da área de exibição. Porém, ainda não olhei.)

Pensamentos finais

É isso; Você Terminou. Não é obrigatório, mas se você o converteu para xml e realmente deseja, pode converter o .nib novamente para o formato binário:

sudo plutil -convert binary1 keyedobject.nib

Você terá que sair e entrar novamente para que ele tenha efeito.

codesignverificação

Esta edição afeta a verificação do codedesign:

% codesign -vvvv /System/Library/CoreServices/loginwindow.app
/[...]/loginwindow.app: a sealed resource is missing or invalid
/[...]/loginwindow.app/[...]/keyedobjects.nib: resource modified

Não sei que efeito isso terá, em última análise, mas duplicarei o link de Arjan parapossíveis efeitos de falha na verificação do aplicativo.

Responder2

Para 10.6, a única maneira de alterar o painel de desbloqueio parece ser alterando a ponta, como descrito muito bemna resposta de wfaulk.

Portanto, esta resposta só é útil para quem está no 10.5, ou para quem deseja alterar a mensagem na janela de login (ao invés do painel de desbloqueio). A janela de login também é usada na troca rápida de usuário, masnãopara um protetor de tela protegido por senha.

Para 10.5, é realmente muito fácil. Como adicionar uma mensagem de texto à janela de login (depois de acordar)em macosxhints.com explica:

Você pode editar a última [primeira, AvB] frase dessa caixa de diálogo editando o arquivo "loginwindow.strings" localizado em /System/Library/CoreServices/loginwindow.app/Contents/Resources/English.lproj. Você precisará clicar com a tecla Control pressionada em loginwindow.app para "Mostrar conteúdo do pacote" (o ".app" normalmente fica oculto).

A área a ser editada fica assim:

/********** Senha de bloqueio de tela **********/
/* Mensagem para desbloquear a caixa de diálogo modal de bloqueio de tela */
/* Não deve mencionar nada sobre o MÉTODO para autenticação */
/* como inserir uma senha. Instruções sobre o método para */
/* para autenticação será anexado pelo SecurityAgent */
"Digite sua senha para desbloquear a tela."="Você deve [..] tela.";

O texto em azul ["Você deve se autenticar para desbloquear a tela.", AvB] é o que você deseja alterar. Tenha cuidado para trabalhar apenas com uma cópia do aplicativo da janela de login para que você possa restaurar facilmente caso cometa um erro.

Na verdade, isso funciona bem em 10.5.8. (Certifique-se de salvar como UTF-16 big-endian. É necessário fazer logout após fazer alterações, e o OS X sempre adicionará o texto "O Mac OS X exige que você digite sua senha" ou qualquer linha aplicável.)

Não tanto em 10.6.

A string ainda está lá, mas não é usada, pois a caixa de diálogo agora diz apenas "Para acessar este computador, você precisa digitar sua senha". Ousadamente, adicionar uma linha como a seguinte faznãotrabalhar:

"Para acessar este computador, você precisa digitar sua senha."="Ligue para mim! Doug.";

Usando stringsou hexdump -C, o texto pode ser encontrado no nib (compilado) keyedobjects.nib, em /System/Library/CoreServices/loginwindow.app/Contents/Resources/English.lproj/BuiltInAuth.nib/ Criar um novo arquivo BuiltInAuth.stringscom a linha acima não ajuda . E para outras localizações, a ponta compilada também é diferente:

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

grep -iR \
  "Você deve usar sua palavra de segurança para toegang te krijgen neste computador." *
Arquivo binário Dutch.lproj/BuiltInAuth.nib/keyedobjects.nib corresponde

Como observado acima: vejaresposta de wfaulkpara alterar os textos nas pontas.

Para 10.6, pode-se alterar a imagemSecurity.icnsdentro da mesma pasta Recursos. (Testado em 10.6.1. Novamente, é necessário sair após fazer alterações.) Infelizmente, o ícone é dimensionado para caber em seu lugar original e isso deixa muito pouco espaço para jogar:

      Desbloquear tela com item personalizado

No entanto, isso quebraAssinatura de código, qualpoderafetarconfigurações de firewall, etalveztambém atualização de software. Não sei se isso é realmente um problema; veja mais detalhes emSe a assinatura de código do Mac for adulterada, o que poderá falhar?

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

/[..]/loginwindow.app: um recurso selado está faltando ou é inválido
/[..]/Contents/Resources/Security.icns: recurso modificado

Quando alguém está acostumado a bloquear a tela manualmente, entãona versão 10.6, uma solução alternativa pode ser usar a troca rápida de usuário. Tanto para 10.5 quanto para 10.6, o texto é facilmente adicionado à janela de login (que não é o mesmo que o painel de desbloqueio):

sudo defaults write /Library/Preferences/com.apple.loginwindow \
  LoginwindowText -string \
  'If found, please contact My Name at (555) 555-555 or [email protected]'

E, na versão 10.6, a troca rápida de usuário pode ser facilmenteadicionado ao menu Serviçose receberá um atalho de teclado. Ainda assim, isso seriaapenasfunciona ao bloquear manualmente o computador.

Responder3

Talvez seja melhor colocar essas informações na própria máquina (colar um cartão na parte inferior ou algo assim). A tela de desbloqueio pode não ser visível para quem a encontra, dependendo do último estado do laptop. Se a bateria acabar, eles não conseguirão ver nada na tela. Mesmo que eles o conectem, ele poderá inicializar na tela de login (dependendo se ele hibernou com sucesso, o que nem sempre acontece).

Você teria que colocar as informações em vários lugares se fizer isso em software. Será muito mais confiável criar uma solução de "hardware".

Responder4

Sim, isso é definitivamente factível (isto é, se estivermos pensando na mesma coisa).

Você pode usarVisageLoginpara personalizar vários aspectos diferentes da tela de login, incluindo o texto exibido.

informação relacionada