mirror of
https://github.com/PhoenixPE/PhoenixPE.git
synced 2025-09-16 18:18:04 +02:00
fixed bug in FIDO ISO download, auto select Win 10 Pro image if available
This commit is contained in:
@@ -157,28 +157,40 @@ End
|
|||||||
If,%cmb_BaseWim%,Equal,"Boot.wim",Begin
|
If,%cmb_BaseWim%,Equal,"Boot.wim",Begin
|
||||||
// Get the number of images in the wim file.
|
// Get the number of images in the wim file.
|
||||||
WimInfo,%SourceBaseWim%,0,ImageCount,%imgCount%
|
WimInfo,%SourceBaseWim%,0,ImageCount,%imgCount%
|
||||||
Set,%indexList%,""
|
Set,%imgIndexList%,""
|
||||||
|
Set,%imgNameList%,""
|
||||||
// Loop through each image and get the information.
|
// Loop through each image and get the information.
|
||||||
Loop,%ScriptFile%,GetImgInfo_Loop,1,%imgCount%,%SourceBaseWim%
|
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.
|
// Select the highest number image as the default.
|
||||||
List,Count,%indexList%,%splitCount%
|
List,Count,%imgIndexList%,%SrcBaseImageCount%
|
||||||
StrFormat,Split,%indexList%,|,%splitCount%,%indexSelected%
|
List,Get,%imgIndexList%,%SrcBaseImageCount%,%indexSelected%
|
||||||
WriteInterface,Items,%ScriptFile%,Interface,cmb_SrcBaseImage,%indexList%
|
|
||||||
WriteInterface,Value,%ScriptFile%,Interface,cmb_SrcBaseImage,%indexSelected%
|
WriteInterface,Value,%ScriptFile%,Interface,cmb_SrcBaseImage,%indexSelected%
|
||||||
End
|
End
|
||||||
|
|
||||||
// Install.wim
|
// Install.wim
|
||||||
// Get the number of images in the wim file.
|
// Get the number of images in the wim file.
|
||||||
WimInfo,%SourceInstallWim%,0,ImageCount,%imgCount%
|
WimInfo,%SourceInstallWim%,0,ImageCount,%imgCount%
|
||||||
Set,%indexList%,""
|
Set,%imgIndexList%,""
|
||||||
|
Set,%imgNameList%,""
|
||||||
|
|
||||||
// Loop through each image and get the information.
|
// Loop through each image and get the information.
|
||||||
Loop,%ScriptFile%,GetImgInfo_Loop,1,%imgCount%,%SourceInstallWim%
|
Loop,%ScriptFile%,GetImgInfo_Loop,1,%imgCount%,%SourceInstallWim%
|
||||||
// Select the highest number image as the default.
|
|
||||||
List,Count,%indexList%,%splitCount%
|
// Populate cmb_SrcInstallImage
|
||||||
StrFormat,Split,%indexList%,|,%splitCount%,%indexSelected%
|
WriteInterface,Items,%ScriptFile%,Interface,cmb_SrcInstallImage,%imgIndexList%
|
||||||
WriteInterface,Items,%ScriptFile%,Interface,cmb_SrcInstallImage,%indexList%
|
|
||||||
|
// 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%
|
WriteInterface,Value,%ScriptFile%,Interface,cmb_SrcInstallImage,%indexSelected%
|
||||||
|
|
||||||
// Populate ImgInfo for the selected image
|
// Populate ImgInfo for the selected image
|
||||||
Run,%ScriptFile%,GetSourceWimImage
|
Run,%ScriptFile%,GetSourceWimImage
|
||||||
|
|
||||||
@@ -202,7 +214,10 @@ System,Cursor,Normal
|
|||||||
// %imgArch% - Arch (x86/x64)
|
// %imgArch% - Arch (x86/x64)
|
||||||
// %imgLang% - Default Language
|
// %imgLang% - Default Language
|
||||||
// %imgName% - Image Name
|
// %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
|
// Author.........: Homes32
|
||||||
// Remarks........:
|
// Remarks........:
|
||||||
// Related........:
|
// Related........:
|
||||||
@@ -230,7 +245,8 @@ StrFormat,CTrim,%imgFallbackLang%,|,%imgFallbackLang%
|
|||||||
If,%imgArch%,Equal,0,Set,%imgArch%,"x86"
|
If,%imgArch%,Equal,0,Set,%imgArch%,"x86"
|
||||||
Else,Set,%imgArch%,"x64"
|
Else,Set,%imgArch%,"x64"
|
||||||
|
|
||||||
List,Append,%indexList%,"#c - %imgName%"
|
List,Append,%imgIndexList%,"#c - %imgName%"
|
||||||
|
List,Append,%imgNameList%,"%imgName%"
|
||||||
|
|
||||||
[#GetSourceWimImage#]
|
[#GetSourceWimImage#]
|
||||||
// ===============================================================================================================================
|
// ===============================================================================================================================
|
||||||
@@ -295,7 +311,7 @@ Set,%imgTemp%,Nil
|
|||||||
[DownloadWithFido]
|
[DownloadWithFido]
|
||||||
Set,%FidoURL%,"https://github.com/pbatard/Fido/releases/latest/download/Fido.ps1.lzma"
|
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
|
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"
|
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"
|
ShellExecuteEx,Open,"powershell.exe","-noexit –ExecutionPolicy Bypass & #$q%ProjectTemp%\Fido.ps1#$q"
|
||||||
End
|
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
|
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
|
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
|
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
|
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
|
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
|
lbl_SrcInstallImage="'install.wim' Image:",1,1,29,221,94,18,8,Normal
|
||||||
|
@@ -35,8 +35,8 @@ Author=Homes32
|
|||||||
Level=5
|
Level=5
|
||||||
Selected=False
|
Selected=False
|
||||||
Mandatory=False
|
Mandatory=False
|
||||||
Version=1.0.0.0
|
Version=1.1.0.0
|
||||||
Date=2020-03-31
|
Date=2021-03-22
|
||||||
Interface=Interface
|
Interface=Interface
|
||||||
|
|
||||||
[Variables]
|
[Variables]
|
||||||
@@ -103,17 +103,18 @@ IniWrite,"%TargetPrograms%\%ProgramFolder%\BackupRecovery.ini","BackupSetting","
|
|||||||
IniWrite,"%TargetPrograms%\%ProgramFolder%\other.ini","UserExperience","ExperienceValue",0
|
IniWrite,"%TargetPrograms%\%ProgramFolder%\other.ini","UserExperience","ExperienceValue",0
|
||||||
|
|
||||||
// Product Registration
|
// 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
|
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
|
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%
|
RegRead,HKLM,"Software\%WOW6432Node%Microsoft\Windows\CurrentVersion","ProgramData",%Host_LicKey%
|
||||||
If,%Host_LicKey%,Equal,"",Halt,"ERROR: Could not retrieve license key from host system."
|
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
|
End
|
||||||
Else,Begin
|
Else,Begin
|
||||||
If,%txt_LicKey%,Equal,"",Halt,"ERROR: You must enter a license key."
|
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
|
End
|
||||||
|
|
||||||
IniWrite,"%TargetPrograms%\%ProgramFolder%\Version.ini","VersionInfo","versionCode",2
|
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]"
|
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
|
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
|
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]
|
[InterfaceEncoded]
|
||||||
Trash.ico=1150,1212
|
Trash.ico=1150,1212
|
||||||
|
35
README.md
35
README.md
@@ -3,22 +3,39 @@
|
|||||||
PhoenixPE is a Pre-Install Environment based on Win10.
|
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.
|
* 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 don’t 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 PEBakery’s 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
|
# 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.
|
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.
|
No. Both produce a very similar environment based on decades of community members working together. We aren't in competition.
|
||||||
PhoenixPE on the other hand targets advanced users and developers that what more control over how and what goes into their PE.
|
|
||||||
|
|
||||||
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.
|
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 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.
|
|
||||||
|
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.
|
Reference in New Issue
Block a user