Jump to content
924 posts in this topic

Recommended Posts

Added Github repo containing the latest "Release" version (2.3.2).

 

Page:

https://github.com/andyvand/FixEDID

 

However, I lost the 2.4.0 beta 7 version. Please if somebody has it, reupload...

  • Like 1

Is there Intel raid support?

Thanks.

RAID support = Intel RAID .efi driver binary.

Put it in drivers64UEFI...

Many BIOS mod forums will give you those...

here is Andy ..... keep on rockin bro :guitar:

 

 

https://www.dropbox.com/s/ry2oytffhjxu5oo/AnV-Dev.zip?dl=0

Everything that wasn't on Github now is...

Thanks :D

Hi Andy

I am trying to compile inteltool from your hwtools-master.zip but getting this error:

Checking for pciutils and zlib... not found.

Please install pciutils-devel and zlib-devel.
See README for more information.

make: *** [pciutils] Error 1

Where and how can i get those?

 

Thanks

Hi Andy

I am trying to compile inteltool from your hwtools-master.zip but getting this error:

Checking for pciutils and zlib... not found.

Please install pciutils-devel and zlib-devel.
See README for more information.

make: *** [pciutils] Error 1

Where and how can i get those?

 

Thanks

pciutils you can get from Apple' site (I think) and otherwise pciutils with Apple patch.

zlib.org.... official zlib or my own custom Apple compliant version (patch available from Github, my AppleUpdates)

Hi Andy! 

I'm reading your posts "IOUSBFamily" and this.

 

I'm thinking, there is a way to build a driver to make work a Winbond Consumer Infrared Receiver ? I have an IrDA and a section in my native DSDT like this:

Device (CIR)
                {
                    Method (_HID, 0, NotSerialized)  // _HID: Hardware ID
                    {
                        If (LLess (OSYS, 0x07D6))
                        {
                            Return (0x2310A35C)
                        }
                        Else
                        {
                            Return (0x2010A35C)
                        }
                    }

                    OperationRegion (WBIO, SystemIO, 0x2E, 0x02)
                    Field (WBIO, ByteAcc, NoLock, Preserve)
                    {
                        INDX,   8, 
                        DATA,   8
                    }

                    Mutex (WBMX, 0x00)
                    IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x07), 
                        LDN,    8, 
                        Offset (0x30), 
                        ACTR,   1, 
                        Offset (0x60), 
                        IOAH,   8, 
                        IOAL,   8, 
                        Offset (0x70), 
                        INTR,   8
                    }

                    Method (ENFG, 1, NotSerialized)
                    {
                        Acquire (WBMX, 0xFFFF)
                        Store (0x07, INDX)
                        Store (Arg0, DATA)
                    }

                    Method (EXFG, 0, NotSerialized)
                    {
                        Release (WBMX)
                    }

                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        ENFG (0x03)
                        Store (ACTR, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            Store (0x0F, Local0)
                        }
                        Else
                        {
                            Store (0x0D, Local0)
                            _DIS ()
                        }

                        If (LEqual (CIRI, Zero))
                        {
                            Store (Zero, Local0)
                            _DIS ()
                        }

                        If (LLess (OSYS, 0x07D6))
                        {
                            ENFG (0x03)
                            Store (Zero, IOAH)
                            Store (Zero, IOAL)
                            EXFG ()
                        }

                        Return (Local0)
                    }

                    Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
                    {
                        ENFG (0x03)
                        Store (Zero, ACTR)
                        Store (Zero, IOAH)
                        Store (Zero, IOAL)
                        Store (Zero, INTR)
                        EXFG ()
                        ENFG (0x04)
                        Store (Zero, ACTR)
                        Store (Zero, IOAH)
                        Store (Zero, IOAL)
                        EXFG ()
                        Store (Zero, Z00Z)
                    }

                    Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
                    {
                        Name (PRS1, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0600,             // Range Minimum
                                    0x0600,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IO (Decode16,
                                    0x0620,             // Range Minimum
                                    0x0620,             // Range Maximum
                                    0x01,               // Alignment
                                    0x20,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            EndDependentFn ()
                        })
                        Name (PRS2, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0620,             // Range Minimum
                                    0x0620,             // Range Maximum
                                    0x01,               // Alignment
                                    0x20,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            EndDependentFn ()
                        })
                        If (LLess (OSYS, 0x07D6))
                        {
                            Return (PRS2)
                        }
                        Else
                        {
                            Return (PRS1)
                        }
                    }

                    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                    {
                        Name (DCRS, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x20,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        })
                        Name (CRS1, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0600,             // Range Minimum
                                0x0600,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0620,             // Range Minimum
                                0x0620,             // Range Maximum
                                0x01,               // Alignment
                                0x20,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        })
                        Name (CRS2, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0620,             // Range Minimum
                                0x0620,             // Range Maximum
                                0x01,               // Alignment
                                0x20,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        })
                        ENFG (0x03)
                        Store (ACTR, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            If (LLess (OSYS, 0x07D6))
                            {
                                Return (CRS2)
                            }
                            Else
                            {
                                Return (CRS1)
                            }
                        }
                        Else
                        {
                            Return (DCRS)
                        }
                    }

                    Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
                    {
                        If (LLess (OSYS, 0x07D6))
                        {
                            CreateByteField (Arg0, 0x02, IO1L)
                            CreateByteField (Arg0, 0x03, IO1H)
                            CreateWordField (Arg0, 0x09, IRQX)
                            FindSetRightBit (IRQX, Local0)
                            Decrement (Local0)
                            ENFG (0x03)
                            Store (Zero, INTR)
                            Store (Zero, IOAH)
                            Store (Zero, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                            ENFG (0x04)
                            Store (Local0, INTR)
                            Store (IO1H, IOAH)
                            Store (IO1L, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                        }
                        Else
                        {
                            CreateByteField (Arg0, 0x02, AD1L)
                            CreateByteField (Arg0, 0x03, AD1H)
                            CreateByteField (Arg0, 0x0A, AD2L)
                            CreateByteField (Arg0, 0x0B, AD2H)
                            CreateWordField (Arg0, 0x11, IRQM)
                            FindSetRightBit (IRQM, Local0)
                            Decrement (Local0)
                            ENFG (0x03)
                            Store (Local0, INTR)
                            Store (AD1H, IOAH)
                            Store (AD1L, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                            ENFG (0x04)
                            Store (Zero, INTR)
                            Store (AD2H, IOAH)
                            Store (AD2L, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                        }

                        Store (One, Z00Z)
                    }
                }

If you need more informations I can post you the informations from Windows with installed driver.

  • Like 1

Hi Andy! 

I'm reading your posts "IOUSBFamily" and this.

 

I'm thinking, there is a way to build a driver to make work a Winbond Consumer Infrared Receiver ? I have an IrDA and a section in my native DSDT like this:

Device (CIR)
                {
                    Method (_HID, 0, NotSerialized)  // _HID: Hardware ID
                    {
                        If (LLess (OSYS, 0x07D6))
                        {
                            Return (0x2310A35C)
                        }
                        Else
                        {
                            Return (0x2010A35C)
                        }
                    }

                    OperationRegion (WBIO, SystemIO, 0x2E, 0x02)
                    Field (WBIO, ByteAcc, NoLock, Preserve)
                    {
                        INDX,   8, 
                        DATA,   8
                    }

                    Mutex (WBMX, 0x00)
                    IndexField (INDX, DATA, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0x07), 
                        LDN,    8, 
                        Offset (0x30), 
                        ACTR,   1, 
                        Offset (0x60), 
                        IOAH,   8, 
                        IOAL,   8, 
                        Offset (0x70), 
                        INTR,   8
                    }

                    Method (ENFG, 1, NotSerialized)
                    {
                        Acquire (WBMX, 0xFFFF)
                        Store (0x07, INDX)
                        Store (Arg0, DATA)
                    }

                    Method (EXFG, 0, NotSerialized)
                    {
                        Release (WBMX)
                    }

                    Method (_STA, 0, NotSerialized)  // _STA: Status
                    {
                        ENFG (0x03)
                        Store (ACTR, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            Store (0x0F, Local0)
                        }
                        Else
                        {
                            Store (0x0D, Local0)
                            _DIS ()
                        }

                        If (LEqual (CIRI, Zero))
                        {
                            Store (Zero, Local0)
                            _DIS ()
                        }

                        If (LLess (OSYS, 0x07D6))
                        {
                            ENFG (0x03)
                            Store (Zero, IOAH)
                            Store (Zero, IOAL)
                            EXFG ()
                        }

                        Return (Local0)
                    }

                    Method (_DIS, 0, NotSerialized)  // _DIS: Disable Device
                    {
                        ENFG (0x03)
                        Store (Zero, ACTR)
                        Store (Zero, IOAH)
                        Store (Zero, IOAL)
                        Store (Zero, INTR)
                        EXFG ()
                        ENFG (0x04)
                        Store (Zero, ACTR)
                        Store (Zero, IOAH)
                        Store (Zero, IOAL)
                        EXFG ()
                        Store (Zero, Z00Z)
                    }

                    Method (_PRS, 0, Serialized)  // _PRS: Possible Resource Settings
                    {
                        Name (PRS1, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0600,             // Range Minimum
                                    0x0600,             // Range Maximum
                                    0x01,               // Alignment
                                    0x08,               // Length
                                    )
                                IO (Decode16,
                                    0x0620,             // Range Minimum
                                    0x0620,             // Range Maximum
                                    0x01,               // Alignment
                                    0x20,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            EndDependentFn ()
                        })
                        Name (PRS2, ResourceTemplate ()
                        {
                            StartDependentFnNoPri ()
                            {
                                IO (Decode16,
                                    0x0620,             // Range Minimum
                                    0x0620,             // Range Maximum
                                    0x01,               // Alignment
                                    0x20,               // Length
                                    )
                                IRQNoFlags ()
                                    {4}
                            }
                            EndDependentFn ()
                        })
                        If (LLess (OSYS, 0x07D6))
                        {
                            Return (PRS2)
                        }
                        Else
                        {
                            Return (PRS1)
                        }
                    }

                    Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
                    {
                        Name (DCRS, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0000,             // Range Minimum
                                0x0000,             // Range Maximum
                                0x01,               // Alignment
                                0x20,               // Length
                                )
                            IRQNoFlags ()
                                {7}
                        })
                        Name (CRS1, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0600,             // Range Minimum
                                0x0600,             // Range Maximum
                                0x01,               // Alignment
                                0x08,               // Length
                                )
                            IO (Decode16,
                                0x0620,             // Range Minimum
                                0x0620,             // Range Maximum
                                0x01,               // Alignment
                                0x20,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        })
                        Name (CRS2, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0620,             // Range Minimum
                                0x0620,             // Range Maximum
                                0x01,               // Alignment
                                0x20,               // Length
                                )
                            IRQNoFlags ()
                                {4}
                        })
                        ENFG (0x03)
                        Store (ACTR, Local0)
                        EXFG ()
                        If (Local0)
                        {
                            If (LLess (OSYS, 0x07D6))
                            {
                                Return (CRS2)
                            }
                            Else
                            {
                                Return (CRS1)
                            }
                        }
                        Else
                        {
                            Return (DCRS)
                        }
                    }

                    Method (_SRS, 1, NotSerialized)  // _SRS: Set Resource Settings
                    {
                        If (LLess (OSYS, 0x07D6))
                        {
                            CreateByteField (Arg0, 0x02, IO1L)
                            CreateByteField (Arg0, 0x03, IO1H)
                            CreateWordField (Arg0, 0x09, IRQX)
                            FindSetRightBit (IRQX, Local0)
                            Decrement (Local0)
                            ENFG (0x03)
                            Store (Zero, INTR)
                            Store (Zero, IOAH)
                            Store (Zero, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                            ENFG (0x04)
                            Store (Local0, INTR)
                            Store (IO1H, IOAH)
                            Store (IO1L, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                        }
                        Else
                        {
                            CreateByteField (Arg0, 0x02, AD1L)
                            CreateByteField (Arg0, 0x03, AD1H)
                            CreateByteField (Arg0, 0x0A, AD2L)
                            CreateByteField (Arg0, 0x0B, AD2H)
                            CreateWordField (Arg0, 0x11, IRQM)
                            FindSetRightBit (IRQM, Local0)
                            Decrement (Local0)
                            ENFG (0x03)
                            Store (Local0, INTR)
                            Store (AD1H, IOAH)
                            Store (AD1L, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                            ENFG (0x04)
                            Store (Zero, INTR)
                            Store (AD2H, IOAH)
                            Store (AD2L, IOAL)
                            Store (One, ACTR)
                            EXFG ()
                        }

                        Store (One, Z00Z)
                    }
                }

If you need more informations I can post you the informations from Windows with installed driver.

Do so please...

I'll decompile the driver (find me a pdb if you can too)...

Thx

Brilliant work as always! Any more of this R-E work of yours and you'd end up trolling both MS and Apple big time. :D

Look under my Github repo.

The kext tools project.

Look at the stars.

You'll find mspublic (Microsoft Public) ;)

Do so please...

I'll decompile the driver (find me a pdb if you can too)...

Thx

This are the drivers for 64bit system extracted from Windows directory.  http://www.mediafire.com/download/0a05limtlhdd913/nuvotoncir_x86_64.zip

 

And this are the installable driver from the vendor. http://www.mediafire.com/download/7ckjxd0b4qinm81/CIR_WinBond_8.60.1000_W7x64W7x86_A.zip

 

I can't find any "pdb" file associated to the driver. 

  • 1 month later...

I managed to fully decompile Microsoft's SMBIOS driver.

Attached below...

Enjoy ;)

mssmbios.zip

For a what? Did you make useful conclusions from it?

Just for the fun.

To get some info on how MS it's SMBIOS driver worked.

Can be recompiled if needed... Also stuff can be ported...

EDIT: May aso be useful for Wine...

I have on my Packard Bell laptop an extension for the HAL.

This plugin I have succesfully decompiled fully.

Enjoy... :D

 

Full driver is also included.

halextintclpiodma.zip

I decided to update my AnyAppleUSBMouse.

This version matches interfaces to class, not device id.

It will still need an edit for the IOUSBDevice but it should work without modifications too (for use on install media).

Enjoy :D

I have a backup of your driver.

Attached below ;)

AnyAppleUSBMouse.kext.zip

This are the drivers for 64bit system extracted from Windows directory.  http://www.mediafire.com/download/0a05limtlhdd913/nuvotoncir_x86_64.zip

 

And this are the installable driver from the vendor. http://www.mediafire.com/download/7ckjxd0b4qinm81/CIR_WinBond_8.60.1000_W7x64W7x86_A.zip

 

I can't find any "pdb" file associated to the driver. 

Without any .pdb file I can give you this:

Decompiled driver without any names matched (other than those done with FLIRT).

Names you'll have to do for yourself but it is the driver you supplied...

Enjoy ;)

EDIT: Take my driver as example and rename... :D If you had an official MS driver I could decompile that (with full .pdb info)

nuvotoncir.zip

  • Like 1

I succesfully decompiled Microsoft's Inter IC Bus (I2C) HID driver.

This could be used for future trackpad support on some laptops on OS X.

Enjoy ;):D

hidi2c.zip

  • Like 2

I managed to succesfully retrieve the source code of the Windows Loader (winload.efi, all decompiled but one function) and Windows Resumer (winresume.efi, fully decompiled).

Sources are attached below.

They are retrieved from Windows 8.1 (x64).

Enjoy ;):D

 

EDIT: I managed to fully decompile the Windows boot manager (bootmgfw.efi and bootmgr.efi) and I manually adjusted the decompile of the last function of the Windows loader (winload.efi). I also extracted the resources and pulled them into source.

All is now inside this one zip containing all.

Have fun ... :D

 

Download (because of uploads failing, damn you Telenet for your hotspots from hell...):

https://www.dropbox.com/s/hu40lj1ra874ytf/MSEFIBoot.zip?dl=0

  • Like 2
  • 2 weeks later...

I succesfully decompiled Microsoft's Inter IC Bus (I2C) HID driver.

This could be used for future trackpad support on some laptops on OS X.

Enjoy ;):D

Hi Andy, please see here: http://www.insanelymac.com/forum/topic/304487-i2c-hid-touchscreens-trackpads-and-more/

 

I have been developing an hid-i2c kext for a while now. Communication with the Haswell Lynxpoint I2C busses is done. I am working on sorting out communication with the hid devices now. My code is very messy but will be refactored later on when I have something working.

  • Like 1
  • 1 month later...

Hey Andy and thanks for your (h)andy tool (ba dumm tsss).

 

Anyway, I just used it to decompress the prelinkedkernel (which is equal to kernelcache) on El Capitan Public Beta 1 (= Developer Beta 3) and at first sight it works great. Though I did a comparison between the original uncompressed kernel and the kernel decompressed by your tool and I noticed 21 changes varying between changing single and inserting/deleting multiple bytes. The kernel have exactly the same length and all strings are intact. I rebuild the cache twice to make sure it's not an older kernel version cached.

 

Two options: Either the decompression code needs an update to El Cap, or Apple manipulates the kernel before caching... Any ideas?

  • Like 1
×
×
  • Create New...