【问题标题】:Ancient Kext, Signing issuesAncient Kext,签名问题
【发布时间】:2020-05-05 16:17:03
【问题描述】:

我有一个古老的 kext(最后支持 10.7.5)。它在禁用 SIP 等时起作用。 我的问题是,你能不能在那个古老的文本上签名?我已经试过]codesign -s "Developer ID Application:" --verbose Downloads/private/tmp/InstallerTemp/M-AudioFireWireBeBoB.kext/

【问题讨论】:

    标签: macos macos-catalina codesign kernel-extension


    【解决方案1】:

    你没有提供太多细节。签名会失败吗?如果成功了,kextutil path/to/M-AudioFireWireBeBoB.kext 说什么?

    我能想到的一些可能会导致问题的事情:

    • 我认为协同设计不适用于具有 32 位切片的 kext。因此,如果它是一个通用的 32/64 位 kext(或者如果它仍然有 PPC 切片 ?),请使用 lipo 提取 x86-64 二进制文件并仅使用它。
    • 签名证书必须具有与之关联的特殊 kext 签名功能。 Apple 仅允许在特殊要求时,常规的 Developer ID 应用程序证书不足以用于 kexts。
    • 在 macOS 10.14.5+ 和 10.15 上,kext 必须另外经过公证。创建 kext 的 zip 文件,并使用 xcrun altool --notarize-app 将其上传到 Apple。一旦获得批准,您可以使用xcrun stapler staple path/to/your.kext 将公证装订到 kext。有关详细信息,请参阅 Apple 关于公证的文档和 xcrun altool --help 的输出。

    【讨论】:

    • Kextutil 输出:Kext with invalid signature (-67062) allowed: <OSKext 0x7fd603524d00 [0x7fff92875670]> { URL = "file:///Library/Extensions/M-AudioFireWireBeBoB.kext/", ID = "com.m-audio.driver.firewire" } Code Signing Failure: not code signed
    • 是的,它仍然有一个 PPC 切片:D
    • 我想我不能用苹果公证它,因为我没有任何源代码,制造商也不会给我..
    • 当我运行` xcrun altool --notarize-app -u USER -p PASS -f M-AudioFireWireBeBoB.kext.zip --primary-bundle-id M-AudioFireWireBeBoB` 我得到Error: Unable to validate your application. We are unable to create an authentication session.
    • 当我尝试使用 lipo 时,它只会给我can't map input file: M-AudioFireWireBeBoB.kext (Invalid argument)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多