[USB] macOS USB カーネルドライバー開発入門

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 デバイスは見つかりませんでした。

3.参考文献

おすすめ

転載: blog.csdn.net/C2681595858/article/details/127938586