Git Product home page Git Product logo

fengjixuchui / lilu Goto Github PK

View Code? Open in Web Editor NEW

This project forked from acidanthera/lilu

0.0 0.0 0.0 4.52 MB

Arbitrary kext and process patching on macOS

License: BSD 3-Clause "New" or "Revised" License

C++ 3.04% C 87.66% Shell 0.07% Assembly 0.03% Makefile 0.09% Python 1.55% Java 1.84% OCaml 1.07% PowerShell 0.06% VBA 0.17% FreeBasic 0.20% Tcl 0.01% C# 4.00% Smalltalk 0.01% SourcePawn 0.01% Cython 0.06% Visual Basic 6.0 0.16%

lilu's Introduction

Lilu

Build Status Scan Status

An open source kernel extension bringing a platform for arbitrary kext, library, and program patching throughout the system for macOS.

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

Installation

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 (macOS 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

Peculiarities

Most of the plugins cease to function in safe (-x) mode.
By default Lilu itself does not function in single-user (-s) mode, unless -liluforce is present.

Discussion

InsanelyMac topic in English
AppleLife topic in Russian

Contribution

For the contributors with programming skills the headers are filled with AppleDOC comments.
Earlier code changes could be tracked in AppleALC project.
Writing and supporting code is fun but it takes time. Please provide most descriptive bugreports or pull requests.

Credits

lilu's People

Contributors

07151129 avatar 0xfirewolf avatar al3xtjames avatar andrey1970applelife avatar cattyhouse avatar coderobe avatar dhinakg avatar dirkenstein avatar fcsd5k avatar fengjixuchui avatar goldfish64 avatar hieplpvip avatar khronokernel avatar kode54 avatar lvs1974 avatar malhal avatar pmheart avatar rehabman avatar savvamitrofanov avatar stormbirds avatar vandroiy2013 avatar vit9696 avatar wkpark avatar zhen-zen avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.