
Crescendoは、SwiftベースのmacOS向けリアルタイムイベントビューアです。AppleのEndpoint Security Frameworkを利用しています。


AppleはCrescendoを動作させるために有効にする必要があるいくつかの新しいセキュリティメカニズムを導入しました。
アプリを/Applicationsディレクトリに移動していることを確認してください。そうしないとシステム拡張がロードに失敗します。
初回実行時には、「開始」ボタンをクリックした後、システム拡張を承認するよう求められます。
注:システム環境設定で許可ボタンが表示されない問題があることに気付きました。これはAppleが修正する必要がある内部的な問題だと思います。システム環境設定に戻り、再度進むことで問題が解決するようです。

システム拡張に対してフルディスクアクセスを有効にする必要があります。

Crescendoは>=10.15.Xおよび少なくともXcode 10とのみ互換性があります。
このプロジェクトは3つの主要コンポーネントで構成されています:
SIPが有効な場合、このプロジェクトはendpoint-securityエンタイトルメント、TCC、および適切な署名を必要とするため、SIPを無効にした仮想マシンでこのコードをテストすることを_強く_お勧めします。
csrutil disable
nvram boot-args="amfi_get_out_of_my_way=0x1"
OSSystemExtensionManager.shared.submitRequestを呼び出すたびに拡張が再読み込みされるようにするsystemextensionsctl developer on
独自のアプリケーションに署名する場合は、Appleのシステム拡張の要件と公証に関するドキュメントを読むことを強くお勧めします。
署名とエンタイトルメントは簡単な作業ではありません。
このリリースには、使い始めるための.xprojファイルを含めています。将来的には、xprojファイルをコミットするよりもはるかに合理的なアプローチと思われる新しいxcconfigファイルを使用する予定です。単にサンプルのCLIアプリケーションをビルドしたい場合は、Xcodeで行うことができます。
このアプリケーションをビルドして本番macOSシステムで実行するには、endpoint-securityエンタイトルメントとAppleからのデベロッパー証明書が必要です。
Crescendoフレームワークは任意のSwiftアプリケーションに簡単にバンドルできます。将来的にCocoaPodsに移行するかもしれませんが、現時点ではあまり詳しくありません。
機能追加を希望する場合や問題に遭遇した場合は、遠慮なくIssueを提出してください。プルリクエストをコントリビュートする場合は、コントリビュート前にコードにswiftlintを実行してください。
コンパイル済みで署名済みのアプリのリリースを作成し、必要に応じてReleasesタブに含めます。
本番用Macで実行している場合は、SIPやAMFIを無効にすべきでは_ありません_。これらの手順はコード変更を希望するデベロッパー向けです。
システム環境設定 -> セキュリティとプライバシー の「許可」ボタンをクリックしてシステム拡張を有効にしましたか?有効にしていないと、イベントは表示されません。
システム環境設定 -> セキュリティとプライバシー -> プライバシータブ でフルディスクアクセスを有効にしましたか?有効にしていないと、イベントは表示されません。
問題が発生した場合は、Console.appを開き、crescendoまたは<your_bundle_id>/com.suprhackersteveをフィルターとして検索してください。これにより、潜在的な問題のトラブルシューティングに役立ちます。CrashReporterで拡張がクラッシュしたか、fatalErrorで終了したかを確認することもお勧めします。
システム拡張を強制的にアンロードしたい場合は、「Unload System Extension」というメニュー項目があり、それを選択するとアンロードされます。この操作は奇妙な副作用を引き起こす可能性があるため、理解している場合のみ行ってください。
ブラックリストにプロセスを追加したのにまだ実行が許可されている場合は、_実際のフルパス_を確認することを忘れないでください。単に/Applications/Foo.appを使用するだけでは実行を防ぐのに不十分です。また、多くのmacOSアプリケーションはxpcproxyを介して起動されます。