1. Add VTOY_WIN11_BYPASS_NRO option in Global Control Plugin.

2. Change the default value of VTOY_WIN11_BYPASS_CHECK and VTOY_WIN11_BYPASS_NRO options to 1.
This commit is contained in:
longpanda
2022-12-23 23:17:39 +08:00
parent 54bca8c942
commit f597497da6
34 changed files with 175 additions and 48 deletions

View File

@@ -557,6 +557,8 @@ void ventoy_data_default_control(data_control *data)
data->max_search_level = -1;
data->menu_timeout = 0;
data->secondary_menu_timeout = 0;
data->win11_bypass_check = 1;
data->win11_bypass_nro = 1;
strlcpy(data->default_kbd_layout, "QWERTY_USA");
strlcpy(data->menu_language, "en_US");
@@ -577,6 +579,7 @@ int ventoy_data_cmp_control(data_control *data1, data_control *data2)
data1->filter_vhd != data2->filter_vhd ||
data1->filter_vtoy != data2->filter_vtoy ||
data1->win11_bypass_check != data2->win11_bypass_check ||
data1->win11_bypass_nro != data2->win11_bypass_nro ||
data1->linux_remount != data2->linux_remount ||
data1->password_asterisk != data2->password_asterisk ||
data1->secondary_menu != data2->secondary_menu ||
@@ -625,6 +628,7 @@ int ventoy_data_save_control(data_control *data, const char *title, char *buf, i
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_FILE_FLT_VHD", filter_vhd);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_FILE_FLT_VTOY", filter_vtoy);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_WIN11_BYPASS_CHECK", win11_bypass_check);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_WIN11_BYPASS_NRO", win11_bypass_nro);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_LINUX_REMOUNT", linux_remount);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECONDARY_BOOT_MENU", secondary_menu);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SHOW_PASSWORD_ASTERISK", password_asterisk);
@@ -673,6 +677,7 @@ int ventoy_data_json_control(data_control *ctrl, char *buf, int buflen)
VTOY_JSON_FMT_SINT("filter_vhd", ctrl->filter_vhd);
VTOY_JSON_FMT_SINT("filter_vtoy", ctrl->filter_vtoy);
VTOY_JSON_FMT_SINT("win11_bypass_check", ctrl->win11_bypass_check);
VTOY_JSON_FMT_SINT("win11_bypass_nro", ctrl->win11_bypass_nro);
VTOY_JSON_FMT_SINT("linux_remount", ctrl->linux_remount);
VTOY_JSON_FMT_SINT("secondary_menu", ctrl->secondary_menu);
VTOY_JSON_FMT_SINT("password_asterisk", ctrl->password_asterisk);
@@ -741,6 +746,7 @@ static int ventoy_api_save_control(struct mg_connection *conn, VTOY_JSON *json)
VTOY_JSON_INT("filter_vhd", ctrl->filter_vhd);
VTOY_JSON_INT("filter_vtoy", ctrl->filter_vtoy);
VTOY_JSON_INT("win11_bypass_check", ctrl->win11_bypass_check);
VTOY_JSON_INT("win11_bypass_nro", ctrl->win11_bypass_nro);
VTOY_JSON_INT("linux_remount", ctrl->linux_remount);
VTOY_JSON_INT("secondary_menu", ctrl->secondary_menu);
VTOY_JSON_INT("password_asterisk", ctrl->password_asterisk);
@@ -4130,6 +4136,10 @@ static int ventoy_parse_control(VTOY_JSON *json, void *p)
{
CONTROL_PARSE_INT_DEF_0(child, data->win11_bypass_check);
}
else if (strcmp(child->pcName, "VTOY_WIN11_BYPASS_NRO") == 0)
{
CONTROL_PARSE_INT_DEF_0(child, data->win11_bypass_nro);
}
else if (strcmp(child->pcName, "VTOY_LINUX_REMOUNT") == 0)
{
CONTROL_PARSE_INT_DEF_0(child, data->linux_remount);

View File

@@ -75,6 +75,7 @@ typedef struct data_control
int filter_vhd;
int filter_vtoy;
int win11_bypass_check;
int win11_bypass_nro;
int menu_timeout;
int secondary_menu_timeout;
int linux_remount;

View File

@@ -777,10 +777,10 @@
<script src="/static/js/jQuery-2.1.4.min.js"></script>
<!-- jquery validate -->
<script src="/static/js/jquery.validate.min.js"></script>
<script src="/static/js/jquery.validate.vtoymethods.js?v=106"></script>
<script src="/static/js/jquery.validate.vtoymethods.js?v=108"></script>
<script src="/static/js/jquery.vtoy.alert.js?v=106"></script>
<script src="/static/js/vtoy.js?v=106"></script>
<script src="/static/js/jquery.vtoy.alert.js?v=108"></script>
<script src="/static/js/vtoy.js?v=108"></script>
<script src="/static/js/md5.min.js"></script>
<!-- Bootstrap 3.3.5 -->

View File

@@ -172,6 +172,53 @@
</div><!-- /.box-body -->
</div><!-- /.box -->
<div class="box box-primary box-solid">
<div class="box-header with-border">
<h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_WIN11_BYPASS_NRO
<span id="id_span_desc_cn"> —— 绕过Windows 11 在线账户需求</span></h3>
<div class="box-tools pull-right">
<button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div><!-- /.box-tools -->
</div><!-- /.box-header -->
<div class="box-body no-padding">
<table class="table table-bordered no-padding">
<tr style="font-weight:bold;">
<td class="td_ctrl_col" id="td_title_setting">选项设置</td>
<td>
<label class="radio-inline">
<input type="radio" id="id_ctrl_bypass_nro_radio0" name="id_ctrl_bypass_nro_radio" data-type="0" value="0"/> <span style="font-weight:bold;">0</span>
</label>&nbsp;&nbsp;&nbsp;&nbsp;
<label class="radio-inline">
<input type="radio" id="id_ctrl_bypass_nro_radio1" name="id_ctrl_bypass_nro_radio" data-type="1" value="1"/> <span style="font-weight:bold;">1</span>
</label>
</td>
</tr>
<tr id="tr_title_desc_cn">
<td class="td_ctrl_col" id="td_title_desc">选项说明</td>
<td>
<code style="font-weight: bold;">0</code> 不绕过Windows 11安装时的在线账户需求。<br/>
<code style="font-weight: bold;">1</code> 绕过Windows 11安装时的在线账户需求。<br/><br/>
该选项只对标准Windows 11 ISO文件有效对于其他镜像文件无效。
当设置为1时Ventoy 会在安装时创建以下注册表项用来绕过 Windows 11 安装时对在线账户的需求。<br/>
<code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code><br/>
</td>
</tr>
<tr id="tr_title_desc_en">
<td class="td_ctrl_col" id="td_title_desc">Option Description</td>
<td>
<code style="font-weight: bold;">0</code> Do not bypass Windows 11 online account requirement.<br/>
<code style="font-weight: bold;">1</code> Bypass Windows 11 online account requirement. <br/><br/>
This option only avaliable for standard Windows 11 ISO files.
When set to 1, Ventoy will create the following registry to bypass Windows 11 online account requirement when install. <br/>
<code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code>
</td>
</tr>
</table>
</div><!-- /.box-body -->
</div><!-- /.box -->
@@ -1060,6 +1107,7 @@
var level;
data.win11_bypass_check = parseInt($('input:radio[name=id_ctrl_bypass_win11_radio]:checked').val());
data.win11_bypass_nro = parseInt($('input:radio[name=id_ctrl_bypass_nro_radio]:checked').val());
data.linux_remount = parseInt($('input:radio[name=id_ctrl_linux_remount_radio]:checked').val());
data.secondary_menu = parseInt($('input:radio[name=id_ctrl_secondary_radio]:checked').val());
data.password_asterisk = parseInt($('input:radio[name=id_ctrl_asterisk_radio]:checked').val());
@@ -1096,6 +1144,8 @@
function VtoyFillCurrentPageItem(data) {
//VTOY_WIN11_BYPASS_CHECK
$('input:radio[name=id_ctrl_bypass_win11_radio]')[data.win11_bypass_check].checked = true;
//VTOY_WIN11_BYPASS_NRO
$('input:radio[name=id_ctrl_bypass_nro_radio]')[data.win11_bypass_nro].checked = true;
$('input:radio[name=id_ctrl_linux_remount_radio]')[data.linux_remount].checked = true;
$('input:radio[name=id_ctrl_secondary_radio]')[data.secondary_menu].checked = true;
$('input:radio[name=id_ctrl_asterisk_radio]')[data.password_asterisk].checked = true;
@@ -1202,6 +1252,7 @@
method : 'save_control',
index: current_tab_index,
win11_bypass_check: data.win11_bypass_check,
win11_bypass_nro: data.win11_bypass_nro,
linux_remount:data.linux_remount,
secondary_menu:data.secondary_menu,
password_asterisk:data.password_asterisk,