Jump to content

-Archive- Macefix86 2006 -Archive-


bofors
 Share

443 posts in this topic

Recommended Posts

yes, i looked at that.

However, it can only be used in the memory itself.

it doesn't allow you to save the internal data, nor print the command to a text file. It would, however, let you change the contents of the memory.

 

So, using the edit command, you could copy all the hex from the file i posted above and paste it into the memory and i am assuming it should be the same as loading the efi module.

 

I will try this soon, at the moment i'm just trying to create the efi file.

Link to comment
Share on other sites

Well then we need someone that is capable of that...

 

If you have the ability to load and execute custom EFI programs in the EFI Shell, this should be no big deal. It will be even easier if the source code is availble for the "dmem", "hexedit" or "dblk" EFI commands is availble in some "sample" EFI implementation.

Link to comment
Share on other sites

not much.

a few hours in all.

Do you happen to know how many there are?

 

BTW i'm out for tonight, and i won't be home most of tomorow.

Would all the drivers in the drivers.txt that i posted above be everything we need?

If so, this will happen very quickly indeed!

 

Finally, the forum wouldn't let me post the actual .efi file. Is this illegal?

Link to comment
Share on other sites

OMG, i've been away for what? Like 2 days and look how much stuff has already been done; WHOA.

 

Damn this is great thanks heaps to Urby, Bofors, Superhai, sbheeree and everyone whop has helped damn, im gonna havea a bit of a play around with hfsplus.efi now :)

 

EDIT: I think that there are 100+ efi modules

Link to comment
Share on other sites

not much.

a few hours in all.

Do you happen to know how many there are?

 

It may be depend on exactly which version of the firmware you are working with, but I think the pervious number was 170.

 

Can you state exactly which Mac you are working with and which version of firmware is installed (perhaps the lastest)?

 

Would all the drivers in the drivers.txt that i posted above be everything we need?

 

Those are just the drivers, we need everthing.

 

Is this illegal?

 

Perhaps, but we are only talking about a potential basic copyright violation not a DMCA violation. Anyways, the complete set of .efi files should probably be discreetly distributed on something like RapidShare, not posted here.

Link to comment
Share on other sites

What is most important is that you write up a detailed list of instructions on how to extract the .efi files and also include any scripts that you wrote to seperate the actual hex code from the additional dmem junk.

Link to comment
Share on other sites

just mount the efi floppy and dump the hfsplus.efi file in there kiko, and you are good to go. The you just navigate to fs1:

 

** UPDATE **

 

I tried to run the HFSPlus.efi just from the command line typing hfsplus but i get an error saying Image is not an Application exit status code: Invalid Parameter

 

 

Any ideas?

Link to comment
Share on other sites

I tried to run the HFSPlus.efi just from the command line typing hfsplus but i get an error saying Image is not an Application exit status code: Invalid Parameter

Any ideas?

 

That's because it isn't an application. Try "load hfsplus.efi" and see what happens.

 

Ok, lemme ramble for a bit.

 

With 100+ modules, it'll take more than a few hours. I am still confident i can do it rather quickly, though. It is still too early to say how quickly, but a month would be the maximum if i were super busy in real life.

 

bofors, i wish i could let you all do it with a script, but i can't. Once i had the dmem file of the hex i needed, i turned to mac os x. Opened the file and printed it to pdf. Then I cropped it to just the area i needed: the beginning of each hex string to the end with one extra space. I cropped all pages (at once) and saved. Then i printed again but as postscript and finally i had a selection of only the hex i had cropped! For this one, pages 5, 6, 14 had extra spaces on the left for some odd reason, so i recropped those pages individually. Finally, i just selected it all and brought it to textedit. I replaced the - with a space, and that was the file hex code.txt. Finally, in windows, opened in wordpad (notepad scrwed it up for me..)i downloaded 010 Editor, created a new file, copied the contents of hex code.txt, did "paste from > paste from hex text (shift+ctrl + V) and saved as an efi file. No scripts or c programs, just my experience as a graphic artist (sorta...!)!

 

As you can see, it really isn't that complicated. I'm going to get the whole firmware in stages: first all the dmem outputs, then all pdf files, etc.

 

I am working on a 17" Intel iMac with the stock 512MB of ram.

It is fully updated and has an EFI Specification Revision of 1.10, EFI Vedor: Apple, and EFI revision: 8192.1.

For the record, i think i should get the exact same number as previously recorded.

Currently, I am in the efi shell, testing with the number of modules.

Some handles give me only one memory address,

which is simply no good. Others cannot be identified, but can be successfully turned into efi modules.

 

What is the exact number of efi modules i should get: 170 or 107?

Link to comment
Share on other sites

just type "map" and you'll see a list of all the drives in the virtual environment. The drives themselves are known as blk0, 1, 2, 3, etc. The filesystems mounted from the drives are fs0, 1, 2, etc.

To mount a blk as an fs, just type "mount *blk of cd drive* *unused fs # of your choice*.

It should tell you it forced the mount ok, and then just type the fs with the new number, followed by a colon, and you should be able to browse the dvd with the dir and cd commands.

 

hey bofors, i'm not home right now, but i printes out some handles. I am assuming that the only useful handles are the "image" ones: the ones that use the image protocol. The others are either blank and do nothing, or point to devices, and are not drivers or programs themselves.

 

I jst need a number. I think i went over the images and it cam out to like 112 handles...or 113. Is that pretty much correct?

Link to comment
Share on other sites

So the right format for the hex code would be

 

4D5A0000000000000000000000000000

 

instead of

 

4D 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

if that is the case im going to try and write a c application to do the work

 

do you happen to know if they were all using the image protocol?

 

no i dont sorry

Link to comment
Share on other sites

So the right format for the hex code would be

 

4D5A0000000000000000000000000000

 

instead of

 

4D 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00

 

if that is the case im going to try and write a c application to do the work

 

Thanks!

 

But actually, it would be 4D 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00. The reason for this is that there needs to be exactly one space between every 2 character. This would also imply there would be one space at the end of every line, and none at the beginning of the next.

 

Reason for this is i switched hex editor! So yeah, this new way is the right one.

 

But really, if you can't do it, don't break your head. I'm really gonna begin the work tomorow, and i should be done by the end of the week. It's a lot easier than i thought.

 

-Urby

Link to comment
Share on other sites

hey bofors, i'm not home right now, but i printes out some handles. I am assuming that the only useful handles are the "image" ones: the ones that use the image protocol. The others are either blank and do nothing, or point to devices, and are not drivers or programs themselves.

 

Ok.

 

I jst need a number. I think i went over the images and it cam out to like 112 handles...or 113. Is that pretty much correct?

 

Sounds about right to me.

Link to comment
Share on other sites

I have begun the process of extraction of Apple's EFI Firmware.

The process will see a total of 114 EFI modules be converted from memory to modular form.

I will be posting progress report to this very thread as I go along.

 

sbeehre, if you write the script, I unfortunately won't be using it because I am too far along to go back and start over, but it will probably be useful for future extractions.

 

So basically there are 3 steps for every module:

1- Dump dmem output to text file.

2- Strip text file of everything but essential hex.

3- Copy the hex strings as real hex and save efi file.

 

I will begin by getting all 114 modules through the first step.

 

I started maybe 15 minutes ago.

 

_____________________________

 

Current Status: 22 Modules dumped to text files.

Link to comment
Share on other sites

im going to try and write a c application to do the work

 

To really develop EFI for OSx86 we need to be striving for an advanced technical understanding and ability. This means being able to write, compile, load and execute simple EFI programs to do things like extract all the .efi modules in a few seconds (or at least dumping them in a hex-only format). Again, the actually writing of such programs should be very easy. The major issue is setting up the development environment in Windows to compile EFI programs.

Link to comment
Share on other sites

I'm taking a break...going for some fresh air, stretching my legs. My eyes hurt!

 

I figured i'll first post my plan:

 

Goal: Have all 114 modules by Sunday.

-Complete Step 1 Tuesday, step 2 friday, and step 3 sunday.

 

I will not have time during the day for the simple reason that it's back to work tomorrow.

 

_____________________________

 

Status Update: 45 text files dumped.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...