Jump to content
RehabMan

Mac App Store access with NullEthernet.kext

136 posts in this topic

Recommended Posts

If you don't have working "built-in" Ethernet (or your computer has no Ethernet at all) and do not have a supported PCIe WiFi card, then chances are you're using USB WiFi for internet access. The problem, of course, is that you have no access to the Mac App Store in that scenario.

On a whim, I created NullEthernet.kext to solve this problem. It is a "fake" Ethernet kext that will never actually work. That is, it will not ever provide network access, but it can be made to look "built-in" and solves the issue of Mac App Store access.

For Source/README/download, see here: https://github.com/RehabMan/OS-X-Null-Ethernet

It is now confirmed working in at least two laptops where there is no Ethernet port, and the WiFi is unsupported (and not replaceable).

Update 2014-01-23

A new build is up. This version can be attached to a PCIe device as well as a fake ACPI device (as in the first version). This allows you to load the driver against an actual non-working PCIe device if that is your scenario. It also avoids a DSDT patch as all customization is done in an injector kext by modifying its Info.plist for your device. The injector/PCIe technique is not relevant in the scenario where you have no Ethernet device at all, for that case you must use the fake ACPI device. See the README.md for details.


Update 2016-12-16

A new build is up. This version can be installed without any tweaks to ACPI, and even without a PCI device to attach to. Simply i install NullEthernetForce.kext along with NullEthernet.kext. Read the README for further details.

 

NOT WORKING YET.  REMOVED.

Share this post


Link to post
Share on other sites
Advertisement

hi..

any other way to make the kext load ,instead patch DSDT.'cause I do not use DSDT...

c.frio

It is easy to patch your DSDT with MaciASL. In addition to loading the driver, you need the DSDT to inject properties to make the Ethernet look "built-in."

Share this post


Link to post
Share on other sites

hi..

tks RehabMan...I'll try on desktop as I use only wifi dongle, the computer far away from router

c.frio

Share this post


Link to post
Share on other sites

hi..

tks RehabMan...I'll try on desktop as I use only wifi dongle, the computer far away from router

c.frio

FYI: It would be possible to use an SSDT:

 

DefinitionBlock("ssdt.aml", "SSDT", 2, "RehabMan", "RMNE", 0x00001000)
{
    Device (RMNE)
    {
        Name (_ADR, Zero)
        // The NullEthernet kext matches on this HID
        Name (_HID, "NULE0000")
        // This is the MAC address returned by the kext. Modify if necessary.
        Name (MAC, Buffer() { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 })
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                "built-in", Buffer() { 0x00 },
                "IOName", "ethernet",
                "name", Buffer() { "ethernet" },
                "model", Buffer() { "RM-NullEthernet-1001" },
                "device_type", Buffer() { "ethernet" },
            })
        }
    }
}

Share this post


Link to post
Share on other sites

Thanks Rehabman

 

Is it also possible to build a kext that patches on-the fly like Clover's KextToPatch?

I'm not sure I understand the question. This is a kext you install, it is not a kext patch.

 

I get the question now, but it is off-topic for here. Question is: Can you do Clover style kext patching from within a kext instead of in the bootloader? Answer: No. The potential kexts you would want to patch are already running by the time a kext starts. Kext patching must be done on disk or in the code responsible for loading the kext (eg. bootloader).

Share this post


Link to post
Share on other sites

FYI: It would be possible to use an SSDT:

 

DefinitionBlock("ssdt.aml", "SSDT", 2, "RehabMan", "RMNE", 0x00001000)
{
    Device (RMNE)
    {
        Name (_ADR, Zero)
        // The NullEthernet kext matches on this HID
        Name (_HID, "NULE0000")
        // This is the MAC address returned by the kext. Modify if necessary.
        Name (MAC, Buffer() { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66 })
        Method (_DSM, 4, NotSerialized)
        {
            If (LEqual (Arg2, Zero)) { Return (Buffer() { 0x03 } ) }
            Return (Package()
            {
                "built-in", Buffer() { 0x00 },
                "IOName", "ethernet",
                "name", Buffer() { "ethernet" },
                "model", Buffer() { "RM-NullEthernet-1001" },
                "device_type", Buffer() { "ethernet" },
            })
        }
    }
}

Hi Reahbman..

 

thank you..if I go, I prefer to play with DSDT...as I don't use SSDTs either.... ;)

Share this post


Link to post
Share on other sites

DSDT/SSDT + (Random MAC Adress) + Kext + Deleted and re-added Networks = Working! :-)

Yust how you describe it in your Readme :-)

 

Awesome! Have now working App Store :-)

 

Thank you Rehab :-)

 

Cheers :-)

Share this post


Link to post
Share on other sites

Hi Reahbman..

 

thank you..if I go, I prefer to play with DSDT...as I don't use SSDTs either.... ;)

OK...

 

If you have a non-working PCIe Ethernet, you can also use the second technique (injector onto PCIe device). See README for more information.

Share this post


Link to post
Share on other sites

Hi RehabMan,

 

i've added references and links on the guide for the surface pro,

the only extra thing i had to do was looking for a proper smbios serial via clover configurator and apple support site.

 

a question, do you suggest to always update the kext to the latest version even if icloud access is actually working?

thanks

Share this post


Link to post
Share on other sites

Hi RehabMan,

 

i've added references and links on the guide for the surface pro,

the only extra thing i had to do was looking for a proper smbios serial via clover configurator and apple support site.

 

a question, do you suggest to always update the kext to the latest version even if icloud access is actually working?

thanks

 

I think I'm done with updates for a while on the kext.  Unless someone reports a bug.  I had it on my list to allow it to attach to a PCI device, but before I did that, I wanted to make sure it was working (having no way to test it for myself)... thus the 0.1.0 version followed shortly by 1.0.0 with a few extra features.  You should be able to update without issue.

 

The only feature/idea I have on my list is a random MAC generator, stored in nvram to be re-used on subsequent boots (override with fixed MAC would still be supported as we have now).  But I think I'm going to wait and see how important having a unique MAC turns out to be before putting forth the effort.

Share this post


Link to post
Share on other sites

Awesomeness... Thanks a bunch !!

Share this post


Link to post
Share on other sites

@RehabMan,

 

Would you kindly review my report regarding App Store verification problem in the following link:

http://www.insanelymac.com/forum/topic/273504-app-store-your-device-or-computer-could-not-be-verified/page-4

 

Do you think your Null Ethernet kext has good chance may work in my situation?

If your issue is that you have no working built-in Ethernet (only USB WiFi), this solution should work.

Share this post


Link to post
Share on other sites

Thanks for your reply. 

In the same computer, ML 10.8.5 worked with the airport card without a hitch. In Mavericks, weird stuff happened. I tried importing my ML Networking Interface into Mavericks with proper terminal commands from eep. It installed correctly but it shuts off Wi-Fi function. In Mavericks, I can only have either Wi-Fi or Marvell Yukon Lan. If Both kexts are loaded, only LAN works and Wi-Fi showed up in network setting and I could not turn it on through network setting. Going through my DSDT.aml, I could not locate the Airpot Atheros 9380 at all. Yet, it clearly displayed in the IORegistry. I was hoping that if it showed up in DSDT.aml, maybe some patch might work. WOuld changing SMBios to MacPro 3.1 make a difference? 

 

If I try your NullEthernet Kext with SSDT, if it does not work, can I just uninstall the kext and delete the SSDT and back to square one? I am desperate to try anything as long as it does not give me serious KP that I cannot fix it myself. 

Share this post


Link to post
Share on other sites

Thanks for your reply. 

In the same computer, ML 10.8.5 worked with the airport card without a hitch. In Mavericks, weird stuff happened. I tried importing my ML Networking Interface into Mavericks with proper terminal commands from eep.

ML and Mavericks have the same support for WiFi cards. I don't know what you mean by "importing my ML Networking Interface into Mavericks," but it doesn't sound a like a good idea.

 

It installed correctly but it shuts off Wi-Fi function. In Mavericks, I can only have either Wi-Fi or Marvell Yukon Lan. If Both kexts are loaded, only LAN works and Wi-Fi showed up in network setting and I could not turn it on through network setting.

Key is not messing with the system kexts IO80211Family.kext or IONetworkingFamily.kext as it is unnecessary to replace/patch these kexts and doing so just leads to problems.

 

Going through my DSDT.aml, I could not locate the Airpot Atheros 9380 at all. Yet, it clearly displayed in the IORegistry. I was hoping that if it showed up in DSDT.aml, maybe some patch might work.

Use the information in the ioreg to find it in your DSDT (eg. node in ioreg corresponds to node in DSDT).

 

WOuld changing SMBios to MacPro 3.1 make a difference?

I don't think smbios matters for your case.

 

If I try your NullEthernet Kext with SSDT, if it does not work, can I just uninstall the kext and delete the SSDT and back to square one? I am desperate to try anything as long as it does not give me serious KP that I cannot fix it myself.

Yes. And BTW, there is no such thing as a "serious KP" that cannot be fixed provided you know what you changed to cause it.

Share this post


Link to post
Share on other sites

@ RehabMan,

 

You just hit the nail's head right on. I truly believed in my case, the Atheros Airport card registered under IEEE80211 and Marvell Yukon Kext is installed through modified IONetworking family kext. Somehow it messed up there. 

Is there a way to fix this? I will try your Null Ethernet with SSDT and report back to you. I am sure there won't be any serious KP that cannot be fix as I am not doing something crazy here. 

 

Thanks and have a nice weekend! Congrats to Seahawks winning the Super Bowl.

Share this post


Link to post
Share on other sites

@ RehabMan,

 

You just hit the nail's head right on. I truly believed in my case, the Atheros Airport card registered under IEEE80211 and Marvell Yukon Kext is installed through modified IONetworking family kext. Somehow it messed up there. 

Is there a way to fix this?

No need to install a replacement IONetworkingFamily.kext to install support for a network driver. You can fix it by restoring to vanilla (you made a backup, right?).

 

Thanks and have a nice weekend! Congrats to Seahawks winning the Super Bowl.

Go Hawks!

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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By RogerDodger93
      Salve a tutti ragazzi,
      Mi sono appena iscritto e innanzi tutto vorrei esprimere la mia gratitudine per l'aiuto offerto. Il mio problema come da titolo riguarda il mio Pavilion Power 15 più precisamente il modello cb015nl. Ho notato che c'era un altro topic su un modello simile ma immagino che anche se i modelli sono simili non è detto che siano compatibili quindi ne ho creato uno per il mio modello. Per arrivare al dunque, sono riuscito ad installare con successo Mojave 10.14 ma ho riscontrato diversi problemi una volta avviato l'OS. Quello che non riesco a far funzionare è l'indicatore della batteria, il power managment (Stop non funziona e la luminosità), la porta ethernet e credo che la scheda wifi sia incompatibile, le gesture del trackpad, e l'audio che con una scheda audio esterna funziona a meraviglia e l'ultimo grosso problema è che non riesco a far partire clover senza la usb di installazione, ho installato clover bootoader sull'hd dove ho mojave ma niente senza la usb mi parte il bootloader di hp/windows. Premetto che sono partito con una copia di mojave scaricata dall'appstore. Vi allego il report di HackInfo sperando che possa essere d'aiuto per il troubleshooting
      HackInfo_Report.zip
    • By Hervé
      Recompiled v2.3.6 sources in fat-binary mode (Xcode 3.2.6, SDK 10.6, Target OS X 10.6). Fully supported in 32bit and/or 64bit mode under all OS X/macOS versions from Snow Leopard 10.6 to Mojave 10.14.
       
      Edits:
      Nov 16th, 2018: updated description to extend support to Mojave 10.14
    • By wado729
      Here's my build
      OS: 10.13.6
      CPU: i7-8700k
      MB: MSI Z370i Gaming Carbon AC
      RAM: 16 GB DDR4 Crucial Ballistix

      My internet chipset is Intel I219-V Gigabit LAN controller and I am using version 2.4.0d0 of IntelMausiEthernet.kext.

      I am paying for gigabit down speeds but I am not getting on my hackingtosh. My windows work CPU gets speeds up to 900mb/s but my hackintosh tops out at around 490-510mb/s. It's been like this on 10.13 and 10.13.6. Both machines are not using wi-fi when testing speed, they are both going straight into my router.

      Anybody else have this issue?
    • By EWaffle
      Hey guys, I have a ridiculously convoluted issue. Take a seat.
       
      I am trying to use Logic Pro X on a 2012 Mac Mini I have, but I currently have Snow Leopard OS X 10.6.8, and will need to update to Sierra 10.12. However, I realize I need to update to a newer OS such as El Capitan in order to be able to update to Sierra. Except I cannot sign into the App Store. I am greeted with an error message along the lines of "this computer or device cannot be verified." So I did some digging and it seems to be because my Ethernet port and Wifi don't work. I use a USB Wifi adapter to get around this but now it seems like I finally have to fix it for good so I can get into the App Store to get these updates I need.
       
      In System Preferences > Network, I do not see Ethernet or Wifi listed. Only my USB Wifi Adapter and Firewire. In System Profiler > Hardware > Ethernet Cards, it says, "This computer does not appear to have any PCI Ethernet cards installed."
       
      I'm pulling my hair out over here to get Logic Pro X on this computer, that's all that I really want, and that's all I want this computer to do. If you can help, God bless your soul.
    • By zeg66
      Have managed to boot into Finder without a usb but cannot see the outside world. Could you please help me to enable Marvell 80E8056 ethernet access on 10.9.5 13F34 ?
×