نسخ الملفات إلى مجلدات نظام iPhone
سؤال
أنا أتطور من أجل 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 كبداية جيدة.