Jump to content

PEBakery


Joveler

Recommended Posts

What is PEBakery?
PEBakery is a builder specialized in customizing Windows PE.
It is intended to be used with projects such as Win10PESE, Win10XPE, MistyPE and ChrisPE.

Why PEBakery was written?
PEBakery is compatible with WinBuilder 082.
Projects like Win10PESE are dependent on WinBuilder 082, but WB082's development went discontinued.
PEBakery works as a drop-in replacement of WB082, while providing much improved envrionment.

Download
Binary and source of PEBakery can be downloaded from github.
Nightly binary can be downloaded from here, thanks to AppVeyor service.

Source
PEBakery is a open source software, licensed under GPLv3.
Source of PEBakery can be downloaded in GitHub.
Bug report or Pull request is always welcome.

How to Test
.Net Framework 4.7.1 and Windows 7 or upper is required to run PEBakery.
1. Download PE project zip distribution and extract it. (e.g. ChrisPE, Win10XPE)
2. Put 'Binary' and 'PEBakeryLauncher.exe' in project root (the directory where Project directory resides in).
3. Read NOTICE_SHOULD_READ_FIRST.txt and follow instructions.
4. Run 'PEBakeryLauncher.exe' with admin privilege.
5. Configure project and run. Compare with WinBuilder 082 (which is bundled by default).

Documentation
Specification of PEBakery script language is being done in GitHub.

Disclaimer
- All implementation is only backed by documentation and black box testing, without violating WinBuilder 082's EULA.
- I do not provide any warranty, use at your own risk. Backup is highly recommended.
- Windows Preinstalled Environment is a registered trademark of Microsoft.

Edited by Joveler
Update information
Link to comment
Share on other sites


Good to see this :), you seemingly did already a lot of work :thumbup, though the reasons behind the *need* of another builder (beside the very, very good idea of releasing it as Open Source) totally escapes me. :unsure:

And Visual Studio 2017 and .Net? :w00t::ph34r:

jaclaz

 

Link to comment
Share on other sites

@ Joveler:

Thanks for making this thread, any new project to improve building a PE is alway welcome, and your's is a fresh breeze long waited.

 

@All

Just tryed this project two days ago using previous version making a Win10PE SE x64 Build and let me tell all of you it is very much faster than using only the good old WinBuilder 0.82

Now to make things easier there is a new a version of Win10PE SE directly compatible with PEBakery (no need to update after download):

http://win10se.cwcodes.net/Compressed/

 

And for those interested in trying PEBakery also on MistyPE:

http://reboot.pro/files/file/357-mistype/

 

Best regards

alacran

 

Link to comment
Share on other sites

5 hours ago, jaclaz said:

Good to see this :), you seemingly did already a lot of work :thumbup, though the reasons behind the *need* of another builder (beside the very, very good idea of releasing it as Open Source) totally escapes me. :unsure:

And Visual Studio 2017 and .Net? :w00t::ph34r:

jaclaz

 

 

Win10PE SE project (WB 0.82) has always taken very long time to make builds, until now there was no other builder option for it, as all scripts (or plugins as they like to call them) have been written to run on WB 0.82.

Visual Studio is required only if you want to compile the source files located on GitHub, there is a link to a compiled version on first post.

alacran

Edited by alacran
Link to comment
Share on other sites

16 minutes ago, alacran said:

Visual Studio is required only if you want to compile the source files located on GitHub, there is a link to a compiled version on first post.

alacran

I know :), thanks.

Still it seems to me - together with .Net that is needed for the runtime also - a "queer" requirement for an Open Source project (though of course perfectly in-line with the Windows 7 requirement :w00t: ).

And I continue to fail to see a *need* for a "faster" builder (no matter if using the same, old, and largely flawed syntax of Winbuilder 082 - including commas and quotes - or if using the new, revolutionary and if possible even more flawed syntax of the totally senseless Winbuilder 2013, or *whatever* it is called the one-developer and one-user building system that followed it).

 As a side-side note, IMHO a "better" link to MistyPE is its documentation webpage:

http://mistyprojects.co.uk/mistype/mistype.docs/readme.html

http://mistyprojects.co.uk/mistype/mistype.docs/readme.files/intro.htm

where new users of the project can read about the "base philosophy" behind it and get familiar with the available options and building process (that should remain exactly the same if done through this new builder).

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

Just now, jaclaz said:

Still it seems to me - together with .Net that is needed for the runtime also - a "queer" requirement for an Open Source project (though of course perfectly in-line with the Windows 7 requirement :w00t: )

I was short of investable time to develop PEBakery, since it started as in-house project. If I did not used C#, Completion of PEBakery would have consumed years.

Moreover, I fed up with WinBuilder 082's slow UI and lack of HiDPI support, which Microsoft dealt very well in cutting-edge version of .Net Framework (which are only supported in Win 7+).

Well, having more choice in builder world is much better, I think. :)

Link to comment
Share on other sites

10 minutes ago, Joveler said:

Well, having more choice in builder world is much better, I think. :)

Sure it is :), having choices is always a good thing.

And don't worry, the note is only referring to the continuation of the good old car-fuel story:

 

http://reboot.pro/topic/12547-offtopic-by-psc-reply-here/?p=109801

Here having a new slight twist, given that the car doesn't brake very well, and has issues in left turns, tutbocharging its engine (while a good thing in itself :thumbup) won't unfortunately help for that issue. 

jaclaz

 

Edited by jaclaz
Link to comment
Share on other sites

Just for the record currently I am on an i3-3225 3.3 GHZ, 8GB RAM, 1 TB HDD SATA III (MBR formated) OS Win7x64,  all is going to be done on my 50 GB just formated testing partition (logical partition E:\), source: Win10_1709_Spanish(Mexico)_x64.iso (Fall Creator Update).

Just downladed your 2017.12.02 compilation and Win10PE SE new version, I have Misty project on my HD, I am going to make new 10x64PE builds and report back.

alacran

 

 

Link to comment
Share on other sites

8 minutes ago, alacran said:

Just downladed your 2017.12.02 compilation and Win10PE SE new version, I have Misty project on my HD, I am going to make new 10x64PE builds and report back.

To build MistyPE, 3 syntax error should be fixed. I contacted Misty about this 3 week ago, hope it will be fixed soon.

[MistyPE\Core\verify.script] - [SOURCE.CHECK] Section
IniWriteTextLine,"%Cache%\temp\boot.wim.info.ini",Main,Architecture,%ARCH%
->
IniWriteTextLine,"%Cache%\temp\boot.wim.info.ini",Main,Architecture=%ARCH%

[MistyPE\Core\Core.script] - [TWEAKS] section
ECHO,"Remove 'Pin to Start' and 'Pin to Taskbar' from the context menu options"System,
->
ECHO,"Remove 'Pin to Start' and 'Pin to Taskbar' from the context menu options"

[MistyPE\Boot.Media\create.ISO.script] - [RAM] Section
Else,ShellExecute,Open,"%TOOLS%\oscdimg.exe","-l#$qWinPE#$q -n -m -b#$q%OutputDir%\boot\etfsboot.com#$q #$q%OutputDir%#$q #$q%ISODir%\WinPE.iso#$q"
->
ShellExecute,Open,"%TOOLS%\oscdimg.exe","-l#$qWinPE#$q -n -m -b#$q%OutputDir%\boot\etfsboot.com#$q #$q%OutputDir%#$q #$q%ISODir%\WinPE.iso#$q"

 

Link to comment
Share on other sites

For Misty's create.iso.script, I believe line 125 should be deleted. In that case the "else" starts working, and only *one* of the two iso creation tools is used, instead of both (the second will overwrite the first anyway). Please correct me if I'm wrong.

Edited by Atari800XL
Link to comment
Share on other sites

Original winbuilder was no longer supported. PEBakery is far superior to original builder. The author of PEBakery has done a fabulous job in writing a replacement. If you don't like PEBakery then don't use it.

 

I agree the winbuilder scripting language should never have been invented as at the time there were many superior alternatives. However it was and we now have several active projects that use it. Its great that those of us that still use those projects have a supported actively developed alternative to the original winbuilder.

Link to comment
Share on other sites

1 hour ago, Paraglider said:

I agree the winbuilder scripting language should never have been invented as at the time there were many superior alternatives. However it was and we now have several active projects that use it. Its great that those of us that still use those projects have a supported actively developed alternative to the original winbuilder.

Which as said it is good, though still I cannot understand.

The (old, unsupported and now also deprecated) Winbuilder 082 had IMHO some serious issues with an overcomplex, often futile, primitive and often not human-writable (let alone human-readable) syntax.

If this project (in a future, when the developer will have time, etc.) will lead to a new (clear, simple, human-writable and human-readable) syntax while being compatible with existing .sctipts or projects it represents a much needed innovation.

If this project is only meant as having a faster interpreter for the same botched syntax I cannot see much of its usefulness.

The scripting language is either (or will be) 100% compatible or it is not.

If it is not (and adds much needed better syntax and new functions) soon .scripts/projects will be written/modified for this new builder (and will thus lose compatibility with the old one).

If you prefer, in my perverted mind, I would have liked a new (good, fast, and what not) interpreter with its own (better) scripting language AND with the possibility to interpret/convert (to the new syntax) the old, largely botched syntax of Winbuilder.

If this is the first step in that direction, the PEbakery represents an exceptional innovation :thumbup if it is (or will be) limited to be a faster interpreter of the old language, it represents only a faster interpreter of the old language.

I can understand that one (of the very few)  project/.script developer might find useful to run (say, just guessing, no idea on the order of magnitude of the speed increase) a test build in two minutes instead of (still say) five minutes, but I don't think that shortening the build time of the "final user" represents a game changing innovation.

 

Mind you, this is not to detract in any way from the good work of the Author of PEbakery :), I am sure he spent lots of time and did a very good work.

jaclaz

Link to comment
Share on other sites

Reporting my tests:

Source: Win10_1709_Spanish(Mexico)_x64.iso (Fall Creator Update).        Antivirus and UAC disabled.    .NET Framework 4.7.1 (v4.7.0 blocks AutoCAD).

Win10x64PESE Builded fine no problems.

MistyPE_10x64 did not finish the build, aborted, attached you can find a 7zip with changes made to scripts, log and picture, also a picture of an annoying messaje about UAC (UAC is permanently disabled on my PC).

Tested using PEBakery_20171202 and also PEBakery_20171123 (same result for both versions).

MistyPE_10x64 through MistyPE project (WB 0.82) was sucessful (with and without changes to scripts). This was done just to verify if source was the trouble maker.

 

Best Regards

alacran

Failure.7z

Edited by alacran
Added info.
Link to comment
Share on other sites

Alacran, thanks for your tests. As it turns out, I tested MistyPE without WOW64 enabled.

I have now looked at the WOW64 script in MistyPE, and it looks like it's using a line continuation for long lines (lines end with "\" in that case, and code is continued on the next line, but has to be combined by the interpreter).

It looks like PEBakery doesn't support this (yet?). It isn't used in many scripts, so he may not have run into it.

As luck would have it, I've done a lot of tests today as well, including w7pese, this project also uses this line continuation in a script (Wallpaper).

I hope Joveler can look into this. I know he doesn't want to support each and every WB function, but maybe he can make an exception in this case, so we can get this working after all.

Sorry for forgetting to test WOW64 in MistyPE myself, good thing you found it!

Edited by Atari800XL
Link to comment
Share on other sites

Thaks for your answer, I know Joveler considers his project in alpha state, and there is still work to do.

But as you I also hope Joveler fix this issue on a future version in order to give full support to MistyPE.

It took me long time and patience to convince Misty to add 32 bits support to x64 builds, I do have some 32 bits portable programs (Not x64 version available), that I use to run on all my PE's.

Your friend

alacran

Edited by alacran
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...