2016-10-26 13 views
0

я, новичок в Kext программирования так моя проблема:SIP прочь на Mac OS, но до сих пор не можешь загрузить мой Kext

я, бег MacOS 10.11.6 я повернулся SIP выключен, но когда я пытаюсь загрузить мой Kext использованием kextload и используя флаг -v я получаю, который был успешно загружен мой Kext:

*Requesting load of /private/tmp/kern.kext. 
/private/tmp/kern.kext loaded successfully (or already loaded).* 

и проверить, что был загружен мой Kext я использовал kextstat:

152 0 0xffffff7f82db3000 0x2000  0x2000  com.SPX.kext.kern (1) 299868F4-9962-362D-AE3D-09579B6780DB <4> 

но когда я хвост мои ядра бревна от: /var/log/system.log с помощью команды: tail -f /var/log/system.log

я вижу эту ошибку:

MacBook-Pro com.apple.kextd[47]: kext signature failure override 

allowing invalid signature -67050 0xFFFFFFFFFFFEFA16 for kext

"/private/tmp/kern.kext" 

my kext - это простой мир hello kext и есть мой код

#include <mach/mach_types.h> 
#include <libkern/libkern.h> 

kern_return_t kern_start(kmod_info_t * ki, void *d); 
kern_return_t kern_stop(kmod_info_t *ki, void *d); 

kern_return_t kern_start(kmod_info_t * ki, void *d) 
{ 
    printf("hello world"); 
    return KERN_SUCCESS; 
} 

kern_return_t kern_stop(kmod_info_t *ki, void *d) 
{ 
    printf("bye kext"); 
    return KERN_SUCCESS; 
} 

заранее спасибо за любую помощь

редактировать:

так после многих испытаний был загружен его внешний вид, как Kext успешно, но когда дело доходит до вопроса код знака я прошел через Xcode Строить Настройки и там я нашел кода подписания так в коды подписания есть идентификационный кода подписания поэтому я его не кодовый знак, и я построю его с помощью инструмента для сборки Xcode xcodebuild -configuration Debug -target kern , но до сих пор до сих пор нет прогресса, поэтому я надеюсь, что кто-то поможет хотя бы дать ссылку или что-то еще.

+2

Сообщения, которые вы цитируете, как ядро, позволяют загружать независимо от неправильной подписи. – zneak

+0

Прежде всего, спасибо за быстрый повтор sir – jacky

+0

Но на самом деле system.log должен дать результат не той ошибке, о которой я упомянул выше. – jacky

ответ

0

Вывод, который вы получаете, предполагает, что kext загружается - подписание кода не является вашей проблемой.

Однако я замечаю, что ваши вызовы printf() не содержат никаких ограничений на линию. (\n) Не выводя целые строки, вы будете буферизовать сообщения дольше, чем вы ожидали, и запускать другие сообщения. Что-то вроде этого должно работать, и вы должны видеть свои сообщения в системном журнале:

printf("hello world\n"); 
+0

снова много спасибо – jacky

 Смежные вопросы

  • Нет связанных вопросов^_^