{"id":21884104,"url":"https://github.com/leiless/generic_kext","last_synced_at":"2025-04-15T07:19:03.364Z","repository":{"id":140255041,"uuid":"146823217","full_name":"leiless/generic_kext","owner":"leiless","description":"Makefile for generic kernel extension","archived":false,"fork":false,"pushed_at":"2019-03-16T03:10:15.000Z","size":48,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-15T07:18:57.330Z","etag":null,"topics":["c","kext","makefile"],"latest_commit_sha":null,"homepage":null,"language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leiless.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-31T00:59:34.000Z","updated_at":"2023-08-01T10:16:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"b449ff15-5e11-4510-aa3b-a120498be5c1","html_url":"https://github.com/leiless/generic_kext","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leiless%2Fgeneric_kext","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leiless%2Fgeneric_kext/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leiless%2Fgeneric_kext/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leiless%2Fgeneric_kext/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leiless","download_url":"https://codeload.github.com/leiless/generic_kext/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249023746,"owners_count":21199961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","kext","makefile"],"created_at":"2024-11-28T10:12:18.598Z","updated_at":"2025-04-15T07:19:03.358Z","avatar_url":"https://github.com/leiless.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"Makefile for macOS generic kernel extension\n\n\nSummary:\n\nMakefile is a GNU makefile used to build macOS generic kernel extension without heavy XCode intervention.\n\n\nBasic Requirements:\n\nAs of macOS 10.10(Yosemite), unsigned(or ad-hoc signed) kernel extension cannot load by default.\n\nYou can specify kext-dev-mode=1 to boot-args of nvram:\n\n1. $ sudo nvram boot-args=\"kext-dev-mode=1\"\n2. $ sudo reboot\n\nAs of macOS 10.11(El Capitan), kext-dev-mode was deprecated.\n\nInstead, you need to disable System Integrity Protection(SIP) in order to load a kernel extension:\n\n1. Boot into recovery mode(via Command + R) when booting\n2. $ csrutil enable --without kext\n3. $ reboot\n\n\nBuild variables:\n\n[Mandatary]\n\nKEXTNAME - Short name for the kext(e.g. example)\n\nKEXTVERSION - Version number, see TN2420(e.g. 1.0.0)\n\nKEXTBUILD - Build number, see TN2420(e.g. 1.0.0d1)\n\nBUNDLEDOMAIN - Reverse DNS notation prefix(e.g. com.example)\n\n[Optional]\n\nCOMPATIBLE_VERSION - Compatible version(if you intended to implement a library kext)\n\nCOPYRIGHT - Human-readable copyright; default empty string\n\nSIGNCERT - Label of Developer ID cert in keyring for code signing; for ad-hoc signing  use single hyphen(e.g. -)\n \nARCHFLAGS - Architecture flags(x86_64, i386, arm, ppc, ...)\n\nPREFIX - Install/uninstall location; default /Library/Extensions\n\nBUNDLEID - KEXT bundle ID; default $(BUNDLEDOMAIN).kext.$(KEXTNAME)\n\nKEXTMACHO - Name of kext Mach-O executable; default $(KEXTNAME)\n\nMACOSX_VERSION_MIN - Minimal version of macOS to target, if you don't know, specify 10.4; default set to current system version\n\nSDKROOT - Apple Xcode SDK root directory to use\n\nCPPFLAGS - Additional precompiler flags\n\nCFLAGS - Additional compiler flags; example: -g, -Wunknown-warning-option, -msoft-float\n\nLDFLAGS - Additional linker flags\n\nLIBS - Additional libraries to link against\n\nKLFLAGS - Additional kextlibs flags; example: -unsupported\n\n\nJoke:\n\ncom.apple.kpi.private is for Apple internal use only, if you want to use private KPIs, please specify\nBUNDLEDOMAIN=com.apple and\nCOPYRIGHT=\"Copyright © XXXX Apple Inc. All rights reserved.\"\nWhich XXXX is a year number.\n\n\nReferences:\n\nhttps://github.com/droe/example.kext\n\nhttps://developer.apple.com/library/archive/technotes/tn2420/_index.html\n\nhttps://developer.apple.com/library/archive/technotes/tn2459/_index.html\n\nhttps://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KEXTConcept/Articles/infoplist_keys.html\n\nhttps://support.apple.com/en-us/HT204904\n\nhttps://clang.llvm.org/docs/ClangCommandLineReference.html\n\nhttps://opensource.apple.com/source/IOKitUser/IOKitUser-1445.40.1/kext.subproj/OSKext.c.auto.html\n\nhttp://www.goodbits.ca/index.php/2017/09/25/building-an-apple-osx-kernel-module-with-cmake-cc\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleiless%2Fgeneric_kext","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleiless%2Fgeneric_kext","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleiless%2Fgeneric_kext/lists"}