سؤال

أحصل على تقارير متضاربة من أماكن مختلفة. تقول مراجعة Engadget إن InputManager المكونات الإضافية التي يتم تجاهلها بالكامل (وتسبب في سلوك غريب إذا تم تحميل التطبيق في وضع 32 بت)، ولكن هذه قائمة الموضوعات البريدية يقول إنهم سيعملون إذا كان التوافق 32/64 بت صحيح.

لذلك لدي سؤالان:

  • هل نحصل على استخدام InputManagers في سنو ليوبارد؟
  • إذا كانت الإجابة بنعم، هل ستعمل بنفس الطريقة في الفهد. وإذا لم يكن هناك، فما هو جيد الحل البديل (لأن 1Password يعمل على ما يبدو على الإصلاح)؟
هل كانت مفيدة؟

المحلول

إذا كنت بحاجة حقا إلى ضخ التعليمات البرمجية في التطبيقات لإنجاز ما تحاول القيام به، فاستخدم mach_inject..

و فضلا ملف علة طلب السنانير حتى تتمكن من تنفيذ برنامجك بطريقة أكثر أمانا في المستقبل.

نصائح أخرى

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

أصبح التحميل التلقائي للحزم الموجودة في مجلدات InputManagers غير مدعومة رسميا. يتم تشديد شروط حزمة إدارة الإدخال الصالحة. من المرجح أن يتم تعطيل هذه الوظيفة في إصدار مستقبلي.

  1. يتم تقييد التثبيت صالح الآن على مجلد / مكتبة / InputManagers فقط. يتم تجاهل حزم في مواقع أخرى بصمت.

  2. يجب أن تكون جميع الملفات الموجودة في مجلد Bundle و / / مكتبة / InputManagers نفسها من قبل مستخدمي الجذر ومجموعة المسؤول. لا توجد ملفات داخل الحزمة يمكن أن تحتوي على مجموعة أو غيرها من أذونات الكتابة.

  3. لا يمكن تحميل العمليات التي تعمل مع امتياز الجذر (GetUID () == 0 أو GeteUID () == 0) تحميل أي مدير إدخال حزمة.

  4. تعذر تحميل العمليات التي تعمل مع امتياز مجموعة العجلات أي مدير إدخال حزمة.

  5. يجب أن تكون العملية في جلسة مساحة العمل النشطة في وقت تحميل الحزم.

  6. يجب ألا تكون العملية ملوثة عن طريق تغيير معرف المستخدم أو المجموعة (فحصها بواسطة ISSETUGID ()).

  7. لا توجد عمليات 64 بت يمكن تحميل أي مديري الإدخال حزمة.

يبدو أن Chax (Inputmanager Plugin for Ichat) قد تحول الآن إلى كونه قاذفة تطبيقات iChat: تقوم بتشغيل Chax.App ويتم تحميل iChat باستخدام Hacks UI الإضافي.

تبحث بسرعة في السلاسل في القاذفة الصغيرة Binary Chax.App/Contents/Macos/Chax، يبدو أنه يختار تقنية اعتراض مكتبة أسهل من Mach_Inject المذكورة بالفعل: بدلا من ذلك مجرد تعيين dyld_insert_libraries متغير البيئة قبل إطلاق التطبيق المستهدف الخاص بك (مثل LD_PRELOAD في Linux).

بطبيعة الحال، هذا لا يجعل المدخلات المفضلة لدي، والتعبئة وقابضته وأخفا، والعمل مرة أخرى في سنو ليوبارد - كانوا أكثر فائدة لأنهم عملوا مع جميع تطبيقات الكاكاو. لا تزال غير متأكد من أفضل الحل البديل سيكون لهذه التطبيقات.

لم أقم بتنزيل 1password 3 Beta لمحاولة معرفة ما كانوا يفعلونه، لأنه يبدو أنك يجب أن توقع التوقيع على NDA الظاهري أولا.

1Password 3.0 يعمل حول الحاجة إلى InputManager بواسطة Piggybacking على API المكونات في متصفح Safari في حين أن. توفر المقال المرتبط أيضا مقارنة واقعية للغاية من بدائل حقن الكود المختلفة للمبوتينغر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top