9

したがって、kext に署名できる証明書がありますが、 > sudo kextload Friendly.kext を実行すると失敗し、必要な kext に署名し、署名されていることを証明するための診断出力を次に示します。

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk
friendly.kext: satisfies its Designated Requirement

spctl -a -vvvv friendly.kext

friendly.kext: accepted
source=Developer ID
origin=Developer ID Application: Friendly Corporation 
/Library/Extensions 

codesign -dvvv friendly.kext

Executable=/Library/Extensions/friendly.kext/Contents/MacOS/friendly
Identifier=com.friendly.friendly
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=502 flags=0x0(none) hashes=18+3 location=embedded
Hash type=sha1 size=20
CDHash=a1e2bf8d53ea67c6cfe9fc3d6d2001fe56c838a7
Signature size=8528
Authority=Developer ID Application: Friendly Corporation
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Oct 9, 2014, 11:49:02 AM
Info.plist entries=21
TeamIdentifier=1234567890
Sealed Resources version=2 rules=12 files=1
Internal requirements count=1 size=180

codesign --verify -vvvv friendly.kext

friendly.kext: valid on disk
friendly.kext: satisfies its Designated Requirement 

適切に署名されているようです。ただし、 > sudo kextutil -v friendly.kext を実行すると:

Defaulting to kernel file '/System/Library/Kernels/kernel'
Diagnostics for /Library/Extensions/friendly.kext:
Code Signing Failure: code signature is invalid
/Library/Extensions/friendly.kext appears to be loadable (not including linkage for on-disk libraries).
ERROR: invalid signature for com.techsmith.friendly, will not load 

証明書を間違ってダウンロードしたかのどちらかだと思います (kext 署名が承認されたことは間違いありません) が、以前に証明書を再ダウンロードしようとしたので、問題ではない可能性があります。そうでなければ、それは私が署名している方法です。署名する前にkextに設定した権限と関係があるのではないかと思いますか?

誰もこの問題を見たことがありますか?

前もって感謝します!

4

1 に答える 1

13

kext 署名証明書には、拡張子 "( 1.2.840.113635.100.6.1.18 )" がリストされている必要があります。これにより、kext 対応の証明書として指定されます。これは、Keychain Access.app で表示することで簡単に確認できます。(アプリに使用されていると思われる拡張子「( 1.2.840.113635.100.6.1.13 )」の下の下部近くにリストされているため、すべての開発者 ID 証明書に存在します)

于 2014-10-10T14:42:57.747 に答える