This is irrelevant for 99% of you guys, it relates to the
com.apple.telemetry kernel panic that
@jackluke and I fixed a while ago. Feel free to ignore...
Skip to the end for TL;DR.
As far as I know, nobody ever figured out
why that file caused a panic, but removing/replacing it fixes the problem, so whatever. At the time, I wrote an AppleScript that disassembles system binaries and searches them for SSE4.2 instructions, and that wasn't one of the files it found. So I always maintained the opinion that it was something else.
But... according to
this post on a German site, it
was SSE4.2-related. They also provided a command to replace a byte string in the file, apparently fixing it. Unfortunately, that string doesn't match anything in the current version of the plugin.
So I searched for another way to check for SSE4.2 opcodes, and I found
this. After a bit of trouble installing it, I ran it on the plugin.
And... no SSE4.2.
Code:
will$ ./elfx86exts com.apple.telemetry
MODE64 (push)
CMOV (cmove)
SSE2 (ucomisd)
SSE3 (haddpd)
CPU Generation: Intel Core
I am confusion. Either the Germans are wrong about SSE4.2, which seems unlikely since they made a working patch, or this tool isn't working right.
Going to keep investigating. I'll test the byte replacement command against different versions of the plugin until I find one where it works, and then I can compare the binaries and see what it's doing. This is bothering me. If I can figure this out, it might be relevant to other issues in future macOS releases, as well as providing a cleaner patch for this system.
Sorry for the long and irrelevant message. Just keeping to my "always document things" rule. Hope you all are having a good day!
Edit: Testing on a file found by my AppleScript confirms that the tool
does work:
Code:
Zoe:~ will$ ./elfx86exts /sbin/fsck_cs
MODE64 (push)
SSE1 (movaps)
CMOV (cmove)
SSE42 (crc32)
SSE2 (movq)
CPU Generation: Nehalem
Anyways, I'll edit this comment if I find anything else, so as to not spam the thread.
Edit 2: Found where the patch
originated. Looks like it applies to DP3. Almost there!
Edit 3: So, the patch
does work, but it's built on a faulty assumption that the
first difference between the High Sierra and Mojave bundle is the
only one. Its creator seems to think it makes the Mojave plugin identical to the HS one... which it doesn't.
It actually just alters one field in the mach-o header:
the size of the load commands. It changes it from 1836 to 1732. That's all. What does that even
do? Presumably it basically truncates the readable area of the file? And in the process, somehow skips the panicky code? How does that even
work?
Edit 4: I'm beginning to think this patch just breaks the codesigning on the plugin and stops it from loading altogether... checking that now.
Edit 5:
One mystery solved! I was kind of right. This "patch" in fact corrupts the executable enough that it can't even load. Completely useless, might as well just delete it outright. So much for this being a lead on why that thingy was KP'ing my Penryn MacBook for a month...
This might remain a mystery forever.
TL;DR: I thought some InsanelyMac people and/or Germans figured out why the infamous telemetry plugin was crashing our Macs with old CPUs. Turns out their "patch" is nonsense and they don't know either.
If anybody actually read all this, thank you for your time, and sorry for wasting it.