Moin Moin,
Es gibt interessante Neuigkeiten!
Momentan entwickele ich ein Programm, welches die Bearbeitung von AMI BIOSes ermöglicht. Unter diesem Umstand habe ich auch mit einem Entwickler gesprochen, der sehr tief in der Materie drin ist - der hat mich auf etwas interessantes hingewiesen.
Wenn man sich mal den Weg anschaut, wie *wir* zur Zeit Kexts in FFS umwandeln, könnte da ein Problem bestehen - welches zu einem instabilen BIOS führt:
Aktueller Weg
- dd if=/dev/zero of=NullTerminator bs=1 count=1 1>/dev/null 2>&1
- # Hier wird zuerst die Info.plist, dann 1x NULLbyte und dann der eigentliche Treiber zu einer Datei zusammengefügt
- cat /Sample.kext/Contents/Info.plist NullTerminator /Sample.kext/Contents/MacOS/Sample > binary.bin 2>/dev/null
- GenSec -s EFI_SECTION_PE32 -o pe32 binary.bin
- GenSec -s EFI_SECTION_USER_INTERFACE -n versionstring -o userinterface
- # Hier wird das entstandene Konstrukt als EFI_FV_FILETYPE_DRIVER deklariert !!!
- GenFfs -t EFI_FV_FILETYPE_DRIVER -g 99F2839C-57C3-411E-ABC3-ADE5267D960D -o output.ffs -i pe32 -i userinterface
Problem: Der Typ EFI_FV_FILETYPE_DRIVER steht für einen EFI-Treiber, d.h. das BIOS selbst lädt diesen automatisch.
ABER: Das BIOS kann mit einer Kext-Binary nichts anfangen. Die Kexts können erst vom mach_kernel (OS X Kernel) verarbeitet werden
=> Es bringt nichts, das BIOS zu veranlassen eine Kext zu laden (versuchen).
Ergebnis: Das BIOS scheitert am Laden der Datei und wirft einen ERROR - das kann bei mehreren solcher FFS zur Verlangsamung oder Instabilität des Systems führen.
Was soll man also nun machen?
Einfach!
in
umändern.
Das Layout der Datei bleibt das gleiche, das BIOS selbst ignoriert jedoch diese Datei und sie wird erst von OSX geladen
Vielleicht ist es hilfreich für den ein oder anderen.