記事ディレクトリ
1. 環境整備
長々と話して、ポイント 3に直接ジャンプして実行を開始しないでください。! !
1.背景説明
- まず、私たちが何をするかを定義しましょう。実際、 macOSのカーネル モードで動作する単純なUSB ドライバーを作成するのは非常に簡単です。
- それで、それはどれほど簡単ですか?つまり、USB デバイスが macOS システムに接続されると、何かを感知して印刷することが。それでおしまい。もちろん、挿入された USB デバイスに macOS で一致するドライバーがないことを確認する必要があります。そうしないと、別のドライバーを探すことになり、ドライバーが一致する番ではなくなります。
- 次のものは翻訳しません。満足する必要があります
Xcode でサンプル コード プロジェクトを実行するには、macOS 10.15.5 以降および Xcode 11.5 以降を使用してください。
2.SIPとは?なぜSIPをオフにしたいのですか?
- SIP (System Integrity Protection)、システム完全性保護とは? なぜ閉鎖されたのですか?
- お使いのシステムの安全のために、SIP は、Apple によって審査されていないプログラムをmacOS システムで実行することを許可しません。
- これでわかりましたが、Apple が審査したのはどのようなプログラムでしょうか。この人物は、アプリ ストアからダウンロードしたプログラムや、Appleによって公証された開発者によって開発されたプログラムは、レビュー済みのプログラムと見なされると述べました。他のすべてはそうではありません。
- では、なぜ SIP をオフにしたいのでしょうか。これにより、実行したいドライバーがアプリ ストアからダウンロードされたものではなく、Apple による公証を受けていないことが非常に明確になります。したがって、プログラムを正常に実行するには、SIP をオフにする必要があります。
3. SIP (インテル プロセッサー) をオフにします。
- マシンを再起動し、Command (⌘)-R キーの組み合わせを押したままにします。回復モードに入ります。次のように:
- ターミナルを開き、 と入力します
csrutil disable
。 - システムを再起動してください。
4. サンプルコードのダウンロード
アドレスのサンプルコードをダウンロード
2. コンパイルして実行する
- Xcode を使用して、上記のサンプル コード プロジェクトを開きます。
- xcodeの左上にあるボタンをクリックしてコンパイルします.この間,以下のエラーが報告されることがあります.エラーメッセージに従って,自分のappleIdにログインし,チームを選択してください.
「SimpleUSBInterfaceDriver」の署名には、開発チームが必要です。Signing & Capabilities エディターで開発チームを選択します。
- コンパイルと実行が正常に完了すると、ターミナルがポップアップします. ターミナルで次のコマンドを実行します:
sudo cp -R SimpleUSBInterfaceDriver.kext ~
cd ~
sudo chown -R root:wheel SimpleUSBInterfaceDriver.kext
sudo chmod -R 755 SimpleUSBInterfaceDriver.kext
sudo kextload SimpleUSBInterfaceDriver.kext
- 上記の操作でもエラーが報告されます。
識別子 com.example.apple-samplecode.SimpleUSBInterfaceDriverVP92JH77XU を持つ拡張機能の読み込みが承認されていません。システム環境設定で承認してください。
- 次のようにプロンプトに従って
系统设置>隐私与安全性
、プログラムを内部で実行できるようにします。
- 許可した後、コンピューターを再起動するように求められます。それを実行してください。
- 先に進み、上記のコマンドを実行します。次に、
控制台
カーネルがドライバーを正常にロードしたことを示す、プログラムで次の出力を確認できます。
- 残念ながら、このドライバーに適合する USB デバイスは見つかりませんでした。