Jump to content

Mac App Store access with NullEthernet.kext

mac app store NullEthernet Ethernet

  • Please log in to reply
72 replies to this topic

#1
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,581 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars
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/R...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.

#2
JahStories

JahStories

    InsanelyMac Legend

  • Local Moderators
  • 1,358 posts
  • Gender:Male
  • Location:Sicily, Italy.
  • Interests:Everything that got a screen on it, skateboarding, reggae music, PowerPcs, Amigas and retrogamin...

works flawlessy,

 

you are the man!



#3
C.Frio

C.Frio

    InsanelyMac Legend

  • Pandora Team
  • 1,254 posts
  • Gender:Male
  • Location:Cabo frio - Brasil

hi..

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

c.frio



#4
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,581 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

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."

#5
C.Frio

C.Frio

    InsanelyMac Legend

  • Pandora Team
  • 1,254 posts
  • Gender:Male
  • Location:Cabo frio - Brasil

hi..

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

c.frio



#6
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,581 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

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" },
            })
        }
    }
}


#7
rfic

rfic

    InsanelyMac Protégé

  • Members
  • Pip
  • 30 posts

thanks so much, i have been waiting for this for a while

 

great u made it working



#8
Onixs

Onixs

    Since 2007

  • Members
  • PipPipPipPipPipPipPip
  • 808 posts
  • Gender:Male

Thanks Rehabman

 

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



#9
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,581 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

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).

#10
Gringo Vermelho

Gringo Vermelho

    The Jan Bird fix

  • Supervisors
  • 6,123 posts
  • Gender:Male
  • Location:Brazil

Kicking ass and taking names!! How cool is this?

 

Topic pinned, though it probably won't need to be.



#11
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,581 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars
Uploaded a new build. Details are in post #1 and the README.md at github.

#12
C.Frio

C.Frio

    InsanelyMac Legend

  • Pandora Team
  • 1,254 posts
  • Gender:Male
  • Location:Cabo frio - Brasil

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.... ;)



#13
Ramalama

Ramalama

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 273 posts
  • Gender:Not Telling
  • Location:Germany

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 :-)



#14
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,581 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

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.

#15
JahStories

JahStories

    InsanelyMac Legend

  • Local Moderators
  • 1,358 posts
  • Gender:Male
  • Location:Sicily, Italy.
  • Interests:Everything that got a screen on it, skateboarding, reggae music, PowerPcs, Amigas and retrogamin...

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



#16
RehabMan

RehabMan

    InsanelyMac Deity

  • Coders
  • 1,581 posts
  • Gender:Male
  • Location:Bellingham, WA
  • Interests:skiing, software, classic cars

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.



#17
JahStories

JahStories

    InsanelyMac Legend

  • Local Moderators
  • 1,358 posts
  • Gender:Male
  • Location:Sicily, Italy.
  • Interests:Everything that got a screen on it, skateboarding, reggae music, PowerPcs, Amigas and retrogamin...

ok i'll update so.

 

thanks again for your work



#18
ramachandren

ramachandren

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts

Awesome ! Will give it a try tonight.



#19
aplIIc

aplIIc

    InsanelyMac Protégé

  • Members
  • PipPip
  • 98 posts
  • Gender:Male
  • Interests:Blender, Mac on AMD, Coffee, F1, hakie sack, BEAMbots, beer, surf, MotoGP, ax throwing, son et l...

Awesomeness... Thanks a bunch !!



#20
Phil511

Phil511

    InsanelyMac Protégé

  • Members
  • PipPip
  • 70 posts
  • Gender:Male
  • Location:USA

@RehabMan,

 

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

http://www.insanelym...verified/page-4

 

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








0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy