Jump to content
Sign in to follow this  
Followers 0
Andy Vandijck

Decompkernelcache 2.3 - kernel cache extraction tool (for MacOSX/iOS/WatchOS/AppleTVOS, Windows 32-bit, Windows 64-bit, Linux and Android)

11 posts in this topic

Recommended Posts

I updated the sources of the decompkernelcache tool.

Now it can do the following things with the prelinked kernel and its data:

- Uncompress prelinked kernel (package with drivers inside)

- Extract kernel (repackage possible with kextcache, kernel only)

- Extract kexts (including original folder source directory)

- List kexts

- Extract combined Info.plist resource

- Recompress uncompressed prelinked kernel to LZVN/LZSS


It can do this with prelinked kernel caches compressed with LZSS and LZVN.

It can also extract already decompressed prelinked kernel cache binaries.

It is also possible to specify an architecture to extract (in case of a multi architecture prelinked kernel cache).


It works with any version of the OS X kernel cache (It works for 32 and 64 bit, extracting all).


I tested it on a prelinked kernel of iOS also, it was able to do this to an iPhone 4S prelinked kernel too. (32-bit ARM)

It works on Mac OS X prelinked kernel data with any version or architecture (32/64-bit works, can extract Big Endian data so if you manage to have a PowerPC prelinked kernel it can handle them too).

It should be able to handle any architecture and any Darwin deployment target.

So if you have a decrypted prelinked kernel of iOS, Mac OS X, Apple TV (both Intel and ARM), Watch OS and any other like the HomePod OS you can use this tool on them too.


Update (V2.1):

Added WIN32 and WIN64 version (compiled with MingW-w64 for i386 and x86_64).

I used Apple's WebKitSupport library (for the CoreFoundation library) and a win32 port of libdispatch.

The binaries for CoreFoundation support came from iTunes's Apple Application Support installer (both 32 bit and 64 bit).

They are included.

It's adapted to work with Visual Studio too but needs a VC project edit as I only have a MacBook Air (without Windows on it).

I tested it on someone's computer and it works fine.


Update (V2.2):

Minor bug fixes.

Will do WIN32 and WIN64 version a bit later.


Update (V2.2 Windows):

Added WIN32 and WIN64 version.


Update (V2.2 Linux):

Added Linux version (post below, x86_64 and i386).

Other architectures are also supported and require libraries and bison below:

To build it you need a recent ICU4C (http://site.icu-project.org/download).

My own build of lib dispatch (https://github.com/vampirecat35/libdispatch).

My own corrected build of CoreFoundation lite for Linux (https://github.com/vampirecat35/CoreFoundation-Lite-Linux).

bison-2.4.1 which is specific because of IOCFUnserialize.yacc (https://ftp.gnu.org/gnu/bison/bison-2.4.1.tar.bz2).


Update (V2.2 iOS/WatchOS/AppleTVOS):

Added 32-bit and 64-bit versions for iOS, WatchOS and AppleTVOS (post below).


Update (V2.2 Android):

Added ARMV7 Android version (post below).

Added AARCH64 (ARM64) Android version (post below).

Added I686 Android version (post below).

Added X86_64 Android version (post below).


Update (V2.2 Visual Studio 2019):

Added X86 VS2019 Windows version (post below).

Added X64 VS2019 Windows version (post below).

I also optimised the code a little (No more warnings, not even for 32-bit builds).


Update (V2.3 OS X):

Added kernel cache recompression support from uncompressed prelinked kernel.

Added macOS 11 version (x86_64 and arm64).

Added Windows version (VS2019 X86_64 and I386, Mingw32, Mingw64).

Added iOS/AppleTVOS/WatchOS versions. *Requires MobileTerminal app*

Added Linux versions.

Added Android versions.

* NOTE: Copies are available also on GitHub... :cat:


Enjoy ;) :cards:


Added GitHub repo on my secondary account:





Edited by Andy Vandijck

Share this post

Link to post
Share on other sites
Posted (edited)

Added completely debugged Mac OS X, Windows 32-bit and Windows 64-bit version.

Everything works now on any type of prelinked kernel or kernel cache.

What it also can do is extract an uncompressed prelinked kernel or kernel cache binary.

Enjoy :D

Edited by Andy Vandijck

Share this post

Link to post
Share on other sites
Posted (edited)

Linux x86_64 version and needed .so libraries (made on Ubuntu 20.0.4 LTS).

Enjoy :cat:

EDIT: Updated version with latest CoreFoundation that will ever be available for Linux and newer version of Ubuntu.



Edited by Andy Vandijck

Share this post

Link to post
Share on other sites
Posted (edited)

Linux i386 version and needed .so libraries (made on Ubuntu 16.0.4 LTS).

Enjoy :cat:



Edited by Andy Vandijck

Share this post

Link to post
Share on other sites
Posted (edited)

Added ARMV7 iOS 32-bit version.

Added ARM64 iOS 64-bit version.

Added ARMV7K WatchOS 32-bit version.

Added ARM64_32 WatchOS 64-bit version.

Added AppleTVOS 64-bit version.

Needed certificate that you need to install on your iPhone/iWatch/AppleTV is included.

A terminal app is required.

Enjoy :cat:



Apple Development_ catvampire35@gmail.com (VC2F3CGZ22).cer.zip

Edited by Andy Vandijck

Share this post

Link to post
Share on other sites
Posted (edited)

Added Android versions.

ARMV7 Android version.

AARCH64 Android version.

X86_64 Android version.

I686 Android version.

A terminal app is required.

Enjoy :cat:


EDIT: Added new Android CoreFoundation Lite version (CF-1153.18).

The changes are on the GitHub repo.

EDIT2: Fixed CoreFoundation Lite version (CF-1153.18) for Linux build.

Binaries I did not build but are compatible with versions above (tested on Ubuntu).

EDIT3: V2.3 version.




Edited by Andy Vandijck

Share this post

Link to post
Share on other sites
Posted (edited)

MinGW32 / MinGW64 version.

Visual Studio 2019 version.

X86 build.

X64 build.

ARM version could be added with some time (needs CoreFoundation Windows ARM build).

I also did some minor code fixes.



Edited by Andy Vandijck

Share this post

Link to post
Share on other sites
Posted (edited)

Added uncompressed prelinked kernel recompress to LZVN/LZSS.


Edited by Andy Vandijck

Share this post

Link to post
Share on other sites

All versions for V2.3 are built.

Supported platforms:

- Android

- iOS

- AppleTVOS

- WatchOS

- macOS (X)

- Windows


Share this post

Link to post
Share on other sites
On 9/10/2020 at 9:38 AM, kocoman said:

Are the plans to support BootKernelExtensions.kc file? thanks

It is not compressed.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.


  • Similar Content

    • By chris1111
      Here my theme of OC 

      How to create are own Theme with Icnspack-Builder

      You can Download the themes with ➤ Themes Downloader
      You can also have the themes on ➤ Github
      You can also have the themes on ➤ HTML Page
    • By daltanious78
      Salve a tutti, un mio amico ha un iMac del 2006 core 2 duo (versione 5.1)  questo iMac fino ad un pò di tempo fà montava ancora OS X Lion (10.7.5) purtroppo per colpa dell'EFI a 32 bit e delle caratteristiche l'iMac non ha più aggiornamenti e neanche i programi, per questa regione il mio amico ha fatto un tentativo ed attraverso una "patch" è riusvito ad installare maverick...però non funzionano alcune periferiche (tra cvui la scheda video che fà dei glitch.
      Visto che non ci sono più supporti ne kext che possono fare funzionare le periferiche in maniera corretta abbiamo pensato di installarci ubuntu mate 20.04 con efi a 32 bit (esiste una versione che supporta il processore a 64 bit e l'efi a 32 bit) così da "rivitalizzarlo un pò" purtroppo non riusciamo in nessun modo a fargli vedere la chiavetta usb o i dvd da cui fare partire l'installazione.
      Qualcuno ha qualche idea di come poter risolvere il  problema e procedere con l'installazione "pulita" di linux?
      Grazie mile di tutto
    • By tlac
      Simple steps to create macOS Installer for Vmware on Linux or Windows
      This guide describes how you can create a Vmware image (vmdk) for installing macOS in Vmware. Most tutorials about this topic require an ISO installer file that was typically created in macOS or you have to download some preinstalled image file from unknown source. None of them are ideal. But if you follow the steps below, you will not need to access macOS and will use official and trusted sources.
      First of all download gibMacOS from here and set up
        Run the script to download the full macOS installer:
      on Linux: gibMacOS.command on Windows: gibMacOS.bat  
      Install qemu-img converter

      on Linux (Debian or Ubuntu):
      install qemu-tools package

      on Windows use this installer:
      when you run the installer, it is enough to select the "tools" and "dll library".
      Convert the downloaded BaseSystem.dmg to Vmware image
      run the following commmand in that directory where BaseSystem.dmg was downloaded (somewhere here: gibMacOS-master/macOS Downloads/publicrelease/061-44387 - 10.15.3 macOS Catalina)
      on Linux:
      qemu-img convert -O vmdk -o compat6 BaseSystem.dmg recovery.vmdk on Windows:
      c:\"Program Files"\qemu\qemu-img convert -O vmdk -o compat6 BaseSystem.dmg recovery.vmdk  
      Use the previously created image to install macOS in Vmware
      I assume you have a patched and working Vmware already. If not, find another guide but in nutshell:
      - confirm the VT-x is supported on your Intel machine (if you are on AMD you may not able to virtualize macOS or you need to do more work)
      - install VMware Workstation or VMware Workstation Player (free for non-commercial use)
      - use an unlocker to patch the Vmware to support macOS guest
       currently this works well: https://github.com/BDisp/unlocker/
      So when you are here you have a patched Vmware and a Vmware image (recovery.vmdk).
      Run Vmware and create a new virtual machine by choosing macOS guest. But add another hard disk as well with selecting to use an existing virtual disk. Browse the recovery.vmdk. You will get a warning about the image is not in the latest format but choose to keep the existing format.
      After you installed the macOS, install the vmware tools as well.
      Tested on Windows 10 with macOS Catalina 10.15.3 in Vmware 15.5 Player
      Comments are welcome.