2 min read

MagicCFG - iDevice SysCFG Modifications

MagicCFG - iDevice SysCFG Modifications

The SysCFG is an area of storage on your iDevice reserved for storing persistent values, such as your devices Serial Number, and the Serials of each component. There are also other values which handle power management, hardware functions, and component pairing, which of-course persists through a device restore...

I was intrigued to see a GUI tool for such a task, as i’ve only ever interfaced directly with SysCFG via Terminal & a Serial Connection with the device, and a special lil bit of software i’d get in trouble for mentioning here!

With that in mind, I was super interested to check the tool out, as I absolutely love Automation & making the complex tasks feel so much easier 💖

Upon opening the MagicCFG, we are presented with this UI, which i’ve annotated my initial impressions/assumptions with the best of my graphic-design abilities (which aren’t too great, sorry!).

The software is very simple to use, and offers an intuitive interface for reading and writing the SysCFG Data.

It allows you to individually write each element of SysCFG, and I could see myself personally using this to rewrite my device serial numbers quickly during research! (Spending less time digging through my .zsh_history looking for the screen command and more time researching ☀️)

I could see this tool being very useful for users in the device-repair industry as it provides the facility to modify component serial numbers, which are a step in the right direction to enable full functionality of non-legitimate Apple components and passing MRI Presence Checks (Apple Store executes these tests to ensure your device is using legitimate Apple Components!)

Oops! 😅

While using MagicCFG, I has one little issue which temporarily rendered my display, for the most part, not very useful… i’ll explain!

I decided to experiment with the tool, backing up and restoring my SysCFG on my Research Device (iPhoneX), for fun! Following the restore, I rebooted my device just to check all is well - It seems there was an issue somewhere in the process as my display was no longer functioning, although I was able to access the device via Quicktime (Digitiser was also okay!).

I decided to try and troubleshoot the issue by backing up the current SysCFG (following the backup and restore) and diff it against my original to see if there were any noticeable differences.

There was actually a slight difference in the MtSN value, which is related to the correct functioning of the display ☀️

Here’s the original, correct value:


And here’s the value following the backup and restore:


Ah, I do love data parsing. It seems somewhere along the way, the + was removed during the restore of the SysCFG which I can only assume would be during the process of piping the data from MagicCFG to the handler that forwards the Serial Data to the device! I’m currently checking out the source code and working with the dev to try and figure that out ASAP!