fixed bug in FIDO ISO download, auto select Win 10 Pro image if available

This commit is contained in:
Homes32
2021-03-25 20:50:47 -05:00
parent ccd714c22a
commit 2b7ea5a722
3 changed files with 64 additions and 30 deletions

View File

@@ -157,28 +157,40 @@ End
If,%cmb_BaseWim%,Equal,"Boot.wim",Begin
// Get the number of images in the wim file.
WimInfo,%SourceBaseWim%,0,ImageCount,%imgCount%
Set,%indexList%,""
Set,%imgIndexList%,""
Set,%imgNameList%,""
// Loop through each image and get the information.
Loop,%ScriptFile%,GetImgInfo_Loop,1,%imgCount%,%SourceBaseWim%
StrFormat,LTrim,%indexList%,1,%indexList%
// Populate cmb_SrcBaseImage
WriteInterface,Items,%ScriptFile%,Interface,cmb_SrcBaseImage,%imgIndexList%
// Select the highest number image as the default.
List,Count,%indexList%,%splitCount%
StrFormat,Split,%indexList%,|,%splitCount%,%indexSelected%
WriteInterface,Items,%ScriptFile%,Interface,cmb_SrcBaseImage,%indexList%
List,Count,%imgIndexList%,%SrcBaseImageCount%
List,Get,%imgIndexList%,%SrcBaseImageCount%,%indexSelected%
WriteInterface,Value,%ScriptFile%,Interface,cmb_SrcBaseImage,%indexSelected%
End
// Install.wim
// Get the number of images in the wim file.
WimInfo,%SourceInstallWim%,0,ImageCount,%imgCount%
Set,%indexList%,""
Set,%imgIndexList%,""
Set,%imgNameList%,""
// Loop through each image and get the information.
Loop,%ScriptFile%,GetImgInfo_Loop,1,%imgCount%,%SourceInstallWim%
// Select the highest number image as the default.
List,Count,%indexList%,%splitCount%
StrFormat,Split,%indexList%,|,%splitCount%,%indexSelected%
WriteInterface,Items,%ScriptFile%,Interface,cmb_SrcInstallImage,%indexList%
// Populate cmb_SrcInstallImage
WriteInterface,Items,%ScriptFile%,Interface,cmb_SrcInstallImage,%imgIndexList%
// Select the Windows 10 Pro image as default.
List,Pos,%imgNameList%,"Windows 10 Pro",%ProPos%
If,%ProPos%,Equal,0,Begin
// Could not find Windows 10 Pro index. Just select the highest numbered image.
List,Count,%imgIndexList%,%SrcInstallImageCount%
List,Get,%imgIndexList%,%SrcInstallImageCount%,%indexSelected%
End
Else,List,Get,%imgIndexList%,%ProPos%,%indexSelected%
WriteInterface,Value,%ScriptFile%,Interface,cmb_SrcInstallImage,%indexSelected%
// Populate ImgInfo for the selected image
Run,%ScriptFile%,GetSourceWimImage
@@ -202,7 +214,10 @@ System,Cursor,Normal
// %imgArch% - Arch (x86/x64)
// %imgLang% - Default Language
// %imgName% - Image Name
// %indexList% - String containing a pipe separated list of all images in <WimFile> formatted for use in cmb_SrcBaseImage and cmb_SrcInstallImage
// %imgIndexList% - String containing a pipe delimited list of all images in <WimFile> formatted for use in
// cmb_SrcBaseImage and cmb_SrcInstallImage (Index - Name).
// %imgNameList - String containing a pipe delimited list of names for all images in <WimFile>
// Useful for selecting a specific/default image name.
// Author.........: Homes32
// Remarks........:
// Related........:
@@ -230,7 +245,8 @@ StrFormat,CTrim,%imgFallbackLang%,|,%imgFallbackLang%
If,%imgArch%,Equal,0,Set,%imgArch%,"x86"
Else,Set,%imgArch%,"x64"
List,Append,%indexList%,"#c - %imgName%"
List,Append,%imgIndexList%,"#c - %imgName%"
List,Append,%imgNameList%,"%imgName%"
[#GetSourceWimImage#]
// ===============================================================================================================================
@@ -295,7 +311,7 @@ Set,%imgTemp%,Nil
[DownloadWithFido]
Set,%FidoURL%,"https://github.com/pbatard/Fido/releases/latest/download/Fido.ps1.lzma"
If,QUESTION,"This option will download and run the open source Fido powershell script which will allow you to choose which ISO images to download from Microsoft's servers.#$x#$xFor more info please visit [https://github.com/pbatard/Fido].#$x#$xAre you sure you want to continue?",Begin
WebGet,%FidoURL%,%ProjectTemp%
WebGet,%FidoURL%,"%ProjectTemp%\Fido.ps1.lzma"
7z,"x -y #$q%ProjectTemp%\Fido.ps1.lzma#$q -o#$q%ProjectTemp%#$q"
ShellExecuteEx,Open,"powershell.exe","-noexit ExecutionPolicy Bypass & #$q%ProjectTemp%\Fido.ps1#$q"
End
@@ -432,7 +448,7 @@ bvl_Homepage=bvl_Homepage,1,12,302,5,121,25
web_TechBench="Techbench ISO Images",1,10,309,9,113,18,https://tb.rg-adguard.net/public.php
bvl_ImageCfg="Configure Source Image",1,12,5,146,532,130,8,Bold
lbl_BaseWim="Base Wim:",0,1,69,166,54,18,8,Normal
cmb_BaseWim=WinRE.wim,0,4,130,162,100,21,Boot.wim,WinRE.wim,_SaveSource_,False
cmb_BaseWim=Boot.wim,0,4,130,162,100,21,Boot.wim,WinRE.wim,_SaveSource_,False
lbl_SrcBaseImg="'Base' Image:",1,1,56,193,92,18,8,Normal
cmb_SrcBaseImage="[Please select a valid source]",1,4,130,188,395,21,"[Please select a valid source]",_UpdateBaseWimLabel_,True
lbl_SrcInstallImage="'install.wim' Image:",1,1,29,221,94,18,8,Normal

View File

@@ -35,8 +35,8 @@ Author=Homes32
Level=5
Selected=False
Mandatory=False
Version=1.0.0.0
Date=2020-03-31
Version=1.1.0.0
Date=2021-03-22
Interface=Interface
[Variables]
@@ -103,17 +103,18 @@ IniWrite,"%TargetPrograms%\%ProgramFolder%\BackupRecovery.ini","BackupSetting","
IniWrite,"%TargetPrograms%\%ProgramFolder%\other.ini","UserExperience","ExperienceValue",0
// Product Registration
If,%HostArch%,Equal,x86,Set,%WOW6432Node%,""
Else,Set,%WOW6432Node%,"WOW6432Node\"
If,%cmb_RegEdition%,Equal,"Standard",RegWrite,HKLM,0x3,"Tmp_Software\Microsoft\Windows\CurrentVersion","ProgramData",08,77,2f,f2,ca,c7,37,a1,1e,e2,3e,e2,ef,7b,18,b5,1d,d3,4d,d2,1c,9b,19,92,31,93,64,f6,5a,f0,61,92,2c,85,3f,80,56,eb,1b,ee,2a,97,9e,a4,89,a9,b5,51,b2,88,c8,df,d1,df,64,a9,21,d1,a1,b5,85,b9,71,d4,5c,41,8a,26,8e,45,01,2b,16,6a,b6,62,c6,6d,46,6e,15,5b
Else,If,%cmb_RegEdition%,Equal,"Import License From Host",Begin
If,%HostArch%,Equal,x86,Set,%WOW6432Node%,""
Else,Set,%WOW6432Node%,"Wow6432Node\"
RegRead,HKLM,"Software\%WOW6432Node%Microsoft\Windows\CurrentVersion","ProgramData",%Host_LicKey%
If,%Host_LicKey%,Equal,"",Halt,"ERROR: Could not retrieve license key from host system."
Else,RegWrite,HKLM,0x3,"Tmp_Software\%WOW6432Node%Microsoft\Windows\CurrentVersion","ProgramData",%Host_LicKey%
Else,RegWrite,HKLM,0x3,"Tmp_Software\Microsoft\Windows\CurrentVersion","ProgramData",%Host_LicKey%
End
Else,Begin
If,%txt_LicKey%,Equal,"",Halt,"ERROR: You must enter a license key."
Else,RegWrite,HKLM,0x3,"Tmp_Software\%WOW6432Node%Microsoft\Windows\CurrentVersion","ProgramData",%txt_LicKey%
Else,RegWrite,HKLM,0x3,"Tmp_Software\Microsoft\Windows\CurrentVersion","ProgramData",%txt_LicKey%
End
IniWrite,"%TargetPrograms%\%ProgramFolder%\Version.ini","VersionInfo","versionCode",2
@@ -293,7 +294,7 @@ lbl_Language=Language,1,1,159,110,153,16,8,Normal
cmb_Language="English [en]",1,4,160,126,150,21,"Chinese (Traditional) [zh-TW]","Chinese (Simplified) [zh-CN]","Dutch (Belgium) [nl-be]","Dutch (Netherlands) [nl]","English [en]","French [fr]","German [de]","Italian [it]","Japanese [jp]","Portuguese (Brazil) [pt]","Spanish [es]","Turkish [tr]"
lbl_RegEdition="Software Edition",1,1,160,185,153,16,8,Normal
cmb_RegEdition=Standard,1,4,160,200,174,21,Standard,"Import License From Host","Enter License Key",_ToggleRegKey_,True
txt_LicKey="License Key",0,0,160,243,174,21,,"__Enter your license key in HEX. You can export the value from: HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\ProgramData"
txt_LicKey="License Key",0,0,160,243,174,21,,"__Enter your license key in HEX.#$xYou can export the value from: HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion, ProgramData"
[InterfaceEncoded]
Trash.ico=1150,1212

View File

@@ -3,22 +3,39 @@
PhoenixPE is a Pre-Install Environment based on Win10.
* It uses the "next-generation" PEBakery engine resulting in faster build times and advanced features compared to legacy Winbuilder projects.
* Designed from the ground up to use clean, well documented code.
* Designed from the ground up to be developer/contributor friendly and use clean, well documented code.
* Easy to understand options and uncluttered user interface.
* Flexible and fully customizable.
# Building PhoenixPE
1. Mount or Extract your Win10 ISO to a location of your choice. If you dont have a Win10 ISO you may use the links on the 'Source Config' script to download the most recent version.
1. Using the 'Source Config' script, select the location of your source you provided in Step 1 and press the 'Save' button.
1. Select the Source 'install.wim. image. We recommend using the Pro image.
1. Enable the Apps you wish to include in your build. Note that some Apps require additional files or config. **Do not blindly enable all apps and expect to get a successful build**.
1. Tweak any settings you wish.
1. Press the Build button on PEBakerys Main Menu.
1. Grab a snack or a drink. The build process typically takes from 2 to 7 minutes depending on your PC, internet speed, and the scripts you have enabled. The first build will take a bit longer as project files and registry hives are cached and applications are downloaded.
1. Test your finished build to make sure everything is working as you expect.
1.
1. Profit!
# Frequently Asked Questions
Can I use Winbuilder to build PhoenixPE?
### Can I use Winbuilder to build PhoenixPE?
No. Winbuilder is no longer developed an contains numerous bugs that have not been fixed, some of which are critical. Winbuilder bugs aside PhoenixPE also makes use of PEBakery exclusive features and additional commands that are not present in Winbuilder.
Is PhoenixPE a clone of Win10PE_SE/Win10XPE/ETC...
### Is PhoenixPE a clone/fork of Win10PE_SE/Win10XPE/ETC...
No. PhoenixPE development started around 2014 as a Winbuilder project and was originally envisioned as a replacement for the Win10PE_SE project, which had become bloated and hard to maintain. In 2016 PhoenixPE was re-written from the ground up for use with the PEBakery engine.
No. PhoenixPE development started around 2014 as a Winbuilder project and was originally envisioned as a replacement for the Win10PE_SE project, which had become bloated and hard to maintain. In 2016 PhoenixPE was re-written from the ground up for use with the PEBakery engine, providing me with the challenge of coding a project from scratch without Winbuilder bug workarounds or resorting to messy .cmd stuff. It also assisted greatly in testing and documentation during PEBakery development.
Is PhoenixPE a replacement for Win10XPE?
### Is PhoenixPE a replacement for Win10XPE?
No. In my option the 2 projects have different goals. Win10XPE states that _it's main objective is to be simple, user-friendly and to be as fast as possible_. This caters well to user that just want to press a button and get a working PE without much fuss.
PhoenixPE on the other hand targets advanced users and developers that what more control over how and what goes into their PE.
No. Both produce a very similar environment based on decades of community members working together. We aren't in competition.
Win10XPE does great at providing a simple, pre-packaged experience, however it's core codebase is cumbersome and inconsistent and in an effort to provide a simple user experience, it loses the flexibility and ease of customization advanced users crave.
PhoenixPE strives to be simple for both users to build, and developers to contribute to, however there is a trade off, with customization comes additional complexity.
In my option the 2 projects have different goals. Win10XPE states that _"it's main objective is to be simple, user-friendly and to be as fast as possible"_. This caters well to user that just want to press a button and get a working PE without much fuss. Win10XPE does great at providing a simple, pre-packaged experience, however it's core codebase is cumbersome and inconsistent and in an effort to provide a simple user experience, it loses the flexibility and ease of customization advanced users crave.
PhoenixPE on the other hand targets advanced users and developers that what more control over how and what goes into their PE. It strives to be simple for both users to build, and developers to contribute to.
TL;DR: No. If anything the projects complement each other and encourage developers to work together. Use the one that best meets your needs. You can't go wrong.