Jump to content

DeviceMergeNub for _DSM style injection


  • Please log in to reply
49 replies to this topic

#41
Eps

Eps

    InsanelyMac Protégé

  • Members
  • PipPip
  • 85 posts
Sorry,Andy.

I think I find a method to inject information to ACPI,PCI and USB by using built-in AppleUSBMergeNub.kext.
If someone interesting in,I offer my info.plist and ioreg file.

Attached File  ioreg_info.zip   380.41KB   108 downloads

#42
scrax

scrax

    InsanelyMac Deity

  • Members
  • PipPipPipPipPipPipPipPipPipPip
  • 1,704 posts
  • Gender:Male

Sorry,Andy.

I think I find a method to inject information to ACPI,PCI and USB by using built-in AppleUSBMergeNub.kext.
If someone interesting in,I offer my info.plist and ioreg file.

Attached File  ioreg_info.zip   380.41KB   108 downloads

can you offer also some more explanations on how you did it?
I'm looking at the info plist and it looks very interesting, but also there is a lot of stuff that i don't understand...

#43
Rik26

Rik26

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 254 posts

can you offer also some more explanations on how you did it?
I'm looking at the info plist and it looks very interesting, but also there is a lot of stuff that i don't understand...

Idem... I'm also interested, as I wrote a few post ago, to inject only info on PCI card section in System Profiler for each card i have (ex Ethernet, Firewire, Audio etc...), just cosmetic.... Thanks

#44
harbri

harbri

    InsanelyMac Protégé

  • Members
  • Pip
  • 44 posts
  • Gender:Male

can you offer also some more explanations on how you did it?
I'm looking at the info plist and it looks very interesting, but also there is a lot of stuff that i don't understand...


I also join Scrax in his request for more info, I'd also love to know how you did it.
Thx!

harbri

#45
CharredPC

CharredPC

    InsanelyMac Sage

  • Members
  • PipPipPipPipPip
  • 302 posts
Let me test my understanding here...

In theory, this is an editable kext that matches/edits/modifies/adds information to hardware profiles. I have a GMA965 / X3100 laptop with random EDID detection issues. The only fix so far has been a per-OS manual install of a Display Override, to force the EDID. It sounds as though maybe I could make a kext which does the job instead. If all that is true, a few questions- would it work from E/E, or need to be in S/L/E? In a dual boot 10.5/10.6 setup, would there need to be two versions of the kext in E/E, and would they conflict? Can anyone give a quick example of how this could be written/implemented? Many thanks in advance.

#46
Eps

Eps

    InsanelyMac Protégé

  • Members
  • PipPip
  • 85 posts
For example,my device "APCI0003" is lack some keys that AppleACPIACAdepter cannot loaded.
So I make a legacy kext and add some infomation just like the following picture.
You can inject keys,values or parameters by refering real MAC's ioreg.
It can inject number,data and even a dictionary tree into almost everywhere you want.
We cannot loading kexts by overwriting device's name or ID.
But,we can activate devices like graphic card by inject keys.
You will find how to inject USB device by refering info.plist in AppleUSBMergeDevice.kext and other PCI or ACPI devices by refering it's kexts.

Attached File  Example.jpg   271.45KB   268 downloads

#47
dmazar

dmazar

    InsanelyMac Sage

  • Coders
  • 268 posts
  • Gender:Male
Thanks to Andy for this tool.
I've played with this and added some new functionality. Hope this is ok. If not, please write and I'll remove it.

Added ability to do the injection only if some parent node in a chain (up to the root) is matched by given criteria. It's possible to specify IOAnyParentMatch dictionary (inside personality dictionary) with some standard matching keys, and then injection will happen only if there is a parent node (the whole path up to the root is searched) that can be matched with these. If IOAnyParentMatch is not specified, then it behaves like original DeviceMergeNub - does the injection.

Supported keys inside IOAnyParentMatch:
* IONameMatch - can be string or array or dictionary with standard names (SAT0, pci8086,1c02, …)
* IOPropertyMatch - dictionary with properties to match (all listed must match)
* IOLocationMatch - string (1F,2)
* IOPathMatch - string path to node in IOService plane (IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SAT0@1F,2)

It's made as a new kext DeviceMergeNubAPM.kext.

It was made for fun and to check if it is possible to inject Protocol Characteristics (Connection Internal or External) for specific controller, and it seems it is (I'll post a new thread about this). I do not know if there are other cases where this can be used.

Source code:
Attached File  DeviceMergeNubAPM.zip   970.62KB   87 downloads

Example kext that sets grey (internal) icons for drives on specified controllers:
Attached File  DeviceMergeNubAPM.kext.zip   23.63KB   128 downloads

#48
dmazar

dmazar

    InsanelyMac Sage

  • Coders
  • 268 posts
  • Gender:Male
Posted more details about Internal/External icons here:
http://www.insanelym...howtopic=259404

#49
Onixs

Onixs

    Since 2007

  • Members
  • PipPipPipPipPipPipPip
  • 742 posts
  • Gender:Male
Andy Vandijck


Can you please make a PLIST to allow some broadcom wireless to inject correct values instead of "Third Party Wireless" being shown in System Profiler. This way, we dont need to flash the firmware in Linux.

Thanks :)


#50
jazzyguy

jazzyguy

    InsanelyMac Geek

  • Members
  • PipPipPipPip
  • 188 posts
  • Gender:Male
  • Location:USA
Would this help to get a synaptics 7.5 touchpad to use the AppleUSBMultitouch.kext in order to get 3 finger gestures (in lion)?





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