Jump to content
5 posts in this topic

Recommended Posts

While snooping around with a hexeditor I found that the device ids normally found in an ATI driver's plist file are also located in the binary file in the MacOS directory.

 

From /System/Library/Extensions/ATIRadeon8500.kext/Contents/MacOS/ATIRadeon8500:

 

I not sure of the exact starting point of the data but it seems like each device is in a data structure that is 12 bytes long. There seems to be an additional 4 bytes after the first, fifth, and eighth devices. Perhaps this describes characteristics of the devices that follow? I think the start of each group begins 3 bytes before the start of the device id and ends on a null. All data seems to end with a null (00).

 

There are nine devices listed and one is listed twice.

 

The data begins (I'm guessing the starting point) at address 0x0001A387. The first device is three bytes in and is 0x514C.

 

You may ask, So what? Well it means that it might not matter what you put in the Info.plist file! The bytes around those ids may tell the driver how to configure the card. Hence, playing with these numbers may help discover something. Perhaps some of those values identify ids specific to mac ATI cards. First thing would be to try and identify those values. Could simply be bit flags...

 

I would guess this is true of all ATI drivers or even other kinds of drivers! Wifi etc.. ???

 

I just don't have the time to experiment with this so have fun! Don't bother PMing me, this is all I know.

 

On a side note: The binary file in IOGraphicsFamily.kext contains a string called IOFBRefreshRate/IOFBWidth/IOFBHeight. If this can be set in a plist file then we may be able to control the resolution and refresh for people that get the ATI drivers loaded. Just an idea... If this works out someone should start another topic.

 

Good luck to anyone that has the time... Please keep us informed...

I'm not sure of that driver but I just looked at AppleAirPort2 and found a bunch of device IDs just like the ATIs:

 

Starting around 0x000169f0:

91 3d 00 00 90 5c 00 00 38 21 00 50 80 01 00 08

bb 81 ff f0 7c 08 03 a6 4e 80 00 20 3d 80 00 00

61 8c 00 00 7d 89 03 a6 4e 80 04 20 2f 83 14 e4

40 9e 00 4c 2f 84 43 01 41 9e 00 4c 2f 84 43 07

41 9e 00 44 2f 84 43 20 41 9e 00 3c 2f 84 43 25

41 9e 00 34 2f 84 43 03 41 9e 00 2c 2f 84 43 21

41 9e 00 24 2f 84 43 24 41 9e 00 1c 2f 84 43 18

41 9e 00 14 2f 84 43 19 41 9e 00 0c 38 60 00 00

4e 80 00 20 38 60 00 01 4e 80 00 20 7c 08 02 a6

93 e1 ff fc 7c 7f 1b 78 90 01 00 08 94 21 ff b0

80 03 00 08 2f 80 00 00 41 9e 00 34 80 03 11 48

2f 80 00 00 40 be 00 20 38 00 00 01 80 9f 19 d4

 

Guessing at the first byte in each group:

Devices start on the 4th byte in an 8 byte item array:

 

Re-aligned:

4c 2f 84 43 01 41 9e 00

4c 2f 84 43 07 41 9e 00

44 2f 84 43 20 41 9e 00

3c 2f 84 43 25 41 9e 00

34 2f 84 43 03 41 9e 00

2c 2f 84 43 21 41 9e 00

24 2f 84 43 24 41 9e 00

1c 2f 84 43 18 41 9e 00

14 2f 84 43 19 41 9e 00

 

Hence, this driver really supports these devices:

4301

4307

4320 (in Info.plist)

4325 (in Info.plist)

4303

4321

4324 (in Info.plist)

4318 (in Info.plist)

4319

 

 

If I'm right, this means that the driver supports more devices then listed in the plist file.

 

Get a hexeditor and look around! Remember to search by hex not string!

 

This has to lead to something!

×
×
  • Create New...