plug-ins InputManager dans Snow Leopard (OS X 10.6)

voix
2

Je reçois des rapports contradictoires de différents endroits. L'examen de Engadget dit plug-ins InputManager complètement ignorés (et de provoquer un comportement étrange si l'application est chargée en mode 32 bits), mais ce fil de la liste de diffusion dit qu'ils vont travailler si la compatibilité 32/64-bit est juste.

J'ai donc deux questions:

  • Avons-nous l'occasion d'utiliser InputManagers dans Snow Leopard?
  • Si oui, ça va fonctionner de la même manière que dans Leopard. Et si non, ce qui est bon une solution de contournement (parce que 1Password travaille apparemment sur un correctif)?
Créé 27/08/2009 à 06:12
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
3

Si vous avez vraiment besoin d'injecter du code dans les applications pour accomplir ce que vous essayez de faire, utilisez mach_inject .

Et s'il vous plaît déposer un bug demandant des crochets afin que vous puissiez mettre en œuvre votre logiciel de manière plus sûre à l' avenir.

Créé 30/08/2009 à 03:07
source utilisateur

voix
3

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

Le chargement automatique des faisceaux situés dans des dossiers InputManagers est maintenant officiellement non pris en charge. Les conditions de faisceau de gestionnaire d'entrée valide est plus serré. Cette fonctionnalité est susceptible d'être désactivé dans une version future.

  1. L'installation valide est maintenant limitée dans le dossier / Library / InputManagers uniquement. Bundles dans d'autres endroits sont ignorés silencieusement.

  2. Tous les fichiers du paquet et dossier / Library / InputManagers lui-même doit appartenir à l'utilisateur root et le groupe d'administration. Aucun à l'intérieur du paquet peuvent avoir un groupe ou d'autres autorisations d'écriture.

  3. Les processus en cours d'exécution avec les privilèges root (getuid () == 0 ou geteuid () == 0) ne peut pas charger un gestionnaire d'entrée du faisceau.

  4. Les processus en cours d'exécution avec le privilège de groupe de roue ne peut pas charger un gestionnaire d'entrée du faisceau.

  5. Le processus doit être à la session de l'espace de travail actif au moment du chargement des faisceaux.

  6. Le procédé ne doit pas être contaminé en changeant l'utilisateur ou l'identifiant de groupe (vérifié par issetugid ()).

  7. Aucun processus 64 bits peut charger les gestionnaires d'entrée du faisceau.

Créé 27/08/2009 à 16:47
source utilisateur

voix
1

1Password 3.0 fonctionne autour de la nécessité d'une InputManager par ferroutage sur le plug-in du navigateur Safari API à la place. L'article lié fournit également une comparaison très pragmatique des différentes alternatives d'injection de code à InputManagers.

Créé 01/09/2009 à 12:32
source utilisateur

voix
1

Il ressemble à Chax (un plugin InputManager pour iChat) a changé maintenant d'être un lanceur d'applications pour iChat: vous exécutez Chax.app et charges iChat avec hacks UI supplémentaires.

Regardant rapidement les cordes dans le petit lanceur Chax.app/Contents/MacOS/Chax binaire, il semble qu'il est le choix d' une technique d'interception bibliothèque plus facile que le mach_inject déjà mentionné: au lieu que vous venez de définir la DYLD_INSERT IGNORE _LIBRARIES variable d'environnement avant de lancer votre l' application cible (comme LD_PRELOAD sous Linux).

Bien sûr, cela ne fait pas mes InputManagers préférés, MultiClutch et Afloat, fonctionnent à nouveau dans Snow Leopard - ils étaient plus utiles parce qu'ils ont travaillé avec toutes les applications Cocoa. Pas encore sûr de ce que la meilleure solution serait pour ces applications.

Je ne l'ai pas télécharger le 1Password 3 beta pour essayer de voir ce qu'ils faisaient, parce qu'il ressemblait à vous devez signer un NDA virtuel en premier.

Créé 30/08/2009 à 22:56
source utilisateur

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