
Crescendo هو عارض أحداث في الوقت الحقيقي مبني على Swift لنظام macOS. يستخدم إطار عمل أمان نقاط النهاية من Apple.


قدمت Apple بعض آليات الأمان الجديدة التي نحتاج إلى تفعيلها لتشغيل Crescendo.
تأكد من نقل التطبيق إلى مجلد /Applications لديك وإلا سيفشل تحميل امتداد النظام.
في التشغيل الأول، سيُطلب منك الموافقة على امتداد النظام بعد النقر على زر 'بدء'.
ملاحظة: لاحظت وجود مشكلة حيث لا تظهر تفضيلات النظام زر السماح. أفترض أن هذه مشكلة داخلية تحتاج Apple إلى حلها. النقر للعودة إلى تفضيلات النظام ثم التصفح للأمام مرة أخرى يبدو أنه يحل المشكلة.

ستحتاج إلى تمكين الوصول الكامل للقرص لامتداد النظام.

Crescendo متوافق فقط مع >=10.15.X و Xcode 10 على الأقل.
يتكون هذا المشروع من ثلاثة مكونات رئيسية:
يُوصى بشدة اختبار هذا الكود في جهاز افتراضي مع تعطيل SIP، نظرًا لأن هذا المشروع يتطلب صلاحية endpoint-security و TCC والتوقيع المناسب عند تمكين SIP.
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequestsystemextensionsctl developer on
إذا كنت ترغب في توقيع تطبيقك الخاص، فمن المستحسن بشدة قراءة وثائق Apple حول متطلبات امتداد النظام و التوثيق.
التوقيع والصلاحيات مهمة غير تافهة.
لقد أدرجت ملف .xproj الخاص بي في هذا الإصدار لبدء المستخدمين. في المستقبل، من المحتمل أن أنتقل إلى استخدام ملف xcconfig الجديد حيث يبدو هذا نهجًا أكثر منطقية بدلاً من الالتزام بملفات xproj. إذا كنت ترغب ببساطة في بناء تطبيق cli المثال، يمكنك القيام بذلك باستخدام Xcode.
من أجل بناء هذا التطبيق وتشغيله على نظام macOS إنتاجي، ستحتاج إلى صلاحية endpoint-security وشهادة مطور من Apple.
يمكن تجميع إطار عمل Crescendo بسهولة مع أي تطبيق Swift. قد أنتقل إلى CocoaPods في المستقبل، لكنني غير معتاد عليها الآن.
لا تتردد في فتح مشكلة إذا كنت ترغب في رؤية ميزة مضافة أو واجهت مشكلة. إذا كنت ترغب في المساهمة بطلب سحب، يرجى التأكد من تشغيل swiftlint على الكود الخاص بك قبل المساهمة.
سأقوم بإنشاء إصدارات للتطبيق المترجم + الموقع وتضمينها في علامة التبويب 'الإصدارات' حسب الحاجة.
إذا كنت تعمل على Mac إنتاجي، فيجب عليك عدم تعطيل SIP أو AMFI. هذه التعليمات للمطورين الراغبين في إجراء تغييرات على الكود.
هل قمت بتمكين امتداد النظام بالنقر على زر 'السماح' في تفضيلات النظام -> الأمان والخصوصية؟ إذا لم تفعل، فلن ترى أي أحداث.
هل قمت بتمكين الوصول الكامل للقرص في تفضيلات النظام -> الأمان والخصوصية -> علامة التبويب الخصوصية؟ إذا لم تفعل، فلن ترى أي أحداث.
إذا واجهت أي مشكلات، افتح Console.app وابحث عن crescendo أو <your_bundle_id>/com.suprhackersteve كمرشح، يجب أن يساعدك ذلك في استكشاف أي مشكلات محتملة. من الجيد أيضًا التحقق في CrashReporter ومعرفة ما إذا كان الامتداد قد تعطل أو خرج مع fatalError.
إذا كنت ترغب في تفريغ امتداد النظام بالقوة، يوجد عنصر قائمة باسم 'تفريغ امتداد النظام' الذي سيقوم بتفريغه. قد يؤدي هذا الإجراء إلى آثار جانبية غريبة، افعل ذلك فقط إذا كنت تعرف ما تفعله.
إذا أضفت عملية إلى القائمة السوداء وما زالت مسموح لها بالتنفيذ، تذكر التحقق من المسار الكامل الحقيقي. استخدام /Applications/Foo.app ببساطة لن يكون كافيًا لمنع التنفيذ. أيضًا، يتم تشغيل العديد من تطبيقات macOS عبر xpcproxy.