

Apple представила несколько новых механизмов безопасности, которые нам нужны для работы Crescendo.
Убедитесь, что вы перенесли приложение в свой директор /приложения, или расширение системы не загрузится.
Для первого запуска вам будет предложено утвердить расширение системы, после нажатия кнопки «Пуск».
Примечание: я заметил, что существует проблема, когда системные настройки не показывают кнопку разрешения. Я предполагаю, что это какая -то внутренняя проблема, которую Apple должна тренироваться. Нажатие обратно в системные настройки и навигация вперед снова, кажется, решает проблему.


Вам нужно будет включить полный доступ к дискому доступу для расширения системы.

Crescendo совместим только с> = 10.15.x и по крайней мере Xcode 10.
Этот проект состоит из трех основных компонентов:
Настоятельно рекомендуется протестировать этот код на виртуальной машине с отключением SIP, поскольку этот проект требует права на безопасность конечной точки, TCC и надлежащее подписание при включении SIP.
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequest systemextensionsctl developer on
Если вы хотите подписать свое собственное приложение, настоятельно рекомендуется прочитать документацию Apple о требованиях к расширению системы и от вреда.
Подписание и право-нетривиальное упражнение.
Я включил свой файл .xproj в этот релиз, чтобы начать начать. В будущем я, скорее всего, перейду к использованию нового файла XCConfig, поскольку это кажется гораздо более здравым подходом, вместо того, чтобы совершать файлы XPROJ. Если вы хотите просто создать пример приложения CLI, вы можете сделать это с помощью XCode.
Чтобы создать это приложение и запустить его в производственной системе MacOS, вам понадобится право на конечную точку и безопасность и сертификат разработчика от Apple.
Структура Crescendo может быть легко связана с любым приложением Swift. Я могу переехать в кокопод в будущем, но сейчас я не знаком с ними.
Пожалуйста, не стесняйтесь поднять проблему, если вы хотите увидеть добавленную функцию или столкнуться с проблемой. Если вы хотите внести свой вклад, пожалуйста, просто убедитесь, что вы запустите Swiftlint через свой код, прежде чем внести свой вклад.
Я вырезаю выпуски для скомпилированного приложения + подписанного и включите их на вкладку «Выпуск» по мере необходимости.
Если вы работаете на производственном Mac, вы не должны отключать SIP или AMFI. Эти инструкции для разработчиков, желающих внести изменения кода.
Вы включили расширение системы, нажав кнопку «Разрешить» в System Preferences -> Security & Privacy ? Если нет, вы не увидите никаких событий.
Вы включили полный доступ к диску в System Preferences -> Security & Privacy -> Privacy Tab ? Если нет, вы не увидите никаких событий.
Если вы столкнетесь с какими -либо проблемами, откройте Console.App и найдете crescendo или <your_bundle_id> / com.suprhackersteve в качестве фильтра, что должно помочь вам в устранении любых потенциальных проблем. Также хорошая идея проверить CrashReporter и посмотреть, разбилось ли расширение или вышло с fatalError .
Если вы хотите насильственно разгрузить расширение системы, существует элемент меню с именем «расширение системы выгрузки», который его разгрузит. Это действие может привести к нечетным побочным эффектам, сделайте это только в том случае, если вы знаете, что делаете.
Если вы добавили процесс в черный список, и он все еще может выполняться, не забудьте проверить реальный полный путь . Просто использовать /Applications/foo.app, будет недостаточно, чтобы предотвратить выполнение. Кроме того, многие приложения MacOS запущены через XPCProxy.