mitgestaltet kext Aber warum nicht laden im Yosemite(10.10)
Hatte ich ein code signing auf kext in Yosemite. Aber kextload ist gescheitert.
Es war version2 codesign. codesign --verify
wahr ist.
Aber kextload ist fehlgeschlagen. Warum laden nicht im Yosemite?
Hier ist meine log.
Ich habe mit codesign -dvvv ./myKext.kext
Und Es ist alles in Ordnung.
codesign -dvvv ./myKext.kext
zurückgegeben folgenden:
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
Es zeigt sich, dass die version 2.
Aber sudo kextload ./myKext.kext
ist wieder die folgende:
/Pfad/zu/myKext.kext failed to load - (libkern/kext) nicht belastbar
(Grund nicht angegeben); check the system/kernel logs for errors oder versuchen
kextutil(8).
cat /var/log/system.log
gibt:
com.apple.kextd[19]: FEHLER: ungültige Signatur für
com.myKext.kext.Firewall, wird nicht geladen
sudo kextutil -l ./myKext.kext
gibt:
Diagnostics for ./myKext.kext:
Code Signing Failure: code signature is invalid
ERROR: invalid signature for com.myKext.kext.Firewall, will not load
Warum werden ungültige Signatur?!
Ich habe mit version2 codesign im Yosemite.
Was habe ich falsch Unterschreiben? Jemand belehren Sie mich bitte.
- Ich kann nur raten, aber nicht Apple involviert sein müssen in das code signing, damit es gültig ist?
- Haben Sie verlangt Apple, dass Ihr DeveloperID hat die kext codesign-Attribut Hinzugefügt, um es?
- Das sieht aus wie das gleiche problem wie dieses: stackoverflow.com/questions/26283158/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem auch. Und ich habe die Lösung mit Euch teilen.
Apple verändert die Mac-Developer-Programm und entfernt Zertifizierung für kext von ihm.
Also auch Sie sind Mitglied des Mac Developer Program, Sie werden nicht erhalten die Zertifizierung für die kext Entwicklung, es sei denn, Sie beantragen es bei Entwickler-ID und Gatekeeper.
BTW, Äpfel sagt,
Also, was wir tun können, ist unsere Kext auf der KEXT Entwicklung Modus, indem Sie die "kext-dev - mode=1" boot-arg. Wie,
Und neu starten.
Ich wünschte, dies wird hilfreich sein für Sie.
Ich Stimme mit ParaDevil Antwort.
Für OS X Yosemite können Sie Folgendes tun:
Für OS X El Captain 10.11 den Befehl:
keine Wirkung hat.
Lesen System Integrity Protection Guide/Kernel-Erweiterungen für weitere Informationen.
Ab Dezember 2016:
Dies ist aufgrund der System Integrity Protection Funktion, die eingeführt wurde in El Capitan (10.11). Wie der El Capitan, den kext-dev-mode " boot-option hat keine Auswirkungen, so ParaDevil Antwort funktioniert nicht. Stattdessen müssen Sie deaktivieren Sie die SIP durch die folgenden Anweisungen aus auf dieser Seite:
Boot-Recovery-OS durch einen Neustart Ihrer Maschine und halten Sie die Befehls-und R-Tasten beim Start.
Starten Sie das Terminal aus dem Dienstprogramme-Menü.
Führen Sie den folgenden Befehl ein:
Wenn Sie neu starten, System-Integrität-Schutz deaktiviert werden soll.