Jump to content











Photo
* * * * * 1 votes

Boot into 3rd-party EFI application via BCD?

efi uefi chainloader grub2 bcd bcdedit

  • Please log in to reply
53 replies to this topic

#26 corney

corney
  • Members
  • 1 posts
  •  
    Canada

Posted 22 January 2013 - 05:03 PM

Was this issue ever advanced?

 

Is there a way to add a signed efi application to BCD to launch. Ubuntu 12.10 64 bit comes with a signed (by MS) efi application, but when I add it as an OSLOADER app or BOOTSECTOR app, it doesn't work. Is this possible on Win8/UEFI or not?

 

Thanks



#27 boyans

boyans

    Newbie

  • Members
  • 13 posts
  • Interests:Music
  •  
    Bulgaria

Posted 08 March 2013 - 02:33 AM

Interesting thread.

 

At the end it is not clear what neogrub is:

1) is it 100% grub4dos ? (It is not.)

2) is it some extension ?

What about GPL ???

 

So I have a couple questions for the gurus:

 

How is it possible that EasyBCD / Neosmart installs a version of ntldr as easyldr and pretends that it is a

Neosmart developed product. No copyright notice or whatever !

 

In easyldr there is a Microsoft Copyright string, easy to check with Notepad for example.

And as I am also a programmer I can state that Neosmart can never develop something like ntldr.

Not in a lifetime.

 

What about Copyright Law ?

 

ComputerGuru / Neosmart is really not respecting copyright law.

 

And EasyBCD is also a commercial product so this is stealing the work of other people for own benefit.

 

Not respecting copyright law can be regarded as a criminal act as stated in the law itself.

 

Either full compliance or I am willing to report to Microsoft for copyright violation in the next few weeks - enough time for making corrections as needed.

 

One more - there seems some kind of omerta rules on some forums (big Windows forums) about EasyBCD breaking copyright law. Understandable as many people (forum moderators and admins) have made a lot of "progress" with nice EasyBCD pictured guides and uncountable EasyBCD threads. :yawn:

 

Coming back to real problem - there should be a way of booting foreign UEFI based OSs after disabling secure boot. I just recently got an UEFI based computer and hope Microsoft has not closed the door completely for chain loading foreign UEFI based systems.

 



#28 Computer Guru

Computer Guru

    Newbie

  • Members
  • 17 posts
  •  
    United States

Posted 08 March 2013 - 03:25 AM

Boyans, don't you get tired of going from site to site complaining about EasyBCD (all the while not mentioning your late horse in the race, Visual BCD Editor)? Your post contains many factual inaccuracies, and you have already repeatedly tried to complain to Microsoft about our software. BTW, just because you're a "programmer" doesn't mean you know what kind of code others can write.



#29 boyans

boyans

    Newbie

  • Members
  • 13 posts
  • Interests:Music
  •  
    Bulgaria

Posted 08 March 2013 - 09:33 AM

Your post contains many factual inaccuracies, and you have already repeatedly tried to complain to Microsoft about our software

 

1. The copyright string in easyldr is:

 

 

S t r i n g F i l e I n f o   Д  0 4 0 9 0 4 B 0   L C o m p a n y N a m e     M i c r o s o f t   C o r p o r a t i o n   @ F i l e D e s c r i p t i o n     B o o t   L o a d e r   r ) F i l e V e r s i o n     5 . 2 . 3 7 9 0 . 2 8 2 5   ( s r v 0 3 _ s p 2 _ r c . 0 6 1 1 0 3 - 1 3 0 3 )     :
  I n t e r n a l N a m e   o s l o a d e r . e x e     Ђ . L e g a l C o p y r i g h t   ©   M i c r o s o f t   C o r p o r a t i o n .   A l l   r i g h t s   r e s e r v e d .   B
  O r i g i n a l F i l e n a m e   o s l o a d e r . e x e     j % P r o d u c t N a m e     M i c r o s o f t ®   W i n d o w s ®   O p e r a t i n g   S y s t e m     @ P r o d u c t V e r s i o n   5 . 2 . 3 7 9 0 . 2 8 2 5

 

It is clearly ntldr  V e r s i o n  5 . 2 . 3 7 9 0 . 2 8 2 5

Has nothing to do with easy"whatever".

 

I have posted on Microsoft social forums [ normal users + moderators ( usually Microsoft MVPs, no employees, no lawyers ) ]

about Neosmart / EasyBCD / easyldr copyright violation but not to Microsoft legal department -

a small but important difference.

 

2. Neogrub/ AutoNeoGrub (ANG) is not exactly grub4dos.

 

As I have developed "Visual BCD" so it is not so difficult to guess EasyBCD's own functionality and modules as well as foreign ones.

Nothing against EasyBCD, just license must comply to copyright.

 

3. I have worked with many "programmers" during many years so I have some experience about who can do what seeing the result.

It is relatively easy to extrapolate. ntldr is a professional product.

 

 

-------------------------

If ComputerGuru can show a license that Microsoft has given Neosmart the right to publish and sell "ntldr" as "easyldr" I would be very quiet after many, many, many apologies from my part.



#30 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 08 March 2013 - 04:41 PM

Anyway, by hacking the GRUB2.EFI from IMAGE_SUBSYSTEM_EFI_APPLICATION to IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION, updating the rest of the PE header fields as needed, recalculating the checksum, and tacking on a driver signature pointer, I got the BCD to load the file, though now it is complaining about the signature so I'll try to take care of that.
Thanks, that's good news. How do you do this?
Can you provide the changed GRUB2.EFI source code?


@boyans and Computer Guru

What about redistributing bcdboot.exe, bootsect.exe, bcdedit.exe ?
Does manufacturer allows redistributing?

Windows 7 WAIK: WAIK_License.rtf
You may not ...
* publish the software for others to copy;
* rent, lease or lend the software;
* transfer the software or this agreement to any third party; or
* use the software for commercial software hosting services.

Example: there are Visual C++ redistributable files
http://go.microsoft..../?LinkId=120133

#31 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 March 2013 - 05:04 PM

Does manufacturer allows redistributing?

I love rhetorical questions. :wub:

My crystal ball tells me that soon a comment will be made along the usual "but, but, site XY does have a downloadable copy, if they distribute it WHY I cannot?".

 

Specifically our friend Computer Guru (or at least "his" website) was already "hit" by the effect of crystal ball forecasting:

http://reboot.pro/to...very-discsisos/

and should know (from experience) what is allowed and what it is not (unless you pay a fee to the good MS guys).

While before there were good chances of perfect good faith:

http://www.911cd.net...showtopic=20993

 

Nowadays they should be aware of the possible issues to the point that currently they are selling the Vista/7 Recovery DVD:

http://neosmart.net/...ted-reinstated/

 

But of course for all we know there could be an agreement with MS also for the free redistribution of other files (though I personally doubt that :dubbio:, particularly for a file that is renamed without giving explicit credits). 

 

Personally I also greatly doubt about a number of other things connected to:

http://systemdiscs.com/

let's say that the reference here:

http://neosmart.net/...er from the DVD

 

 

As a service to our users, we provide a repair CD that provides access to the functionality discussed below, which you can download from our site. There is however a handling and processing fee for the download.

to handling and processing fees has not been written very accurately (IF they comprise also redistribution license fees).

 

Having being licensed to redistribute a Windows 8 recovery disk BEFORE official release of the OS seems to me a great achievement, however:

http://neosmart.net/...ir-cd-download/

 

:cheers:

Wonko



#32 Computer Guru

Computer Guru

    Newbie

  • Members
  • 17 posts
  •  
    United States

Posted 08 March 2013 - 05:40 PM

We have a complicated licensing agreement with Microsoft. In particular, anything from SystemDiscs.com has been on the up-and-up for the past few years.

 

Wonko, thanks for that wiki link. As in other links discovered in earlier posts in this thread, it was written a long time ago and is no longer correct; I have updated it accordingly.

 

As for why EasyLDR is named the way it is.. it's fairly simple. Despite boyans' claims, it is not a copy of NTLDR, though it is based off of it.

 

And of course boyans is completely wrong about NeoGrub/ANG.

 

Boyans, if you're frustrated at how unpopular your EasyBCD knockoff is compared to our products, work on improving your code instead of launching a vendetta against the developers. In particular, your software has always taken forever to turn on, but the last time I tried it on one of my machines, it took several minutes to even load up. The user interface is indecipherable, and the app coughed up and crashed several times when loading certain Windows 8 BCD configurations.


Edited by Computer Guru, 08 March 2013 - 05:43 PM.


#33 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 March 2013 - 06:26 PM

We have a complicated licensing agreement with Microsoft.
 

I think you have also a lot of more complicated things, IMNSHO, but that's mainly your own business.

 
 

In particular, anything from SystemDiscs.com has been on the up-and-up for the past few years.


Care to explain in an English for non-native English speakers? :unsure:

You seemingly released a Windows 8 Recovery disc on 16 October 2012, exactly ten days before official launch of Windows 8, according to your own site:
http://neosmart.net/...ir-cd-download/
this doesn't count for "the past few years", whatever "up-and-up" means.

The reference to EASYLDR as being something "based on" NTLDR is however "pure bullsh*t", a quick hex compare with the Server 2003 SP2 NTLDR clearly shows how EASYLDR is a verbatim copy of it with a bunch of bytes patched.

 

 

Whether you are licensed by MS to distribute it, and to do so under a new name and without credits, it's your issue/business, but mis-representing facts is "everyone's issue".



:cheers:
Wonko



#34 Computer Guru

Computer Guru

    Newbie

  • Members
  • 17 posts
  •  
    United States

Posted 08 March 2013 - 07:00 PM

I'm getting tired of all this crap. If you guys wanna use it, use it. If you don't, don't. This is probably my last reply here.

 

I don't see the big mystery in how repair software can be legally released for an OS before that OS is final. It was coded to repair Windows 8 without being derived from Windows 8, ergo, it is a Windows 8 repair CD that can be legally released before Windows 8 itself was. The same way any other product out there that is not a system recovery CD can be compatible with Windows 8 before Windows 8 RTM was publicly available. Microsoft knows all about this and if they don't have a problem, you shouldn't either.


Edited by Computer Guru, 08 March 2013 - 07:02 PM.


#35 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 08 March 2013 - 07:38 PM

I'm getting tired of all this crap. If you guys wanna use it, use it. If you don't, don't. This is probably my last reply here.
 
I don't see the big mystery in how repair software can be legally released for an OS before that OS is final. It was coded to repair Windows 8 without being derived from Windows 8, ergo, it is a Windows 8 repair CD that can be legally released before Windows 8 itself was. The same way any other product out there that is not a system recovery CD can be compatible with Windows 8 before Windows 8 RTM was publicly available. Microsoft knows all about this and if they don't have a problem, you shouldn't either.


Look, again, the nature and extension of your agreements with MS are - as said - mainly your business, when you state that EASYLDR is something that it is not, you are mis-representing something.
 
This can be easily found out.
 
It is only obvious that if you mis-represent the source and nature of *something* your other statements about the source and nature of *something else* loose much of the credibility you might have had otherwise. 
 
:cheers:
Wonko

#36 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 09 March 2013 - 12:21 AM

We have a complicated licensing agreement with Microsoft. In particular, anything from SystemDiscs.com has been on the up-and-up for the past few years.
Can you clarify this?
What about resitributing bcdedit.exe?
Did the copyrigth holder allowed you to distribute this file?

http://neosmart.net/opensource/ seems not to refers source code to Grub4Dos and UltraDefrag.
Can you add a link to used source files?


I've the impression so far: both EasyBCD and VisualBCD are illegal commercial packages.
Any clearance is highly welcome.

#37 boyans

boyans

    Newbie

  • Members
  • 13 posts
  • Interests:Music
  •  
    Bulgaria

Posted 09 March 2013 - 02:11 PM

I've the impression so far: both EasyBCD and VisualBCD are illegal commercial packages.
Any clearance is highly welcome.    

 

1. VisualBCD is not a commercial package till now.

 

Please give link where the product is sold.

 

2. I have never claimed that bcdedit.exe, bcdboot.exe, bootsect.exe are my own development, please read VBCD license.

 

Redistribution of the utilities mentioned above could be avoided by simple scan of installed Windows versions.

This was my lazy part.

 

3. Never claimed to have developed easy*neo*something that is a copy of copyrighted software.

 

Let's be clear.



#38 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 09 March 2013 - 03:08 PM

1. VisualBCD is not a commercial package till now.

 

Please give link where the product is sold.

 

2. I have never claimed that bcdedit.exe, bcdboot.exe, bootsect.exe are my own development, please read VBCD license.

 

Redistribution of the utilities mentioned above could be avoided by simple scan of installed Windows versions.

This was my lazy part.

 

3. Never claimed to have developed easy*neo*something that is a copy of copyrighted software.

 

Let's be clear.

 

 

Good. :)

 

Now, to be clear, you are re-distributing non redistributable files as well.

 

The fact that you don't *want* money for them (UNlike Computer Guru) does not change the nature of the infringement of the EULA, and BTW this:

 

http://www.boyans.ne...dVisualBCD.html

PLEASE NOTE - THIS SOFTWARE IS FREE ONLY FOR HOME, NON PROFIT USE !:

seems to me A LOT like Commercial Software, you are anyway asking to Donate.

 

You are ADDITIONALLY mis-representing your tool as well:

 

http://www.boyans.net/

Visual BCD Editor is an advanced GUI version of Windows bcdedit utility.

 

You can call it "advanced" as much as you like but it is NOT a "GUI version of Windows bcdedit utility", it is "a GUI program using the original MS Windows bcdedit utility" or a Graphical User Interface for the original MS Windows bcdedit utility".

 

It' s not the same thing. :frusty:

 

"GUI versions of" the bcdedit utility are (examples) these:

http://reboot.pro/in...showtopic=10003

http://www.zezula.ne...bellavista.html

which NEED NOT bcdedit.exe (and BTW need not .Net either)

 

:cheers:

Wonko



#39 boyans

boyans

    Newbie

  • Members
  • 13 posts
  • Interests:Music
  •  
    Bulgaria

Posted 09 March 2013 - 09:24 PM

You are ADDITIONALLY mis-representing your tool as well:   http://www.boyans.net/ Quote Visual BCD Editor is an advanced GUI version of Windows bcdedit utility.   You can call it "advanced" as much as you like but it is NOT a "GUI version of Windows bcdedit utility", it is "a GUI program using the original MS Windows bcdedit utility" or a Graphical User Interface for the original MS Windows bcdedit utility".   It' s not the same thing.   "GUI versions of" the bcdedit utility are (examples) these: http://reboot.pro/in...showtopic=10003 http://www.zezula.ne...bellavista.html which NEED NOT bcdedit.exe (and BTW need not .Net either)   Wonko

 

Sorry,

Visual BCD Editor is based on WMI BCD Provider interface (NO BCDEDIT.EXE SCRIPTING)

and is advanced in the sense that it can create loaders for

XP, Vista and later, VHD AUTOMATICALLY on click - nothing to specify - no other BCD tool offers this functionality.

 

Using WMI BCD interface more powerful tools than bcdedit.exe can be created as stated by Microsoft.

 

Other BCD tools can edit less than 20 elements, VBCD can edit ALL (about 140 in Windows 7, about 200 in Windows 8).

So what would you say about a tool written in 2010 which can edit elements which came to BCD in 2012 - is it advanced ? 

 

Much finding Wonko this time is not correct I think. :cheers: 

 

About redestribution of Microsoft files - mentioned in license who is the copyright holder explicitly, if necessary a scan and extract could deliver files from installed Windows OS, not straightforward but doable.

Windows 8 has the mentioned files in \windows\system32 - what a progress !

 

MAIN THING IS - THERE IS NO CLAIM FROM MY SITE THAT I HAVE DEVELOPPED / ENHANCED NTLDR OR GRUB4DOS  :eek: 

DISGUISING THEM AS EASY*NEO*WHATEVER.

 

About commercial product or not - do you have to donate to download product ?

If you use a product commercially to make profit it is natural to share some part with developer on donation basis, what do you think ?

Nobody is forced.

As there is no backlink to my site in software there is no way I could even check who is using the software.

At the end the software is free.

I doubt it will be free forever - making profit from own work is not a crime till laws are changed.

Tomorrow maybe developers have to pay users - who knows ?

 

About .NET - present already in PE as module, part of Windows by default.

I would not go to C++ / native calls these days if not 100% necessary.

 

:cheers:

Bo



#40 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 10 March 2013 - 11:16 AM

Look, you can stamp your feet all the time you want, if your tool *somehow* *needs* BCDEDIT.EXE, it is using it's functionalities (otherwise you could remove the file from the archive instantly and your tool would keep working as well).

As said there is NO issues whatsoever to call it "advanced" :).

Redistributing non-redistributable files is either allowed or it is not (it is not).

You were/are redistributing non-redistributable files, the fact that you may have avoided that and that maybe you will avoid doing that in the future does not change the past or the present, facts remain facts.

I see NO difference whatsoever (being myself a person that does respect intellectual property) between asking for a definite amount of money to use the tool (in a Commercial environment) as EasyBCD does (US$ 24.95) or ask vaguely for a donation of money to use the tool (in a Commercial environment) as Visual BCD does.
 
Visual BCD might result being cheaper (if any of your Commercial customers will donate less that US$ 24.95 for your tool), but still BOTH tools are perfectly equivalent in being "freeware for non Commercial use/payware for Commercial use".
 
The fact that the large majority of the Commercial users of Visual BCD very likely ignore the request for donation (BTW this is my guess, based on experience about n similarly licensed projects) because they FAIL to recognize the moral binding to give you some money is essentially your problem (with your wallet) and their problem (with their conscience).
 
There is nothing "bad" in this licensing formula, it is a very common one, personally I find it a very good one :thumbup:, and of course there is nothing against people making profit from their intellectual work.
 
What further violations of Laws, netiquette, EULA and *what not* Computer Guru may be committing doesn't make him in any way "worse" than you when it comes to the unauthorized redistribution of non-redistributable files, on this specific issue, surely he distributes one more MS file, renaming it, but the essence remains the same, as cdob :worship: nicely put it: 
 
 

I've the impression so far: both EasyBCD and VisualBCD are illegal commercial packages.
Any clearance is highly welcome.

 
 
:cheers:
Wonko



#41 boyans

boyans

    Newbie

  • Members
  • 13 posts
  • Interests:Music
  •  
    Bulgaria

Posted 10 March 2013 - 09:06 PM

You can call it "advanced" as much as you like but it is NOT a "GUI version of Windows bcdedit utility", it is "a GUI program using the original MS Windows bcdedit utility" or a Graphical User Interface for the original MS Windows bcdedit utility".



It' s not the same thing. :frusty:



"GUI versions of" the bcdedit utility are (examples) these:

http://reboot.pro/in...showtopic=10003

http://www.zezula.ne...bellavista.html

#42 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 11 March 2013 - 09:54 AM

There is the concept of fair use - I am distributing these files INSTEAD of extracting from users OS. If the user does not have Windows 7 or later he does not need a BCD tool.
And the copyright holder is mentioned in license EXPLICITLY !

Which does NOT apply to redistribution.

 

Again, look, there is no issue whatsoever, I really cannot see why you cannot (if you want to) remove the few non-redistributable files from the download you provide and add a simple routine to find them on the customer's hard disk or show a dialog asking the user to put a copy of them in the same directory as your tool and say on your page that your program is a GUI that uses (or relies upon) the WMI interface of the BCDEDIT.EXE tool.

 

And again, there are NO doubts whatsoever that your tool is "advanced", "complete", "professional" and also, if you like it "the third best thing in life after the invention of ice cream and Konboot" ;), NO debate whatsoever on the capabilities of your tool , on how good it is programmed, on how nice is it, etc., etc. :worship:

 

Additionally, I am not (and never has been, though a few people thought I was) anymore the Internet Police, see:

http://reboot.pro/to...-warez/?p=96863

 

The current package contains non-redistributable files. <- this is a fact

I like things called with their names, and I find the mis-representation of the tool and the redistribution of the files not "kosher" <- this is an opinion

You are perfectly free obviously to ignore the above.

 

Just for the record crystal ball was tuned alright (strangely enough)

 

 


Then there are developers which DO NOT comply to copyright law -
they rename a product and pretend that it is their OWN development.

DO YOU SEE THE small DIFFERNCE ?


Free Software Foundation is the copyright holder of grub4dos I think as a central place for defending authors of software products with GPL.

Why is the community so quiet about copyright violations ?
Is everybody feeling guilty to have committed copyright infringement on one or another level ?


Who cares.

 

 

I love rhetorical questions. :wub:

My crystal ball tells me that soon a comment will be made along the usual "but, but, site XY does have a downloadable copy, if they distribute it WHY I cannot?".

 

:cheers:

Wonko



#43 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 11 March 2013 - 09:45 PM

Visual BCD is a FULL (complete) GUI version of bcdedit.
Sorry, I don't understand still. Does Visual BCD require the file bcdedit.exe?

BCD defines about 140 elements in Windows 7.
BCD defines 7 element types.
BCD defines 3 object types.
Back on topic:
Any chance to load a 3rd-party EFI application?
Load a default grub2 grubx64.efi? How to do this?

#44 boyans

boyans

    Newbie

  • Members
  • 13 posts
  • Interests:Music
  •  
    Bulgaria

Posted 11 March 2013 - 11:34 PM

boyans said:Visual BCD is a FULL (complete) GUI version of bcdedit.Sorry, I don't understand still. Does Visual BCD require the file bcdedit.exe?

 

 

No for Visual BCD Editor. It uses BCD WMI Provider Interface (only in Vista and up).

Yes for "Dual-boot Repair" tool intended to run under XP (no BCD WMI Provider in XP). 

 

 

Back on topic:Any chance to load a 3rd-party EFI application?Load a default grub2 grubx64.efi? How to do this?

 

 

I don't know as I recently got an UEFI machine.

Windows 8 introduces about 60 new elements, a new data type and maybe new application objects (?) for BCD so maybe there is a way of chaining 3-rd party boot manager / loader. Microsoft documentation was never detailed and complete as it should be.


Edited by boyans, 11 March 2013 - 11:39 PM.


#45 wimb

wimb

    Platinum Member

  • Developer
  • 3756 posts
  • Interests:Boot and Install from USB
  •  
    Netherlands

Posted 12 March 2013 - 07:41 AM

The other way around works quite well which uses chainload Windows 8 from Grub2 Menu.

It means Boot into BCD via 3rd-party EFI application is working OK. :)

 

UEFI Secure Boot - Multi-Boot of Fedora-18 + Windows 8 from USB-harddisk is possible
using Fedora-18 Secure Boot files efi\boot\BOOTX64.efi and efi\boot\grubx64.efi
and in Grub2 Menu chainloader of the Windows 8 bootx64.efi file renamed as /efi/boot/8bootx64.efi

 

http://www.911cd.net...ndpost&p=173242
http://www.911cd.net...showtopic=25269

 

When Secure Boot is disabled then also non-MS-signed EFI applications like Parted Magic can be booted from the same Grub2 Menu.

 

:cheers:



#46 cdob

cdob

    Gold Member

  • Expert
  • 1469 posts

Posted 13 March 2013 - 11:16 PM

No for Visual BCD Editor. It uses BCD WMI Provider Interface (only in Vista and up).
Visual BCD Editor is a very good application.
Why hurting your credibility by distributing additional non distributable files?
Visual BCD Editor get a bad taste that way, it's turns to a warez package that way.
Yes for "Dual-boot Repair" tool intended to run under XP (no BCD WMI Provider in XP). 
Anybody creating a Dual-boot environment, should be able to provide a bcdedit.exe.

In addition it's possible to download parts of WAIK http://www.msfn.org/...-the-huge-isos/
BCDedit.exe should be downloadable that way too.
 
Windows 8 introduces about 60 new elements, a new data type and maybe new application objects (?) for BCD so maybe there is a way of chaining 3-rd party boot manager / loader.
Any solution is highly welcome.

@wimb
At a pre installed Windows 8 secure boot machine, the windows bootloader is tested.
I prefer the Windows 8 bootloader as first loader, because it's supported at unknown machines too.
The windows bootloader is the first choice therefore.

#47 wimb

wimb

    Platinum Member

  • Developer
  • 3756 posts
  • Interests:Boot and Install from USB
  •  
    Netherlands

Posted 14 March 2013 - 09:37 AM

At a pre installed Windows 8 secure boot machine, the windows bootloader is tested.
I prefer the Windows 8 bootloader as first loader, because it's supported at unknown machines too.

 

The Fedora-18 Grub2 bootx64.efi + grubx64.efi will probably work on unknown machines.

In fact my machine can be considered as unknown,

since I did not take any extra measures to support UEFI Secure Boot of Fedora-18 Grub2.

It is a nice feature of Grub 2 that it supports chainloader into Windows 8 bootx64.efi

 

:cheers:



#48 milindsmart

milindsmart

    Frequent Member

  • Advanced user
  • 201 posts
  • Location:Bangalore
  •  
    India

Posted 06 September 2014 - 05:47 PM

@boyans, after seeing the sheer number of elements from your Visual BCD Editor, I shall be pretty sad if there's not a way of doing anything under the sun.
 
And after reading this thread, and using Visual BCD Editor (and EasyBCD, too), I have no doubts about 2 things :

  • VBCDE is definitely more powerful than EasyBCD
  • EasyBCD definitely violates the law in more ways and more severe ways than VBCDE. Sure, both of them do violate to some extent, but as the saying goes :
  • If you think the earth is flat, you are wrong
    If you think the earth is spherical, you are wrong
    But if you think that the earth being flat is as wrong as the earth being round,
    then you are wronger than the two put together



#49 mihi

mihi

    Newbie

  • Members
  • 29 posts
  •  
    Germany

Posted 03 January 2017 - 08:01 PM

Was this issue ever advanced?

 

Is there a way to add a signed efi application to BCD to launch. Ubuntu 12.10 64 bit comes with a signed (by MS) efi application, but when I add it as an OSLOADER app or BOOTSECTOR app, it doesn't work. Is this possible on Win8/UEFI or not?

 

 

 

Sorry for hijacking this old thread, but I'd like to shed some light about what works and what does not (and ask if you have any ideas to improve it).

 

  • Unless you want to use Secure Boot, it does not matter if your BOOT_APPLICATION is signed or not - just /set nointegritychecks Yes (on your boot entry, not on {bootmgr}). For your BOOT_APPLICATION bcd entry you can /copy {memdiag} and change the path.
  • As others already pointed out, your application needs to use /SUBSYSTEM:BOOT_APPLICATION. You can use Visual Studio 2015 (Community) to compile for this subsystem: while the value does not exist in the subsystem list, you can just set the subsystem to unset and add /SUBSYSTEM:BOOT_APPLICATION as custom linker option. If you want a template how to link against GNU EFI llibrary with Visual Studio, you can use uefi-simple as a template (In case you want to run and test it in QEMU from Visual Studio, you will have to tweak debug.vbs so that it copies the Windows bootloader and a pre-built BCD into the boot image and change the destination file name inside the boot image so that bootx64.efi is not overwritten with your binary).
  • The entry point of the BOOT_APPLICATION takes one parameter of type PBOOT_APPLICATION_PARAMETER_BLOCK (The folks of the Reactos project have reverse engineered this struct and many related ones) and its return value is a normal NTSTATUS/EFI_STATUS. Apart from the signature ("BOOT APP") and version (2), the BOOT_APPLICATION_PARAMETER_BLOCK struct mainly contains offsets (in bytes from the start of the struct) to the BL_FIRMWARE_DESCRIPTOR (which has a version number of 2 and include the normal ImageHandle and SystemTable variables every UEFI programmer knows) and to the BL_APPLICATION_ENTRY (which is mainly useful since it is the start of a linked list of BCD parameters that are set for the image - so you can set your own custom:0x... options with bcdedit and read the values from your BOOT_APPLICATION).
  • When calling UEFI IntializeLib, don't pass the ImageHandle on first call, since it will use the ImageHandle to determine the correct memory allocation type - and it does not know what is correct for BOOT_APPLICATION. When you pass NULL, it will use EfiBootServicesData, which works fine.

 

And now this is where my problems start:

 

While input (ST->ConIn) works fine (as well as most other BootServices like serial ports or filesystem access or even shutdown), everything that tries to access the screen (i. e. GRAPHICS_OUTPUT_PROTOCOL or SIMPLE_TEXT_OUTPUT_PROTOCOL) freezes the machine instead. Probably the boot loader initialized the graphics card strangely or did some non-standard memory mapping? (After exiting from the boot application and exiting from the boot manager, it works again, so it is not permanently damaged...). I also tried to debug the boot manager with WinDbg, but that debug support seems to be limited (no way to search for ASCII strings, but searching for DWORDs works fine; breakpoints sometimes work but most of the time don't, etc.) so I gave up on this one, too.

 

So while it is technically possible to LoadImage and StartImage another normal EFI binary, that one will probably also freeze quickly and be of no real use.

 

If you want to experiment with "what works", here is a small example that can shut down the machine or dump EFI variables to the serial console:

#include <efi.h>
#include <efilib.h>

typedef struct {
	CHAR8 Signature[8]; // "BOOT APP"
	UINT32 Version; // 2
	UINT32 Irrelevant[7];
	UINT32 AppEntryOffset;
	UINT32 Irrelevant2;
	UINT32 FirmwareParametersOffset;
} BOOT_APPLICATION_PARAMETER_BLOCK;

typedef struct {
	UINT32 Type;
	UINT32 DataOffset;
	UINT32 DataSize;
	UINT32 ListOffset;
	UINT32 NextEntryOffset;
	UINT32 Empty;
} BL_BCD_OPTION;

typedef struct {
	CHAR8 Signature[8]; // "BTAPENT"
	EFI_GUID Guid;
	UINT32 Unknown[5];
	BL_BCD_OPTION BcdData;
} BL_APPLICATION_ENTRY;

typedef struct {
	UINT32 Version; // 2
	UINT32 Padding;
	EFI_HANDLE ImageHandle;
	EFI_SYSTEM_TABLE *SystemTable;
} BL_FIRMWARE_DESCRIPTOR;


void SerWrite(EFI_SERIAL_IO_PROTOCOL* ser, CHAR16* buffer) {
	CHAR8 buf[100];
	UINTN len = StrLen(buffer), i;
	if (len > 100) len = 100;
	for (i = 0; i < len; i++) {
		buf[i] = (CHAR8)buffer[i];
	}
	ser->Write(ser, &len, buf);
}

void DumpVars(EFI_SERIAL_IO_PROTOCOL* ser, BOOT_APPLICATION_PARAMETER_BLOCK* BootAppParameters) {
	BL_APPLICATION_ENTRY* appentry = (BL_APPLICATION_ENTRY*)(((UINTN)BootAppParameters) + BootAppParameters->AppEntryOffset);
	BL_BCD_OPTION* option = &appentry->BcdData;
	UINTN firstOption = (UINTN)option;
	CHAR16 buffer[40];
	CHAR8* data;
	UINT32 i;

	while (TRUE) {
		SPrint(buffer, 40, L"%08x: ", option->Type);
		SerWrite(ser, buffer);
		data = (CHAR8*)(((UINTN)option) + option->DataOffset);
		if ((option->Type & 0x0F000000) == 0x02000000 && option->DataSize > 0) {
			SerWrite(ser, L"\"");
			SerWrite(ser, (UINT16*)data);
			SerWrite(ser, L"\"");
		}
		else if (((option->Type & 0x0F000000) == 0x03000000 && option->DataSize == 16) || ((option->Type & 0x0F000000) == 0x04000000 && option->DataSize % 16 == 0)) {
			for (i = 0; i < option->DataSize; i += 16, data += 16) {
				SPrint(buffer, sizeof(buffer), L"{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x} ", *((UINT32*)data), *((UINT16*)(data + 4)), *((UINT16*)(data + 6)),
					*((UINT8*)(data + 8)), *((UINT8*)(data + 9)), *((UINT8*)(data + 10)), *((UINT8*)(data + 11)),
					*((UINT8*)(data + 12)), *((UINT8*)(data + 13)), *((UINT8*)(data + 14)), *((UINT8*)(data + 15)));
				SerWrite(ser, buffer);
			}
		}
		else if (((option->Type & 0x0F000000) == 0x05000000 && option->DataSize == 8) || ((option->Type & 0x0F000000) == 0x07000000 && option->DataSize % 8 == 0)) {
			for (i = 0; i < option->DataSize; i += 8) {
				SPrint(buffer, 40, L"%ld ", *((UINT32*)(data + i)));
				SerWrite(ser, buffer);
			}
		}
		else if ((option->Type & 0x0F000000) == 0x06000000 && option->DataSize == 2 && data[0] == 0 && data[1] == 0) {
			SerWrite(ser, L"false");
		}
		else if ((option->Type & 0x0F000000) == 0x06000000 && option->DataSize == 2 && data[0] == 1 && data[1] == 0) {
			SerWrite(ser, L"true");
		}
		else {
			for (i = 0; i < option->DataSize; i++) {
				SPrint(buffer, 40, L"%02x ", *((UINT8*)(data + i)));
				SerWrite(ser, buffer);
			}
		}
		SerWrite(ser, L"\r\n");
		if (option->NextEntryOffset == 0)
			return;
		option = (BL_BCD_OPTION*)(firstOption + option->NextEntryOffset);
	}
}


EFI_STATUS BootApplicationEntryPoint(BOOT_APPLICATION_PARAMETER_BLOCK* BootAppParameters) {
	BL_FIRMWARE_DESCRIPTOR* fwdesc = (BL_FIRMWARE_DESCRIPTOR*)(((UINTN)BootAppParameters) + BootAppParameters->FirmwareParametersOffset);
	EFI_HANDLE ImageHandle = fwdesc->ImageHandle;
	EFI_SYSTEM_TABLE* SystemTable = fwdesc->SystemTable;
	EFI_GUID serGUID = EFI_SERIAL_IO_PROTOCOL_GUID;
	EFI_INPUT_KEY key;
	UINTN Event;
	EFI_SERIAL_IO_PROTOCOL* ser;
	InitializeLib(NULL, SystemTable);
	InitializeLib(ImageHandle, SystemTable);
	BS->SetWatchdogTimer(0, 0, 0, NULL);
	LibLocateProtocol(&serGUID, &ser);
	ser->Reset(ser);
	ser->SetAttributes(ser, 115200, 0, 0, DefaultParity, 8, DefaultStopBits);
	CHAR16* header = L"Hello, serial!\r\nD to dump variables, R to reboot, H to halt, or X to exit\r\n\r\n";
	SerWrite(ser, header);
	ST->ConIn->Reset(SystemTable->ConIn, TRUE);
	while (TRUE) {
		BS->WaitForEvent(1, &ST->ConIn->WaitForKey, &Event);
		ST->ConIn->ReadKeyStroke(ST->ConIn, &key);
		switch (key.UnicodeChar) {
		case 'd':
		case 'D':
			DumpVars(ser, BootAppParameters);
			break;
		case 'h':
		case 'H':
			RT->ResetSystem(EfiResetShutdown, EFI_SUCCESS, 0, NULL);
			break;
		case 'r':
		case 'R':
			RT->ResetSystem(EfiResetCold, EFI_SUCCESS, 0, NULL);
			break;
		case 'x':
		case 'X':
			return EFI_SUCCESS;
			break;
		}
	}
}

In case anyone has any more information, please share :-)

 

mihi


Edited by mihi, 03 January 2017 - 08:04 PM.


#50 Computer Guru

Computer Guru

    Newbie

  • Members
  • 17 posts
  •  
    United States

Posted 06 January 2017 - 04:50 PM

If you're such a computer guru, as your name implies, then maybe you should answer your own question.

 

Sorry, did I say something to offend you? Anyway, the current question was raised by mihi; if you have nothing to contribute to the topic at hand, perhaps it is best to leave this discussion for those looking to contribute?







Also tagged with one or more of these keywords: efi, uefi, chainloader, grub2, bcd, bcdedit

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users