Mac OS X on x86 Hardware 2008–2024 Technical Archive
InfiniteMac OSx86 › OSx86 Core & 10.X › DeviceMergeNub for _DSM style injection (Injecting values in…
5,060 reads · 2010-11-26
Dossier 10.X Core

DeviceMergeNub for _DSM style injection (Injecting values into PCI devices with kext)

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 -Device ID: 0x27da with device-id And it injects…

Primary Author
@andyvand Published 2010-11-26
Collection
OSx86 Core & 10.X
Archival Footprint
5,060 historical reads · 0 curated field notes (from 2 dispatches) · 2010-11-26
Credited Voices (1)
@andyvand (2)

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:
rapid share.com/files/433312133/DeviceMergeNub_inject.zip

Download plist editor:
rapid share.com/files/433312297/Property_List_Editor.zip

Download IORegistryExplorer:
rapid share.com/files/430687772/IORegistryExplorer.zip

Sources for DeviceMergeNub:
rapid share.com/files/432918115/DeviceMergeNub.zip

Sources and builds for Tiger, Leopard and Snow Leopard:
rapid share.com/files/433496862/DeviceMergeNub_all_os.zip

Author Updates & Technical Revisions

Follow-up dispatches by @andyvand

Author Update #1 @andyvand 2010-11-26

A proper plist example is the one attached below.
Sorry for the bad first example... :-|

Sources & Contributor Provenance (1 credited usernames · Thread #6754)
UsernameDossier ContributionDispatchesActive Window
@andyvandPrimary Author22010-11-26