是否可以通過C API而不是使用system()
調用加載內核擴展(kext
)?通過C API加載內核擴展?
0
A
回答
2
是的,你想要KextManager API。特別是,KextManagerLoadKextWithIdentifier()
可能是您希望用來加載安裝的kext的函數,而如果要加載不在/ System/Library/Extensions或/ Library/Extensions中的kext,則可能需要使用KextManagerLoadKextWithURL()
。在一個.app包中。
0
CFStringRef km_path = CFStringCreateWithCString(kCFAllocatorDefault, "/Library/Extensions/KauthORama.kext",
kCFStringEncodingUTF8);
CFURLRef km_url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, km_path,
kCFURLPOSIXPathStyle, true);
OSReturn status = KextManagerLoadKextWithURL(km_url, NULL);
if (status == kOSReturnSuccess){
syslog(LOG_NOTICE, "Loaded!");
}else{
syslog(LOG_NOTICE, "Lodaed error: %d", errno);
}
相關問題
- 1. 內核擴展未加載
- 2. 內核擴展加載但不運行
- 3. 通過JSON API擴展Activerecord
- 4. AIX內核擴展
- 5. 將偏好設置加載到Mac內核擴展中
- 6. 使用launchd在OS X中加載和配置內核擴展
- 7. OSX創建C++內核擴展
- 8. Mac內核編程通用內核擴展prinf()不起作用
- 9. OSX中的codesign和內核擴展(Kext):不會加載
- 10. iPad(iphone os)內核擴展
- 11. 通過擴展
- 12. 如何從C加載C擴展
- 13. 通過Firefox擴展下載到Firefox
- 14. 如何通過CSS擴展內容?
- 15. 對通過擴展
- 16. 通過Chrome擴展按內容類型阻止下載
- 17. 通過ANTLR和DLR擴展C#
- 18. 加載路徑和Ruby C擴展
- 19. dbgeng - 在C++中加載擴展dll?
- 20. 問題加載php_mysql.dll擴展
- 21. PHP擴展無法加載
- 22. 如果我的擴展程序無法通過chrome://擴展名重新加載我的Chrome擴展程序?
- 23. 通過代碼添加綁定擴展
- 24. 通過htaccess添加文件擴展名
- 25. 通過擴展添加可變性
- 26. PHP擴展未加載
- 27. Chrome擴展加載行爲
- 28. Magento擴展不加載MAMP
- 29. C++ Win32 API將驅動程序加載到內核空間
- 30. 如何讓php7通過apache加載擴展