diff --git a/index.html b/index.html
index 7db87ee..5eb0f8c 100644
--- a/index.html
+++ b/index.html
@@ -1614,9 +1614,11 @@
-
-
Boot Image
+
+
+
Boot Image
+
+
or HTTPS URL
@@ -10262,6 +10264,8 @@
QV('idx_d24customBootSource', bootSourceIndex == 5)
QV('idx_d24diskImage', bootSourceIndex == 6);
if ((bootSourceIndex == 6) && (Q('idx_d24ocrBootFile').files.length != 1)) { ok = false; }
+ // Allow HTTPS url to be passed as argument
+ if ((bootSourceIndex == 6) && (Q('idx_d24ocrBootUrl').value.trim()!='') && Q('idx_d24ocrBootUrl').value.trim().toLowerCase().startsWith("https")) { ok = true;}
// console.log(AmtOcrPbaLength, AmtOcrPba);
// ###END###{PowerControl-OneClick}
@@ -10278,9 +10282,13 @@
// ###END###{Mode-NodeWebkit}
if (forceBootSelection == 6) {
var files = Q('idx_d24ocrBootFile').files;
- if (files.length != 1) return;
- setupWebServer(urlvars['webcn'] ? urlvars['webcn'] : wsstack.comm.localAddress);
- webserver.setupBootImage(files[0].path, (urlvars['webcn'] ? urlvars['webcn'] : wsstack.comm.localAddress));
+ //if (files.length != 1) return;
+ if (files.length == 1) {
+ setupWebServer(urlvars['webcn'] ? urlvars['webcn'] : wsstack.comm.localAddress);
+ webserver.setupBootImage(files[0].path, (urlvars['webcn'] ? urlvars['webcn'] : wsstack.comm.localAddress));
+ } else if ((Q('idx_d24ocrBootUrl').value.trim()=='') || !Q('idx_d24ocrBootUrl').value.trim().toLowerCase().startsWith("https")) {
+ return; //invalid HTTPS URL supplied
+ }
}
// ###END###{PowerControl-OneClick}
@@ -10479,8 +10487,19 @@
// ###BEGIN###{PowerControl-OneClick}
// Add OCR TLV parameters if firmware supports OCR and Force HTTPS Boot is requested
if ((action == 600) || (action == 601) || ((action == 999) && (Q('idx_d24ForceBootDevice').value == 6))) { // Force UEFI HTTPS Boot
- r['UefiBootParametersArray'] = webserver.lastBootImageArgs.args;
- r['UefiBootNumberOfParams'] = webserver.lastBootImageArgs.argscount;
+ // check if using built-in webserver or external webserver
+ if (Q('idx_d24ocrBootFile').files.length==1) {
+ r['UefiBootParametersArray'] = webserver.lastBootImageArgs.args;
+ r['UefiBootNumberOfParams'] = webserver.lastBootImageArgs.argscount;
+ } else if ((Q('idx_d24ocrBootUrl').value.trim()!='') && Q('idx_d24ocrBootUrl').value.trim().toLowerCase().startsWith("https")){
+ r['UefiBootParametersArray'] = btoa(makeUefiBootParam(1, Q('idx_d24ocrBootUrl').value.trim()) + makeUefiBootParam(20, 1, 1) + makeUefiBootParam(30, 0, 2));
+ r['UefiBootNumberOfParams'] = 3;
+ return;
+ } else {
+ // it should not be here
+ messagebox("UEFI HTTPS Boot", "HTTPS Boot configuration is invalid!");
+ return;
+ }
r['BootMediaIndex'] = 0; // Do not use boot media index for One Click Recovery (OCR)
} else if ((action == 999) && (Q('idx_d24ForceBootDevice').value == 5)) {
var bootstr = AmtOcrPba[Q('idx_d24customBootMediaIndex').value].bootstr;
diff --git a/output/index.htm b/output/index.htm
index c486b30..0c067b9 100644
--- a/output/index.htm
+++ b/output/index.htm
@@ -554,6 +554,7 @@ th {
+