سؤال

أنا أتطور من أجل jailbroken iPhone. أحتاج إلى كتابة (نسخ) ملف إلى مجلدات نظام iPhone (/Library/LaunchDaemons) التي يتمتع بها الجذر فقط. كيف يمكنني كتابة ملف إلى مثل هذه المجلدات من خلال الكود الخاص بي. أعلم أنه يمكنني استخدام NSFileManager's CopyItemAtpath: Topath Method لنسخ الملف ، لكنني لا أستطيع الكتابة لأنني لا أملك إذنًا للكتابة على مثل هذه المجلدات.

أي اقتراحات؟؟

هل كانت مفيدة؟

المحلول

أعتقد أنني وجدت إجابة لهذا السؤال. من أجل الكتابة إلى مجلدات النظام ، تحتاج إلى إذن للكتابة على هذا المجلد. كان للتطبيقي الخفي متصل به ، لذلك اضطررت إلى نسخ هذا الخفي إلى/نظام/مكتبة/LaunchDaemons لجعل هذا الخفي يعمل. لذا ، بينما أقوم بتطوير JB iPhone وسيقوم الأشخاص بتثبيت تطبيقي باستخدام Cydia ، لماذا لا تجعل Cydia تثبيت ملفات تطبيقي على المواقع المناسبة. لقد جعلت Cydia لنسخ ملف Daemon إلى/مجلد/Library/LaunchDaemon. الآن السؤال هو كيف ستعرف Cydia مكان لصق الملفات. الإجابة بسيطة ، فقط قم بعمل المجلدات المناسبة في ملف .DEB وسيقوم Cydia بصق الملفات الموجودة في المجلدات الموجودة داخل ملف .deb.

على سبيل المثال ، إذا كان لديك خفي وتريد لصق Cydia لـ/system/library/launchDaemons ، فقم بعمل بنية الملفات مثل هذا قبل إجراء .deb

+- MyApp
   +- Applications
      +Myapp.app
   +-DEBIAN
    -control
   +-System
     +-Library
       +-LaunchDaemons
         +- com.myLaunchDaemon.plist

سيقوم Cydia أثناء تثبيت تطبيقك بصق ملف com.mylaunchdaemon.plist في النظام/المكتبة/LaunchDaemons ، وإعادة التشغيل وأنت على ما يرام.

نصائح أخرى

يمكن أن يعمل تطبيقك كجذر أو جذر setuid.

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

لمزيد من المعلومات حول التحقق من الثنائيات http://en.wikipedia.org/wiki/Setuid كبداية جيدة.

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