An open source kernel extension bringing a platform for arbitrary kext, library, and program patching throughout the system for macOS.
Features
You should install this kext along with the plugin kexts depending on it.
The prebuilt binaries are available on releases page.
Several existing plugins possibly with code samples are available on known plugins page. To compile a plugin copy the debug version of Lilu.kext into its directory.
Configuration
Copyright (c) 2016-2018, vit9696All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Features
- Generic kext patcher
- Generic process patcher (64-bit with basic 32-bit functionality)
- Generic framework/library patcher (64-bit with basic 32-bit functionality)
- Provides a unified plugin API
You should install this kext along with the plugin kexts depending on it.
The prebuilt binaries are available on releases page.
Several existing plugins possibly with code samples are available on known plugins page. To compile a plugin copy the debug version of Lilu.kext into its directory.
Configuration
- Add -liludbg to enable debug printing (available in DEBUG binaries).
- Add -liludbgall to enable debug printing in Lilu and all loaded plugins (available in DEBUG binaries).
- Add -liluoff to disable Lilu.
- Add -liluuseroff to disable Lilu user patcher (for e.g. dyld_shared_cache manipulations).
- Add -liluslow to enable legacy user patcher.
- Add -lilulowmem to disable kernel unpack (disables Lilu in recovery mode).
- Add -lilubeta to enable Lilu on unsupported os versions (10.13 and below are enabled by default).
- Add -lilubetaall to enable Lilu and all loaded plugins on unsupported os versions (use very carefully).
- Add -liluforce to enable Lilu regardless of the mode, OS, installer, or recovery.
- Add liludelay=1000 to enable 1 second delay after each print for troubleshooting.
- Add lilucpu=N to let Lilu and plugins assume Nth CPUInfo::CpuGeneration.
- Add liludump=N to let Lilu DEBUG version dump log to /var/log/Lilu_VERSION_KERN_MAJOR.KERN_MINOR.txt after N seconds
- Apple for macOS and lzvn decompression
- Brad Conte for SHA-256 implementation
- fG! for Onyx The Black Cat used as a base of the kernel patcher
- Nguyen Anh Quynh for capstone disassembler module
- Pike R. Alpha for original lzvn decompression
- Ralph Hempel for umm_malloc static pool allocator
- Vyacheslav Patkov for hde64 simple disassembler module
- 07151129 for some code parts and suggestions
- vit9696 for writing the software and maintaining it
Copyright (c) 2016-2018, vit9696All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.