- Fixed analog audio device detection on certain laptops with Insyde firmware
- Added implicit
eraseCoverageInstPrefix
torouteMultiple
- Fixed user patcher kernel panic when running process via
posix_spawn
without exec - Fixed user patcher codesign issues on recent 10.14 versions with SIP
- Changed
kern_start
andkern_stop
to contain product prefix to avoid collisions
- Added support for modern AMD device scanning by @AlGreyy
- Added support for VMware device scanning
- Extended supported firmware vendor list
- Lowered version compatibility to 1.2.0 to let plugins load
- Fixed a rare kernel panic on user patch failure
- Removed unimplemented
genPlatformKey
API
- Added
kern_atomic.hpp
header to support atomic types with old Clang - Added ThreadLocal APIs
- Added
KernelPatcher::eraseCoverageInstPrefix
API - Fixed race condition during bootstrap (thx @Download-Fritz)
- Fixed potential race condition during user patching
- Fixed CPU generation detection for Coffee Lake-U
- Fixed PEGP detection with 3D Controller
class-code
- Fixed userspace patcher compatibility with macOS Mojave
- Allow manually specified reservation in
evector
- Improved version information printing in DEBUG builds
- Added support for detecting optimus switch-off
- Added Sanitize target with ubsan support (thx to NetBSD)
- Added disk log dump in DEBUG builds via
liludump=N
boot-arg (requires plugin rebuild) - Fixed multiple Mach-O parsing issues
- Fixed support of PCI devices without compatible property
- Fixed PCI
class-code
masking not detecting HDEF devices
- Added Cannon Lake and Ice Lake definitions
- Added missing typed getOSData APIs
- Added
-liluuseroff
boot-arg to disable user patcher (for e.g. shared cache manipulation) - Added
lilucpu=N
boot-arg to assume CPU generation - Added CPU topology detection APIs
- Fixed routeMultiple kernel panic and log report
- Switched to Apple lzvn implementation
- Added new DeviceInfo API
- Added checkKernelArgument API
- Added enforced LiluAPI interfaces
- Added KextInfo::switchOff API
- Added cpuid API
- Allowed for onKextLoad to accept no callback
- Removed GPU detection code from CPUInfo API
- Enabled by default on 10.14
- Internalize new APIs from 1.2.3
- Added new EFI runtime API with custom variable extensions
- Added new RTC storage API
- Added centralised entitlement hooking API
- Added lilu_os_qsort export (the supported interface is Apple-private)
- Added
liludelay=1000
boot argument to insert a 1s delay after each print - Added new symbol routing API with simplified interface
- Fixed a kernel panic in userspace patching code on 10.14b1
- Added CPU information API for cpu families and generations
- Added IGPU information API for framebuffers and stuff
- Added WIOKit::renameDevice API for device renaming with compatible fixing
- Added KernelPatcher::routeVirtual API for virtual function swapping
- Added PCI register and address manipulation API
- Added basic process modification API
- Added plugin IOService access
- Added address-printing macros
- Added address validation API
- Added strict kext UUID validation to workaround broken kextcache
- Added version info reporting to IORegistry for Lilu and plugins
- Fixed several inline function definitions
- Fixed crash when loading user patches with no binary patches
- Reduced long patch length in function routing API
- Acknowledged macOS Install Data and com.apple.recovery.boot prelinkedkernel paths (thx Piker-Alpha)
- Fixed ignoring
kcsuffix=<suffix>
for kexts and less common names - Added extra logging for backtrace macros to ensure that they are not skipped
- Fixed compilation issues with clang not supporting 2 args for deprecated attribute
- Fixed a rare kernel panic when running Lilu with
-liludbg
- Added a workaround for 10.13.2 beta issues
- Fixed compilation with Xcode 8.2
- Added prelink usage detection to avoid confusing different kernels
- Disabled prelink usage for kext address solving by default since it caused many issues
- Added more handy reporting macros
- Enabled Lilu in safe mode by default with all plugins required to declare supported environments
- Added lzss compression API
- Added crypto and nvram API
- Added support for solving kext symbols from kextcache
- Added memfunc wrappers (e.g. lilu_os_memcpy) to avoid undefined builtins from 10.13 SDK
- Added
-liludbgall
boot argument (to be on par with-lilubetaall
) - Added unexact process path matching
- Changed compression API logic to support preallocated buffers
- Changed memory allocation logic in certain APIs
- Changed kernel protection API to accept a lock for cpu preemption control
- Changed KextInfo structure to handle disabled and fsonly kexts
- Changed logging API to enforce more proper style
- Disabled advanced disassembly APIs by default (create an issue if you need them)
- Fixed a memory issue in WIOKit::getComputerInfo introduced in 1.1.7
- Fixed several assertions triggering in 10.13 development kernel
- Fixed Xcode 9 compiled binary compatibility with older OS
- Fixed FAT_CIGAM and FAT_MAGIC parsing issues
- Fixed a number of potential memory issues in mach parsing code
- Fixed debug and development kextcache loading issues
- Fixed shutdown issues in
-lilulowmem
mode - Fixed seldom boot slowdown when disabling the plugins via boot arguments
- Merged advanced disassembly API (thx Pb and others)
- Added HDE disassembler for quick instruction decoding (by Vyacheslav Patkov)
- Updated capstone to 3.0.5 rc3
- Fixed load API lock type preventing dynamic memory allocation (thx Pb)
- Added setInterrupts API
- Added an option to define custom plugin entry points
- Added const reference evector API
- Added FAT_CIGAM Mach-O support
- Added WIOKit::getComputerInfo API and improved some other WIOKit APIs
- Added support of storing larger than pointer types in evector
- Added
-lilubetaall
boot argument to skip version checking for all plugins
- Ignored disabled kexts earlier for speed reasons
- Added High Sierra to the list of compatible OS
- Added arrsize API
- Made patch count warning only show in debug mode
- Made kinfo not found logging only show in debug mode
- Added routeBlock API for opcode-based routing
- Centralised user and kernel patcher start time
- Added c-compliant kern_os_cfree implementation
- Added a workaround for page fault kernel panics
- Added a workaround for xnu printf limitations
- Increased executable memory buffer to page size
- Added auth-root-dmg support High Sierra installer detection (thx Piker-Alpha)
- Added -liluforce to force enable Lilu in safe mode and recovery
- Added preliminary Xcode 9 compatibility
- Added support for unloadable kexts
- Merged official capstone patches up to c508224
- Slightly improved userspace patcher speed for 10.12
- Added missing dyld_shared_cache detection with a fallback
- Defined High Sierra kernel version
- Reduced binary size by modding capstone
- Fixed LiluAPI::onProcLoad return code
- Added MachInfo::setRunningAddresses for userspace symbol solving
- Added getKernelMinorVersion for symmetry
- Added kernel write protection and interrupt state validation
- Changed loading policy to ignore kexts that are not permitted to load
- Increased executable memory buffer from 256 to 1024 bytes
- Allowed different plugins load the same kexts
- Added support for patching different sections/segments
- Added file writing API by lvs1974
- Added strrchr API
- Changed requestAccess to include API version to workaround kext loading issues
- Updated capstone to 3.0.5 rc2
- Improved 32-bit userspace patcher
- Enforced
-liluslow
in installer and recovery
- Initial release