Category Archives: Information Technology

Recognitions

A few days ago, Anthony Reimer posted to his blog about Recognition, Retirement, and Remembrance. I suggest you give it a read. I don’t have much to say about Retirement and Remembrance, but I do feel I have a lot to say about recognition. While we don’t have any formal place to acknowledge recognition, I feel I can do so here.

First off, I should thank:

  • Anthony Reimer

I’ve gotten to know Anthony over the past few years. My last trip to MacAdmins we got to spend some time together in person and chat about everything and anything. He’s very knowledgable and extremely supportive of the community. While he’s not in Toronto, he does hang out in #toronto on slack, which has led to us getting to know one another better. Since the pandemic, he’s been coming to #toronto’s virtual meetups helping to bring a cross-Canada presence to the group. He’s also one of the few EDU folks, as such, faces a lot of the things I do.

I guess if we’re talking about one person in #toronto, we should talk about more:

  • Nathan, David, Jim, and Brad
  • Brian, François, Armin, “Gerk,” Meg, Colin, Ron, Nick, Dave, Ben, Alex, Sean, Codey, Dmitriy, Joseph, Ross, MatX, and Jason (and more who I’ve probably missed)

I’m trying to be careful here and respect people’s privacy. So I’m just putting down first names, or for someone who once requested in another blog post that I just use his screen name, I’ve used his screen name. The first group of people are on the MacBrainedYYZ committee with me. Together we plan meetups and these people are kind, funny, and wonderful to deal with. Together we have a fantastic group and they help keep #toronto a lively place with a lot of energy. When I first joined #toronto, it was dead. There was no one there.

They’ve helped open the doors to a lot of the people in the second row. I’d already really like to acknowledge Brian for always knowing everything I could ever want about Google Workspace. François for always being around for troubleshooting, and reminding me to file bug reports with Apple. Armin and Gerk for their incredible knowledge for scripting and always being happy to help with a novice like me.

I did a brief co-op during my high school days at Apple Canada. I worked with quite a few people there, most I bet are not at Apple any more. This was 1998 after all. But I’m going to thank:

  • Tony
  • Greg

I’ve got to work with some incredible people under me at my current place of employment, in chronological order:

  • Daniel
  • Shaun
  • Audrie

They’ve been fantastic. I’m really lucky to have worked with these three, and they’ve helped me out so much. They all have a very different set of skills and are all awesome.

When I worked at an Apple Authorized Reseller, I got to work with some great people, amongst those I want to point out:

  • Graeme
  • Vince

Graeme, Vince and I got really close and have forged a deep friendship. We all now work in EDU and are there to always help one another out.

MacAdmins community members not in #toronto:

Robert is always there to provide advice and is a fantastic sounding board. I recall my first time speaking at Penn State, he was in the room as I was preparing, and was able to offer his sage wisdom.

Adam just seems to know everything about everything. He’s the top contributor in #mosyle and one of the admins for the whole MacAdmins slack. Rich is just an endless resource of both hard and soft skills for MacAdmins, his documentation sessions at Penn State are both hilarious and informative. He’s also so open to share.

Former boss:

  • Matthew

A great guy, but also, I don’t think I’d have a career without him and his guidance.

All of you get, what I’m going to call this award, an Ankie. This is a community worth recognizing, so thank you all.

Plex Smart Playlists

People seemed to appreciate some guidance I gave on smart playlists, so I thought I would post this here for anyone looking for this info.

It began because Plex’s smart shuffle is terrible, and I didn’t know it was a feature you can turn off. But let’s start earlier.

I stopped using iTunes (Apple Music) a while ago and moved my music library over to Plex. Well, that’s a bit of a lie. I do still use Music to import CDs and use it for its file sorting features. I buy a new album (digital or physical), put it into Apple Music, then Resilio Sync syncs my ~/Music folder to my Plex server (and my offsite backup server).

So it starts here:

Apple Music screenshot

Then it ends up here:

Screenshot of Finder showing ~/Music folder.

That syncs to the server via Resilio. And it’s indexed in Plex.

Screenshot of recently added music in Plexamp.

From there I can play my music anywhere. Handy dandy.

I have a playlist of “Wonderful Songs” which is just a smart playlist of any song that is 3 stars or more. This used to exist in iTunes for me. It is the default playlist I use. Unfortunately with Plex’s smart shuffle it was showing me the same songs every single time. It was really frustrating.

Turns out you can turn off Smart Shuffle by going into the Plex app (not PlexAmp), going to settings. Go to Library, show advanced, and there’s a checkbox there.

Screenshot of Plex

Boom. But I liked the workaround I was doing and I’m going to keep it, as well.

With Smart Playlists, you can choose to omit items that have been played in the last x days/weeks/months. So for my Wonderful Songs playlists, it looks like this:

Plex screenshot where Track Rating is greater than 3 stars and track last played is not the last 6 months.

And that’s not all, you can apply this same logic to video playlists:

Plex screenshot of a smart playlist logic. Show title contains "3rd Rock" or "Good Place" or "Bob's Burgers" or "Central Park" or "Taskmaster" or "No More" and Episode last played is not in the last 3 months.

Ta da!

System software from developer “Apple Inc.” has been updated.

Apple wants end users to know what they’re authorizing and what system/kernel extensions are running on their computer.

Yet I got this message. I have no idea what it is and what I’m authorizing. I know it’s from “Apple Inc.” but that’s it. There’s no GUI to show you what system/kernel extensions are running, so I have no idea what it is.

I can run systemextensionsctl list but that gave me:

0 extension(s)

I can run kextstat and I get the following, which doesn’t tell me what is pending approval or if any of them are unapproved. How am I supposed to know what is? Am I missing something? Am I supposed to know what’s going on? I checked System Information an the most recently modified extension is from 2020-10-10, so why is it bugging me to restart now, 5 months later?

I feel like there’s some information that Apple is just not giving to the end user and we’re supposed to trust them without thinking, which is, I think, the exact opposite of what this mechanism is meant to do.

Executing: /usr/bin/kmutil showloaded
No variant specified, falling back to release
Index Refs Address            Size       Wired      Name (Version) UUID <Linked Against>
    1  187 0                  0          0          com.apple.kpi.bsd (20.3.0) 9FE8C0DA-8ED0-381C-9CEC-2A779F3E1503 <>
    2   11 0                  0          0          com.apple.kpi.dsep (20.3.0) 9FE8C0DA-8ED0-381C-9CEC-2A779F3E1503 <>
    3  211 0                  0          0          com.apple.kpi.iokit (20.3.0) 9FE8C0DA-8ED0-381C-9CEC-2A779F3E1503 <>
    4  213 0                  0          0          com.apple.kpi.libkern (20.3.0) 9FE8C0DA-8ED0-381C-9CEC-2A779F3E1503 <>
    5  198 0                  0          0          com.apple.kpi.mach (20.3.0) 9FE8C0DA-8ED0-381C-9CEC-2A779F3E1503 <>
    6  119 0                  0          0          com.apple.kpi.private (20.3.0) 9FE8C0DA-8ED0-381C-9CEC-2A779F3E1503 <>
    7  134 0                  0          0          com.apple.kpi.unsupported (20.3.0) 9FE8C0DA-8ED0-381C-9CEC-2A779F3E1503 <>
    8    0 0xfffffe00079d8000 0x4000     0x4000     com.apple.kec.InvalidateHmac (1) 809F4E2C-5019-3382-AD0F-991083B481F9 <7 6 5 4 3>
    9    7 0xfffffe00079e8000 0x8000     0x8000     com.apple.kec.Libm (1) C1CD4F9D-88A5-35F6-9CB1-ACF1F7AB03AC <4>
   10   17 0xfffffe0007ac0000 0x1c000    0x1c000    com.apple.kec.corecrypto (11.1) E7263606-770E-3C0F-B5A1-F10042B34365 <7 6 5 4 3 1>
   11    0 0xfffffe0007b08000 0x4000     0x4000     com.apple.kec.pthread (1) F0270323-8E7F-362D-AFD9-3368437B02B7 <7 6 5 4 3 1>
   12    0 0xfffffe0007020000 0x4000     0x4000     com.apple.nke.applicationfirewall (310) 00B2D2BB-9E5A-366C-8F20-EF8325034FE0 <7 6 5 4 3 1>
   13   28 0xfffffe00078b0000 0x4000     0x4000     com.apple.iokit.IOReportFamily (47) 9ADDDDA4-EEC2-3CD1-9B10-6755522844FB <5 4 3>
   14    1 0xfffffe00078e0000 0x4000     0x4000     com.apple.iokit.IOSlowAdaptiveClockingFamily (1.0.0) 1FA73AF4-54E7-33F1-949D-1FCFA758962A <7 6 5 4 3 1>
   15   10 0xfffffe00078e4000 0x4000     0x4000     com.apple.iokit.IOStorageFamily (2.1) 56FEA90C-4868-3086-BA0D-4147A2FFA126 <7 6 5 4 3 1>
   16   90 0xfffffe0007050000 0xc000     0xc000     com.apple.driver.AppleARMPlatform (1.0.2) 53D29C42-BCB1-384D-BE79-DAB9ED503C6C <15 14 13 7 6 5 4 3 1>
   17    5 0xfffffe00077fc000 0x4000     0x4000     com.apple.iokit.IOCryptoAcceleratorFamily (1.0.1) 08DDF9F9-ABAF-3823-9F28-866ED45ADD5F <7 5 4 3 1>
   18    1 0xfffffe00073a0000 0x8000     0x8000     com.apple.security.AppleImage4 (3.0.0) CD350B45-BDBC-360F-AD51-79F86DB983E1 <17 16 10 7 6 5 4 3 1>
   19    1 0xfffffe0007664000 0x4000     0x4000     com.apple.kext.CoreTrust (1) B5B3216B-8029-35DC-B6E2-789F746F4508 <10 4>
   20   14 0xfffffe0007424000 0x14000    0x14000    com.apple.driver.AppleMobileFileIntegrity (1.0.5) 049EE20E-B1F5-3A79-A2A5-AC55F015074B <19 10 7 6 5 4 3 2 1>
   21    2 0xfffffe00073fc000 0x4000     0x4000     com.apple.kext.AppleMatch (1.0.0d1) A44A5218-A14E-3472-853C-5191F5DB5319 <4 1>
   22    2 0xfffffe0007a08000 0x18000    0x18000    com.apple.security.sandbox (300.0) E702A1C6-1447-3B89-9658-74D6903635A7 <21 20 15 7 6 5 4 3 2 1>
   23    2 0xfffffe00079f8000 0x4000     0x4000     com.apple.security.quarantine (4) 615FE8F1-E714-38DE-8F6C-DD457D6EAD7A <22 21 7 6 5 4 3 2 1>
   24    0 0xfffffe0007524000 0x4000     0x4000     com.apple.AppleSystemPolicy (2.0.0) 775BA169-D338-3E68-8DCA-76BEAD5BBF9C <23 22 20 7 6 5 4 3 2 1>
   25    3 0xfffffe0007800000 0x4000     0x4000     com.apple.driver.IODARTFamily (1) AC191CE6-9C7A-3BDC-B2C9-E077ADE86866 <16 6 5 4 3 1>
   26   14 0xfffffe00078ec000 0x4000     0x4000     com.apple.iokit.IOSurface (289.3) 5A03892F-046B-370E-9C33-BDF3E84285F2 <7 6 5 4 3 1>
   27    4 0xfffffe00073c0000 0x2c000    0x2c000    com.apple.driver.AppleM2ScalerCSCDriver (265.0.0) 7EDE5375-4A56-3494-B6C0-340F301679F7 <26 25 16 7 5 4 3 1>
   28    4 0xfffffe0007328000 0x4000     0x4000     com.apple.driver.AppleFirmwareUpdateKext (1) 080C278B-A8C5-3402-870D-C9C5B4DCA1AD <18 10 7 6 5 4 3 1>
   29    5 0xfffffe00072dc000 0x8000     0x8000     com.apple.driver.AppleEmbeddedAudioLibs (1.17) DA73CE87-4789-3C91-9780-D3A84727C01D <28 16 7 5 4 3 1>
   30    7 0xfffffe0007788000 0x4000     0x4000     com.apple.iokit.IOAudio2Family (1.0) 12D981D8-C3F5-3791-99AF-28D1D2810979 <5 4 3 1>
   31    2 0xfffffe00077f8000 0x4000     0x4000     com.apple.iokit.IOCECFamily (1) 588C7ADD-359A-3F7C-8608-23755013AF4B <4 3>
   32    4 0xfffffe0007838000 0x8000     0x8000     com.apple.iokit.IOHDCPFamily (1.0.0) 8841FBD7-BE52-3290-B7BC-81BCC948A1E9 <5 4 3>
   33   11 0xfffffe000774c000 0x24000    0x24000    com.apple.iokit.IOAVFamily (1.0.0) 3054346D-71FF-3B4E-817B-5A51DBA51AF6 <32 31 30 29 16 9 7 6 5 4 3 1>
   34    1 0xfffffe0007024000 0x4000     0x4000     com.apple.AUC (1.0) 65090395-32F9-374D-A99E-9502BC6BE2AE <33 27 26 16 7 6 5 4 3 1>
   35   25 0xfffffe0007858000 0x8000     0x8000     com.apple.iokit.IOHIDFamily (2.0.0) D20E8B79-8321-36F8-9A75-07D260E7B005 <13 7 6 5 4 3 2 1>
   36    1 0xfffffe000723c000 0x8000     0x8000     com.apple.driver.AppleBiometricSensor (2) 084F2418-78FC-34DE-A477-DE1928FA8A58 <35 16 13 7 5 4 3 1>
   37   22 0xfffffe00078dc000 0x4000     0x4000     com.apple.driver.IOSlaveProcessor (1) 110FA4B7-AEE3-3AA3-90F1-16C433562213 <4 3>
   38    9 0xfffffe0007028000 0x4000     0x4000     com.apple.driver.AppleA7IOP (1.0.2) D281D3AE-E908-3A32-A27C-87B3F6133749 <37 16 5 4 3 1>
   39   10 0xfffffe00074a8000 0xc000     0xc000     com.apple.driver.AppleSEPManager (1.0.1) F0361BA8-BC31-38E4-9EC4-DFD6DA2630F9 <38 37 16 10 7 6 5 4 3 1>
   40    5 0xfffffe00078cc000 0x4000     0x4000     com.apple.iokit.IOSerialFamily (11) B560056E-8899-32DE-84FB-174FF5A09AD5 <7 6 5 4 3 1>
   41   13 0xfffffe0007884000 0x4000     0x4000     com.apple.iokit.IONetworkingFamily (3.4) C2AB95D8-8942-37CE-BEF5-7FB52C830516 <7 6 5 4 3 1>
   42    2 0xfffffe00078a8000 0x4000     0x4000     com.apple.driver.mDNSOffloadUserClient (1.0.1b8) F5C1D7D6-720D-397D-A30B-9AA53D0CEFB1 <41 4 3 1>
   43    6 0xfffffe00078d0000 0xc000     0xc000     com.apple.iokit.IOSkywalkFamily (1) 65FCAF99-B187-36EC-A275-25DEEB4DD2C4 <42 41 7 6 5 4 3 1>
   44    6 0xfffffe0007448000 0x4000     0x4000     com.apple.driver.AppleOnboardSerial (1.0) 1FA3953F-BFB2-3044-B768-A1A8142DCB13 <43 40 7 5 4 3 1>
   45    9 0xfffffe0007770000 0x14000    0x14000    com.apple.iokit.IOAccessoryManager (1.0.0) 36BE692B-A067-3AB2-AF42-FEB6141CA7D0 <44 40 35 16 7 6 5 4 3 1>
   46    2 0xfffffe000704c000 0x4000     0x4000     com.apple.driver.AppleARMPMU (1.0) 2F55A240-88AE-3EC7-B4EF-51B3479CC697 <45 16 13 7 6 5 4 3 1>
   47    3 0xfffffe00072f4000 0x4000     0x4000     com.apple.driver.AppleEmbeddedTempSensor (1.0.0) 33D4B445-7BDD-363B-AFB8-416AE2D9AB0C <35 16 13 7 5 4 3 1>
   48   13 0xfffffe00079fc000 0x8000     0x8000     com.apple.driver.RTBuddy (1.0.0) 9C6F0A22-1D26-30A2-83A1-477D916E3D75 <38 37 16 13 10 7 6 5 4 3 1>
   49    8 0xfffffe00074b4000 0xc000     0xc000     com.apple.driver.AppleSMC (3.1.9) E10E0008-1E3F-3805-994D-569EF8CA6116 <48 47 46 45 38 37 35 16 6 5 4 3>
   50   10 0xfffffe0007604000 0x4000     0x4000     com.apple.driver.usb.AppleUSBCommon (1.0) 7E053E83-F215-38DB-8B7C-B5A3E92A8EE3 <5 4 3 1>
   51    2 0xfffffe000799c000 0x4000     0x4000     com.apple.driver.AppleUSBHostMergeProperties (1.2) 90A712C5-0CBE-3E2D-A87B-443BDA535652 <4 3 1>
   52   13 0xfffffe0007970000 0x14000    0x14000    com.apple.iokit.IOUSBHostFamily (1.2) 60A0F164-C469-34AD-A787-F64C60948655 <51 50 49 7 6 5 4 3 1>
   53    2 0xfffffe00079dc000 0x8000     0x8000     com.apple.driver.KernelRelayHost (1) 662C5499-81AF-3AF5-9017-366CAC311B2C <52 5 4 3>
   54    1 0xfffffe0007270000 0x10000    0x10000    com.apple.driver.AppleCredentialManager (1.0) ECB5E1F9-834B-3F1C-875F-80CEE7250656 <53 39 37 10 7 6 5 4 3 1>
   55    0 0xfffffe00072a8000 0x4000     0x4000     com.apple.driver.AppleDiskImages2 (1) 79BB865A-A431-3E8A-8B3D-DC3C10118589 <15 5 4 3 1>
   56    3 0xfffffe00072bc000 0x4000     0x4000     com.apple.driver.AppleEffaceableStorage (1.0) A5E352E6-5917-3B81-AAE0-3C921283FA19 <7 5 4 3 1>
   57    0 0xfffffe0007308000 0x4000     0x4000     com.apple.driver.AppleFDEKeyStore (28.30) A82CD471-FE85-374F-A977-228AE1717E24 <56 10 7 6 5 4 3 1>
   58    0 0xfffffe000739c000 0x4000     0x4000     com.apple.driver.AppleIPAppender (1.0) B9EF2F6E-64F9-36F0-8529-B95A37859C74 <43 41 7 6 5 4 3 1>
   59    3 0xfffffe00078b4000 0x4000     0x4000     com.apple.iokit.IOSCSIArchitectureModelFamily (436.40.6) A4D7EEBB-3019-323E-9F2D-6D0715AE7E61 <6 5 4 3 1>
   60    1 0xfffffe00078b8000 0x4000     0x4000     com.apple.iokit.IOSCSIBlockCommandsDevice (436.40.6) C3B01C86-0099-3967-8791-5B8010A8E5AC <59 15 6 5 4 3 1>
   61   15 0xfffffe00078ac000 0x4000     0x4000     com.apple.iokit.IOPCIFamily (2.9) BF924124-E3BD-39AB-B8B2-D987032ADDCE <7 6 5 4 3>
   62    1 0xfffffe00079c8000 0x4000     0x4000     com.apple.iokit.IOUSBMassStorageDriver (184.40.6) 4A6706BB-48EA-39A0-83C5-910959826B0B <61 59 52 15 6 5 4 3 1>
   63    1 0xfffffe00074f8000 0x4000     0x4000     com.apple.driver.AppleUSBTDM (511.60.2) F060C268-C7AD-384D-90FF-1AF589DAF2AD <62 60 59 52 20 15 7 6 5 4 3 1>
   64    0 0xfffffe00074a4000 0x4000     0x4000     com.apple.driver.AppleSEPKeyStore (2) 858BE3DB-FD51-3EEF-BCAE-C0EC1F5263F9 <63 56 54 39 37 20 17 10 7 6 5 4 3 1>
   65    0 0xfffffe00074d4000 0x4000     0x4000     com.apple.driver.AppleSSE (1.0) 781AFEA6-EC02-3D29-87FB-B1657D9F901E <53 39 37 7 5 4 3 1>
   66    4 0xfffffe000764c000 0x4000     0x4000     com.apple.iokit.CoreAnalyticsFamily (1) C835604F-5B87-3425-B13C-6D8662DEC7C8 <7 6 5 4 3 1>
   67    0 0xfffffe0007674000 0x10000    0x10000    com.apple.iokit.EndpointSecurity (1) BC418E60-421A-3E09-B5F7-FD66457A66D3 <23 20 7 6 5 4 3 2 1>
   68    2 0xfffffe0007688000 0x3c000    0x3c000    com.apple.driver.FairPlayIOKit (68.6.0) A9299904-1979-3514-A8DB-9EDA8159DD55 <7 6 5 4 3 1>
   69    1 0xfffffe00077e0000 0x4000     0x4000     com.apple.iokit.IOBluetoothPacketLogger (8.0.3d9) FD81DEE7-93E1-3A5D-8F4D-748D207E00C7 <6 5 4 3 1>
   70    3 0xfffffe000779c000 0x28000    0x28000    com.apple.iokit.IOBluetoothFamily (8.0.3d9) 147319D7-6AC0-39B7-9F78-FA369F115298 <69 52 16 13 7 6 5 4 3 1>
   71    1 0xfffffe0007834000 0x4000     0x4000     com.apple.iokit.IOGraphicsFamily (585) 91B24DA2-61D1-358A-9F29-72C228291E5B <61 7 5 4 3 1>
   72    0 0xfffffe0007840000 0x4000     0x4000     com.apple.driver.DiskImages (493.0.0) B60A27E6-67CB-3FC5-8AE2-8E840F457983 <15 7 6 5 4 3 1>
   73    0 0xfffffe0007864000 0x4000     0x4000     com.apple.iokit.IOKitRegistryCompatibility (1) ED059A76-AFBC-302D-AA45-6F1D03BCD66A <4 3>
   74    3 0xfffffe0007920000 0x8000     0x8000     com.apple.iokit.IOTimeSyncFamily (900.11) 4CB08326-B285-3034-A9B0-363A5706FDE7 <41 5 4 3 1>
   75    0 0xfffffe00079cc000 0x4000     0x4000     com.apple.iokit.IOUserEthernet (1.0.1) 77B880BC-0660-3BA6-AFFC-F84D18A6CE49 <41 20 6 5 4 3 1>
   76    6 0xfffffe00072e8000 0x8000     0x8000     com.apple.driver.AppleEmbeddedPCIE (1) 79A7337E-2372-3B94-A8E7-A91C0DD7E560 <61 25 16 13 7 5 4 3 1>
   77    9 0xfffffe0007abc000 0x4000     0x4000     com.apple.driver.corecapture (1.0.4) 943D5A8D-E9D2-30CB-A2FE-BB9234BB8D26 <7 6 5 4 3 1>
   78    1 0xfffffe0007438000 0x4000     0x4000     com.apple.driver.AppleMultiFunctionManager (1) E2D1A041-B01F-3958-A7E5-8F871C90F4BB <77 76 44 16 7 6 5 4 3 1>
   79    1 0xfffffe0007320000 0x4000     0x4000     com.apple.driver.AppleFireStormErrorHandler (1) 27C67130-608A-3CE8-8936-F769C2E50759 <16 13 7 6 5 4 3 1>
   80    0 0xfffffe0007534000 0x8000     0x8000     com.apple.driver.AppleT8101 (1) CD1FB607-BC10-3B9C-9632-7E0B2FCCADC6 <79 16 13 7 6 5 4 3 1>
   81    0 0xfffffe00073ec000 0x4000     0x4000     com.apple.driver.AppleM68Buttons (1.0.0d1) 2CCDD1EC-AE5F-34F2-9311-DE976FB39B29 <35 16 7 6 5 4 3 1>
   82    0 0xfffffe0007408000 0x4000     0x4000     com.apple.driver.AppleMobileApNonce (1) 38B91E5E-233D-3017-B26F-0C63283C33E3 <17 16 7 6 5 4 3 1>
   83    0 0xfffffe00074c0000 0x4000     0x4000     com.apple.driver.AppleSPIMC (1) 0ED4626B-8F67-3D9A-A2AF-5EA9BC35D997 <16 7 5 4 3 1>
   84    2 0xfffffe000732c000 0x4000     0x4000     com.apple.driver.AppleGPIOICController (1.0.2) C420AC87-175A-36E2-BFF0-2EB1474A9408 <16 13 7 5 4 3 1>
   85    0 0xfffffe000747c000 0x4000     0x4000     com.apple.driver.AppleS5L8940XI2C (1.0.0d2) 0DE89EF2-162C-3849-8A39-A5365B7F9F3C <84 16 7 5 4 3 1>
   86    0 0xfffffe0007478000 0x4000     0x4000     com.apple.driver.AppleS5L8920XPWM (1.0.0d1) 06C8D900-ED47-3541-81F8-A9252A85A903 <16 7 5 4 3>
   87    0 0xfffffe00073f0000 0x8000     0x8000     com.apple.driver.AppleMCA2-T8103 (510.72) 5EA8E7FF-E2E4-3D88-9241-A4D9E88641A3 <29 16 7 5 4 3 1>
   88    3 0xfffffe0007860000 0x4000     0x4000     com.apple.driver.IOImageLoader (1.0.0) D84B3B72-0B31-3F51-A69B-741EB9337901 <77 10 7 6 5 4 3 1>
   89    2 0xfffffe00076d4000 0x4c000    0x4c000    com.apple.iokit.IO80211FamilyV2 (1200.12.2b1) 3ADBA607-EC0C-3D52-88AF-5340832B3DA5 <77 43 41 20 10 7 6 5 4 3 1>
   90    1 0xfffffe00071d8000 0x5c000    0x5c000    com.apple.driver.AppleBCMWLANCore (1.0.0) C01F2859-25FC-3221-AC09-D13C8A432CB2 <89 88 77 74 66 44 43 42 41 40 20 16 10 7 6 5 4 3 1>
   91    3 0xfffffe000724c000 0x4000     0x4000     com.apple.driver.AppleBluetoothDebugService (1) DF02A72A-74EE-3F70-B61D-8199E7D40423 <5 4 3 1>
   92    0 0xfffffe00071c4000 0x14000    0x14000    com.apple.driver.AppleBCMWLANBusInterfacePCIe (1) B51B157F-E903-3EBB-A37E-20C8E61BE10E <91 90 89 88 77 76 66 61 44 43 41 16 7 6 5 4 3 1>
   93    0 0xfffffe00074dc000 0x4000     0x4000     com.apple.driver.AppleSamsungSerial (1.0.0d1) 991A8411-2565-3A10-94A5-EBEF0B0E67B6 <44 40 16 7 5 4 3 1>
   94    0 0xfffffe0007250000 0x4000     0x4000     com.apple.driver.AppleBluetoothModule (1) 88AC5F24-54B6-3793-8D5C-AFA957B6D760 <78 77 16 7 6 5 4 3 1>
   95    0 0xfffffe0007540000 0x4000     0x4000     com.apple.driver.AppleT8103PCIe (1) 4CF3A115-60D4-357C-BF09-56817412626E <76 61 16 13 7 6 5 4 3 1>
   96    0 0xfffffe000752c000 0x4000     0x4000     com.apple.driver.AppleT8020DART (1) 8CE20231-0416-310B-BFA4-3861C14A7C0F <25 16 7 6 5 4 3 1>
   97    1 0xfffffe000744c000 0x4000     0x4000     com.apple.driver.ApplePIODMA (1) 3DC6B99E-248F-3E3B-B5F0-2DC8977EA6FA <5 4 3 1>
   98   11 0xfffffe00078f4000 0x2c000    0x2c000    com.apple.iokit.IOThunderboltFamily (9.3.2) BBA2FCE2-59F8-3763-A366-B8AD1AF9E709 <49 5 4 3 1>
   99    0 0xfffffe0007544000 0x4000     0x4000     com.apple.driver.AppleT8103PCIeC (1) B71A1960-ACC2-3F69-8337-F308C28B9DE2 <98 97 76 61 16 13 7 6 5 4 3 1>
  100    0 0xfffffe0007584000 0x34000    0x34000    com.apple.driver.AppleThunderboltNHI (7.2.8) 82FFCAE8-7C03-3DD1-AF46-BCE2C3F2B492 <98 84 61 45 6 5 4 3 1>
  101    4 0xfffffe00075d8000 0x4000     0x4000     com.apple.driver.AppleTypeCPhy (1) 87FC68A5-26DD-35D3-9DFA-BB1C5AD30006 <50 16 5 4 3 1>
  102    4 0xfffffe0007808000 0x10000    0x10000    com.apple.iokit.IODisplayPortFamily (1.0.0) 28208EA6-689A-3B1B-9AF8-BDA0CEDC3606 <33 32 31 7 6 5 4 3 1>
  103    0 0xfffffe00072ac000 0x8000     0x8000     com.apple.driver.AppleDisplayCrossbar (1.0.0) 8F463C73-69C9-310F-8DD6-CFD7EB9E9612 <102 101 98 45 33 16 4 3>
  105    0 0xfffffe00073ac000 0x4000     0x4000     com.apple.driver.AppleInterruptController (1.0.0d1) B5629E50-71D8-3336-9FEB-315F74FD0954 <16 7 6 5 4 3 1>
  106    1 0xfffffe0007b30000 0x4000     0x4000     com.apple.driver.watchdog (1) 03F48A25-3538-340A-B474-4374C1BB349B <7 6 5 4 3 1>
  107    0 0xfffffe0007488000 0x4000     0x4000     com.apple.driver.AppleS5L8960XWatchDogTimer (1) 5390F79D-79C7-36D9-91A6-71E7A28C9661 <106 16 13 7 6 5 4 3 1>
  108    0 0xfffffe0007490000 0x4000     0x4000     com.apple.driver.AppleS8000DWI (1.0.0d1) 3266A0EA-F040-36B8-BA2A-AF7C30938418 <16 7 5 4 3 1>
  109    0 0xfffffe000748c000 0x4000     0x4000     com.apple.driver.AppleS8000AES (1) CEFA5077-DC0F-3160-97C2-D12D3AE8927C <17 16 7 6 5 4 3 1>
  110    5 0xfffffe0007450000 0xc000     0xc000     com.apple.driver.ApplePMGR (1) D9673520-C116-32E6-B1F8-648F44C2AA79 <16 13 7 6 5 4 3 1>
  111    0 0xfffffe0007548000 0x8000     0x8000     com.apple.driver.AppleT8103PMGR (1) 382F035B-AB44-3C35-BCC5-4700CDCB7EC2 <110 16 9 7 6 5 4 3 1>
  112    0 0xfffffe0007480000 0x4000     0x4000     com.apple.driver.AppleS5L8960XNCO (1) 91CC3007-4119-3771-B2E2-EC2C9DB6BA20 <16 13 7 5 4 3 1>
  113    0 0xfffffe0007494000 0x4000     0x4000     com.apple.driver.AppleSART (1) 9D877160-5161-3139-B58E-C70D5151C80A <16 6 5 4 3>
  114    0 0xfffffe000763c000 0x4000     0x4000     com.apple.driver.AudioDMAController-T8103 (1.59) B61C2601-3CE2-352D-9C66-09B6BBE061E4 <16 6 5 4 3 1>
  115    0 0xfffffe00075dc000 0x1c000    0x1c000    com.apple.driver.AppleT8103TypeCPhy (1) 04A397DE-8777-3A37-A0D3-F45B1EDD1F9B <101 5 4 3 1>
  116    1 0xfffffe0007998000 0x4000     0x4000     com.apple.driver.usb.AppleUSBHostCompositeDevice (1.2) 16EDE888-BF08-30EC-9F6C-7B7B68AB58F6 <52 50 6 5 4 3 1>
  117    1 0xfffffe00079a4000 0x8000     0x8000     com.apple.driver.usb.AppleUSBHub (1.2) 6EB61E37-67AD-34ED-970D-840F809340E2 <52 50 5 4 3 1>
  118    2 0xfffffe00072fc000 0x4000     0x4000     com.apple.driver.AppleEmbeddedUSBHost (1) F4145951-F14B-350B-ABE5-F452B2B288D1 <117 116 52 51 50 20 7 6 5 4 3 1>
  119    3 0xfffffe00079b0000 0xc000     0xc000     com.apple.driver.usb.AppleUSBXHCI (1.2) D43B0EB9-4177-3F16-BDAD-71A8BCBA39F0 <52 50 45 16 7 6 5 4 3 1>
  120    1 0xfffffe0007634000 0x4000     0x4000     com.apple.driver.usb.AppleUSBXHCIARM (1) 2B7F0829-C0E8-305F-B04F-06DDDE730F6E <119 118 101 52 50 45 16 7 6 5 4 3 1>
  121    0 0xfffffe000761c000 0x8000     0x8000     com.apple.driver.usb.AppleUSBHostT8103 (1) 1FB78555-78F4-31D4-B204-F526EDA5209F <120 119 118 98 52 50 45 16 7 6 5 4 3 1>
  122    3 0xfffffe0007944000 0x8000     0x8000     com.apple.iokit.IOUSBDeviceFamily (2.0.0) 120B195A-7E44-315E-B777-5E56024C3F56 <50 5 4 3 1>
  123    1 0xfffffe000795c000 0xc000     0xc000     com.apple.driver.AppleUSBXDCI (1.0) F0E2C65D-D986-33A9-8194-7B7641AC4DFD <122 5 4 3 1>
  124    0 0xfffffe0007968000 0x4000     0x4000     com.apple.driver.AppleUSBXDCIARM (1.0) 68B0A746-0B1E-36D2-91B5-4684C3C52235 <123 122 101 45 16 5 4 3 1>
  125    0 0xfffffe00074c4000 0x4000     0x4000     com.apple.driver.AppleSPMI (1.0.1) A061B713-53CB-3AA8-B089-87133D827E65 <16 7 5 4 3 1>
  126    2 0xfffffe000786c000 0x8000     0x8000     com.apple.iokit.IOMobileGraphicsFamily (343.0.0) B0F9FECF-5994-342A-AB67-87740BB6C153 <33 27 26 20 16 7 6 5 4 3 1>
  127    4 0xfffffe0007324000 0x4000     0x4000     com.apple.driver.AppleFirmwareKit (1) 1B7B2E0E-A596-3692-8D62-D62E41043961 <48 38 37 28 16 13 7 6 5 4 3 1>
  128    2 0xfffffe0007284000 0x4000     0x4000     com.apple.driver.AppleDCP (1) 2919D6B8-B475-3084-AD34-1EF8846DCB29 <127 48 16 4 3>
  129    1 0xfffffe0007868000 0x4000     0x4000     com.apple.iokit.IOMobileGraphicsFamily-DCP (343.0.0) 3277F530-B70A-35CE-8038-B7FF83DAC646 <128 126 48 37 33 27 26 20 16 7 6 5 4 3 1>
  130    0 0xfffffe000740c000 0x4000     0x4000     com.apple.driver.AppleMobileDispH13G-DCP (140.0) 23E401F1-A9FA-375B-90F2-BB1D59032C7E <129 126 48 39 37 34 33 27 26 16 7 5 4 3 1>
  131    2 0xfffffe0007668000 0x4000     0x4000     com.apple.driver.DCPAVFamilyProxy (1) BDFE79C2-6D4A-3304-A333-4F6B7688E564 <127 33 16 3>
  132    0 0xfffffe0007464000 0x10000    0x10000    com.apple.driver.ApplePassthroughPPM (3.0) CFE084EE-8B91-3517-A664-593F45C5D6DF <110 13 9 7 5 4 3 1>
  133    0 0xfffffe000753c000 0x4000     0x4000     com.apple.driver.AppleT8103CLPCv3 (1) 748A3BC2-86AA-392F-B9AA-BC5C8E54C2DE <110 26 16 13 9 7 6 5 4 3 1>
  134    0 0xfffffe0007530000 0x4000     0x4000     com.apple.driver.AppleT8020SOCTuner (1) 4814B69A-9569-351A-ADFA-13B5CCE2D4A7 <110 16 13 7 6 5 4 3 1>
  135    0 0xfffffe0007334000 0x1c000    0x1c000    com.apple.driver.AppleH11ANEInterface (4.52.0) 60E2EEF1-AA31-398F-B0F3-62DC285A8FE4 <26 16 13 10 7 6 5 4 3 1>
  136    1 0xfffffe0007330000 0x4000     0x4000     com.apple.driver.AppleH10PearlCameraInterface (14.70.0) 24252E39-AB29-371E-8FC1-682428D19506 <26 16 13 10 7 6 5 4 3 1>
  137    0 0xfffffe0007350000 0x1c000    0x1c000    com.apple.driver.AppleH13CameraInterface (2.82.0) 6C91FEA8-2235-30EA-AA36-9261D5271D47 <136 26 16 13 10 7 6 5 4 3 1>
  138    1 0xfffffe000782c000 0x8000     0x8000     com.apple.iokit.IOGPUFamily (20.23) 043006CB-C110-36CF-891B-AAAC5B9FBD23 <71 61 26 20 13 7 6 5 4 3 1>
  139    0 0xfffffe0007014000 0xc000     0xc000     com.apple.AGXG13G (172.26.2) 7EC02188-B3D5-3A0C-88AD-02AFB3E333FD <138 48 26 20 16 13 9 7 6 5 4 3 1>
  140    0 0xfffffe00073b0000 0x8000     0x8000     com.apple.driver.AppleJPEGDriver (4.6.0) F0B0F343-189A-3301-928C-E4371C4D71A2 <26 16 7 5 4 3 1>
  141    0 0xfffffe000705c000 0x24000    0x24000    com.apple.driver.AppleAVD (376) 866EFD42-3A83-3776-8C09-B7AFB381DFBF <68 26 16 7 5 4 3 1>
  142    4 0xfffffe0007044000 0x8000     0x8000     com.apple.iokit.AppleARMIISAudio (80.34) E370FBA1-A3EC-3182-9E28-654E25DEEC59 <30 29 7 5 4 3 1>
  143    4 0xfffffe00072c4000 0x8000     0x8000     com.apple.driver.AppleEmbeddedAudio (437.96) 1D5DDEDD-E019-3F98-BEC0-A9455BB1ADEB <142 35 30 29 16 7 5 4 3 1>
  144    0 0xfffffe00072d8000 0x4000     0x4000     com.apple.driver.AppleTAS5770LAmp (437.96) 49CE848E-807D-347A-9335-A8BC303F49DE <143 142 35 30 16 7 5 4 3 1>
  145    0 0xfffffe0007394000 0x8000     0x8000     com.apple.driver.AppleHPM (3.4.4) 0D0FF8E1-49EC-3315-9B56-8739D1095693 <102 45 33 16 7 6 5 4 3 1>
  146    0 0xfffffe000728c000 0x4000     0x4000     com.apple.driver.AppleDPDisplayTCON (1) F15E001C-1E04-30DA-BE87-F3A0ADF13290 <33 16 7 6 5 4 3 1>
  147    1 0xfffffe00072a4000 0x4000     0x4000     com.apple.driver.AppleDialogPMU (1.0.1) 23DC8FDE-5B4B-3E85-9B81-56B4DD513682 <47 46 35 16 7 5 4 3 1>
  148    0 0xfffffe00074c8000 0x4000     0x4000     com.apple.driver.AppleSPMIPMU (1.0.1) E247919D-44D2-3F53-846F-4363EFF02B5E <147 49 47 35 16 7 6 5 4 3 1>
  149    0 0xfffffe00074e8000 0x4000     0x4000     com.apple.driver.AppleStockholmControl (1.0.0) 671E0A01-E6D4-36F9-BFFC-10FAB5907570 <44 16 7 5 4 3 1>
  150    3 0xfffffe00074cc000 0x4000     0x4000     com.apple.driver.AppleSPU (1) CE73E1DA-B974-3501-A083-46754DDDFE49 <48 38 37 35 28 16 13 6 5 4 3 1>
  151    1 0xfffffe000725c000 0x4000     0x4000     com.apple.driver.AppleCSEmbeddedAudio (437.96) 21C2A003-C0AC-39E0-828F-778DC605CE08 <143 142 35 30 16 5 4 3 1>
  152    0 0xfffffe00072cc000 0x4000     0x4000     com.apple.driver.AppleCS42L83Audio (437.96) 59D00274-C8A9-3329-8FA9-C4ED72E582B3 <151 143 142 49 35 30 16 7 5 4 3 1>
  153    0 0xfffffe0007080000 0x140000   0x140000   com.apple.driver.AppleAVE2 (401.63.3) 18AE1B66-4B96-37B7-9AA7-FAB11CF6DDFC <26 16 7 5 4 3 1>
  154    0 0xfffffe0007460000 0x4000     0x4000     com.apple.driver.ApplePMPFirmware (1) 84F960D2-2117-36C2-AEDD-E2AAA501635F <48 38 37 16 4 3>
  155    2 0xfffffe0007444000 0x4000     0x4000     com.apple.driver.AppleNANDConfigAccess (1.0.0) 4FBA538C-3267-32FD-945A-5AE59C168D4F <16 7 5 4 3 1>
  156    0 0xfffffe0007874000 0x10000    0x10000    com.apple.iokit.IONVMeFamily (2.1.0) 4120A059-31E4-3D84-BC6F-7FB1559DC67B <155 76 61 49 48 38 37 35 20 16 15 7 6 5 4 3 1>
  157    0 0xfffffe00072a0000 0x4000     0x4000     com.apple.driver.AppleDiagnosticDataAccessReadOnly (1.0.0) 96CC397E-EFE4-3955-BDC3-89BD364A96EC <155 16 7 5 4 3 1>
  158    0 0xfffffe00074e4000 0x4000     0x4000     com.apple.driver.AppleSmartIO2 (1) A1FE52B0-2232-3FBB-AD9E-A569569DEFA3 <48 38 37 17 6 5 4 3 1>
  159    0 0xfffffe000730c000 0x4000     0x4000     com.apple.AppleFSCompression.AppleFSCompressionTypeDataless (1.0.0d1) 844C1FCA-D31E-3C2F-9570-C3A9411F080B <7 6 4 3 2 1>
  160    0 0xfffffe0007310000 0x4000     0x4000     com.apple.AppleFSCompression.AppleFSCompressionTypeZlib (1.0.0) 5F3C58B3-F27A-3B5F-B984-A86E4C53EA10 <6 4 3 2 1>
  161    0 0xfffffe0007644000 0x4000     0x4000     com.apple.BootCache (40) 3366228E-2317-315F-B01B-3F3FC771C5A6 <7 6 5 4 3 1>
  162    0 0xfffffe0007648000 0x4000     0x4000     com.apple.security.BootPolicy (1) 7932187C-56A8-3EC5-B7C1-450C85D19EA0 <39 37 5 4 3>
  163    1 0xfffffe00076d0000 0x4000     0x4000     com.apple.filesystems.hfs.encodings.kext (1) 7EC85071-F7C2-3700-9198-E7B12A762694 <7 6 5 4 3 1>
  164    0 0xfffffe00076c4000 0xc000     0xc000     com.apple.filesystems.hfs.kext (556.60.1) 8EFA3283-4559-3BC7-AF50-03BC1A56C53B <163 7 6 5 4 3 1>
  165    0 0xfffffe00078f0000 0x4000     0x4000     com.apple.IOTextEncryptionFamily (1.0.0) 711720B8-DAA7-33BF-83FA-E654DF0C7066 <68 7 5 4 3 1>
  166    0 0xfffffe0007234000 0x4000     0x4000     com.apple.driver.AppleBSDKextStarter (3) F308762E-4A6C-340A-82CD-3390E819FDBA <4 3>
  167    0 0xfffffe000745c000 0x4000     0x4000     com.apple.driver.ApplePMP (1) 7B82BD2B-4999-3B87-900C-5BE21EC12AA3 <48 38 37 35 16 6 5 4 3 1>
  168    0 0xfffffe00072f0000 0x4000     0x4000     com.apple.AppleEmbeddedSimpleSPINORFlasher (1) A5CABCF4-5E18-3482-B52D-9CC9DFCEAD50 <16 7 5 4 3 1>
  169    1 0xfffffe0007010000 0x4000     0x4000     com.apple.AGXFirmwareKextRTBuddy64 (172.26.2) 3DDB5213-FA86-32CF-8524-310B59E73418 <48 5 4 3 1>
  170    0 0xfffffe000700c000 0x4000     0x4000     com.apple.AGXFirmwareKextG13GRTBuddy (172.26.2) 172F8B30-5B3F-3682-8D82-D63BD236D951 <169 48 5 4 3 1>
  171    0 0xfffffe0007034000 0xc000     0xc000     com.apple.driver.AppleAOPAudio (14.32) A078F98E-CEE2-3CB8-9F1E-F7079EE32F25 <150 30 29 16 7 5 4 3 1>
  172    0 0xfffffe0007040000 0x4000     0x4000     com.apple.driver.AppleAOPVoiceTrigger (11.5) D8355461-3962-3C0D-8AB2-A103F2AF9E96 <150 143 7 5 4 3 1>
  173    0 0xfffffe0007b1c000 0x4000     0x4000     com.apple.filesystems.tmpfs (1) 9B9D5347-AF26-3766-9467-29F49E41F2C6 <7 6 5 4 1>
  174    1 0xfffffe00079f0000 0x4000     0x4000     com.apple.nke.ppp (1.9) 48C3228F-7C80-39C1-8AC3-4CEC708B3148 <7 6 5 4 3 1>
  175    0 0xfffffe00079e4000 0x4000     0x4000     com.apple.nke.l2tp (1.9) 9556570D-28F8-3C33-AFD2-BB7D8213E7D6 <174 7 6 5 4 3 1>
  177    1 0xfffffe000766c000 0x4000     0x4000     com.apple.driver.DCPDPFamilyProxy (1) 59973629-FAA9-39FD-8B82-F94560ECA082 <131 127 102 33 3>
  178    0 0xfffffe0007288000 0x4000     0x4000     com.apple.driver.AppleDCPDPTXProxy (1.0.0) E9BEC66F-5923-3F25-B1F8-955BAC833A56 <177 131 128 127 102 33 32 5 4 3>
  179    4 0xfffffe00073a8000 0x4000     0x4000     com.apple.driver.AppleInputDeviceSupport (4400.35) 53306713-9BF0-3BE7-96B7-084316A36E60 <66 37 28 6 5 4 3 1>
  180    1 0xfffffe0007384000 0x8000     0x8000     com.apple.driver.AppleHIDTransport (4400.35) 888B3D2D-9BD1-33A4-B8A7-8A1613B3E20D <179 49 35 16 6 5 4 3 1>
  181    0 0xfffffe000738c000 0x8000     0x8000     com.apple.driver.AppleHIDTransportSPI (4400.35) FBBE4681-8378-3C80-A872-9427C7EAD55A <180 179 16 5 4 3 1>
  183    0 0xfffffe0007030000 0x4000     0x4000     com.apple.driver.AppleALSColorSensor (1.0.0d1) 21B88CD5-69B6-37AC-98A8-2BEF8D406EE3 <150 35 16 7 5 4 3 1>
  184    0 0xfffffe00074e0000 0x4000     0x4000     com.apple.driver.AppleSmartBatteryManager (161.0.0) 1C6965AC-7B05-3FB4-82F4-59FC669D62BD <49 7 5 4 3 1>
  185    0 0xfffffe00075c0000 0x4000     0x4000     com.apple.driver.AppleThunderboltUSBDownAdapter (1.0.4) 38991901-394E-33CD-A020-DEB3A8881F1B <98 5 4 3 1>
  186    2 0xfffffe0007554000 0x8000     0x8000     com.apple.driver.AppleThunderboltDPAdapterFamily (8.1.4) E8A8C19A-24EB-3CA8-A266-52270D262BDF <98 5 4 3 1>
  187    0 0xfffffe000755c000 0x4000     0x4000     com.apple.driver.AppleThunderboltDPInAdapter (8.1.4) 4ED1E7E2-6D46-37A5-A7A0-C58620B05FF1 <186 98 5 4 3 1>
  188    1 0xfffffe00075b8000 0x4000     0x4000     com.apple.driver.AppleThunderboltPCIDownAdapter (4.1.1) EC52CD29-5D54-396A-810F-E8DE9F348EC4 <98 76 61 5 4 3 1>
  189    0 0xfffffe0007570000 0x14000    0x14000    com.apple.driver.AppleThunderboltIP (4.0.3) 9FE5EAB5-D0E5-312A-BB7C-F4EA0F554F41 <98 61 41 5 4 3 1>
  190    1 0xfffffe0007628000 0x4000     0x4000     com.apple.driver.usb.networking (5.0.0) 230109AE-26DE-34F8-989F-7C4B91B823C1 <52 6 5 4 3 1>
  191    0 0xfffffe000760c000 0x4000     0x4000     com.apple.driver.AppleUSBDeviceNCM (5.0.0) F4517D1A-2B14-3092-AA35-BBD417962056 <190 122 41 16 6 5 4 3 1>
  193    2 0xfffffe0007a6c000 0x40000    0x40000    com.apple.filesystems.apfs (1677.81.1) 63D3E094-F237-38AE-B8E5-E21DA5F39BC5 <66 56 15 10 7 6 5 4 3 2 1>
  194    0 0xfffffe0007238000 0x4000     0x4000     com.apple.driver.AppleBTM (1.0.1) 85628825-81BF-38B5-B91D-72FB9231F893 <110 35 16 7 5 4 3 1>
  195    1 0xfffffe0007248000 0x4000     0x4000     com.apple.driver.AppleBluetoothDebug (1) 4C193EC1-06B7-3019-AD8C-EE6C9D571718 <91 77 6 5 4 3 1>
  196    2 0xfffffe0007268000 0x8000     0x8000     com.apple.driver.AppleConvergedPCI (1) B498C94D-A7E2-35D2-8CBA-C9C861EBDA59 <77 61 6 5 4 3 1>
  197    1 0xfffffe0007260000 0x8000     0x8000     com.apple.driver.AppleConvergedIPCOLYBTControl (1) BCABB8B3-6C1B-32D3-AD9D-9EA17D7EC75E <196 91 6 5 4 3 1>
  198    1 0xfffffe00077d0000 0x4000     0x4000     com.apple.iokit.IOBluetoothHostControllerTransport (8.0.3d9) E0C7428B-0CA9-393A-99A2-48C2F5C28CFF <70 61 52 16 7 6 5 4 3 1>
  199    0 0xfffffe00077cc000 0x4000     0x4000     com.apple.driver.IOBluetoothHostControllerPCIeTransport (8.0.3d9) 4CDDDFEA-0FCD-35C6-9A0B-C258F34D7DF6 <198 197 196 195 5 4 3>
  205    0 0xfffffe0007a04000 0x4000     0x4000     com.apple.driver.SEPHibernation (1) 1ABD2ABF-8854-3DB4-9C1C-F358F7926033 <39 37 4 3>
  206    3 0xfffffe000749c000 0x4000     0x4000     com.apple.iokit.AppleSEPGenericTransfer (1) 529B11FC-E8A1-3490-A81C-125A60E9A384 <39 37 6 5 4 3>
  207    0 0xfffffe0007650000 0x4000     0x4000     com.apple.driver.CoreKDL (1) FF0FCB1C-68BA-3E94-893E-27AB7DB6AD42 <206 5 4 3 1>
  208    0 0xfffffe00074a0000 0x4000     0x4000     com.apple.driver.AppleSEPHDCPManager (1.0.1) C823E0C6-CFFB-38D6-B06B-3050C984B7F6 <39 37 32 5 4 3>
  209    0 0xfffffe0007640000 0x4000     0x4000     com.apple.driver.BCMWLANFirmware4378.Hashstore (1) 87E4184D-108C-3A29-A039-C415A05D6DEA <88 77 5 4 3 1>
  210    2 0xfffffe0007798000 0x4000     0x4000     com.apple.iokit.IOBiometricFamily (1) 817F481B-1C66-3E24-B143-9FA83E47CF0F <206 39 37 7 6 5 4 3 1>
  211    1 0xfffffe0007400000 0x8000     0x8000     com.apple.driver.AppleMesaSEPDriver (100.99) F470662F-021F-3507-9545-0A7225ECBF94 <210 206 49 39 37 36 35 16 7 6 5 4 3 1>
  212    0 0xfffffe0007244000 0x4000     0x4000     com.apple.driver.AppleBiometricServices (1) 072B91C0-B723-3098-8CAF-0F3102BC495A <211 210 16 7 5 4 3 1>
  213    2 0xfffffe00078a4000 0x4000     0x4000     com.apple.iokit.IOEthernetAVBController (1.1.0) D15915EE-FD43-34B7-BB87-FE688D39E71E <41 5 4 3 1>
  214    1 0xfffffe0007928000 0x1c000    0x1c000    com.apple.plugin.IOgPTPPlugin (900.11) 6183819A-CF5E-3990-AD9D-596C98DCAE1F <213 74 43 41 35 9 6 5 4 3 1>
  215    0 0xfffffe0007730000 0x8000     0x8000     com.apple.iokit.IOAVBFamily (930.1) 0267AE5E-DAF0-3699-8347-0A27D2B3E453 <214 213 74 41 6 5 4 3 1>
  216    0 0xfffffe00077e4000 0x4000     0x4000     com.apple.iokit.IOBluetoothSerialManager (8.0.3d9) 3189299F-A621-31E5-8D8D-4B785891574A <40 7 5 4 3 1>
  217    2 0xfffffe0007b20000 0x4000     0x4000     com.apple.kext.triggers (1.0) 47F2D40F-1C2E-3C3A-AC5C-4DED90380B6D <7 6 5 4 3 1>
  218    0 0xfffffe0007ab0000 0x4000     0x4000     com.apple.filesystems.autofs (3.0) 8D057292-98C3-3BF2-A638-98589916EDAD <217 7 6 5 4 3 2 1>
  219    0 0xfffffe000731c000 0x4000     0x4000     com.apple.fileutil (20.036.15) BA8093C4-4AF4-38B6-BF38-5AEC56CB7300 <5 4 3 2 1>
  220    1 0xfffffe00077e8000 0x8000     0x8000     com.apple.driver.IOBluetoothHIDDriver (8.0.3d9) 0139844D-D9A4-324F-B0EA-C2201FC8D2DB <70 35 5 4 3>
  221    1 0xfffffe00075cc000 0x4000     0x4000     com.apple.driver.AppleHSBluetoothDriver (4030.5) E133B879-5435-3576-98A7-5D8A6C67802E <220 70 35 6 5 4 3 1>
  222    2 0xfffffe000743c000 0x8000     0x8000     com.apple.driver.AppleMultitouchDriver (4400.28) DA954130-3296-3A20-A6EF-19DDA7A3EB3D <179 35 13 7 5 4 3 1>
  223    0 0xfffffe00075d0000 0x4000     0x4000     com.apple.driver.AppleTopCaseHIDEventDriver (4030.5) 229599BC-DD83-3BB0-B3AB-104848EB59ED <222 221 35 6 5 4 3 1>
  224    0 0xfffffe00071c0000 0x4000     0x4000     com.apple.driver.AppleActuatorDriver (4400.28) D7DE47F8-B4B1-30A3-AB96-3F5C52930B96 <222 179 35 13 7 5 4 3 1>
  225    0 0xfffffe0007370000 0x4000     0x4000     com.apple.driver.AppleHIDKeyboard (223) 59AE808E-D246-323C-B964-3DADE7C2D904 <35 6 5 4 3>
  226    0 0xfffffe0007560000 0xc000     0xc000     com.apple.driver.AppleThunderboltDPOutAdapter (8.1.4) 93E97A92-F188-3D71-AE1B-EF83D5413002 <186 98 5 4 3 1>
  227    0 0xfffffe00075bc000 0x4000     0x4000     com.apple.driver.AppleThunderboltPCIUpAdapter (4.1.1) 7512E926-50C5-3E35-A399-7D144869EA7E <188 98 61 5 4 3 1>
  228    0 0xfffffe00079bc000 0x8000     0x8000     com.apple.driver.usb.AppleUSBXHCIPCI (1.2) 2F948713-0CBA-376D-8E8A-CF08A04073C0 <119 61 52 50 16 7 6 5 4 3 1>
  229    0 0xfffffe0007b2c000 0x4000     0x4000     com.apple.vecLib.kext (1.2.0) CB7FDCD5-829C-3BFD-8A1C-AF195B038348 <9 7 6 5 4 3>
  235    0 0xfffffe0007b0c000 0x10000    0x10000    com.apple.filesystems.smbfs (3.4.1) BED81F26-6A18-34A4-A477-51B1AFF95D32 <217 10 7 6 5 4 3 1>
  243    0 0xfffffe0007638000 0x4000     0x4000     com.apple.driver.AppleXsanScheme (3) B142C8CF-2B4F-315E-9385-F1C8632F97D7 <15 5 4 3 1>

Rename Computer using Scripting and Google Sheets

Google has made some changes that made this script not work, but it was an easy fix, once I bothered to look at why it wasn’t working.

The page redirects to another page, and thus the cURL doesn’t work as usual. Instead you need to add the redirect flag to the cURL command so, instead of:

curl 'https://docs.google.com/spreadsheets/d/YOURGOOGLESHEETIDHERE/export?exportFormat=csv' -o $OUTPUT

You want:

curl -L 'https://docs.google.com/spreadsheets/d/YOURGOOGLESHEETIDHERE/export?exportFormat=csv' -o $OUTPUT

So the full script would be:

#!/bin/sh

# Get the current device's serial number
SERIAL="$(ioreg -l | grep IOPlatformSerialNumber | sed -e 's/.*\"\(.*\)\"/\1/')"

# Where the file will be saved using today's date. On date of writing would be /tmp/serials20190802.csv
OUTPUT=/tmp/serials$(date +%Y%m%d).csv

# Download the CSV from Google Drive, file must be set to Shared With Anyone with Link (or Shared with Anyone)
curl -L 'https://docs.google.com/spreadsheets/d/YOURGOOGLESHEETIDHERE/export?exportFormat=csv' -o $OUTPUT

# With much thanks to @Gerk and the rest of the crew on the MacAdmins #toronto channel, this now grabs the entire line from the CSV file 
LINE=$(grep $SERIAL $OUTPUT)

# This will grab all the text before the ,
ASSETTAG="$( cut -d ',' -f 1 <<< "$LINE" )"

# Set the ComputerName, HostName and LocalHostName
scutil --set ComputerName $ASSETTAG
scutil --set HostName $ASSETTAG
scutil --set LocalHostName $ASSETTAG

Missing Profiles Button in System Preferences

See my previous post for a full history on this.

In it, I had migrated from WorkspaceONE to Mosyle. One some devices I needed to clear the profiles database to be able to remove WS1 and enroll with Mosyle. When you do that the Profiles button in System Preferences goes away, forever.

Well, I did that one machine running macOS 10.14 and upgraded it to 10.15. Once upgraded, the profiles button returned! HOORAY!

macOS 11 Compatibily Check

Yesterday, Apple announced macOS 11. I need to know what members of my computer fleet are compatible.

William Smith, aka talkingmoose, was kind enough to post the regex for what models are compatible with macOS 11. You can find that here. I tested Smith’s regex in BBEdit and it worked as expected.

The question was, how do I get an easy list of my fleet in our MDM, Mosyle?

I sent a Custom Command to my fleet, it’s here on GitHub. I told it to run that custom command on all computers and to store the results as “Big Sur.”

model=$(sysctl hw.model)
if echo $model | grep -Ei "(MacBookAir[6-9]|MacBookPro1[0-6]|MacPro[6-7]|MacBook(10|9|8)|Macmini[7-8]|MacPro[6-7]|iMacPro1),\d|iMac1(4,4|[5-9],\d)" ; then
  echo "macOS 11 Compatible"
else
  echo "macOS 11 Incompatible"
fi

So now I needed to use that data to create a list. I created a new Device Group and said that the Custom Command Big Sur was like incompatible. It immediately showed me my Library machines, which are iMac12,1 and running their max OS, macOS 10.14.

And here’s the result!

FileMaker Export to Tab Delimited

I want to export a table to a tab delimited text file1.

FileMaker supports that without any question. What it doesn’t do is create a header row.

I’m using this file to import into PickATime, a software designed to book parent-teacher conferences. I want to automate this as much as possible. So how do I get the header rows that are required?

In FileMaker my field might be called OpenApplyID, whereas PickATime requires the field to be called StudentID. So I can’t just take those field titles.

There’s new script steps in FileMaker 18 that will let me do this.

Script

Go to Layout [ “StudentContacts” (StudentContacts) ] 
Show All Records
Set Variable [ $path; Value:"filemac:/Macintosh HD/Users/USERFOLDER/Downloads/" & Year ( Get ( CurrentDate ) ) & Month ( Get (CurrentDate ) ) & Day ( Get (CurrentDate ) ) &" - " & "PAT_Students.txt" ] 
Export Records [ File Name: “$path”; Create folders:No; Character Set: “Unicode (UTF-8)”; Field Order: StudentContacts:: OpenApply_id 
 StudentContacts::first_name StudentContacts::last_name StudentContacts::birthday ] [ No dialog ] 
Set Variable [ $additionalText; Value:"StudentID<tab>First<tab>Last<tab>SecurityValue"]
Open Data File [ “$path” ; Target: $dataFile ]
Write to Data File [ File ID: $dataFile ; Data source: $additionalText ; Write as: UTF-8 ; Append line feed: On ] 
Close Data File [ File ID: $dataFile ] 

English

First go to to the student contacts and show all of the kids. I tell it where I want to save the file.

Then it exports the records.

I create a variable called $additionalText in which I want to store the contents of the first row2.

Then we open the file

Write $additionalText to the file.

Then Close the file.

Problems

Usually I’d do filemac:../Downloads and not have the absolute path, so it will work on other computers. For some odd reason when I do the relative path, it fucks up when I try to write to data file.

It puts a spare blank line in the file, but that works.

  1. That’s a text file which is like a spreadsheet where you have a tab separating columns and line separating rows, you can open them in Excel. []
  2. WordPress doesn’t like the tabs, so I had to replace them with <tab> []

Rename Computer using Scripting and Google Sheets

UPDATE: You need to allow redirects in your cURL by adding -L. See this post.

With Apple’s Device Enrollment program, when a organization-owned device first turns on, it checks in with Device Enrollment and gets the information to know what MDM is managing it and how to contact it. That MDM system can then install what’s known as a bootstrapping package.

In our old bootstrapping package, which was developed by an employee no longer here, was a giant if statement. If SerialNumber = x then set ComputerName to Bob, elseif SerialNumber = y then set ComputerName to Frank, elseif SerialNumber = z then set ComputerName to Jane. Pretty simple and straight forward, but a long list that is static and cannot be updated, without getting the package, rewriting the script to include new computers, repackage it and redeploy it. UGH!

I can’t find the original package. It’s in AirWatch, but sadly, I can’t find a “Download your package” button anywhere in there.

So I was going to rewrite it. Then I came across a page that talked about doing it from a spreadsheet. So I thought, well I can host a CSV file on a server somewhere and the computer can use the curl command to download it. Then I discovered that you can curl command to download a Google Sheet from the internet. At that point then I never have to change the package again1, I just have to update the Google Sheet.

I got into some trouble, and as usual, the killer community in the #toronto channel of the MacAdmins Slack are amazing and came to the rescue.

Specifically @Gerk, I had this weird awk command that wasn’t working. I also didn’t quite understand the command I had found in my Googling. He told me how he would do it, I quickly changed the line and tested it and it worked. I think googled how to parse $LINE variable to only have the value prior to the ,.

I think this works well. If anyone wants to improve on it, let me know. This is why we share knowledge in the MacAdmins community.

#!/bin/sh

# Get the current device's serial number
SERIAL="$(ioreg -l | grep IOPlatformSerialNumber | sed -e 's/.*\"\(.*\)\"/\1/')"

# Where the file will be saved using today's date. On date of writing would be /tmp/serials20190802.csv
OUTPUT=/tmp/serials$(date +%Y%m%d).csv

# Download the CSV from Google Drive, file must be set to Shared With Anyone with Link (or Shared with Anyone)
curl 'https://docs.google.com/spreadsheets/d/YOURGOOGLESHEETIDHERE/export?exportFormat=csv' -o $OUTPUT

# With much thanks to @Gerk and the rest of the crew on the MacAdmins #toronto channel, this now grabs the entire line from the CSV file 
LINE=$(grep $SERIAL $OUTPUT)

# This will grab all the text before the ,
ASSETTAG="$( cut -d ',' -f 1 <<< "$LINE" )"

# Set the ComputerName, HostName and LocalHostName
scutil --set ComputerName $ASSETTAG
scutil --set HostName $ASSETTAG
scutil --set LocalHostName $ASSETTAG
  1. Well, never say never []

Let’s Encrypt with CPanel

A lot of web hosts have Let’s Encrypt built into the CPanel. Not mine. I was kinda annoyed. I tweeted at them to ask if they’d support it. They wouldn’t. So I decided I would make it work myself. To do this is pertty simple. I’m just going to start by copying and pasting text from a previous article.

Open up your Terminal.app (Go to the Go menu, choose Utilities, double-click on Terminal). This isn’t even a step, you should know this.

Step One – Install Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

At this point, you will be prompted to press RETURN to continue. Press the return key.

It will then start downloading and installing Homebrew.

Install XCode Select

Turns out you need XCode Select installed, too. So I ran this code.

xcode-select --install

That popped up a dialogue box, I said Install.

This install took a few minutes, and then once it was done, I was ready to install certbot.

Install certbot

brew install certbot

That easy? Aye!

Begin the Process

sudo certbot -d anklewicz.com -d neverhadtofight.com -d www.neverhadtofight.com -d www.anklewicz.com --manual --preferred-challenges dns certonly

The program will ask you a few questions, if you’re okay with your IP being logged.

Then it will, for each included domain, ask you to set up a TXT record.

Setup DNS Records

Go to your CPanel, yourdomain.com/cpanel is usually the address. Click on the DNS Zone Editor.

Choose the domain you want and click “Manage.”

Click the down arrow beside “Add Record” and choose to add a TXT record.

In the name field put what it told you in Terminal, aka _acme-challenge.yourdomain.com and under Record paste in the gibberish string that certbot told you.

Back to Terminal, press enter to proceed.

Repeat these steps for all domains.

Wait for it to validate your domains.

Copying certificate to desktop

Using the cp command you can copy the two files over to your desktop.

sudo cp /etc/letsencrypt/live/yourdomain.com/privkey.pem ~/Desktop/privkey.pem
sudo cp /etc/letsencrypt/live/yourdomain.com/fullchain.pem ~/Desktop/fullchain.crt

Installing in CPanel

Go back to your front page of CPanel and look for SSL/TSL, and click on that link.

Click on “Generate, view, upload, or delete SSL certificates.”

Scroll down to find “Choose a certificate file (*.crt).”

Upload the CRT file.

Your list of certificates at the top will update and beside the new one, click on Install.

Open the privkey.pem file in a text editor, like BBEdit, and copy it’s contents.

Paste that into the key area and save.

You’re done.

OMG! APPLE IS GUTTING SERVER.APP!!!! Part 3 DNS to BIND

In July, I will be presenting at MacAdmins at PSU. My talk will be called “OMG! APPLE IS GUTTING SERVER.APP!!!!” I will be using my blog to document all the processes taken to get all the data.

The goal of this is to find easy ways to move away from Server.app while utilizing the existing Apple hardware in your server closet and macOS. Sure you can move to a new system, but you might not have the money or time.

You can find the slide deck here.

Server.app -> BIND

So before I start, I should say that this is fully documented in Apple’s macOS Server Service Migration documentation, which is almost perfect. I’m only making two small changes.

  1. First step is to test the server. After booting this VM, I set my DNS to the testserver. It loaded no problem.
  2. Turn off DNS services in Server.app
  3. Install Xcode.
  4. Here’s the first change, and important one… LAUNCH XCODE and agree to the terms and conditions, otherwise it won’t work.
  5. Go to https://www.isc.org/downloads/
    1. Click on “BIND” to expand that section
    2. Click on Download beside “Current Stable”
    3. The top row will be Windows installers, the second row will have the *nix version, choose that. The link currently says bind-9.12.1-P2.tar.gz – tar.gz
    4. Apple says to grab at least one signature. I did it, I don’t know if that was necessary.
  6. Open Terminal and navigate to the directory you downloaded to, in my case it was cd ~/Downloads
  7. Uncompress the files. tar xzf bind-9.12.1-P2.tar.gz
  8. Navigate the uncompressed directory cd ./bind-9.12.1-P2
  9. Run this command ./configure --infodir="/usr/share/info" --sysconfdir="/etc" --localstatedir="/var" --enable-atomic="no" --with-openssl=no --withgssapi=yes --enable-symtable=none --with-libxml2=no
  10. Make it by typing make
  11. Test the build by running the following commands
    1. sudo ./bin/tests/system/ifconfig.sh up
    2. make test … this seemed to go on FOREVER, so control-c‘ed out of there. I don’t know if I was supposed to.
    3. sudo ./bin/tests/system/ifconfig.sh down
  12. Let’s install it. sudo make install
  13. Apple suggests you verify that it’s installed by pulling up the manual for the DNS service called “named.” You do that by typing man named
  14. Create the launchdaemon by typing sudo nano  /Library/LaunchDaemons/org.isc.named.plist
  15. Go here, go to page 7, copy the contents from step two of “Create a launchd .plist file for the BIND9 service”
  16. Save and exit control-x, y, enter
  17. Here’s the next place I disagree with Apple, they say, “Set file ownership to root:wheel.” However, they use chmod, and it’s chown.
    sudo chown root:wheel /Library/LaunchDaemons/org.isc.named.plist
  18. Load the job sudo launchctl load -w /Library/LaunchDaemons/org.isc.named.plist
  19. Test the job launchctl print system/org.isc.named

Wow. Apple has made this super easy. Hooray for Apple. All your existing settings will be there already. Really. It just works.