Jump to content

DeviceMergeNub for _DSM style injection


  • Please log in to reply
49 replies to this topic

#1
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...
This is an example of using the DeviceMergeNub for injection.
The stock plist injects into an SMBus controller.
In the case of the example it uses
-Vendor ID: 0x8086 (Intel) with vendor-id (<86800000>)
-Device ID: 0x27da with device-id (<da270000>)
And it injects the following values through IOProviderMergeProperties:
-device-id: set to 0x303a (<3a300000>)
-name: set to pci8086,303a
-IOName: set to pci8086,303a
It is possible to inject for any device this way.
It can even match for entire classes if class-code is used instead of vendor-id and device-id.
IORegistryExplorer is handy for looking up the exact device entries.
You need to get the Apple plist editor for editing the Info.plist

Download example:
http://rapidshare.co...eNub_inject.zip

Download plist editor:
http://rapidshare.co...List_Editor.zip

Download IORegistryExplorer:
http://rapidshare.co...tryExplorer.zip

Sources for DeviceMergeNub:
http://rapidshare.co...iceMergeNub.zip

Sources and builds for Tiger, Leopard and Snow Leopard:
http://rapidshare.co...eNub_all_os.zip

#2
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...
BTW: If anybody is interested in a FireWire injector I can make that too (FireWireMergeNub)
Let me know if that is the case... :)

#3
ErmaC

ErmaC

    127.0.0.1

  • Supervisors
  • 4,633 posts
  • Gender:Male
  • Location:Canary Islands

BTW: If anybody is interested in a FireWire injector I can make that too (FireWireMergeNub)
Let me know if that is the case... :)


Of course!
What you need? (for FRW400)...

Fabio

#4
Eps

Eps

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts
I find something strange in IORegistryExplorer.
It seem that all PCI devices are injected by the same infomation.
For example.
Attached File  screenshot1.jpg   28.17KB   290 downloads
Attached File  screenshot2.jpg   26.27KB   220 downloads

and I find this in Console.
Attached File  screenshot3.jpg   80.45KB   226 downloads

Is the kext cannot be used with natit? :D

#5
jlvaio

jlvaio

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 220 posts
can it does something for vaio internal screen problem?(sfep , sny5001)
the most recent topics is: http://www.insanelym...p...8556&st=360
i think the users most competent to describe the issue and the advanced and the "problem" are kizwann and funky frank from this topics
thanks if you can take a look and can help

hope and wich of success

:help: :stretcher: :fiery: :ihw_pop: :D :dice: :blowup: :soldiers: :yoji:

#6
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

Of course!
What you need? (for FRW400)...

Fabio

A little bit of time... ;)
I'll make one tomorrow.... :D
EDIT: I did it today. Look under the New Releases part of the forum ;)

I find something strange in IORegistryExplorer.
It seem that all PCI devices are injected by the same infomation.
For example.
Attached File  screenshot1.jpg   28.17KB   290 downloads
Attached File  screenshot2.jpg   26.27KB   220 downloads

and I find this in Console.
Attached File  screenshot3.jpg   80.45KB   226 downloads

Is the kext cannot be used with natit? :dice:

That's odd... it didn't do that here (I think).
I'll look into it.

can it does something for vaio internal screen problem?(sfep , sny5001)
the most recent topics is: http://www.insanelym...p...8556&st=360
i think the users most competent to describe the issue and the advanced and the "problem" are kizwann and funky frank from this topics
thanks if you can take a look and can help

hope and wich of success

:help: :stretcher: :fiery: :ihw_pop: :D :yoji: :blowup: :soldiers: :help:

You can use this injector to inject values into the classes of the driver (like the EDID and stuff).
This might be able to help you... ;)

#7
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

I find something strange in IORegistryExplorer.
It seem that all PCI devices are injected by the same infomation.
For example.
Attached File  screenshot1.jpg   28.17KB   290 downloads
Attached File  screenshot2.jpg   26.27KB   220 downloads

and I find this in Console.
Attached File  screenshot3.jpg   80.45KB   226 downloads

Is the kext cannot be used with natit? :P

Sorry, I mixed up the way the USB family does it.
The proper way is the plist attached below....

Attached Files



#8
Rik26

Rik26

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 254 posts
Is this kext for snow only?

#9
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

Is this kext for snow only?

Yes, it is for Snow only but it properly can be recompiled for Tiger / Leopard.
If you want that I'll build it for you.
Let me know....

#10
Time2Retire

Time2Retire

    Retired

  • Retired Developers
  • 1,012 posts
  • Gender:Female
  • Location:anonymouse.eu
Great. This might be what I am looking for. That is if it comes with source code; I can read/set properties in command line tools already but would like to learn new stuff. Totally different stuff to learn again. Thank you for sharing.

#11
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

Is this kext for snow only?

Use the plist attached in one of the replies and get the new sources...
They include builds for Leopard and Tiger

#12
Eps

Eps

    InsanelyMac Protégé

  • Members
  • PipPip
  • 84 posts
It is pity that modifying vendor id and device id doesn't make kext driver loaded.
But,I don't need natit anymore.
By injecting information,I got my graphic card enabled and make my wireless look like an AirPort Extreme Card.

Attached File  _____________2010_11_28_______9.12.12.jpg   26.54KB   230 downloads

Good job,Andy! :D

#13
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

It is pity that modifying vendor id and device id doesn't make kext driver loaded.
But,I don't need natit anymore.
By injecting information,I got my graphic card enabled and make my wireless look like an AirPort Extreme Card.

Attached File  _____________2010_11_28_______9.12.12.jpg   26.54KB   230 downloads

Good job,Andy! :)

Yeah, the nice part of DeviceMergeNub is that it is an all purpose generic PCI device + classes injector.
This little devil can do all... :D :D

I've got another example.
This one matches on part of the class id.
It's a replacement for HDAEnabler in this case (audio injector).

Attached Files



#14
BladeRunner

BladeRunner

    InsanelyMac Legend

  • Donators
  • 688 posts
  • Gender:Male
  • Location:New York
@Anv

Andy, this new injector looks very interesting and I would like to try it. However, just a few questions before I jump in.

I currently have two PCI-e adapter cards. One has two firewire and three usb ports. The other has four usb ports. While the ports are functional, neither adapter is recognized by the System Profiler. The questions hear are: 1) do I need two copies of the injector to get both adapters recognized of can it be done with one copy and extra Info.plist entries? 2) If I get the adapters recognized would that apply to items plugged into the various ports?

I also have a built-in realtek acl888 audio. Currently it is supported by VoodooHDA. Again, not seen by the System Profiller and not supported by the Apple HDA drivers. Could this injector help with either of those issues?

And, before I forget, thanks for the effort on this new tool.

#15
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

@Anv

Andy, this new injector looks very interesting and I would like to try it. However, just a few questions before I jump in.

I currently have two PCI-e adapter cards. One has two firewire and three usb ports. The other has four usb ports. While the ports are functional, neither adapter is recognized by the System Profiler. The questions hear are: 1) do I need two copies of the injector to get both adapters recognized of can it be done with one copy and extra Info.plist entries? 2) If I get the adapters recognized would that apply to items plugged into the various ports?

I also have a built-in realtek acl888 audio. Currently it is supported by VoodooHDA. Again, not seen by the System Profiller and not supported by the Apple HDA drivers. Could this injector help with either of those issues?

And, before I forget, thanks for the effort on this new tool.

1. You must use only one injector but use the apple plist editor to set multiple IOKitPersonalities.
2. The injector performs on PCI devices only, not USB devices (use AppleUSBMergeNub for that).
3. The support will only be there for injecting information for AppleHDA + System Profiler (see picture)

Attached Files



#16
BladeRunner

BladeRunner

    InsanelyMac Legend

  • Donators
  • 688 posts
  • Gender:Male
  • Location:New York

1. You must use only one injector but use the apple plist editor to set multiple IOKitPersonalities.
2. The injector performs on PCI devices only, not USB devices (use AppleUSBMergeNub for that).
3. The support will only be there for injecting information for AppleHDA + System Profiler (see picture)


Andy,

I really appreciate your reply. I will get a copy of AppleUSBMergeNub and give it a try also. I think I have enough info to get started. Again, many thanks.

#17
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

Andy,

I really appreciate your reply. I will get a copy of AppleUSBMergeNub and give it a try also. I think I have enough info to get started. Again, many thanks.

P.S. AppleUSBMergeNub is standard on every Mac OS X system so you can use legacy kext's for that...
The kext is present under IOUSBFamily.kext/Contents/PlugIns

#18
Rik26

Rik26

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 254 posts
Andy, is there any way to inject PCI cards info (for each device) in the section PCI card of System profiler? I think it's only cosmetic but I'd like to try...

#19
Andy Vandijck

Andy Vandijck

    InsanelyMac Deity

  • Coders
  • 1,602 posts
  • Gender:Male
  • Location:Tienen
  • Interests:Programming stuff for Mac OS X...
    Hacking...
    Hard rock (also really big Metallica...

Andy, is there any way to inject PCI cards info (for each device) in the section PCI card of System profiler? I think it's only cosmetic but I'd like to try...

Yes, it should be possible.

You need to inject the following:
AAPL,slot-name (the name of the slot of the device e.g. PCI-0)
device_type (the type of the device e.g. ethernet)
model (the model of the device e.g. Atheros AR8132 Fast Ethernet Network Adapter

NOTE: AAPL,slot-name must be unique for each device.
You can use multiple IOKitPersonalities entries for it and all of the above can use type string.

#20
jlvaio

jlvaio

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 220 posts
hi andy

if you can do it for 10.5 it should be great

other things:
for sound i have this 3 cards:


Realtek High Definition Audio

HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&SUBSYS_104D2200&REV_1001
HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&SUBSYS_104D2200

HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC&DEV_0262&REV_1001
HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC&DEV_0262&REV_1001
HDAUDIO\FUNC_01&VEN_10EC&DEV_0262&REV_1001
HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC&DEV_0262
HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC&DEV_0262
HDAUDIO\FUNC_01&VEN_10EC&DEV_0262
HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_10EC
HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_10EC
HDAUDIO\FUNC_01&VEN_10EC
HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B
HDAUDIO\FUNC_01&CTLR_VEN_8086
HDAUDIO\FUNC_01&GF&VEN_10EC&DEV_0262&SUBSYS_104D2200&REV_1001
HDAUDIO\FUNC_01

AVerMedia Hybrid H/W MPEG Card, M115S (DVBT/NTSC/PAL/SECAM)

PCI\VEN_1131&DEV_7133&SUBSYS_E8361461&REV_D1
PCI\VEN_1131&DEV_7133&SUBSYS_E8361461
PCI\VEN_1131&DEV_7133&CC_048000
PCI\VEN_1131&DEV_7133&CC_0480

PCI\VEN_1131&DEV_7133&REV_D1
PCI\VEN_1131&DEV_7133
PCI\VEN_1131&CC_048000
PCI\VEN_1131&CC_0480
PCI\VEN_1131
PCI\CC_048000
PCI\CC_0480

00000008
PCI\VEN_1131&DEV_7133&SUBSYS_E8361461&REV_D1\4&332BEDD2&0&20F0

IDT High Definition Audio CODEC

HDAUDIO\FUNC_01&VEN_8384&DEV_7664&SUBSYS_104D2200&REV_1002
HDAUDIO\FUNC_01&VEN_8384&DEV_7664&SUBSYS_104D2200

HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384&DEV_7664&REV_1002
HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384&DEV_7664&REV_1002
HDAUDIO\FUNC_01&VEN_8384&DEV_7664&REV_1002
HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384&DEV_7664
HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384&DEV_7664
HDAUDIO\FUNC_01&VEN_8384&DEV_7664
HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B&VEN_8384
HDAUDIO\FUNC_01&CTLR_VEN_8086&VEN_8384
HDAUDIO\FUNC_01&VEN_8384
HDAUDIO\FUNC_01&CTLR_VEN_8086&CTLR_DEV_284B
HDAUDIO\FUNC_01&CTLR_VEN_8086
HDAUDIO\FUNC_01&GF&VEN_8384&DEV_7664&SUBSYS_104D2200&REV_1002
HDAUDIO\FUNC_01


do you think i can use the 3 atthe same time with this?
:)





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