9
votes

CodeSigned KEXT mais pourquoi ne pas charger en yosemite (10.10)

J'ai eu un code qui signer sur KEXT dans Yosemite. Mais Kextload a échoué.
C'était la version2 codesign. codesign --verifier est vrai.
Mais Kextload est échoué. Pourquoi ne pas charger en yosemite?

Voici mon journal.

J'ai vérifié avec codesign -dvvv ./mykext.kext et tout va bien. << p> codesign -dvvvvvvvvv ./mykext.kext renvoyé suivant: xxx

Il montre que la version 2.
Mais sudo kextload ./mykext.kext renvoie ce qui suit:

/path/to/mykext.kext n'a pas réussi à charger - (libkern / kxxt) non chargée (raison non spécifiée); Vérifiez les journaux système / noyau pour des erreurs ou essayez Kextutil (8).

Cat /var/log/system.log retourne:

com.apple.kextd [19]: Erreur: Signature invalide pour com.mykext.kext.firewall, ne chargera pas

sudo kxttil -l ./mykext.kext retourne: xxx

pourquoi est une signature invalide ?!
J'ai signé avec la version2 codesign dans Yosemite.
Qu'est-ce que j'ai mal fait un signe? Quelqu'un m'apprends s'il te plait.


3 commentaires

Je devine juste, mais l'Apple n'aura pas besoin d'être impliqué dans la signature du code afin de le rendre valide?


Avez-vous demandé à Apple que votre développeurId a l'attribut KEX CODESIGNEDIGNED?


Cela ressemble au même problème que ceci: Stackoverflow.com/Questtions/26283158/...


3 Réponses :


8
votes

J'ai aussi eu le même problème. Et j'ai eu la solution partageant avec vous.

Apple a changé le programme de développeur MAC et supprimé la certification pour KEXT. Donc, même si vous êtes membre du programme Mac Developer, vous n'obtiendrez pas la certification du développement KEXT, à moins que vous ne le demandiez à Identifiant du développeur et portier .

BTW, Apples dit,

"La signature KEXT est destinée à la signature des keuex ou des projets d'expédition commerciale largement distribués dans une grande organisation."

Donc, ce que nous pouvons faire, c'est exécuter notre KEXT sur le mode de développement KEXT en ajoutant le "KEX-Dev- Mode = 1" Boot-Arg. Comme, xxx

et redémarrage.

Je souhaite que cela vous sera utile.


1 commentaires

Cette réponse est obsolète à partir d'El Capitan (10.11). Voir d'autres réponses pour plus de détails.



0
votes

Je suis d'accord avec ParaDevil réponse.
Pour OS X Yosemite Vous pouvez procéder comme suit:

  1. Télécharger "KERNEL DEBUG KIT"; LI>
  2. Package d'installation d'exécution; LI>
  3. continuer à "lire moi" étape; li>
  4. Le "Lisez-moi" dit: Li> ol>

    Pour charger des KEXT non signé, le système doit avoir "Mode de développeur KEXT" activé en ajoutant "KEXT-DEV-MODE = 1" BOOT-ARG. La commande suivante (suivie d'un redémarrage) conviendrait à la préparation d'un système de test de la non-production Kexts: Â Â P> blockQuote> xxx pré>

    Une fois que cela est fait, la machine sera en mesure de charger n'importe quel KXT valide; Les signatures seront toujours vérifiées, mais une vérification échouée sera juste entraîner un message de journal. Remarque: Ceci s'applique aux kexts contenant un Binary, ainsi que des kexts sans code (Plist uniquement). Le système restera en mode développeur jusqu'à ce que vous éliminiez manuellement le démarrage-arg. NVRAM et redémarrez. Vous pouvez quitter le mode Developer en redéfinissant le BOOT-ARG à vos paramètres précédents ou effacez votre démarrage-args comme suit: p> blockquote>

    Â Â Â P>

    sudo nvram boot-args="debug=0x146 kext-dev-mode=1"
    


0 commentaires

0
votes

à partir de décembre 2016:

Ceci est dû au Protection de l'intégrité système introduite à El Capitan (10.11). À partir de El Capitan, l'option de démarrage KEXT-DEV-MODE n'a aucun effet. La réponse de ParaDevil ne fonctionne pas. Au lieu de cela, vous devez désactiver la sip en suivant les instructions de Cette page :

  1. démarrage à la récupération OS en redémarrant votre machine et en maintenant la commande et les touches R au démarrage.

  2. terminal de lancement dans le menu Utilitaires.

  3. exécutez la commande suivante: XXX

    Lorsque vous redémarrez, la protection de l'intégrité du système doit être désactivée.


0 commentaires