<string>This is a string</string>
<integer>1</integer>
<data>RXh0ZXJuYWw=</data>
echo RXh0ZXJuYWw= | python -m base64 -d && echo
External
on the next line. We use the && echo
to output a newline after our text is spit out - this makes it easier to read.echo -n External | base64
RXh0ZXJuYWw=
which is exactly what we'd expect.<true/>
or <false/>
<string>
values in our <array>
like the above example. They are accessed by index (which is just the number they're at in the list).Comment
- this is just a comment to describe what the patch is doing.Disabled
- this is a bit counter-intuitive, but it's a boolean value that determines whether or not this patch is disabled. If set to <true/>
, the patch will be disabled, and Clover will ignore it. If set to <false/>
the patch is not disabled, and it will be applied.InfoPlistPatch
- this is a boolean value that tells Clover if we're patching the Info.plist of the kext instead of the binary.Name
- this is the actual kext we intend to patch.Find
- this is the base64 data we want to look for in the binary to patch.Replace
- this is what we will be replacing the Find
data with (if we find it).RXh0ZXJuYWw=
(which becomes External
when we decode the data) and replace it with SW50ZXJuYWw=
(which becomes Internal
when we decode it). The end result is that drives that are hot-pluggable (and normally considered external drives) will be displayed as internal drives and not have the orange icon on the desktop. This patching happens on the fly, and is non-destructive - meaning that the AppleAHCIPort kext remains untouched on the system.Disabled
key works - wo we'll change the <false/>
on the next line to <true/>
which sets this patch to disabled like so:<key>Patches</key>
is an opening array tag (<array>
) - and then we have 2 dictionaries - each with similar keys to what we worked with in the prior example (Comment, Disabled, Find, Replace). After the dictionaries, we see the closing array tag (</array>
). Our goal is to add a new dictionary in between the <array>
and </array>
tags while also avoiding slicing up the other existing dictionaries. The data that we'll be adding looks like so:</array>
tag like so: