codesigned kext Mais pourquoi ne pas charger dans le Yosemite(10.10)
J'ai eu un code de signature sur kext dans le Yosemite. Mais kextload est échoué.
Il a été version2 codesign. codesign --verify
est vrai.
Mais kextload est échoué. Pourquoi ne pas charger dans le Yosemite?
Voici mon journal.
J'ai vérifié avec codesign -dvvv ./myKext.kext
Et C'est tout droit.
codesign -dvvv ./myKext.kext
retourné suivantes:
Executable=/Path/to/myKext
Identifier=com.myKext.kext.Firewall
Format=bundle with Mach-O thin (x86_64)
CodeDirectory v=20100 size=317 flags=0x0(none) hashes=9+3 location=embedded
Hash type=sha1 size=20
CDHash=d0ff68bd8b49c650f45349c2d1570d45a8c1f148
Signature size=8544
Authority=Developer ID Application: My Kext Co., Ltd. (R2PBZJ465V)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=2014. 10. 31. 오전 11:09:35
Info.plist entries=18
TeamIdentifier=not set
Sealed Resources version=2 rules=12 files=1
Internal requirements count=1 size=188
Il montre que la version 2.
Mais sudo kextload ./myKext.kext
est de retour suivantes:
/Chemin/vers/myKext.kext pas réussi à charger - (libkern/kext) pas chargeable
(raison non précisée); vérifier le système d'/logs du noyau pour les erreurs ou les essayer
kextutil(8).
cat /var/log/system.log
retourne:
com.apple.kextd[19]: ERREUR: invalid signature pour
com.myKext.kext.Pare-feu, ne se charge pas
sudo kextutil -l ./myKext.kext
retourne:
Diagnostics for ./myKext.kext:
Code Signing Failure: code signature is invalid
ERROR: invalid signature for com.myKext.kext.Firewall, will not load
Pourquoi sont-signature non valide?!
J'ai signé avec version2 codesign dans le Yosemite.
Ce que j'ai fait mauvais signe? Quelqu'un enseigne-moi s'il vous plaît.
Avez-vous demandé de Apple que votre DeveloperID a le kext codesign attribut ajouté à cela?
Cela ressemble le même problème comme ceci: stackoverflow.com/questions/26283158/...
OriginalL'auteur | 2014-10-31
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème aussi. Et j'ai eu la solution de partage avec vous.
Apple a changé le Mac Developer Program, et retiré de la certification pour les kext.
Donc, même si vous êtes membre de Mac Developer Program, vous n'obtiendrez pas de certification pour les kext de développement, sauf si vous en faites la demande à IDENTIFIANT de développeur et Gatekeeper.
BTW, les Pommes dit,
Donc ce que nous pouvons faire est de lancer notre Kext sur le KEXT Mode de Développement par l'ajout de la "kext-dev - mode=1" boot-arg. Comme,
Et redémarrer.
Je souhaite que ce sera utile pour vous.
OriginalL'auteur ParaDevil
Je suis d'accord avec ParaDevil réponse.
Pour OS X Yosemite, vous pouvez effectuer les opérations suivantes:
Pour OS X El Capitaine 10.11 la commande:
n'a aucun effet.
Lire Système De Protection De L'Intégrité Guide/Les Extensions De Noyau pour plus d'informations.
OriginalL'auteur Danil Korotenko
En décembre 2016:
Cela est dû à la Système De Protection De L'Intégrité fonctionnalité qui a été introduite dans El Capitan (10.11). Comme d'El Capitan, le kext-dev-mode de démarrage option n'a aucun effet, donc ParaDevil réponse ne fonctionne pas. Au lieu de cela, vous devez désactiver le protocole SIP, en suivant les instructions à partir de cette page:
De démarrage de la Reprise de l'OS par le redémarrage de votre machine et en la maintenant enfoncée la Commande et de la R des touches au démarrage.
Lancer le Terminal à partir du menu Utilitaires.
Exécutez la commande suivante:
Lorsque vous redémarrez, l'Intégrité du Système de Protection doit être désactivé.
OriginalL'auteur Ben Visness