InputManager plug-ins em neve leopardo (OS X 10,6)

votos
2

Eu estou recebendo relatos conflitantes de vários lugares. Revisão do Engadget diz InputManager plug-ins sendo completamente ignorada (e causando um comportamento estranho se o aplicativo é carregado no modo de 32 bits), mas esta discussão lista de discussão diz que vai funcionar se a compatibilidade de 32/64-bit é certo.

Então, eu tenho duas perguntas:

  • Será que começa a usar InputManagers no Snow Leopard?
  • Se sim, ele vai trabalhar da mesma forma que no Leopard. E se não, o que é bom uma solução alternativa (porque 1Password é aparentemente trabalhando em uma correção)?
Publicado 27/08/2009 em 06:12
fonte usuário
Em outras línguas...                            


4 respostas

votos
3

Se você realmente precisa para injetar código em aplicativos para realizar o que você está tentando fazer, usar mach_inject .

E, por favor envie um erro solicitando ganchos para que você possa implementar seu software de forma mais segura no futuro.

Respondeu 30/08/2009 em 03:07
fonte usuário

votos
3

http://developer.apple.com/releasenotes/Cocoa/AppKit.html#NSInputManager

O carregamento automático de pacotes em pastas com InputManagers é agora oficialmente sem suporte. As condições de feixe de gestor de entrada válido é mais apertado. Esta funcionalidade é susceptível de ser desativado em uma versão futura.

  1. A instalação válida agora está restrito para a pasta / Library / InputManagers somente. Pacotes em outros locais são silenciosamente ignorados.

  2. Todos os arquivos no pacote e pasta / Library / InputManagers em si deve ser de propriedade do grupo de usuário root e administrador. Não há arquivos dentro do pacote pode ter grupo ou outras permissões de gravação.

  3. Processos em execução com o privilégio root (getuid () == 0 ou geteuid () == 0) não pode carregar qualquer gestor de entrada pacote.

  4. Processos em execução com o privilégio do grupo de roda não pode carregar qualquer gestor de entrada pacote.

  5. O processo deve ser na sessão de espaço de trabalho activa, no momento de carregar os feixes.

  6. O processo não deve ser maculada alterando usuário ou ID de grupo (verificado por issetugid ()).

  7. Não há processos de 64 bits pode carregar qualquer gerenciador de entrada pacote.

Respondeu 27/08/2009 em 16:47
fonte usuário

votos
1

1Password 3.0 funciona em torno da necessidade de uma InputManager por pegando carona em Safari plug-in API do navegador em seu lugar. O artigo ligado também fornece uma comparação muito pragmática de várias alternativas de código-injeção para InputManagers.

Respondeu 01/09/2009 em 12:32
fonte usuário

votos
1

Parece que Chax (um plugin InputManager para o iChat) mudou agora para ser um lançador de app para o iChat: você executar Chax.app e ele carrega o iChat com hacks UI extras.

Rapidamente olhando para as cordas do pequeno lançador Chax.app/Contents/MacOS/Chax binário, parece que ele está escolhendo uma técnica de interceptação biblioteca mais fácil do que o mach_inject já mencionados: em vez disso você apenas definir o DYLD_INSERT IGNORE _LIBRARIES variável de ambiente antes de lançar o seu alvo aplicativo (como LD_PRELOAD em Linux).

Claro, isso não faz meus InputManagers favoritos, MultiClutch e Afloat, trabalhar de novo no Snow Leopard - eram mais úteis, porque eles trabalharam com todos os aplicativos de cacau. Ainda não tenho certeza que a melhor solução seria para esses aplicativos.

Eu não baixar o beta 1Password 3 para tentar e ver o que eles estavam fazendo, porque parecia que você tem que assinar um NDA virtual em primeiro lugar.

Respondeu 30/08/2009 em 22:56
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more