RehabMan Posted January 23, 2014 Share Posted January 23, 2014 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-EthernetIt 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-23A 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-16A 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. 19 Link to comment Share on other sites More sharing options...
JahStories Posted January 23, 2014 Share Posted January 23, 2014 works flawlessy, you are the man! 2 Link to comment Share on other sites More sharing options...
C.Frio Posted January 23, 2014 Share Posted January 23, 2014 hi.. any other way to make the kext load ,instead patch DSDT.'cause I do not use DSDT... c.frio Link to comment Share on other sites More sharing options...
RehabMan Posted January 23, 2014 Author Share Posted January 23, 2014 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." Link to comment Share on other sites More sharing options...
C.Frio Posted January 24, 2014 Share Posted January 24, 2014 hi.. tks RehabMan...I'll try on desktop as I use only wifi dongle, the computer far away from router c.frio Link to comment Share on other sites More sharing options...
RehabMan Posted January 24, 2014 Author Share Posted January 24, 2014 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" }, }) } } } Link to comment Share on other sites More sharing options...
rfic Posted January 24, 2014 Share Posted January 24, 2014 thanks so much, i have been waiting for this for a while great u made it working Link to comment Share on other sites More sharing options...
Onixs Posted January 24, 2014 Share Posted January 24, 2014 Thanks Rehabman Is it also possible to build a kext that patches on-the fly like Clover's KextToPatch? Link to comment Share on other sites More sharing options...
RehabMan Posted January 24, 2014 Author Share Posted January 24, 2014 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). Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted January 24, 2014 Share Posted January 24, 2014 Kicking ass and taking names!! How cool is this? Topic pinned, though it probably won't need to be. 2 Link to comment Share on other sites More sharing options...
RehabMan Posted January 24, 2014 Author Share Posted January 24, 2014 Uploaded a new build. Details are in post #1 and the README.md at github. 1 Link to comment Share on other sites More sharing options...
C.Frio Posted January 24, 2014 Share Posted January 24, 2014 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.... Link to comment Share on other sites More sharing options...
Ramalama Posted January 24, 2014 Share Posted January 24, 2014 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 :-) Link to comment Share on other sites More sharing options...
RehabMan Posted January 24, 2014 Author Share Posted January 24, 2014 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. Link to comment Share on other sites More sharing options...
JahStories Posted January 24, 2014 Share Posted January 24, 2014 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 Link to comment Share on other sites More sharing options...
RehabMan Posted January 24, 2014 Author Share Posted January 24, 2014 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. Link to comment Share on other sites More sharing options...
JahStories Posted January 24, 2014 Share Posted January 24, 2014 ok i'll update so. thanks again for your work Link to comment Share on other sites More sharing options...
ramachandren Posted January 29, 2014 Share Posted January 29, 2014 Awesome ! Will give it a try tonight. Link to comment Share on other sites More sharing options...
aplIIc Posted January 29, 2014 Share Posted January 29, 2014 Awesomeness... Thanks a bunch !! Link to comment Share on other sites More sharing options...
Phil511 Posted February 8, 2014 Share Posted February 8, 2014 @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? Link to comment Share on other sites More sharing options...
RehabMan Posted February 8, 2014 Author Share Posted February 8, 2014 @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. Link to comment Share on other sites More sharing options...
Phil511 Posted February 8, 2014 Share Posted February 8, 2014 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. 1 Link to comment Share on other sites More sharing options...
RehabMan Posted February 8, 2014 Author Share Posted February 8, 2014 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. Link to comment Share on other sites More sharing options...
Phil511 Posted February 8, 2014 Share Posted February 8, 2014 @ 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. Link to comment Share on other sites More sharing options...
RehabMan Posted February 8, 2014 Author Share Posted February 8, 2014 @ 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! Link to comment Share on other sites More sharing options...
Recommended Posts