Urbz Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
bofors Posted July 30, 2006 Author Share Posted July 30, 2006 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 More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 We actually need none of that. Ladies and Gents, I give you HFSPlus.efi. Fully loadable, complete and working. HFSPlus.efi.zip Link to comment Share on other sites More sharing options...
bofors Posted July 30, 2006 Author Share Posted July 30, 2006 That's great. How much work is it going to be to get the complete .efi set? Link to comment Share on other sites More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
mifki Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
bofors Posted July 30, 2006 Author Share Posted July 30, 2006 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 More sharing options...
bofors Posted July 30, 2006 Author Share Posted July 30, 2006 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 More sharing options...
sbeehre Posted July 30, 2006 Share Posted July 30, 2006 Awesome stuff Urby! now only 106 more EFI modules to go btw how do i add this to the MacEFIx86 Sample implementation? Link to comment Share on other sites More sharing options...
mifki Posted July 30, 2006 Share Posted July 30, 2006 hahha lol, "only" 106 to go, yeah same question as sbheere i've been trying of weeks to mount the disk.img file but i just couldnt Link to comment Share on other sites More sharing options...
sbeehre Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
mifki Posted July 30, 2006 Share Posted July 30, 2006 Yeha i think rogabena said sumthing about that b4, the intel implementation is full yet, so id try compile the tianocore edk and work from there. Link to comment Share on other sites More sharing options...
Superhai Posted July 30, 2006 Share Posted July 30, 2006 Because it is not an application it is a driver, and must be loaded as such. Type help in the sample implementation and you find a command which loads drivers. Link to comment Share on other sites More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 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 ParameterAny 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 More sharing options...
Neonkoala Posted July 30, 2006 Share Posted July 30, 2006 Apparently theres a bug in notepad that causes incorrect handling of certain unicode combinations of letters - so stick with wordpad. Link to comment Share on other sites More sharing options...
~Neo Posted July 30, 2006 Share Posted July 30, 2006 Great work man! But how can I mount my OS X install dvd? The driver is successfully loaded (see screen) Link to comment Share on other sites More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
sbeehre Posted July 30, 2006 Share Posted July 30, 2006 i know when omni ripped the efi modules the first time there were 107 but since the firmware has been updated since then i guess there are more now. Link to comment Share on other sites More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 do you happen to know if they were all using the image protocol? Link to comment Share on other sites More sharing options...
sbeehre Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
bofors Posted July 30, 2006 Author Share Posted July 30, 2006 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 More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
bofors Posted July 30, 2006 Author Share Posted July 30, 2006 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 More sharing options...
Urbz Posted July 30, 2006 Share Posted July 30, 2006 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 More sharing options...
Recommended Posts