문제

저는 충돌 보고서에서 다양한 장소입니다.Engadget 의 검토를 말한다 InputManager 플러그인을 완전히 무시(그리고 이상한 행동을 일으키는 경우 응용 프로그램이 로드에서 32 비트 모드)하지만, 이 메일링 목록에 스레드 그들은 말한 것입니다 작업하는 경우 32/64-bit 호환성은 옳습니다.

그래서 나는 두 개의 질문:

  • 우리가 우리 사용 InputManagers 눈에서 표범?
  • 그렇다면,그것은 작업에서와 동일한 방법으로 레오파드.고가 없는 경우,좋은 해결 방법이기 때문에(1Password 은 분명히 작업에 수정)?
도움이 되었습니까?

해결책

당신이 정말로 필요한 경우에 코드를 삽입하 신청하는 것을 성취 하려고 시도하고 있는,사용 mach_inject.

고하십시오 버그 요청하 후크할 수 있도록 구현 소프트웨어에서는 안전한 방법으로서 미래입니다.

다른 팁

http://developer.apple.com/releasenotes/cocoa/appkit.html#nsinputmanager

입력 관리자 폴더에 위치한 번들의 자동 로딩은 이제 공식적으로 지원되지 않습니다. 유효한 입력 관리자 번들 조건이 더욱 강화됩니다. 이 기능은 향후 릴리스에서 비활성화 될 가능성이 높습니다.

  1. 유효한 설치는 이제 /library /inputmanagers 폴더로만 제한됩니다. 다른 위치의 번들은 조용히 무시됩니다.

  2. 번들 및 /라이브러리 /inputmanagers 폴더 자체의 모든 파일은 루트 사용자 및 관리자 그룹이 소유해야합니다. 번들 내부의 파일에는 그룹 또는 기타 쓰기 권한이 없을 수 없습니다.

  3. 루트 권한으로 실행되는 프로세스 (getUid () == 0 또는 getEuid () == 0)는 번들 입력 관리자를로드 할 수 없습니다.

  4. 휠 그룹 권한으로 실행되는 프로세스는 번들 입력 관리자를로드 할 수 없습니다.

  5. 프로세스는 번들을로드 할 때 활성 작업 공간 세션에 있어야합니다.

  6. 사용자 또는 그룹 ID를 변경하여 프로세스를 오염 시켜서는 안됩니다 (issetugid ()에 의해 확인).

  7. 64 비트 프로세스는 모든 번들 입력 관리자를로드 할 수 없습니다.

Chax (ICHAT의 InputManager 플러그인)가 이제 ICHAT의 앱 런처로 전환 한 것처럼 보입니다. Chax.App을 실행하고 추가 UI 해킹으로 ICHAT를로드합니다.

작은 런처 바이너리 chax.app/contents/macos/chax의 문자열을 빨리 살펴보면 이미 언급 된 mach_inject보다 더 쉬운 라이브러리 가로 채기 기술을 선택하는 것 같습니다. dyld_insert_libraries를 설정합니다 Linux의 LD_PRELOAD와 같은 대상 앱을 시작하기 전에 환경 변수.

물론, 이것은 내가 좋아하는 입력 관리자, 멀티 클러치 및 애호가를 만들지 않으며 Snow Leopard에서 다시 작동하지 않습니다. 모든 Cocoa 앱과 함께 일했기 때문에 가장 유용했습니다. 이 앱에 가장 적합한 해결 방법이 확실하지 않습니다.

나는 당신이 가상 NDA에 먼저 서명 해야하는 것처럼 보였기 때문에 그들이하고있는 일을 시도하고보기 위해 1Password 3 베타를 다운로드하지 않았습니다.

1Password 3.0은 입력 관리자의 필요성을 중심으로 작동합니다. Safari의 브라우저 플러그인 API에서 피기 백 대신에. 링크 된 기사는 또한 입력 관리자에 대한 다양한 코드 주입 대안을 매우 실용적으로 비교할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top