2. Change the default value of VTOY_WIN11_BYPASS_CHECK and VTOY_WIN11_BYPASS_NRO options to 1.
static ctrl_var_cfg g_ctrl_vars[] =
{
- { "VTOY_WIN11_BYPASS_CHECK", 0 },
+ { "VTOY_WIN11_BYPASS_CHECK", 1 },
+ { "VTOY_WIN11_BYPASS_NRO", 1 },
{ "VTOY_LINUX_REMOUNT", 0 },
{ "VTOY_SECONDARY_BOOT_MENU", 1 },
{ NULL, 0 }
{
data->windows11_bypass_check = 1;
}
+
+ env = grub_env_get("VTOY_WIN11_BYPASS_NRO");
+ if (env && env[0] == '1' && env[1] == 0)
+ {
+ data->windows11_bypass_nro = 1;
+ }
pos = grub_strstr(isopath, "/");
if (!pos)
grub_uint32_t auto_install_len;
- grub_uint8_t reserved[255 - 4];
+ grub_uint8_t windows11_bypass_nro;
+
+ grub_uint8_t reserved[255 - 5];
/* auto_intall file buf */
/* ...... + auto_install_len */
#
-# VTLANG_TEMP_SETTING must be the first
+# VTLANG_CTRL_TEMP_SET must be the first
# And the inside item order can not be changed
#
submenu "$VTLANG_CTRL_TEMP_SET" --class=debug_temp_set --class=F5tool {
fi
}
- menuentry "[ $VTOY_LINUX_REMOUNT ] $VTLANG_LINUX_REMOUNT" --class=debug_temp_linux_remount --class=debug_temp_set --class=F5tool \
+ menuentry "[ $VTOY_WIN11_BYPASS_NRO ] $VTLANG_WIN11_BYPASS_NRO" --class=debug_temp_win11_nro --class=debug_temp_set --class=F5tool \
VTOY_RUN_SET1 {
+ if [ "$VTOY_WIN11_BYPASS_NRO" = "0" ]; then
+ set VTOY_WIN11_BYPASS_NRO=1
+ else
+ set VTOY_WIN11_BYPASS_NRO=0
+ fi
+ }
+
+ menuentry "[ $VTOY_LINUX_REMOUNT ] $VTLANG_LINUX_REMOUNT" --class=debug_temp_linux_remount --class=debug_temp_set --class=F5tool \
+ VTOY_RUN_SET2 {
if [ "$VTOY_LINUX_REMOUNT" = "0" ]; then
set VTOY_LINUX_REMOUNT=1
else
}
menuentry "[ $VTOY_SECONDARY_BOOT_MENU ] $VTLANG_SECONDARY_BOOT_MENU" --class=debug_temp_second_menu --class=debug_temp_set --class=F5tool \
- VTOY_RUN_SET2 {
+ VTOY_RUN_SET3 {
if [ "$VTOY_SECONDARY_BOOT_MENU" = "0" ]; then
set VTOY_SECONDARY_BOOT_MENU=1
else
"VTLANG_ENTER_CONTINUE": "اضغط على مفتاح Enter للمتابعة",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "চালিয়ে যেতে এন্টার কী টিপুন",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "Drücken Sie die Eingabetaste, um fortzufahren",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "press Enter key to continue",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "appuyez sur la touche Entrée pour continuer",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "जारी रखने के लिए एंटर कुंजी दबाएं",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "pritisnite tipku Enter za nastavak",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
-{\r
+\r
"VTLANG_LANGUAGE_NAME": "Hungarian (Magyar)",\r
\r
"VTLANG_STR_HOTKEY_LIST": "L:Nyelv F1:Súgó F2:Tallóz F3:Listanézet F4:Helyi indítás F5:Eszközök F6:Bővített menü",\r
"VTLANG_ENTER_CONTINUE": "a folytatáshoz nyomja meg az Enter billentyűt",\r
\r
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",\r
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",\r
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",\r
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",\r
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",\r
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",\r
\r
"VTLANG_ENTER_CONTINUE": "tekan tombol Enter untuk melanjutkan",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "[Enter]を押して続行します",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "გასაგრძელებლად დააჭირეთ Enter ღილაკს",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_CTRL_TEMP_SET": "임시 제어 설정",
"VTLANG_WIN11_BYPASS_CHECK": "Windows 11을 설치할 때 우회 점검",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Linux 부트 후 Ventoy 파티션 마운트",
"VTLANG_SECONDARY_BOOT_MENU": "보조 부트 메뉴 표시",
"VTLANG_ENTER_CONTINUE": "naciśnij klawisz Enter, aby kontynuować",\r
\r
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",\r
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",\r
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",\r
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",\r
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",\r
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",\r
\r
"VTLANG_ENTER_CONTINUE": "pressione a tecla Enter para continuar",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_CTRL_TEMP_SET": "Настройки временного управления",
"VTLANG_WIN11_BYPASS_CHECK": "Обойти проверку при установке Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Смонтировать раздел Ventoy после загрузки Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Показать вторичное загрузочное меню",
"VTLANG_ENTER_CONTINUE": "press Enter key to continue",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_ENTER_CONTINUE": "தொடர Enter விசையை அழுத்தவும்",
"VTLANG_CTRL_TEMP_SET": "Temporary Control Settings",
- "VTLANG_WIN11_BYPASS_CHECK": "Bypass check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_CHECK": "Bypass CPU/TPM/SecureBoot check when install Windows 11",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Mount Ventoy partition after boot Linux",
"VTLANG_SECONDARY_BOOT_MENU": "Show secondary boot menu",
"VTLANG_CTRL_TEMP_SET": "Geçici Kontrol Ayarları",
"VTLANG_WIN11_BYPASS_CHECK": "Windows11'i yükler iken TPM,CPU,RAM kontrollerini atla",
+ "VTLANG_WIN11_BYPASS_NRO": "Bypass online account requirement when install Windows 11",
"VTLANG_LINUX_REMOUNT": "Linux sistemi önyükledikten sonra, Ventoy bölümünü bağla",
"VTLANG_SECONDARY_BOOT_MENU": "İkincil önyükleme menüsünü göster",
"VTLANG_ENTER_CONTINUE": "按回车键继续",
"VTLANG_CTRL_TEMP_SET": "控制变量设置",
- "VTLANG_WIN11_BYPASS_CHECK": "安装 Windows 11 时绕过硬件检查",
+ "VTLANG_WIN11_BYPASS_CHECK": "安装 Windows 11 时绕过 TPM/安全启动 等硬件检查",
+ "VTLANG_WIN11_BYPASS_NRO": "安装 Windows 11 时绕过在线账户的要求",
"VTLANG_LINUX_REMOUNT": "启动 Linux 系统后挂载 Ventoy 分区",
"VTLANG_SECONDARY_BOOT_MENU": "显示二级启动菜单",
"VTLANG_ENTER_CONTINUE": "按回車鍵繼續",
"VTLANG_CTRL_TEMP_SET": "控制變量設置",
- "VTLANG_WIN11_BYPASS_CHECK": "安裝 Windows 11 時繞過硬件檢查",
+ "VTLANG_WIN11_BYPASS_CHECK": "安裝 Windows 11 時繞過TPM/安全啟動等硬件檢查",
+ "VTLANG_WIN11_BYPASS_NRO": "安裝 Windows 11 時繞過在線賬戶的要求",
"VTLANG_LINUX_REMOUNT": "啟動 Linux 系統後掛載 Ventoy 分區",
"VTLANG_SECONDARY_BOOT_MENU": "顯示二級啟動菜單",
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");
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 ||
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);
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);
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);
{
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);
int filter_vhd;
int filter_vtoy;
int win11_bypass_check;
+ int win11_bypass_nro;
int menu_timeout;
int secondary_menu_timeout;
int linux_remount;
<script src="/static/js/jQuery-2.1.4.min.js"></script>\r
<!-- jquery validate -->\r
<script src="/static/js/jquery.validate.min.js"></script> \r
- <script src="/static/js/jquery.validate.vtoymethods.js?v=106"></script>\r
+ <script src="/static/js/jquery.validate.vtoymethods.js?v=108"></script>\r
\r
- <script src="/static/js/jquery.vtoy.alert.js?v=106"></script>\r
- <script src="/static/js/vtoy.js?v=106"></script>\r
+ <script src="/static/js/jquery.vtoy.alert.js?v=108"></script>\r
+ <script src="/static/js/vtoy.js?v=108"></script>\r
<script src="/static/js/md5.min.js"></script>\r
\r
<!-- Bootstrap 3.3.5 -->\r
</div><!-- /.box-body -->\r
</div><!-- /.box -->\r
\r
+ \r
+ \r
+ <div class="box box-primary box-solid">\r
+ <div class="box-header with-border">\r
+ <h3 class="box-title" style="font-size: 14px;font-weight: bold;">VTOY_WIN11_BYPASS_NRO\r
+ <span id="id_span_desc_cn"> —— 绕过Windows 11 在线账户需求</span></h3>\r
+ <div class="box-tools pull-right">\r
+ <button class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>\r
+ </div><!-- /.box-tools -->\r
+ </div><!-- /.box-header -->\r
+ <div class="box-body no-padding">\r
+ <table class="table table-bordered no-padding">\r
+ <tr style="font-weight:bold;">\r
+ <td class="td_ctrl_col" id="td_title_setting">选项设置</td>\r
+ <td>\r
+ <label class="radio-inline">\r
+ <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>\r
+ </label> \r
+ <label class="radio-inline">\r
+ <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>\r
+ </label>\r
+ </td>\r
+ </tr>\r
+ <tr id="tr_title_desc_cn">\r
+ <td class="td_ctrl_col" id="td_title_desc">选项说明</td>\r
+ <td>\r
+ <code style="font-weight: bold;">0</code> 不绕过Windows 11安装时的在线账户需求。<br/>\r
+ <code style="font-weight: bold;">1</code> 绕过Windows 11安装时的在线账户需求。<br/><br/>\r
+ 该选项只对标准Windows 11 ISO文件有效,对于其他镜像文件无效。\r
+ 当设置为1时,Ventoy 会在安装时创建以下注册表项用来绕过 Windows 11 安装时对在线账户的需求。<br/>\r
+ <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code><br/> \r
+ </td>\r
+ </tr>\r
+ <tr id="tr_title_desc_en">\r
+ <td class="td_ctrl_col" id="td_title_desc">Option Description</td>\r
+ <td>\r
+ <code style="font-weight: bold;">0</code> Do not bypass Windows 11 online account requirement.<br/>\r
+ <code style="font-weight: bold;">1</code> Bypass Windows 11 online account requirement. <br/><br/>\r
+ This option only avaliable for standard Windows 11 ISO files.\r
+ When set to 1, Ventoy will create the following registry to bypass Windows 11 online account requirement when install. <br/>\r
+ <code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OOBE\BypassNRO</code>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </div><!-- /.box-body -->\r
+ </div><!-- /.box -->\r
+ \r
\r
\r
\r
var level;\r
\r
data.win11_bypass_check = parseInt($('input:radio[name=id_ctrl_bypass_win11_radio]:checked').val());\r
+ data.win11_bypass_nro = parseInt($('input:radio[name=id_ctrl_bypass_nro_radio]:checked').val());\r
data.linux_remount = parseInt($('input:radio[name=id_ctrl_linux_remount_radio]:checked').val());\r
data.secondary_menu = parseInt($('input:radio[name=id_ctrl_secondary_radio]:checked').val());\r
data.password_asterisk = parseInt($('input:radio[name=id_ctrl_asterisk_radio]:checked').val());\r
function VtoyFillCurrentPageItem(data) {\r
//VTOY_WIN11_BYPASS_CHECK\r
$('input:radio[name=id_ctrl_bypass_win11_radio]')[data.win11_bypass_check].checked = true;\r
+ //VTOY_WIN11_BYPASS_NRO\r
+ $('input:radio[name=id_ctrl_bypass_nro_radio]')[data.win11_bypass_nro].checked = true;\r
$('input:radio[name=id_ctrl_linux_remount_radio]')[data.linux_remount].checked = true;\r
$('input:radio[name=id_ctrl_secondary_radio]')[data.secondary_menu].checked = true;\r
$('input:radio[name=id_ctrl_asterisk_radio]')[data.password_asterisk].checked = true;\r
method : 'save_control',\r
index: current_tab_index,\r
win11_bypass_check: data.win11_bypass_check,\r
+ win11_bypass_nro: data.win11_bypass_nro,\r
linux_remount:data.linux_remount,\r
secondary_menu:data.secondary_menu,\r
password_asterisk:data.password_asterisk,\r
return 0;\r
}\r
\r
-static int Windows11BypassCheck(const char *isofile, const char MntLetter)\r
+static int Windows11Bypass(const char *isofile, const char MntLetter, UINT8 Check, UINT8 NRO)\r
{\r
int Ret = 1;\r
DWORD dwHandle;\r
CHAR CheckFile[MAX_PATH];\r
UINT16 Major, Minor, Build, Revision;\r
\r
- Log("Windows11BypassCheck for <%s> %C:", isofile, MntLetter);\r
+ Log("Windows11Bypass for <%s> %C: Check:%u NRO:%u", isofile, MntLetter, Check, NRO);\r
\r
if (FALSE == IsFileExist("%C:\\sources\\boot.wim", MntLetter) ||\r
FALSE == IsFileExist("%C:\\sources\\compatresources.dll", MntLetter))\r
HKEY hSubKey = NULL;\r
LSTATUS Status;\r
\r
- Status = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "System\\Setup", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwSize);\r
- if (ERROR_SUCCESS != Status)\r
+ if (Check)\r
{\r
- Log("Failed to create reg key System\\Setup %u %u", LASTERR, Status);\r
- goto End;\r
+ Status = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "System\\Setup", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwSize);\r
+ if (ERROR_SUCCESS != Status)\r
+ {\r
+ Log("Failed to create reg key System\\Setup %u %u", LASTERR, Status);\r
+ goto End;\r
+ }\r
+\r
+ Status = RegCreateKeyExA(hKey, "LabConfig", 0, NULL, 0, KEY_SET_VALUE | KEY_QUERY_VALUE | KEY_CREATE_SUB_KEY, NULL, &hSubKey, &dwSize);\r
+ if (ERROR_SUCCESS != Status)\r
+ {\r
+ Log("Failed to create LabConfig reg %u %u", LASTERR, Status);\r
+ goto End;\r
+ }\r
+\r
+ //set reg value\r
+ Status += RegSetValueExA(hSubKey, "BypassRAMCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
+ Status += RegSetValueExA(hSubKey, "BypassTPMCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
+ Status += RegSetValueExA(hSubKey, "BypassSecureBootCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
+ Status += RegSetValueExA(hSubKey, "BypassStorageCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
+ Status += RegSetValueExA(hSubKey, "BypassCPUCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
+\r
+ Log("Create bypass check registry %s %u", (Status == ERROR_SUCCESS) ? "SUCCESS" : "FAILED", Status);\r
}\r
\r
- Status = RegCreateKeyExA(hKey, "LabConfig", 0, NULL, 0, KEY_SET_VALUE | KEY_QUERY_VALUE | KEY_CREATE_SUB_KEY, NULL, &hSubKey, &dwSize);\r
- if (ERROR_SUCCESS != Status)\r
+\r
+ if (NRO)\r
{\r
- Log("Failed to create LabConfig reg %u %u", LASTERR, Status);\r
- goto End;\r
- }\r
+ Status = RegCreateKeyExA(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwSize);\r
+ if (ERROR_SUCCESS != Status)\r
+ {\r
+ Log("Failed to create reg key SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\OOBE %u %u", LASTERR, Status);\r
+ goto End;\r
+ }\r
\r
- //set reg value\r
- Status += RegSetValueExA(hSubKey, "BypassRAMCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
- Status += RegSetValueExA(hSubKey, "BypassTPMCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
- Status += RegSetValueExA(hSubKey, "BypassSecureBootCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
- Status += RegSetValueExA(hSubKey, "BypassStorageCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
- Status += RegSetValueExA(hSubKey, "BypassCPUCheck", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
+ Status = RegCreateKeyExA(hKey, "OOBE", 0, NULL, 0, KEY_SET_VALUE | KEY_QUERY_VALUE | KEY_CREATE_SUB_KEY, NULL, &hSubKey, &dwSize);\r
+ if (ERROR_SUCCESS != Status)\r
+ {\r
+ Log("Failed to create OOBE reg %u %u", LASTERR, Status);\r
+ goto End;\r
+ }\r
\r
- Log("Create bypass registry %s %u", (Status == ERROR_SUCCESS) ? "SUCCESS" : "FAILED", Status);\r
+ Status += RegSetValueExA(hSubKey, "BypassNRO", 0, REG_DWORD, (LPBYTE)&dwValue, sizeof(DWORD));\r
+ Log("Create BypassNRO registry %s %u", (Status == ERROR_SUCCESS) ? "SUCCESS" : "FAILED", Status);\r
+ }\r
+ \r
\r
Ret = 0;\r
\r
Log("Mount ISO FILE: %s", rc == 0 ? "SUCCESS" : "FAILED");\r
\r
//Windows 11 bypass check\r
- if (g_windows_data.windows11_bypass_check == 1)\r
+ if (g_windows_data.windows11_bypass_check == 1 || g_windows_data.windows11_bypass_nro == 1)\r
{\r
- Windows11BypassCheck(IsoPath, MntLetter);\r
+ Windows11Bypass(IsoPath, MntLetter, g_windows_data.windows11_bypass_check, g_windows_data.windows11_bypass_nro);\r
}\r
\r
// for protect\r
\r
UINT32 auto_install_len;\r
\r
- UINT8 reserved[255 - 4];\r
+ UINT8 windows11_bypass_nro;\r
+\r
+ UINT8 reserved[255 - 5];\r
\r
/* auto install script file data ... + auto_install_len */\r
/* ...... */\r